From f4399fa14e2796d5d4c005a85ec7f50525fc8a06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AB=8B=E5=85=9A=20Lidang?= Date: Sat, 23 Dec 2023 23:27:42 -0600 Subject: [PATCH 01/14] update --- .../contracts/protocol/Runtime/Runtime.sol | 2 - .../PluginJudgementTest.sol | 16 + darc-protocol/test/ABITest/ABITest.ts | 118 ------- .../MultiDARCTest/Multi_DARC_call_test.ts | 183 +++++++++++ .../Multi_DARC_call_with_payment_test.ts | 291 ++++++++++++++++++ .../batch_add_and_enable_plugin_test.ts | 2 +- 6 files changed, 491 insertions(+), 121 deletions(-) create mode 100644 darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol delete mode 100644 darc-protocol/test/ABITest/ABITest.ts create mode 100644 darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts create mode 100644 darc-protocol/test/MultiDARCTest/Multi_DARC_call_with_payment_test.ts diff --git a/darc-protocol/contracts/protocol/Runtime/Runtime.sol b/darc-protocol/contracts/protocol/Runtime/Runtime.sol index 9c61e06..6b3e86d 100644 --- a/darc-protocol/contracts/protocol/Runtime/Runtime.sol +++ b/darc-protocol/contracts/protocol/Runtime/Runtime.sol @@ -29,8 +29,6 @@ contract Runtime is Executable, PaymentCheck{ * will be changed to idle. There is also a timeout for execution pending, if the execution is not * finished within the timeout, the state will be changed to idle when the next program is submitted. * ----------------- - * - * The * @param program The program that is being executed */ diff --git a/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol b/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol new file mode 100644 index 0000000..6570206 --- /dev/null +++ b/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity ^0.8.9; + +import "../../protocol/Runtime/Executable/Executable.sol"; + +/** + * @title The test contract of PluginJudgement + * @author DARC Team + * @notice Only used for testing + */ +contract PluginJudgementTest is Executable { + + function testPluginJudgement() public { + + } +} \ No newline at end of file diff --git a/darc-protocol/test/ABITest/ABITest.ts b/darc-protocol/test/ABITest/ABITest.ts deleted file mode 100644 index dd45528..0000000 --- a/darc-protocol/test/ABITest/ABITest.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { time, loadFixture } from "@nomicfoundation/hardhat-network-helpers"; -import { anyValue } from "@nomicfoundation/hardhat-chai-matchers/withArgs"; -import { expect } from "chai"; -import { ethers } from "hardhat"; -import { BigNumber } from "ethers"; -import { deployDARC } from "../../scripts/deployDARC"; - -import * as darcjson from "../../../darc-protocol/artifacts/contracts/protocol/Darc.sol/Darc.json"; - -// test for batch mint token instruction on DARC -// transfer tokens to another 2 addresses - -const programOperatorAddress = "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"; -const target1 = '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC'; -const target2 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906;' -const target3 = '0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65'; - -const program = { - programOperatorAddress: programOperatorAddress, - operations: [{ - operatorAddress: programOperatorAddress, - opcode: 1, // mint token - param: { - - - STRING_ARRAY: [], - BOOL_ARRAY: [], - VOTING_RULE_ARRAY: [], - PARAMETER_ARRAY: [], - PLUGIN_ARRAY: [], - UINT256_2DARRAY: [ - [BigNumber.from(0), BigNumber.from(1)], // token class = 0 - [BigNumber.from(100), BigNumber.from(200)], // amount = 100 - ], - ADDRESS_2DARRAY: [ - [target1,target1], // to = target 1 - ], - BYTES: [] - }, - }, - { - operatorAddress: programOperatorAddress, - opcode: 4, // transfer tokens - param:{ - - - STRING_ARRAY: [], - BOOL_ARRAY: [], - VOTING_RULE_ARRAY: [], - PARAMETER_ARRAY: [], - PLUGIN_ARRAY: [], - UINT256_2DARRAY: [ - [BigNumber.from(0),BigNumber.from(0), BigNumber.from(1), BigNumber.from(1)], // token class = 0 - [BigNumber.from(10), BigNumber.from(20), BigNumber.from(30), BigNumber.from(40)], // amount = 100 - ], - ADDRESS_2DARRAY: [ - [target1, target1, target1, target1], // from = target 1 - [target2, target3, target2, target3], // to = target 2 - ], - BYTES: [] - } - }], - notes: "batch mint token test" -}; - -describe.skip("ABI test", function () { - - - it ("should pass ABI test", async function () { - - const darc_addr = await deployDARC(); - const DARC = await ethers.getContractFactory("DARC"); - // const darc = await DARC.deploy(); - // await darc.deployed(); - // await darc.initialize(); - - - //console.log("DARC address: ", darc_addr); - //await new Promise(resolve1 => setTimeout(resolve1, 1000)); - - const getCode = (await new ethers.providers.JsonRpcProvider('http://127.0.0.1:8545/').getCode(darc_addr)); - console.log("Deployed address: ", darc_addr); - console.log("Code: " + (JSON.stringify(getCode)).slice(0,20)); - - - const signer = new ethers.Wallet('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80', new ethers.providers.JsonRpcProvider('http://127.0.0.1:8545/')); - const darc2 = new ethers.Contract(darc_addr, darcjson.abi, signer); //DARC.attach(ethers.utils.getAddress(darc.address)); - console.log("DARC2 address: ", darc2.address); - //await darc.deployed(); - //await darc.initialize(); - - - - - - const getCode2 = (await new ethers.providers.JsonRpcProvider('http://127.0.0.1:8545/').getCode(darc_addr)); - - console.log("Code: " + (JSON.stringify(getCode2)).slice(0,20)); - return; - //return; - //await darc.getMyInfo(); - //await new Promise(resolve1 => setTimeout(resolve1, 2000)); - //return; - // read the dashboard - //const memberlist = await darc.getTokenOwners(BigNumber.from(0)); - - // run a program - - await darc2.entrance(program); - - - // read the dashboard - const balance = await darc2.getTokenOwnerBalance(BigNumber.from(1), ethers.utils.getAddress(target1)); - - - console.log("balance: ", balance.toString()); - }); -}); \ No newline at end of file diff --git a/darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts b/darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts new file mode 100644 index 0000000..cf1ac5e --- /dev/null +++ b/darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts @@ -0,0 +1,183 @@ +import { time, loadFixture } from "@nomicfoundation/hardhat-network-helpers"; +import { anyValue } from "@nomicfoundation/hardhat-chai-matchers/withArgs"; +import { expect } from "chai"; +import { ethers } from "hardhat"; +import { BigNumber } from "ethers"; +import { ConditionNodeStruct } from "../../typechain-types/contracts/protocol/DARC" + +// test for call contract abi + +const programOperatorAddress = "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"; + +const target1 = '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'; + +const target1_private_key = '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d'; + +const target2 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; + +const target3 = '0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65'; + +const target4 = '0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199'; + +describe("test for multi DARC call test", function () { + + + it ("should let DARC1 execute program on DARC2 successfully", async function () { + // create darc1 contract, deploy it and initialize it + const DARC1 = await ethers.getContractFactory("DARC"); + const darc1 = await DARC1.deploy(); + console.log("DARC1 address: ", darc1.address); + await darc1.deployed(); + await darc1.initialize(); + + // create darc2 contract, deploy it and initialize it + const DARC2 = await ethers.getContractFactory("DARC"); + const darc2 = await DARC2.deploy(); + console.log("DARC2 address: ", darc2.address); + await darc2.deployed(); + await darc2.initialize(); + + const signer1 = ethers.provider.getSigner(target1); + const darc2_with_signer1 = (await ethers.getContractFactory("DARC")).attach(darc2.address).connect(signer1); + + console.log("Current darc2 with signer's signer address is " + JSON.stringify(await darc2_with_signer1.signer.getAddress())); + + // let DARC2 to accept any program from DARC1 + const node_allow_signer1_target1: ConditionNodeStruct = { + id: BigNumber.from(0), + nodeType: BigNumber.from(1), // expression + logicalOperator: 0, // undefined + conditionExpression: 3, // OPERATOR_ADDRESS_EQUALS + childList: [], // empty + param: { + STRING_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [ [darc1.address] ], // if operator === darc1.address + STRING_2DARRAY: [], + BYTES: [], + } + }; + await darc2.entrance( + { + programOperatorAddress: programOperatorAddress, + notes: "add and enable a before-operation plugin: user with address = target1 cannnot operate the darc", + operations: [{ + operatorAddress: programOperatorAddress, + opcode: 15, // create token class + param: { + + + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [ + { + returnType: BigNumber.from(4), // YES AND SKIP SANDBOX + level: 1, + conditionNodes: [ + node_allow_signer1_target1 + ], + votingRuleIndex: 0, + note: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8 should operate", + bIsEnabled: true, + bIsInitialized: true, + bIsBeforeOperation: true, + } + ], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [], + BYTES: [] + } + }], + } + ) + + // next get the ABI of the darc2 contract entrance, and encode it + //const abiDARC2 = darc2.interface.getFunction("entrance").format(); + + const abiEncodedDARC2 = darc2.interface.encodeFunctionData("entrance", [{ + programOperatorAddress: darc1.address, + notes: "create token class and mint tokens", + operations: [ + { + operatorAddress: darc1.address, + opcode: 2, // create token class + param: { + STRING_ARRAY: ["Class1", "Class2"], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [ + [BigNumber.from(0), BigNumber.from(1)], + [BigNumber.from(10), BigNumber.from(1)], + [BigNumber.from(10), BigNumber.from(1)], + ], + ADDRESS_2DARRAY: [], + BYTES: [] + } + }, + + { + operatorAddress: darc1.address, + opcode: 1, // mint token + param: { + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [ + [BigNumber.from(0), BigNumber.from(1), BigNumber.from(1), BigNumber.from(0)], + [BigNumber.from(100), BigNumber.from(200), BigNumber.from(300), BigNumber.from(400)], + ], + ADDRESS_2DARRAY: [ + [target1, target2, target3, target4] + ], + BYTES: [] + } + } + ], + + }]); + + + // then create and execute a program with the abi encoded, address of the contract + const result_entrance = await darc1.entrance({ + programOperatorAddress: programOperatorAddress, + operations: [{ + operatorAddress: programOperatorAddress, + opcode: 25, // call contract abi + param: { + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [ + [BigNumber.from(0)], + ], + ADDRESS_2DARRAY: [ + [darc2.address] + ], + BYTES: abiEncodedDARC2 + } + }], + notes: "call contract abi" + }); + + + // finally check the result from darc2 after darc1 executes the program on darc2 + const addressListLevel0 = await darc2.getTokenOwners(0); + const addressListLevel1 = await darc2.getTokenOwners(1); + + expect((await darc2.getTokenOwnerBalance(0, target1)).toString()).to.equal("100"); + expect((await darc2.getTokenOwnerBalance(1, target2)).toString()).to.equal("200"); + expect((await darc2.getTokenOwnerBalance(1, target3)).toString()).to.equal("300"); + expect((await darc2.getTokenOwnerBalance(0, target4)).toString()).to.equal("400"); + + }); + + +}); \ No newline at end of file diff --git a/darc-protocol/test/MultiDARCTest/Multi_DARC_call_with_payment_test.ts b/darc-protocol/test/MultiDARCTest/Multi_DARC_call_with_payment_test.ts new file mode 100644 index 0000000..aaea9da --- /dev/null +++ b/darc-protocol/test/MultiDARCTest/Multi_DARC_call_with_payment_test.ts @@ -0,0 +1,291 @@ +import { time, loadFixture } from "@nomicfoundation/hardhat-network-helpers"; +import { anyValue } from "@nomicfoundation/hardhat-chai-matchers/withArgs"; +import { expect } from "chai"; +import { ethers } from "hardhat"; +import { BigNumber } from "ethers"; +import { ConditionNodeStruct } from "../../typechain-types/contracts/protocol/DARC" + +// test for call contract abi + +const programOperatorAddress = "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"; + +const target1 = '0x70997970C51812dc3A010C7d01b50e0d17dc79C8'; + +const target1_private_key = '0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d'; + +const target2 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; + +const target3 = '0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65'; + +const target4 = '0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199'; + +describe.only("test for multi DARC call test with payment", function () { + + + it ("should let DARC1 execute program on DARC2 successfully with payment", async function () { + // create darc1 contract, deploy it and initialize it + const DARC1 = await ethers.getContractFactory("DARC"); + const darc1 = await DARC1.deploy(); + console.log("DARC1 address: ", darc1.address); + await darc1.deployed(); + await darc1.initialize(); + + // create darc2 contract, deploy it and initialize it + const DARC2 = await ethers.getContractFactory("DARC"); + const darc2 = await DARC2.deploy(); + console.log("DARC2 address: ", darc2.address); + await darc2.deployed(); + await darc2.initialize(); + + const signer1 = ethers.provider.getSigner(target1); + const darc2_with_signer1 = (await ethers.getContractFactory("DARC")).attach(darc2.address).connect(signer1); + + console.log("Current darc2 with signer's signer address is " + JSON.stringify(await darc2_with_signer1.signer.getAddress())); + + // let DARC2 to accept any program from DARC1 + const node_allow_signer1_target1: ConditionNodeStruct = { + id: BigNumber.from(0), + nodeType: BigNumber.from(1), // expression + logicalOperator: 0, // undefined + conditionExpression: 3, // OPERATOR_ADDRESS_EQUALS + childList: [], // empty + param: { + STRING_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [ [darc1.address] ], // if operator === darc1.address + STRING_2DARRAY: [], + BYTES: [], + } + }; + await darc2.entrance( + { + programOperatorAddress: programOperatorAddress, + notes: "add and enable a before-operation plugin: user with address = target1 cannnot operate the darc", + operations: [{ + operatorAddress: programOperatorAddress, + opcode: 15, // create token class + param: { + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [ + { + returnType: BigNumber.from(4), // YES AND SKIP SANDBOX + level: 1, + conditionNodes: [ + node_allow_signer1_target1 + ], + votingRuleIndex: 0, + note: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8 should operate", + bIsEnabled: true, + bIsInitialized: true, + bIsBeforeOperation: true, + } + ], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [], + BYTES: [] + } + },], + } + ) + + // next get the ABI of the darc2 contract entrance, and encode it + //const abiDARC2 = darc2.interface.getFunction("entrance").format(); + // program: create token class and mint tokens, then pay 0.5 ETH to DARC2 + + const abiEncodedDARC2 = darc2.interface.encodeFunctionData("entrance", [{ + programOperatorAddress: darc1.address, + notes: "create token class and mint tokens", + operations: [ + { + operatorAddress: darc1.address, + opcode: 2, // create token class + param: { + STRING_ARRAY: ["Class1", "Class2"], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [ + [BigNumber.from(0), BigNumber.from(1)], + [BigNumber.from(10), BigNumber.from(1)], + [BigNumber.from(10), BigNumber.from(1)], + ], + ADDRESS_2DARRAY: [], + BYTES: [] + } + }, + + { + operatorAddress: darc1.address, + opcode: 1, // mint token + param: { + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [ + [BigNumber.from(0), BigNumber.from(1), BigNumber.from(1), BigNumber.from(0)], + [BigNumber.from(100), BigNumber.from(200), BigNumber.from(300), BigNumber.from(400)], + ], + ADDRESS_2DARRAY: [ + [target1, target2, target3, target4] + ], + BYTES: [] + } + }, + + { + operatorAddress: darc1.address, + opcode: 26, // pay cash + param: { + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [ + // pay 0.5 ETH + [BigNumber.from(ethers.utils.parseEther("0.5")), BigNumber.from(0), BigNumber.from(1)], + ], + ADDRESS_2DARRAY: [], + BYTES: [] + } + }, + ], + + }]); + + + // pay 1 ETH to DARC1, so that DARC1 can pay DARC2 0.5ETH + // now the balance of DARC1: 0.5 ETH + // now the balance of DARC2: 0.5 ETH + // then create and execute a program with the abi encoded, address of the contract + const result_entrance = await darc1.entrance({ + programOperatorAddress: programOperatorAddress, + operations: [ + { + operatorAddress: programOperatorAddress, + opcode: 26, // pay cash + param: { + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [ + // pay 1 ETH + [BigNumber.from(ethers.utils.parseEther("1")), BigNumber.from(0), BigNumber.from(1)], + ], + ADDRESS_2DARRAY: [], + BYTES: [] + } + }, + { + operatorAddress: programOperatorAddress, + opcode: 25, // call contract abi + param: { + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [ + [BigNumber.from(ethers.utils.parseEther("0.5"))], + ], + ADDRESS_2DARRAY: [ + [darc2.address] + ], + BYTES: abiEncodedDARC2 + } + }, + + ], + notes: "call contract abi" + }, {value: ethers.utils.parseEther("1.0")}); + + + // // check the balance of darc1 and darc2 + // console.log("darc1 balance: ", ethers.utils.formatEther(await ethers.provider.getBalance(darc1.address))); + // console.log("darc2 balance: ", ethers.utils.formatEther(await ethers.provider.getBalance(darc2.address))); + + + // console.log("darc1 balance in darc2: ", ethers.utils.formatEther(await darc2.getWithdrawableCashBalance(darc1.address))); + // console.log(await ethers.provider.getBalance(darc1.address)); + // console.log(await ethers.provider.getBalance(darc2.address)); + // console.log(await darc2.getWithdrawableCashBalance(darc1.address)); + // finally let DARC1 withdraw the 0.5 ETH from DARC2 + // 1. execute program: add 0.5 withdrawable balance to DARC1 + await darc2.entrance( + { + programOperatorAddress: programOperatorAddress, + notes: "add 0.5 withdrawable balance to DARC1", + operations: [{ + operatorAddress: programOperatorAddress, + opcode: 17, // batch add withdrawable balance + param: { + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [ + [BigNumber.from(ethers.utils.parseEther("0.5"))], + ], + ADDRESS_2DARRAY: [ + [darc1.address] + ], + BYTES: [] + } + },], + } + ) + + + // check the balance of darc1 in darc2 + // console.log("darc1 balance in darc2: ", ethers.utils.formatEther(await darc2.getWithdrawableCashBalance(darc1.address))); + // console.log(await darc2.getWithdrawableCashBalance(darc1.address)); + expect((await darc2.getWithdrawableCashBalance(darc1.address)).toString()).to.equal(ethers.utils.parseEther("0.5").toString()); + + return; + + //todo: fixing the script below + // 2. let DARC1 directly withdraw cash from DARC2, sending 0.5 ETH back to DARC1 + const abiEncodedDARC2_withdraw_0_5_ETH = darc2.interface.encodeFunctionData("withdrawCash", [BigNumber.from(ethers.utils.parseEther("0"))]); + + + await darc1.entrance( + { + programOperatorAddress: programOperatorAddress, + notes: "withdraw 0.5 ETH from DARC2", + operations: [{ + operatorAddress:programOperatorAddress, + opcode: 25, // call contract abi + param: { + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [ + [BigNumber.from(0)], + ], + ADDRESS_2DARRAY: [ + [darc2.address] + ], + BYTES: abiEncodedDARC2_withdraw_0_5_ETH + } + }], + } + ); + + // 3. double check the balance of darc1 and darc2 + console.log("darc1 balance: ", ethers.utils.formatEther(await ethers.provider.getBalance(darc1.address))); + console.log("darc2 balance: ", ethers.utils.formatEther(await ethers.provider.getBalance(darc2.address))); + }); + + +}); \ No newline at end of file diff --git a/darc-protocol/test/operationUnitTest/batch_add_and_enable_plugin_test.ts b/darc-protocol/test/operationUnitTest/batch_add_and_enable_plugin_test.ts index 27a933f..09e18bd 100644 --- a/darc-protocol/test/operationUnitTest/batch_add_and_enable_plugin_test.ts +++ b/darc-protocol/test/operationUnitTest/batch_add_and_enable_plugin_test.ts @@ -82,7 +82,7 @@ describe("test for batch add and enable plugins", function () { notes: "add and enable a before-operation plugin: user with address = target1 cannnot operate the darc", operations: [{ operatorAddress: initProgram.programOperatorAddress, - opcode: 15, // create token class + opcode: 15, // add and enable a before-operation plugin param: { From 3bb4909d03e1d5655fdf243efc9727dd17d72200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AB=8B=E5=85=9A=20Lidang?= Date: Sun, 24 Dec 2023 10:08:50 -0600 Subject: [PATCH 02/14] update --- darc-js/src/darcBinary/DARC-latest.json | 29 ++----------------- darc-js/src/types/basicTypes.ts | 2 -- .../protocol/MachineStateManager.sol | 2 +- darc-protocol/contracts/protocol/Opcodes.sol | 2 +- .../contracts/protocol/Plugin/Plugin.sol | 3 -- .../PluginJudgementTest.sol | 2 +- .../MultiDARCTest/Multi_DARC_call_test.ts | 1 - .../Multi_DARC_call_with_payment_test.ts | 3 +- .../batch_add_and_enable_plugin_test.ts | 1 - 9 files changed, 6 insertions(+), 39 deletions(-) diff --git a/darc-js/src/darcBinary/DARC-latest.json b/darc-js/src/darcBinary/DARC-latest.json index e7f48e4..8168f51 100644 --- a/darc-js/src/darcBinary/DARC-latest.json +++ b/darc-js/src/darcBinary/DARC-latest.json @@ -179,11 +179,6 @@ "name": "ADDRESS_2DARRAY", "type": "address[][]" }, - { - "internalType": "string[][]", - "name": "STRING_2DARRAY", - "type": "string[][]" - }, { "internalType": "bytes", "name": "BYTES", @@ -460,11 +455,6 @@ "name": "ADDRESS_2DARRAY", "type": "address[][]" }, - { - "internalType": "string[][]", - "name": "STRING_2DARRAY", - "type": "string[][]" - }, { "internalType": "bytes", "name": "BYTES", @@ -566,11 +556,6 @@ "name": "ADDRESS_2DARRAY", "type": "address[][]" }, - { - "internalType": "string[][]", - "name": "STRING_2DARRAY", - "type": "string[][]" - }, { "internalType": "bytes", "name": "BYTES", @@ -955,11 +940,6 @@ "name": "ADDRESS_2DARRAY", "type": "address[][]" }, - { - "internalType": "string[][]", - "name": "STRING_2DARRAY", - "type": "string[][]" - }, { "internalType": "bytes", "name": "BYTES", @@ -1234,11 +1214,6 @@ "name": "ADDRESS_2DARRAY", "type": "address[][]" }, - { - "internalType": "string[][]", - "name": "STRING_2DARRAY", - "type": "string[][]" - }, { "internalType": "bytes", "name": "BYTES", @@ -1375,8 +1350,8 @@ "type": "function" } ], - "bytecode": "0x60808060405234620000195762016b6d90816200001f8239f35b600080fdfe6108a08060405260043610156200001557600080fd5b600080608052803560e01c918263036ee8501462003de4575081630e5a3b291462003a7657816310ade3ea1462003a445781631797631d14620039d15781631c75255a146200397b57816323b65c7814620039085781632514a6b414620036c857816341d1a4381462003695578163448ce79114620026ab57816356424cf414620025c35781635c00d98714620025745781635d0b184914620025505781635f1231ea146200245c5781635f5d5f0014620023e9578163681ece9d14620023a657816373cc5570146200229657816379532bfe14620022725781637daa10ce14620022535781638129fc1c1462001e555750806383e4cccf1462001bd1578063864f9f7a1462001b8f57806386ad77e2146200181e5780638c7a63ae14620017a45780639f36145f14620004e1578063a064c4f11462000416578063acf80bc414620003d4578063aefca42a14620003b0578063bba51030146200021b578063d5a172f214620001ec5763d6a93c51146200018f57600080fd5b34620001e65760805180600319360112620001e3575b6127108110620001bb575b602090604051908152f35b60ff60078260031b01541615620001dd57620001d79062005d5b565b620001a5565b620001b0565b80fd5b60805180fd5b34620001e65760805180600319360112620001e35762027126546040516001600160a01b039091168152602090f35b34620001e65760805180600319360112620001e3576202712e548091526202712b906020828152600380604060805120015493620002766200025d8662003f36565b956200026d604051978862003f12565b80875262003f36565b8584019190601f19013683376080515b8560805152818552836040608051200154811015620003595760405163083a348760e31b815260048101829052602486828281305afa9182156200034c57608051926200030e575b50620002db838a62005dc7565b9086831015620002f8575052620002f29062005d5b565b62000286565b60808051634e487b7160e01b9052602160045251fd5b9091508681813d831162000344575b62000329818362003f12565b81010312620001e6575185811015620001e6579089620002ce565b503d6200031d565b6040513d608051823e3d90fd5b84878460405192839281840190828552518091526040840192916080515b8281106200038757505050500390f35b91938395509080826200039f60019483975162004033565b019501910191859493919262000377565b34620001e65760805180600319360112620001e35760206202712854604051908152f35b34620001e6576020366003190112620001e6576001600160a01b03620003f962003e06565b166080515262013887602052602060406080512054604051908152f35b34620001e6576020366003190112620001e657600435612710811015620004c957806200044f6001620004569360031b01549162007044565b9062006fbe565b90156200046857602090604051908152f35b60405162461bcd60e51b815260206004820152603360248201527f73756d566f74696e67576569676874466f72546f6b656e436c6173733a20766f60448201527274696e67576569676874206f766572666c6f7760681b6064820152608490fd5b634e487b7160e01b6080515260326004526024608051fd5b34620001e6576020366003190112620001e657600435608051526202712b602052604060805120604051620005168162003ebe565b81546001600160a01b03168152600182018054909290620005378162003f36565b9062000547604051928362003f12565b808252602082019460805152608051946020862095905b828210620005e957620005be868686602083015260405162000591816200058981600286016200537c565b038262003f12565b604083015260ff600782015491600960088201549101549060405195869560a0875260a08701906200575f565b9360208601526040850152620005da6060850183831662004033565b60081c16151560808301520390f35b604051620005f78162003ebe565b87546001600160a01b0381168252602660a082901c60ff1610156200178c5760a01c60ff1660208201526040516200062f8162003ea1565b6200063d60018a016200541a565b8152600289016040518082602082945493848152019060805152608051926020842093905b80601f830110620015b9576200079b945491818110620015a2575b81811062001588575b8181106200156e575b81811062001554575b8181106200153b575b81811062001521575b81811062001507575b818110620014ed575b818110620014d3575b818110620014b9575b8181106200149f575b81811062001485575b8181106200146b575b81811062001451575b81811062001437575b8181106200141d575b81811062001403575b818110620013e9575b818110620013cf575b818110620013b5575b8181106200139b575b81811062001381575b81811062001367575b8181106200134d575b81811062001333575b81811062001319575b818110620012ff575b818110620012e5575b818110620012cb575b818110620012b1575b81811062001297575b1062001286575b50038262003f12565b6020820152600389018054620007b18162003f36565b91620007c1604051938462003f12565b818352602083019060805152608051906020822091905b8382106200126557505050506040820152600489018054620007fa8162003f36565b916200080a604051938462003f12565b818352602083019060805152608051906020822091905b838210620010fc57505050506060820152600589016040519081602082549182815201916080515260805190602082205b81601f84011062000e0b5784600997946020979460019a97946200099894549181811062000ded575b81811062000dcc575b81811062000dab575b81811062000d8a575b81811062000d6a575b81811062000d49575b81811062000d28575b81811062000d07575b81811062000ce6575b81811062000cc5575b81811062000ca4575b81811062000c83575b81811062000c62575b81811062000c41575b81811062000c20575b81811062000bff575b81811062000bde575b81811062000bbd575b81811062000b9c575b81811062000b7b575b81811062000b5a575b81811062000b39575b81811062000b18575b81811062000af7575b81811062000ad6575b81811062000ab5575b81811062000a94575b81811062000a73575b81811062000a52575b81811062000a31575b81811062000a10575b10620009f55750038262003f12565b6080820152620009ab60068d016200557e565b60a0820152620009be60078d0162005637565b60c08201526008620009dc8d6200058960405180948193016200537c565b60e082015260408201528152019701910190956200055e565b90889160f81c62000a068162004f79565b8152013862000792565b928a8d9160ff8560f01c1662000a268162004f79565b815201930162000989565b928a8d9160ff8560e81c1662000a478162004f79565b815201930162000980565b928a8d9160ff8560e01c1662000a688162004f79565b815201930162000977565b928a8d9160ff8560d81c1662000a898162004f79565b81520193016200096e565b928a8d9160ff8560d01c1662000aaa8162004f79565b815201930162000965565b928a8d9160ff8560c81c1662000acb8162004f79565b81520193016200095c565b928a8d9160ff8560c01c1662000aec8162004f79565b815201930162000953565b928a8d9160ff8560b81c1662000b0d8162004f79565b81520193016200094a565b928a8d9160ff8560b01c1662000b2e8162004f79565b815201930162000941565b928a8d9160ff8560a81c1662000b4f8162004f79565b815201930162000938565b928a8d9160ff8560a01c1662000b708162004f79565b81520193016200092f565b928a8d9160ff8560981c1662000b918162004f79565b815201930162000926565b928a8d9160ff8560901c1662000bb28162004f79565b81520193016200091d565b928a8d9160ff8560881c1662000bd38162004f79565b815201930162000914565b928a8d9160ff8560801c1662000bf48162004f79565b81520193016200090b565b928a8d9160ff8560781c1662000c158162004f79565b815201930162000902565b928a8d9160ff8560701c1662000c368162004f79565b8152019301620008f9565b928a8d9160ff8560681c1662000c578162004f79565b8152019301620008f0565b928a8d9160ff8560601c1662000c788162004f79565b8152019301620008e7565b928a8d9160ff8560581c1662000c998162004f79565b8152019301620008de565b928a8d9160ff8560501c1662000cba8162004f79565b8152019301620008d5565b928a8d9160ff8560481c1662000cdb8162004f79565b8152019301620008cc565b928a8d9160ff8560401c1662000cfc8162004f79565b8152019301620008c3565b928a8d9160ff8560381c1662000d1d8162004f79565b8152019301620008ba565b928a8d9160ff8560301c1662000d3e8162004f79565b8152019301620008b1565b928a8d9160ff8560281c1662000d5f8162004f79565b8152019301620008a8565b928a8d9160ff85831c1662000d7f8162004f79565b81520193016200089f565b928a8d9160ff8560181c1662000da08162004f79565b815201930162000896565b928a8d9160ff8560101c1662000dc18162004f79565b81520193016200088d565b928a8d9160ff8560081c1662000de28162004f79565b815201930162000884565b928a8d9160ff851662000e008162004f79565b81520193016200087b565b926001610400602092865460ff811662000e258162004f79565b825260ff8160081c1662000e398162004f79565b8583015260ff8160101c1662000e4f8162004f79565b604083015260ff8160181c1662000e668162004f79565b606083015260ff81861c1662000e7c8162004f79565b608083015260ff8160281c1662000e938162004f79565b60a083015260ff81818160301c1662000eac8162004f79565b60c09081860152828260381c1662000ec48162004f79565b60e0860152828260401c1662000eda8162004f79565b610100860152828260481c1662000ef18162004f79565b610120860152828260501c1662000f088162004f79565b610140860152828260581c1662000f1f8162004f79565b610160860152828260601c1662000f368162004f79565b610180860152828260681c1662000f4d8162004f79565b6101a0860152828260701c1662000f648162004f79565b6101c0860152828260781c1662000f7b8162004f79565b6101e0860152828260801c1662000f928162004f79565b610200860152828260881c1662000fa98162004f79565b610220860152828260901c1662000fc08162004f79565b610240860152828260981c1662000fd78162004f79565b610260860152828260a01c1662000fee8162004f79565b610280860152828260a81c16620010058162004f79565b6102a0860152828260b01c166200101c8162004f79565b6102c0860152828260b81c16620010338162004f79565b6102e08601521c16620010468162004f79565b61030083015260ff8160c81c166200105e8162004f79565b61032083015260ff8160d01c16620010768162004f79565b61034083015260ff8160d81c166200108e8162004f79565b61036083015260ff8160e01c16620010a68162004f79565b61038083015260ff8160e81c16620010be8162004f79565b6103a083015260ff8160f01c16620010d68162004f79565b6103c083015260f81c620010ea8162004f79565b6103e082015201940192019162000852565b6040516200110a8162003ea1565b6200111a60ff8554168262005564565b60018401546020820152600284018054620011358162003f36565b9162001145604051938462003f12565b818352602083019060805152608051906020822091905b838210620011d457505050506001928260209260406006950152600387015460608201526040516200119781620005898160048c016200537c565b608082015260ff6005880154818116151560a0840152818160081c16151560c084015260101c16151560e082015281520193019101909162000821565b600190602060405191620011e88362003e69565b85548352838601549260ff8416620012008162004f79565b838201526200123060ff6008958181881c166200121d8162003fcc565b604085015260101c166060830162005571565b6200123e6002880162005488565b6080820152620012516003880162005694565b60a08201528152019301910190916200115c565b600760206001926200127786620054dd565b815201930191019091620007d8565b60f81c151581526020018d62000792565b92602060019160ff8560f01c16151581520193016200078b565b92602060019160ff8560e81c161515815201930162000782565b92602060019160ff8560e01c161515815201930162000779565b92602060019160ff8560d81c161515815201930162000770565b92602060019160ff8560d01c161515815201930162000767565b92602060019160ff8560c81c16151581520193016200075e565b92602060019160ff8560c01c161515815201930162000755565b92602060019160ff8560b81c16151581520193016200074c565b92602060019160ff8560b01c161515815201930162000743565b92602060019160ff8560a81c16151581520193016200073a565b92602060019160ff8560a01c161515815201930162000731565b92602060019160ff8560981c161515815201930162000728565b92602060019160ff8560901c16151581520193016200071f565b92602060019160ff8560881c161515815201930162000716565b92602060019160ff8560801c16151581520193016200070d565b92602060019160ff8560781c161515815201930162000704565b92602060019160ff8560701c1615158152019301620006fb565b92602060019160ff8560681c1615158152019301620006f2565b92602060019160ff8560601c1615158152019301620006e9565b92602060019160ff8560581c1615158152019301620006e0565b92602060019160ff8560501c1615158152019301620006d7565b92602060019160ff8560481c1615158152019301620006ce565b92602060019160ff8560401c1615158152019301620006c5565b92602060019160ff8560381c1615158152019301620006bc565b92602060019160ff8560301c1615158152019301620006b3565b92602060019160ff8560281c1615158152019301620006aa565b92602060019160ff85831c1615158152019301620006a1565b92602060019160ff8560181c161515815201930162000698565b92602060019160ff8560101c16151581520193016200068f565b92602060019160ff8560081c161515815201930162000686565b92602060019160ff8516151581520193016200067d565b916020919350610400600191865460ff81161515825260ff8160081c1615158583015260ff8160101c161515604083015260ff816060828260181c161515818601528282891c1615156080860152828260281c16151560a0860152828260c092828260301c16151584890152828260381c16151560e0890152828260401c161515610100890152828260481c161515610120890152828260501c161515610140890152828260581c1615156101608901521c161515610180860152828260681c1615156101a0860152828260701c1615156101c0860152828260781c1615156101e0860152828260801c161515610200860152828260881c161515610220860152828260901c161515610240860152828260981c161515610260860152828260a01c161515610280860152828260a81c1615156102a0860152828260b01c1615156102c0860152828260b81c1615156102e08601521c16151561030083015260ff8160c81c16151561032083015260ff8160d01c16151561034083015260ff8160d81c16151561036083015260ff8160e01c16151561038083015260ff8160e81c1615156103a083015260ff8160f01c1615156103c083015260f81c15156103e082015201940192018492939162000662565b634e487b7160e01b6080515260216004526024608051fd5b34620001e6576020366003190112620001e657600435612710811015620004c95760031b6001810154600282015491620018146005620017f56006840154936200058960405180948193016200537c565b6040519485948552602085015260806040850152608084019062004f52565b9060608301520390f35b34620001e65760805180600319360112620001e357620138828054620018448162003f36565b9162001854604051938462003f12565b8183526020830190608051526080516020812090915b83831062001a3a578462013883908154620018858162003f36565b9262001895604051948562003f12565b8184526020840190608051526080516020812090915b838310620018e557620018d285620018e18860405193849360408552604085019062005106565b90838203602085015262005106565b0390f35b604051620018f38162003ea1565b6200190360ff8454168262005564565b600183015460208201526002830180546200191e8162003f36565b916200192e604051938462003f12565b8183526020830190608051526080516020812090915b838310620019bc57505050506001928260209260406006950152600386015460608201526040516200197f81620005898160048b016200537c565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e0820152815201920192019190620018ab565b600190602060405191620019d08362003e69565b84548352838501549260ff8416620019e88162004f79565b8382015262001a0560ff6008958181881c166200121d8162003fcc565b62001a136002870162005488565b608082015262001a266003870162005694565b60a082015281520192019201919062001944565b60405162001a488162003ea1565b62001a5860ff8454168262005564565b6001830154602082015260028301805462001a738162003f36565b9162001a83604051938462003f12565b8183526020830190608051526080516020812090915b83831062001b11575050505060019282602092604060069501526003860154606082015260405162001ad481620005898160048b016200537c565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e08201528152019201920191906200186a565b60019060206040519162001b258362003e69565b84548352838501549260ff841662001b3d8162004f79565b8382015262001b5a60ff6008958181881c166200121d8162003fcc565b62001b686002870162005488565b608082015262001b7b6003870162005694565b60a082015281520192019201919062001a99565b34620001e6576020366003190112620001e6576001600160a01b0362001bb462003e06565b166080515262013885602052602060406080512054604051908152f35b34620001e657602080600319360112620001e6576004359062001c194783111562001c1262001c008562006156565b62001c0b4762006156565b9062005e0f565b9062005d28565b3360805152604062001c906201388580845262001c6683608051205486111562001c1262001c478862006156565b336080515284885262001c5f87608051205462006156565b9062005e7b565b336080515280845262001c7f858460805120546200611b565b929062001c1262001c478862006156565b33608051528352608051908282205520541562001cd4575b5060805180808381949382941562001cca575b3390f1156200034c5760805180f35b506108fc62001cbb565b6201388680549162001ce68362005ee3565b9160805193845b81811062001de257505062001d028462005ee3565b805191906001600160401b03831162001dca57839062001d228462006054565b0190608051526080519280842090845b84811062001dae5750505050505b82811062001d5057505062001ca8565b62001da89062001da26001600160a01b0362001d6d838662005dc7565b511662001d7a8362005f38565b9080546001600160a01b0360039390931b83811b80199092169390941690931b909216179055565b62005d5b565b62001d40565b83516001600160a01b0316838201559281019260010162001d32565b634e487b7160e01b6080515260416004526024608051fd5b62001ded8162005f38565b90546001600160a01b03916003913391831b1c83160362001e1c575b505062001e169062005d5b565b62001ced565b9662001e4c91839862001e3362001e169562005f38565b9054911b1c1662001e45828962005dc7565b5262005d5b565b95908862001e09565b34620001e65760805180600319360112620001e357506202712680546001600160a01b0319163317905562027129805460ff1916600190811790915560405190919062001ea28162003ef6565b608051905262013882805482825580620021d0575b506080515260405162001eca8162003ef6565b608051905260805180620021b95750620138839081548183558062002137575b5050608051526127106202712a5560405162001f068162003eda565b8181526080515b60208082101562001f86576040516020929162001f2a8262003e69565b6080518252608051818301526080516040830152608051606090818401528060808401526040519062001f5d8262003e85565b80825280838301528060408301528080830152608082015260a083015282850101520162001f0d565b83620021248460405162001f9a8162003ef6565b608051815260405162001fad8162003ef6565b608051815260405162001fc08162003ef6565b608051815260405162001fd38162003ef6565b60805181526040519062001fe78262003ef6565b60805182526040519262001ffb8462003ef6565b6080518452604051946200200f8662003e85565b8552602085015260408401526060830152608082015260405191620020348362003e69565b60805183526003602084015260805160408401526080516060840152608083015260a0820152620020658262005d81565b52620020718162005d81565b50620020cc604051620020848162003ea1565b600481528460208201528260408201526080516060820152604051620020aa8162003ef6565b608051815260808201528460a08201528460c08201528460e082015262006e3b565b60405190620020db8262003ea1565b6002825283602083015260408201526080516060820152604051620021008162003ef6565b608051815260808201528260a08201528260c082015260805160e082015262006e88565b6113886201388b556201388c5560805180f35b6006918183029183830403620021a5578060209160805284815220908101905b81811062002166575062001eea565b8290608051808255868201556200218060028201620065c9565b60805160038201556200219660048201620063cd565b60805160058201550162002157565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b90526041600452608051602490fd5b60069080820290828204036200223f578360805282845260208420908101905b8181106200220057505062001eb7565b8290608051808255878201556200221a60028201620065c9565b60805160038201556200223060048201620063cd565b608051600582015501620021f0565b634e487b7160e01b84526011600452602484fd5b34620001e65760805180600319360112620001e3576020604051338152f35b34620001e65760805180600319360112620001e35760206202712d54604051908152f35b6020366003190112620001e6576004356001600160401b038111620001e657620022c59036906004016200431f565b80516001600160a01b0390620023189082166200230f620022f0620022ea3362016890565b62005c24565b62002308620023028688511662016890565b62005c8a565b9062005ce1565b90331462005d28565b6080519060208301915b8251805182101562002382579062001da26200237c92846200234684339362005dc7565b5151161462001c126200235d620022ea3362016890565b62002308620023028862002373888c5162005dc7565b51511662016890565b62002322565b620018e16200239186620072af565b60405191829160208352602083019062004f52565b34620001e6576020366003190112620001e657600435612710811015620004c957620023dc6004620018e19260031b01620055db565b6040519182918262003fed565b34620001e65760805180600319360112620001e3576040518062013881918254808252602080920193608051526080519180832092905b8282106200243b57620018e185620023dc8189038262003f12565b83546001600160a01b03168652948501946001938401939091019062002420565b34620001e657602080600319360112620001e6576200247a62003e06565b604051620024888162003e37565b60805181526080518382015260606040820152606060805191015260018060a01b03166080515262013880815260406080512060405190620024ca8262003e37565b6200254581549160ff83161515845260ff8585019360081c161515835260026040519162002509836200250181600185016200537c565b038462003f12565b6040860192835201549260608501938452604051958695818752511515908601525115156040850152516080606085015260a084019062004f52565b905160808301520390f35b34620001e65760805180600319360112620001e35760206202712e54604051908152f35b34620001e6576020366003190112620001e657600435612710811015620004c957620025bb620025b3826200044f600260209560031b01549162007044565b919062006ef4565b604051908152f35b34620001e65760805180600319360112620001e3576201388b5462002622620025eb6201637b565b91620025fd6127109384831062005d28565b620026176201388e546201388c54111562001c12620163e9565b6201388d5462006fbe565b9190506200262f6201643f565b5060805191825b82811062002659575b60206200264f8585850462007194565b9050604051908152f35b909260ff60078360031b01541615620026a357816200268d62002699926200268662001da2969562006f61565b9062007106565b949062001c126201643f565b9290919262002636565b92906200263f565b34620001e6576040366003190112620001e6576004356001600160401b038111620001e657620026e090369060040162004041565b6024356001600160401b038111620001e657620027029036906004016200431f565b620271298054600260ff8216620027198162003fcc565b14620036505760ff191660021790556202712e54600181019081106200331457806202712e5560805190815b8451811015620027a8578260026200276962002762848962005dc7565b5162015654565b5001541062002784575b6200277e9062005d5b565b62002745565b91506200277e60026200279c62002762858862005dc7565b50015492905062002773565b50919060805191825b85518110156200280e57620027cb62002762828862005dc7565b508460038092015410620027ec575b50620027e69062005d5b565b620027b1565b8194506200280362002762620027e6938962005dc7565b5001549390620027da565b508493608051526202712b60205260805190604082209160018060a01b0382511660018060a01b03198454161783556020820151805191600160401b8311620021b95750600184015482600186015580831062003474575b50608080516001860190525160208082209392015b82821062002de3575050505090600260406200289b930151910162006816565b620028a7835162005ee3565b6202712e54608051526202712b60205260805190600560408320019080519260018060401b038411620021b95750602090620028e48484620060fb565b01906080515260805160208120905b83811062002dce57505050506200290b835162005ee3565b6202712e54608051526202712b60205260805190600460408320019080519260018060401b038411620021b95750602090620029488484620060fb565b01906080515260805160208120905b83811062002db957505050506200296f835162005ee3565b906202712e54608051526202712b602052608051600660408220019280519160018060401b038311620021b95750602090620029ac8386620060fb565b0192608051526080519260208420845b83811062002da45750505050620029d4904262007106565b90916202712e5490526202712b602052600760406080512001551562002d64576202712e54608051526202712b6020526040600862002a1d608051936007848620015462007106565b9290932001551562002d21576202712e54608051526202712b602052600960406080512001600260ff1982541617905562002a59815162005ee3565b6202712e54608051526202712b602052608051600360408220019180519160018060401b038311620021b9575060209062002a958385620060fb565b0191608051526080519160208320835b83811062002d0c5785855b815181101562002b15578062001da262002acf62002b0f938562005dc7565b516202712e54608051526202712b60205262002af48360036040608051200162005fe6565b90919082549060031b600019811b9283911b16911916179055565b62002ab0565b50608051905b805182101562002d06576202712e549182608051526202712b60205262002b5c62002b4f8260036040608051200162005fe6565b90549060031b1c62015654565b50549062002b6a8262005ee3565b916080515b81811062002cb8575050608051805b835182101562002c835762002b94828562005dc7565b516127109081811015620004c95760031b6001015462002bb5848762005dc7565b5191821015620004c957600662002bd29260031b01549062006fbe565b901562002c3f5762002be49162007106565b91901562002bfe5762002bf79062005d5b565b9062002b7e565b60405162461bcd60e51b8152602060048201526019602482015278746f74616c566f74696e67506f776572206f766572666c6f7760381b6044820152606490fd5b606460405162461bcd60e51b815260206004820152602060248201527f63757272656e74436c617373566f74696e67506f776572206f766572666c6f776044820152fd5b905062001da291925062002cb19394608051526202712b60205262002af48360066040608051200162005fe6565b9062002b1b565b62002d009086608051526202712b60205262002ced8162002ce662002b4f8760036040608051200162005fe6565b5062005fe6565b90549060031b1c62001e45828762005dc7565b62002b6f565b60805180f35b60019060208451940193818401550162002aa5565b60405162461bcd60e51b815260206004820152601b60248201527a657865637574696e6720656e642074696d65206f766572666c6f7760281b6044820152606490fd5b60405162461bcd60e51b8152602060048201526018602482015277766f74696e6720656e642074696d65206f766572666c6f7760401b6044820152606490fd5b600190602084519401938184015501620029bc565b60019060208451940193818401550162002957565b600190602084519401938184015501620028f3565b805180518554602083015190916001600160a01b03169060268110156200178c576001600160a81b03199092161760a09190911b60ff60a01b16178555604001518051805190600187019060209062002e3d84846200645e565b019060805152608051906020822091905b83821062003454575050505060208101518051906001600160401b03821162001dca576020600288019162002e848484620157b7565b019060805152608051916020832090835b8160051c8110620034195750601f1981168103620033d6575b5050506040820151805191600160401b8311620021b9575060038701548260038901558083106200334d575b506080805160038901905251602080822092015b8382106200332c57505050506060810151805190600160401b821162001dca5760048701548260048901558083106200328f575b506080805160048901905251602080822092015b8382106200326e5750505050608081015180516001600160401b03811162001dca576020600588019262002f6b8385620157b7565b0191608051526080519060208220915b8160051c81106200322e5750601f1981168103620031e0575b5050506006850160a0820151602081519162002fb18385620064ec565b0191608051526080516020812090925b8284106200317a57505050506007850160c0820151602081519162002fe78385620064ec565b0191608051526080516020812090925b8284106200310b575050505060e001518051906001600160401b03821162001dca5762003037826200302d60088901546200533f565b60088901620067cc565b60805190602091601f841160011462003090575092826009936020936001966080519262003084575b5050600019600383901b1c191690851b1760088801555b019401910190926200287b565b015190508e8062003060565b600888019052608051602081209291905b601f1985168110620030f2575083602093600196938793600997601f19811610620030d8575b505050811b01600888015562003077565b015160001960f88460031b161c191690558e8080620030c7565b91926020600181928685015181550194019201620030a1565b80518051906001600160401b03821162001dca576020906200312e8386620060fb565b01836080515260805160208120905b8381106200315c57505050506001602081920192019301929062002ff7565b82516001600160a01b0316818301556020909201916001016200313d565b80518051906001600160401b03821162001dca576020906200319d8386620060fb565b01836080515260805160208120905b838110620031cb57505050506001602081920192019301929062002fc1565b600190602084519401938184015501620031ac565b60805192835b601f198316830381106200320457505060051c01558a808062002f94565b9093602062003224600192848851916200321e8362004f79565b62015821565b95019101620031e6565b608051805b602081106200324a57508382015560010162002f7b565b9490602062003264600192888551916200321e8362004f79565b9201950162003233565b60066020826200328260019451876200692c565b0193019101909162002f36565b600681810204810362003314576006838102048303620033145760048801608051526020608051208360060281015b8260060282018110620032d357505062002f22565b6006906080518082556001820155620032ef60028201620065c9565b60805160038201556200330560048201620063cd565b608051600582015501620032be565b634e487b7160e01b6080515260116004526024608051fd5b600760208262003340600194518762015675565b0193019101909162002eee565b600781810204810362003314576007838102048303620033145760038801608051526020608051208360070281015b82600702820181106200339157505062002eda565b806200339f60079262006078565b6080518060018301558060028301558060038301556004820155620033c760058201620063cd565b6080516006820155016200337c565b8392845b601f19831683038110620033f857505060051c01558b808062002eae565b909360206200340f60019284885115159162015821565b95019101620033da565b84855b602081106200343357508382015560010162002e95565b949060206200344a60019288855115159162015821565b920195016200341c565b6001602082620034678394518762006816565b0193019101909162002e4e565b600981810204810362003314576009838102048303620033145760018501608051526020608051208360090281015b8260090282018110620034b857505062002866565b6080518155620034cb600182016200641f565b620034e16002820180549060805181556201578f565b600381015460805180600384015581620035de575b505060048101546080518060048401558162003559575b5050806200352860056009930180549060805181556201578f565b6200353660068201620064ad565b6200354460078201620064ad565b6200355260088201620063cd565b01620034a3565b6006828102048203620035c757506004820160805152602060805120906006028101905b818110156200350d576006906080518082556001820155620035a260028201620065c9565b6080516003820155620035b860048201620063cd565b6080516005820155016200357d565b634e487b7160e01b90526011600452608051602490fd5b6007828102048203620035c757506003820160805152602060805120906007028101905b81811015620034f657806200361960079262006078565b60805180600183015580600283015580600383015560048201556200364160058201620063cd565b60805160068201550162003602565b60405162461bcd60e51b815260206004820152601d60248201527f766f74696e6720697320616c726561647920696e2070726f67726573730000006044820152606490fd5b34620001e6576020366003190112620001e6576020620036b760043562015989565b620036c6604051809262004033565bf35b34620001e657602080600319360112620001e657600435620036f64782111562001c1262001c008462006156565b33608051526201388790818352620037406040608051205482111562001c12620037208462006156565b3360805152858752620037396040608051205462006156565b90620062d0565b3360805152818352620037886200375e82604060805120546200611b565b919062001c126200376f8562006156565b3360805152868852620037396040608051205462006156565b336080515282845260805180809381936040832055818115620038fe575b3390f1156200034c57336080515281526040608051205415620037c95760805180f35b6201388890815490620037dc8262005ee3565b9260805192835b81811062003892575050620037f88362005ee3565b805191906001600160401b03831162001dca578390620038188462006018565b0190608051526080519280842090845b848110620038765750505050505b8181106200384657505062002d06565b620038709062001da26001600160a01b0362003863838762005dc7565b511662001d7a8362005f1b565b62003836565b83516001600160a01b0316838201559281019260010162003828565b6200389d8162005f1b565b90546001600160a01b03916003913391831b1c831603620038cc575b5050620038c69062005d5b565b620037e3565b95620038f5918397620038e3620038c69562005f1b565b9054911b1c1662001e45828a62005dc7565b949087620038b9565b506108fc620037a6565b34620001e65760805180600319360112620001e3576040518062013886918254808252602080920193608051526080519180832092905b8282106200395a57620018e185620023dc8189038262003f12565b83546001600160a01b0316865294850194600193840193909101906200393f565b34620001e6576040366003190112620001e6576024356001600160a01b0381169060043590829003620001e657612710811015620004c95760039160805152811b01602052602060406080512054604051908152f35b34620001e65760805180600319360112620001e3576040518062013888918254808252602080920193608051526080519180832092905b82821062003a2357620018e185620023dc8189038262003f12565b83546001600160a01b03168652948501946001938401939091019062003a08565b34620001e65760805180600319360112620001e357602060ff6202712954166040519062003a728162003fcc565b8152f35b34620001e6576040366003190112620001e65762003a9362003e06565b60249081356001600160401b038111620001e65762003ab790369060040162003f5c565b91600260ff62027129541662003acd8162003fcc565b0362003da4576202712d5442101562003d665760018060a01b0382169182608051526202712c906020938285526080519560408720966202712e978854809252875260ff604060805120541662003d285781519481608051526202712b938489526003968760406080512001540362003cc257608051528752608051906040822091528652608051966040882060019889918260ff19825416179055905b62003b765760805180f35b825181101562003cbc5762003b8c818462005dc7565b511562003c43578154806080515284895262003be862003bcb62003bb98460046040608051200162005fe6565b9054908a1b1c62002686858a62015835565b909260805152868b5262002af48460046040608051200162005fe6565b1562003c005762003bf99062005d5b565b8862003b6b565b60405162461bcd60e51b815260048101899052601c818901527b766f74696e6720666f7220706f776572596573206f766572666c6f7760201b6044820152606490fd5b8154806080515284895262003c6962003bcb62003bb98460046040608051200162005fe6565b1562003c7a5762003bf99062005d5b565b60405162461bcd60e51b815260048101899052601b818901527a766f74696e6720666f7220706f7765724e6f206f766572666c6f7760281b6044820152606490fd5b62002d06565b60405162461bcd60e51b8152600481018a90526039818a01527f746865206e756d626572206f6620766f74657320646f6573206e6f74206d6174604482015278636820746865206e756d626572206f6620706f6c696369657360381b6064820152608490fd5b60405162461bcd60e51b815260048101889052601781880152761d9bdd195c881a185cc8185b1c9958591e481d9bdd1959604a1b6044820152606490fd5b60649060176040519162461bcd60e51b835260206004840152820152761d9bdd1a5b99c81c195c9a5bd9081a185cc8195b991959604a1b6044820152fd5b60649060196040519162461bcd60e51b83526020600484015282015278766f74696e67206973206e6f7420696e2070726f677265737360381b6044820152fd5b3462003e02578160031936011262003e025760209062027127548152f35b5080fd5b600435906001600160a01b038216820362003e1d57565b600080fd5b35906001600160a01b038216820362003e1d57565b608081019081106001600160401b0382111762003e5357604052565b634e487b7160e01b600052604160045260246000fd5b60c081019081106001600160401b0382111762003e5357604052565b60a081019081106001600160401b0382111762003e5357604052565b61010081019081106001600160401b0382111762003e5357604052565b606081019081106001600160401b0382111762003e5357604052565b604081019081106001600160401b0382111762003e5357604052565b602081019081106001600160401b0382111762003e5357604052565b601f909101601f19168101906001600160401b0382119082101762003e5357604052565b6001600160401b03811162003e535760051b60200190565b3590811515820362003e1d57565b81601f8201121562003e1d5780359162003f768362003f36565b9262003f86604051948562003f12565b808452602092838086019260051b82010192831162003e1d578301905b82821062003fb2575050505090565b83809162003fc08462003f4e565b81520191019062003fa3565b6004111562003fd757565b634e487b7160e01b600052602160045260246000fd5b6020908160408183019282815285518094520193019160005b82811062004015575050505090565b83516001600160a01b03168552938101939281019260010162004006565b90600382101562003fd75752565b81601f8201121562003e1d578035916200405b8362003f36565b926200406b604051948562003f12565b808452602092838086019260051b82010192831162003e1d578301905b82821062004097575050505090565b8135815290830190830162004088565b6001600160401b03811162003e5357601f01601f191660200190565b81601f8201121562003e1d57803590620040dd82620040a7565b92620040ed604051948562003f12565b8284526020838301011162003e1d57816000926020809301838601378301015290565b9080601f8301121562003e1d578135906200412b8262003f36565b926200413b604051948562003f12565b828452602092838086019160051b8301019280841162003e1d57848301915b8483106200416b5750505050505090565b82356001600160401b03811162003e1d5786916200418f84848094890101620040c3565b8152019201916200415a565b9080601f8301121562003e1d57813590620041b68262003f36565b92620041c6604051948562003f12565b828452602092838086019160051b8301019280841162003e1d57848301915b848310620041f65750505050505090565b82356001600160401b03811162003e1d5786916200421a8484809489010162004041565b815201920191620041e5565b9080601f8301121562003e1d57813591620042418362003f36565b92604092620042538451958662003f12565b8185526020938486019185600594851b8601019481861162003e1d57868101935b8685106200428757505050505050505090565b84356001600160401b03811162003e1d57820183603f8201121562003e1d578881013590620042b68262003f36565b91620042c58751938462003f12565b808352868b8401918a1b8301019186831162003e1d5791878c94929593015b818110620042fd57505082935081520194019362004274565b9193809193956200430e8462003e22565b8152019101918b93919492620042e4565b606091816106e0528061076052031262003e1d5760405190620043428262003ebe565b81620043516106e05162003e22565b83526106e05160208101356107e08190526001600160401b03811162003e1d5761076051910190601f8201121562003e1d5762004398620043a69135806107005262003f36565b604051806106c05262003f12565b6106c05161070051905260206106c051016107c05261076051610700519060206107e0516106e051019260051b8301011162003e1d576020016107a05290915b6107005160051b6107e0516106e051019060206107a0519183010181101562004eef57356001600160401b03811162003e1d57606091018061068052601f19906107605103011262003e1d5762004444604051806108805262003ebe565b620044556020610680510162003e22565b61088051526040610680510135602681101562003e1d5761088051602001526106805160608101356107208190526001600160401b031062003e1d5761010090601f19906060810135016107605103011262003e1d57620044bd604051806107805262003ea1565b6107205161068051016020810135906001600160401b03821162003e1d576020620044ef926107605192010162004110565b61078051526107205161068051016040810135906001600160401b03821162003e1d57602062004526926107605192010162003f5c565b6107805160200152610720516106805101906001600160401b0360608301351162003e1d5761076051603f6060840135840101121562003e1d5762004575602060608401358401013562003f36565b9262004585604051948562003f12565b6060830135808401602090810135808752610760516107205161068051938901969493019092019160059190911b82016040011162003e1d57604001925b61072051610680510160608601359081019086016020013560051b8101604001851015620046f2578435906001600160401b03821162003e1d5701610760519160e09283603f19848303011262003e1d57604051908482016001600160401b03811183821017620046dd576040908152840135906001600160401b03821162003e1d576040620046569286010162004041565b815260608301356020820152608080840135604083015260a09485850135606084015260c0916200468983870162003f4e565b90840152840135946001600160401b03861162003e1d5761010060209695620046cd92620046c2899860406107605191850101620040c3565b908601520162003f4e565b90820152815201930192620045c3565b60246000634e487b7160e01b81526041600452fd5b5050949391509150604061078051015261072051610680510160808101356108605260018060401b0360808201351162003e1d57610760519060808101350190603f8201121562003e1d5762004755602062004763920135806106a05262003f36565b604051806108005262003f12565b610800516106a05190526020610800510161066052610760516106a05160051b9060406108605161072051610680510101928301011162003e1d576040016106405290915b6106a05160051b6108605161072051610680510101906040610640519183010181101562004d1c5780356107408190526001600160401b031062003e1d5761010091603f199135016107605103011262003e1d576200480e604051806108405262003ea1565b6040610740516108605161072051610680510101010135600681101562003e1d57610840515260606107405161086051610720516106805101010101356020610840510152610740516108605161072051610680510101019160018060401b0360808401351162003e1d5761076051605f6080850135850101121562003e1d57620048b5620048a7604060808601358601013562003f36565b604051806108205262003f12565b610820805160808501358086016040013591829052915161076051610740516108605161072051610680516020959095019896940101019091019160051b82016060011162003e1d57606001925b6107405161086051610720516106805101010160808601359081019086016040013560051b810160600185101562004c04578435916001600160401b03831162003e1d5760c0605f198484016107605103011262003e1d576040516001600160401b0360c0820190811190821117620046dd5760c08101604052606084840101358152600560808585010135101562003e1d578284016080810135602083015260a00135600481101562003e1d57604082015260c08484010135603d81101562003e1d57606082015282840160e001356001600160401b03811162003e1d5761076051620049f8918587010160600162004041565b608082015282840161010001356001600160401b03811162003e1d5760a0605f1982878701016107605103011262003e1d576040519062004a398262003e85565b8486018101606001356001600160401b03811162003e1d576107605162004a699187890184010160600162004110565b82528486018101608001356001600160401b03811162003e1d576107605162004a9b918789018401016060016200419b565b6020830152848601810160a001356001600160401b03811162003e1d576107605162004ad09187890184010160600162004226565b6040830152848601810160c001356001600160401b03811162003e1d5761076051607f82848a8a01010101121562003e1d57606081838989010101013562004b188162003f36565b9162004b28604051938462003f12565b818352602083018960808a848861076051948860051b9301010101011162003e1d578960808a8488838282878601010101945b8860051b930101010101811062004bc057505050506060830152848601810160e00135946001600160401b03861162003e1d5760606020979662004baa938998610760519401010101620040c3565b608082015260a082015281520193019262004903565b8035916001600160401b03831162003e1d578a848860208f9660809562004bf789888594888861076051948c010101010162004110565b8152019501949562004b5b565b5050939250905061082051604061084051015260a08061074051610860516107205161068051010101013560606108405101526107405161086051610720516106805101010160c090818101359060018060401b03821162003e1d57604062004c749261076051920101620040c3565b608061084051015260e09162004c9e83610740516108605161072051610680510101010162003f4e565b9061084051015262004cc6610100610740516108605161072051610680510101010162003f4e565b9061084051015262004cee610120610740516108605161072051610680510101010162003f4e565b90610840510152610840516106605152602061066051016106605260206106405101610640529091620047a8565b5050610800516107805160600152610720516106805192939201916001600160401b0360a08401351162003e1d57610760519260a0810135810193603f8501121562003e1d5762004d71602085013562003f36565b9262004d81604051948562003f12565b60208581013580865261076051610720516106805193880196930160a0860135019160051b82016040011162003e1d57604001935b6040602088013560051b60a086013561072051610680510101010185101562004df55760058535101562003e1d57843581526020948501940162004db6565b5061078051608001949094526107205161068051919694955060c09350018281013591506001600160401b03821162003e1d57602062004e3c92610760519201016200419b565b6107805160a00152610720516106805160e092910182810135906001600160401b03821162003e1d57602062004e79926107605192010162004226565b610780519190910152610720516106805101610100810135906001600160401b03821162003e1d57602062004eb59261076051920101620040c3565b90610780510152610780516040610880510152610880516107c0515260206107c051016107c05260206107a051016107a0529091620043e6565b50506106c05160208201526106e05191929160408101356001600160401b03811162003e1d576107605160409262004f289201620040c3565b910152565b60005b83811062004f415750506000910152565b818101518382015260200162004f30565b9060209162004f6d8151809281855285808601910162004f2d565b601f01601f1916010190565b6005111562003fd757565b90815180825260208080930193019160005b82811062004fa5575050505090565b83518552938101939281019260010162004f96565b908082519081815260208091019281808460051b8301019501936000915b84831062004fe95750505050505090565b909192939495848062005009600193601f198682030187528a5162004f52565b980193019301919493929062004fd8565b90815180825260208092019182818360051b82019501936000915b848310620050465750505050505090565b90919293949584806200506283856001950387528a5162004f84565b980193019301919493929062005035565b90815180825260208092019182818360051b8201950193600080925b858410620050a1575050505050505090565b9091929387828297989903855288519082808351928381520192019085905b808210620050e25750505090806001929901940194019295949391906200508f565b82516001600160a01b031684528994938401939092019160019190910190620050c0565b9060208251918281520190819060208160051b84019401926000905b8282106200513257505050505090565b909192939481810385528551906101008082018351600681101562003fd757835260208401516020840152604084015191604084015281518091526101206020818501918360051b8601019301916000905b808210620051ee5750505050600192602092620051ba849360608085015190840152608080850151908483039085015262004f52565b9160a08082015115159083015260c08082015115159083015260e08091015115159101529701950192019092919262005122565b9091929361011f9c9b9c198682030184528451805182526020810151620052158162004f79565b602083015260408101516200522a8162003fcc565b604083015260609182820151603d81101562003fd75783820152620052ae6200529b620052886200526a608086015160c080608088015286019062004f84565b9460a080910151948181880391015284519080875286019062004fba565b602084015185820360208701526200501a565b6040830151848203604086015262005073565b838201519383820390840152835180825260208201906020808260051b8501019601926000905b82821062005311575050505050620053049d9e9d60019360209360808594015190608081840391015262004f52565b9601940192019062005184565b909192939660208062005331600193601f198682030189528b5162004fba565b9901950193920190620052d5565b90600182811c9216801562005371575b60208310146200535b57565b634e487b7160e01b600052602260045260246000fd5b91607f16916200534f565b90600092918054916200538f836200533f565b918282526001938481169081600014620053f65750600114620053b3575b50505050565b90919394506000526020928360002092846000945b838610620053e1575050505001019038808080620053ad565b805485870183015294019385908201620053c8565b9294505050602093945060ff191683830152151560051b01019038808080620053ad565b908154620054288162003f36565b926040936200543a8551918262003f12565b828152809460208092019260005281600020906000935b8585106200546157505050505050565b60018481928451620054798162000589818a6200537c565b81520193019401939162005451565b9060405191828154918282526020928383019160005283600020936000905b828210620054c257505050620054c09250038362003f12565b565b855484526001958601958895509381019390910190620054a7565b60405190919060e081016001600160401b0381118282101762003e535760405260c060ff60068395620055108162005488565b8552600181015460208601526002810154604086015260038101546060860152826004820154161515608086015260405162005555816200058981600586016200537c565b60a08601520154161515910152565b600682101562003fd75752565b603d82101562003fd75752565b9081546200558c8162003f36565b926200559c604051948562003f12565b818452600090815260208082208186015b848410620055bc575050505050565b6001838192620055cc8562005488565b815201920193019290620055ad565b9060405191828154918282526020928383019160005283600020936000905b8282106200561357505050620054c09250038362003f12565b85546001600160a01b031684526001958601958895509381019390910190620055fa565b908154620056458162003f36565b9262005655604051948562003f12565b818452600090815260208082208186015b84841062005675575050505050565b60018381926200568585620055db565b81520192019301929062005666565b90604051620056a38162003e85565b8092620056b0816200541a565b82526001620056c18183016200557e565b9060209182850152620056d76002840162005637565b604085015260038301805490620056ee8262003f36565b93620056fe604051958662003f12565b82855260009182528082208186015b8484106200574157505050505050916200573d60809260049460608401526200250160405180968193016200537c565b0152565b8583819262005750856200541a565b8152019201930192906200570d565b90606081019160018060a01b038082511683526020820151936060602085015284518091526080840190602060808260051b8701019601926000905b828210620057c5575050505050906040620057c29392015190604081840391015262004f52565b90565b9091929396607f198782030185528751828151168252602081015190602682101562003fd757604091602084015201519060606040820152620058178251610100606084015261016083019062004fba565b602083810151838303605f190160808501528051808452928201929101906000905b80821062005c0957505050604083015190605f198382030160a0840152815180825260208201906020808260051b85010194019260005b82811062005b84575050505050606083015190605f198382030160c0840152815190818152602081016020808460051b8401019401926000925b81841062005974575050505050608083015190605f198382030160e0840152602080835192838152019201906000905b8082106200595057505050620059428360209360e06200592b62005913879660a060019a0151605f19868303016101008701526200501a565b60c0850151848203605f190161012086015262005073565b92015190610140605f198285030191015262004f52565b99019501939201906200579b565b9091926020806001928651620059668162004f79565b8152019401920190620058da565b9091929394601f198282030184528551908151600681101562003fd75781526020820151602082015260408201516101006040830152610100820181518091526101206020818501918360051b8601019301916000905b80821062005a3457505050508260209262005a0084936060600197015160608401526080840151838203608085015262004f52565b9160a0810151151560a083015260c0810151151560c083015260e080910151151591015297019401940192939190620058aa565b9091929361011f19868203018452845180518252602081015162005a588162004f79565b6020830152604081015162005a6d8162003fcc565b60408301526060810151603d81101562003fd757606083015260a062005aa3608083015160c0608086015260c085019062004f84565b9101519160a081830391015262005af262005adf62005acc845160a0855260a085019062004fba565b602085015184820360208601526200501a565b6040840151838203604085015262005073565b91606081015192828103606084015283519081815260208101906020808460051b8301019601926000915b81831062005b5657505050505062005b4960019360209360808594015190608081840391015262004f52565b96019401920190620059cb565b909192939660208062005b76600193601f198682030189528b5162004fba565b990195019301919062005b1d565b9091929394602080600192601f1986820301885288519062005bee62005bb3835160e080855284019062004f84565b8484015185840152604084015160408401526060840151606084015260808401511515608084015260a084015183820360a085015262004f52565b60c09283015115159190920152970195019392910162005870565b90919260208060019286511515815201940192019062005839565b90620054c0604560405180947f496e76616c69642070726f6772616d20616464726573732e204d73672e73656e60208301526403232b91d160dd1b604083015262005c79815180926020868601910162004f2d565b810103602581018552018362003f12565b90620054c06040805180947f2c20616e642070726f6772616d206f70657261746f7220616464726573733a20602083015262005cd0815180926020868601910162004f2d565b810103602081018552018362003f12565b6020620054c091939293604051948162005d05879351809286808701910162004f2d565b820162005d1b8251809386808501910162004f2d565b0103808552018362003f12565b1562005d315750565b60405162461bcd60e51b81526020600482015290819062005d5790602483019062004f52565b0390fd5b600019811462005d6b5760010190565b634e487b7160e01b600052601160045260246000fd5b80511562005d8f5760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101562005d8f5760400190565b80516002101562005d8f5760600190565b805182101562005d8f5760209160051b010190565b7f496e76616c696420776974686472617720616d6f756e742e20416d6f756e743a8152600160fd1b602082015260210190565b600f620054c0916020949360405195869262005e3f62005e3183860162005ddc565b918281519485920162004f2d565b016e0161030b732103130b630b731b29d1608d1b815262005e6a825180936020878501910162004f2d565b010360101981018552018362003f12565b6019620054c0916020949360405195869262005e9d62005e3183860162005ddc565b01780161030b732103bb4ba34323930bbb0b136329031b0b9b41d1603d1b815262005ed2825180936020878501910162004f2d565b010360061981018552018362003f12565b9062005eef8262003f36565b62005efe604051918262003f12565b828152809262005f11601f199162003f36565b0190602036910137565b62013888805482101562005d8f5760005260206000200190600090565b62013886805482101562005d8f5760005260206000200190600090565b62013881805482101562005d8f5760005260206000200190600090565b6202711d805482101562005d8f5760005260206000200190600090565b6201388a805482101562005d8f5760005260206000200190600090565b62027119805482101562005d8f5760005260206000200190600090565b6202711b805482101562005d8f5760005260206000200190600090565b805482101562005d8f5760005260206000200190600090565b8181106200600b575050565b6000815560010162005fff565b600160401b811162003e535762013888908154908083558181106200603c57505050565b620054c0926000526020600020918201910162005fff565b600160401b811162003e535762013886908154908083558181106200603c57505050565b8054600082558062006088575050565b620054c09160005260206000209081019062005fff565b600160401b811162003e535762027119908154908083558181106200603c57505050565b600160401b811162003e53576202711b908154908083558181106200603c57505050565b620138918054600082558062006088575050565b90600160401b811162003e53578154908083558181106200603c57505050565b91908281116200612c576001920390565b50600091508190565b811562006140570490565b634e487b7160e01b600052601260045260246000fd5b6000908072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b80821015620062c1575b506904ee2d6d415b85acef8160201b80831015620062b1575b50662386f26fc1000080831015620062a1575b506305f5e1008083101562006291575b506127108083101562006281575b50606482101562006270575b600a8092101562006265575b60019081602181860195620061f287620040a7565b9662006202604051988962003f12565b80885262006213601f1991620040a7565b01366020890137860101905b6200622c575b5050505090565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049182156200625f579190826200621f565b62006225565b9160010191620061dd565b9190606460029104910191620061d1565b60049193920491019138620061c5565b60089193920491019138620061b7565b60109193920491019138620061a7565b6020919392049101913862006194565b6040935081049150386200617b565b601e620054c09160209493604051958692620062f262005e3183860162005ddc565b017f2c20616e6420776974686472617761626c65206469766964656e64733a20000081526200632b825180936020878501910162004f2d565b010360011981018552018362003f12565b90620063488262003f36565b604090620063598251918262003f12565b83815280936200636c601f199162003f36565b019160005b8381106200637f5750505050565b60209082516200638f8162003ea1565b6000815282600081830152606080868401526000818401526080830152600060a0830152600060c0830152600060e083015282860101520162006371565b620063d981546200533f565b9081620063e4575050565b81601f60009311600114620063f7575055565b818352602083206200641591601f0160051c81019060010162005fff565b8160208120915555565b805490600081558162006430575050565b6000526020600020908101905b81811062006449575050565b8062006457600192620063cd565b016200643d565b90600160401b811162003e53578154918181558282106200647e57505050565b600052602060002091820191015b81811062006498575050565b80620064a6600192620063cd565b016200648c565b8054906000815581620064be575050565b6000526020600020908101905b818110620064d7575050565b80620064e560019262006078565b01620064cb565b90600160401b811162003e53578154918181558282106200650c57505050565b600052602060002091820191015b81811062006526575050565b806200653460019262006078565b016200651a565b80549060008155816200654c575050565b6000526020600020908101905b81811062006565575050565b80620065736001926200641f565b0162006559565b90600160401b811162003e53578154918181558282106200659a57505050565b600052602060002091820191015b818110620065b4575050565b80620065c26001926200641f565b01620065a8565b805460009182815581620065dc57505050565b6001600160fd1b0382168203620066715782526020822091600391821b8301925b8381106200660b5750505050565b808260089255826001820155620066256002820162006078565b620066328482016200641f565b6200664060048201620064ad565b6200664e60058201620064ad565b6200665c600682016200653b565b6200666a60078201620063cd565b01620065fd565b634e487b7160e01b83526011600452602483fd5b600160401b821162003e5357805490828155818310620066a457505050565b6001600160fd1b03828116830362005d6b578316830362005d6b57600090815260208120600392831b810193831b015b838110620066e25750505050565b808260089255826001820155620066fc6002820162006078565b620067098482016200641f565b6200671760048201620064ad565b6200672560058201620064ad565b62006733600682016200653b565b6200674160078201620063cd565b01620066d4565b51600681101562003fd75790565b90600681101562003fd75760ff80198354169116179055565b906200677b8162004f79565b60ff80198354169116179055565b90620067958162003fcc565b61ff0082549160081b169061ff001916179055565b90603d81101562003fd75762ff000082549160101b169062ff00001916179055565b9190601f8111620067dc57505050565b620054c0926000526020600020906020601f840160051c830193106200680b575b601f0160051c019062005fff565b9091508190620067fd565b81519192916001600160401b03811162003e535762006842816200683b84546200533f565b84620067cc565b602080601f83116001146200688157508192939460009262006875575b50508160011b916000199060031b1c1916179055565b0151905038806200685f565b90601f198316958460005282600020926000905b888210620068d057505083600195969710620068b6575b505050811b019055565b015160001960f88460031b161c19169055388080620068ac565b8060018596829496860151815501950193019062006895565b9060ff801983541691151516179055565b9061ff00825491151560081b169061ff001916179055565b9062ff0000825491151560101b169062ff00001916179055565b8151600681101562003fd75762006944908262006756565b60208201516001820155600281016040830151602081519162006968838562006685565b01916000526020600020916000905b828210620069db57505050509060e06005620054c09360608401516003820155620069aa60808501516004830162006816565b0191620069be60a0820151151584620068e9565b620069d060c0820151151584620068fa565b015115159062006912565b8051805185556001850162006a006020830151620069f98162004f79565b826200676f565b62006a1b604083015162006a148162003fcc565b8262006789565b6060820151603d81101562003fd75762006a3591620067aa565b608081015180519060028701906001600160401b03831162003e535760209062006a608484620060fb565b0190600052602060002060005b83811062006da2575050505060a001518051805190600387019060209062006a9684846200645e565b01906000526020600020906000905b83821062006d825750505050600485016020820151602081519162006acb8385620064ec565b019160005260206000206000925b82841062006d1e5750505050600585016040820151602081519162006aff8385620064ec565b019160005260206000206000925b82841062006cb1575050505060068501606082015190602082519262006b3484846200657a565b01906000526020600020906000905b83821062006c515750505050608001518051906001600160401b03821162003e535762006b838262006b7960078901546200533f565b60078901620067cc565b602090601f831160011462006bd657928260089360209360019660009262006bca575b5050600019600383901b1c191690851b1760078801555b0194019101909262006977565b01519050388062006ba6565b906007870160005260206000209160005b601f198516811062006c38575083602093600196938793600897601f1981161062006c1e575b505050811b01600788015562006bbd565b015160001960f88460031b161c1916905538808062006c0d565b9192602060018192868501518155019401920162006be7565b8051602081519162006c6483876200645e565b018460005260206000206000915b83831062006c9157505050506001602081920193019101909162006b43565b600160208262006ca48394518662006816565b0192019201919062006c72565b80518051906001600160401b03821162003e535760209062006cd48386620060fb565b0183600052602060002060005b83811062006d0057505050506001602081920192019301929062006b0d565b82516001600160a01b03168183015560209092019160010162006ce1565b80518051906001600160401b03821162003e535760209062006d418386620060fb565b0183600052602060002060005b83811062006d6d57505050506001602081920192019301929062006ad9565b60019060208451940193818401550162006d4e565b600160208262006d958394518762006816565b0193019101909162006aa5565b60019060208451940193818401550162006a6d565b62013883805482101562005d8f576000526006602060002091020190600090565b62027116805482101562005d8f576000526006602060002091020190600090565b62013882805482101562005d8f576000526006602060002091020190600090565b62027115805482101562005d8f576000526006602060002091020190600090565b620138828054600160401b81101562003e535762006e5f9160018201905562006df9565b91909162006e7257620054c0916200692c565b634e487b7160e01b600052600060045260246000fd5b620138838054600160401b81101562003e535762006e5f9160018201905562006db7565b620271168054600160401b81101562003e535762006e5f9160018201905562006dd8565b620271158054600160401b81101562003e535762006e5f9160018201905562006e1a565b1562006efc57565b60405162461bcd60e51b815260206004820152603760248201527f73756d4469766964656e64576569676874466f72546f6b656e436c6173733a206044820152766469766964656e64576569676874206f766572666c6f7760481b6064820152608490fd5b61271081101562005d8f57620025b3816200044f6002620057c29460031b01549162007044565b90811562006fb557606462006fa1818402938462006135565b0362006fad5760019190565b600091508190565b60019150600090565b9190821562006fd65762006fa1818402938462006135565b5060019150600090565b1562006fe857565b60405162461bcd60e51b815260206004820152602e60248201527f746f74616c546f6b656e73506572546f6b656e436c6173733a20746f74616c5460448201526d6f6b656e73206f766572666c6f7760901b6064820152608490fd5b612710811015908162005d8f57600390811b906004928383019182549260009582879601935b8587106200707c575050505050505090565b979690919293949597620070de57620070d288620070ca620070a462001da29a9b8762005fe6565b905490881b1c6001600160a01b0316600090815260208990526040812054909462007106565b999062006fe0565b9594939291906200706a565b603282634e487b7160e01b6000525260246000fd5b906001820191821062006fad5760019190565b9190820191821062006fad5760019190565b6201388b546200712b620025eb6201637b565b919050620071386201643f565b5060009081925b8184106200715a575b6200715593500462007194565b905090565b9160ff60078560031b015416156200718d57836200268d62007186926200268662001da2969762006f61565b926200713f565b9162007148565b908015620071ac57620071a79162006135565b600191565b5050600090600090565b62013891805490600160401b82101562003e53576001820180825582101562005d8f576000908152602090200180546001600160a01b0319166001600160a01b03909216919091179055565b6201388f805490600160401b82101562003e53576001820180825582101562005d8f576000908152602090200180546001600160a01b0319166001600160a01b03909216919091179055565b6201388180549190600160401b83101562003e53578262001d7a916001620054c09501905562005f55565b60405190620072888262003eda565b60188252772a343290383937b3b930b69034b99032bc32b1baba32b21760411b6020830152565b600091825b60208084019081518051871015620074455781620072d788620072df9362005dc7565b510162007a1c565b6026928382101562003fd757601a9182036200739d578762007302915162005dc7565b5192828401519081101562003fd757036200735b5750936200734c6200735492620073446200733d60a0604062001da29a0151015162005d81565b5162005d81565b519062007106565b959062007a2a565b92620072b4565b6064906040519062461bcd60e51b82526004820152601b60248201527a2a34329037b831b7b2329034b9903737ba102820acafa1a0a9a41760291b6044820152fd5b92919050620073b681620072d789869a979a5162005dc7565b8281101562003fd757601403620073ef575050906200734c62001da29562002686620073e88462007354965162005dc7565b5162007a77565b6200740190620072d785855162005dc7565b9081101562003fd7576015146200741f575b50620073549062005d5b565b906200734c6200743e9562002686620073e88462007354965162005dc7565b9062007413565b505050909250803410600014620074bb5760405162461bcd60e51b815260206004820152603760248201527f546865207061796d656e74206973206e6f7420656e6f7567682e205468652074604482015276037ba30b6103830bcb6b2b73a1039b437bab6321031329604d1b6064820152608490fd5b80341162007891575b5062027129805460ff8116620074da8162003fcc565b6001810362007510575050508062007500620074fa620075069362007b1e565b62007b33565b62007bbd565b620057c262007279565b6200751b8162003fcc565b60028114808062007883575b156200760c57505050506200753c8162007b1e565b15620075cd576200754d8162007b1e565b1562007591576200755e9062007bbd565b6040516200756c8162003eda565b60158152742a3432903b37ba329034b99032bc32b1baba32b21760591b602082015290565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c696420766f74652070726f6772616d60601b6044820152606490fd5b60405162461bcd60e51b815260206004820152601760248201527624b73b30b634b2103b37ba34b73390383937b3b930b69760491b6044820152606490fd5b620076178262003fcc565b6003821491828062007875575b15620077025750505050506200763a8162007b1e565b15620076b2578062007500620074fa620076549362007b1e565b604051620076628162003ebe565b603a81527f5468652070656e64696e672070726f6772616d2069732065786563757465642060208201527930b33a32b9103b37ba34b7339030b7321030b8383937bb30b61760311b604082015290565b60405162461bcd60e51b815260206004820152602260248201527f496e76616c696420657865637574696e672070656e64696e672070726f677261604482015261369760f11b6064820152608490fd5b6200770d8162003fcc565b818062007866575b8062007858575b15620077465750505050906200750691600360ff1982541617905562007500620074fa8262007b1e565b620077518162003fcc565b821562007843575b50508062007834575b6200779b57505050604051620077788162003eda565b6013815272283937b3b930b6903a32b936b4b730ba32b21760691b602082015290565b60ff19166001179055620077af8162007b1e565b15620077c9578062007500620074fa620075069362007b1e565b60405162461bcd60e51b815260206004820152603e60248201527f5b4572726f72203030335d5468652070726f6772616d206973206e6f7420612060448201527f76616c696420657865637574652070656e64696e672070726f6772616d2e00006064820152608490fd5b50620271285442101562007762565b6200785091925062003fcc565b388062007759565b50620271285442106200771c565b50620271275442101562007715565b506202712854421062007624565b506202712754421062007527565b60018060a01b0390818351166000526201388590816020526040600020541562007988575b620078c290346200611b565b90156200794457620078e590838551166000528260205260406000205462007106565b929015620079035783511660005260205260406000205538620074c4565b60405162461bcd60e51b81526020600482015260196024820152782a3432903732bb903130b630b731b29037bb32b9333637bb9760391b6044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527b2a3432903830bcb6b2b73a103932ba3ab9371037bb32b9333637bb9760211b6044820152606490fd5b6000908162013886928354915b828110620079e1575b5015620079af575b509050620078b6565b85518516600160401b82101562003e535762001d7a82620078c2956001620079da9501905562005f38565b38620079a6565b86620079ed8262005f38565b919054818b51169260031b1c161462007a115762007a0b9062005d5b565b62007995565b50506001386200799e565b51602681101562003fd75790565b1562007a3257565b60405162461bcd60e51b815260206004820152601f60248201527f54686520746f74616c207061796d656e7420697320746f6f206c617267652e006044820152606490fd5b6000805b604083019060a062007a91818451015162005da5565b515184101562007b165762007ab68462007aaf838651015162005da5565b5162005dc7565b51925101519283516002101562005d8f5762007b0562007aff62007b0d9362007af760409662007aef86606062001da29b015162005dc7565b519062006fbe565b929062007a2a565b62007106565b949062007a2a565b91905062007a7b565b509250505090565b60200151511562007b2e57600190565b600090565b1562007b3b57565b60405162461bcd60e51b815260206004820152600f60248201526e496e76616c69642070726f6772616d60881b6044820152606490fd5b60809060208152602a60208201527f5468652070726f6772616d2069732064656e6965642062792074686520706c7560408201526967696e2073797374656d60b01b60608201520190565b62007bc88162013c03565b516201368f57600681101562003fd7576003811462013636578062007c255760405162461bcd60e51b8152602060048201526016602482015275151a19481c1c9bd9dc985b481a5cc81a5b9d985b1a5960521b6044820152606490fd5b600481036200aa735750906000905b602083015180518310156200aa6d578262007c4f9162005dc7565b516020810180516026908181101562003fd757156200aa2a5781518181101562003fd75760010362007e9d57505060408091019062007c9360c08351015162005d81565b519262007cb560a062007caa818651015162005d81565b519451015162005da5565b519562007cc6855185511462014ed7565b62007cd5855188511462014f3d565b60005b855181101562007e1b5762007cee818662005dc7565b51612710908181101562005d8f57600160ff600762007d169360031b01541615151462014f9f565b62007d22828a62005dc7565b5162007d2f838862005dc7565b51908282101562005d8f57600662007d4d9260031b01549062007106565b9062007d5a848962005dc7565b51918383101562005d8f57600662007d779360031b015562014ff7565b62007d83828a62005dc7565b519062007d91838862005dc7565b518181101562005d8f576001600160a01b03939262007dd1916003908662007dba878e62005dc7565b5116600052811b0160205287600020549062007106565b62007ddd848a62005dc7565b519283101562005d8f57600362001da29362007e159662007dff878e62005dc7565b5116600052811b01602052876000205562015056565b62007cd8565b50939262007e389192965062007e31906201627d565b9262016161565b94519262007e468462003ef6565b60008452600036813760005b835181101562007e80578062001da262007e7162007e7a938762005dc7565b51878a62015a84565b62007e52565b509450926020925062007e94915062005d5b565b91905062007c34565b81518181101562003fd7576002036200813f575050604080910180519283519562007eed62007ed160a08097015162005d81565b519562007ee2818651015162005da5565b519451015162005db6565b51938751865103620080ec5787518451036200809857875185510362008041575060005b85518110156200802b5762007f27818762005dc7565b5190612710918281101562005d8f5762007f4d60ff6007809360031b01541615620150af565b62007f59828962005dc7565b518381101562005d8f5760031b01805460ff1916600117905562007f7e818a62005dc7565b5162007f8b828962005dc7565b51908382101562005d8f57600562007fa79260031b0162006816565b62007fb3818662005dc7565b5162007fc0828962005dc7565b518381101562005d8f5760031b6001015562007fdd818762005dc7565b5162007fea828962005dc7565b518381101562005d8f5760031b6002015562008007818862005dc7565b519182101562005d8f5760006006620080259360031b015562005d5b565b62007f11565b5095509390506020925062007e94915062005d5b565b5162461bcd60e51b815260206004820152603c602482015260008051602062016a5883398151915260448201527b1b911a5d9a59195b9915d95a59da1d081a5cc81b9bdd08195c5d585b60221b6064820152608490fd5b5162461bcd60e51b8152602060048201526039602482015260008051602062016a588339815191526044820152781b959bdd1a5b99d41bddd95c881a5cc81b9bdd08195c5d585b603a1b6064820152608490fd5b5162461bcd60e51b8152602060048201526038602482015260008051602062016a588339815191526044820152771b925b99195e105c9c985e481a5cc81b9bdd08195c5d585b60421b6064820152608490fd5b81949394518181101562003fd7576003036200816957505060209162001da262007e9492620150fb565b819594929395518181101562003fd7576004036200840d575050604080920160c094620081aa6200819e878451015162005d81565b51968351015162005da5565b5194620081c160a062007caa818651015162005d81565b5193620081d6885188511462001c12620164ee565b620081e9885185511462001c12620164ee565b620081fc885186511462001c12620164ee565b60005b8851811015620082715762008215818662005dc7565b519061271082101562005d8f576200826b916003906001600160a01b036200823e848e62005dc7565b5116600052811b0160205262001da288600020546200825e838a62005dc7565b51111562001c12620165f2565b620081ff565b50909691959294939660005b8351811015620083ba5762008293818862005dc7565b5190612710918281101562005d8f576001600160a01b039060039082620082bb858a62005dc7565b5116600052811b01602052620082e48b620082dc848b600020549262005dc7565b51906200611b565b90620082f1848c62005dc7565b51918583101562005d8f5760036200832a938562008310888d62005dc7565b5116600052811b016020528a6000205562001c12620165f2565b62008336828a62005dc7565b518381101562005d8f576003908262008350858b62005dc7565b5116600052811b01602052620083718b62007344848b600020549262005dc7565b91905062008380838b62005dc7565b519384101562005d8f57620083b4936003916200839e858b62005dc7565b5116600052811b01602052876000205562005d5b565b6200827d565b5094620083e4929750620083dd91939450620083d6906201627d565b9362016161565b9562016161565b9260005b835181101562007e80578062001da262007e7162008407938762005dc7565b620083e8565b819594939551908082101562003fd75760059182036200862357505050604091828501906200845160a062008446818551015162005d81565b519351015162005da5565b51928251845103620085d25760005b8351811015620084b85762008476818562005dc7565b519061271082101562005d8f576003620084b29260018060a01b038b5116600052811b0160205262001da287600020546200825e838962005dc7565b62008460565b509092919260005b84518110156200855357620084d6818662005dc7565b51906127108083101562005d8f57600360018060a01b0393848c5116600052811b01602052620085108860002054620082dc848962005dc7565b6200851c848a62005dc7565b519283101562005d8f57600362001da2936200854d968e5116600052811b01602052896000205562001c12620165f2565b620084c0565b50959392620085649192506201627d565b91805193620085738562003eda565b6001855260203681870137516001600160a01b0316620085938562005d81565b525194620085a18662003ef6565b60008652600036813760005b835181101562007e80578062001da262007e71620085cc938762005dc7565b620085ad565b845162461bcd60e51b8152602060048201526035602482015260008051602062016a38833981519152604482015274195b905b5bdd5b9d081a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b8296939496518181101562003fd7576006036200888d575050509060408092016200865360c08251015162005d81565b51946200866a60a062008446818551015162005d81565b519286518351036200883c578651845103620087f05760005b8751811015620086e85762008699818562005dc7565b519061271082101562005d8f57620086e2916003906001600160a01b03620086c2848d62005dc7565b5116600052811b0160205262001da287600020546200825e838962005dc7565b62008683565b509092919260005b87518110156200879c5762008706818662005dc7565b516127108082101562005d8f576001600160a01b039291600390846200872d858e62005dc7565b5116600052811b016020526200874d8860002054620082dc848962005dc7565b62008759848a62005dc7565b519283101562005d8f57600362001da29362008796966200877c8f889062005dc7565b5116600052811b01602052896000205562001c12620165f2565b620086f0565b509592620087b191925062007e31906201627d565b925194620087bf8662003ef6565b60008652600036813760005b835181101562007e80578062001da262007e71620087ea938762005dc7565b620087cb565b845162461bcd60e51b8152602060048201526030602482015260008051602062016b1883398151915260448201526f1b9d1cc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b845162461bcd60e51b81526020600482015260356024820152600080516020620169d88339815191526044820152741b90db185cdcd95cc81a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b82518181101562003fd757600703620089dd57505050604080910193620088b960c08651015162005d81565b5192620088cb60a08751015162005d81565b5195515191620088e3855188511462001c12620164ee565b60005b85518110156200802b57620089d79062001da26001600160a01b0382600288620089bf8e620089b48e620089aa8f89620089218a8562005dc7565b51166000526200895e896200895681620138809a8b6020526200895060ff8760002054161562001c12620165bf565b62005dc7565b519662005dc7565b51968a6200899483519b8c96620089758862003e37565b600188526060602089019860008a528781019b8c52019b8c5262005dc7565b51166000526020526000209751151588620068e9565b51151586620068fa565b516001850162006816565b51910155620089cf838a62005dc7565b51166200724e565b620088e6565b82519596959394928185101562003fd757600894850362008ad55750505062008a0f60c0604080950151015162005d81565b519360005b855181101562008ac05762008aba906001600160a01b038062008a38838a62005dc7565b511660005262013880908160205262008a8f60ff62008a666001828c600020541615151462001c126201651e565b8262008a73868d62005dc7565b5116600052836020528960002054891c161562001c1262016586565b62008a9b838a62005dc7565b51166000526020528560002061010061ff001982541617905562005d5b565b62008a14565b50949093506020925062007e94915062005d5b565b80518281101562003fd75760090362008baa5750505062008aff60c0604080950151015162005d81565b519360005b855181101562008ac05762008ba490866001600160a01b038062008b29848462005dc7565b511660005262008b7d6001898362008b5f87620138809788602052620089508660ff8097600020541615151462001c126201651e565b5116600052846020528a600020548a1c1615151462001c1262016551565b62008b89838a62005dc7565b51166000526020528560002061ff0019815416905562005d5b565b62008b04565b8097969492939597518281101562003fd757600a0362008c89575050505060408094019162008bef60a062008be460c08651015162005d81565b519451015162005d81565b519162008c04845184511462001c12620164ee565b60005b845181101562007e805762008c83906001600160a01b038062008c2b838962005dc7565b5116600052620138808060205262008c53600160ff8c600020541615151462001c126201651e565b62008c5f838862005dc7565b519162008c6d848a62005dc7565b5116600052602052600289600020015562005d5b565b62008c07565b80979597518281101562003fd757600b0362008d59575050505060408092019362008cb960c08651015162005d81565b519451519162008cd1865184511462001c12620164ee565b60005b865181101562007e805762008d539062001da26001600160a01b038062008cfc848c62005dc7565b5116600052620138808060205262008d24600160ff8b600020541615151462001c126201651e565b62008d30848962005dc7565b519162008d3e858d62005dc7565b51166000526020526001886000200162006816565b62008cd4565b80979495939697518281101562003fd757600c0362008ea75750505060400160609182825101519360005b855181101562008e915760e062008da082878751015162005dc7565b5101511562008e285762008dc462008dbd82878751015162005dc7565b5162006e3b565b62013882805460001992919083810190811162005d6b5762008de78a9162006df9565b5001805461ff0019166101001790555491820191821162005d6b578762008e1262008e229362006df9565b5001805460ff1916905562005d5b565b62008d84565b62008e4362008e3c82878751015162005dc7565b5162006e88565b62013882805460001992919083810190811162005d6b5762008e668a9162006db7565b5001805461ff0019166101001790555491820191821162005d6b578762008e1262008e229362006db7565b5095915093506020925062007e94915062005d5b565b8097969593929497518281101562003fd757600d0362008ffe57505060400194602062008ed960a08851015162005d81565b51965101519162008eee875184511462014c16565b60005b87518110156200802b578080878a62008f0f62008f9f958962005dc7565b511562008fa55762008f7062008f57848362008f4262008f3562008f7b98889762005dc7565b5162013882541162014c9f565b620089508d62008f5e62008f57858562005dc7565b5162006df9565b509060ff9889920154901c1662014cf7565b500154161562014d58565b8662008f8c62008f57838c62005dc7565b5001805460ff1916600117905562005d5b565b62008ef1565b62008f7062008fe6848362008fd162008fc462008fed98889762005dc7565b5162013883541162014c9f565b620089508d62008f5e62008fe6858562005dc7565b5162006db7565b8662008f8c62008fe6838c62005dc7565b8097949397518281101562003fd757600e03620090e55750506040019160206200902d60a08551015162005d81565b51935101519562009042845188511462014c16565b60005b84518110156200802b5780620090606200906c928a62005dc7565b51620090725762005d5b565b62009045565b6200908f62009082828862005dc7565b5162013882541162014db9565b620090d487620090b9620090a862008f57858b62005dc7565b5060ff9283910154891c1662014e12565b88620090ca62008f57858b62005dc7565b5001541662014e74565b8662008e1262008f57838962005dc7565b809192935096949596518281101562003fd757600f036200920057505060400160609182825101519360005b855181101562008e915760e06200912d82878751015162005dc7565b510151156200919e576200914a62008dbd82878751015162005dc7565b62013882805460001992919083810190811162005d6b576200916d8a9162006df9565b5001805461ff0019166101001790555491820191821162005d6b578762008f8c620091989362006df9565b62009111565b620091b262008e3c82878751015162005dc7565b62013882805460001992919083810190811162005d6b57620091d58a9162006db7565b5001805461ff0019166101001790555491820191821162005d6b578762008f8c620091989362006db7565b8091929394969550518281101562003fd757601003620092a557505060400151906200923560a0608084015193015162005d81565b51936200924a835186511462001c12620164ee565b60005b835181101562009292578062001da26200926c6200928c938762005dc7565b51620092788162004f79565b62009284838a62005dc7565b519062014b7d565b6200924d565b509350916020915062007e949062005d5b565b80959295518281101562003fd7576011036200954457505090604080940191620092da60a062008be460c08651015162005d81565b5191620092eb845184511462014b23565b60005b845181101562009364576200935e9062001da26001600160a01b038062009316848a62005dc7565b51166000526201388580602052620093388b6000205462007344868b62005dc7565b91909262009347868c62005dc7565b51166000526020528a6000205562001c12620164a4565b620092ee565b509394509162009375915062016161565b906201388692835494620093956200938f85518862014b6f565b62005ee3565b91600093845b88811062009504575060005b86518110156200945c576000805b8a81106200940d575b5015620093d7575b620093d19062005d5b565b620093a7565b94620093d19062009404906001600160a01b03620093f6898b62005dc7565b511662001e45828962005dc7565b959050620093c6565b620094188162005f38565b90546001600160a01b0360039290921b1c81169062009438858c62005dc7565b51161462009451576200944b9062005d5b565b620093b5565b5050600138620093be565b509650949093506200946e8362005ee3565b805191906001600160401b03831162003e53576020906200948f8462006054565b0190600052602060002060005b838110620094e6575050505060005b828110620094c35750505062007e9460209162005d5b565b620094e09062001da26001600160a01b0362001d6d838662005dc7565b620094ab565b82516001600160a01b0316818301556020909201916001016200949c565b94620095376200953e91620095198862005f38565b905460039190911b1c6001600160a01b031662001e45828962005dc7565b9562005d5b565b6200939b565b80518281101562003fd757601203620097b65750506040809401916200957560a062008be460c08651015162005d81565b519162009586845184511462014b23565b60005b8451811015620095d957620095d39062001da26001600160a01b0380620095b1848a62005dc7565b51166000526201388580602052620093388b60002054620082dc868b62005dc7565b62009589565b509491509291620095ea9062016161565b90620138868054620095fc8162005ee3565b9260009485925b808410620096b057505050506200961a8362005ee3565b805191906001600160401b03831162003e53576020906200963b8462006054565b0190600052602060002060005b83811062009692575050505060005b8281106200966f5750505062007e9460209162005d5b565b6200968c9062001da26001600160a01b0362001d6d838662005dc7565b62009657565b82516001600160a01b03168183015560209092019160010162009648565b9297600097929597949194998a5b8651811015620097a457620096d38b62005f38565b90546001600160a01b0360039290921b1c811690620096f3838a62005dc7565b5116146200970c57620097069062005d5b565b620096be565b509950976001979592979491945b8062009773575b156200973957620097329062005d5b565b9262009603565b956200976c62009732916200974e8962005f38565b905460039190911b1c6001600160a01b031662001e45828a62005dc7565b9662005d5b565b506200977f8162005f38565b60018060a01b0391549060031b1c166000526201388560205282600020541562009721565b5099989098979592979491946200971a565b80959295518281101562003fd7576013036200981757505060408091015101519260005b845181101562009806578062001da2620097f962009800938862005dc7565b5162015721565b620097da565b5092509062007e9460209162005d5b565b8051918083101562003fd7576014928303620099ba575050506040809101906200984660c08351015162005d81565b51926200985d60a062007caa818651015162005d81565b51956200986e855185511462014ed7565b6200987d855188511462014f3d565b60005b8551811015620099655762009896818962005dc7565b51620098a3828762005dc7565b51612710918282101562005d8f576006620098c49260031b01549062007106565b90620098d1848962005dc7565b51918383101562005d8f576006620098ee9360031b015562014ff7565b620098fa828a62005dc7565b519062009908838862005dc7565b518181101562005d8f576001600160a01b03939262009931916003908662007dba878e62005dc7565b6200993d848a62005dc7565b519283101562005d8f57600362001da2936200995f9662007dff878e62005dc7565b62009880565b5093926200997b9192965062007e31906201627d565b945192620099898462003ef6565b60008452600036813760005b835181101562007e80578062001da262007e71620099b4938762005dc7565b62009995565b819694959396518181101562003fd757601590810362009f8a57505050506040840190620099ed60c08351015162005d81565b519362009a0460a062007caa818651015162005d81565b519362009a19865185511462001c12620164ee565b62009a2c865186511462001c12620164ee565b60005b865181101562009a885762009a45818662005dc7565b519061271082101562005d8f57600362009a829260018060a01b038b5116600052811b0160205262001da26040600020546200825e838a62005dc7565b62009a2f565b50909493919460005b855181101562009bb45762009aa7818662005dc7565b51906127108083101562005d8f57600360018060a01b0393848c5116600052811b0160205262009ae2604060002054620082dc848962005dc7565b9062009aef848a62005dc7565b51918383101562005d8f57600362009b1e93878f5116600052811b0160205260406000205562001c12620165f2565b62009b2a828862005dc7565b518181101562005d8f576003908462009b44858c62005dc7565b5116600052811b0160205262009b6560406000205462007344848962005dc7565b62009b71848a62005dc7565b519283101562005d8f57600362001da29362009bae9662009b93878e62005dc7565b5116600052811b0160205260406000205562001c1262016657565b62009a91565b50915091620083dd62009bcb91969594966201627d565b926040519462009bdb8662003eda565b6001865260203681880137516001600160a01b031662009bfb8662005d81565b526000905b865182101562009f755762009c16828862005dc7565b516106005262009c27855162005ee3565b9660009462009c37885162005ee3565b6102a0528594865b885181101562009d0e578a8962009c6f6001600160a01b0362009c63858462005dc7565b5116610600516201604a565b158062009cc8575b62009c90575b505062009c8a9062005d5b565b62009c3f565b9862009cbd9162001e4582859c62009cb462009c8a9760018060a01b039262005dc7565b51169262005dc7565b9790508a8962009c7d565b50505061271061060051101562005d8f576001600160a01b0362009ced828b62005dc7565b5116600052600361060051811b016020528a89604060002054151562009c77565b509098949897969291939760005b885181101562009db05761271061060051101562005d8f576001600160a01b0362009d48828b62005dc7565b5116600052600361060051811b016020526040600020541562009d77575b62009d719062005d5b565b62009d1c565b9962009d719062009da7906001600160a01b0362009d968e8d62005dc7565b511662001e45826102a05162005dc7565b9a905062009d66565b50985096949392919561060051612710811015806103c05262005d8f5760031b600401549662009de56200938f878a62014b6f565b996000998a610100525b6103c05162005d8f57610100518a81101562009ea45762009e2462009e419160006103c05260046106005160031b0162005fe6565b90546102a05160039290921b1c6001600160a01b0316906201610c565b1562009e60575b62009e566101005162005d5b565b6101005262009def565b99808c62001e4562009e9d9362009e846101005160046106005160031b0162005fe6565b905460039190911b1c6001600160a01b03169262005dc7565b9962009e48565b509a939794969299919850946000915b83831062009f4957505050506103c05162005d8f578051906001600160401b03821162003e535760209062009ef38360046106005160031b01620060fb565b0160046106005160031b01600052602060002060005b83811062009f2b575050505062009f209062005d5b565b909295919562009c00565b82516001600160a01b03168183015560209092019160010162009f09565b62009f6e9062009f67906001600160a01b03620093f6868662005dc7565b9262005d5b565b9162009eb4565b9194505062007e949194506020925062005d5b565b82979496959751918083101562003fd757601692830362009ff757505050505060c0604062009fbd920151015162005d81565b519260005b8451811015620098065762009ff19062001da26001600160a01b0362009fe9838962005dc7565b511662007202565b62009fc2565b83518181101562003fd7576017036200a0505760405162461bcd60e51b8152602060048201526029602482015260008051602062016ad88339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b83518181101562003fd7576018036200a0c457505050505060c060406200a07b920151015162005d81565b5162013892805460ff191660011790559260005b845181101562009806576200a0be9062001da26001600160a01b036200a0b6838962005dc7565b5116620071b6565b6200a08f565b83979697518181101562003fd7576019036200a24957505050505060008080604080940160a0808251015180516200a210575b5050519060e0820151916200a11b6200733d60c060018060a01b0393015162005d81565b511690602083519301915af1903d156200a207573d916200a13c83620040a7565b926200a14b8351948562003f12565b83523d6000602085013e5b156200a16b57505062007e9460209162005d5b565b62005d5792506200a1e88151927f5468652063616c6c20746f2074686520636f6e7472616374206973206e6f7420602085015278039bab1b1b2b9b9b33ab617102932ba3ab937103230ba309d1603d1b838501528381516200a1d7816059946020868601910162004f2d565b810103603981018552018362003f12565b5162461bcd60e51b815260206004820152918291602483019062004f52565b6060916200a156565b6200a21b9062005d81565b51516200a22a575b806200a0f7565b8192506200733d906200a2409251015162005d81565b5190386200a223565b83518181101562003fd757601a036200a34b57505050506200a27460a0604080940151015162005d81565b51906200a285600383511462014b23565b6200a2908262005d81565b51926200a2a96200a2a18462005da5565b519362005db6565b51926200a3115750509162007e94916001602094146000146200a30a576200a2e9906200a2dc6201388d91825462007106565b90915562001c126201643f565b62001da26201388e6200a2fd8154620070f3565b90915562001c1262016479565b5062005d5b565b60649250519062461bcd60e51b825260206004830152602482015273496e76616c6964207061796d656e74207479706560601b6044820152fd5b909192809450518181101562003fd757601b036200a7cf575050505050906200a38b6201388b54620025fd6200a3806201637b565b612710831062005d28565b50506200a3976201643f565b506000805b61271081106200a76a575b50506200a3b362007118565b906200a3c36202712a5462005ee3565b9060009384905b6127108210156200a75f578160031b9260ff600785015416156200a51b576000976002850154156200a50957889798975b62005d8f5760048501548810156200a4ef576200a41c886004870162005fe6565b9054600391821b1c6001600160a01b0316600081815291870160205260409182902054919a916200a44f908a9062006fbe565b9b906200a45b6201643f565b6200a4669162005d28565b60009b60028901546200a4799162006fbe565b906200a4846201643f565b6200a48f9162005d28565b828d5262013887602052818d2054906200a4a99162007106565b90918d20556200a4b86201643f565b6200a4c39162005d28565b6200a4cf828962005dc7565b526200a4db9062005d5b565b976200a4e79062005d5b565b97986200a3fb565b929093506200a50091965062005d5b565b9095946200a3ca565b929093506200a5009196975062005d5b565b959392509350505b6200a52e8262005ee3565b91600091825b8281106200a6c95750505062013888908154926200a5576200938f858462014b6f565b9360009081905b8082106200a68e57505060005b8381106200a5ea5750508351939150506001600160401b03831162003e53576020906200a5988462006018565b0190600052602060002060005b8381106200a5cc575050505062007e9460209160006201388d5560006201388e5562005d5b565b82516001600160a01b0316818301556020909201916001016200a5a5565b6000805b8381106200a646575b50156200a610575b6200a60a9062005d5b565b6200a56b565b906200a60a906200a63d906001600160a01b036200a62f858762005dc7565b511662001e45828a62005dc7565b9190506200a5ff565b6001600160a01b03806200a65b858862005dc7565b5116906200a66a838b62005dc7565b5116146200a683576200a67d9062005d5b565b6200a5ee565b50506001386200a5f7565b909162009f676200a6c2916200a6a48562005f1b565b905460039190911b1c6001600160a01b031662001e45828b62005dc7565b906200a55e565b6000805b8581106200a717575b50156200a6ef575b6200a6e99062005d5b565b6200a534565b926200a6e9906200a70e906001600160a01b03620093f6878662005dc7565b9390506200a6de565b6001600160a01b03806200a72c858762005dc7565b5116906200a73b838a62005dc7565b5116146200a754576200a74e9062005d5b565b6200a6cd565b50506001386200a6d6565b93505092906200a523565b8060031b9060ff600783015416156200a7c8576200a7b662007aff62001da2946200a7aa6200a7c29560026200a7a08762006f61565b9101549062006fbe565b929062001c126201643f565b939062001c126201643f565b6200a39c565b506200a3a7565b83518181101562003fd757601c036200a8285760405162461bcd60e51b8152602060048201526029602482015260008051602062016af88339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b83518181101562003fd757601d036200a84e575b505050505062007e9460209162005d5b565b83518181101562003fd757601e146200a83c5783518181101562003fd757601f036200a8a457505050506020916200a89a6200a893604062007e949401515162005d81565b5162015758565b913880806200a83c565b83518181101562003fd7576020036200a8ca575b505050505062007e946020916200a89a565b83518181101562003fd75760218091036200a8e7575b506200a8b8565b8451828110156200aa15576022036200a9285750505050505062007e946020916201389260ff1981541690556200a91d620060e7565b91388080806200a8e0565b8451828110156200aa15576023036200a94f575b50505050505062007e946020916200a91d565b845194828610156200aa155760248096036200a96d575b506200a93c565b8051838110156200aa01576025146200a9665751918210156200a9ed5750036200a9b15750506020916200a9a562007e9492620150fb565b9138808080806200a966565b60405162461bcd60e51b8152602060048201529182015275496e76616c6964206f7065726174696f6e207479706560501b604482015260649150fd5b8490634e487b7160e01b6000526004526000fd5b8683634e487b7160e01b6000526004526000fd5b50634e487b7160e01b60005260045260246000fd5b60405162461bcd60e51b815260206004820152601b60248201527a13dc195c985d1a5bdb881d1e5c19481a5cc81d5b9919599a5b9959602a1b6044820152606490fd5b50915050565b600281036200aa975760405162461bcd60e51b81528062005d576004820162007b72565b6001146200aaa25750565b906200aab262013883546200633c565b805190600160401b821162003e53576202711654826202711655808310620135ba575b506020016202711660005260206000206000915b83831062013599575050505060005b62013883548110156200ab32578062001da26200ab196200ab2c9362006db7565b506200ab258362006dd8565b9062013b38565b6200aaf8565b506200ab4262013882546200633c565b805190600160401b821162003e53576202711554826202711555808310620134fc575b506020016202711560005260206000206000915b838310620134db575050505060005b62013882548110156200abbb578062001da26200aba96200abb59362006df9565b506200ab258362006e1a565b6200ab88565b5060005b612710811015806200ad8757600160ff6201389a8460031b0154161515146200abf5575b506200abef9062005d5b565b6200abbf565b916000835b62005d8f57620138978360031b01548110156200ac67576200ac5e929350600092816200ac318593620138978860031b0162005fe6565b9054600391821b1c6001600160a01b031660009081529087901b6201389601602052604081205562005d5b565b9093926200abfa565b5091604051906200ac788262003ef6565b6000825262005d8f578051906001600160401b03821162003e53576020906200acaa83620138978660031b01620060fb565b01620138978360031b01600052602060002060005b8381106200ad695750505050600381901b6201389a8101805460ff191690556000620138938201819055620138948201819055620138958201556201389801546200abef91906200ad10906200533f565b601f908181116200ad3d575b50506000620138988260031b01556000620138998260031b0155906200abe3565b6200ad6191620138988460031b016000526020600020910160051c81019062005fff565b38806200ad1c565b82516001600160a01b0316818301556020909201916001016200acbf565b505060005b612710811062013446575060005b62013881548110156200adf757806200adb76200adf19262005f55565b60018060a01b0391549060031b1c166000526202711360205260006002604082208281556200ade960018201620063cd565b015562005d5b565b6200ad9a565b506200ae07620138815462005ee3565b8051906001600160401b03821162003e5357600160401b821162003e5357602090620271145483620271145580841062013423575b500162027114600052602060002060005b83811062013405575050505060005b62013881548110156200aed1576200ae748162005f55565b9054620271145460039290921b1c6001600160a01b0316919081101562005d8f576202711460005260008051602062016a78833981519152810180546001600160a01b0319169092179091556200aecb9062005d5b565b6200ae5c565b509060005b62013881548110156200af9357806200aef36200af489262005f55565b9060018060a01b03918291549060031b1c1660005262013880602052604080600020916200af218462005f55565b90549060031b1c1660005262027113602052600020908082036200af4e575b505062005d5b565b6200aed6565b600280916200af7460ff6200af678184541687620068e9565b825460081c1685620068fa565b6200af86600182016001860162013761565b015491015538806200af40565b5060005b6202711d548110156200afe757806200afb46200afe19262005f72565b60018060a01b0391549060031b1c166000526202711c60205262001da26040600020606481019062005fff565b6200af97565b506200aff76201388a5462005ee3565b8051906001600160401b03821162003e5357600160401b821162003e53576020906202711d54836202711d55808410620133e2575b50016202711d600052602060002060005b838110620133c4575050505060005b6201388a548110156200b090578062001da26200b06d6200b08a9362005f8f565b905460039190911b1c6001600160a01b031662001d7a8362005f72565b6200b04c565b5060005b6201388a548110156200b11e57806200b0b16200b1059262005f8f565b9060018060a01b03918291549060031b1c1660005262013889602052604080600020916200b0df8462005f8f565b90549060031b1c166000526202711c602052600020908082036200b10b57505062005d5b565b6200b094565b6200b1169162013bcc565b38806200af40565b506201388b546202711e556201388c546202711f556201388d5462027120556201388e5462027121556201388f546001600160401b03811162003e5357600160401b811162003e5357620271225481620271225580821062013395575b506202712260009081527f846ab89c81ea9339188216a1864da1a19ebe28d411cbec99efa70ca6d389710d8054600080516020620169f883398151915291905b848410620133735750505050506201389054600160401b811162003e5357620271235481620271235580821062013330575b5062027123600090815260008051602062016a188339815191527f7f73709277f72a9bc7b284375e83603a53394744e9fa86da811e86c2aa78e05e5b8383106201331257505062013891549150506001600160401b03811162003e5357600160401b811162003e53576202712454816202712455808210620132e3575b506202712460009081527f8f332db73d3937798ea82422156d059730b0b3058606439b57b7ae623e945366805460008051602062016a9883398151915291905b848410620132c157505050505060ff620138925416151560ff8019620271255416911617620271255560005b62027119548110156200b32257806200b2f36200b31c9262005fac565b905460039190911b1c6001600160a01b0316600090815262027118602052604081205562005d5b565b6200b2d6565b506200b332620138865462005ee3565b8051906001600160401b03821162003e53576020906200b352836200609f565b0162027119600052602060002060005b838110620132a3575050505060005b62013886548110156200b3b5578062001da26200b3926200b3af9362005f38565b905460039190911b1c6001600160a01b031662001d7a8362005fac565b6200b371565b5060005b62013886548110156200b42757806200b3d66200b4219262005f38565b9060018060a01b03918291549060031b1c166000526201388560205260408060002054916200b4058462005f38565b90549060031b1c16600052620271186020526000205562005d5b565b6200b3b9565b5060005b6202711b548110156200b47757806200b4486200b4719262005fc9565b905460039190911b1c6001600160a01b031660009081526202711a602052604081205562005d5b565b6200b42b565b506200b487620138885462005ee3565b8051906001600160401b03821162003e53576020906200b4a783620060c3565b016202711b600052602060002060005b83811062013285575050505060005b62013888548110156200b50a578062001da26200b4e76200b5049362005f1b565b905460039190911b1c6001600160a01b031662001d7a8362005fc9565b6200b4c6565b5060005b62013888548110156200b57c57806200b52b6200b5769262005f1b565b9060018060a01b03918291549060031b1c166000526201388760205260408060002054916200b55a8462005f1b565b90549060031b1c166000526202711a6020526000205562005d5b565b6200b50e565b50906000905b602083015180518310156200fc9257826200b59d9162005dc7565b516020810151602681101562003fd757156200aa2a576020810151602681101562003fd7576001036200bb7657604001906200b5de60c08351015162005d81565b51936200b5f560a062007caa818651015162005d81565b51916200b606865185511462014ed7565b6200b615865184511462014f3d565b60005b86518110156200b778576200b62e818662005dc7565b5161271081101562005d8f57600160ff6201389a6200b6569360031b01541615151462014f9f565b6200b662818562005dc7565b516200b66f828762005dc7565b519061271082101562005d8f57620138996200b6919260031b01549062007106565b906200b69e838862005dc7565b519161271083101562005d8f57620138996200b6bf9360031b015562014ff7565b6200b6cb818562005dc7565b516200b6d8828762005dc7565b519061271082101562005d8f576200b71c9162013896906001600160a01b036200b703868d62005dc7565b511660005260031b016020526040600020549062007106565b91906200b72a828862005dc7565b519061271082101562005d8f576200b7729362001da29262013896906001600160a01b036200b75a878f62005dc7565b511660005260031b0160205260406000205562015056565b6200b618565b50926200b78f919250620083d6909594956201627d565b916040516200b79e8162003ef6565b6000815260003681376000945b80518610156200bb5c576200b7c1868262005dc7565b51610740526200b7d2855162005ee3565b966000946200b7e2845162005ee3565b6103e05260009460005b88518110156200b8b5578a896200b81c6001600160a01b036200b810858462005dc7565b511661074051620160b3565b15806200b86c575b6200b83d575b50506200b8379062005d5b565b6200b7ec565b986200b8619162001e4582859c62009cb46200b8379760018060a01b039262005dc7565b9790508a896200b82a565b50505061271061074051101562005d8f576001600160a01b036200b891828b62005dc7565b5116600052620138966107405160031b016020528a8960406000205415156200b824565b50909895979498969291939660005b88518110156200b9545761271061074051101562005d8f576001600160a01b03806200b8f1838c62005dc7565b5116600052620138966107405160031b01602052604060002054156200b924575b506200b91e9062005d5b565b6200b8c4565b819b6200b94c916200b93b6200b91e948d62005dc7565b511662001e45826103e05162005dc7565b9a906200b912565b5098509695929190939661074051612710811015806104605262005d8f5760031b620138970154986200b98c6200938f898c62014b6f565b6106805260006105a052600060e0525b6104605162005d8f5760e0518a8110156200ba63576200b9d26200b9f291600061046052620138976107405160031b0162005fe6565b90546103e0516001600160a01b03939260031b9190911c8316906201610c565b156200ba10575b506200ba0760e05162005d5b565b60e0526200b99c565b6000610460526200ba2f60e051620138976107405160031b0162005fe6565b90549060031b1c166200ba496105a0516106805162005dc7565b526200ba586105a05162005d5b565b6105a052386200b9f9565b50979294959093985095909560005b8281106200bb10575050506104605162005d8f5761068051516001600160401b03811162003e53576200bab181620138976107405160031b01620060fb565b60206106805101620138976107405160031b01600052602060002060005b8381106200baf257505050506200bae69062005d5b565b9492959091956200b7ab565b82516001600160a01b0316818301556020909201916001016200bacf565b6200bb56906001600160a01b036200bb29828562005dc7565b51166200bb3d6105a0516106805162005dc7565b526200bb4c6105a05162005d5b565b6105a05262005d5b565b6200ba72565b5050939092506200bb6e915062005d5b565b90916200b582565b906020829493940151602681101562003fd7576002036200bd33576040809201908151938451916200bbcd6200bbb160a08098015162005d81565b51966200bbc2818751015162005da5565b519551015162005db6565b51948351875103620080ec5783518551036200809857835186510362008041575060005b86518110156200bd20576200bc07818862005dc7565b5161271081101562005d8f5760ff6201389a6200bc2b9260031b01541615620150af565b6200bc37818862005dc7565b5161271081101562005d8f5760031b6201389a01805460ff191660011790556200bc62818562005dc7565b516200bc6f828962005dc7565b519061271082101562005d8f57620138986200bc8f9260031b0162006816565b6200bc9b818662005dc7565b516200bca8828962005dc7565b5161271081101562005d8f5760031b6201389401556200bcc9818762005dc7565b516200bcd6828962005dc7565b5161271081101562005d8f5760031b6201389501556200bcf7818862005dc7565b519061271082101562005d8f576000620138996200bd1a9360031b015562005d5b565b6200bbf1565b509592509350506200bb6e915062005d5b565b9092916020840151602681101562003fd7576003036200c3655760408401906200bd6260c08351015162005d81565b51906200bd7960a062007caa818651015162005d81565b51936200bd8e835185511462001c12620164ee565b6200bda1835186511462001c12620164ee565b60005b83518110156200be00576200bdba818662005dc7565b519061271082101562005d8f57620138966200bdfa9260018060a01b038b511660005260031b0160205262001da26040600020546200825e838a62005dc7565b6200bda4565b509095919560005b87518110156200bf52576200be1e818662005dc7565b5161271081101562005d8f57620138969060018060a01b0386511660005260031b016020526200be59604060002054620082dc838962005dc7565b906200be66838862005dc7565b519161271083101562005d8f57620138966200bea09360018060a01b0389511660005260031b0160205260406000205562001c12620165f2565b6200beac818662005dc7565b5161271081101562005d8f5762013896906001600160a01b036200bed1848c62005dc7565b511660005260031b016020526200bef360406000205462007344838962005dc7565b91906200bf01828862005dc7565b519061271082101562005d8f576200bf4c936201389662001da2938d6200bf308760018060a01b039262005dc7565b511660005260031b0160205260406000205562001c1262016657565b6200be08565b50926200bf71919294506200bf6a909695966201627d565b9462016161565b92604051906200bf818262003eda565b6001825260203681840137516001600160a01b03166200bfa18262005d81565b526000945b80518610156200bb5c576200bfbc868262005dc7565b51610540526200bfcd855162005ee3565b966000946200bfdd845162005ee3565b6102205260009460005b88518110156200c0b0578a896200c0176001600160a01b036200c00b858462005dc7565b511661054051620160b3565b15806200c067575b6200c038575b50506200c0329062005d5b565b6200bfe7565b986200c05c9162001e4582859c62009cb46200c0329760018060a01b039262005dc7565b9790508a896200c025565b50505061271061054051101562005d8f576001600160a01b036200c08c828b62005dc7565b5116600052620138966105405160031b016020528a8960406000205415156200c01f565b50909895979498969291939660005b88518110156200c1565761271061054051101562005d8f576001600160a01b036200c0eb828b62005dc7565b5116600052620138966105405160031b01602052604060002054156200c11d575b6200c1179062005d5b565b6200c0bf565b996200c117906200c14d906001600160a01b036200c13c8e8d62005dc7565b511662001e45826102205162005dc7565b9a90506200c10c565b5098509695929190939661054051612710811015806106c05262005d8f5760031b620138970154986200c18e6200938f898c62014b6f565b610120526000610500526000610140525b6106c05162005d8f57610140518a8110156200c26c576200c1d66200c1f39160006106c052620138976105405160031b0162005fe6565b90546102205160039290921b1c6001600160a01b0316906201610c565b156200c212575b6200c2086101405162005d5b565b610140526200c19f565b60006106c0526200c23261014051620138976105405160031b0162005fe6565b60018060a01b0391549060031b1c166200c253610500516101205162005dc7565b526200c2626105005162005d5b565b610500526200c1fa565b50979294959093985095909560005b8281106200c319575050506106c05162005d8f5761012051516001600160401b03811162003e53576200c2ba81620138976105405160031b01620060fb565b60206101205101620138976105405160031b01600052602060002060005b8381106200c2fb57505050506200c2ef9062005d5b565b9492959091956200bfa6565b82516001600160a01b0316818301556020909201916001016200c2d8565b6200c35f906001600160a01b036200c332828562005dc7565b51166200c346610500516101205162005dc7565b526200c3556105005162005d5b565b6105005262005d5b565b6200c27b565b90926020810151602681101562003fd7576004036200c997576040016200c39160c08251015162005d81565b51936200c3a360c08351015162005da5565b51906200c3ba60a062007caa818651015162005d81565b51936200c3cf875184511462001c12620164ee565b6200c3e2875185511462001c12620164ee565b6200c3f5875186511462001c12620164ee565b60005b87518110156200c461576200c40e818662005dc7565b519061271082101562005d8f576200c45b9162013896906001600160a01b036200c439848d62005dc7565b511660005260031b0160205262001da26040600020546200825e838a62005dc7565b6200c3f8565b509095919593929360005b83518110156200c5c8576200c482818762005dc7565b5161271081101562005d8f5762013896906001600160a01b036200c4a7848862005dc7565b511660005260031b016020526200c4c9604060002054620082dc838862005dc7565b906200c4d6838962005dc7565b519161271083101562005d8f576200c51d9262013896906001600160a01b036200c501878b62005dc7565b511660005260031b0160205260406000205562001c12620165f2565b6200c529818762005dc7565b5161271081101562005d8f5762013896906001600160a01b036200c54e848c62005dc7565b511660005260031b016020526200c57060406000205462007344838862005dc7565b9190506200c57f818862005dc7565b519161271083101562005d8f576200c5c29262013896906001600160a01b036200c5aa858e62005dc7565b511660005260031b0160205260406000205562005d5b565b6200c46c565b5091936200c5e4919350620083dd620083d6919796976201627d565b6000945b80518610156200bb5c576200c5fe868262005dc7565b516104e0526200c60f855162005ee3565b966000946200c61f845162005ee3565b6102605260009460005b88518110156200c6f2578a896200c6596001600160a01b036200c64d858462005dc7565b51166104e051620160b3565b15806200c6a9575b6200c67a575b50506200c6749062005d5b565b6200c629565b986200c69e9162001e4582859c62009cb46200c6749760018060a01b039262005dc7565b9790508a896200c667565b5050506127106104e051101562005d8f576001600160a01b036200c6ce828b62005dc7565b5116600052620138966104e05160031b016020528a8960406000205415156200c661565b50909895979498969291939660005b88518110156200c791576127106104e051101562005d8f576001600160a01b03806200c72e838c62005dc7565b5116600052620138966104e05160031b01602052604060002054156200c761575b506200c75b9062005d5b565b6200c701565b819b6200c789916200c7786200c75b948d62005dc7565b511662001e45826102605162005dc7565b9a906200c74f565b509850969592919093966104e051612710811015806103405262005d8f5760031b620138970154986200c7c96200938f898c62014b6f565b61070052600060c0526000610480525b6103405162005d8f57610480518a8110156200c8a1576200c8106200c83091600061034052620138976104e05160031b0162005fe6565b9054610260516001600160a01b03939260031b9190911c8316906201610c565b156200c850575b506200c8466104805162005d5b565b610480526200c7d9565b6000610340526200c87061048051620138976104e05160031b0162005fe6565b90549060031b1c166200c88960c0516107005162005dc7565b526200c89760c05162005d5b565b60c052386200c837565b50979294959093985095909560005b8281106200c94e575050506103405162005d8f5761070051516001600160401b03811162003e53576200c8ef81620138976104e05160031b01620060fb565b60206107005101620138976104e05160031b01600052602060002060005b8381106200c93057505050506200c9249062005d5b565b9492959091956200c5e8565b82516001600160a01b0316818301556020909201916001016200c90d565b6200c991906001600160a01b036200c967828562005dc7565b51166200c97a60c0516107005162005dc7565b526200c98860c05162005d5b565b60c05262005d5b565b6200c8b0565b92906020840151602681101562003fd7576005036200cf4d5760408401906200c9ca60a062008446818551015162005d81565b519282518451036200cefb5760005b83518110156200ca35576200c9ef818562005dc7565b519061271082101562005d8f57620138966200ca2f9260018060a01b038a511660005260031b0160205262001da26040600020546200825e838962005dc7565b6200c9d9565b509060005b83518110156200cade576200ca50818562005dc7565b5161271081101562005d8f57620138969060018060a01b0389511660005260031b016020526200ca8b604060002054620082dc838862005dc7565b91906200ca99828762005dc7565b519061271082101562005d8f576200cad8936201389662001da29360018060a01b038d511660005260031b0160205260406000205562001c12620165f2565b6200ca3a565b50916200caef91949593506201627d565b92604051926200caff8462003eda565b6001845260203681860137516001600160a01b03166200cb1f8462005d81565b52604051926200cb2f8462003ef6565b6000845260003681376000945b80518610156200bb5c576200cb52868262005dc7565b51610300526200cb63855162005ee3565b966000946200cb73845162005ee3565b6101c05260009460005b88518110156200cc46578a896200cbad6001600160a01b036200cba1858462005dc7565b511661030051620160b3565b15806200cbfd575b6200cbce575b50506200cbc89062005d5b565b6200cb7d565b986200cbf29162001e4582859c62009cb46200cbc89760018060a01b039262005dc7565b9790508a896200cbbb565b50505061271061030051101562005d8f576001600160a01b036200cc22828b62005dc7565b5116600052620138966103005160031b016020528a8960406000205415156200cbb5565b50909895979498969291939660005b88518110156200ccec5761271061030051101562005d8f576001600160a01b036200cc81828b62005dc7565b5116600052620138966103005160031b01602052604060002054156200ccb3575b6200ccad9062005d5b565b6200cc55565b996200ccad906200cce3906001600160a01b036200ccd28e8d62005dc7565b511662001e45826101c05162005dc7565b9a90506200cca2565b5098509695929190939661030051612710811015806101605262005d8f5760031b620138970154986200cd246200938f898c62014b6f565b610760526000610240526000610440525b6101605162005d8f57610440518a8110156200ce02576200cd6c6200cd8991600061016052620138976103005160031b0162005fe6565b90546101c05160039290921b1c6001600160a01b0316906201610c565b156200cda8575b6200cd9e6104405162005d5b565b610440526200cd35565b6000610160526200cdc861044051620138976103005160031b0162005fe6565b60018060a01b0391549060031b1c166200cde9610240516107605162005dc7565b526200cdf86102405162005d5b565b610240526200cd90565b50979294959093985095909560005b8281106200ceaf575050506101605162005d8f5761076051516001600160401b03811162003e53576200ce5081620138976103005160031b01620060fb565b60206107605101620138976103005160031b01600052602060002060005b8381106200ce9157505050506200ce859062005d5b565b9492959091956200cb3c565b82516001600160a01b0316818301556020909201916001016200ce6e565b6200cef5906001600160a01b036200cec8828562005dc7565b51166200cedc610240516107605162005dc7565b526200ceeb6102405162005d5b565b6102405262005d5b565b6200ce11565b60405162461bcd60e51b8152602060048201526035602482015260008051602062016a38833981519152604482015274195b905b5bdd5b9d081a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b90926020810151602681101562003fd7576006036200d1cf576040016200cf7960c08251015162005d81565b51936200cf9060a062008446818551015162005d81565b519285518351036200d17d5785518451036200d1305760005b86518110156200d012576200cfbf818562005dc7565b519061271082101562005d8f576200d00c9162013896906001600160a01b036200cfea848c62005dc7565b511660005260031b0160205262001da26040600020546200825e838962005dc7565b6200cfa9565b509060005b86518110156200d0b8576200d02d818562005dc7565b5161271081101562005d8f5762013896906001600160a01b036200d052848b62005dc7565b511660005260031b016020526200d074604060002054620082dc838862005dc7565b91906200d082828762005dc7565b519061271082101562005d8f576200d0b29362001da29262013896906001600160a01b036200c501878f62005dc7565b6200d017565b5094916200d0d49193506200d0cd906201627d565b9162016161565b91604051946200d0e48662003ef6565b60008652600036813760005b83518110156200d11e578062001da26200d10f6200d118938762005dc7565b51878a62015d79565b6200d0f0565b5094509290506200bb6e915062005d5b565b60405162461bcd60e51b8152602060048201526030602482015260008051602062016b1883398151915260448201526f1b9d1cc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b60405162461bcd60e51b81526020600482015260356024820152600080516020620169d88339815191526044820152741b90db185cdcd95cc81a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b6020819493940151602681101562003fd7576007036200d36d57604001916200d1fd60c08451015162005d81565b51916200d20f60a08551015162005d81565b51935151916200d227845186511462001c12620164ee565b60005b84518110156200d35b576001600160a01b03806200d249838862005dc7565b511660005262027113806020526200d26e60ff604060002054161562001c12620165bf565b60026200d27c848862005dc7565b516200d2e66200d28d868c62005dc7565b5191620089b48b604051966200d2a38862003e37565b60018852886200d2ca8b60208b01946000865260408c0197885260608c01998a5262005dc7565b5116600052602052620089aa60406000209751151588620068e9565b519101556200d2f6828762005dc7565b516202711454929116600160401b83101562003e53576001830180620271145583101562005d8f576202711460005260008051602062016a7883398151915290920180546001600160a01b0319169092179091556200d3559062005d5b565b6200d22a565b5094915092506200bb6e915062005d5b565b6020810151602681101562003fd7576008036200d45c5760c060406200d397920151015162005d81565b519160005b83518110156200d44d576200d447906001600160a01b03806200d3c0838862005dc7565b51166000526202711390816020526200d3ea600160ff6040600020541615151462001c126201651e565b806200d3f7848962005dc7565b5116600052816020526200d41b60ff60406000205460081c161562001c1262016586565b6200d427838862005dc7565b5116600052602052604060002061010061ff001982541617905562005d5b565b6200d39c565b50926200bb6e91925062005d5b565b6020810151602681101562003fd7576009036200d53c5760c060406200d486920151015162005d81565b519160005b83518110156200d44d576200d536906001600160a01b03806200d4af838862005dc7565b51166000526202711390816020526200d4d9600160ff6040600020541615151462001c126201651e565b806200d4e6848962005dc7565b5116600052816020526200d50e600160ff60406000205460081c1615151462001c1262016551565b6200d51a838862005dc7565b5116600052602052604060002061ff0019815416905562005d5b565b6200d48b565b6020810151602681101562003fd757600a036200d62557604001906200d57860a06200d56d60c08551015162005d81565b519351015162005d81565b51926200d58d835185511462001c12620164ee565b60005b83518110156200d614576200d60e906001600160a01b03806200d5b4838862005dc7565b511660005262027113806020526200d5dd600160ff6040600020541615151462001c126201651e565b6200d5e9838962005dc7565b51916200d5f7848962005dc7565b511660005260205260026040600020015562005d5b565b6200d590565b50939092506200bb6e915062005d5b565b602081949392940151602681101562003fd757600b036200d70657604001926200d65460c08551015162005d81565b51935151916200d66c855184511462001c12620164ee565b60005b85518110156200d6f6576200d6f09062001da26001600160a01b03806200d697848b62005dc7565b511660005262027113806020526200d6c0600160ff6040600020541615151462001c126201651e565b6200d6cc848962005dc7565b51916200d6da858c62005dc7565b5116600052602052600160406000200162006816565b6200d66f565b509350916200bb6e915062005d5b565b9091926020820151602681101562003fd757600c036200d84a576060604083015101519260005b84518110156200d6145760e06200d74d8260606040880151015162005dc7565b510151156200d7d3576200d7756200d76e8260606040880151015162005dc7565b5162006ed0565b62027115548060001981011162005d6b576200d7976005916000190162006e1a565b5001805461ff0019166101001790556202711554906000198201821062005d6b57600562008e126200d7cd936000190162006e1a565b6200d72d565b6200d7f26200d7eb8260606040880151015162005dc7565b5162006eac565b62027116548060001981011162005d6b576200d8146005916000190162006dd8565b5001805461ff0019166101001790556202711654906000198201821062005d6b57600562008e126200d7cd936000190162006dd8565b9291906020810151602681101562003fd757600d036200d993576040019260206200d87a60a08651015162005d81565b5194510151916200d88f855184511462014c16565b60005b85518110156200d6f657806200d8ad6200d927928662005dc7565b51156200d92d576200d8d16200d8c4828962005dc7565b5162027115541162014c9f565b6200d8fd60ff60056200d8f06200d8e9858c62005dc7565b5162006e1a565b50015460081c1662014cf7565b6200d91560ff600562008f706200d8e9858c62005dc7565b600562008f8c6200d8e9838a62005dc7565b6200d892565b6200d94a6200d93d828962005dc7565b5162027116541162014c9f565b6200d96960ff60056200d8f06200d962858c62005dc7565b5162006dd8565b6200d98160ff600562008f706200d962858c62005dc7565b600562008f8c6200d962838a62005dc7565b6020810151602681101562003fd757600e036200dacb576040019260206200d9c060a08651015162005d81565b5194510151916200d9d5855184511462014c16565b60005b85518110156200d6f657806200d9f36200da66928662005dc7565b51156200da6c576200da176200da0a828962005dc7565b5162027115541162014db9565b6200da3c60ff60056200da2f6200d8e9858c62005dc7565b50015460081c1662014e12565b6200da5460ff6005620090ca6200d8e9858c62005dc7565b600562008e126200d8e9838a62005dc7565b6200d9d8565b6200da896200da7c828962005dc7565b5162027116541162014db9565b6200daa160ff60056200da2f6200d962858c62005dc7565b6200dab960ff6005620090ca6200d962858c62005dc7565b600562008e126200d962838a62005dc7565b9091926020820151602681101562003fd757600f036200dc01576060604083015101519260005b84518110156200d6145760e06200db128260606040880151015162005dc7565b510151156200db91576200db336200d76e8260606040880151015162005dc7565b62027115548060001981011162005d6b576200db556005916000190162006e1a565b5001805461ff0019166101001790556202711554906000198201821062005d6b57600562008f8c6200db8b936000190162006e1a565b6200daf2565b6200dba96200d7eb8260606040880151015162005dc7565b62027116548060001981011162005d6b576200dbcb6005916000190162006dd8565b5001805461ff0019166101001790556202711654906000198201821062005d6b57600562008f8c6200db8b936000190162006dd8565b9291906020810151602681101562003fd7576010036200dd4a5760400151926200dc3460a0608086015195015162005d81565b51916200dc49855184511462001c12620164ee565b60005b85518110156200d6f657806200dc676200dcdd928862005dc7565b516200dc738162004f79565b6200dc7f828762005dc7565b51906200dc8c8162004f79565b6200dca36200dc9a62016621565b82151562005d28565b6200dcae8162004f79565b600181036200dce357506200dcd26200dcc662016621565b61271083111562005d28565b6202711e5562005d5b565b6200dc4c565b6200dcee8162004f79565b600281036200dd0357506202711f5562005d5b565b6200dd0e8162004f79565b600381036200dd235750620271205562005d5b565b806200dd3160049262004f79565b146200dd3e575062005d5b565b6202712155386200a30a565b6020810151602681101562003fd7576011036200dff057604001906200dd7b60a06200d56d60c08551015162005d81565b51936200dd8c835186511462014b23565b60005b83518110156200de0d576200de07906200dde76001600160a01b03806200ddb7848962005dc7565b51166000526202711890816020526200dddb60406000205462007344868d62005dc7565b939062001c12620164a4565b6200ddf3848962005dc7565b511660005260205260406000205562005d5b565b6200dd8f565b509350906200de1c9062016161565b906202711954936200de346200938f84518762014b6f565b9060009260005b8781106200dfb0575060005b85518110156200defc576000805b8981106200dead575b50156200de77575b6200de719062005d5b565b6200de47565b936200de71906200dea4906001600160a01b036200de96888a62005dc7565b511662001e45828862005dc7565b9490506200de66565b6200deb88162005fac565b90546001600160a01b0360039290921b1c8116906200ded8858b62005dc7565b5116146200def1576200deeb9062005d5b565b6200de55565b50506001386200de5e565b5095509392506200df0d8262005ee3565b8051906001600160401b03821162003e53576020906200df2d836200609f565b0162027119600052602060002060005b8381106200df92575050505060005b8281106200df62575050506200bb6e9062005d5b565b6200df8c9062001da26001600160a01b036200df7f838662005dc7565b511662001d7a8362005fac565b6200df4c565b82516001600160a01b0316818301556020909201916001016200df3d565b936200dfe36200dfea916200dfc58762005fac565b905460039190911b1c6001600160a01b031662001e45828862005dc7565b9462005d5b565b6200de3b565b6020819492940151602681101562003fd7576012036200e23857604001906200e02460a06200d56d60c08551015162005d81565b51936200e035835186511462014b23565b60005b83518110156200e08a576200e084906200dde76001600160a01b03806200e060848962005dc7565b51166000526202711890816020526200dddb604060002054620082dc868d62005dc7565b6200e038565b50935091906200e09a9062016161565b62027119546200e0aa8162005ee3565b906000926000915b8083106200e15e575050506200e0c88262005ee3565b8051906001600160401b03821162003e53576020906200e0e8836200609f565b0162027119600052602060002060005b8381106200e140575050505060005b8281106200e11d575050506200bb6e9062005d5b565b6200e13a9062001da26001600160a01b036200df7f838662005dc7565b6200e107565b82516001600160a01b0316818301556020909201916001016200e0f8565b91956000959193959760005b85518110156200e229576200e17f8962005fac565b90546001600160a01b0360039290921b1c8116906200e19f838962005dc7565b5116146200e1b8576200e1b29062005d5b565b6200e16a565b509750956001959391955b806200e1f7575b156200e1e2576200e1db9062005d5b565b916200e0b2565b936200dfe36200e1db916200dfc58762005fac565b506200e2038162005fac565b60018060a01b0391549060031b1c1660005262027118602052604060002054156200e1ca565b5097969096959391956200e1c3565b6020819493940151602681101562003fd7576013036200e2dc5760408091015101519160005b83518110156200d44d576200e274818562005dc7565b51906202711754600160401b81101562003e53576001810180620271175581101562005d8f57620271176000526200e2d69262001da2916007027f08f37177f6a5732df494aeff73d589b534878a053b84dfe1e41c467868b7c9fd0162015675565b6200e25e565b6020819493940151602681101562003fd7576014036200e49457604001906200e30a60c08351015162005d81565b51936200e32160a062007caa818651015162005d81565b51916200e332865185511462014ed7565b6200e341865184511462014f3d565b60005b86518110156200e43f576200e35a818562005dc7565b516200e367828762005dc7565b519061271082101562005d8f57620138996200e3899260031b01549062007106565b906200e396838862005dc7565b519161271083101562005d8f57620138996200e3b79360031b015562014ff7565b6200e3c3818562005dc7565b516200e3d0828762005dc7565b519061271082101562005d8f576200e3fb9162013896906001600160a01b036200b703868d62005dc7565b91906200e409828862005dc7565b519061271082101562005d8f576200e4399362001da29262013896906001600160a01b036200b75a878f62005dc7565b6200e344565b50949150916200d0cd6200e453916201627d565b93604051926200e4638462003ef6565b60008452600036813760005b83518110156200d11e578062001da26200d10f6200e48e938762005dc7565b6200e46f565b92906020840151602681101562003fd7576015036200eaa25760408401906200e4c260c08351015162005d81565b51906200e4d960a062007caa818651015162005d81565b51936200e4ee835185511462001c12620164ee565b6200e501835186511462001c12620164ee565b60005b83518110156200e560576200e51a818662005dc7565b519061271082101562005d8f57620138966200e55a9260018060a01b038b511660005260031b0160205262001da26040600020546200825e838a62005dc7565b6200e504565b509095919560005b87518110156200e696576200e57e818662005dc7565b5161271081101562005d8f57620138969060018060a01b0386511660005260031b016020526200e5b9604060002054620082dc838962005dc7565b906200e5c6838862005dc7565b519161271083101562005d8f57620138966200e6009360018060a01b0389511660005260031b0160205260406000205562001c12620165f2565b6200e60c818662005dc7565b5161271081101562005d8f5762013896906001600160a01b036200e631848c62005dc7565b511660005260031b016020526200e65360406000205462007344838962005dc7565b91906200e661828862005dc7565b519061271082101562005d8f576200e690936201389662001da2938d6200bf308760018060a01b039262005dc7565b6200e568565b50926200e6ae919294506200bf6a909695966201627d565b92604051906200e6be8262003eda565b6001825260203681840137516001600160a01b03166200e6de8262005d81565b526000945b80518610156200bb5c576200e6f9868262005dc7565b516101e0526200e70a855162005ee3565b966000946200e71a845162005ee3565b6105605260009460005b88518110156200e7ed578a896200e7546001600160a01b036200e748858462005dc7565b51166101e051620160b3565b15806200e7a4575b6200e775575b50506200e76f9062005d5b565b6200e724565b986200e7999162001e4582859c62009cb46200e76f9760018060a01b039262005dc7565b9790508a896200e762565b5050506127106101e051101562005d8f576001600160a01b036200e7c9828b62005dc7565b5116600052620138966101e05160031b016020528a8960406000205415156200e75c565b50909895979498969291939660005b88518110156200e893576127106101e051101562005d8f576001600160a01b036200e828828b62005dc7565b5116600052620138966101e05160031b01602052604060002054156200e85a575b6200e8549062005d5b565b6200e7fc565b996200e854906200e88a906001600160a01b036200e8798e8d62005dc7565b511662001e45826105605162005dc7565b9a90506200e849565b509850969592919093966101e051612710811015806104a05262005d8f5760031b620138970154986200e8cb6200938f898c62014b6f565b6102e0526000610400526000610660525b6104a05162005d8f57610660518a8110156200e9a9576200e9136200e9309160006104a052620138976101e05160031b0162005fe6565b90546105605160039290921b1c6001600160a01b0316906201610c565b156200e94f575b6200e9456106605162005d5b565b610660526200e8dc565b60006104a0526200e96f61066051620138976101e05160031b0162005fe6565b60018060a01b0391549060031b1c166200e990610400516102e05162005dc7565b526200e99f6104005162005d5b565b610400526200e937565b50979294959093985095909560005b8281106200ea56575050506104a05162005d8f576102e051516001600160401b03811162003e53576200e9f781620138976101e05160031b01620060fb565b60206102e05101620138976101e05160031b01600052602060002060005b8381106200ea3857505050506200ea2c9062005d5b565b9492959091956200e6e3565b82516001600160a01b0316818301556020909201916001016200ea15565b6200ea9c906001600160a01b036200ea6f828562005dc7565b51166200ea83610400516102e05162005dc7565b526200ea926104005162005d5b565b6104005262005d5b565b6200e9b8565b9091926020810151602681101562003fd7576016036200eb575760c060406200eacf920151015162005d81565b519160005b83518110156200d44d576001600160a01b036200eaf2828662005dc7565b516202712254929116600160401b83101562003e53576001830180620271225583101562005d8f5762027122600052600080516020620169f883398151915290920180546001600160a01b0319169092179091556200eb519062005d5b565b6200ead4565b6020810151602681101562003fd7576017036200ebb45760405162461bcd60e51b8152602060048201526029602482015260008051602062016ad88339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003fd7576018036200ec775760c060406200ebde920151015162005d81565b5191600160ff1962027125541617620271255560005b83518110156200d44d576001600160a01b036200ec12828662005dc7565b516202712454929116600160401b83101562003e53576001830180620271245583101562005d8f576202712460005260008051602062016a9883398151915290920180546001600160a01b0319169092179091556200ec719062005d5b565b6200ebf4565b602081949293940151602681101562003fd7576019036200ec9f575b506200bb6e9062005d5b565b6020810151602681101562003fd757601a036200ee1a5760a060406200ecc9920151015162005d81565b51906200ecda600383511462014b23565b6200ece58262005d81565b516200ecf56200a2a18462005da5565b51926200edde576200bb6e926001036200edd7576200ed1d6200ed7c91620271205462007106565b6202712055604051906200ed318262003ebe565b603282527f6469766964656e6461626c652062616c616e6365206f766572666c6f772077686020830152710cadc40e0e4dec6cae6e6d2dcce40c6c2e6d60731b604083015262005d28565b6200edd06200ed8f6202712154620070f3565b6202712155604051906200eda38262003eda565b601a8252796469766964656e647320636f756e746572206f766572666c6f7760301b602083015262005d28565b906200ec93565b506200edd0565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c6964207061796d656e74207479706560601b6044820152606490fd5b6020810151602681101562003fd757601b036200f41d575091906202711e546200ee476200a3806201637b565b62027121546202711f5411156200ee686200ee61620163e9565b8262005d28565b6202712054906200ee7a838362006fbe565b50506200ee866201643f565b506000805b61271082106200f371575b5050906200eec66200eecc93926200eebc6200eeb16201637b565b612710861062005d28565b62001c12620163e9565b62006fbe565b90506200eed86201643f565b5060009060005b61271081106200f299575b50906127106200eefb920462007194565b90506200ef0c6202712a5462005ee3565b906000946000905b6127108210156200f28c578160031b9460ff6201389a87015416156200f0725760009662013895870154156200f06157600098975b62005d8f57620138978701548910156200f047576200ef6e8962013897890162005fe6565b600160a01b6001900391549060031b1c169788600052620138968801602052604098868a60002054906200efa29162006fbe565b9a906200efae6201643f565b6200efb99162005d28565b60009a620138958b01546200efce9162006fbe565b906200efd96201643f565b6200efe49162005d28565b826000526202711a6020528160002054906200f0009162007106565b9091600020556200f0106201643f565b6200f01b9162005d28565b6200f027828962005dc7565b526200f0339062005d5b565b986200f03f9062005d5b565b98976200ef49565b929095506200f0599196975062005d5b565b90946200ef14565b929095506200f05991965062005d5b565b95969392509350505b6200f0868262005ee3565b9160009160005b8281106200f1f6575050506202711b54916200f0ae6200938f848462014b6f565b926000906000905b8082106200f1d957505060005b8381106200f1435750508251929150506001600160401b03821162003e53576020906200f0f083620060c3565b016202711b600052602060002060005b8381106200f12557505050506200bb6e9060006202712055600062027121556200edd0565b82516001600160a01b0316818301556020909201916001016200f100565b6000805b8381106200f191575b50156200f169575b6200f1639062005d5b565b6200f0c3565b906200f163906200f188906001600160a01b03620093f6858762005dc7565b9190506200f158565b6001600160a01b03806200f1a6858862005dc7565b5116906200f1b5838a62005dc7565b5116146200f1ce576200f1c89062005d5b565b6200f147565b50506001386200f150565b909162009f676200f1ef916200974e8562005fc9565b906200f0b6565b6000805b8581106200f244575b50156200f21c575b6200f2169062005d5b565b6200f08d565b926200f216906200f23b906001600160a01b03620093f6878662005dc7565b9390506200f20b565b6001600160a01b03806200f259858762005dc7565b5116906200f268838a62005dc7565b5116146200f281576200f27b9062005d5b565b6200f1fa565b50506001386200f203565b939495929150506200f07b565b90918160039695961b60ff6201389a82015416156200f3655762013895810154620138978201546000928391825b8184106200f303575050505062007aff6200f2fa936200f2f262001da29796946200268d9462006fbe565b929062006ef4565b9493946200eedf565b94929462005d8f576200f35e856200f3566200f32962001da29862013897870162005fe6565b905460039190911b1c6001600160a01b031660009081526201389686016020526040812054909662007106565b979062006fe0565b926200f2c7565b5091909493946200eeea565b8160039897981b60ff6201389a82015416156200f413576201389581015490600062013897820154916000926000925b8184106200f3de575050505062007aff6200f3d4936200a7aa846200eec6620025b36200a7b69662001da29a9862006fbe565b909695966200ee8b565b93929362005d8f576200f40c846200f4046200f32962001da29762013897870162005fe6565b969062006fe0565b926200f3a1565b509695966200ee96565b6020810151602681101562003fd757601c036200f47a5760405162461bcd60e51b8152602060048201526029602482015260008051602062016af88339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003fd757601d036200f49e575b506200bb6e906200edd0565b6020810151602681101562003fd757601e146200f492576020810151602681101562003fd757601f036200f5315760406200f4dc9101515162005d81565b51906202712354600160401b81101562003e53576001810180620271235581101562005d8f57620271236000526200bb6e926200f52a9160008051602062016a188339815191520162006816565b906200f492565b6020810151602681101562003fd7576020036200f555575b506200bb6e906200f52a565b6020810151602681101562003fd7576021146200f549576020810151602681101562003fd7576022036200f5e057506200bb6e9060ff196202712554166202712555620271245460006202712455806200f5b3575b505b906200f549565b620271246000526200f5d99060008051602062016a988339815191529081019062005fff565b386200f5aa565b6020810151602681101562003fd7576023036200f604575b506200bb6e906200f5ac565b6020810151602681101562003fd7576024146200f5f8576020810151602681101562003fd7576025146200f5f8579290916020840151602681101562003fd7576015036200fc545760408401906200f66160c08351015162005d81565b51906200f67860a062007caa818651015162005d81565b51936200f68d835185511462001c12620164ee565b6200f6a0835186511462001c12620164ee565b60005b83518110156200f6ff576200f6b9818662005dc7565b519061271082101562005d8f57620138966200f6f99260018060a01b038b511660005260031b0160205262001da26040600020546200825e838a62005dc7565b6200f6a3565b509095919560005b87518110156200f835576200f71d818662005dc7565b5161271081101562005d8f57620138969060018060a01b0386511660005260031b016020526200f758604060002054620082dc838962005dc7565b906200f765838862005dc7565b519161271083101562005d8f57620138966200f79f9360018060a01b0389511660005260031b0160205260406000205562001c12620165f2565b6200f7ab818662005dc7565b5161271081101562005d8f5762013896906001600160a01b036200f7d0848c62005dc7565b511660005260031b016020526200f7f260406000205462007344838962005dc7565b91906200f800828862005dc7565b519061271082101562005d8f576200f82f936201389662001da2938d6200bf308760018060a01b039262005dc7565b6200f707565b50926200f84d919294506200bf6a909695966201627d565b92604051906200f85d8262003eda565b6001825260203681840137516001600160a01b03166200f87d8262005d81565b526000945b80518610156200fc41576200f898868262005dc7565b51610520526200f8a9855162005ee3565b966000946200f8b9845162005ee3565b6103a05260009460005b88518110156200f98c578a896200f8f36001600160a01b036200f8e7858462005dc7565b511661052051620160b3565b15806200f943575b6200f914575b50506200f90e9062005d5b565b6200f8c3565b986200f9389162001e4582859c62009cb46200f90e9760018060a01b039262005dc7565b9790508a896200f901565b50505061271061052051101562005d8f576001600160a01b036200f968828b62005dc7565b5116600052620138966105205160031b016020528a8960406000205415156200f8fb565b50909895979498969291939660005b88518110156200fa325761271061052051101562005d8f576001600160a01b036200f9c7828b62005dc7565b5116600052620138966105205160031b01602052604060002054156200f9f9575b6200f9f39062005d5b565b6200f99b565b996200f9f3906200fa29906001600160a01b036200fa188e8d62005dc7565b511662001e45826103a05162005dc7565b9a90506200f9e8565b5098509695929190939661052051612710811015806104205262005d8f5760031b620138970154986200fa6a6200938f898c62014b6f565b6103205260006105c0526000610380525b6104205162005d8f57610380518a8110156200fb48576200fab26200facf91600061042052620138976105205160031b0162005fe6565b90546103a05160039290921b1c6001600160a01b0316906201610c565b156200faee575b6200fae46103805162005d5b565b610380526200fa7b565b6000610420526200fb0e61038051620138976105205160031b0162005fe6565b60018060a01b0391549060031b1c166200fb2f6105c0516103205162005dc7565b526200fb3e6105c05162005d5b565b6105c0526200fad6565b50979294959093985095909560005b8281106200fbf5575050506104205162005d8f5761032051516001600160401b03811162003e53576200fb9681620138976105205160031b01620060fb565b60206103205101620138976105205160031b01600052602060002060005b8381106200fbd757505050506200fbcb9062005d5b565b9492959091956200f882565b82516001600160a01b0316818301556020909201916001016200fbb4565b6200fc3b906001600160a01b036200fc0e828562005dc7565b51166200fc226105c0516103205162005dc7565b526200fc316105c05162005d5b565b6105c05262005d5b565b6200fb57565b5050939092506200bb6e9150906200f5f8565b60405162461bcd60e51b8152602060048201526016602482015275496e76616c6964206f7065726174696f6e207479706560501b6044820152606490fd5b509190506200fca18162014017565b90600681101562003fd757600281036200fcd05760405162461bcd60e51b81528062005d576004820162007b72565b600381036200fd835750303b1562003e1d5790604051809263448ce79160e01b82526044820160406004840152815180915260206064840192019060005b8181106200fd69575050506200fd3482916000946003198483030160248501526200575f565b038183305af180156200fd5d576200fd495750565b6001600160401b03811162003e5357604052565b6040513d6000823e3d90fd5b82518452869450602093840193909201916001016200fd0e565b60059150146200fd905750565b906000905b602083015180518310156200aa6d57826200fdb09162005dc7565b516020810151602681101562003fd757156200aa2a576020810151602681101562003fd7576001036200fff157604001906200fdf160c08351015162005d81565b51936200fe0860a062007caa818651015162005d81565b51916200fe19865185511462014ed7565b6200fe28865184511462014f3d565b60005b86518110156200ff7f576200fe41818662005dc7565b5161271081101562005d8f57600160ff60076200fe679360031b01541615151462014f9f565b6200fe73818562005dc7565b516200fe80828762005dc7565b519061271082101562005d8f5760066200fea09260031b01549062007106565b906200fead838862005dc7565b519161271083101562005d8f5760066200fecc9360031b015562014ff7565b6200fed8818562005dc7565b516200fee5828762005dc7565b519061271082101562005d8f576200ff26916003906001600160a01b036200ff0e868d62005dc7565b5116600052811b016020526040600020549062007106565b91906200ff34828862005dc7565b519061271082101562005d8f576200ff799362001da2926003906001600160a01b036200ff62878f62005dc7565b5116600052811b0160205260406000205562015056565b6200fe2b565b50949150916200d0cd6200ff93916201627d565b93604051926200ffa38462003ef6565b60008452600036813760005b83518110156200ffd4578062001da262007e716200ffce938762005dc7565b6200ffaf565b50945092602092506200ffe8915062005d5b565b9190506200fd95565b602081949293940151602681101562003fd75760020362010289576040018051928351906201002962007ed160a08097015162005d81565b5193825186510362010234578251845103620101de578251855103620101855760005b86518110156201016f5762010062818862005dc7565b5161271081101562005d8f5760ff6007620100849260031b01541615620150af565b62010090818862005dc7565b5161271081101562005d8f5760031b600701805460ff19166001179055620100b9818562005dc7565b51620100c6828962005dc7565b519061271082101562005d8f576005620100e49260031b0162006816565b620100f0818662005dc7565b51620100fd828962005dc7565b5161271081101562005d8f5760031b600101556201011c818762005dc7565b5162010129828962005dc7565b5161271081101562005d8f5760031b6002015562010148818862005dc7565b519061271082101562005d8f5760006006620101699360031b015562005d5b565b6201004c565b509591509350602092506200ffe8915062005d5b565b60405162461bcd60e51b815260206004820152603c602482015260008051602062016a5883398151915260448201527b1b911a5d9a59195b9915d95a59da1d081a5cc81b9bdd08195c5d585b60221b6064820152608490fd5b60405162461bcd60e51b8152602060048201526039602482015260008051602062016a588339815191526044820152781b959bdd1a5b99d41bddd95c881a5cc81b9bdd08195c5d585b603a1b6064820152608490fd5b60405162461bcd60e51b8152602060048201526038602482015260008051602062016a588339815191526044820152771b925b99195e105c9c985e481a5cc81b9bdd08195c5d585b60421b6064820152608490fd5b92916020840151602681101562003fd7576003036201088d576040840190620102b760c08351015162005d81565b5190620102ce60a062007caa818651015162005d81565b5193620102e3835185511462001c12620164ee565b620102f6835186511462001c12620164ee565b60005b835181101562010352576201030f818662005dc7565b519061271082101562005d8f5760036201034c9260018060a01b038b5116600052811b0160205262001da26040600020546200825e838a62005dc7565b620102f9565b509095919560005b87518110156201047d5762010370818662005dc7565b5161271081101562005d8f5760039060018060a01b03865116600052811b01602052620103a8604060002054620082dc838962005dc7565b90620103b5838862005dc7565b519161271083101562005d8f576003620103ec9360018060a01b03895116600052811b0160205260406000205562001c12620165f2565b620103f8818662005dc7565b5161271081101562005d8f576003906001600160a01b036201041b848c62005dc7565b5116600052811b016020526201043c60406000205462007344838962005dc7565b91906201044a828862005dc7565b519061271082101562005d8f576201047793600362001da2938d62009b938760018060a01b039262005dc7565b6201035a565b509262010495919294506200bf6a909695966201627d565b9260405190620104a58262003eda565b6001825260203681840137516001600160a01b0316620104c58262005d81565b526000945b80518610156201087957620104e0868262005dc7565b5161028052620104f1855162005ee3565b9660009462010501845162005ee3565b6103605260009460005b8851811015620105d1578a896201053b6001600160a01b036201052f858462005dc7565b5116610280516201604a565b15806201058b575b6201055c575b5050620105569062005d5b565b6201050b565b98620105809162001e4582859c62009cb4620105569760018060a01b039262005dc7565b9790508a8962010549565b50505061271061028051101562005d8f576001600160a01b03620105b0828b62005dc7565b5116600052600361028051811b016020528a89604060002054151562010543565b50909895979498969291939660005b8851811015620106745761271061028051101562005d8f576001600160a01b036201060c828b62005dc7565b5116600052600361028051811b01602052604060002054156201063b575b620106359062005d5b565b620105e0565b9962010635906201066b906001600160a01b036201065a8e8d62005dc7565b511662001e45826103605162005dc7565b9a90506201062a565b5098509695929190939661028051612710811015806102005262005d8f5760031b6004015498620106aa6200938f898c62014b6f565b610720526000610620526000610780525b6102005162005d8f57610780518a8110156201078457620106f06201070d9160006102005260046102805160031b0162005fe6565b90546103605160039290921b1c6001600160a01b0316906201610c565b156201072c575b620107226107805162005d5b565b61078052620106bb565b6000610200526201074a6107805160046102805160031b0162005fe6565b60018060a01b0391549060031b1c166201076b610620516107205162005dc7565b526201077a6106205162005d5b565b6106205262010714565b50979294959093985095909560005b8281106201082d575050506102005162005d8f5761072051516001600160401b03811162003e5357620107d08160046102805160031b01620060fb565b6020610720510160046102805160031b01600052602060002060005b8381106201080f5750505050620108039062005d5b565b949295909195620104ca565b82516001600160a01b031681830155602090920191600101620107ec565b62010873906001600160a01b0362010846828562005dc7565b51166201085a610620516107205162005dc7565b52620108696106205162005d5b565b6106205262005d5b565b62010793565b5050936200ffe89193506020925062005d5b565b90926020810151602681101562003fd75760040362010b3757620108b960c06040830151015162005d81565b5193620108ce60c06040840151015162005da5565b5190620108f560a06040620108e98282880151015162005d81565b51950151015162005da5565b51936201090a875184511462001c12620164ee565b6201091d875185511462001c12620164ee565b62010930875186511462001c12620164ee565b60005b8751811015620109995762010949818662005dc7565b519061271082101562005d8f5762010993916003906001600160a01b0362010972848d62005dc7565b5116600052811b0160205262001da26040600020546200825e838a62005dc7565b62010933565b509095919593929360005b835181101562010af457620109ba818762005dc7565b5161271081101562005d8f576003906001600160a01b03620109dd848862005dc7565b5116600052811b01602052620109fe604060002054620082dc838862005dc7565b9062010a0b838962005dc7565b519161271083101562005d8f5762010a4f926003906001600160a01b0362010a34878b62005dc7565b5116600052811b0160205260406000205562001c12620165f2565b62010a5b818762005dc7565b5161271081101562005d8f576003906001600160a01b0362010a7e848c62005dc7565b5116600052811b0160205262010a9f60406000205462007344838862005dc7565b91905062010aae818862005dc7565b519161271083101562005d8f5762010aee926003906001600160a01b0362010ad7858e62005dc7565b5116600052811b0160205260406000205562005d5b565b620109a4565b509362010b0e9192969350620083d6620083dd916201627d565b9260005b83518110156200ffd4578062001da262007e7162010b31938762005dc7565b62010b12565b926020840151602681101562003fd75760050362010cf557604084019062010b6960a062008446818551015162005d81565b519282518451036200cefb5760005b835181101562010bd15762010b8e818562005dc7565b519061271082101562005d8f57600362010bcb9260018060a01b038a5116600052811b0160205262001da26040600020546200825e838962005dc7565b62010b78565b509060005b835181101562010c745762010bec818562005dc7565b5161271081101562005d8f5760039060018060a01b03895116600052811b0160205262010c24604060002054620082dc838862005dc7565b919062010c32828762005dc7565b519061271082101562005d8f5762010c6e93600362001da29360018060a01b038d5116600052811b0160205260406000205562001c12620165f2565b62010bd6565b509492509062010c84906201627d565b906040519262010c948462003eda565b6001845260203681860137516001600160a01b031662010cb48462005d81565b526040519462010cc48662003ef6565b60008652600036813760005b83518110156200ffd4578062001da262007e7162010cef938762005dc7565b62010cd0565b926020810151602681101562003fd75760060362010ead5760400162010d2060c08251015162005d81565b519362010d3760a062008446818551015162005d81565b519285518351036200d17d5785518451036200d1305760005b865181101562010db65762010d66818562005dc7565b519061271082101562005d8f5762010db0916003906001600160a01b0362010d8f848c62005dc7565b5116600052811b0160205262001da26040600020546200825e838962005dc7565b62010d50565b509060005b865181101562010e575762010dd1818562005dc7565b5161271081101562005d8f576003906001600160a01b0362010df4848b62005dc7565b5116600052811b0160205262010e15604060002054620082dc838862005dc7565b919062010e23828762005dc7565b519061271082101562005d8f5762010e519362001da2926003906001600160a01b0362010a34878f62005dc7565b62010dbb565b50949162010e6c9193506200d0cd906201627d565b916040519462010e7c8662003ef6565b60008652600036813760005b83518110156200ffd4578062001da262007e7162010ea7938762005dc7565b62010e88565b6020810151602681101562003fd75760070362010fc0576040019262010ed860c08551015162005d81565b519162010eea60a08651015162005d81565b519451519162010f02845187511462001c12620164ee565b60005b84518110156200ffd45762010fba9062001da26001600160a01b038062010f2d848a62005dc7565b51166000528660028b62010faa62010f6d8762010f65816201388097886020526200895060ff604060002054161562001c12620165bf565b519362005dc7565b5191620089b48d6040519662010f838862003e37565b60018852886200d2ca8c60208b01946000865260408c0197885260608c01998a5262005dc7565b51910155620089cf838962005dc7565b62010f05565b6020819493940151602681101562003fd757600803620110585760c0604062010fed920151015162005d81565b519160005b8351811015620110465762011040906001600160a01b038062011016838862005dc7565b51166000526201388090816020526200d3ea600160ff6040600020541615151462001c126201651e565b62010ff2565b509260209192506200ffe89062005d5b565b6020810151602681101562003fd757600903620110db5760c0604062011082920151015162005d81565b519160005b83518110156201104657620110d5906001600160a01b0380620110ab838862005dc7565b51166000526201388090816020526200d4d9600160ff6040600020541615151462001c126201651e565b62011087565b6020810151602681101562003fd757600a036201118a57604001906201110c60a06200d56d60c08551015162005d81565b519262011121835185511462001c12620164ee565b60005b8351811015620111775762011171906001600160a01b038062011148838862005dc7565b511660005262013880806020526200d5dd600160ff6040600020541615151462001c126201651e565b62011124565b50936200ffe89193506020925062005d5b565b602081949392940151602681101562003fd757600b036201123e5760400192620111b960c08551015162005d81565b5193515191620111d1855184511462001c12620164ee565b60005b85518110156201122b57620112259062001da26001600160a01b0380620111fc848b62005dc7565b511660005262013880806020526200d6c0600160ff6040600020541615151462001c126201651e565b620111d4565b50935091602091506200ffe89062005d5b565b9091926020820151602681101562003fd757600c0362011374576060604083015101519260005b8451811015620111775760e0620112858260606040880151015162005dc7565b510151156201130457620112a662008dbd8260606040880151015162005dc7565b62013882548060001981011162005d6b57620112c86005916000190162006df9565b5001805461ff0019166101001790556201388254906000198201821062005d6b57600562008e12620112fe936000190162006df9565b62011265565b6201131c62008e3c8260606040880151015162005dc7565b62013882548060001981011162005d6b576201133e6005916000190162006db7565b5001805461ff0019166101001790556201388254906000198201821062005d6b57600562008e12620112fe936000190162006db7565b9291906020810151602681101562003fd757600d036201148857604001926020620113a460a08651015162005d81565b519451015191620113b9855184511462014c16565b60005b85518110156201122b5780620113d762011430928662005dc7565b51156201143657620113ee62008f35828962005dc7565b6201140660ff60056200d8f062008f57858c62005dc7565b6201141e60ff600562008f7062008f57858c62005dc7565b600562008f8c62008f57838a62005dc7565b620113bc565b6201144662008fc4828962005dc7565b6201145e60ff60056200d8f062008fe6858c62005dc7565b6201147660ff600562008f7062008fe6858c62005dc7565b600562008f8c62008fe6838a62005dc7565b6020819492940151602681101562003fd757600e036201154f57604001906020620114b860a08451015162005d81565b519251015193620114cd835186511462014c16565b60005b83518110156201122b5780620114eb620114f7928862005dc7565b51620114fd5762005d5b565b620114d0565b6201150d62009082828762005dc7565b6201152560ff60056200da2f62008f57858a62005dc7565b6201153d60ff6005620090ca62008f57858a62005dc7565b600562008e1262008f57838862005dc7565b906020829493940151602681101562003fd757600f0362011686576060604083015101519260005b8451811015620111775760e0620115978260606040880151015162005dc7565b510151156201161657620115b862008dbd8260606040880151015162005dc7565b62013882548060001981011162005d6b57620115da6005916000190162006df9565b5001805461ff0019166101001790556201388254906000198201821062005d6b57600562008f8c62011610936000190162006df9565b62011577565b6201162e62008e3c8260606040880151015162005dc7565b62013882548060001981011162005d6b57620116506005916000190162006db7565b5001805461ff0019166101001790556201388254906000198201821062005d6b57600562008f8c62011610936000190162006db7565b906020819493940151602681101562003fd757601003620116f7576040015190620116ba60a0608084015193015162005d81565b5193620116cf835186511462001c12620164ee565b60005b83518110156201122b578062001da26200926c620116f1938762005dc7565b620116d2565b6020819492940151602681101562003fd7576011036201195c57604001906201172b60a06200d56d60c08551015162005d81565b51936201173c835186511462014b23565b60005b8351811015620117b757620117b19062001da26001600160a01b038062011767848962005dc7565b511660005262013885806020526201178a60406000205462007344868d62005dc7565b91909262011799868b62005dc7565b511660005260205260406000205562001c12620164a4565b6201173f565b50935090620117c69062016161565b90620138865493620117de6200938f84518762014b6f565b9060009260005b87811062011941575060005b855181101562011898576000805b89811062011849575b501562011821575b6201181b9062005d5b565b620117f1565b936201181b9062011840906001600160a01b036200de96888a62005dc7565b94905062011810565b620118548162005f38565b90546001600160a01b0360039290921b1c81169062011874858b62005dc7565b5116146201188d57620118879062005d5b565b620117ff565b505060013862011808565b509550939250620118a98262005ee3565b8051906001600160401b03821162003e5357602090620118c98362006054565b0162013886600052602060002060005b83811062011923575050505060005b82811062011900575050506200ffe860209162005d5b565b6201191d9062001da26001600160a01b0362001d6d838662005dc7565b620118e8565b82516001600160a01b031681830155602090920191600101620118d9565b936200dfe362011956916200dfc58762005f38565b620117e5565b6020819492940151602681101562003fd75760120362011ba557604001906201199060a06200d56d60c08551015162005d81565b5193620119a1835186511462014b23565b60005b8351811015620119f557620119ef9062001da26001600160a01b0380620119cc848962005dc7565b511660005262013885806020526201178a604060002054620082dc868d62005dc7565b620119a4565b509350919062011a059062016161565b620138865462011a158162005ee3565b906000926000915b80831062011acb5750505062011a338262005ee3565b8051906001600160401b03821162003e535760209062011a538362006054565b0162013886600052602060002060005b83811062011aad575050505060005b82811062011a8a575050506200ffe860209162005d5b565b62011aa79062001da26001600160a01b0362001d6d838662005dc7565b62011a72565b82516001600160a01b03168183015560209092019160010162011a63565b91956000959193959760005b855181101562011b965762011aec8962005f38565b90546001600160a01b0360039290921b1c81169062011b0c838962005dc7565b51161462011b255762011b1f9062005d5b565b62011ad7565b509750956001959391955b8062011b64575b1562011b4f5762011b489062005d5b565b9162011a1d565b936200dfe362011b48916200dfc58762005f38565b5062011b708162005f38565b60018060a01b0391549060031b1c16600052620138856020526040600020541562011b37565b50979690969593919562011b30565b6020810151602681101562003fd75760130362011bfe5760408091015101519260005b845181101562011bed578062001da2620097f962011be7938862005dc7565b62011bc8565b509250906200ffe860209162005d5b565b6020810151602681101562003fd75760140362011dab576040019062011c2960c08351015162005d81565b519362011c4060a062007caa818651015162005d81565b519162011c51865185511462014ed7565b62011c60865184511462014f3d565b60005b865181101562011d565762011c79818562005dc7565b5162011c86828762005dc7565b519061271082101562005d8f57600662011ca69260031b01549062007106565b9062011cb3838862005dc7565b519161271083101562005d8f57600662011cd29360031b015562014ff7565b62011cde818562005dc7565b5162011ceb828762005dc7565b519061271082101562005d8f5762011d14916003906001600160a01b036200ff0e868d62005dc7565b919062011d22828862005dc7565b519061271082101562005d8f5762011d509362001da2926003906001600160a01b036200ff62878f62005dc7565b62011c63565b50949150916200d0cd62011d6a916201627d565b936040519262011d7a8462003ef6565b60008452600036813760005b83518110156200ffd4578062001da262007e7162011da5938762005dc7565b62011d86565b92906020840151602681101562003fd7576015036201239857604084019062011dd960c08351015162005d81565b519062011df060a062007caa818651015162005d81565b519362011e05835185511462001c12620164ee565b62011e18835186511462001c12620164ee565b60005b835181101562011e745762011e31818662005dc7565b519061271082101562005d8f57600362011e6e9260018060a01b038b5116600052811b0160205262001da26040600020546200825e838a62005dc7565b62011e1b565b509095919560005b875181101562011f9f5762011e92818662005dc7565b5161271081101562005d8f5760039060018060a01b03865116600052811b0160205262011eca604060002054620082dc838962005dc7565b9062011ed7838862005dc7565b519161271083101562005d8f57600362011f0e9360018060a01b03895116600052811b0160205260406000205562001c12620165f2565b62011f1a818662005dc7565b5161271081101562005d8f576003906001600160a01b0362011f3d848c62005dc7565b5116600052811b0160205262011f5e60406000205462007344838962005dc7565b919062011f6c828862005dc7565b519061271082101562005d8f5762011f9993600362001da2938d62009b938760018060a01b039262005dc7565b62011e7c565b509262011fb7919294506200bf6a909695966201627d565b926040519062011fc78262003eda565b6001825260203681840137516001600160a01b031662011fe78262005d81565b526000945b8051861015620108795762012002868262005dc7565b516106e05262012013855162005ee3565b9660009462012023845162005ee3565b60a05260009460005b8851811015620120f2578a896201205c6001600160a01b0362012050858462005dc7565b51166106e0516201604a565b1580620120ac575b6201207d575b5050620120779062005d5b565b6201202c565b98620120a19162001e4582859c62009cb4620120779760018060a01b039262005dc7565b9790508a896201206a565b5050506127106106e051101562005d8f576001600160a01b03620120d1828b62005dc7565b511660005260036106e051811b016020528a89604060002054151562012064565b50909895979498969291939660005b885181101562012194576127106106e051101562005d8f576001600160a01b036201212d828b62005dc7565b511660005260036106e051811b01602052604060002054156201215c575b620121569062005d5b565b62012101565b9962012156906201218b906001600160a01b036201217b8e8d62005dc7565b511662001e458260a05162005dc7565b9a90506201214b565b509850969592919093966106e051612710811015806102c05262005d8f5760031b6004015498620121ca6200938f898c62014b6f565b6107c05260006106a0526000610640525b6102c05162005d8f57610640518a811015620122a357620122106201222c9160006102c05260046106e05160031b0162005fe6565b905460a05160039290921b1c6001600160a01b0316906201610c565b156201224b575b620122416106405162005d5b565b61064052620121db565b60006102c052620122696106405160046106e05160031b0162005fe6565b60018060a01b0391549060031b1c166201228a6106a0516107c05162005dc7565b52620122996106a05162005d5b565b6106a05262012233565b50979294959093985095909560005b8281106201234c575050506102c05162005d8f576107c051516001600160401b03811162003e5357620122ef8160046106e05160031b01620060fb565b60206107c0510160046106e05160031b01600052602060002060005b8381106201232e5750505050620123229062005d5b565b94929590919562011fec565b82516001600160a01b0316818301556020909201916001016201230b565b62012392906001600160a01b0362012365828562005dc7565b5116620123796106a0516107c05162005dc7565b52620123886106a05162005d5b565b6106a05262005d5b565b620122b2565b90926020810151602681101562003fd757601603620123f65760c06040620123c4920151015162005d81565b519260005b845181101562011bed57620123f09062001da26001600160a01b0362009fe9838962005dc7565b620123c9565b6020810151602681101562003fd757601703620124535760405162461bcd60e51b8152602060048201526029602482015260008051602062016ad88339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003fd757601803620124c05760c060406201247d920151015162005d81565b5192600160ff1962013892541617620138925560005b845181101562011bed57620124ba9062001da26001600160a01b036200a0b6838962005dc7565b62012493565b6020819392930151602681101562003fd757601903620125a85760008080604080940160a0808251015180516201256f575b5050519060e082015191620125166200733d60c060018060a01b0393015162005d81565b511690602083519301915af1903d1562012566573d916201253783620040a7565b92620125468351948562003f12565b83523d6000602085013e5b156200a16b5750506200ffe860209162005d5b565b60609162012551565b6201257a9062005d81565b515162012589575b80620124f2565b8192506200733d906201259f9251015162005d81565b51903862012582565b6020810151602681101562003fd757601a03620126a257620125d360a0604080930151015162005d81565b51620125e3600382511462014b23565b620125ee8162005d81565b519162012607620125ff8362005da5565b519262005db6565b5191620126685750916200ffe8916001602094146000146200a30a576201263762012646916201388d5462007106565b6201388d5562001c126201643f565b62001da2620126596201388e54620070f3565b6201388e5562001c1262016479565b5162461bcd60e51b8152602060048201526014602482015273496e76616c6964207061796d656e74207479706560601b6044820152606490fd5b6020810151602681101562003fd757601b0362012ada57509190620126d36201388b54620025fd6200a3806201637b565b5050620126df6201643f565b506000805b612710811062012a8e575b5050620126fb62007118565b6201270a6202712a5462005ee3565b906000946000905b61271082101562012a81578160031b9460ff6007870154161562012865576000966002870154156201285457600098975b62005d8f5760048701548910156201283a5762012764896004890162005fe6565b9054600391821b1c6001600160a01b03166000818152918901602052604091829020549199916201279790889062006fbe565b9a90620127a36201643f565b620127ae9162005d28565b60009a60028b0154620127c19162006fbe565b90620127cc6201643f565b620127d79162005d28565b8260005262013887602052816000205490620127f39162007106565b909160002055620128036201643f565b6201280e9162005d28565b6201281a828962005dc7565b52620128269062005d5b565b98620128329062005d5b565b989762012743565b929095506201284c9196975062005d5b565b909462012712565b929095506201284c91965062005d5b565b95969392509350505b620128798262005ee3565b9160009160005b828110620129eb57505050620138885491620128a16200938f848462014b6f565b926000906000905b808210620129ce57505060005b838110620129385750508251929150506001600160401b03821162003e5357602090620128e38362006018565b0162013888600052602060002060005b8381106201291a57505050506200ffe860209160006201388d5560006201388e5562005d5b565b82516001600160a01b031681830155602090920191600101620128f3565b6000805b83811062012986575b50156201295e575b620129589062005d5b565b620128b6565b9062012958906201297d906001600160a01b03620093f6858762005dc7565b9190506201294d565b6001600160a01b03806201299b858862005dc7565b511690620129aa838a62005dc7565b511614620129c357620129bd9062005d5b565b6201293c565b505060013862012945565b909162009f67620129e4916200974e8562005f1b565b90620128a9565b6000805b85811062012a39575b501562012a11575b62012a0b9062005d5b565b62012880565b9262012a0b9062012a30906001600160a01b03620093f6878662005dc7565b93905062012a00565b6001600160a01b038062012a4e858762005dc7565b51169062012a5d838a62005dc7565b51161462012a765762012a709062005d5b565b620129ef565b5050600138620129f8565b939495929150506201286e565b8060039594951b9060ff6007830154161562012ad0576200a7b662007aff62001da2946200a7aa62012ac79560026200a7a08762006f61565b939293620126e4565b50939293620126ef565b6020810151602681101562003fd757601c0362012b375760405162461bcd60e51b8152602060048201526029602482015260008051602062016af88339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003fd757601d0362012b5d575b506200ffe860209162005d5b565b6020810151602681101562003fd757601e1462012b4f576020810151602681101562003fd757601f0362012bae5760209162012ba66200a89360406200ffe89401515162005d81565b915062012b4f565b6020810151602681101562003fd75760200362012bd4575b506200ffe860209162012ba6565b6020810151602681101562003fd75760211462012bc6576020810151602681101562003fd75760220362012c2a57506200ffe860209160ff19620138925416620138925562012c22620060e7565b915062012bc6565b6020810151602681101562003fd75760230362012c50575b506200ffe860209162012c22565b6020810151602681101562003fd75760241462012c42576020810151602681101562003fd75760251462012c42579290916020840151602681101562003fd7576015036200fc5457604084019062012cad60c08351015162005d81565b519062012cc460a062007caa818651015162005d81565b519362012cd9835185511462001c12620164ee565b62012cec835186511462001c12620164ee565b60005b835181101562012d485762012d05818662005dc7565b519061271082101562005d8f57600362012d429260018060a01b038b5116600052811b0160205262001da26040600020546200825e838a62005dc7565b62012cef565b509095919560005b875181101562012e735762012d66818662005dc7565b5161271081101562005d8f5760039060018060a01b03865116600052811b0160205262012d9e604060002054620082dc838962005dc7565b9062012dab838862005dc7565b519161271083101562005d8f57600362012de29360018060a01b03895116600052811b0160205260406000205562001c12620165f2565b62012dee818662005dc7565b5161271081101562005d8f576003906001600160a01b0362012e11848c62005dc7565b5116600052811b0160205262012e3260406000205462007344838962005dc7565b919062012e40828862005dc7565b519061271082101562005d8f5762012e6d93600362001da2938d62009b938760018060a01b039262005dc7565b62012d50565b509262012e8b919294506200bf6a909695966201627d565b926040519062012e9b8262003eda565b6001825260203681840137516001600160a01b031662012ebb8262005d81565b526000945b80518610156201326f5762012ed6868262005dc7565b516105805262012ee7855162005ee3565b9660009462012ef7845162005ee3565b6104c05260009460005b885181101562012fc7578a8962012f316001600160a01b0362012f25858462005dc7565b5116610580516201604a565b158062012f81575b62012f52575b505062012f4c9062005d5b565b62012f01565b9862012f769162001e4582859c62009cb462012f4c9760018060a01b039262005dc7565b9790508a8962012f3f565b50505061271061058051101562005d8f576001600160a01b0362012fa6828b62005dc7565b5116600052600361058051811b016020528a89604060002054151562012f39565b50909895979498969291939660005b88518110156201306a5761271061058051101562005d8f576001600160a01b0362013002828b62005dc7565b5116600052600361058051811b016020526040600020541562013031575b6201302b9062005d5b565b62012fd6565b996201302b9062013061906001600160a01b03620130508e8d62005dc7565b511662001e45826104c05162005dc7565b9a905062013020565b5098509695929190939661058051612710811015806101a05262005d8f5760031b6004015498620130a06200938f898c62014b6f565b6105e05260006101805260006107a0525b6101a05162005d8f576107a0518a8110156201317a57620130e6620131039160006101a05260046105805160031b0162005fe6565b90546104c05160039290921b1c6001600160a01b0316906201610c565b1562013122575b620131186107a05162005d5b565b6107a052620130b1565b60006101a052620131406107a05160046105805160031b0162005fe6565b60018060a01b0391549060031b1c1662013161610180516105e05162005dc7565b52620131706101805162005d5b565b610180526201310a565b50979294959093985095909560005b82811062013223575050506101a05162005d8f576105e051516001600160401b03811162003e5357620131c68160046105805160031b01620060fb565b60206105e0510160046105805160031b01600052602060002060005b838110620132055750505050620131f99062005d5b565b94929590919562012ec0565b82516001600160a01b031681830155602090920191600101620131e2565b62013269906001600160a01b036201323c828562005dc7565b511662013250610180516105e05162005dc7565b526201325f6101805162005d5b565b6101805262005d5b565b62013189565b5050936200ffe891935060209250915062012c42565b82516001600160a01b0316818301556020909201916001016200b4b7565b82516001600160a01b0316818301556020909201916001016200b362565b600191820180546001600160a01b03909216848601559390910192906200b2aa565b620271246000526201330b9060008051602062016a9883398151915290810190830162005fff565b386200b26a565b600180826201332382948662013761565b019201920191906200b229565b6202712360005260008051602062016a18833981519152908282015b81830181106201335e5750506200b1ed565b806201336c600192620063cd565b016201334c565b600191820180546001600160a01b03909216848601559390910192906200b1bb565b62027122600052620133bd90600080516020620169f883398151915290810190830162005fff565b386200b17b565b82516001600160a01b0316818301556020909201916001016200b03d565b620133fe906202711d6000528484600020918201910162005fff565b386200b02c565b82516001600160a01b0316818301556020909201916001016200ae4d565b6201343f90620271146000528484600020918201910162005fff565b386200ae3c565b80620134689160031b600160ff6007830154161515146201346e575062005d5b565b6200ad8c565b6201348260048201620138978301620138fa565b6201389a8101600160ff19825416179055805481620138930155600181015462013894820155600281015462013895820155620134c86005820162013898830162013761565b620138996006820154910155386200a30a565b6006602082620134ef60019451866200692c565b019201920191906200ab79565b600681810204810362005d6b57600683810204830362005d6b57620271156000527f0f9b10e190177c3c56fc6ce7689c8130c567df57aa02c08e7a090a59992adf926006840281015b82600602820181106201355a5750506200ab65565b80600060069255600060018201556201357660028201620065c9565b600060038201556201358b60048201620063cd565b600060058201550162013545565b6006602082620135ad60019451866200692c565b019201920191906200aae9565b8060060290600682040362005d6b578260060260068104840362005d6b576000906202711682526020822092830192015b828110620135fb5750506200aad5565b8082600692558260018201556201361560028201620065c9565b8260038201556201362960048201620063cd565b82600582015501620135eb565b608460405162461bcd60e51b8152602060048201526040602482015260008051602062016ab883398151915260448201527f656d2073686f756c64206e6f742072657475726e20766f7465206e65656465646064820152fd5b60405162461bcd60e51b8152602060048201526047602482015260008051602062016ab883398151915260448201527f656d2073686f756c64206e6f742072657475726e206120766f74696e672072756064820152661b19481b1a5cdd60ca1b608482015260a490fd5b8181146201375d578154916001600160401b03831162003e53576201371f8383620060fb565b60005260206000209060005260206000208154916000925b84841062013746575050505050565b600180919201938454928185015501929062013737565b5050565b908082146201375d576201377681546200533f565b906001600160401b03821162003e53578190620137a0826201379986546200533f565b86620067cc565b600090601f8311600114620137d957600092620137cd5750508160011b916000199060031b1c1916179055565b0154905038806200685f565b81526020808220858352818320935090601f1985169083905b8282106201382e5750509084600195949392106201381457505050811b019055565b015460001960f88460031b161c19169055388080620068ac565b8495819295850154815560018091019601940190620137f2565b8181146201375d578154916201385f83836200645e565b6000526020600020906000526020600020906000905b838210620138835750505050565b80620138926001928562013761565b92810192918101910162013875565b8181146201375d57815491620138b88383620064ec565b6000526020600020906000526020600020906000905b838210620138dc5750505050565b80620138eb60019285620136f9565b928101929181019101620138ce565b8181146201375d578154916001600160401b03831162003e5357620139208383620060fb565b60005260206000209060005260206000208154916000925b84841062013947575050505050565b600191820180546001600160a01b039092168486015593909101929062013938565b8181146201375d57815491620139808383620064ec565b6000526020600020906000526020600020906000905b838210620139a45750505050565b80620139b360019285620138fa565b92810192918101910162013996565b8181146201375d57815491620139d983836200657a565b6000526020600020906000526020600020906000905b838210620139fd5750505050565b8062013a0c6001928562013848565b928101929181019101620139ef565b8181146201375d5781549162013a32838362006685565b6000526020600020906000526020600020906000905b83821062013a565750505050565b80600191840362013a73575b600880910193019101909162013a48565b8054845562013ab28280860190830160ff9062013a9482825416846200676f565b62013aa682825460081c168462006789565b5460101c1690620067aa565b62013ac46002808301908601620136f9565b600380850190820180820362013add575b505062013a62565b62013ae89162013848565b62013afa6004808301908601620138a1565b62013b0c600580830190860162013969565b62013b1e6006808301908601620139c2565b62013b30600780830190860162013761565b388062013ad5565b919062006e725780820362013b4b575050565b60ff600580620054c09462013b64848654168262006756565b6001850154600182015562013b80600286016002830162013a1b565b6003850154600382015562013b9c600486016004830162013761565b01920162013bae8282541684620068e9565b62013bc082825460081c1684620068fa565b5460101c169062006912565b908082146201375d57908154906000915b6064831062013bec5750505050565b600180919401928354948184015501919262013bdd565b906201388254602060009301908151519062013c1f8262003f36565b9162013c2f604051938462003f12565b80835262013c40601f199162003f36565b0136602084013762013c558351518262006fbe565b901562013fbf5762013c679062005ee3565b9085928451511562013fb65762013c7e8262005ee3565b965b85515181101562013dff5760008080805b86811062013d165750905062013cb38162013cad858762005dc7565b62005564565b600681101562003fd75760031462013cd8575b5062013cd29062005d5b565b62013c80565b6000905b80821062013ceb575062013cc6565b90956200976c62013d0f9162013d02898d62005dc7565b5162001e45828a62005dc7565b9062013cdc565b62013d2f8162013d28878d5162005dc7565b51620143d8565b9390948083118062013deb575b1562013da257505091838562013d98575b600681101562003fd75760038e911462013d78575b505062013d6f9062005d5b565b91909162013c91565b9462013d8f9162001e458262013d6f959862005dc7565b93908c62013d62565b6000955062013d4d565b809492959195148062013dd7575b1562013d6257600681101562003fd75760038e911462013d7857505062013d6f9062005d5b565b50600681101562003fd75780151562013db0565b50600686101562003fd75785151562013d3c565b5093505090929350600093845b835186101562013f515762013e2c62013e26878662005dc7565b62006748565b9060068083101562003fd757600292830362013e5757505062013e50909562005d5b565b9462013e0c565b62013e6762013e26898862005dc7565b928184101562003fd75760018094148062013f3d575b1562013e925750505062013e50909562005d5b565b62013ea762013e268a899b9694959b62005dc7565b928084101562003fd7576004809414928362013f11575b508262013ee6575b505062013eda575b5062013e509062005d5b565b955062013e5062013ece565b90915088101562013efc57871415388062013ec6565b602182634e487b7160e01b6000525260246000fd5b908093508a101562013f2857891415913862013ebe565b602184634e487b7160e01b6000525260246000fd5b508183101562003fd7578083141562013e7d565b925092909350600682101562003fd7576003820362013fad575b62013f768162005ee3565b9360005b82811062013f89575050509190565b8062013f9a62013fa7928462005dc7565b5162001e45828962005dc7565b62013f7a565b50600062013f6b565b50909392505050565b60405162461bcd60e51b815260206004820152602a60248201527f546865206c656e677468206f6620766f74696e672072756c65206c697374206960448201526973206f766572666c6f7760b01b6064820152608490fd5b9062013883546020600093019081515190620140338262003f36565b9162014043604051938462003f12565b80835262014054601f199162003f36565b01366020840137620140698351518262006fbe565b901562013fbf576201407b9062005ee3565b9085928451511562013fb657620140928262005ee3565b965b855151811015620142005760008080805b8681106201411757509050620140c18162013cad858762005dc7565b600681101562003fd757600314620140e6575b50620140e09062005d5b565b62014094565b6000905b808210620140f95750620140d4565b90956200976c620141109162013d02898d62005dc7565b90620140ea565b620141308162014129878d5162005dc7565b5162014474565b93909480831180620141ec575b15620141a357505091838562014199575b600681101562003fd75760038e911462014179575b5050620141709062005d5b565b919091620140a5565b94620141909162001e458262014170959862005dc7565b93908c62014163565b600095506201414e565b8094929591951480620141d8575b156201416357600681101562003fd75760038e911462014179575050620141709062005d5b565b50600681101562003fd757801515620141b1565b50600686101562003fd7578515156201413d565b5093505090929350600093845b835186101562014322576201422762013e26878662005dc7565b9060068083101562003fd7576002928303620142525750506201424b909562005d5b565b946201420d565b6201426262013e26898862005dc7565b928184101562003fd7576003809414806201430e575b156201428d575050506201424b909562005d5b565b620142a262013e268a899b9694959b62005dc7565b928084101562003fd75760058094149283620142f7575b5082620142e1575b5050620142d5575b506201424b9062005d5b565b95506201424b620142c9565b90915088101562003fd7578714153880620142c1565b908093508a101562003fd7578914159138620142b9565b508183101562003fd7578083141562014278565b925092909350600682101562003fd7576003820362014371575b620143478162005ee3565b9360005b8281106201435a575050509190565b8062013f9a6201436b928462005dc7565b6201434b565b5060006201433c565b156201438257565b60405162461bcd60e51b815260206004820152602860248201527f506c7567696e466163746f72793a20706c7567696e20696e646578206f7574206044820152676f662072616e676560c01b6064820152608490fd5b9091600080938193620143f1620138825483106201437a565b60ff6005620144008462006df9565b50015460081c1615620144685782826201441c926001620145e0565b62014428575b50929190565b80945060019293506201443c915062006df9565b5001549060036201445d60ff620144538662006df9565b5054169462006df9565b500154913862014422565b50509150915080918190565b90916000809381936201448d620138835483106201437a565b60ff60056201449c8462006db7565b50015460081c161562014468578282620144b79282620145e0565b620144c25750929190565b8094506001929350620144d6915062006db7565b5001549060036201445d60ff620144ed8662006db7565b5054169462006db7565b15620144ff57565b60405162461bcd60e51b815260206004820152603160248201527f436865636b696e6720636f6e646974696f6e206578703a20706c7567696e20696044820152706e646578206f7574206f662072616e676560781b6064820152608490fd5b156201456657565b60405162461bcd60e51b815260206004820152602f60248201527f436865636b696e6720636f6e646974696f6e206578703a206e6f646520696e6460448201526e6578206f7574206f662072616e676560881b6064820152608490fd5b805482101562005d8f5760005260206000209060031b0190600090565b9092919080156201494f57620145fc62013882548310620144f7565b6201461860026201460d8462006df9565b50015484106201455e565b801562014931576201464860016201463f856002620146378762006df9565b5001620145c3565b50015460ff1690565b620146538162004f79565b8062014663575050505050600090565b6201466e8162004f79565b6003810362014681575050505050600190565b6201468c8162004f79565b600481036201469f575050505050600090565b620146aa8162004f79565b600190808203620146c357505092620057c29362014977565b909293620146d18262004f79565b6002809214620146e7575b505050505050600090565b821562014914576201471084620147048385620146378a62006df9565b50015460081c60ff1690565b925b60009586865b620148a2575b506201472a8762005ee3565b9760005b88811062014845575050505050620147468262003fcc565b818303620147a557505091906000915b818310620147645750505090565b9091928062014782575b6201477a909362005d5b565b919062014756565b506201477a6201479d62014797858462005dc7565b51151590565b90506201476e565b909150620147b38262003fcc565b81036201480c57509060009182915b818310620147d05750505090565b9091928015620147ef575b620147e7909362005d5b565b9190620147c2565b50620147e76201480462014797858462005dc7565b9050620147db565b600391506201481b8162003fcc565b146201482e5750388080808080620146dc565b6201484162014797620057c29262005d81565b1590565b808a62014881620148786201486e848b620148668c82620146378d62006db7565b500162005fe6565b90549060031b1c90565b868689620145e0565b620148956201489c9462001da29362005dc7565b9015159052565b6201472e565b84620148b48582620146378662006db7565b5001548110156201490e57620148da6201486e8287620148668882620146378962006db7565b620148f3575b620148ec879162005d5b565b9062014718565b96620148ec62014904889262005d5b565b98915050620148e0565b6201471e565b6201492a84620147048385620146378a62006db7565b9262014712565b6201494960016201463f856002620146378762006db7565b62014648565b6201496062013883548310620144f7565b6201497160026201460d8462006db7565b62014618565b9092916003620149c9918360001462014a515760ff6001620149a0876002620146378662006df9565b50015460101c16945b841562014a4057600262014637620149c19362006df9565b500162005694565b91603d81101562003fd757602c810362014a10575050620149f36200733d60208093015162005d81565b51910151602681101562003fd75762014a0c906201668a565b1490565b9092906001810362014a255750505050600090565b60031462014a3557505050600090565b620057c29262014ac1565b600262014637620149c19362006db7565b60ff600162014a67876002620146378662006db7565b50015460101c1694620149a9565b1562014a7d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f70657261746f722061646472657373206973206e6f742070726f76696465646044820152fd5b919060406200733d920162014adb60018251511462014a75565b62014af6600162014aed835162005d81565b51511462014a75565b516001600160a01b0392839162014b0e919062005d81565b5116921562014b1d5751161490565b51161490565b1562014b2b57565b60405162461bcd60e51b815260206004820152601c60248201527b496e76616c6964206e756d626572206f6620706172616d657465727360201b6044820152606490fd5b9190820180921162005d6b57565b62014b888162004f79565b62014b966200dc9a62016621565b62014ba18162004f79565b6001810362014bc0575062014bb96200dcc662016621565b6201388b55565b62014bcb8162004f79565b6002810362014bdc57506201388c55565b62014be78162004f79565b6003810362014bf857506201388d55565b8062014c0660049262004f79565b1462014c0f5750565b6201388e55565b1562014c1e57565b60405162461bcd60e51b815260206004820152604d60248201527f546865206c656e677468206f662074686520706c7567696e20696e646578657360448201527f20617272617920616e642074686520626f6f6c65616e206172726179206d757360648201526c74206265207468652073616d6560981b608482015260a490fd5b1562014ca757565b60405162461bcd60e51b815260206004820152602260248201527f496e76616c696420706c7567696e20696e64657820746f20626520656e61626c604482015261195960f21b6064820152608490fd5b1562014cff57565b60405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c6564206973206e6f742060448201526a1a5b9a5d1a585b1a5e995960aa1b6064820152608490fd5b1562014d6057565b60405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c656420697320616c726560448201526a18591e48195b98589b195960aa1b6064820152608490fd5b1562014dc157565b60405162461bcd60e51b815260206004820152602360248201527f496e76616c696420706c7567696e20696e64657820746f2062652064697361626044820152621b195960ea1b6064820152608490fd5b1562014e1a57565b60405162461bcd60e51b815260206004820152602c60248201527f54686520706c7567696e20746f2062652064697361626c6564206973206e6f7460448201526b081a5b9a5d1a585b1a5e995960a21b6064820152608490fd5b1562014e7c57565b60405162461bcd60e51b815260206004820152602d60248201527f54686520706c7567696e20746f2062652064697361626c656420697320616c7260448201526c1958591e48191a5cd8589b1959609a1b6064820152608490fd5b1562014edf57565b60405162461bcd60e51b815260206004820152603060248201527f546865206c656e677468206f662074617267657420616e6420746f6b656e436c60448201526f185cdcc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b1562014f4557565b60405162461bcd60e51b815260206004820152602c60248201527f546865206c656e677468206f662074617267657420616e6420616d6f756e742060448201526b1a5cc81b9bdd08195c5d585b60a21b6064820152608490fd5b1562014fa757565b60405162461bcd60e51b815260206004820152602260248201527f54686520746f6b656e20636c617373206973206e6f7420696e697469616c697a604482015261195960f21b6064820152608490fd5b1562014fff57565b60405162461bcd60e51b815260206004820152602960248201527f54686520746f74616c20737570706c79206f662074686520746f6b656e206973604482015268206f766572666c6f7760b81b6064820152608490fd5b156201505e57565b60405162461bcd60e51b8152602060048201526024808201527f5468652062616c616e6365206f662074686520746f6b656e206973206f766572604482015263666c6f7760e01b6064820152608490fd5b15620150b757565b606460405162461bcd60e51b815260206004820152602060248201527f54686520746f6b656e20697320616c726561647920696e697469616c697a65646044820152fd5b60408101906201511060c08351015162005d81565b51916201513260a062015127818451015162005d81565b519251015162005da5565b519362015147845183511462001c12620164ee565b6201515a845186511462001c12620164ee565b60005b8451811015620151b75762015173818462005dc7565b519061271082101562005d8f57620151b19160018060a01b03865116600052600390811b0160205262001da26040600020546200825e838a62005dc7565b6201515d565b5092919360005b8351811015620152e257620151d4818462005dc7565b5190612710918281101562005d8f5760018060a01b03908189511660005260039081602091811b01815262015214604060002054620082dc868962005dc7565b9062015221868a62005dc7565b51918783101562005d8f57846201524e93878f5116600052811b01845260406000205562001c12620165f2565b6201525a848862005dc7565b518581101562005d8f5782908462015273878c62005dc7565b5116600052811b0181526201529360406000205462007344868962005dc7565b919092620152a2868a62005dc7565b519687101562005d8f57620152dc9662001da295620152c2888d62005dc7565b5116600052811b01905260406000205562001c1262016657565b620151be565b50506200d0cd620152f3916201627d565b9060405193620153038562003eda565b60018552602036818701376001600160a01b036108208190529051166201532a8562005d81565b526000935b81518510156201564d5762015345858362005dc7565b519462015353845162005ee3565b9160009362015363825162005ee3565b610860528496855b87518110156201540c57620153926108205162015389838b62005dc7565b51168b6201604a565b1580620153d4575b620153b1575b620153ab9062005d5b565b6201536b565b95620153cb620153ab91610820516200a62f8a8c62005dc7565b969050620153a0565b506127108a101562005d8f5761082051620153f0828a62005dc7565b511660005260038a811b0160205260406000205415156201539a565b509793929096949195976000986127108610159560031b9860038a019a5b8951811015620154a6578762005d8f57610820516201544a828c62005dc7565b51166000528b6020526040600020541562015471575b6201546b9062005d5b565b6201542a565b976201549d6201546b918b6201548c8c610820519262005dc7565b511662001e45826108605162005dc7565b98905062015460565b50949591939650985096909596806108805262005d8f5760040180610800525495620154d76200938f868962014b6f565b6107e05260009788610840525b6108805162005d8f57610840518881101562015582576201551362015529916000610880526108005162005fe6565b6108205191549060031b1c16610860516201610c565b1562015548575b6201553e6108405162005d5b565b61084052620154e4565b976201557b9062015560610840516108005162005fe6565b6108205191549060031b1c1662001e45826107e05162005dc7565b9762015530565b5095939096509690969391936000915b8383106201561c57505050506108805162005d8f576107e051516001600160401b03811162003e5357620155ca8161080051620060fb565b60206107e05101610800516000526020600020600061082051905b84811062015605575050505050620155fd9062005d5b565b93926201532f565b6001906020838651169501948185015501620155e5565b62009f6762015646916108205162015635868662005dc7565b511662001e45826107e05162005dc7565b9162015592565b5050509050565b62013884805482101562005d8f576000526007602060002091020190600090565b815180519192916001600160401b03811162003e5357620156978185620060fb565b6020809201846000528260002060005b8381106201570e575050505060c082600692620054c09594015160018501556040810151600285015560608101516003850155620156ef6080820151151560048601620068e9565b6201570260a08201516005860162006816565b015115159101620068e9565b82518282015591840191600101620156a7565b620138848054600160401b81101562003e5357620157459160018201905562015654565b91909162006e7257620054c09162015675565b62013890908154600160401b81101562003e53576001810180845581101562005d8f57620054c09260005260206000200162006816565b90806201579a575050565b620054c091600052601f6020600020910160051c81019062005fff565b90600160401b811162003e53578154818355808210620157d657505050565b620054c092600052601f6020600020918180850160051c840194168062015805575b500160051c019062005fff565b600019908186019182549160200360031b1c16905538620157f8565b9060031b60ff811b9283911b169119161790565b6000926201584f62015848859462015654565b50620054dd565b9380935b8551518510156201593d575061271084101562005d8f5760039380851b9460018060a01b038516600052602090860181526201589c604096600188600020549101549062006fbe565b93849115620159085790620158b19162007106565b969015620158ce575050620158c69062005d5b565b939062015853565b60649250519062461bcd60e51b825260048201526014602482015273746f74616c20706f776572206f766572666c6f7760601b6044820152fd5b875162461bcd60e51b815260048101849052600e60248201526d706f776572206f766572666c6f7760901b6044820152606490fd5b93505092505090565b156201594e57565b60405162461bcd60e51b815260206004820152601360248201527263757272656e74596573206f766572666c6f7760681b6044820152606490fd5b6001620159968262015654565b5001546202712e546000928184526202712b9081602052620159bf816004604088200162005fe6565b90549060031b1c9183865280602052620159e0826005604089200162005fe6565b90549060031b1c93865260205260ff600662015a1462015a06848360408b200162005fe6565b90549060031b1c9362015654565b5001541662015a62575062015a52926200044f62015a44938362015a3c62015a4a9562006f88565b969062015946565b62014b6f565b929062015946565b111562015a5c5790565b50600190565b6200eec6925062015a529362015a7c62015a4a9362006f88565b949062015946565b9092919262015a94825162005ee3565b60009162015aa3815162005ee3565b8390845b865181101562015b3e576001600160a01b0362015aca8162015389848b62005dc7565b158062015b09575b62015aea575b5062015ae49062005d5b565b62015aa7565b819662015b0191620093f662015ae4948b62005dc7565b959062015ad8565b506127108a101562005d8f578062015b22838a62005dc7565b511660005260038a811b01602052604060002054151562015ad2565b509295919694509260005b875181101562015bbf5761271086101562005d8f576001600160a01b038062015b73838b62005dc7565b5116600052600387811b016020526040600020541562015ba0575b5062015b9a9062005d5b565b62015b49565b819562015bb7916200de9662015b9a948c62005dc7565b949062015b8e565b509250945092612710831015938462005d8f5760049586600395861b019687549462015bf06200938f828862014b6f565b9460009689889a5b62015d6457818b101562015c9957506000998b62015c3362015c1b838362005fe6565b90546001600160a01b0392918e1b1c82168a6201610c565b1562015c56575b50509062015c4b8b94939262005d5b565b9a9091929362015bf8565b91998c95949392909162015c6c908c9062005fe6565b9054908d1b1c1662015c7f828b62005dc7565b5262015c8b9062005d5b565b9890919293508b3862015c3a565b9697949a98505091975092506000915b83831062015d3f575050505062015d2a578051926001600160401b03841162015d15575062015cd98383620060fb565b602080910191600052806000209060005b84811062015cf9575050505050565b83516001600160a01b0316838201559281019260010162015cea565b604190634e487b7160e01b6000525260246000fd5b603283634e487b7160e01b6000525260246000fd5b62015d5d9062009f67906001600160a01b036200a62f868662005dc7565b9162015ca9565b603285634e487b7160e01b6000525260246000fd5b9092919262015d89825162005ee3565b60009162015d98815162005ee3565b8390845b865181101562015e3f576001600160a01b0362015dc88162015dbf848b62005dc7565b51168b620160b3565b158062015e07575b62015de8575b5062015de29062005d5b565b62015d9c565b819662015dff91620093f662015de2948b62005dc7565b959062015dd6565b506127108a101562005d8f578062015e20838a62005dc7565b5116600052620138968a60031b01602052604060002054151562015dd0565b509295919694509260005b875181101562015ec35761271086101562005d8f576001600160a01b038062015e74838b62005dc7565b5116600052620138968760031b016020526040600020541562015ea4575b5062015e9e9062005d5b565b62015e4a565b819562015ebb916200de9662015e9e948c62005dc7565b949062015e92565b509250945092612710831015938462005d8f5762013897600394851b019586549362015ef46200938f828762014b6f565b936000958887995b62005d8f57818a101562015f9d57506000988a62015f3762015f1f838362005fe6565b90546001600160a01b0392918d1b1c8216896201610c565b1562015f5a575b50509062015f4f8a94939262005d5b565b999091929362015efc565b91988b95949392909162015f70908b9062005fe6565b9054908c1b1c1662015f83828a62005dc7565b5262015f8f9062005d5b565b9790919293508a3862015f3e565b96945050919795509295506000915b83831062016017575050505062005d8f578151916001600160401b03831162003e535762015fdb8383620060fb565b602080910191600052806000209060005b84811062015ffb575050505050565b83516001600160a01b0316838201559281019260010162015fec565b620160439062009f67906001600160a01b0362016035868662005dc7565b511662001e45828b62005dc7565b9162015fac565b9060005b61271083101562005d8f576003600484821b018054831015620160a95782620160779162005fe6565b9054911b1c6001600160a01b0390811690831614620160a1576201609b9062005d5b565b6201604e565b505050600190565b5050505050600090565b9060005b61271083101562005d8f5760036201389784821b018054831015620160a95782620160e29162005fe6565b9054911b1c6001600160a01b0390811690831614620160a157620161069062005d5b565b620160b7565b9060005b82518110156201614b576001600160a01b03806201612f838662005dc7565b511690831614620160a157620161459062005d5b565b62016110565b505050600090565b801562005d6b576000190190565b9081519060005b60001983810184811162005d6b578210156201622f576001820180831162005d6b575b848110620161a6575050620161a09062005d5b565b62016168565b6001600160a01b0380620161bb858962005dc7565b511681620161ca848a62005dc7565b511614620161e5575b50620161df9062005d5b565b6201618b565b828692960182811162005d6b57620161df9262016228926201620c62016221938b62005dc7565b51166201621a898b62005dc7565b5262016153565b9562016153565b90620161d3565b5050906201623d8162005ee3565b9060005b81811062016250575090925050565b62016277906001600160a01b0362016269828862005dc7565b511662001e45828662005dc7565b62016241565b80519160005b60001984810185811162005d6b5782101562016335576001820180831162005d6b575b858110620162c1575050620162bb9062005d5b565b62016283565b620162cd838662005dc7565b51620162da828762005dc7565b5114620162f3575b620162ed9062005d5b565b620162a6565b948181019080821162005d6b57620163266201632d9162016319620162ed948962005dc7565b516201621a8a8a62005dc7565b9662016153565b9050620162e2565b50509091620163448162005ee3565b9060005b81811062016357575090925050565b806201636862016375928762005dc7565b5162001e45828662005dc7565b62016348565b604051620163898162003e37565b604481527f496e76616c6964206469766964656e64207065726d797269616420706572207460208201527f72616e73616374696f6e2e2053686f756c64206265206c657373207468616e206040820152630313030360e41b606082015290565b604051620163f78162003ebe565b603281527f4e6f20656e6f756768206e756d626572206f66207472616e73616374696f6e7360208201527108199bdc88191a5d9a59195b991cc81e595d60721b604082015290565b6040516201644d8162003eda565b601c81527b6469766964656e6473206f7065726174696f6e206f766572666c6f7760201b602082015290565b604051620164878162003eda565b600d81526c2ab735b737bbb71022b93937b960991b602082015290565b604051620164b28162003ebe565b602681527f4572726f7220696e20776974686472617761626c6520636173682063616c63756020820152653630ba34b7b760d11b604082015290565b604051620164fc8162003eda565b6012815271496e76616c696420506172616d657465727360701b602082015290565b6040516201652c8162003eda565b601581527413595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b602082015290565b6040516201655f8162003eda565b601781527613595b58995c881a5cc81b9bdd081cdd5cdc195b991959604a1b602082015290565b604051620165948162003eda565b601b81527a13595b58995c881a5cc8185b1c9958591e481cdd5cdc195b991959602a1b602082015290565b604051620165cd8162003eda565b60158152744d656d62657220616c72656164792065786973747360581b602082015290565b604051620166008162003eda565b60118152704e6f20656e6f7567682062616c616e636560781b602082015290565b6040516201662f8162003eda565b6018815277125b9d985b1a59081c185c985b595d195c881d1bc81cd95d60421b602082015290565b604051620166658162003eda565b6015815274546f6b656e20616d6f756e74206f766572666c6f7760581b602082015290565b602681101562003fd757801562016878576001811462015a5c57600281146201687257600381146201686c57600481146201686657600581146201686057600681146201685a57600781146201685457600881146201684e57600981146201684857600a81146201684257600b81146201683c57600c81146201683657600d81146201683057600e81146201682a57600f81146201682457601081146201681e57601181146201681857601281146201681257601381146201680c5760148114620168065760158114620168005760188114620167fa5760178114620167f45760198114620167ee57601a8114620167e857601b8114620167e257601c8114620167dc57601d8114620167d657601e8114620167d057601f8114620167ca5760208114620167c457602114620167bf57600090565b602190565b50602090565b50601f90565b50601e90565b50601d90565b50601c90565b50601b90565b50601a90565b50601990565b50601790565b50601690565b50601590565b50601490565b50601390565b50601290565b50601190565b50601090565b50600f90565b50600e90565b50600d90565b50600c90565b50600b90565b50600a90565b50600990565b50600890565b50600790565b50600690565b50600590565b50600490565b50600390565b50600290565b50600090565b90815181101562005d8f570160200190565b604051906201689f8262003ebe565b60288252604036602084013760005b60148110620168bc57505090565b60139080820391821162005d6b57600382901b916001600160fd1b0381160362005d6b5760ff80831162005d6b57600192620169059084901b6001600160a01b03861662006135565b60f081168282160391821162005d6b57620169299060f41b600f60f81b1662016992565b82841b916001600160ff1b038416840362005d6b57620169669160001a6201695284896201687e565b5360f81b6001600160f81b03191662016992565b92810180911162005d6b57620169856201698c9360001a91866201687e565b5362005d5b565b620168ae565b60f81c600a811015620169bb5760300160ff811162005d6b5760f81b6001600160f81b03191690565b60570160ff811162005d6b5760f81b6001600160f81b0319169056fe546865206c656e677468206f662061646472657373657320616e6420746f6b651f4fe3ad533e3985b88710ce05a205152f02825e155777f3bcb8b3bbfcfb03a24ad859a97f543436e70c22b09d31fb4c7b9e987d7a008c98817c9b50a97b1224546865206c656e677468206f6620746f6b656e436c61737320616e6420746f6b546865206c656e677468206f6620746f6b656e496e666f20616e6420746f6b658e71c125ecfe4aeed61c8cf4b09183dd0bf2a3230d826486f04e5f6f0de58e2c18baa939e2e21be0e012ec26e9ec87e9e6faa065bd9f5835250457786300ece8546865206265666f7265206f7065726174696f6e20706c7567696e20737973745265736572766564206f70636f6465206964203233206973206e6f7420696d705265736572766564206f70636f6465206964203238206973206e6f7420696d70546865206c656e677468206f662061646472657373657320616e6420616d6f75a2646970667358221220a6009b1a819644fea5bd74549fcfcaec107c4bee03d67f6b2622f04bdf209c1c64736f6c63430008110033", - "deployedBytecode": "0x6108a08060405260043610156200001557600080fd5b600080608052803560e01c918263036ee8501462003de4575081630e5a3b291462003a7657816310ade3ea1462003a445781631797631d14620039d15781631c75255a146200397b57816323b65c7814620039085781632514a6b414620036c857816341d1a4381462003695578163448ce79114620026ab57816356424cf414620025c35781635c00d98714620025745781635d0b184914620025505781635f1231ea146200245c5781635f5d5f0014620023e9578163681ece9d14620023a657816373cc5570146200229657816379532bfe14620022725781637daa10ce14620022535781638129fc1c1462001e555750806383e4cccf1462001bd1578063864f9f7a1462001b8f57806386ad77e2146200181e5780638c7a63ae14620017a45780639f36145f14620004e1578063a064c4f11462000416578063acf80bc414620003d4578063aefca42a14620003b0578063bba51030146200021b578063d5a172f214620001ec5763d6a93c51146200018f57600080fd5b34620001e65760805180600319360112620001e3575b6127108110620001bb575b602090604051908152f35b60ff60078260031b01541615620001dd57620001d79062005d5b565b620001a5565b620001b0565b80fd5b60805180fd5b34620001e65760805180600319360112620001e35762027126546040516001600160a01b039091168152602090f35b34620001e65760805180600319360112620001e3576202712e548091526202712b906020828152600380604060805120015493620002766200025d8662003f36565b956200026d604051978862003f12565b80875262003f36565b8584019190601f19013683376080515b8560805152818552836040608051200154811015620003595760405163083a348760e31b815260048101829052602486828281305afa9182156200034c57608051926200030e575b50620002db838a62005dc7565b9086831015620002f8575052620002f29062005d5b565b62000286565b60808051634e487b7160e01b9052602160045251fd5b9091508681813d831162000344575b62000329818362003f12565b81010312620001e6575185811015620001e6579089620002ce565b503d6200031d565b6040513d608051823e3d90fd5b84878460405192839281840190828552518091526040840192916080515b8281106200038757505050500390f35b91938395509080826200039f60019483975162004033565b019501910191859493919262000377565b34620001e65760805180600319360112620001e35760206202712854604051908152f35b34620001e6576020366003190112620001e6576001600160a01b03620003f962003e06565b166080515262013887602052602060406080512054604051908152f35b34620001e6576020366003190112620001e657600435612710811015620004c957806200044f6001620004569360031b01549162007044565b9062006fbe565b90156200046857602090604051908152f35b60405162461bcd60e51b815260206004820152603360248201527f73756d566f74696e67576569676874466f72546f6b656e436c6173733a20766f60448201527274696e67576569676874206f766572666c6f7760681b6064820152608490fd5b634e487b7160e01b6080515260326004526024608051fd5b34620001e6576020366003190112620001e657600435608051526202712b602052604060805120604051620005168162003ebe565b81546001600160a01b03168152600182018054909290620005378162003f36565b9062000547604051928362003f12565b808252602082019460805152608051946020862095905b828210620005e957620005be868686602083015260405162000591816200058981600286016200537c565b038262003f12565b604083015260ff600782015491600960088201549101549060405195869560a0875260a08701906200575f565b9360208601526040850152620005da6060850183831662004033565b60081c16151560808301520390f35b604051620005f78162003ebe565b87546001600160a01b0381168252602660a082901c60ff1610156200178c5760a01c60ff1660208201526040516200062f8162003ea1565b6200063d60018a016200541a565b8152600289016040518082602082945493848152019060805152608051926020842093905b80601f830110620015b9576200079b945491818110620015a2575b81811062001588575b8181106200156e575b81811062001554575b8181106200153b575b81811062001521575b81811062001507575b818110620014ed575b818110620014d3575b818110620014b9575b8181106200149f575b81811062001485575b8181106200146b575b81811062001451575b81811062001437575b8181106200141d575b81811062001403575b818110620013e9575b818110620013cf575b818110620013b5575b8181106200139b575b81811062001381575b81811062001367575b8181106200134d575b81811062001333575b81811062001319575b818110620012ff575b818110620012e5575b818110620012cb575b818110620012b1575b81811062001297575b1062001286575b50038262003f12565b6020820152600389018054620007b18162003f36565b91620007c1604051938462003f12565b818352602083019060805152608051906020822091905b8382106200126557505050506040820152600489018054620007fa8162003f36565b916200080a604051938462003f12565b818352602083019060805152608051906020822091905b838210620010fc57505050506060820152600589016040519081602082549182815201916080515260805190602082205b81601f84011062000e0b5784600997946020979460019a97946200099894549181811062000ded575b81811062000dcc575b81811062000dab575b81811062000d8a575b81811062000d6a575b81811062000d49575b81811062000d28575b81811062000d07575b81811062000ce6575b81811062000cc5575b81811062000ca4575b81811062000c83575b81811062000c62575b81811062000c41575b81811062000c20575b81811062000bff575b81811062000bde575b81811062000bbd575b81811062000b9c575b81811062000b7b575b81811062000b5a575b81811062000b39575b81811062000b18575b81811062000af7575b81811062000ad6575b81811062000ab5575b81811062000a94575b81811062000a73575b81811062000a52575b81811062000a31575b81811062000a10575b10620009f55750038262003f12565b6080820152620009ab60068d016200557e565b60a0820152620009be60078d0162005637565b60c08201526008620009dc8d6200058960405180948193016200537c565b60e082015260408201528152019701910190956200055e565b90889160f81c62000a068162004f79565b8152013862000792565b928a8d9160ff8560f01c1662000a268162004f79565b815201930162000989565b928a8d9160ff8560e81c1662000a478162004f79565b815201930162000980565b928a8d9160ff8560e01c1662000a688162004f79565b815201930162000977565b928a8d9160ff8560d81c1662000a898162004f79565b81520193016200096e565b928a8d9160ff8560d01c1662000aaa8162004f79565b815201930162000965565b928a8d9160ff8560c81c1662000acb8162004f79565b81520193016200095c565b928a8d9160ff8560c01c1662000aec8162004f79565b815201930162000953565b928a8d9160ff8560b81c1662000b0d8162004f79565b81520193016200094a565b928a8d9160ff8560b01c1662000b2e8162004f79565b815201930162000941565b928a8d9160ff8560a81c1662000b4f8162004f79565b815201930162000938565b928a8d9160ff8560a01c1662000b708162004f79565b81520193016200092f565b928a8d9160ff8560981c1662000b918162004f79565b815201930162000926565b928a8d9160ff8560901c1662000bb28162004f79565b81520193016200091d565b928a8d9160ff8560881c1662000bd38162004f79565b815201930162000914565b928a8d9160ff8560801c1662000bf48162004f79565b81520193016200090b565b928a8d9160ff8560781c1662000c158162004f79565b815201930162000902565b928a8d9160ff8560701c1662000c368162004f79565b8152019301620008f9565b928a8d9160ff8560681c1662000c578162004f79565b8152019301620008f0565b928a8d9160ff8560601c1662000c788162004f79565b8152019301620008e7565b928a8d9160ff8560581c1662000c998162004f79565b8152019301620008de565b928a8d9160ff8560501c1662000cba8162004f79565b8152019301620008d5565b928a8d9160ff8560481c1662000cdb8162004f79565b8152019301620008cc565b928a8d9160ff8560401c1662000cfc8162004f79565b8152019301620008c3565b928a8d9160ff8560381c1662000d1d8162004f79565b8152019301620008ba565b928a8d9160ff8560301c1662000d3e8162004f79565b8152019301620008b1565b928a8d9160ff8560281c1662000d5f8162004f79565b8152019301620008a8565b928a8d9160ff85831c1662000d7f8162004f79565b81520193016200089f565b928a8d9160ff8560181c1662000da08162004f79565b815201930162000896565b928a8d9160ff8560101c1662000dc18162004f79565b81520193016200088d565b928a8d9160ff8560081c1662000de28162004f79565b815201930162000884565b928a8d9160ff851662000e008162004f79565b81520193016200087b565b926001610400602092865460ff811662000e258162004f79565b825260ff8160081c1662000e398162004f79565b8583015260ff8160101c1662000e4f8162004f79565b604083015260ff8160181c1662000e668162004f79565b606083015260ff81861c1662000e7c8162004f79565b608083015260ff8160281c1662000e938162004f79565b60a083015260ff81818160301c1662000eac8162004f79565b60c09081860152828260381c1662000ec48162004f79565b60e0860152828260401c1662000eda8162004f79565b610100860152828260481c1662000ef18162004f79565b610120860152828260501c1662000f088162004f79565b610140860152828260581c1662000f1f8162004f79565b610160860152828260601c1662000f368162004f79565b610180860152828260681c1662000f4d8162004f79565b6101a0860152828260701c1662000f648162004f79565b6101c0860152828260781c1662000f7b8162004f79565b6101e0860152828260801c1662000f928162004f79565b610200860152828260881c1662000fa98162004f79565b610220860152828260901c1662000fc08162004f79565b610240860152828260981c1662000fd78162004f79565b610260860152828260a01c1662000fee8162004f79565b610280860152828260a81c16620010058162004f79565b6102a0860152828260b01c166200101c8162004f79565b6102c0860152828260b81c16620010338162004f79565b6102e08601521c16620010468162004f79565b61030083015260ff8160c81c166200105e8162004f79565b61032083015260ff8160d01c16620010768162004f79565b61034083015260ff8160d81c166200108e8162004f79565b61036083015260ff8160e01c16620010a68162004f79565b61038083015260ff8160e81c16620010be8162004f79565b6103a083015260ff8160f01c16620010d68162004f79565b6103c083015260f81c620010ea8162004f79565b6103e082015201940192019162000852565b6040516200110a8162003ea1565b6200111a60ff8554168262005564565b60018401546020820152600284018054620011358162003f36565b9162001145604051938462003f12565b818352602083019060805152608051906020822091905b838210620011d457505050506001928260209260406006950152600387015460608201526040516200119781620005898160048c016200537c565b608082015260ff6005880154818116151560a0840152818160081c16151560c084015260101c16151560e082015281520193019101909162000821565b600190602060405191620011e88362003e69565b85548352838601549260ff8416620012008162004f79565b838201526200123060ff6008958181881c166200121d8162003fcc565b604085015260101c166060830162005571565b6200123e6002880162005488565b6080820152620012516003880162005694565b60a08201528152019301910190916200115c565b600760206001926200127786620054dd565b815201930191019091620007d8565b60f81c151581526020018d62000792565b92602060019160ff8560f01c16151581520193016200078b565b92602060019160ff8560e81c161515815201930162000782565b92602060019160ff8560e01c161515815201930162000779565b92602060019160ff8560d81c161515815201930162000770565b92602060019160ff8560d01c161515815201930162000767565b92602060019160ff8560c81c16151581520193016200075e565b92602060019160ff8560c01c161515815201930162000755565b92602060019160ff8560b81c16151581520193016200074c565b92602060019160ff8560b01c161515815201930162000743565b92602060019160ff8560a81c16151581520193016200073a565b92602060019160ff8560a01c161515815201930162000731565b92602060019160ff8560981c161515815201930162000728565b92602060019160ff8560901c16151581520193016200071f565b92602060019160ff8560881c161515815201930162000716565b92602060019160ff8560801c16151581520193016200070d565b92602060019160ff8560781c161515815201930162000704565b92602060019160ff8560701c1615158152019301620006fb565b92602060019160ff8560681c1615158152019301620006f2565b92602060019160ff8560601c1615158152019301620006e9565b92602060019160ff8560581c1615158152019301620006e0565b92602060019160ff8560501c1615158152019301620006d7565b92602060019160ff8560481c1615158152019301620006ce565b92602060019160ff8560401c1615158152019301620006c5565b92602060019160ff8560381c1615158152019301620006bc565b92602060019160ff8560301c1615158152019301620006b3565b92602060019160ff8560281c1615158152019301620006aa565b92602060019160ff85831c1615158152019301620006a1565b92602060019160ff8560181c161515815201930162000698565b92602060019160ff8560101c16151581520193016200068f565b92602060019160ff8560081c161515815201930162000686565b92602060019160ff8516151581520193016200067d565b916020919350610400600191865460ff81161515825260ff8160081c1615158583015260ff8160101c161515604083015260ff816060828260181c161515818601528282891c1615156080860152828260281c16151560a0860152828260c092828260301c16151584890152828260381c16151560e0890152828260401c161515610100890152828260481c161515610120890152828260501c161515610140890152828260581c1615156101608901521c161515610180860152828260681c1615156101a0860152828260701c1615156101c0860152828260781c1615156101e0860152828260801c161515610200860152828260881c161515610220860152828260901c161515610240860152828260981c161515610260860152828260a01c161515610280860152828260a81c1615156102a0860152828260b01c1615156102c0860152828260b81c1615156102e08601521c16151561030083015260ff8160c81c16151561032083015260ff8160d01c16151561034083015260ff8160d81c16151561036083015260ff8160e01c16151561038083015260ff8160e81c1615156103a083015260ff8160f01c1615156103c083015260f81c15156103e082015201940192018492939162000662565b634e487b7160e01b6080515260216004526024608051fd5b34620001e6576020366003190112620001e657600435612710811015620004c95760031b6001810154600282015491620018146005620017f56006840154936200058960405180948193016200537c565b6040519485948552602085015260806040850152608084019062004f52565b9060608301520390f35b34620001e65760805180600319360112620001e357620138828054620018448162003f36565b9162001854604051938462003f12565b8183526020830190608051526080516020812090915b83831062001a3a578462013883908154620018858162003f36565b9262001895604051948562003f12565b8184526020840190608051526080516020812090915b838310620018e557620018d285620018e18860405193849360408552604085019062005106565b90838203602085015262005106565b0390f35b604051620018f38162003ea1565b6200190360ff8454168262005564565b600183015460208201526002830180546200191e8162003f36565b916200192e604051938462003f12565b8183526020830190608051526080516020812090915b838310620019bc57505050506001928260209260406006950152600386015460608201526040516200197f81620005898160048b016200537c565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e0820152815201920192019190620018ab565b600190602060405191620019d08362003e69565b84548352838501549260ff8416620019e88162004f79565b8382015262001a0560ff6008958181881c166200121d8162003fcc565b62001a136002870162005488565b608082015262001a266003870162005694565b60a082015281520192019201919062001944565b60405162001a488162003ea1565b62001a5860ff8454168262005564565b6001830154602082015260028301805462001a738162003f36565b9162001a83604051938462003f12565b8183526020830190608051526080516020812090915b83831062001b11575050505060019282602092604060069501526003860154606082015260405162001ad481620005898160048b016200537c565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e08201528152019201920191906200186a565b60019060206040519162001b258362003e69565b84548352838501549260ff841662001b3d8162004f79565b8382015262001b5a60ff6008958181881c166200121d8162003fcc565b62001b686002870162005488565b608082015262001b7b6003870162005694565b60a082015281520192019201919062001a99565b34620001e6576020366003190112620001e6576001600160a01b0362001bb462003e06565b166080515262013885602052602060406080512054604051908152f35b34620001e657602080600319360112620001e6576004359062001c194783111562001c1262001c008562006156565b62001c0b4762006156565b9062005e0f565b9062005d28565b3360805152604062001c906201388580845262001c6683608051205486111562001c1262001c478862006156565b336080515284885262001c5f87608051205462006156565b9062005e7b565b336080515280845262001c7f858460805120546200611b565b929062001c1262001c478862006156565b33608051528352608051908282205520541562001cd4575b5060805180808381949382941562001cca575b3390f1156200034c5760805180f35b506108fc62001cbb565b6201388680549162001ce68362005ee3565b9160805193845b81811062001de257505062001d028462005ee3565b805191906001600160401b03831162001dca57839062001d228462006054565b0190608051526080519280842090845b84811062001dae5750505050505b82811062001d5057505062001ca8565b62001da89062001da26001600160a01b0362001d6d838662005dc7565b511662001d7a8362005f38565b9080546001600160a01b0360039390931b83811b80199092169390941690931b909216179055565b62005d5b565b62001d40565b83516001600160a01b0316838201559281019260010162001d32565b634e487b7160e01b6080515260416004526024608051fd5b62001ded8162005f38565b90546001600160a01b03916003913391831b1c83160362001e1c575b505062001e169062005d5b565b62001ced565b9662001e4c91839862001e3362001e169562005f38565b9054911b1c1662001e45828962005dc7565b5262005d5b565b95908862001e09565b34620001e65760805180600319360112620001e357506202712680546001600160a01b0319163317905562027129805460ff1916600190811790915560405190919062001ea28162003ef6565b608051905262013882805482825580620021d0575b506080515260405162001eca8162003ef6565b608051905260805180620021b95750620138839081548183558062002137575b5050608051526127106202712a5560405162001f068162003eda565b8181526080515b60208082101562001f86576040516020929162001f2a8262003e69565b6080518252608051818301526080516040830152608051606090818401528060808401526040519062001f5d8262003e85565b80825280838301528060408301528080830152608082015260a083015282850101520162001f0d565b83620021248460405162001f9a8162003ef6565b608051815260405162001fad8162003ef6565b608051815260405162001fc08162003ef6565b608051815260405162001fd38162003ef6565b60805181526040519062001fe78262003ef6565b60805182526040519262001ffb8462003ef6565b6080518452604051946200200f8662003e85565b8552602085015260408401526060830152608082015260405191620020348362003e69565b60805183526003602084015260805160408401526080516060840152608083015260a0820152620020658262005d81565b52620020718162005d81565b50620020cc604051620020848162003ea1565b600481528460208201528260408201526080516060820152604051620020aa8162003ef6565b608051815260808201528460a08201528460c08201528460e082015262006e3b565b60405190620020db8262003ea1565b6002825283602083015260408201526080516060820152604051620021008162003ef6565b608051815260808201528260a08201528260c082015260805160e082015262006e88565b6113886201388b556201388c5560805180f35b6006918183029183830403620021a5578060209160805284815220908101905b81811062002166575062001eea565b8290608051808255868201556200218060028201620065c9565b60805160038201556200219660048201620063cd565b60805160058201550162002157565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b90526041600452608051602490fd5b60069080820290828204036200223f578360805282845260208420908101905b8181106200220057505062001eb7565b8290608051808255878201556200221a60028201620065c9565b60805160038201556200223060048201620063cd565b608051600582015501620021f0565b634e487b7160e01b84526011600452602484fd5b34620001e65760805180600319360112620001e3576020604051338152f35b34620001e65760805180600319360112620001e35760206202712d54604051908152f35b6020366003190112620001e6576004356001600160401b038111620001e657620022c59036906004016200431f565b80516001600160a01b0390620023189082166200230f620022f0620022ea3362016890565b62005c24565b62002308620023028688511662016890565b62005c8a565b9062005ce1565b90331462005d28565b6080519060208301915b8251805182101562002382579062001da26200237c92846200234684339362005dc7565b5151161462001c126200235d620022ea3362016890565b62002308620023028862002373888c5162005dc7565b51511662016890565b62002322565b620018e16200239186620072af565b60405191829160208352602083019062004f52565b34620001e6576020366003190112620001e657600435612710811015620004c957620023dc6004620018e19260031b01620055db565b6040519182918262003fed565b34620001e65760805180600319360112620001e3576040518062013881918254808252602080920193608051526080519180832092905b8282106200243b57620018e185620023dc8189038262003f12565b83546001600160a01b03168652948501946001938401939091019062002420565b34620001e657602080600319360112620001e6576200247a62003e06565b604051620024888162003e37565b60805181526080518382015260606040820152606060805191015260018060a01b03166080515262013880815260406080512060405190620024ca8262003e37565b6200254581549160ff83161515845260ff8585019360081c161515835260026040519162002509836200250181600185016200537c565b038462003f12565b6040860192835201549260608501938452604051958695818752511515908601525115156040850152516080606085015260a084019062004f52565b905160808301520390f35b34620001e65760805180600319360112620001e35760206202712e54604051908152f35b34620001e6576020366003190112620001e657600435612710811015620004c957620025bb620025b3826200044f600260209560031b01549162007044565b919062006ef4565b604051908152f35b34620001e65760805180600319360112620001e3576201388b5462002622620025eb6201637b565b91620025fd6127109384831062005d28565b620026176201388e546201388c54111562001c12620163e9565b6201388d5462006fbe565b9190506200262f6201643f565b5060805191825b82811062002659575b60206200264f8585850462007194565b9050604051908152f35b909260ff60078360031b01541615620026a357816200268d62002699926200268662001da2969562006f61565b9062007106565b949062001c126201643f565b9290919262002636565b92906200263f565b34620001e6576040366003190112620001e6576004356001600160401b038111620001e657620026e090369060040162004041565b6024356001600160401b038111620001e657620027029036906004016200431f565b620271298054600260ff8216620027198162003fcc565b14620036505760ff191660021790556202712e54600181019081106200331457806202712e5560805190815b8451811015620027a8578260026200276962002762848962005dc7565b5162015654565b5001541062002784575b6200277e9062005d5b565b62002745565b91506200277e60026200279c62002762858862005dc7565b50015492905062002773565b50919060805191825b85518110156200280e57620027cb62002762828862005dc7565b508460038092015410620027ec575b50620027e69062005d5b565b620027b1565b8194506200280362002762620027e6938962005dc7565b5001549390620027da565b508493608051526202712b60205260805190604082209160018060a01b0382511660018060a01b03198454161783556020820151805191600160401b8311620021b95750600184015482600186015580831062003474575b50608080516001860190525160208082209392015b82821062002de3575050505090600260406200289b930151910162006816565b620028a7835162005ee3565b6202712e54608051526202712b60205260805190600560408320019080519260018060401b038411620021b95750602090620028e48484620060fb565b01906080515260805160208120905b83811062002dce57505050506200290b835162005ee3565b6202712e54608051526202712b60205260805190600460408320019080519260018060401b038411620021b95750602090620029488484620060fb565b01906080515260805160208120905b83811062002db957505050506200296f835162005ee3565b906202712e54608051526202712b602052608051600660408220019280519160018060401b038311620021b95750602090620029ac8386620060fb565b0192608051526080519260208420845b83811062002da45750505050620029d4904262007106565b90916202712e5490526202712b602052600760406080512001551562002d64576202712e54608051526202712b6020526040600862002a1d608051936007848620015462007106565b9290932001551562002d21576202712e54608051526202712b602052600960406080512001600260ff1982541617905562002a59815162005ee3565b6202712e54608051526202712b602052608051600360408220019180519160018060401b038311620021b9575060209062002a958385620060fb565b0191608051526080519160208320835b83811062002d0c5785855b815181101562002b15578062001da262002acf62002b0f938562005dc7565b516202712e54608051526202712b60205262002af48360036040608051200162005fe6565b90919082549060031b600019811b9283911b16911916179055565b62002ab0565b50608051905b805182101562002d06576202712e549182608051526202712b60205262002b5c62002b4f8260036040608051200162005fe6565b90549060031b1c62015654565b50549062002b6a8262005ee3565b916080515b81811062002cb8575050608051805b835182101562002c835762002b94828562005dc7565b516127109081811015620004c95760031b6001015462002bb5848762005dc7565b5191821015620004c957600662002bd29260031b01549062006fbe565b901562002c3f5762002be49162007106565b91901562002bfe5762002bf79062005d5b565b9062002b7e565b60405162461bcd60e51b8152602060048201526019602482015278746f74616c566f74696e67506f776572206f766572666c6f7760381b6044820152606490fd5b606460405162461bcd60e51b815260206004820152602060248201527f63757272656e74436c617373566f74696e67506f776572206f766572666c6f776044820152fd5b905062001da291925062002cb19394608051526202712b60205262002af48360066040608051200162005fe6565b9062002b1b565b62002d009086608051526202712b60205262002ced8162002ce662002b4f8760036040608051200162005fe6565b5062005fe6565b90549060031b1c62001e45828762005dc7565b62002b6f565b60805180f35b60019060208451940193818401550162002aa5565b60405162461bcd60e51b815260206004820152601b60248201527a657865637574696e6720656e642074696d65206f766572666c6f7760281b6044820152606490fd5b60405162461bcd60e51b8152602060048201526018602482015277766f74696e6720656e642074696d65206f766572666c6f7760401b6044820152606490fd5b600190602084519401938184015501620029bc565b60019060208451940193818401550162002957565b600190602084519401938184015501620028f3565b805180518554602083015190916001600160a01b03169060268110156200178c576001600160a81b03199092161760a09190911b60ff60a01b16178555604001518051805190600187019060209062002e3d84846200645e565b019060805152608051906020822091905b83821062003454575050505060208101518051906001600160401b03821162001dca576020600288019162002e848484620157b7565b019060805152608051916020832090835b8160051c8110620034195750601f1981168103620033d6575b5050506040820151805191600160401b8311620021b9575060038701548260038901558083106200334d575b506080805160038901905251602080822092015b8382106200332c57505050506060810151805190600160401b821162001dca5760048701548260048901558083106200328f575b506080805160048901905251602080822092015b8382106200326e5750505050608081015180516001600160401b03811162001dca576020600588019262002f6b8385620157b7565b0191608051526080519060208220915b8160051c81106200322e5750601f1981168103620031e0575b5050506006850160a0820151602081519162002fb18385620064ec565b0191608051526080516020812090925b8284106200317a57505050506007850160c0820151602081519162002fe78385620064ec565b0191608051526080516020812090925b8284106200310b575050505060e001518051906001600160401b03821162001dca5762003037826200302d60088901546200533f565b60088901620067cc565b60805190602091601f841160011462003090575092826009936020936001966080519262003084575b5050600019600383901b1c191690851b1760088801555b019401910190926200287b565b015190508e8062003060565b600888019052608051602081209291905b601f1985168110620030f2575083602093600196938793600997601f19811610620030d8575b505050811b01600888015562003077565b015160001960f88460031b161c191690558e8080620030c7565b91926020600181928685015181550194019201620030a1565b80518051906001600160401b03821162001dca576020906200312e8386620060fb565b01836080515260805160208120905b8381106200315c57505050506001602081920192019301929062002ff7565b82516001600160a01b0316818301556020909201916001016200313d565b80518051906001600160401b03821162001dca576020906200319d8386620060fb565b01836080515260805160208120905b838110620031cb57505050506001602081920192019301929062002fc1565b600190602084519401938184015501620031ac565b60805192835b601f198316830381106200320457505060051c01558a808062002f94565b9093602062003224600192848851916200321e8362004f79565b62015821565b95019101620031e6565b608051805b602081106200324a57508382015560010162002f7b565b9490602062003264600192888551916200321e8362004f79565b9201950162003233565b60066020826200328260019451876200692c565b0193019101909162002f36565b600681810204810362003314576006838102048303620033145760048801608051526020608051208360060281015b8260060282018110620032d357505062002f22565b6006906080518082556001820155620032ef60028201620065c9565b60805160038201556200330560048201620063cd565b608051600582015501620032be565b634e487b7160e01b6080515260116004526024608051fd5b600760208262003340600194518762015675565b0193019101909162002eee565b600781810204810362003314576007838102048303620033145760038801608051526020608051208360070281015b82600702820181106200339157505062002eda565b806200339f60079262006078565b6080518060018301558060028301558060038301556004820155620033c760058201620063cd565b6080516006820155016200337c565b8392845b601f19831683038110620033f857505060051c01558b808062002eae565b909360206200340f60019284885115159162015821565b95019101620033da565b84855b602081106200343357508382015560010162002e95565b949060206200344a60019288855115159162015821565b920195016200341c565b6001602082620034678394518762006816565b0193019101909162002e4e565b600981810204810362003314576009838102048303620033145760018501608051526020608051208360090281015b8260090282018110620034b857505062002866565b6080518155620034cb600182016200641f565b620034e16002820180549060805181556201578f565b600381015460805180600384015581620035de575b505060048101546080518060048401558162003559575b5050806200352860056009930180549060805181556201578f565b6200353660068201620064ad565b6200354460078201620064ad565b6200355260088201620063cd565b01620034a3565b6006828102048203620035c757506004820160805152602060805120906006028101905b818110156200350d576006906080518082556001820155620035a260028201620065c9565b6080516003820155620035b860048201620063cd565b6080516005820155016200357d565b634e487b7160e01b90526011600452608051602490fd5b6007828102048203620035c757506003820160805152602060805120906007028101905b81811015620034f657806200361960079262006078565b60805180600183015580600283015580600383015560048201556200364160058201620063cd565b60805160068201550162003602565b60405162461bcd60e51b815260206004820152601d60248201527f766f74696e6720697320616c726561647920696e2070726f67726573730000006044820152606490fd5b34620001e6576020366003190112620001e6576020620036b760043562015989565b620036c6604051809262004033565bf35b34620001e657602080600319360112620001e657600435620036f64782111562001c1262001c008462006156565b33608051526201388790818352620037406040608051205482111562001c12620037208462006156565b3360805152858752620037396040608051205462006156565b90620062d0565b3360805152818352620037886200375e82604060805120546200611b565b919062001c126200376f8562006156565b3360805152868852620037396040608051205462006156565b336080515282845260805180809381936040832055818115620038fe575b3390f1156200034c57336080515281526040608051205415620037c95760805180f35b6201388890815490620037dc8262005ee3565b9260805192835b81811062003892575050620037f88362005ee3565b805191906001600160401b03831162001dca578390620038188462006018565b0190608051526080519280842090845b848110620038765750505050505b8181106200384657505062002d06565b620038709062001da26001600160a01b0362003863838762005dc7565b511662001d7a8362005f1b565b62003836565b83516001600160a01b0316838201559281019260010162003828565b6200389d8162005f1b565b90546001600160a01b03916003913391831b1c831603620038cc575b5050620038c69062005d5b565b620037e3565b95620038f5918397620038e3620038c69562005f1b565b9054911b1c1662001e45828a62005dc7565b949087620038b9565b506108fc620037a6565b34620001e65760805180600319360112620001e3576040518062013886918254808252602080920193608051526080519180832092905b8282106200395a57620018e185620023dc8189038262003f12565b83546001600160a01b0316865294850194600193840193909101906200393f565b34620001e6576040366003190112620001e6576024356001600160a01b0381169060043590829003620001e657612710811015620004c95760039160805152811b01602052602060406080512054604051908152f35b34620001e65760805180600319360112620001e3576040518062013888918254808252602080920193608051526080519180832092905b82821062003a2357620018e185620023dc8189038262003f12565b83546001600160a01b03168652948501946001938401939091019062003a08565b34620001e65760805180600319360112620001e357602060ff6202712954166040519062003a728162003fcc565b8152f35b34620001e6576040366003190112620001e65762003a9362003e06565b60249081356001600160401b038111620001e65762003ab790369060040162003f5c565b91600260ff62027129541662003acd8162003fcc565b0362003da4576202712d5442101562003d665760018060a01b0382169182608051526202712c906020938285526080519560408720966202712e978854809252875260ff604060805120541662003d285781519481608051526202712b938489526003968760406080512001540362003cc257608051528752608051906040822091528652608051966040882060019889918260ff19825416179055905b62003b765760805180f35b825181101562003cbc5762003b8c818462005dc7565b511562003c43578154806080515284895262003be862003bcb62003bb98460046040608051200162005fe6565b9054908a1b1c62002686858a62015835565b909260805152868b5262002af48460046040608051200162005fe6565b1562003c005762003bf99062005d5b565b8862003b6b565b60405162461bcd60e51b815260048101899052601c818901527b766f74696e6720666f7220706f776572596573206f766572666c6f7760201b6044820152606490fd5b8154806080515284895262003c6962003bcb62003bb98460046040608051200162005fe6565b1562003c7a5762003bf99062005d5b565b60405162461bcd60e51b815260048101899052601b818901527a766f74696e6720666f7220706f7765724e6f206f766572666c6f7760281b6044820152606490fd5b62002d06565b60405162461bcd60e51b8152600481018a90526039818a01527f746865206e756d626572206f6620766f74657320646f6573206e6f74206d6174604482015278636820746865206e756d626572206f6620706f6c696369657360381b6064820152608490fd5b60405162461bcd60e51b815260048101889052601781880152761d9bdd195c881a185cc8185b1c9958591e481d9bdd1959604a1b6044820152606490fd5b60649060176040519162461bcd60e51b835260206004840152820152761d9bdd1a5b99c81c195c9a5bd9081a185cc8195b991959604a1b6044820152fd5b60649060196040519162461bcd60e51b83526020600484015282015278766f74696e67206973206e6f7420696e2070726f677265737360381b6044820152fd5b3462003e02578160031936011262003e025760209062027127548152f35b5080fd5b600435906001600160a01b038216820362003e1d57565b600080fd5b35906001600160a01b038216820362003e1d57565b608081019081106001600160401b0382111762003e5357604052565b634e487b7160e01b600052604160045260246000fd5b60c081019081106001600160401b0382111762003e5357604052565b60a081019081106001600160401b0382111762003e5357604052565b61010081019081106001600160401b0382111762003e5357604052565b606081019081106001600160401b0382111762003e5357604052565b604081019081106001600160401b0382111762003e5357604052565b602081019081106001600160401b0382111762003e5357604052565b601f909101601f19168101906001600160401b0382119082101762003e5357604052565b6001600160401b03811162003e535760051b60200190565b3590811515820362003e1d57565b81601f8201121562003e1d5780359162003f768362003f36565b9262003f86604051948562003f12565b808452602092838086019260051b82010192831162003e1d578301905b82821062003fb2575050505090565b83809162003fc08462003f4e565b81520191019062003fa3565b6004111562003fd757565b634e487b7160e01b600052602160045260246000fd5b6020908160408183019282815285518094520193019160005b82811062004015575050505090565b83516001600160a01b03168552938101939281019260010162004006565b90600382101562003fd75752565b81601f8201121562003e1d578035916200405b8362003f36565b926200406b604051948562003f12565b808452602092838086019260051b82010192831162003e1d578301905b82821062004097575050505090565b8135815290830190830162004088565b6001600160401b03811162003e5357601f01601f191660200190565b81601f8201121562003e1d57803590620040dd82620040a7565b92620040ed604051948562003f12565b8284526020838301011162003e1d57816000926020809301838601378301015290565b9080601f8301121562003e1d578135906200412b8262003f36565b926200413b604051948562003f12565b828452602092838086019160051b8301019280841162003e1d57848301915b8483106200416b5750505050505090565b82356001600160401b03811162003e1d5786916200418f84848094890101620040c3565b8152019201916200415a565b9080601f8301121562003e1d57813590620041b68262003f36565b92620041c6604051948562003f12565b828452602092838086019160051b8301019280841162003e1d57848301915b848310620041f65750505050505090565b82356001600160401b03811162003e1d5786916200421a8484809489010162004041565b815201920191620041e5565b9080601f8301121562003e1d57813591620042418362003f36565b92604092620042538451958662003f12565b8185526020938486019185600594851b8601019481861162003e1d57868101935b8685106200428757505050505050505090565b84356001600160401b03811162003e1d57820183603f8201121562003e1d578881013590620042b68262003f36565b91620042c58751938462003f12565b808352868b8401918a1b8301019186831162003e1d5791878c94929593015b818110620042fd57505082935081520194019362004274565b9193809193956200430e8462003e22565b8152019101918b93919492620042e4565b606091816106e0528061076052031262003e1d5760405190620043428262003ebe565b81620043516106e05162003e22565b83526106e05160208101356107e08190526001600160401b03811162003e1d5761076051910190601f8201121562003e1d5762004398620043a69135806107005262003f36565b604051806106c05262003f12565b6106c05161070051905260206106c051016107c05261076051610700519060206107e0516106e051019260051b8301011162003e1d576020016107a05290915b6107005160051b6107e0516106e051019060206107a0519183010181101562004eef57356001600160401b03811162003e1d57606091018061068052601f19906107605103011262003e1d5762004444604051806108805262003ebe565b620044556020610680510162003e22565b61088051526040610680510135602681101562003e1d5761088051602001526106805160608101356107208190526001600160401b031062003e1d5761010090601f19906060810135016107605103011262003e1d57620044bd604051806107805262003ea1565b6107205161068051016020810135906001600160401b03821162003e1d576020620044ef926107605192010162004110565b61078051526107205161068051016040810135906001600160401b03821162003e1d57602062004526926107605192010162003f5c565b6107805160200152610720516106805101906001600160401b0360608301351162003e1d5761076051603f6060840135840101121562003e1d5762004575602060608401358401013562003f36565b9262004585604051948562003f12565b6060830135808401602090810135808752610760516107205161068051938901969493019092019160059190911b82016040011162003e1d57604001925b61072051610680510160608601359081019086016020013560051b8101604001851015620046f2578435906001600160401b03821162003e1d5701610760519160e09283603f19848303011262003e1d57604051908482016001600160401b03811183821017620046dd576040908152840135906001600160401b03821162003e1d576040620046569286010162004041565b815260608301356020820152608080840135604083015260a09485850135606084015260c0916200468983870162003f4e565b90840152840135946001600160401b03861162003e1d5761010060209695620046cd92620046c2899860406107605191850101620040c3565b908601520162003f4e565b90820152815201930192620045c3565b60246000634e487b7160e01b81526041600452fd5b5050949391509150604061078051015261072051610680510160808101356108605260018060401b0360808201351162003e1d57610760519060808101350190603f8201121562003e1d5762004755602062004763920135806106a05262003f36565b604051806108005262003f12565b610800516106a05190526020610800510161066052610760516106a05160051b9060406108605161072051610680510101928301011162003e1d576040016106405290915b6106a05160051b6108605161072051610680510101906040610640519183010181101562004d1c5780356107408190526001600160401b031062003e1d5761010091603f199135016107605103011262003e1d576200480e604051806108405262003ea1565b6040610740516108605161072051610680510101010135600681101562003e1d57610840515260606107405161086051610720516106805101010101356020610840510152610740516108605161072051610680510101019160018060401b0360808401351162003e1d5761076051605f6080850135850101121562003e1d57620048b5620048a7604060808601358601013562003f36565b604051806108205262003f12565b610820805160808501358086016040013591829052915161076051610740516108605161072051610680516020959095019896940101019091019160051b82016060011162003e1d57606001925b6107405161086051610720516106805101010160808601359081019086016040013560051b810160600185101562004c04578435916001600160401b03831162003e1d5760c0605f198484016107605103011262003e1d576040516001600160401b0360c0820190811190821117620046dd5760c08101604052606084840101358152600560808585010135101562003e1d578284016080810135602083015260a00135600481101562003e1d57604082015260c08484010135603d81101562003e1d57606082015282840160e001356001600160401b03811162003e1d5761076051620049f8918587010160600162004041565b608082015282840161010001356001600160401b03811162003e1d5760a0605f1982878701016107605103011262003e1d576040519062004a398262003e85565b8486018101606001356001600160401b03811162003e1d576107605162004a699187890184010160600162004110565b82528486018101608001356001600160401b03811162003e1d576107605162004a9b918789018401016060016200419b565b6020830152848601810160a001356001600160401b03811162003e1d576107605162004ad09187890184010160600162004226565b6040830152848601810160c001356001600160401b03811162003e1d5761076051607f82848a8a01010101121562003e1d57606081838989010101013562004b188162003f36565b9162004b28604051938462003f12565b818352602083018960808a848861076051948860051b9301010101011162003e1d578960808a8488838282878601010101945b8860051b930101010101811062004bc057505050506060830152848601810160e00135946001600160401b03861162003e1d5760606020979662004baa938998610760519401010101620040c3565b608082015260a082015281520193019262004903565b8035916001600160401b03831162003e1d578a848860208f9660809562004bf789888594888861076051948c010101010162004110565b8152019501949562004b5b565b5050939250905061082051604061084051015260a08061074051610860516107205161068051010101013560606108405101526107405161086051610720516106805101010160c090818101359060018060401b03821162003e1d57604062004c749261076051920101620040c3565b608061084051015260e09162004c9e83610740516108605161072051610680510101010162003f4e565b9061084051015262004cc6610100610740516108605161072051610680510101010162003f4e565b9061084051015262004cee610120610740516108605161072051610680510101010162003f4e565b90610840510152610840516106605152602061066051016106605260206106405101610640529091620047a8565b5050610800516107805160600152610720516106805192939201916001600160401b0360a08401351162003e1d57610760519260a0810135810193603f8501121562003e1d5762004d71602085013562003f36565b9262004d81604051948562003f12565b60208581013580865261076051610720516106805193880196930160a0860135019160051b82016040011162003e1d57604001935b6040602088013560051b60a086013561072051610680510101010185101562004df55760058535101562003e1d57843581526020948501940162004db6565b5061078051608001949094526107205161068051919694955060c09350018281013591506001600160401b03821162003e1d57602062004e3c92610760519201016200419b565b6107805160a00152610720516106805160e092910182810135906001600160401b03821162003e1d57602062004e79926107605192010162004226565b610780519190910152610720516106805101610100810135906001600160401b03821162003e1d57602062004eb59261076051920101620040c3565b90610780510152610780516040610880510152610880516107c0515260206107c051016107c05260206107a051016107a0529091620043e6565b50506106c05160208201526106e05191929160408101356001600160401b03811162003e1d576107605160409262004f289201620040c3565b910152565b60005b83811062004f415750506000910152565b818101518382015260200162004f30565b9060209162004f6d8151809281855285808601910162004f2d565b601f01601f1916010190565b6005111562003fd757565b90815180825260208080930193019160005b82811062004fa5575050505090565b83518552938101939281019260010162004f96565b908082519081815260208091019281808460051b8301019501936000915b84831062004fe95750505050505090565b909192939495848062005009600193601f198682030187528a5162004f52565b980193019301919493929062004fd8565b90815180825260208092019182818360051b82019501936000915b848310620050465750505050505090565b90919293949584806200506283856001950387528a5162004f84565b980193019301919493929062005035565b90815180825260208092019182818360051b8201950193600080925b858410620050a1575050505050505090565b9091929387828297989903855288519082808351928381520192019085905b808210620050e25750505090806001929901940194019295949391906200508f565b82516001600160a01b031684528994938401939092019160019190910190620050c0565b9060208251918281520190819060208160051b84019401926000905b8282106200513257505050505090565b909192939481810385528551906101008082018351600681101562003fd757835260208401516020840152604084015191604084015281518091526101206020818501918360051b8601019301916000905b808210620051ee5750505050600192602092620051ba849360608085015190840152608080850151908483039085015262004f52565b9160a08082015115159083015260c08082015115159083015260e08091015115159101529701950192019092919262005122565b9091929361011f9c9b9c198682030184528451805182526020810151620052158162004f79565b602083015260408101516200522a8162003fcc565b604083015260609182820151603d81101562003fd75783820152620052ae6200529b620052886200526a608086015160c080608088015286019062004f84565b9460a080910151948181880391015284519080875286019062004fba565b602084015185820360208701526200501a565b6040830151848203604086015262005073565b838201519383820390840152835180825260208201906020808260051b8501019601926000905b82821062005311575050505050620053049d9e9d60019360209360808594015190608081840391015262004f52565b9601940192019062005184565b909192939660208062005331600193601f198682030189528b5162004fba565b9901950193920190620052d5565b90600182811c9216801562005371575b60208310146200535b57565b634e487b7160e01b600052602260045260246000fd5b91607f16916200534f565b90600092918054916200538f836200533f565b918282526001938481169081600014620053f65750600114620053b3575b50505050565b90919394506000526020928360002092846000945b838610620053e1575050505001019038808080620053ad565b805485870183015294019385908201620053c8565b9294505050602093945060ff191683830152151560051b01019038808080620053ad565b908154620054288162003f36565b926040936200543a8551918262003f12565b828152809460208092019260005281600020906000935b8585106200546157505050505050565b60018481928451620054798162000589818a6200537c565b81520193019401939162005451565b9060405191828154918282526020928383019160005283600020936000905b828210620054c257505050620054c09250038362003f12565b565b855484526001958601958895509381019390910190620054a7565b60405190919060e081016001600160401b0381118282101762003e535760405260c060ff60068395620055108162005488565b8552600181015460208601526002810154604086015260038101546060860152826004820154161515608086015260405162005555816200058981600586016200537c565b60a08601520154161515910152565b600682101562003fd75752565b603d82101562003fd75752565b9081546200558c8162003f36565b926200559c604051948562003f12565b818452600090815260208082208186015b848410620055bc575050505050565b6001838192620055cc8562005488565b815201920193019290620055ad565b9060405191828154918282526020928383019160005283600020936000905b8282106200561357505050620054c09250038362003f12565b85546001600160a01b031684526001958601958895509381019390910190620055fa565b908154620056458162003f36565b9262005655604051948562003f12565b818452600090815260208082208186015b84841062005675575050505050565b60018381926200568585620055db565b81520192019301929062005666565b90604051620056a38162003e85565b8092620056b0816200541a565b82526001620056c18183016200557e565b9060209182850152620056d76002840162005637565b604085015260038301805490620056ee8262003f36565b93620056fe604051958662003f12565b82855260009182528082208186015b8484106200574157505050505050916200573d60809260049460608401526200250160405180968193016200537c565b0152565b8583819262005750856200541a565b8152019201930192906200570d565b90606081019160018060a01b038082511683526020820151936060602085015284518091526080840190602060808260051b8701019601926000905b828210620057c5575050505050906040620057c29392015190604081840391015262004f52565b90565b9091929396607f198782030185528751828151168252602081015190602682101562003fd757604091602084015201519060606040820152620058178251610100606084015261016083019062004fba565b602083810151838303605f190160808501528051808452928201929101906000905b80821062005c0957505050604083015190605f198382030160a0840152815180825260208201906020808260051b85010194019260005b82811062005b84575050505050606083015190605f198382030160c0840152815190818152602081016020808460051b8401019401926000925b81841062005974575050505050608083015190605f198382030160e0840152602080835192838152019201906000905b8082106200595057505050620059428360209360e06200592b62005913879660a060019a0151605f19868303016101008701526200501a565b60c0850151848203605f190161012086015262005073565b92015190610140605f198285030191015262004f52565b99019501939201906200579b565b9091926020806001928651620059668162004f79565b8152019401920190620058da565b9091929394601f198282030184528551908151600681101562003fd75781526020820151602082015260408201516101006040830152610100820181518091526101206020818501918360051b8601019301916000905b80821062005a3457505050508260209262005a0084936060600197015160608401526080840151838203608085015262004f52565b9160a0810151151560a083015260c0810151151560c083015260e080910151151591015297019401940192939190620058aa565b9091929361011f19868203018452845180518252602081015162005a588162004f79565b6020830152604081015162005a6d8162003fcc565b60408301526060810151603d81101562003fd757606083015260a062005aa3608083015160c0608086015260c085019062004f84565b9101519160a081830391015262005af262005adf62005acc845160a0855260a085019062004fba565b602085015184820360208601526200501a565b6040840151838203604085015262005073565b91606081015192828103606084015283519081815260208101906020808460051b8301019601926000915b81831062005b5657505050505062005b4960019360209360808594015190608081840391015262004f52565b96019401920190620059cb565b909192939660208062005b76600193601f198682030189528b5162004fba565b990195019301919062005b1d565b9091929394602080600192601f1986820301885288519062005bee62005bb3835160e080855284019062004f84565b8484015185840152604084015160408401526060840151606084015260808401511515608084015260a084015183820360a085015262004f52565b60c09283015115159190920152970195019392910162005870565b90919260208060019286511515815201940192019062005839565b90620054c0604560405180947f496e76616c69642070726f6772616d20616464726573732e204d73672e73656e60208301526403232b91d160dd1b604083015262005c79815180926020868601910162004f2d565b810103602581018552018362003f12565b90620054c06040805180947f2c20616e642070726f6772616d206f70657261746f7220616464726573733a20602083015262005cd0815180926020868601910162004f2d565b810103602081018552018362003f12565b6020620054c091939293604051948162005d05879351809286808701910162004f2d565b820162005d1b8251809386808501910162004f2d565b0103808552018362003f12565b1562005d315750565b60405162461bcd60e51b81526020600482015290819062005d5790602483019062004f52565b0390fd5b600019811462005d6b5760010190565b634e487b7160e01b600052601160045260246000fd5b80511562005d8f5760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101562005d8f5760400190565b80516002101562005d8f5760600190565b805182101562005d8f5760209160051b010190565b7f496e76616c696420776974686472617720616d6f756e742e20416d6f756e743a8152600160fd1b602082015260210190565b600f620054c0916020949360405195869262005e3f62005e3183860162005ddc565b918281519485920162004f2d565b016e0161030b732103130b630b731b29d1608d1b815262005e6a825180936020878501910162004f2d565b010360101981018552018362003f12565b6019620054c0916020949360405195869262005e9d62005e3183860162005ddc565b01780161030b732103bb4ba34323930bbb0b136329031b0b9b41d1603d1b815262005ed2825180936020878501910162004f2d565b010360061981018552018362003f12565b9062005eef8262003f36565b62005efe604051918262003f12565b828152809262005f11601f199162003f36565b0190602036910137565b62013888805482101562005d8f5760005260206000200190600090565b62013886805482101562005d8f5760005260206000200190600090565b62013881805482101562005d8f5760005260206000200190600090565b6202711d805482101562005d8f5760005260206000200190600090565b6201388a805482101562005d8f5760005260206000200190600090565b62027119805482101562005d8f5760005260206000200190600090565b6202711b805482101562005d8f5760005260206000200190600090565b805482101562005d8f5760005260206000200190600090565b8181106200600b575050565b6000815560010162005fff565b600160401b811162003e535762013888908154908083558181106200603c57505050565b620054c0926000526020600020918201910162005fff565b600160401b811162003e535762013886908154908083558181106200603c57505050565b8054600082558062006088575050565b620054c09160005260206000209081019062005fff565b600160401b811162003e535762027119908154908083558181106200603c57505050565b600160401b811162003e53576202711b908154908083558181106200603c57505050565b620138918054600082558062006088575050565b90600160401b811162003e53578154908083558181106200603c57505050565b91908281116200612c576001920390565b50600091508190565b811562006140570490565b634e487b7160e01b600052601260045260246000fd5b6000908072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b80821015620062c1575b506904ee2d6d415b85acef8160201b80831015620062b1575b50662386f26fc1000080831015620062a1575b506305f5e1008083101562006291575b506127108083101562006281575b50606482101562006270575b600a8092101562006265575b60019081602181860195620061f287620040a7565b9662006202604051988962003f12565b80885262006213601f1991620040a7565b01366020890137860101905b6200622c575b5050505090565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049182156200625f579190826200621f565b62006225565b9160010191620061dd565b9190606460029104910191620061d1565b60049193920491019138620061c5565b60089193920491019138620061b7565b60109193920491019138620061a7565b6020919392049101913862006194565b6040935081049150386200617b565b601e620054c09160209493604051958692620062f262005e3183860162005ddc565b017f2c20616e6420776974686472617761626c65206469766964656e64733a20000081526200632b825180936020878501910162004f2d565b010360011981018552018362003f12565b90620063488262003f36565b604090620063598251918262003f12565b83815280936200636c601f199162003f36565b019160005b8381106200637f5750505050565b60209082516200638f8162003ea1565b6000815282600081830152606080868401526000818401526080830152600060a0830152600060c0830152600060e083015282860101520162006371565b620063d981546200533f565b9081620063e4575050565b81601f60009311600114620063f7575055565b818352602083206200641591601f0160051c81019060010162005fff565b8160208120915555565b805490600081558162006430575050565b6000526020600020908101905b81811062006449575050565b8062006457600192620063cd565b016200643d565b90600160401b811162003e53578154918181558282106200647e57505050565b600052602060002091820191015b81811062006498575050565b80620064a6600192620063cd565b016200648c565b8054906000815581620064be575050565b6000526020600020908101905b818110620064d7575050565b80620064e560019262006078565b01620064cb565b90600160401b811162003e53578154918181558282106200650c57505050565b600052602060002091820191015b81811062006526575050565b806200653460019262006078565b016200651a565b80549060008155816200654c575050565b6000526020600020908101905b81811062006565575050565b80620065736001926200641f565b0162006559565b90600160401b811162003e53578154918181558282106200659a57505050565b600052602060002091820191015b818110620065b4575050565b80620065c26001926200641f565b01620065a8565b805460009182815581620065dc57505050565b6001600160fd1b0382168203620066715782526020822091600391821b8301925b8381106200660b5750505050565b808260089255826001820155620066256002820162006078565b620066328482016200641f565b6200664060048201620064ad565b6200664e60058201620064ad565b6200665c600682016200653b565b6200666a60078201620063cd565b01620065fd565b634e487b7160e01b83526011600452602483fd5b600160401b821162003e5357805490828155818310620066a457505050565b6001600160fd1b03828116830362005d6b578316830362005d6b57600090815260208120600392831b810193831b015b838110620066e25750505050565b808260089255826001820155620066fc6002820162006078565b620067098482016200641f565b6200671760048201620064ad565b6200672560058201620064ad565b62006733600682016200653b565b6200674160078201620063cd565b01620066d4565b51600681101562003fd75790565b90600681101562003fd75760ff80198354169116179055565b906200677b8162004f79565b60ff80198354169116179055565b90620067958162003fcc565b61ff0082549160081b169061ff001916179055565b90603d81101562003fd75762ff000082549160101b169062ff00001916179055565b9190601f8111620067dc57505050565b620054c0926000526020600020906020601f840160051c830193106200680b575b601f0160051c019062005fff565b9091508190620067fd565b81519192916001600160401b03811162003e535762006842816200683b84546200533f565b84620067cc565b602080601f83116001146200688157508192939460009262006875575b50508160011b916000199060031b1c1916179055565b0151905038806200685f565b90601f198316958460005282600020926000905b888210620068d057505083600195969710620068b6575b505050811b019055565b015160001960f88460031b161c19169055388080620068ac565b8060018596829496860151815501950193019062006895565b9060ff801983541691151516179055565b9061ff00825491151560081b169061ff001916179055565b9062ff0000825491151560101b169062ff00001916179055565b8151600681101562003fd75762006944908262006756565b60208201516001820155600281016040830151602081519162006968838562006685565b01916000526020600020916000905b828210620069db57505050509060e06005620054c09360608401516003820155620069aa60808501516004830162006816565b0191620069be60a0820151151584620068e9565b620069d060c0820151151584620068fa565b015115159062006912565b8051805185556001850162006a006020830151620069f98162004f79565b826200676f565b62006a1b604083015162006a148162003fcc565b8262006789565b6060820151603d81101562003fd75762006a3591620067aa565b608081015180519060028701906001600160401b03831162003e535760209062006a608484620060fb565b0190600052602060002060005b83811062006da2575050505060a001518051805190600387019060209062006a9684846200645e565b01906000526020600020906000905b83821062006d825750505050600485016020820151602081519162006acb8385620064ec565b019160005260206000206000925b82841062006d1e5750505050600585016040820151602081519162006aff8385620064ec565b019160005260206000206000925b82841062006cb1575050505060068501606082015190602082519262006b3484846200657a565b01906000526020600020906000905b83821062006c515750505050608001518051906001600160401b03821162003e535762006b838262006b7960078901546200533f565b60078901620067cc565b602090601f831160011462006bd657928260089360209360019660009262006bca575b5050600019600383901b1c191690851b1760078801555b0194019101909262006977565b01519050388062006ba6565b906007870160005260206000209160005b601f198516811062006c38575083602093600196938793600897601f1981161062006c1e575b505050811b01600788015562006bbd565b015160001960f88460031b161c1916905538808062006c0d565b9192602060018192868501518155019401920162006be7565b8051602081519162006c6483876200645e565b018460005260206000206000915b83831062006c9157505050506001602081920193019101909162006b43565b600160208262006ca48394518662006816565b0192019201919062006c72565b80518051906001600160401b03821162003e535760209062006cd48386620060fb565b0183600052602060002060005b83811062006d0057505050506001602081920192019301929062006b0d565b82516001600160a01b03168183015560209092019160010162006ce1565b80518051906001600160401b03821162003e535760209062006d418386620060fb565b0183600052602060002060005b83811062006d6d57505050506001602081920192019301929062006ad9565b60019060208451940193818401550162006d4e565b600160208262006d958394518762006816565b0193019101909162006aa5565b60019060208451940193818401550162006a6d565b62013883805482101562005d8f576000526006602060002091020190600090565b62027116805482101562005d8f576000526006602060002091020190600090565b62013882805482101562005d8f576000526006602060002091020190600090565b62027115805482101562005d8f576000526006602060002091020190600090565b620138828054600160401b81101562003e535762006e5f9160018201905562006df9565b91909162006e7257620054c0916200692c565b634e487b7160e01b600052600060045260246000fd5b620138838054600160401b81101562003e535762006e5f9160018201905562006db7565b620271168054600160401b81101562003e535762006e5f9160018201905562006dd8565b620271158054600160401b81101562003e535762006e5f9160018201905562006e1a565b1562006efc57565b60405162461bcd60e51b815260206004820152603760248201527f73756d4469766964656e64576569676874466f72546f6b656e436c6173733a206044820152766469766964656e64576569676874206f766572666c6f7760481b6064820152608490fd5b61271081101562005d8f57620025b3816200044f6002620057c29460031b01549162007044565b90811562006fb557606462006fa1818402938462006135565b0362006fad5760019190565b600091508190565b60019150600090565b9190821562006fd65762006fa1818402938462006135565b5060019150600090565b1562006fe857565b60405162461bcd60e51b815260206004820152602e60248201527f746f74616c546f6b656e73506572546f6b656e436c6173733a20746f74616c5460448201526d6f6b656e73206f766572666c6f7760901b6064820152608490fd5b612710811015908162005d8f57600390811b906004928383019182549260009582879601935b8587106200707c575050505050505090565b979690919293949597620070de57620070d288620070ca620070a462001da29a9b8762005fe6565b905490881b1c6001600160a01b0316600090815260208990526040812054909462007106565b999062006fe0565b9594939291906200706a565b603282634e487b7160e01b6000525260246000fd5b906001820191821062006fad5760019190565b9190820191821062006fad5760019190565b6201388b546200712b620025eb6201637b565b919050620071386201643f565b5060009081925b8184106200715a575b6200715593500462007194565b905090565b9160ff60078560031b015416156200718d57836200268d62007186926200268662001da2969762006f61565b926200713f565b9162007148565b908015620071ac57620071a79162006135565b600191565b5050600090600090565b62013891805490600160401b82101562003e53576001820180825582101562005d8f576000908152602090200180546001600160a01b0319166001600160a01b03909216919091179055565b6201388f805490600160401b82101562003e53576001820180825582101562005d8f576000908152602090200180546001600160a01b0319166001600160a01b03909216919091179055565b6201388180549190600160401b83101562003e53578262001d7a916001620054c09501905562005f55565b60405190620072888262003eda565b60188252772a343290383937b3b930b69034b99032bc32b1baba32b21760411b6020830152565b600091825b60208084019081518051871015620074455781620072d788620072df9362005dc7565b510162007a1c565b6026928382101562003fd757601a9182036200739d578762007302915162005dc7565b5192828401519081101562003fd757036200735b5750936200734c6200735492620073446200733d60a0604062001da29a0151015162005d81565b5162005d81565b519062007106565b959062007a2a565b92620072b4565b6064906040519062461bcd60e51b82526004820152601b60248201527a2a34329037b831b7b2329034b9903737ba102820acafa1a0a9a41760291b6044820152fd5b92919050620073b681620072d789869a979a5162005dc7565b8281101562003fd757601403620073ef575050906200734c62001da29562002686620073e88462007354965162005dc7565b5162007a77565b6200740190620072d785855162005dc7565b9081101562003fd7576015146200741f575b50620073549062005d5b565b906200734c6200743e9562002686620073e88462007354965162005dc7565b9062007413565b505050909250803410600014620074bb5760405162461bcd60e51b815260206004820152603760248201527f546865207061796d656e74206973206e6f7420656e6f7567682e205468652074604482015276037ba30b6103830bcb6b2b73a1039b437bab6321031329604d1b6064820152608490fd5b80341162007891575b5062027129805460ff8116620074da8162003fcc565b6001810362007510575050508062007500620074fa620075069362007b1e565b62007b33565b62007bbd565b620057c262007279565b6200751b8162003fcc565b60028114808062007883575b156200760c57505050506200753c8162007b1e565b15620075cd576200754d8162007b1e565b1562007591576200755e9062007bbd565b6040516200756c8162003eda565b60158152742a3432903b37ba329034b99032bc32b1baba32b21760591b602082015290565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c696420766f74652070726f6772616d60601b6044820152606490fd5b60405162461bcd60e51b815260206004820152601760248201527624b73b30b634b2103b37ba34b73390383937b3b930b69760491b6044820152606490fd5b620076178262003fcc565b6003821491828062007875575b15620077025750505050506200763a8162007b1e565b15620076b2578062007500620074fa620076549362007b1e565b604051620076628162003ebe565b603a81527f5468652070656e64696e672070726f6772616d2069732065786563757465642060208201527930b33a32b9103b37ba34b7339030b7321030b8383937bb30b61760311b604082015290565b60405162461bcd60e51b815260206004820152602260248201527f496e76616c696420657865637574696e672070656e64696e672070726f677261604482015261369760f11b6064820152608490fd5b6200770d8162003fcc565b818062007866575b8062007858575b15620077465750505050906200750691600360ff1982541617905562007500620074fa8262007b1e565b620077518162003fcc565b821562007843575b50508062007834575b6200779b57505050604051620077788162003eda565b6013815272283937b3b930b6903a32b936b4b730ba32b21760691b602082015290565b60ff19166001179055620077af8162007b1e565b15620077c9578062007500620074fa620075069362007b1e565b60405162461bcd60e51b815260206004820152603e60248201527f5b4572726f72203030335d5468652070726f6772616d206973206e6f7420612060448201527f76616c696420657865637574652070656e64696e672070726f6772616d2e00006064820152608490fd5b50620271285442101562007762565b6200785091925062003fcc565b388062007759565b50620271285442106200771c565b50620271275442101562007715565b506202712854421062007624565b506202712754421062007527565b60018060a01b0390818351166000526201388590816020526040600020541562007988575b620078c290346200611b565b90156200794457620078e590838551166000528260205260406000205462007106565b929015620079035783511660005260205260406000205538620074c4565b60405162461bcd60e51b81526020600482015260196024820152782a3432903732bb903130b630b731b29037bb32b9333637bb9760391b6044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527b2a3432903830bcb6b2b73a103932ba3ab9371037bb32b9333637bb9760211b6044820152606490fd5b6000908162013886928354915b828110620079e1575b5015620079af575b509050620078b6565b85518516600160401b82101562003e535762001d7a82620078c2956001620079da9501905562005f38565b38620079a6565b86620079ed8262005f38565b919054818b51169260031b1c161462007a115762007a0b9062005d5b565b62007995565b50506001386200799e565b51602681101562003fd75790565b1562007a3257565b60405162461bcd60e51b815260206004820152601f60248201527f54686520746f74616c207061796d656e7420697320746f6f206c617267652e006044820152606490fd5b6000805b604083019060a062007a91818451015162005da5565b515184101562007b165762007ab68462007aaf838651015162005da5565b5162005dc7565b51925101519283516002101562005d8f5762007b0562007aff62007b0d9362007af760409662007aef86606062001da29b015162005dc7565b519062006fbe565b929062007a2a565b62007106565b949062007a2a565b91905062007a7b565b509250505090565b60200151511562007b2e57600190565b600090565b1562007b3b57565b60405162461bcd60e51b815260206004820152600f60248201526e496e76616c69642070726f6772616d60881b6044820152606490fd5b60809060208152602a60208201527f5468652070726f6772616d2069732064656e6965642062792074686520706c7560408201526967696e2073797374656d60b01b60608201520190565b62007bc88162013c03565b516201368f57600681101562003fd7576003811462013636578062007c255760405162461bcd60e51b8152602060048201526016602482015275151a19481c1c9bd9dc985b481a5cc81a5b9d985b1a5960521b6044820152606490fd5b600481036200aa735750906000905b602083015180518310156200aa6d578262007c4f9162005dc7565b516020810180516026908181101562003fd757156200aa2a5781518181101562003fd75760010362007e9d57505060408091019062007c9360c08351015162005d81565b519262007cb560a062007caa818651015162005d81565b519451015162005da5565b519562007cc6855185511462014ed7565b62007cd5855188511462014f3d565b60005b855181101562007e1b5762007cee818662005dc7565b51612710908181101562005d8f57600160ff600762007d169360031b01541615151462014f9f565b62007d22828a62005dc7565b5162007d2f838862005dc7565b51908282101562005d8f57600662007d4d9260031b01549062007106565b9062007d5a848962005dc7565b51918383101562005d8f57600662007d779360031b015562014ff7565b62007d83828a62005dc7565b519062007d91838862005dc7565b518181101562005d8f576001600160a01b03939262007dd1916003908662007dba878e62005dc7565b5116600052811b0160205287600020549062007106565b62007ddd848a62005dc7565b519283101562005d8f57600362001da29362007e159662007dff878e62005dc7565b5116600052811b01602052876000205562015056565b62007cd8565b50939262007e389192965062007e31906201627d565b9262016161565b94519262007e468462003ef6565b60008452600036813760005b835181101562007e80578062001da262007e7162007e7a938762005dc7565b51878a62015a84565b62007e52565b509450926020925062007e94915062005d5b565b91905062007c34565b81518181101562003fd7576002036200813f575050604080910180519283519562007eed62007ed160a08097015162005d81565b519562007ee2818651015162005da5565b519451015162005db6565b51938751865103620080ec5787518451036200809857875185510362008041575060005b85518110156200802b5762007f27818762005dc7565b5190612710918281101562005d8f5762007f4d60ff6007809360031b01541615620150af565b62007f59828962005dc7565b518381101562005d8f5760031b01805460ff1916600117905562007f7e818a62005dc7565b5162007f8b828962005dc7565b51908382101562005d8f57600562007fa79260031b0162006816565b62007fb3818662005dc7565b5162007fc0828962005dc7565b518381101562005d8f5760031b6001015562007fdd818762005dc7565b5162007fea828962005dc7565b518381101562005d8f5760031b6002015562008007818862005dc7565b519182101562005d8f5760006006620080259360031b015562005d5b565b62007f11565b5095509390506020925062007e94915062005d5b565b5162461bcd60e51b815260206004820152603c602482015260008051602062016a5883398151915260448201527b1b911a5d9a59195b9915d95a59da1d081a5cc81b9bdd08195c5d585b60221b6064820152608490fd5b5162461bcd60e51b8152602060048201526039602482015260008051602062016a588339815191526044820152781b959bdd1a5b99d41bddd95c881a5cc81b9bdd08195c5d585b603a1b6064820152608490fd5b5162461bcd60e51b8152602060048201526038602482015260008051602062016a588339815191526044820152771b925b99195e105c9c985e481a5cc81b9bdd08195c5d585b60421b6064820152608490fd5b81949394518181101562003fd7576003036200816957505060209162001da262007e9492620150fb565b819594929395518181101562003fd7576004036200840d575050604080920160c094620081aa6200819e878451015162005d81565b51968351015162005da5565b5194620081c160a062007caa818651015162005d81565b5193620081d6885188511462001c12620164ee565b620081e9885185511462001c12620164ee565b620081fc885186511462001c12620164ee565b60005b8851811015620082715762008215818662005dc7565b519061271082101562005d8f576200826b916003906001600160a01b036200823e848e62005dc7565b5116600052811b0160205262001da288600020546200825e838a62005dc7565b51111562001c12620165f2565b620081ff565b50909691959294939660005b8351811015620083ba5762008293818862005dc7565b5190612710918281101562005d8f576001600160a01b039060039082620082bb858a62005dc7565b5116600052811b01602052620082e48b620082dc848b600020549262005dc7565b51906200611b565b90620082f1848c62005dc7565b51918583101562005d8f5760036200832a938562008310888d62005dc7565b5116600052811b016020528a6000205562001c12620165f2565b62008336828a62005dc7565b518381101562005d8f576003908262008350858b62005dc7565b5116600052811b01602052620083718b62007344848b600020549262005dc7565b91905062008380838b62005dc7565b519384101562005d8f57620083b4936003916200839e858b62005dc7565b5116600052811b01602052876000205562005d5b565b6200827d565b5094620083e4929750620083dd91939450620083d6906201627d565b9362016161565b9562016161565b9260005b835181101562007e80578062001da262007e7162008407938762005dc7565b620083e8565b819594939551908082101562003fd75760059182036200862357505050604091828501906200845160a062008446818551015162005d81565b519351015162005da5565b51928251845103620085d25760005b8351811015620084b85762008476818562005dc7565b519061271082101562005d8f576003620084b29260018060a01b038b5116600052811b0160205262001da287600020546200825e838962005dc7565b62008460565b509092919260005b84518110156200855357620084d6818662005dc7565b51906127108083101562005d8f57600360018060a01b0393848c5116600052811b01602052620085108860002054620082dc848962005dc7565b6200851c848a62005dc7565b519283101562005d8f57600362001da2936200854d968e5116600052811b01602052896000205562001c12620165f2565b620084c0565b50959392620085649192506201627d565b91805193620085738562003eda565b6001855260203681870137516001600160a01b0316620085938562005d81565b525194620085a18662003ef6565b60008652600036813760005b835181101562007e80578062001da262007e71620085cc938762005dc7565b620085ad565b845162461bcd60e51b8152602060048201526035602482015260008051602062016a38833981519152604482015274195b905b5bdd5b9d081a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b8296939496518181101562003fd7576006036200888d575050509060408092016200865360c08251015162005d81565b51946200866a60a062008446818551015162005d81565b519286518351036200883c578651845103620087f05760005b8751811015620086e85762008699818562005dc7565b519061271082101562005d8f57620086e2916003906001600160a01b03620086c2848d62005dc7565b5116600052811b0160205262001da287600020546200825e838962005dc7565b62008683565b509092919260005b87518110156200879c5762008706818662005dc7565b516127108082101562005d8f576001600160a01b039291600390846200872d858e62005dc7565b5116600052811b016020526200874d8860002054620082dc848962005dc7565b62008759848a62005dc7565b519283101562005d8f57600362001da29362008796966200877c8f889062005dc7565b5116600052811b01602052896000205562001c12620165f2565b620086f0565b509592620087b191925062007e31906201627d565b925194620087bf8662003ef6565b60008652600036813760005b835181101562007e80578062001da262007e71620087ea938762005dc7565b620087cb565b845162461bcd60e51b8152602060048201526030602482015260008051602062016b1883398151915260448201526f1b9d1cc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b845162461bcd60e51b81526020600482015260356024820152600080516020620169d88339815191526044820152741b90db185cdcd95cc81a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b82518181101562003fd757600703620089dd57505050604080910193620088b960c08651015162005d81565b5192620088cb60a08751015162005d81565b5195515191620088e3855188511462001c12620164ee565b60005b85518110156200802b57620089d79062001da26001600160a01b0382600288620089bf8e620089b48e620089aa8f89620089218a8562005dc7565b51166000526200895e896200895681620138809a8b6020526200895060ff8760002054161562001c12620165bf565b62005dc7565b519662005dc7565b51968a6200899483519b8c96620089758862003e37565b600188526060602089019860008a528781019b8c52019b8c5262005dc7565b51166000526020526000209751151588620068e9565b51151586620068fa565b516001850162006816565b51910155620089cf838a62005dc7565b51166200724e565b620088e6565b82519596959394928185101562003fd757600894850362008ad55750505062008a0f60c0604080950151015162005d81565b519360005b855181101562008ac05762008aba906001600160a01b038062008a38838a62005dc7565b511660005262013880908160205262008a8f60ff62008a666001828c600020541615151462001c126201651e565b8262008a73868d62005dc7565b5116600052836020528960002054891c161562001c1262016586565b62008a9b838a62005dc7565b51166000526020528560002061010061ff001982541617905562005d5b565b62008a14565b50949093506020925062007e94915062005d5b565b80518281101562003fd75760090362008baa5750505062008aff60c0604080950151015162005d81565b519360005b855181101562008ac05762008ba490866001600160a01b038062008b29848462005dc7565b511660005262008b7d6001898362008b5f87620138809788602052620089508660ff8097600020541615151462001c126201651e565b5116600052846020528a600020548a1c1615151462001c1262016551565b62008b89838a62005dc7565b51166000526020528560002061ff0019815416905562005d5b565b62008b04565b8097969492939597518281101562003fd757600a0362008c89575050505060408094019162008bef60a062008be460c08651015162005d81565b519451015162005d81565b519162008c04845184511462001c12620164ee565b60005b845181101562007e805762008c83906001600160a01b038062008c2b838962005dc7565b5116600052620138808060205262008c53600160ff8c600020541615151462001c126201651e565b62008c5f838862005dc7565b519162008c6d848a62005dc7565b5116600052602052600289600020015562005d5b565b62008c07565b80979597518281101562003fd757600b0362008d59575050505060408092019362008cb960c08651015162005d81565b519451519162008cd1865184511462001c12620164ee565b60005b865181101562007e805762008d539062001da26001600160a01b038062008cfc848c62005dc7565b5116600052620138808060205262008d24600160ff8b600020541615151462001c126201651e565b62008d30848962005dc7565b519162008d3e858d62005dc7565b51166000526020526001886000200162006816565b62008cd4565b80979495939697518281101562003fd757600c0362008ea75750505060400160609182825101519360005b855181101562008e915760e062008da082878751015162005dc7565b5101511562008e285762008dc462008dbd82878751015162005dc7565b5162006e3b565b62013882805460001992919083810190811162005d6b5762008de78a9162006df9565b5001805461ff0019166101001790555491820191821162005d6b578762008e1262008e229362006df9565b5001805460ff1916905562005d5b565b62008d84565b62008e4362008e3c82878751015162005dc7565b5162006e88565b62013882805460001992919083810190811162005d6b5762008e668a9162006db7565b5001805461ff0019166101001790555491820191821162005d6b578762008e1262008e229362006db7565b5095915093506020925062007e94915062005d5b565b8097969593929497518281101562003fd757600d0362008ffe57505060400194602062008ed960a08851015162005d81565b51965101519162008eee875184511462014c16565b60005b87518110156200802b578080878a62008f0f62008f9f958962005dc7565b511562008fa55762008f7062008f57848362008f4262008f3562008f7b98889762005dc7565b5162013882541162014c9f565b620089508d62008f5e62008f57858562005dc7565b5162006df9565b509060ff9889920154901c1662014cf7565b500154161562014d58565b8662008f8c62008f57838c62005dc7565b5001805460ff1916600117905562005d5b565b62008ef1565b62008f7062008fe6848362008fd162008fc462008fed98889762005dc7565b5162013883541162014c9f565b620089508d62008f5e62008fe6858562005dc7565b5162006db7565b8662008f8c62008fe6838c62005dc7565b8097949397518281101562003fd757600e03620090e55750506040019160206200902d60a08551015162005d81565b51935101519562009042845188511462014c16565b60005b84518110156200802b5780620090606200906c928a62005dc7565b51620090725762005d5b565b62009045565b6200908f62009082828862005dc7565b5162013882541162014db9565b620090d487620090b9620090a862008f57858b62005dc7565b5060ff9283910154891c1662014e12565b88620090ca62008f57858b62005dc7565b5001541662014e74565b8662008e1262008f57838962005dc7565b809192935096949596518281101562003fd757600f036200920057505060400160609182825101519360005b855181101562008e915760e06200912d82878751015162005dc7565b510151156200919e576200914a62008dbd82878751015162005dc7565b62013882805460001992919083810190811162005d6b576200916d8a9162006df9565b5001805461ff0019166101001790555491820191821162005d6b578762008f8c620091989362006df9565b62009111565b620091b262008e3c82878751015162005dc7565b62013882805460001992919083810190811162005d6b57620091d58a9162006db7565b5001805461ff0019166101001790555491820191821162005d6b578762008f8c620091989362006db7565b8091929394969550518281101562003fd757601003620092a557505060400151906200923560a0608084015193015162005d81565b51936200924a835186511462001c12620164ee565b60005b835181101562009292578062001da26200926c6200928c938762005dc7565b51620092788162004f79565b62009284838a62005dc7565b519062014b7d565b6200924d565b509350916020915062007e949062005d5b565b80959295518281101562003fd7576011036200954457505090604080940191620092da60a062008be460c08651015162005d81565b5191620092eb845184511462014b23565b60005b845181101562009364576200935e9062001da26001600160a01b038062009316848a62005dc7565b51166000526201388580602052620093388b6000205462007344868b62005dc7565b91909262009347868c62005dc7565b51166000526020528a6000205562001c12620164a4565b620092ee565b509394509162009375915062016161565b906201388692835494620093956200938f85518862014b6f565b62005ee3565b91600093845b88811062009504575060005b86518110156200945c576000805b8a81106200940d575b5015620093d7575b620093d19062005d5b565b620093a7565b94620093d19062009404906001600160a01b03620093f6898b62005dc7565b511662001e45828962005dc7565b959050620093c6565b620094188162005f38565b90546001600160a01b0360039290921b1c81169062009438858c62005dc7565b51161462009451576200944b9062005d5b565b620093b5565b5050600138620093be565b509650949093506200946e8362005ee3565b805191906001600160401b03831162003e53576020906200948f8462006054565b0190600052602060002060005b838110620094e6575050505060005b828110620094c35750505062007e9460209162005d5b565b620094e09062001da26001600160a01b0362001d6d838662005dc7565b620094ab565b82516001600160a01b0316818301556020909201916001016200949c565b94620095376200953e91620095198862005f38565b905460039190911b1c6001600160a01b031662001e45828962005dc7565b9562005d5b565b6200939b565b80518281101562003fd757601203620097b65750506040809401916200957560a062008be460c08651015162005d81565b519162009586845184511462014b23565b60005b8451811015620095d957620095d39062001da26001600160a01b0380620095b1848a62005dc7565b51166000526201388580602052620093388b60002054620082dc868b62005dc7565b62009589565b509491509291620095ea9062016161565b90620138868054620095fc8162005ee3565b9260009485925b808410620096b057505050506200961a8362005ee3565b805191906001600160401b03831162003e53576020906200963b8462006054565b0190600052602060002060005b83811062009692575050505060005b8281106200966f5750505062007e9460209162005d5b565b6200968c9062001da26001600160a01b0362001d6d838662005dc7565b62009657565b82516001600160a01b03168183015560209092019160010162009648565b9297600097929597949194998a5b8651811015620097a457620096d38b62005f38565b90546001600160a01b0360039290921b1c811690620096f3838a62005dc7565b5116146200970c57620097069062005d5b565b620096be565b509950976001979592979491945b8062009773575b156200973957620097329062005d5b565b9262009603565b956200976c62009732916200974e8962005f38565b905460039190911b1c6001600160a01b031662001e45828a62005dc7565b9662005d5b565b506200977f8162005f38565b60018060a01b0391549060031b1c166000526201388560205282600020541562009721565b5099989098979592979491946200971a565b80959295518281101562003fd7576013036200981757505060408091015101519260005b845181101562009806578062001da2620097f962009800938862005dc7565b5162015721565b620097da565b5092509062007e9460209162005d5b565b8051918083101562003fd7576014928303620099ba575050506040809101906200984660c08351015162005d81565b51926200985d60a062007caa818651015162005d81565b51956200986e855185511462014ed7565b6200987d855188511462014f3d565b60005b8551811015620099655762009896818962005dc7565b51620098a3828762005dc7565b51612710918282101562005d8f576006620098c49260031b01549062007106565b90620098d1848962005dc7565b51918383101562005d8f576006620098ee9360031b015562014ff7565b620098fa828a62005dc7565b519062009908838862005dc7565b518181101562005d8f576001600160a01b03939262009931916003908662007dba878e62005dc7565b6200993d848a62005dc7565b519283101562005d8f57600362001da2936200995f9662007dff878e62005dc7565b62009880565b5093926200997b9192965062007e31906201627d565b945192620099898462003ef6565b60008452600036813760005b835181101562007e80578062001da262007e71620099b4938762005dc7565b62009995565b819694959396518181101562003fd757601590810362009f8a57505050506040840190620099ed60c08351015162005d81565b519362009a0460a062007caa818651015162005d81565b519362009a19865185511462001c12620164ee565b62009a2c865186511462001c12620164ee565b60005b865181101562009a885762009a45818662005dc7565b519061271082101562005d8f57600362009a829260018060a01b038b5116600052811b0160205262001da26040600020546200825e838a62005dc7565b62009a2f565b50909493919460005b855181101562009bb45762009aa7818662005dc7565b51906127108083101562005d8f57600360018060a01b0393848c5116600052811b0160205262009ae2604060002054620082dc848962005dc7565b9062009aef848a62005dc7565b51918383101562005d8f57600362009b1e93878f5116600052811b0160205260406000205562001c12620165f2565b62009b2a828862005dc7565b518181101562005d8f576003908462009b44858c62005dc7565b5116600052811b0160205262009b6560406000205462007344848962005dc7565b62009b71848a62005dc7565b519283101562005d8f57600362001da29362009bae9662009b93878e62005dc7565b5116600052811b0160205260406000205562001c1262016657565b62009a91565b50915091620083dd62009bcb91969594966201627d565b926040519462009bdb8662003eda565b6001865260203681880137516001600160a01b031662009bfb8662005d81565b526000905b865182101562009f755762009c16828862005dc7565b516106005262009c27855162005ee3565b9660009462009c37885162005ee3565b6102a0528594865b885181101562009d0e578a8962009c6f6001600160a01b0362009c63858462005dc7565b5116610600516201604a565b158062009cc8575b62009c90575b505062009c8a9062005d5b565b62009c3f565b9862009cbd9162001e4582859c62009cb462009c8a9760018060a01b039262005dc7565b51169262005dc7565b9790508a8962009c7d565b50505061271061060051101562005d8f576001600160a01b0362009ced828b62005dc7565b5116600052600361060051811b016020528a89604060002054151562009c77565b509098949897969291939760005b885181101562009db05761271061060051101562005d8f576001600160a01b0362009d48828b62005dc7565b5116600052600361060051811b016020526040600020541562009d77575b62009d719062005d5b565b62009d1c565b9962009d719062009da7906001600160a01b0362009d968e8d62005dc7565b511662001e45826102a05162005dc7565b9a905062009d66565b50985096949392919561060051612710811015806103c05262005d8f5760031b600401549662009de56200938f878a62014b6f565b996000998a610100525b6103c05162005d8f57610100518a81101562009ea45762009e2462009e419160006103c05260046106005160031b0162005fe6565b90546102a05160039290921b1c6001600160a01b0316906201610c565b1562009e60575b62009e566101005162005d5b565b6101005262009def565b99808c62001e4562009e9d9362009e846101005160046106005160031b0162005fe6565b905460039190911b1c6001600160a01b03169262005dc7565b9962009e48565b509a939794969299919850946000915b83831062009f4957505050506103c05162005d8f578051906001600160401b03821162003e535760209062009ef38360046106005160031b01620060fb565b0160046106005160031b01600052602060002060005b83811062009f2b575050505062009f209062005d5b565b909295919562009c00565b82516001600160a01b03168183015560209092019160010162009f09565b62009f6e9062009f67906001600160a01b03620093f6868662005dc7565b9262005d5b565b9162009eb4565b9194505062007e949194506020925062005d5b565b82979496959751918083101562003fd757601692830362009ff757505050505060c0604062009fbd920151015162005d81565b519260005b8451811015620098065762009ff19062001da26001600160a01b0362009fe9838962005dc7565b511662007202565b62009fc2565b83518181101562003fd7576017036200a0505760405162461bcd60e51b8152602060048201526029602482015260008051602062016ad88339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b83518181101562003fd7576018036200a0c457505050505060c060406200a07b920151015162005d81565b5162013892805460ff191660011790559260005b845181101562009806576200a0be9062001da26001600160a01b036200a0b6838962005dc7565b5116620071b6565b6200a08f565b83979697518181101562003fd7576019036200a24957505050505060008080604080940160a0808251015180516200a210575b5050519060e0820151916200a11b6200733d60c060018060a01b0393015162005d81565b511690602083519301915af1903d156200a207573d916200a13c83620040a7565b926200a14b8351948562003f12565b83523d6000602085013e5b156200a16b57505062007e9460209162005d5b565b62005d5792506200a1e88151927f5468652063616c6c20746f2074686520636f6e7472616374206973206e6f7420602085015278039bab1b1b2b9b9b33ab617102932ba3ab937103230ba309d1603d1b838501528381516200a1d7816059946020868601910162004f2d565b810103603981018552018362003f12565b5162461bcd60e51b815260206004820152918291602483019062004f52565b6060916200a156565b6200a21b9062005d81565b51516200a22a575b806200a0f7565b8192506200733d906200a2409251015162005d81565b5190386200a223565b83518181101562003fd757601a036200a34b57505050506200a27460a0604080940151015162005d81565b51906200a285600383511462014b23565b6200a2908262005d81565b51926200a2a96200a2a18462005da5565b519362005db6565b51926200a3115750509162007e94916001602094146000146200a30a576200a2e9906200a2dc6201388d91825462007106565b90915562001c126201643f565b62001da26201388e6200a2fd8154620070f3565b90915562001c1262016479565b5062005d5b565b60649250519062461bcd60e51b825260206004830152602482015273496e76616c6964207061796d656e74207479706560601b6044820152fd5b909192809450518181101562003fd757601b036200a7cf575050505050906200a38b6201388b54620025fd6200a3806201637b565b612710831062005d28565b50506200a3976201643f565b506000805b61271081106200a76a575b50506200a3b362007118565b906200a3c36202712a5462005ee3565b9060009384905b6127108210156200a75f578160031b9260ff600785015416156200a51b576000976002850154156200a50957889798975b62005d8f5760048501548810156200a4ef576200a41c886004870162005fe6565b9054600391821b1c6001600160a01b0316600081815291870160205260409182902054919a916200a44f908a9062006fbe565b9b906200a45b6201643f565b6200a4669162005d28565b60009b60028901546200a4799162006fbe565b906200a4846201643f565b6200a48f9162005d28565b828d5262013887602052818d2054906200a4a99162007106565b90918d20556200a4b86201643f565b6200a4c39162005d28565b6200a4cf828962005dc7565b526200a4db9062005d5b565b976200a4e79062005d5b565b97986200a3fb565b929093506200a50091965062005d5b565b9095946200a3ca565b929093506200a5009196975062005d5b565b959392509350505b6200a52e8262005ee3565b91600091825b8281106200a6c95750505062013888908154926200a5576200938f858462014b6f565b9360009081905b8082106200a68e57505060005b8381106200a5ea5750508351939150506001600160401b03831162003e53576020906200a5988462006018565b0190600052602060002060005b8381106200a5cc575050505062007e9460209160006201388d5560006201388e5562005d5b565b82516001600160a01b0316818301556020909201916001016200a5a5565b6000805b8381106200a646575b50156200a610575b6200a60a9062005d5b565b6200a56b565b906200a60a906200a63d906001600160a01b036200a62f858762005dc7565b511662001e45828a62005dc7565b9190506200a5ff565b6001600160a01b03806200a65b858862005dc7565b5116906200a66a838b62005dc7565b5116146200a683576200a67d9062005d5b565b6200a5ee565b50506001386200a5f7565b909162009f676200a6c2916200a6a48562005f1b565b905460039190911b1c6001600160a01b031662001e45828b62005dc7565b906200a55e565b6000805b8581106200a717575b50156200a6ef575b6200a6e99062005d5b565b6200a534565b926200a6e9906200a70e906001600160a01b03620093f6878662005dc7565b9390506200a6de565b6001600160a01b03806200a72c858762005dc7565b5116906200a73b838a62005dc7565b5116146200a754576200a74e9062005d5b565b6200a6cd565b50506001386200a6d6565b93505092906200a523565b8060031b9060ff600783015416156200a7c8576200a7b662007aff62001da2946200a7aa6200a7c29560026200a7a08762006f61565b9101549062006fbe565b929062001c126201643f565b939062001c126201643f565b6200a39c565b506200a3a7565b83518181101562003fd757601c036200a8285760405162461bcd60e51b8152602060048201526029602482015260008051602062016af88339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b83518181101562003fd757601d036200a84e575b505050505062007e9460209162005d5b565b83518181101562003fd757601e146200a83c5783518181101562003fd757601f036200a8a457505050506020916200a89a6200a893604062007e949401515162005d81565b5162015758565b913880806200a83c565b83518181101562003fd7576020036200a8ca575b505050505062007e946020916200a89a565b83518181101562003fd75760218091036200a8e7575b506200a8b8565b8451828110156200aa15576022036200a9285750505050505062007e946020916201389260ff1981541690556200a91d620060e7565b91388080806200a8e0565b8451828110156200aa15576023036200a94f575b50505050505062007e946020916200a91d565b845194828610156200aa155760248096036200a96d575b506200a93c565b8051838110156200aa01576025146200a9665751918210156200a9ed5750036200a9b15750506020916200a9a562007e9492620150fb565b9138808080806200a966565b60405162461bcd60e51b8152602060048201529182015275496e76616c6964206f7065726174696f6e207479706560501b604482015260649150fd5b8490634e487b7160e01b6000526004526000fd5b8683634e487b7160e01b6000526004526000fd5b50634e487b7160e01b60005260045260246000fd5b60405162461bcd60e51b815260206004820152601b60248201527a13dc195c985d1a5bdb881d1e5c19481a5cc81d5b9919599a5b9959602a1b6044820152606490fd5b50915050565b600281036200aa975760405162461bcd60e51b81528062005d576004820162007b72565b6001146200aaa25750565b906200aab262013883546200633c565b805190600160401b821162003e53576202711654826202711655808310620135ba575b506020016202711660005260206000206000915b83831062013599575050505060005b62013883548110156200ab32578062001da26200ab196200ab2c9362006db7565b506200ab258362006dd8565b9062013b38565b6200aaf8565b506200ab4262013882546200633c565b805190600160401b821162003e53576202711554826202711555808310620134fc575b506020016202711560005260206000206000915b838310620134db575050505060005b62013882548110156200abbb578062001da26200aba96200abb59362006df9565b506200ab258362006e1a565b6200ab88565b5060005b612710811015806200ad8757600160ff6201389a8460031b0154161515146200abf5575b506200abef9062005d5b565b6200abbf565b916000835b62005d8f57620138978360031b01548110156200ac67576200ac5e929350600092816200ac318593620138978860031b0162005fe6565b9054600391821b1c6001600160a01b031660009081529087901b6201389601602052604081205562005d5b565b9093926200abfa565b5091604051906200ac788262003ef6565b6000825262005d8f578051906001600160401b03821162003e53576020906200acaa83620138978660031b01620060fb565b01620138978360031b01600052602060002060005b8381106200ad695750505050600381901b6201389a8101805460ff191690556000620138938201819055620138948201819055620138958201556201389801546200abef91906200ad10906200533f565b601f908181116200ad3d575b50506000620138988260031b01556000620138998260031b0155906200abe3565b6200ad6191620138988460031b016000526020600020910160051c81019062005fff565b38806200ad1c565b82516001600160a01b0316818301556020909201916001016200acbf565b505060005b612710811062013446575060005b62013881548110156200adf757806200adb76200adf19262005f55565b60018060a01b0391549060031b1c166000526202711360205260006002604082208281556200ade960018201620063cd565b015562005d5b565b6200ad9a565b506200ae07620138815462005ee3565b8051906001600160401b03821162003e5357600160401b821162003e5357602090620271145483620271145580841062013423575b500162027114600052602060002060005b83811062013405575050505060005b62013881548110156200aed1576200ae748162005f55565b9054620271145460039290921b1c6001600160a01b0316919081101562005d8f576202711460005260008051602062016a78833981519152810180546001600160a01b0319169092179091556200aecb9062005d5b565b6200ae5c565b509060005b62013881548110156200af9357806200aef36200af489262005f55565b9060018060a01b03918291549060031b1c1660005262013880602052604080600020916200af218462005f55565b90549060031b1c1660005262027113602052600020908082036200af4e575b505062005d5b565b6200aed6565b600280916200af7460ff6200af678184541687620068e9565b825460081c1685620068fa565b6200af86600182016001860162013761565b015491015538806200af40565b5060005b6202711d548110156200afe757806200afb46200afe19262005f72565b60018060a01b0391549060031b1c166000526202711c60205262001da26040600020606481019062005fff565b6200af97565b506200aff76201388a5462005ee3565b8051906001600160401b03821162003e5357600160401b821162003e53576020906202711d54836202711d55808410620133e2575b50016202711d600052602060002060005b838110620133c4575050505060005b6201388a548110156200b090578062001da26200b06d6200b08a9362005f8f565b905460039190911b1c6001600160a01b031662001d7a8362005f72565b6200b04c565b5060005b6201388a548110156200b11e57806200b0b16200b1059262005f8f565b9060018060a01b03918291549060031b1c1660005262013889602052604080600020916200b0df8462005f8f565b90549060031b1c166000526202711c602052600020908082036200b10b57505062005d5b565b6200b094565b6200b1169162013bcc565b38806200af40565b506201388b546202711e556201388c546202711f556201388d5462027120556201388e5462027121556201388f546001600160401b03811162003e5357600160401b811162003e5357620271225481620271225580821062013395575b506202712260009081527f846ab89c81ea9339188216a1864da1a19ebe28d411cbec99efa70ca6d389710d8054600080516020620169f883398151915291905b848410620133735750505050506201389054600160401b811162003e5357620271235481620271235580821062013330575b5062027123600090815260008051602062016a188339815191527f7f73709277f72a9bc7b284375e83603a53394744e9fa86da811e86c2aa78e05e5b8383106201331257505062013891549150506001600160401b03811162003e5357600160401b811162003e53576202712454816202712455808210620132e3575b506202712460009081527f8f332db73d3937798ea82422156d059730b0b3058606439b57b7ae623e945366805460008051602062016a9883398151915291905b848410620132c157505050505060ff620138925416151560ff8019620271255416911617620271255560005b62027119548110156200b32257806200b2f36200b31c9262005fac565b905460039190911b1c6001600160a01b0316600090815262027118602052604081205562005d5b565b6200b2d6565b506200b332620138865462005ee3565b8051906001600160401b03821162003e53576020906200b352836200609f565b0162027119600052602060002060005b838110620132a3575050505060005b62013886548110156200b3b5578062001da26200b3926200b3af9362005f38565b905460039190911b1c6001600160a01b031662001d7a8362005fac565b6200b371565b5060005b62013886548110156200b42757806200b3d66200b4219262005f38565b9060018060a01b03918291549060031b1c166000526201388560205260408060002054916200b4058462005f38565b90549060031b1c16600052620271186020526000205562005d5b565b6200b3b9565b5060005b6202711b548110156200b47757806200b4486200b4719262005fc9565b905460039190911b1c6001600160a01b031660009081526202711a602052604081205562005d5b565b6200b42b565b506200b487620138885462005ee3565b8051906001600160401b03821162003e53576020906200b4a783620060c3565b016202711b600052602060002060005b83811062013285575050505060005b62013888548110156200b50a578062001da26200b4e76200b5049362005f1b565b905460039190911b1c6001600160a01b031662001d7a8362005fc9565b6200b4c6565b5060005b62013888548110156200b57c57806200b52b6200b5769262005f1b565b9060018060a01b03918291549060031b1c166000526201388760205260408060002054916200b55a8462005f1b565b90549060031b1c166000526202711a6020526000205562005d5b565b6200b50e565b50906000905b602083015180518310156200fc9257826200b59d9162005dc7565b516020810151602681101562003fd757156200aa2a576020810151602681101562003fd7576001036200bb7657604001906200b5de60c08351015162005d81565b51936200b5f560a062007caa818651015162005d81565b51916200b606865185511462014ed7565b6200b615865184511462014f3d565b60005b86518110156200b778576200b62e818662005dc7565b5161271081101562005d8f57600160ff6201389a6200b6569360031b01541615151462014f9f565b6200b662818562005dc7565b516200b66f828762005dc7565b519061271082101562005d8f57620138996200b6919260031b01549062007106565b906200b69e838862005dc7565b519161271083101562005d8f57620138996200b6bf9360031b015562014ff7565b6200b6cb818562005dc7565b516200b6d8828762005dc7565b519061271082101562005d8f576200b71c9162013896906001600160a01b036200b703868d62005dc7565b511660005260031b016020526040600020549062007106565b91906200b72a828862005dc7565b519061271082101562005d8f576200b7729362001da29262013896906001600160a01b036200b75a878f62005dc7565b511660005260031b0160205260406000205562015056565b6200b618565b50926200b78f919250620083d6909594956201627d565b916040516200b79e8162003ef6565b6000815260003681376000945b80518610156200bb5c576200b7c1868262005dc7565b51610740526200b7d2855162005ee3565b966000946200b7e2845162005ee3565b6103e05260009460005b88518110156200b8b5578a896200b81c6001600160a01b036200b810858462005dc7565b511661074051620160b3565b15806200b86c575b6200b83d575b50506200b8379062005d5b565b6200b7ec565b986200b8619162001e4582859c62009cb46200b8379760018060a01b039262005dc7565b9790508a896200b82a565b50505061271061074051101562005d8f576001600160a01b036200b891828b62005dc7565b5116600052620138966107405160031b016020528a8960406000205415156200b824565b50909895979498969291939660005b88518110156200b9545761271061074051101562005d8f576001600160a01b03806200b8f1838c62005dc7565b5116600052620138966107405160031b01602052604060002054156200b924575b506200b91e9062005d5b565b6200b8c4565b819b6200b94c916200b93b6200b91e948d62005dc7565b511662001e45826103e05162005dc7565b9a906200b912565b5098509695929190939661074051612710811015806104605262005d8f5760031b620138970154986200b98c6200938f898c62014b6f565b6106805260006105a052600060e0525b6104605162005d8f5760e0518a8110156200ba63576200b9d26200b9f291600061046052620138976107405160031b0162005fe6565b90546103e0516001600160a01b03939260031b9190911c8316906201610c565b156200ba10575b506200ba0760e05162005d5b565b60e0526200b99c565b6000610460526200ba2f60e051620138976107405160031b0162005fe6565b90549060031b1c166200ba496105a0516106805162005dc7565b526200ba586105a05162005d5b565b6105a052386200b9f9565b50979294959093985095909560005b8281106200bb10575050506104605162005d8f5761068051516001600160401b03811162003e53576200bab181620138976107405160031b01620060fb565b60206106805101620138976107405160031b01600052602060002060005b8381106200baf257505050506200bae69062005d5b565b9492959091956200b7ab565b82516001600160a01b0316818301556020909201916001016200bacf565b6200bb56906001600160a01b036200bb29828562005dc7565b51166200bb3d6105a0516106805162005dc7565b526200bb4c6105a05162005d5b565b6105a05262005d5b565b6200ba72565b5050939092506200bb6e915062005d5b565b90916200b582565b906020829493940151602681101562003fd7576002036200bd33576040809201908151938451916200bbcd6200bbb160a08098015162005d81565b51966200bbc2818751015162005da5565b519551015162005db6565b51948351875103620080ec5783518551036200809857835186510362008041575060005b86518110156200bd20576200bc07818862005dc7565b5161271081101562005d8f5760ff6201389a6200bc2b9260031b01541615620150af565b6200bc37818862005dc7565b5161271081101562005d8f5760031b6201389a01805460ff191660011790556200bc62818562005dc7565b516200bc6f828962005dc7565b519061271082101562005d8f57620138986200bc8f9260031b0162006816565b6200bc9b818662005dc7565b516200bca8828962005dc7565b5161271081101562005d8f5760031b6201389401556200bcc9818762005dc7565b516200bcd6828962005dc7565b5161271081101562005d8f5760031b6201389501556200bcf7818862005dc7565b519061271082101562005d8f576000620138996200bd1a9360031b015562005d5b565b6200bbf1565b509592509350506200bb6e915062005d5b565b9092916020840151602681101562003fd7576003036200c3655760408401906200bd6260c08351015162005d81565b51906200bd7960a062007caa818651015162005d81565b51936200bd8e835185511462001c12620164ee565b6200bda1835186511462001c12620164ee565b60005b83518110156200be00576200bdba818662005dc7565b519061271082101562005d8f57620138966200bdfa9260018060a01b038b511660005260031b0160205262001da26040600020546200825e838a62005dc7565b6200bda4565b509095919560005b87518110156200bf52576200be1e818662005dc7565b5161271081101562005d8f57620138969060018060a01b0386511660005260031b016020526200be59604060002054620082dc838962005dc7565b906200be66838862005dc7565b519161271083101562005d8f57620138966200bea09360018060a01b0389511660005260031b0160205260406000205562001c12620165f2565b6200beac818662005dc7565b5161271081101562005d8f5762013896906001600160a01b036200bed1848c62005dc7565b511660005260031b016020526200bef360406000205462007344838962005dc7565b91906200bf01828862005dc7565b519061271082101562005d8f576200bf4c936201389662001da2938d6200bf308760018060a01b039262005dc7565b511660005260031b0160205260406000205562001c1262016657565b6200be08565b50926200bf71919294506200bf6a909695966201627d565b9462016161565b92604051906200bf818262003eda565b6001825260203681840137516001600160a01b03166200bfa18262005d81565b526000945b80518610156200bb5c576200bfbc868262005dc7565b51610540526200bfcd855162005ee3565b966000946200bfdd845162005ee3565b6102205260009460005b88518110156200c0b0578a896200c0176001600160a01b036200c00b858462005dc7565b511661054051620160b3565b15806200c067575b6200c038575b50506200c0329062005d5b565b6200bfe7565b986200c05c9162001e4582859c62009cb46200c0329760018060a01b039262005dc7565b9790508a896200c025565b50505061271061054051101562005d8f576001600160a01b036200c08c828b62005dc7565b5116600052620138966105405160031b016020528a8960406000205415156200c01f565b50909895979498969291939660005b88518110156200c1565761271061054051101562005d8f576001600160a01b036200c0eb828b62005dc7565b5116600052620138966105405160031b01602052604060002054156200c11d575b6200c1179062005d5b565b6200c0bf565b996200c117906200c14d906001600160a01b036200c13c8e8d62005dc7565b511662001e45826102205162005dc7565b9a90506200c10c565b5098509695929190939661054051612710811015806106c05262005d8f5760031b620138970154986200c18e6200938f898c62014b6f565b610120526000610500526000610140525b6106c05162005d8f57610140518a8110156200c26c576200c1d66200c1f39160006106c052620138976105405160031b0162005fe6565b90546102205160039290921b1c6001600160a01b0316906201610c565b156200c212575b6200c2086101405162005d5b565b610140526200c19f565b60006106c0526200c23261014051620138976105405160031b0162005fe6565b60018060a01b0391549060031b1c166200c253610500516101205162005dc7565b526200c2626105005162005d5b565b610500526200c1fa565b50979294959093985095909560005b8281106200c319575050506106c05162005d8f5761012051516001600160401b03811162003e53576200c2ba81620138976105405160031b01620060fb565b60206101205101620138976105405160031b01600052602060002060005b8381106200c2fb57505050506200c2ef9062005d5b565b9492959091956200bfa6565b82516001600160a01b0316818301556020909201916001016200c2d8565b6200c35f906001600160a01b036200c332828562005dc7565b51166200c346610500516101205162005dc7565b526200c3556105005162005d5b565b6105005262005d5b565b6200c27b565b90926020810151602681101562003fd7576004036200c997576040016200c39160c08251015162005d81565b51936200c3a360c08351015162005da5565b51906200c3ba60a062007caa818651015162005d81565b51936200c3cf875184511462001c12620164ee565b6200c3e2875185511462001c12620164ee565b6200c3f5875186511462001c12620164ee565b60005b87518110156200c461576200c40e818662005dc7565b519061271082101562005d8f576200c45b9162013896906001600160a01b036200c439848d62005dc7565b511660005260031b0160205262001da26040600020546200825e838a62005dc7565b6200c3f8565b509095919593929360005b83518110156200c5c8576200c482818762005dc7565b5161271081101562005d8f5762013896906001600160a01b036200c4a7848862005dc7565b511660005260031b016020526200c4c9604060002054620082dc838862005dc7565b906200c4d6838962005dc7565b519161271083101562005d8f576200c51d9262013896906001600160a01b036200c501878b62005dc7565b511660005260031b0160205260406000205562001c12620165f2565b6200c529818762005dc7565b5161271081101562005d8f5762013896906001600160a01b036200c54e848c62005dc7565b511660005260031b016020526200c57060406000205462007344838862005dc7565b9190506200c57f818862005dc7565b519161271083101562005d8f576200c5c29262013896906001600160a01b036200c5aa858e62005dc7565b511660005260031b0160205260406000205562005d5b565b6200c46c565b5091936200c5e4919350620083dd620083d6919796976201627d565b6000945b80518610156200bb5c576200c5fe868262005dc7565b516104e0526200c60f855162005ee3565b966000946200c61f845162005ee3565b6102605260009460005b88518110156200c6f2578a896200c6596001600160a01b036200c64d858462005dc7565b51166104e051620160b3565b15806200c6a9575b6200c67a575b50506200c6749062005d5b565b6200c629565b986200c69e9162001e4582859c62009cb46200c6749760018060a01b039262005dc7565b9790508a896200c667565b5050506127106104e051101562005d8f576001600160a01b036200c6ce828b62005dc7565b5116600052620138966104e05160031b016020528a8960406000205415156200c661565b50909895979498969291939660005b88518110156200c791576127106104e051101562005d8f576001600160a01b03806200c72e838c62005dc7565b5116600052620138966104e05160031b01602052604060002054156200c761575b506200c75b9062005d5b565b6200c701565b819b6200c789916200c7786200c75b948d62005dc7565b511662001e45826102605162005dc7565b9a906200c74f565b509850969592919093966104e051612710811015806103405262005d8f5760031b620138970154986200c7c96200938f898c62014b6f565b61070052600060c0526000610480525b6103405162005d8f57610480518a8110156200c8a1576200c8106200c83091600061034052620138976104e05160031b0162005fe6565b9054610260516001600160a01b03939260031b9190911c8316906201610c565b156200c850575b506200c8466104805162005d5b565b610480526200c7d9565b6000610340526200c87061048051620138976104e05160031b0162005fe6565b90549060031b1c166200c88960c0516107005162005dc7565b526200c89760c05162005d5b565b60c052386200c837565b50979294959093985095909560005b8281106200c94e575050506103405162005d8f5761070051516001600160401b03811162003e53576200c8ef81620138976104e05160031b01620060fb565b60206107005101620138976104e05160031b01600052602060002060005b8381106200c93057505050506200c9249062005d5b565b9492959091956200c5e8565b82516001600160a01b0316818301556020909201916001016200c90d565b6200c991906001600160a01b036200c967828562005dc7565b51166200c97a60c0516107005162005dc7565b526200c98860c05162005d5b565b60c05262005d5b565b6200c8b0565b92906020840151602681101562003fd7576005036200cf4d5760408401906200c9ca60a062008446818551015162005d81565b519282518451036200cefb5760005b83518110156200ca35576200c9ef818562005dc7565b519061271082101562005d8f57620138966200ca2f9260018060a01b038a511660005260031b0160205262001da26040600020546200825e838962005dc7565b6200c9d9565b509060005b83518110156200cade576200ca50818562005dc7565b5161271081101562005d8f57620138969060018060a01b0389511660005260031b016020526200ca8b604060002054620082dc838862005dc7565b91906200ca99828762005dc7565b519061271082101562005d8f576200cad8936201389662001da29360018060a01b038d511660005260031b0160205260406000205562001c12620165f2565b6200ca3a565b50916200caef91949593506201627d565b92604051926200caff8462003eda565b6001845260203681860137516001600160a01b03166200cb1f8462005d81565b52604051926200cb2f8462003ef6565b6000845260003681376000945b80518610156200bb5c576200cb52868262005dc7565b51610300526200cb63855162005ee3565b966000946200cb73845162005ee3565b6101c05260009460005b88518110156200cc46578a896200cbad6001600160a01b036200cba1858462005dc7565b511661030051620160b3565b15806200cbfd575b6200cbce575b50506200cbc89062005d5b565b6200cb7d565b986200cbf29162001e4582859c62009cb46200cbc89760018060a01b039262005dc7565b9790508a896200cbbb565b50505061271061030051101562005d8f576001600160a01b036200cc22828b62005dc7565b5116600052620138966103005160031b016020528a8960406000205415156200cbb5565b50909895979498969291939660005b88518110156200ccec5761271061030051101562005d8f576001600160a01b036200cc81828b62005dc7565b5116600052620138966103005160031b01602052604060002054156200ccb3575b6200ccad9062005d5b565b6200cc55565b996200ccad906200cce3906001600160a01b036200ccd28e8d62005dc7565b511662001e45826101c05162005dc7565b9a90506200cca2565b5098509695929190939661030051612710811015806101605262005d8f5760031b620138970154986200cd246200938f898c62014b6f565b610760526000610240526000610440525b6101605162005d8f57610440518a8110156200ce02576200cd6c6200cd8991600061016052620138976103005160031b0162005fe6565b90546101c05160039290921b1c6001600160a01b0316906201610c565b156200cda8575b6200cd9e6104405162005d5b565b610440526200cd35565b6000610160526200cdc861044051620138976103005160031b0162005fe6565b60018060a01b0391549060031b1c166200cde9610240516107605162005dc7565b526200cdf86102405162005d5b565b610240526200cd90565b50979294959093985095909560005b8281106200ceaf575050506101605162005d8f5761076051516001600160401b03811162003e53576200ce5081620138976103005160031b01620060fb565b60206107605101620138976103005160031b01600052602060002060005b8381106200ce9157505050506200ce859062005d5b565b9492959091956200cb3c565b82516001600160a01b0316818301556020909201916001016200ce6e565b6200cef5906001600160a01b036200cec8828562005dc7565b51166200cedc610240516107605162005dc7565b526200ceeb6102405162005d5b565b6102405262005d5b565b6200ce11565b60405162461bcd60e51b8152602060048201526035602482015260008051602062016a38833981519152604482015274195b905b5bdd5b9d081a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b90926020810151602681101562003fd7576006036200d1cf576040016200cf7960c08251015162005d81565b51936200cf9060a062008446818551015162005d81565b519285518351036200d17d5785518451036200d1305760005b86518110156200d012576200cfbf818562005dc7565b519061271082101562005d8f576200d00c9162013896906001600160a01b036200cfea848c62005dc7565b511660005260031b0160205262001da26040600020546200825e838962005dc7565b6200cfa9565b509060005b86518110156200d0b8576200d02d818562005dc7565b5161271081101562005d8f5762013896906001600160a01b036200d052848b62005dc7565b511660005260031b016020526200d074604060002054620082dc838862005dc7565b91906200d082828762005dc7565b519061271082101562005d8f576200d0b29362001da29262013896906001600160a01b036200c501878f62005dc7565b6200d017565b5094916200d0d49193506200d0cd906201627d565b9162016161565b91604051946200d0e48662003ef6565b60008652600036813760005b83518110156200d11e578062001da26200d10f6200d118938762005dc7565b51878a62015d79565b6200d0f0565b5094509290506200bb6e915062005d5b565b60405162461bcd60e51b8152602060048201526030602482015260008051602062016b1883398151915260448201526f1b9d1cc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b60405162461bcd60e51b81526020600482015260356024820152600080516020620169d88339815191526044820152741b90db185cdcd95cc81a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b6020819493940151602681101562003fd7576007036200d36d57604001916200d1fd60c08451015162005d81565b51916200d20f60a08551015162005d81565b51935151916200d227845186511462001c12620164ee565b60005b84518110156200d35b576001600160a01b03806200d249838862005dc7565b511660005262027113806020526200d26e60ff604060002054161562001c12620165bf565b60026200d27c848862005dc7565b516200d2e66200d28d868c62005dc7565b5191620089b48b604051966200d2a38862003e37565b60018852886200d2ca8b60208b01946000865260408c0197885260608c01998a5262005dc7565b5116600052602052620089aa60406000209751151588620068e9565b519101556200d2f6828762005dc7565b516202711454929116600160401b83101562003e53576001830180620271145583101562005d8f576202711460005260008051602062016a7883398151915290920180546001600160a01b0319169092179091556200d3559062005d5b565b6200d22a565b5094915092506200bb6e915062005d5b565b6020810151602681101562003fd7576008036200d45c5760c060406200d397920151015162005d81565b519160005b83518110156200d44d576200d447906001600160a01b03806200d3c0838862005dc7565b51166000526202711390816020526200d3ea600160ff6040600020541615151462001c126201651e565b806200d3f7848962005dc7565b5116600052816020526200d41b60ff60406000205460081c161562001c1262016586565b6200d427838862005dc7565b5116600052602052604060002061010061ff001982541617905562005d5b565b6200d39c565b50926200bb6e91925062005d5b565b6020810151602681101562003fd7576009036200d53c5760c060406200d486920151015162005d81565b519160005b83518110156200d44d576200d536906001600160a01b03806200d4af838862005dc7565b51166000526202711390816020526200d4d9600160ff6040600020541615151462001c126201651e565b806200d4e6848962005dc7565b5116600052816020526200d50e600160ff60406000205460081c1615151462001c1262016551565b6200d51a838862005dc7565b5116600052602052604060002061ff0019815416905562005d5b565b6200d48b565b6020810151602681101562003fd757600a036200d62557604001906200d57860a06200d56d60c08551015162005d81565b519351015162005d81565b51926200d58d835185511462001c12620164ee565b60005b83518110156200d614576200d60e906001600160a01b03806200d5b4838862005dc7565b511660005262027113806020526200d5dd600160ff6040600020541615151462001c126201651e565b6200d5e9838962005dc7565b51916200d5f7848962005dc7565b511660005260205260026040600020015562005d5b565b6200d590565b50939092506200bb6e915062005d5b565b602081949392940151602681101562003fd757600b036200d70657604001926200d65460c08551015162005d81565b51935151916200d66c855184511462001c12620164ee565b60005b85518110156200d6f6576200d6f09062001da26001600160a01b03806200d697848b62005dc7565b511660005262027113806020526200d6c0600160ff6040600020541615151462001c126201651e565b6200d6cc848962005dc7565b51916200d6da858c62005dc7565b5116600052602052600160406000200162006816565b6200d66f565b509350916200bb6e915062005d5b565b9091926020820151602681101562003fd757600c036200d84a576060604083015101519260005b84518110156200d6145760e06200d74d8260606040880151015162005dc7565b510151156200d7d3576200d7756200d76e8260606040880151015162005dc7565b5162006ed0565b62027115548060001981011162005d6b576200d7976005916000190162006e1a565b5001805461ff0019166101001790556202711554906000198201821062005d6b57600562008e126200d7cd936000190162006e1a565b6200d72d565b6200d7f26200d7eb8260606040880151015162005dc7565b5162006eac565b62027116548060001981011162005d6b576200d8146005916000190162006dd8565b5001805461ff0019166101001790556202711654906000198201821062005d6b57600562008e126200d7cd936000190162006dd8565b9291906020810151602681101562003fd757600d036200d993576040019260206200d87a60a08651015162005d81565b5194510151916200d88f855184511462014c16565b60005b85518110156200d6f657806200d8ad6200d927928662005dc7565b51156200d92d576200d8d16200d8c4828962005dc7565b5162027115541162014c9f565b6200d8fd60ff60056200d8f06200d8e9858c62005dc7565b5162006e1a565b50015460081c1662014cf7565b6200d91560ff600562008f706200d8e9858c62005dc7565b600562008f8c6200d8e9838a62005dc7565b6200d892565b6200d94a6200d93d828962005dc7565b5162027116541162014c9f565b6200d96960ff60056200d8f06200d962858c62005dc7565b5162006dd8565b6200d98160ff600562008f706200d962858c62005dc7565b600562008f8c6200d962838a62005dc7565b6020810151602681101562003fd757600e036200dacb576040019260206200d9c060a08651015162005d81565b5194510151916200d9d5855184511462014c16565b60005b85518110156200d6f657806200d9f36200da66928662005dc7565b51156200da6c576200da176200da0a828962005dc7565b5162027115541162014db9565b6200da3c60ff60056200da2f6200d8e9858c62005dc7565b50015460081c1662014e12565b6200da5460ff6005620090ca6200d8e9858c62005dc7565b600562008e126200d8e9838a62005dc7565b6200d9d8565b6200da896200da7c828962005dc7565b5162027116541162014db9565b6200daa160ff60056200da2f6200d962858c62005dc7565b6200dab960ff6005620090ca6200d962858c62005dc7565b600562008e126200d962838a62005dc7565b9091926020820151602681101562003fd757600f036200dc01576060604083015101519260005b84518110156200d6145760e06200db128260606040880151015162005dc7565b510151156200db91576200db336200d76e8260606040880151015162005dc7565b62027115548060001981011162005d6b576200db556005916000190162006e1a565b5001805461ff0019166101001790556202711554906000198201821062005d6b57600562008f8c6200db8b936000190162006e1a565b6200daf2565b6200dba96200d7eb8260606040880151015162005dc7565b62027116548060001981011162005d6b576200dbcb6005916000190162006dd8565b5001805461ff0019166101001790556202711654906000198201821062005d6b57600562008f8c6200db8b936000190162006dd8565b9291906020810151602681101562003fd7576010036200dd4a5760400151926200dc3460a0608086015195015162005d81565b51916200dc49855184511462001c12620164ee565b60005b85518110156200d6f657806200dc676200dcdd928862005dc7565b516200dc738162004f79565b6200dc7f828762005dc7565b51906200dc8c8162004f79565b6200dca36200dc9a62016621565b82151562005d28565b6200dcae8162004f79565b600181036200dce357506200dcd26200dcc662016621565b61271083111562005d28565b6202711e5562005d5b565b6200dc4c565b6200dcee8162004f79565b600281036200dd0357506202711f5562005d5b565b6200dd0e8162004f79565b600381036200dd235750620271205562005d5b565b806200dd3160049262004f79565b146200dd3e575062005d5b565b6202712155386200a30a565b6020810151602681101562003fd7576011036200dff057604001906200dd7b60a06200d56d60c08551015162005d81565b51936200dd8c835186511462014b23565b60005b83518110156200de0d576200de07906200dde76001600160a01b03806200ddb7848962005dc7565b51166000526202711890816020526200dddb60406000205462007344868d62005dc7565b939062001c12620164a4565b6200ddf3848962005dc7565b511660005260205260406000205562005d5b565b6200dd8f565b509350906200de1c9062016161565b906202711954936200de346200938f84518762014b6f565b9060009260005b8781106200dfb0575060005b85518110156200defc576000805b8981106200dead575b50156200de77575b6200de719062005d5b565b6200de47565b936200de71906200dea4906001600160a01b036200de96888a62005dc7565b511662001e45828862005dc7565b9490506200de66565b6200deb88162005fac565b90546001600160a01b0360039290921b1c8116906200ded8858b62005dc7565b5116146200def1576200deeb9062005d5b565b6200de55565b50506001386200de5e565b5095509392506200df0d8262005ee3565b8051906001600160401b03821162003e53576020906200df2d836200609f565b0162027119600052602060002060005b8381106200df92575050505060005b8281106200df62575050506200bb6e9062005d5b565b6200df8c9062001da26001600160a01b036200df7f838662005dc7565b511662001d7a8362005fac565b6200df4c565b82516001600160a01b0316818301556020909201916001016200df3d565b936200dfe36200dfea916200dfc58762005fac565b905460039190911b1c6001600160a01b031662001e45828862005dc7565b9462005d5b565b6200de3b565b6020819492940151602681101562003fd7576012036200e23857604001906200e02460a06200d56d60c08551015162005d81565b51936200e035835186511462014b23565b60005b83518110156200e08a576200e084906200dde76001600160a01b03806200e060848962005dc7565b51166000526202711890816020526200dddb604060002054620082dc868d62005dc7565b6200e038565b50935091906200e09a9062016161565b62027119546200e0aa8162005ee3565b906000926000915b8083106200e15e575050506200e0c88262005ee3565b8051906001600160401b03821162003e53576020906200e0e8836200609f565b0162027119600052602060002060005b8381106200e140575050505060005b8281106200e11d575050506200bb6e9062005d5b565b6200e13a9062001da26001600160a01b036200df7f838662005dc7565b6200e107565b82516001600160a01b0316818301556020909201916001016200e0f8565b91956000959193959760005b85518110156200e229576200e17f8962005fac565b90546001600160a01b0360039290921b1c8116906200e19f838962005dc7565b5116146200e1b8576200e1b29062005d5b565b6200e16a565b509750956001959391955b806200e1f7575b156200e1e2576200e1db9062005d5b565b916200e0b2565b936200dfe36200e1db916200dfc58762005fac565b506200e2038162005fac565b60018060a01b0391549060031b1c1660005262027118602052604060002054156200e1ca565b5097969096959391956200e1c3565b6020819493940151602681101562003fd7576013036200e2dc5760408091015101519160005b83518110156200d44d576200e274818562005dc7565b51906202711754600160401b81101562003e53576001810180620271175581101562005d8f57620271176000526200e2d69262001da2916007027f08f37177f6a5732df494aeff73d589b534878a053b84dfe1e41c467868b7c9fd0162015675565b6200e25e565b6020819493940151602681101562003fd7576014036200e49457604001906200e30a60c08351015162005d81565b51936200e32160a062007caa818651015162005d81565b51916200e332865185511462014ed7565b6200e341865184511462014f3d565b60005b86518110156200e43f576200e35a818562005dc7565b516200e367828762005dc7565b519061271082101562005d8f57620138996200e3899260031b01549062007106565b906200e396838862005dc7565b519161271083101562005d8f57620138996200e3b79360031b015562014ff7565b6200e3c3818562005dc7565b516200e3d0828762005dc7565b519061271082101562005d8f576200e3fb9162013896906001600160a01b036200b703868d62005dc7565b91906200e409828862005dc7565b519061271082101562005d8f576200e4399362001da29262013896906001600160a01b036200b75a878f62005dc7565b6200e344565b50949150916200d0cd6200e453916201627d565b93604051926200e4638462003ef6565b60008452600036813760005b83518110156200d11e578062001da26200d10f6200e48e938762005dc7565b6200e46f565b92906020840151602681101562003fd7576015036200eaa25760408401906200e4c260c08351015162005d81565b51906200e4d960a062007caa818651015162005d81565b51936200e4ee835185511462001c12620164ee565b6200e501835186511462001c12620164ee565b60005b83518110156200e560576200e51a818662005dc7565b519061271082101562005d8f57620138966200e55a9260018060a01b038b511660005260031b0160205262001da26040600020546200825e838a62005dc7565b6200e504565b509095919560005b87518110156200e696576200e57e818662005dc7565b5161271081101562005d8f57620138969060018060a01b0386511660005260031b016020526200e5b9604060002054620082dc838962005dc7565b906200e5c6838862005dc7565b519161271083101562005d8f57620138966200e6009360018060a01b0389511660005260031b0160205260406000205562001c12620165f2565b6200e60c818662005dc7565b5161271081101562005d8f5762013896906001600160a01b036200e631848c62005dc7565b511660005260031b016020526200e65360406000205462007344838962005dc7565b91906200e661828862005dc7565b519061271082101562005d8f576200e690936201389662001da2938d6200bf308760018060a01b039262005dc7565b6200e568565b50926200e6ae919294506200bf6a909695966201627d565b92604051906200e6be8262003eda565b6001825260203681840137516001600160a01b03166200e6de8262005d81565b526000945b80518610156200bb5c576200e6f9868262005dc7565b516101e0526200e70a855162005ee3565b966000946200e71a845162005ee3565b6105605260009460005b88518110156200e7ed578a896200e7546001600160a01b036200e748858462005dc7565b51166101e051620160b3565b15806200e7a4575b6200e775575b50506200e76f9062005d5b565b6200e724565b986200e7999162001e4582859c62009cb46200e76f9760018060a01b039262005dc7565b9790508a896200e762565b5050506127106101e051101562005d8f576001600160a01b036200e7c9828b62005dc7565b5116600052620138966101e05160031b016020528a8960406000205415156200e75c565b50909895979498969291939660005b88518110156200e893576127106101e051101562005d8f576001600160a01b036200e828828b62005dc7565b5116600052620138966101e05160031b01602052604060002054156200e85a575b6200e8549062005d5b565b6200e7fc565b996200e854906200e88a906001600160a01b036200e8798e8d62005dc7565b511662001e45826105605162005dc7565b9a90506200e849565b509850969592919093966101e051612710811015806104a05262005d8f5760031b620138970154986200e8cb6200938f898c62014b6f565b6102e0526000610400526000610660525b6104a05162005d8f57610660518a8110156200e9a9576200e9136200e9309160006104a052620138976101e05160031b0162005fe6565b90546105605160039290921b1c6001600160a01b0316906201610c565b156200e94f575b6200e9456106605162005d5b565b610660526200e8dc565b60006104a0526200e96f61066051620138976101e05160031b0162005fe6565b60018060a01b0391549060031b1c166200e990610400516102e05162005dc7565b526200e99f6104005162005d5b565b610400526200e937565b50979294959093985095909560005b8281106200ea56575050506104a05162005d8f576102e051516001600160401b03811162003e53576200e9f781620138976101e05160031b01620060fb565b60206102e05101620138976101e05160031b01600052602060002060005b8381106200ea3857505050506200ea2c9062005d5b565b9492959091956200e6e3565b82516001600160a01b0316818301556020909201916001016200ea15565b6200ea9c906001600160a01b036200ea6f828562005dc7565b51166200ea83610400516102e05162005dc7565b526200ea926104005162005d5b565b6104005262005d5b565b6200e9b8565b9091926020810151602681101562003fd7576016036200eb575760c060406200eacf920151015162005d81565b519160005b83518110156200d44d576001600160a01b036200eaf2828662005dc7565b516202712254929116600160401b83101562003e53576001830180620271225583101562005d8f5762027122600052600080516020620169f883398151915290920180546001600160a01b0319169092179091556200eb519062005d5b565b6200ead4565b6020810151602681101562003fd7576017036200ebb45760405162461bcd60e51b8152602060048201526029602482015260008051602062016ad88339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003fd7576018036200ec775760c060406200ebde920151015162005d81565b5191600160ff1962027125541617620271255560005b83518110156200d44d576001600160a01b036200ec12828662005dc7565b516202712454929116600160401b83101562003e53576001830180620271245583101562005d8f576202712460005260008051602062016a9883398151915290920180546001600160a01b0319169092179091556200ec719062005d5b565b6200ebf4565b602081949293940151602681101562003fd7576019036200ec9f575b506200bb6e9062005d5b565b6020810151602681101562003fd757601a036200ee1a5760a060406200ecc9920151015162005d81565b51906200ecda600383511462014b23565b6200ece58262005d81565b516200ecf56200a2a18462005da5565b51926200edde576200bb6e926001036200edd7576200ed1d6200ed7c91620271205462007106565b6202712055604051906200ed318262003ebe565b603282527f6469766964656e6461626c652062616c616e6365206f766572666c6f772077686020830152710cadc40e0e4dec6cae6e6d2dcce40c6c2e6d60731b604083015262005d28565b6200edd06200ed8f6202712154620070f3565b6202712155604051906200eda38262003eda565b601a8252796469766964656e647320636f756e746572206f766572666c6f7760301b602083015262005d28565b906200ec93565b506200edd0565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c6964207061796d656e74207479706560601b6044820152606490fd5b6020810151602681101562003fd757601b036200f41d575091906202711e546200ee476200a3806201637b565b62027121546202711f5411156200ee686200ee61620163e9565b8262005d28565b6202712054906200ee7a838362006fbe565b50506200ee866201643f565b506000805b61271082106200f371575b5050906200eec66200eecc93926200eebc6200eeb16201637b565b612710861062005d28565b62001c12620163e9565b62006fbe565b90506200eed86201643f565b5060009060005b61271081106200f299575b50906127106200eefb920462007194565b90506200ef0c6202712a5462005ee3565b906000946000905b6127108210156200f28c578160031b9460ff6201389a87015416156200f0725760009662013895870154156200f06157600098975b62005d8f57620138978701548910156200f047576200ef6e8962013897890162005fe6565b600160a01b6001900391549060031b1c169788600052620138968801602052604098868a60002054906200efa29162006fbe565b9a906200efae6201643f565b6200efb99162005d28565b60009a620138958b01546200efce9162006fbe565b906200efd96201643f565b6200efe49162005d28565b826000526202711a6020528160002054906200f0009162007106565b9091600020556200f0106201643f565b6200f01b9162005d28565b6200f027828962005dc7565b526200f0339062005d5b565b986200f03f9062005d5b565b98976200ef49565b929095506200f0599196975062005d5b565b90946200ef14565b929095506200f05991965062005d5b565b95969392509350505b6200f0868262005ee3565b9160009160005b8281106200f1f6575050506202711b54916200f0ae6200938f848462014b6f565b926000906000905b8082106200f1d957505060005b8381106200f1435750508251929150506001600160401b03821162003e53576020906200f0f083620060c3565b016202711b600052602060002060005b8381106200f12557505050506200bb6e9060006202712055600062027121556200edd0565b82516001600160a01b0316818301556020909201916001016200f100565b6000805b8381106200f191575b50156200f169575b6200f1639062005d5b565b6200f0c3565b906200f163906200f188906001600160a01b03620093f6858762005dc7565b9190506200f158565b6001600160a01b03806200f1a6858862005dc7565b5116906200f1b5838a62005dc7565b5116146200f1ce576200f1c89062005d5b565b6200f147565b50506001386200f150565b909162009f676200f1ef916200974e8562005fc9565b906200f0b6565b6000805b8581106200f244575b50156200f21c575b6200f2169062005d5b565b6200f08d565b926200f216906200f23b906001600160a01b03620093f6878662005dc7565b9390506200f20b565b6001600160a01b03806200f259858762005dc7565b5116906200f268838a62005dc7565b5116146200f281576200f27b9062005d5b565b6200f1fa565b50506001386200f203565b939495929150506200f07b565b90918160039695961b60ff6201389a82015416156200f3655762013895810154620138978201546000928391825b8184106200f303575050505062007aff6200f2fa936200f2f262001da29796946200268d9462006fbe565b929062006ef4565b9493946200eedf565b94929462005d8f576200f35e856200f3566200f32962001da29862013897870162005fe6565b905460039190911b1c6001600160a01b031660009081526201389686016020526040812054909662007106565b979062006fe0565b926200f2c7565b5091909493946200eeea565b8160039897981b60ff6201389a82015416156200f413576201389581015490600062013897820154916000926000925b8184106200f3de575050505062007aff6200f3d4936200a7aa846200eec6620025b36200a7b69662001da29a9862006fbe565b909695966200ee8b565b93929362005d8f576200f40c846200f4046200f32962001da29762013897870162005fe6565b969062006fe0565b926200f3a1565b509695966200ee96565b6020810151602681101562003fd757601c036200f47a5760405162461bcd60e51b8152602060048201526029602482015260008051602062016af88339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003fd757601d036200f49e575b506200bb6e906200edd0565b6020810151602681101562003fd757601e146200f492576020810151602681101562003fd757601f036200f5315760406200f4dc9101515162005d81565b51906202712354600160401b81101562003e53576001810180620271235581101562005d8f57620271236000526200bb6e926200f52a9160008051602062016a188339815191520162006816565b906200f492565b6020810151602681101562003fd7576020036200f555575b506200bb6e906200f52a565b6020810151602681101562003fd7576021146200f549576020810151602681101562003fd7576022036200f5e057506200bb6e9060ff196202712554166202712555620271245460006202712455806200f5b3575b505b906200f549565b620271246000526200f5d99060008051602062016a988339815191529081019062005fff565b386200f5aa565b6020810151602681101562003fd7576023036200f604575b506200bb6e906200f5ac565b6020810151602681101562003fd7576024146200f5f8576020810151602681101562003fd7576025146200f5f8579290916020840151602681101562003fd7576015036200fc545760408401906200f66160c08351015162005d81565b51906200f67860a062007caa818651015162005d81565b51936200f68d835185511462001c12620164ee565b6200f6a0835186511462001c12620164ee565b60005b83518110156200f6ff576200f6b9818662005dc7565b519061271082101562005d8f57620138966200f6f99260018060a01b038b511660005260031b0160205262001da26040600020546200825e838a62005dc7565b6200f6a3565b509095919560005b87518110156200f835576200f71d818662005dc7565b5161271081101562005d8f57620138969060018060a01b0386511660005260031b016020526200f758604060002054620082dc838962005dc7565b906200f765838862005dc7565b519161271083101562005d8f57620138966200f79f9360018060a01b0389511660005260031b0160205260406000205562001c12620165f2565b6200f7ab818662005dc7565b5161271081101562005d8f5762013896906001600160a01b036200f7d0848c62005dc7565b511660005260031b016020526200f7f260406000205462007344838962005dc7565b91906200f800828862005dc7565b519061271082101562005d8f576200f82f936201389662001da2938d6200bf308760018060a01b039262005dc7565b6200f707565b50926200f84d919294506200bf6a909695966201627d565b92604051906200f85d8262003eda565b6001825260203681840137516001600160a01b03166200f87d8262005d81565b526000945b80518610156200fc41576200f898868262005dc7565b51610520526200f8a9855162005ee3565b966000946200f8b9845162005ee3565b6103a05260009460005b88518110156200f98c578a896200f8f36001600160a01b036200f8e7858462005dc7565b511661052051620160b3565b15806200f943575b6200f914575b50506200f90e9062005d5b565b6200f8c3565b986200f9389162001e4582859c62009cb46200f90e9760018060a01b039262005dc7565b9790508a896200f901565b50505061271061052051101562005d8f576001600160a01b036200f968828b62005dc7565b5116600052620138966105205160031b016020528a8960406000205415156200f8fb565b50909895979498969291939660005b88518110156200fa325761271061052051101562005d8f576001600160a01b036200f9c7828b62005dc7565b5116600052620138966105205160031b01602052604060002054156200f9f9575b6200f9f39062005d5b565b6200f99b565b996200f9f3906200fa29906001600160a01b036200fa188e8d62005dc7565b511662001e45826103a05162005dc7565b9a90506200f9e8565b5098509695929190939661052051612710811015806104205262005d8f5760031b620138970154986200fa6a6200938f898c62014b6f565b6103205260006105c0526000610380525b6104205162005d8f57610380518a8110156200fb48576200fab26200facf91600061042052620138976105205160031b0162005fe6565b90546103a05160039290921b1c6001600160a01b0316906201610c565b156200faee575b6200fae46103805162005d5b565b610380526200fa7b565b6000610420526200fb0e61038051620138976105205160031b0162005fe6565b60018060a01b0391549060031b1c166200fb2f6105c0516103205162005dc7565b526200fb3e6105c05162005d5b565b6105c0526200fad6565b50979294959093985095909560005b8281106200fbf5575050506104205162005d8f5761032051516001600160401b03811162003e53576200fb9681620138976105205160031b01620060fb565b60206103205101620138976105205160031b01600052602060002060005b8381106200fbd757505050506200fbcb9062005d5b565b9492959091956200f882565b82516001600160a01b0316818301556020909201916001016200fbb4565b6200fc3b906001600160a01b036200fc0e828562005dc7565b51166200fc226105c0516103205162005dc7565b526200fc316105c05162005d5b565b6105c05262005d5b565b6200fb57565b5050939092506200bb6e9150906200f5f8565b60405162461bcd60e51b8152602060048201526016602482015275496e76616c6964206f7065726174696f6e207479706560501b6044820152606490fd5b509190506200fca18162014017565b90600681101562003fd757600281036200fcd05760405162461bcd60e51b81528062005d576004820162007b72565b600381036200fd835750303b1562003e1d5790604051809263448ce79160e01b82526044820160406004840152815180915260206064840192019060005b8181106200fd69575050506200fd3482916000946003198483030160248501526200575f565b038183305af180156200fd5d576200fd495750565b6001600160401b03811162003e5357604052565b6040513d6000823e3d90fd5b82518452869450602093840193909201916001016200fd0e565b60059150146200fd905750565b906000905b602083015180518310156200aa6d57826200fdb09162005dc7565b516020810151602681101562003fd757156200aa2a576020810151602681101562003fd7576001036200fff157604001906200fdf160c08351015162005d81565b51936200fe0860a062007caa818651015162005d81565b51916200fe19865185511462014ed7565b6200fe28865184511462014f3d565b60005b86518110156200ff7f576200fe41818662005dc7565b5161271081101562005d8f57600160ff60076200fe679360031b01541615151462014f9f565b6200fe73818562005dc7565b516200fe80828762005dc7565b519061271082101562005d8f5760066200fea09260031b01549062007106565b906200fead838862005dc7565b519161271083101562005d8f5760066200fecc9360031b015562014ff7565b6200fed8818562005dc7565b516200fee5828762005dc7565b519061271082101562005d8f576200ff26916003906001600160a01b036200ff0e868d62005dc7565b5116600052811b016020526040600020549062007106565b91906200ff34828862005dc7565b519061271082101562005d8f576200ff799362001da2926003906001600160a01b036200ff62878f62005dc7565b5116600052811b0160205260406000205562015056565b6200fe2b565b50949150916200d0cd6200ff93916201627d565b93604051926200ffa38462003ef6565b60008452600036813760005b83518110156200ffd4578062001da262007e716200ffce938762005dc7565b6200ffaf565b50945092602092506200ffe8915062005d5b565b9190506200fd95565b602081949293940151602681101562003fd75760020362010289576040018051928351906201002962007ed160a08097015162005d81565b5193825186510362010234578251845103620101de578251855103620101855760005b86518110156201016f5762010062818862005dc7565b5161271081101562005d8f5760ff6007620100849260031b01541615620150af565b62010090818862005dc7565b5161271081101562005d8f5760031b600701805460ff19166001179055620100b9818562005dc7565b51620100c6828962005dc7565b519061271082101562005d8f576005620100e49260031b0162006816565b620100f0818662005dc7565b51620100fd828962005dc7565b5161271081101562005d8f5760031b600101556201011c818762005dc7565b5162010129828962005dc7565b5161271081101562005d8f5760031b6002015562010148818862005dc7565b519061271082101562005d8f5760006006620101699360031b015562005d5b565b6201004c565b509591509350602092506200ffe8915062005d5b565b60405162461bcd60e51b815260206004820152603c602482015260008051602062016a5883398151915260448201527b1b911a5d9a59195b9915d95a59da1d081a5cc81b9bdd08195c5d585b60221b6064820152608490fd5b60405162461bcd60e51b8152602060048201526039602482015260008051602062016a588339815191526044820152781b959bdd1a5b99d41bddd95c881a5cc81b9bdd08195c5d585b603a1b6064820152608490fd5b60405162461bcd60e51b8152602060048201526038602482015260008051602062016a588339815191526044820152771b925b99195e105c9c985e481a5cc81b9bdd08195c5d585b60421b6064820152608490fd5b92916020840151602681101562003fd7576003036201088d576040840190620102b760c08351015162005d81565b5190620102ce60a062007caa818651015162005d81565b5193620102e3835185511462001c12620164ee565b620102f6835186511462001c12620164ee565b60005b835181101562010352576201030f818662005dc7565b519061271082101562005d8f5760036201034c9260018060a01b038b5116600052811b0160205262001da26040600020546200825e838a62005dc7565b620102f9565b509095919560005b87518110156201047d5762010370818662005dc7565b5161271081101562005d8f5760039060018060a01b03865116600052811b01602052620103a8604060002054620082dc838962005dc7565b90620103b5838862005dc7565b519161271083101562005d8f576003620103ec9360018060a01b03895116600052811b0160205260406000205562001c12620165f2565b620103f8818662005dc7565b5161271081101562005d8f576003906001600160a01b036201041b848c62005dc7565b5116600052811b016020526201043c60406000205462007344838962005dc7565b91906201044a828862005dc7565b519061271082101562005d8f576201047793600362001da2938d62009b938760018060a01b039262005dc7565b6201035a565b509262010495919294506200bf6a909695966201627d565b9260405190620104a58262003eda565b6001825260203681840137516001600160a01b0316620104c58262005d81565b526000945b80518610156201087957620104e0868262005dc7565b5161028052620104f1855162005ee3565b9660009462010501845162005ee3565b6103605260009460005b8851811015620105d1578a896201053b6001600160a01b036201052f858462005dc7565b5116610280516201604a565b15806201058b575b6201055c575b5050620105569062005d5b565b6201050b565b98620105809162001e4582859c62009cb4620105569760018060a01b039262005dc7565b9790508a8962010549565b50505061271061028051101562005d8f576001600160a01b03620105b0828b62005dc7565b5116600052600361028051811b016020528a89604060002054151562010543565b50909895979498969291939660005b8851811015620106745761271061028051101562005d8f576001600160a01b036201060c828b62005dc7565b5116600052600361028051811b01602052604060002054156201063b575b620106359062005d5b565b620105e0565b9962010635906201066b906001600160a01b036201065a8e8d62005dc7565b511662001e45826103605162005dc7565b9a90506201062a565b5098509695929190939661028051612710811015806102005262005d8f5760031b6004015498620106aa6200938f898c62014b6f565b610720526000610620526000610780525b6102005162005d8f57610780518a8110156201078457620106f06201070d9160006102005260046102805160031b0162005fe6565b90546103605160039290921b1c6001600160a01b0316906201610c565b156201072c575b620107226107805162005d5b565b61078052620106bb565b6000610200526201074a6107805160046102805160031b0162005fe6565b60018060a01b0391549060031b1c166201076b610620516107205162005dc7565b526201077a6106205162005d5b565b6106205262010714565b50979294959093985095909560005b8281106201082d575050506102005162005d8f5761072051516001600160401b03811162003e5357620107d08160046102805160031b01620060fb565b6020610720510160046102805160031b01600052602060002060005b8381106201080f5750505050620108039062005d5b565b949295909195620104ca565b82516001600160a01b031681830155602090920191600101620107ec565b62010873906001600160a01b0362010846828562005dc7565b51166201085a610620516107205162005dc7565b52620108696106205162005d5b565b6106205262005d5b565b62010793565b5050936200ffe89193506020925062005d5b565b90926020810151602681101562003fd75760040362010b3757620108b960c06040830151015162005d81565b5193620108ce60c06040840151015162005da5565b5190620108f560a06040620108e98282880151015162005d81565b51950151015162005da5565b51936201090a875184511462001c12620164ee565b6201091d875185511462001c12620164ee565b62010930875186511462001c12620164ee565b60005b8751811015620109995762010949818662005dc7565b519061271082101562005d8f5762010993916003906001600160a01b0362010972848d62005dc7565b5116600052811b0160205262001da26040600020546200825e838a62005dc7565b62010933565b509095919593929360005b835181101562010af457620109ba818762005dc7565b5161271081101562005d8f576003906001600160a01b03620109dd848862005dc7565b5116600052811b01602052620109fe604060002054620082dc838862005dc7565b9062010a0b838962005dc7565b519161271083101562005d8f5762010a4f926003906001600160a01b0362010a34878b62005dc7565b5116600052811b0160205260406000205562001c12620165f2565b62010a5b818762005dc7565b5161271081101562005d8f576003906001600160a01b0362010a7e848c62005dc7565b5116600052811b0160205262010a9f60406000205462007344838862005dc7565b91905062010aae818862005dc7565b519161271083101562005d8f5762010aee926003906001600160a01b0362010ad7858e62005dc7565b5116600052811b0160205260406000205562005d5b565b620109a4565b509362010b0e9192969350620083d6620083dd916201627d565b9260005b83518110156200ffd4578062001da262007e7162010b31938762005dc7565b62010b12565b926020840151602681101562003fd75760050362010cf557604084019062010b6960a062008446818551015162005d81565b519282518451036200cefb5760005b835181101562010bd15762010b8e818562005dc7565b519061271082101562005d8f57600362010bcb9260018060a01b038a5116600052811b0160205262001da26040600020546200825e838962005dc7565b62010b78565b509060005b835181101562010c745762010bec818562005dc7565b5161271081101562005d8f5760039060018060a01b03895116600052811b0160205262010c24604060002054620082dc838862005dc7565b919062010c32828762005dc7565b519061271082101562005d8f5762010c6e93600362001da29360018060a01b038d5116600052811b0160205260406000205562001c12620165f2565b62010bd6565b509492509062010c84906201627d565b906040519262010c948462003eda565b6001845260203681860137516001600160a01b031662010cb48462005d81565b526040519462010cc48662003ef6565b60008652600036813760005b83518110156200ffd4578062001da262007e7162010cef938762005dc7565b62010cd0565b926020810151602681101562003fd75760060362010ead5760400162010d2060c08251015162005d81565b519362010d3760a062008446818551015162005d81565b519285518351036200d17d5785518451036200d1305760005b865181101562010db65762010d66818562005dc7565b519061271082101562005d8f5762010db0916003906001600160a01b0362010d8f848c62005dc7565b5116600052811b0160205262001da26040600020546200825e838962005dc7565b62010d50565b509060005b865181101562010e575762010dd1818562005dc7565b5161271081101562005d8f576003906001600160a01b0362010df4848b62005dc7565b5116600052811b0160205262010e15604060002054620082dc838862005dc7565b919062010e23828762005dc7565b519061271082101562005d8f5762010e519362001da2926003906001600160a01b0362010a34878f62005dc7565b62010dbb565b50949162010e6c9193506200d0cd906201627d565b916040519462010e7c8662003ef6565b60008652600036813760005b83518110156200ffd4578062001da262007e7162010ea7938762005dc7565b62010e88565b6020810151602681101562003fd75760070362010fc0576040019262010ed860c08551015162005d81565b519162010eea60a08651015162005d81565b519451519162010f02845187511462001c12620164ee565b60005b84518110156200ffd45762010fba9062001da26001600160a01b038062010f2d848a62005dc7565b51166000528660028b62010faa62010f6d8762010f65816201388097886020526200895060ff604060002054161562001c12620165bf565b519362005dc7565b5191620089b48d6040519662010f838862003e37565b60018852886200d2ca8c60208b01946000865260408c0197885260608c01998a5262005dc7565b51910155620089cf838962005dc7565b62010f05565b6020819493940151602681101562003fd757600803620110585760c0604062010fed920151015162005d81565b519160005b8351811015620110465762011040906001600160a01b038062011016838862005dc7565b51166000526201388090816020526200d3ea600160ff6040600020541615151462001c126201651e565b62010ff2565b509260209192506200ffe89062005d5b565b6020810151602681101562003fd757600903620110db5760c0604062011082920151015162005d81565b519160005b83518110156201104657620110d5906001600160a01b0380620110ab838862005dc7565b51166000526201388090816020526200d4d9600160ff6040600020541615151462001c126201651e565b62011087565b6020810151602681101562003fd757600a036201118a57604001906201110c60a06200d56d60c08551015162005d81565b519262011121835185511462001c12620164ee565b60005b8351811015620111775762011171906001600160a01b038062011148838862005dc7565b511660005262013880806020526200d5dd600160ff6040600020541615151462001c126201651e565b62011124565b50936200ffe89193506020925062005d5b565b602081949392940151602681101562003fd757600b036201123e5760400192620111b960c08551015162005d81565b5193515191620111d1855184511462001c12620164ee565b60005b85518110156201122b57620112259062001da26001600160a01b0380620111fc848b62005dc7565b511660005262013880806020526200d6c0600160ff6040600020541615151462001c126201651e565b620111d4565b50935091602091506200ffe89062005d5b565b9091926020820151602681101562003fd757600c0362011374576060604083015101519260005b8451811015620111775760e0620112858260606040880151015162005dc7565b510151156201130457620112a662008dbd8260606040880151015162005dc7565b62013882548060001981011162005d6b57620112c86005916000190162006df9565b5001805461ff0019166101001790556201388254906000198201821062005d6b57600562008e12620112fe936000190162006df9565b62011265565b6201131c62008e3c8260606040880151015162005dc7565b62013882548060001981011162005d6b576201133e6005916000190162006db7565b5001805461ff0019166101001790556201388254906000198201821062005d6b57600562008e12620112fe936000190162006db7565b9291906020810151602681101562003fd757600d036201148857604001926020620113a460a08651015162005d81565b519451015191620113b9855184511462014c16565b60005b85518110156201122b5780620113d762011430928662005dc7565b51156201143657620113ee62008f35828962005dc7565b6201140660ff60056200d8f062008f57858c62005dc7565b6201141e60ff600562008f7062008f57858c62005dc7565b600562008f8c62008f57838a62005dc7565b620113bc565b6201144662008fc4828962005dc7565b6201145e60ff60056200d8f062008fe6858c62005dc7565b6201147660ff600562008f7062008fe6858c62005dc7565b600562008f8c62008fe6838a62005dc7565b6020819492940151602681101562003fd757600e036201154f57604001906020620114b860a08451015162005d81565b519251015193620114cd835186511462014c16565b60005b83518110156201122b5780620114eb620114f7928862005dc7565b51620114fd5762005d5b565b620114d0565b6201150d62009082828762005dc7565b6201152560ff60056200da2f62008f57858a62005dc7565b6201153d60ff6005620090ca62008f57858a62005dc7565b600562008e1262008f57838862005dc7565b906020829493940151602681101562003fd757600f0362011686576060604083015101519260005b8451811015620111775760e0620115978260606040880151015162005dc7565b510151156201161657620115b862008dbd8260606040880151015162005dc7565b62013882548060001981011162005d6b57620115da6005916000190162006df9565b5001805461ff0019166101001790556201388254906000198201821062005d6b57600562008f8c62011610936000190162006df9565b62011577565b6201162e62008e3c8260606040880151015162005dc7565b62013882548060001981011162005d6b57620116506005916000190162006db7565b5001805461ff0019166101001790556201388254906000198201821062005d6b57600562008f8c62011610936000190162006db7565b906020819493940151602681101562003fd757601003620116f7576040015190620116ba60a0608084015193015162005d81565b5193620116cf835186511462001c12620164ee565b60005b83518110156201122b578062001da26200926c620116f1938762005dc7565b620116d2565b6020819492940151602681101562003fd7576011036201195c57604001906201172b60a06200d56d60c08551015162005d81565b51936201173c835186511462014b23565b60005b8351811015620117b757620117b19062001da26001600160a01b038062011767848962005dc7565b511660005262013885806020526201178a60406000205462007344868d62005dc7565b91909262011799868b62005dc7565b511660005260205260406000205562001c12620164a4565b6201173f565b50935090620117c69062016161565b90620138865493620117de6200938f84518762014b6f565b9060009260005b87811062011941575060005b855181101562011898576000805b89811062011849575b501562011821575b6201181b9062005d5b565b620117f1565b936201181b9062011840906001600160a01b036200de96888a62005dc7565b94905062011810565b620118548162005f38565b90546001600160a01b0360039290921b1c81169062011874858b62005dc7565b5116146201188d57620118879062005d5b565b620117ff565b505060013862011808565b509550939250620118a98262005ee3565b8051906001600160401b03821162003e5357602090620118c98362006054565b0162013886600052602060002060005b83811062011923575050505060005b82811062011900575050506200ffe860209162005d5b565b6201191d9062001da26001600160a01b0362001d6d838662005dc7565b620118e8565b82516001600160a01b031681830155602090920191600101620118d9565b936200dfe362011956916200dfc58762005f38565b620117e5565b6020819492940151602681101562003fd75760120362011ba557604001906201199060a06200d56d60c08551015162005d81565b5193620119a1835186511462014b23565b60005b8351811015620119f557620119ef9062001da26001600160a01b0380620119cc848962005dc7565b511660005262013885806020526201178a604060002054620082dc868d62005dc7565b620119a4565b509350919062011a059062016161565b620138865462011a158162005ee3565b906000926000915b80831062011acb5750505062011a338262005ee3565b8051906001600160401b03821162003e535760209062011a538362006054565b0162013886600052602060002060005b83811062011aad575050505060005b82811062011a8a575050506200ffe860209162005d5b565b62011aa79062001da26001600160a01b0362001d6d838662005dc7565b62011a72565b82516001600160a01b03168183015560209092019160010162011a63565b91956000959193959760005b855181101562011b965762011aec8962005f38565b90546001600160a01b0360039290921b1c81169062011b0c838962005dc7565b51161462011b255762011b1f9062005d5b565b62011ad7565b509750956001959391955b8062011b64575b1562011b4f5762011b489062005d5b565b9162011a1d565b936200dfe362011b48916200dfc58762005f38565b5062011b708162005f38565b60018060a01b0391549060031b1c16600052620138856020526040600020541562011b37565b50979690969593919562011b30565b6020810151602681101562003fd75760130362011bfe5760408091015101519260005b845181101562011bed578062001da2620097f962011be7938862005dc7565b62011bc8565b509250906200ffe860209162005d5b565b6020810151602681101562003fd75760140362011dab576040019062011c2960c08351015162005d81565b519362011c4060a062007caa818651015162005d81565b519162011c51865185511462014ed7565b62011c60865184511462014f3d565b60005b865181101562011d565762011c79818562005dc7565b5162011c86828762005dc7565b519061271082101562005d8f57600662011ca69260031b01549062007106565b9062011cb3838862005dc7565b519161271083101562005d8f57600662011cd29360031b015562014ff7565b62011cde818562005dc7565b5162011ceb828762005dc7565b519061271082101562005d8f5762011d14916003906001600160a01b036200ff0e868d62005dc7565b919062011d22828862005dc7565b519061271082101562005d8f5762011d509362001da2926003906001600160a01b036200ff62878f62005dc7565b62011c63565b50949150916200d0cd62011d6a916201627d565b936040519262011d7a8462003ef6565b60008452600036813760005b83518110156200ffd4578062001da262007e7162011da5938762005dc7565b62011d86565b92906020840151602681101562003fd7576015036201239857604084019062011dd960c08351015162005d81565b519062011df060a062007caa818651015162005d81565b519362011e05835185511462001c12620164ee565b62011e18835186511462001c12620164ee565b60005b835181101562011e745762011e31818662005dc7565b519061271082101562005d8f57600362011e6e9260018060a01b038b5116600052811b0160205262001da26040600020546200825e838a62005dc7565b62011e1b565b509095919560005b875181101562011f9f5762011e92818662005dc7565b5161271081101562005d8f5760039060018060a01b03865116600052811b0160205262011eca604060002054620082dc838962005dc7565b9062011ed7838862005dc7565b519161271083101562005d8f57600362011f0e9360018060a01b03895116600052811b0160205260406000205562001c12620165f2565b62011f1a818662005dc7565b5161271081101562005d8f576003906001600160a01b0362011f3d848c62005dc7565b5116600052811b0160205262011f5e60406000205462007344838962005dc7565b919062011f6c828862005dc7565b519061271082101562005d8f5762011f9993600362001da2938d62009b938760018060a01b039262005dc7565b62011e7c565b509262011fb7919294506200bf6a909695966201627d565b926040519062011fc78262003eda565b6001825260203681840137516001600160a01b031662011fe78262005d81565b526000945b8051861015620108795762012002868262005dc7565b516106e05262012013855162005ee3565b9660009462012023845162005ee3565b60a05260009460005b8851811015620120f2578a896201205c6001600160a01b0362012050858462005dc7565b51166106e0516201604a565b1580620120ac575b6201207d575b5050620120779062005d5b565b6201202c565b98620120a19162001e4582859c62009cb4620120779760018060a01b039262005dc7565b9790508a896201206a565b5050506127106106e051101562005d8f576001600160a01b03620120d1828b62005dc7565b511660005260036106e051811b016020528a89604060002054151562012064565b50909895979498969291939660005b885181101562012194576127106106e051101562005d8f576001600160a01b036201212d828b62005dc7565b511660005260036106e051811b01602052604060002054156201215c575b620121569062005d5b565b62012101565b9962012156906201218b906001600160a01b036201217b8e8d62005dc7565b511662001e458260a05162005dc7565b9a90506201214b565b509850969592919093966106e051612710811015806102c05262005d8f5760031b6004015498620121ca6200938f898c62014b6f565b6107c05260006106a0526000610640525b6102c05162005d8f57610640518a811015620122a357620122106201222c9160006102c05260046106e05160031b0162005fe6565b905460a05160039290921b1c6001600160a01b0316906201610c565b156201224b575b620122416106405162005d5b565b61064052620121db565b60006102c052620122696106405160046106e05160031b0162005fe6565b60018060a01b0391549060031b1c166201228a6106a0516107c05162005dc7565b52620122996106a05162005d5b565b6106a05262012233565b50979294959093985095909560005b8281106201234c575050506102c05162005d8f576107c051516001600160401b03811162003e5357620122ef8160046106e05160031b01620060fb565b60206107c0510160046106e05160031b01600052602060002060005b8381106201232e5750505050620123229062005d5b565b94929590919562011fec565b82516001600160a01b0316818301556020909201916001016201230b565b62012392906001600160a01b0362012365828562005dc7565b5116620123796106a0516107c05162005dc7565b52620123886106a05162005d5b565b6106a05262005d5b565b620122b2565b90926020810151602681101562003fd757601603620123f65760c06040620123c4920151015162005d81565b519260005b845181101562011bed57620123f09062001da26001600160a01b0362009fe9838962005dc7565b620123c9565b6020810151602681101562003fd757601703620124535760405162461bcd60e51b8152602060048201526029602482015260008051602062016ad88339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003fd757601803620124c05760c060406201247d920151015162005d81565b5192600160ff1962013892541617620138925560005b845181101562011bed57620124ba9062001da26001600160a01b036200a0b6838962005dc7565b62012493565b6020819392930151602681101562003fd757601903620125a85760008080604080940160a0808251015180516201256f575b5050519060e082015191620125166200733d60c060018060a01b0393015162005d81565b511690602083519301915af1903d1562012566573d916201253783620040a7565b92620125468351948562003f12565b83523d6000602085013e5b156200a16b5750506200ffe860209162005d5b565b60609162012551565b6201257a9062005d81565b515162012589575b80620124f2565b8192506200733d906201259f9251015162005d81565b51903862012582565b6020810151602681101562003fd757601a03620126a257620125d360a0604080930151015162005d81565b51620125e3600382511462014b23565b620125ee8162005d81565b519162012607620125ff8362005da5565b519262005db6565b5191620126685750916200ffe8916001602094146000146200a30a576201263762012646916201388d5462007106565b6201388d5562001c126201643f565b62001da2620126596201388e54620070f3565b6201388e5562001c1262016479565b5162461bcd60e51b8152602060048201526014602482015273496e76616c6964207061796d656e74207479706560601b6044820152606490fd5b6020810151602681101562003fd757601b0362012ada57509190620126d36201388b54620025fd6200a3806201637b565b5050620126df6201643f565b506000805b612710811062012a8e575b5050620126fb62007118565b6201270a6202712a5462005ee3565b906000946000905b61271082101562012a81578160031b9460ff6007870154161562012865576000966002870154156201285457600098975b62005d8f5760048701548910156201283a5762012764896004890162005fe6565b9054600391821b1c6001600160a01b03166000818152918901602052604091829020549199916201279790889062006fbe565b9a90620127a36201643f565b620127ae9162005d28565b60009a60028b0154620127c19162006fbe565b90620127cc6201643f565b620127d79162005d28565b8260005262013887602052816000205490620127f39162007106565b909160002055620128036201643f565b6201280e9162005d28565b6201281a828962005dc7565b52620128269062005d5b565b98620128329062005d5b565b989762012743565b929095506201284c9196975062005d5b565b909462012712565b929095506201284c91965062005d5b565b95969392509350505b620128798262005ee3565b9160009160005b828110620129eb57505050620138885491620128a16200938f848462014b6f565b926000906000905b808210620129ce57505060005b838110620129385750508251929150506001600160401b03821162003e5357602090620128e38362006018565b0162013888600052602060002060005b8381106201291a57505050506200ffe860209160006201388d5560006201388e5562005d5b565b82516001600160a01b031681830155602090920191600101620128f3565b6000805b83811062012986575b50156201295e575b620129589062005d5b565b620128b6565b9062012958906201297d906001600160a01b03620093f6858762005dc7565b9190506201294d565b6001600160a01b03806201299b858862005dc7565b511690620129aa838a62005dc7565b511614620129c357620129bd9062005d5b565b6201293c565b505060013862012945565b909162009f67620129e4916200974e8562005f1b565b90620128a9565b6000805b85811062012a39575b501562012a11575b62012a0b9062005d5b565b62012880565b9262012a0b9062012a30906001600160a01b03620093f6878662005dc7565b93905062012a00565b6001600160a01b038062012a4e858762005dc7565b51169062012a5d838a62005dc7565b51161462012a765762012a709062005d5b565b620129ef565b5050600138620129f8565b939495929150506201286e565b8060039594951b9060ff6007830154161562012ad0576200a7b662007aff62001da2946200a7aa62012ac79560026200a7a08762006f61565b939293620126e4565b50939293620126ef565b6020810151602681101562003fd757601c0362012b375760405162461bcd60e51b8152602060048201526029602482015260008051602062016af88339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003fd757601d0362012b5d575b506200ffe860209162005d5b565b6020810151602681101562003fd757601e1462012b4f576020810151602681101562003fd757601f0362012bae5760209162012ba66200a89360406200ffe89401515162005d81565b915062012b4f565b6020810151602681101562003fd75760200362012bd4575b506200ffe860209162012ba6565b6020810151602681101562003fd75760211462012bc6576020810151602681101562003fd75760220362012c2a57506200ffe860209160ff19620138925416620138925562012c22620060e7565b915062012bc6565b6020810151602681101562003fd75760230362012c50575b506200ffe860209162012c22565b6020810151602681101562003fd75760241462012c42576020810151602681101562003fd75760251462012c42579290916020840151602681101562003fd7576015036200fc5457604084019062012cad60c08351015162005d81565b519062012cc460a062007caa818651015162005d81565b519362012cd9835185511462001c12620164ee565b62012cec835186511462001c12620164ee565b60005b835181101562012d485762012d05818662005dc7565b519061271082101562005d8f57600362012d429260018060a01b038b5116600052811b0160205262001da26040600020546200825e838a62005dc7565b62012cef565b509095919560005b875181101562012e735762012d66818662005dc7565b5161271081101562005d8f5760039060018060a01b03865116600052811b0160205262012d9e604060002054620082dc838962005dc7565b9062012dab838862005dc7565b519161271083101562005d8f57600362012de29360018060a01b03895116600052811b0160205260406000205562001c12620165f2565b62012dee818662005dc7565b5161271081101562005d8f576003906001600160a01b0362012e11848c62005dc7565b5116600052811b0160205262012e3260406000205462007344838962005dc7565b919062012e40828862005dc7565b519061271082101562005d8f5762012e6d93600362001da2938d62009b938760018060a01b039262005dc7565b62012d50565b509262012e8b919294506200bf6a909695966201627d565b926040519062012e9b8262003eda565b6001825260203681840137516001600160a01b031662012ebb8262005d81565b526000945b80518610156201326f5762012ed6868262005dc7565b516105805262012ee7855162005ee3565b9660009462012ef7845162005ee3565b6104c05260009460005b885181101562012fc7578a8962012f316001600160a01b0362012f25858462005dc7565b5116610580516201604a565b158062012f81575b62012f52575b505062012f4c9062005d5b565b62012f01565b9862012f769162001e4582859c62009cb462012f4c9760018060a01b039262005dc7565b9790508a8962012f3f565b50505061271061058051101562005d8f576001600160a01b0362012fa6828b62005dc7565b5116600052600361058051811b016020528a89604060002054151562012f39565b50909895979498969291939660005b88518110156201306a5761271061058051101562005d8f576001600160a01b0362013002828b62005dc7565b5116600052600361058051811b016020526040600020541562013031575b6201302b9062005d5b565b62012fd6565b996201302b9062013061906001600160a01b03620130508e8d62005dc7565b511662001e45826104c05162005dc7565b9a905062013020565b5098509695929190939661058051612710811015806101a05262005d8f5760031b6004015498620130a06200938f898c62014b6f565b6105e05260006101805260006107a0525b6101a05162005d8f576107a0518a8110156201317a57620130e6620131039160006101a05260046105805160031b0162005fe6565b90546104c05160039290921b1c6001600160a01b0316906201610c565b1562013122575b620131186107a05162005d5b565b6107a052620130b1565b60006101a052620131406107a05160046105805160031b0162005fe6565b60018060a01b0391549060031b1c1662013161610180516105e05162005dc7565b52620131706101805162005d5b565b610180526201310a565b50979294959093985095909560005b82811062013223575050506101a05162005d8f576105e051516001600160401b03811162003e5357620131c68160046105805160031b01620060fb565b60206105e0510160046105805160031b01600052602060002060005b838110620132055750505050620131f99062005d5b565b94929590919562012ec0565b82516001600160a01b031681830155602090920191600101620131e2565b62013269906001600160a01b036201323c828562005dc7565b511662013250610180516105e05162005dc7565b526201325f6101805162005d5b565b6101805262005d5b565b62013189565b5050936200ffe891935060209250915062012c42565b82516001600160a01b0316818301556020909201916001016200b4b7565b82516001600160a01b0316818301556020909201916001016200b362565b600191820180546001600160a01b03909216848601559390910192906200b2aa565b620271246000526201330b9060008051602062016a9883398151915290810190830162005fff565b386200b26a565b600180826201332382948662013761565b019201920191906200b229565b6202712360005260008051602062016a18833981519152908282015b81830181106201335e5750506200b1ed565b806201336c600192620063cd565b016201334c565b600191820180546001600160a01b03909216848601559390910192906200b1bb565b62027122600052620133bd90600080516020620169f883398151915290810190830162005fff565b386200b17b565b82516001600160a01b0316818301556020909201916001016200b03d565b620133fe906202711d6000528484600020918201910162005fff565b386200b02c565b82516001600160a01b0316818301556020909201916001016200ae4d565b6201343f90620271146000528484600020918201910162005fff565b386200ae3c565b80620134689160031b600160ff6007830154161515146201346e575062005d5b565b6200ad8c565b6201348260048201620138978301620138fa565b6201389a8101600160ff19825416179055805481620138930155600181015462013894820155600281015462013895820155620134c86005820162013898830162013761565b620138996006820154910155386200a30a565b6006602082620134ef60019451866200692c565b019201920191906200ab79565b600681810204810362005d6b57600683810204830362005d6b57620271156000527f0f9b10e190177c3c56fc6ce7689c8130c567df57aa02c08e7a090a59992adf926006840281015b82600602820181106201355a5750506200ab65565b80600060069255600060018201556201357660028201620065c9565b600060038201556201358b60048201620063cd565b600060058201550162013545565b6006602082620135ad60019451866200692c565b019201920191906200aae9565b8060060290600682040362005d6b578260060260068104840362005d6b576000906202711682526020822092830192015b828110620135fb5750506200aad5565b8082600692558260018201556201361560028201620065c9565b8260038201556201362960048201620063cd565b82600582015501620135eb565b608460405162461bcd60e51b8152602060048201526040602482015260008051602062016ab883398151915260448201527f656d2073686f756c64206e6f742072657475726e20766f7465206e65656465646064820152fd5b60405162461bcd60e51b8152602060048201526047602482015260008051602062016ab883398151915260448201527f656d2073686f756c64206e6f742072657475726e206120766f74696e672072756064820152661b19481b1a5cdd60ca1b608482015260a490fd5b8181146201375d578154916001600160401b03831162003e53576201371f8383620060fb565b60005260206000209060005260206000208154916000925b84841062013746575050505050565b600180919201938454928185015501929062013737565b5050565b908082146201375d576201377681546200533f565b906001600160401b03821162003e53578190620137a0826201379986546200533f565b86620067cc565b600090601f8311600114620137d957600092620137cd5750508160011b916000199060031b1c1916179055565b0154905038806200685f565b81526020808220858352818320935090601f1985169083905b8282106201382e5750509084600195949392106201381457505050811b019055565b015460001960f88460031b161c19169055388080620068ac565b8495819295850154815560018091019601940190620137f2565b8181146201375d578154916201385f83836200645e565b6000526020600020906000526020600020906000905b838210620138835750505050565b80620138926001928562013761565b92810192918101910162013875565b8181146201375d57815491620138b88383620064ec565b6000526020600020906000526020600020906000905b838210620138dc5750505050565b80620138eb60019285620136f9565b928101929181019101620138ce565b8181146201375d578154916001600160401b03831162003e5357620139208383620060fb565b60005260206000209060005260206000208154916000925b84841062013947575050505050565b600191820180546001600160a01b039092168486015593909101929062013938565b8181146201375d57815491620139808383620064ec565b6000526020600020906000526020600020906000905b838210620139a45750505050565b80620139b360019285620138fa565b92810192918101910162013996565b8181146201375d57815491620139d983836200657a565b6000526020600020906000526020600020906000905b838210620139fd5750505050565b8062013a0c6001928562013848565b928101929181019101620139ef565b8181146201375d5781549162013a32838362006685565b6000526020600020906000526020600020906000905b83821062013a565750505050565b80600191840362013a73575b600880910193019101909162013a48565b8054845562013ab28280860190830160ff9062013a9482825416846200676f565b62013aa682825460081c168462006789565b5460101c1690620067aa565b62013ac46002808301908601620136f9565b600380850190820180820362013add575b505062013a62565b62013ae89162013848565b62013afa6004808301908601620138a1565b62013b0c600580830190860162013969565b62013b1e6006808301908601620139c2565b62013b30600780830190860162013761565b388062013ad5565b919062006e725780820362013b4b575050565b60ff600580620054c09462013b64848654168262006756565b6001850154600182015562013b80600286016002830162013a1b565b6003850154600382015562013b9c600486016004830162013761565b01920162013bae8282541684620068e9565b62013bc082825460081c1684620068fa565b5460101c169062006912565b908082146201375d57908154906000915b6064831062013bec5750505050565b600180919401928354948184015501919262013bdd565b906201388254602060009301908151519062013c1f8262003f36565b9162013c2f604051938462003f12565b80835262013c40601f199162003f36565b0136602084013762013c558351518262006fbe565b901562013fbf5762013c679062005ee3565b9085928451511562013fb65762013c7e8262005ee3565b965b85515181101562013dff5760008080805b86811062013d165750905062013cb38162013cad858762005dc7565b62005564565b600681101562003fd75760031462013cd8575b5062013cd29062005d5b565b62013c80565b6000905b80821062013ceb575062013cc6565b90956200976c62013d0f9162013d02898d62005dc7565b5162001e45828a62005dc7565b9062013cdc565b62013d2f8162013d28878d5162005dc7565b51620143d8565b9390948083118062013deb575b1562013da257505091838562013d98575b600681101562003fd75760038e911462013d78575b505062013d6f9062005d5b565b91909162013c91565b9462013d8f9162001e458262013d6f959862005dc7565b93908c62013d62565b6000955062013d4d565b809492959195148062013dd7575b1562013d6257600681101562003fd75760038e911462013d7857505062013d6f9062005d5b565b50600681101562003fd75780151562013db0565b50600686101562003fd75785151562013d3c565b5093505090929350600093845b835186101562013f515762013e2c62013e26878662005dc7565b62006748565b9060068083101562003fd757600292830362013e5757505062013e50909562005d5b565b9462013e0c565b62013e6762013e26898862005dc7565b928184101562003fd75760018094148062013f3d575b1562013e925750505062013e50909562005d5b565b62013ea762013e268a899b9694959b62005dc7565b928084101562003fd7576004809414928362013f11575b508262013ee6575b505062013eda575b5062013e509062005d5b565b955062013e5062013ece565b90915088101562013efc57871415388062013ec6565b602182634e487b7160e01b6000525260246000fd5b908093508a101562013f2857891415913862013ebe565b602184634e487b7160e01b6000525260246000fd5b508183101562003fd7578083141562013e7d565b925092909350600682101562003fd7576003820362013fad575b62013f768162005ee3565b9360005b82811062013f89575050509190565b8062013f9a62013fa7928462005dc7565b5162001e45828962005dc7565b62013f7a565b50600062013f6b565b50909392505050565b60405162461bcd60e51b815260206004820152602a60248201527f546865206c656e677468206f6620766f74696e672072756c65206c697374206960448201526973206f766572666c6f7760b01b6064820152608490fd5b9062013883546020600093019081515190620140338262003f36565b9162014043604051938462003f12565b80835262014054601f199162003f36565b01366020840137620140698351518262006fbe565b901562013fbf576201407b9062005ee3565b9085928451511562013fb657620140928262005ee3565b965b855151811015620142005760008080805b8681106201411757509050620140c18162013cad858762005dc7565b600681101562003fd757600314620140e6575b50620140e09062005d5b565b62014094565b6000905b808210620140f95750620140d4565b90956200976c620141109162013d02898d62005dc7565b90620140ea565b620141308162014129878d5162005dc7565b5162014474565b93909480831180620141ec575b15620141a357505091838562014199575b600681101562003fd75760038e911462014179575b5050620141709062005d5b565b919091620140a5565b94620141909162001e458262014170959862005dc7565b93908c62014163565b600095506201414e565b8094929591951480620141d8575b156201416357600681101562003fd75760038e911462014179575050620141709062005d5b565b50600681101562003fd757801515620141b1565b50600686101562003fd7578515156201413d565b5093505090929350600093845b835186101562014322576201422762013e26878662005dc7565b9060068083101562003fd7576002928303620142525750506201424b909562005d5b565b946201420d565b6201426262013e26898862005dc7565b928184101562003fd7576003809414806201430e575b156201428d575050506201424b909562005d5b565b620142a262013e268a899b9694959b62005dc7565b928084101562003fd75760058094149283620142f7575b5082620142e1575b5050620142d5575b506201424b9062005d5b565b95506201424b620142c9565b90915088101562003fd7578714153880620142c1565b908093508a101562003fd7578914159138620142b9565b508183101562003fd7578083141562014278565b925092909350600682101562003fd7576003820362014371575b620143478162005ee3565b9360005b8281106201435a575050509190565b8062013f9a6201436b928462005dc7565b6201434b565b5060006201433c565b156201438257565b60405162461bcd60e51b815260206004820152602860248201527f506c7567696e466163746f72793a20706c7567696e20696e646578206f7574206044820152676f662072616e676560c01b6064820152608490fd5b9091600080938193620143f1620138825483106201437a565b60ff6005620144008462006df9565b50015460081c1615620144685782826201441c926001620145e0565b62014428575b50929190565b80945060019293506201443c915062006df9565b5001549060036201445d60ff620144538662006df9565b5054169462006df9565b500154913862014422565b50509150915080918190565b90916000809381936201448d620138835483106201437a565b60ff60056201449c8462006db7565b50015460081c161562014468578282620144b79282620145e0565b620144c25750929190565b8094506001929350620144d6915062006db7565b5001549060036201445d60ff620144ed8662006db7565b5054169462006db7565b15620144ff57565b60405162461bcd60e51b815260206004820152603160248201527f436865636b696e6720636f6e646974696f6e206578703a20706c7567696e20696044820152706e646578206f7574206f662072616e676560781b6064820152608490fd5b156201456657565b60405162461bcd60e51b815260206004820152602f60248201527f436865636b696e6720636f6e646974696f6e206578703a206e6f646520696e6460448201526e6578206f7574206f662072616e676560881b6064820152608490fd5b805482101562005d8f5760005260206000209060031b0190600090565b9092919080156201494f57620145fc62013882548310620144f7565b6201461860026201460d8462006df9565b50015484106201455e565b801562014931576201464860016201463f856002620146378762006df9565b5001620145c3565b50015460ff1690565b620146538162004f79565b8062014663575050505050600090565b6201466e8162004f79565b6003810362014681575050505050600190565b6201468c8162004f79565b600481036201469f575050505050600090565b620146aa8162004f79565b600190808203620146c357505092620057c29362014977565b909293620146d18262004f79565b6002809214620146e7575b505050505050600090565b821562014914576201471084620147048385620146378a62006df9565b50015460081c60ff1690565b925b60009586865b620148a2575b506201472a8762005ee3565b9760005b88811062014845575050505050620147468262003fcc565b818303620147a557505091906000915b818310620147645750505090565b9091928062014782575b6201477a909362005d5b565b919062014756565b506201477a6201479d62014797858462005dc7565b51151590565b90506201476e565b909150620147b38262003fcc565b81036201480c57509060009182915b818310620147d05750505090565b9091928015620147ef575b620147e7909362005d5b565b9190620147c2565b50620147e76201480462014797858462005dc7565b9050620147db565b600391506201481b8162003fcc565b146201482e5750388080808080620146dc565b6201484162014797620057c29262005d81565b1590565b808a62014881620148786201486e848b620148668c82620146378d62006db7565b500162005fe6565b90549060031b1c90565b868689620145e0565b620148956201489c9462001da29362005dc7565b9015159052565b6201472e565b84620148b48582620146378662006db7565b5001548110156201490e57620148da6201486e8287620148668882620146378962006db7565b620148f3575b620148ec879162005d5b565b9062014718565b96620148ec62014904889262005d5b565b98915050620148e0565b6201471e565b6201492a84620147048385620146378a62006db7565b9262014712565b6201494960016201463f856002620146378762006db7565b62014648565b6201496062013883548310620144f7565b6201497160026201460d8462006db7565b62014618565b9092916003620149c9918360001462014a515760ff6001620149a0876002620146378662006df9565b50015460101c16945b841562014a4057600262014637620149c19362006df9565b500162005694565b91603d81101562003fd757602c810362014a10575050620149f36200733d60208093015162005d81565b51910151602681101562003fd75762014a0c906201668a565b1490565b9092906001810362014a255750505050600090565b60031462014a3557505050600090565b620057c29262014ac1565b600262014637620149c19362006db7565b60ff600162014a67876002620146378662006db7565b50015460101c1694620149a9565b1562014a7d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f70657261746f722061646472657373206973206e6f742070726f76696465646044820152fd5b919060406200733d920162014adb60018251511462014a75565b62014af6600162014aed835162005d81565b51511462014a75565b516001600160a01b0392839162014b0e919062005d81565b5116921562014b1d5751161490565b51161490565b1562014b2b57565b60405162461bcd60e51b815260206004820152601c60248201527b496e76616c6964206e756d626572206f6620706172616d657465727360201b6044820152606490fd5b9190820180921162005d6b57565b62014b888162004f79565b62014b966200dc9a62016621565b62014ba18162004f79565b6001810362014bc0575062014bb96200dcc662016621565b6201388b55565b62014bcb8162004f79565b6002810362014bdc57506201388c55565b62014be78162004f79565b6003810362014bf857506201388d55565b8062014c0660049262004f79565b1462014c0f5750565b6201388e55565b1562014c1e57565b60405162461bcd60e51b815260206004820152604d60248201527f546865206c656e677468206f662074686520706c7567696e20696e646578657360448201527f20617272617920616e642074686520626f6f6c65616e206172726179206d757360648201526c74206265207468652073616d6560981b608482015260a490fd5b1562014ca757565b60405162461bcd60e51b815260206004820152602260248201527f496e76616c696420706c7567696e20696e64657820746f20626520656e61626c604482015261195960f21b6064820152608490fd5b1562014cff57565b60405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c6564206973206e6f742060448201526a1a5b9a5d1a585b1a5e995960aa1b6064820152608490fd5b1562014d6057565b60405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c656420697320616c726560448201526a18591e48195b98589b195960aa1b6064820152608490fd5b1562014dc157565b60405162461bcd60e51b815260206004820152602360248201527f496e76616c696420706c7567696e20696e64657820746f2062652064697361626044820152621b195960ea1b6064820152608490fd5b1562014e1a57565b60405162461bcd60e51b815260206004820152602c60248201527f54686520706c7567696e20746f2062652064697361626c6564206973206e6f7460448201526b081a5b9a5d1a585b1a5e995960a21b6064820152608490fd5b1562014e7c57565b60405162461bcd60e51b815260206004820152602d60248201527f54686520706c7567696e20746f2062652064697361626c656420697320616c7260448201526c1958591e48191a5cd8589b1959609a1b6064820152608490fd5b1562014edf57565b60405162461bcd60e51b815260206004820152603060248201527f546865206c656e677468206f662074617267657420616e6420746f6b656e436c60448201526f185cdcc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b1562014f4557565b60405162461bcd60e51b815260206004820152602c60248201527f546865206c656e677468206f662074617267657420616e6420616d6f756e742060448201526b1a5cc81b9bdd08195c5d585b60a21b6064820152608490fd5b1562014fa757565b60405162461bcd60e51b815260206004820152602260248201527f54686520746f6b656e20636c617373206973206e6f7420696e697469616c697a604482015261195960f21b6064820152608490fd5b1562014fff57565b60405162461bcd60e51b815260206004820152602960248201527f54686520746f74616c20737570706c79206f662074686520746f6b656e206973604482015268206f766572666c6f7760b81b6064820152608490fd5b156201505e57565b60405162461bcd60e51b8152602060048201526024808201527f5468652062616c616e6365206f662074686520746f6b656e206973206f766572604482015263666c6f7760e01b6064820152608490fd5b15620150b757565b606460405162461bcd60e51b815260206004820152602060248201527f54686520746f6b656e20697320616c726561647920696e697469616c697a65646044820152fd5b60408101906201511060c08351015162005d81565b51916201513260a062015127818451015162005d81565b519251015162005da5565b519362015147845183511462001c12620164ee565b6201515a845186511462001c12620164ee565b60005b8451811015620151b75762015173818462005dc7565b519061271082101562005d8f57620151b19160018060a01b03865116600052600390811b0160205262001da26040600020546200825e838a62005dc7565b6201515d565b5092919360005b8351811015620152e257620151d4818462005dc7565b5190612710918281101562005d8f5760018060a01b03908189511660005260039081602091811b01815262015214604060002054620082dc868962005dc7565b9062015221868a62005dc7565b51918783101562005d8f57846201524e93878f5116600052811b01845260406000205562001c12620165f2565b6201525a848862005dc7565b518581101562005d8f5782908462015273878c62005dc7565b5116600052811b0181526201529360406000205462007344868962005dc7565b919092620152a2868a62005dc7565b519687101562005d8f57620152dc9662001da295620152c2888d62005dc7565b5116600052811b01905260406000205562001c1262016657565b620151be565b50506200d0cd620152f3916201627d565b9060405193620153038562003eda565b60018552602036818701376001600160a01b036108208190529051166201532a8562005d81565b526000935b81518510156201564d5762015345858362005dc7565b519462015353845162005ee3565b9160009362015363825162005ee3565b610860528496855b87518110156201540c57620153926108205162015389838b62005dc7565b51168b6201604a565b1580620153d4575b620153b1575b620153ab9062005d5b565b6201536b565b95620153cb620153ab91610820516200a62f8a8c62005dc7565b969050620153a0565b506127108a101562005d8f5761082051620153f0828a62005dc7565b511660005260038a811b0160205260406000205415156201539a565b509793929096949195976000986127108610159560031b9860038a019a5b8951811015620154a6578762005d8f57610820516201544a828c62005dc7565b51166000528b6020526040600020541562015471575b6201546b9062005d5b565b6201542a565b976201549d6201546b918b6201548c8c610820519262005dc7565b511662001e45826108605162005dc7565b98905062015460565b50949591939650985096909596806108805262005d8f5760040180610800525495620154d76200938f868962014b6f565b6107e05260009788610840525b6108805162005d8f57610840518881101562015582576201551362015529916000610880526108005162005fe6565b6108205191549060031b1c16610860516201610c565b1562015548575b6201553e6108405162005d5b565b61084052620154e4565b976201557b9062015560610840516108005162005fe6565b6108205191549060031b1c1662001e45826107e05162005dc7565b9762015530565b5095939096509690969391936000915b8383106201561c57505050506108805162005d8f576107e051516001600160401b03811162003e5357620155ca8161080051620060fb565b60206107e05101610800516000526020600020600061082051905b84811062015605575050505050620155fd9062005d5b565b93926201532f565b6001906020838651169501948185015501620155e5565b62009f6762015646916108205162015635868662005dc7565b511662001e45826107e05162005dc7565b9162015592565b5050509050565b62013884805482101562005d8f576000526007602060002091020190600090565b815180519192916001600160401b03811162003e5357620156978185620060fb565b6020809201846000528260002060005b8381106201570e575050505060c082600692620054c09594015160018501556040810151600285015560608101516003850155620156ef6080820151151560048601620068e9565b6201570260a08201516005860162006816565b015115159101620068e9565b82518282015591840191600101620156a7565b620138848054600160401b81101562003e5357620157459160018201905562015654565b91909162006e7257620054c09162015675565b62013890908154600160401b81101562003e53576001810180845581101562005d8f57620054c09260005260206000200162006816565b90806201579a575050565b620054c091600052601f6020600020910160051c81019062005fff565b90600160401b811162003e53578154818355808210620157d657505050565b620054c092600052601f6020600020918180850160051c840194168062015805575b500160051c019062005fff565b600019908186019182549160200360031b1c16905538620157f8565b9060031b60ff811b9283911b169119161790565b6000926201584f62015848859462015654565b50620054dd565b9380935b8551518510156201593d575061271084101562005d8f5760039380851b9460018060a01b038516600052602090860181526201589c604096600188600020549101549062006fbe565b93849115620159085790620158b19162007106565b969015620158ce575050620158c69062005d5b565b939062015853565b60649250519062461bcd60e51b825260048201526014602482015273746f74616c20706f776572206f766572666c6f7760601b6044820152fd5b875162461bcd60e51b815260048101849052600e60248201526d706f776572206f766572666c6f7760901b6044820152606490fd5b93505092505090565b156201594e57565b60405162461bcd60e51b815260206004820152601360248201527263757272656e74596573206f766572666c6f7760681b6044820152606490fd5b6001620159968262015654565b5001546202712e546000928184526202712b9081602052620159bf816004604088200162005fe6565b90549060031b1c9183865280602052620159e0826005604089200162005fe6565b90549060031b1c93865260205260ff600662015a1462015a06848360408b200162005fe6565b90549060031b1c9362015654565b5001541662015a62575062015a52926200044f62015a44938362015a3c62015a4a9562006f88565b969062015946565b62014b6f565b929062015946565b111562015a5c5790565b50600190565b6200eec6925062015a529362015a7c62015a4a9362006f88565b949062015946565b9092919262015a94825162005ee3565b60009162015aa3815162005ee3565b8390845b865181101562015b3e576001600160a01b0362015aca8162015389848b62005dc7565b158062015b09575b62015aea575b5062015ae49062005d5b565b62015aa7565b819662015b0191620093f662015ae4948b62005dc7565b959062015ad8565b506127108a101562005d8f578062015b22838a62005dc7565b511660005260038a811b01602052604060002054151562015ad2565b509295919694509260005b875181101562015bbf5761271086101562005d8f576001600160a01b038062015b73838b62005dc7565b5116600052600387811b016020526040600020541562015ba0575b5062015b9a9062005d5b565b62015b49565b819562015bb7916200de9662015b9a948c62005dc7565b949062015b8e565b509250945092612710831015938462005d8f5760049586600395861b019687549462015bf06200938f828862014b6f565b9460009689889a5b62015d6457818b101562015c9957506000998b62015c3362015c1b838362005fe6565b90546001600160a01b0392918e1b1c82168a6201610c565b1562015c56575b50509062015c4b8b94939262005d5b565b9a9091929362015bf8565b91998c95949392909162015c6c908c9062005fe6565b9054908d1b1c1662015c7f828b62005dc7565b5262015c8b9062005d5b565b9890919293508b3862015c3a565b9697949a98505091975092506000915b83831062015d3f575050505062015d2a578051926001600160401b03841162015d15575062015cd98383620060fb565b602080910191600052806000209060005b84811062015cf9575050505050565b83516001600160a01b0316838201559281019260010162015cea565b604190634e487b7160e01b6000525260246000fd5b603283634e487b7160e01b6000525260246000fd5b62015d5d9062009f67906001600160a01b036200a62f868662005dc7565b9162015ca9565b603285634e487b7160e01b6000525260246000fd5b9092919262015d89825162005ee3565b60009162015d98815162005ee3565b8390845b865181101562015e3f576001600160a01b0362015dc88162015dbf848b62005dc7565b51168b620160b3565b158062015e07575b62015de8575b5062015de29062005d5b565b62015d9c565b819662015dff91620093f662015de2948b62005dc7565b959062015dd6565b506127108a101562005d8f578062015e20838a62005dc7565b5116600052620138968a60031b01602052604060002054151562015dd0565b509295919694509260005b875181101562015ec35761271086101562005d8f576001600160a01b038062015e74838b62005dc7565b5116600052620138968760031b016020526040600020541562015ea4575b5062015e9e9062005d5b565b62015e4a565b819562015ebb916200de9662015e9e948c62005dc7565b949062015e92565b509250945092612710831015938462005d8f5762013897600394851b019586549362015ef46200938f828762014b6f565b936000958887995b62005d8f57818a101562015f9d57506000988a62015f3762015f1f838362005fe6565b90546001600160a01b0392918d1b1c8216896201610c565b1562015f5a575b50509062015f4f8a94939262005d5b565b999091929362015efc565b91988b95949392909162015f70908b9062005fe6565b9054908c1b1c1662015f83828a62005dc7565b5262015f8f9062005d5b565b9790919293508a3862015f3e565b96945050919795509295506000915b83831062016017575050505062005d8f578151916001600160401b03831162003e535762015fdb8383620060fb565b602080910191600052806000209060005b84811062015ffb575050505050565b83516001600160a01b0316838201559281019260010162015fec565b620160439062009f67906001600160a01b0362016035868662005dc7565b511662001e45828b62005dc7565b9162015fac565b9060005b61271083101562005d8f576003600484821b018054831015620160a95782620160779162005fe6565b9054911b1c6001600160a01b0390811690831614620160a1576201609b9062005d5b565b6201604e565b505050600190565b5050505050600090565b9060005b61271083101562005d8f5760036201389784821b018054831015620160a95782620160e29162005fe6565b9054911b1c6001600160a01b0390811690831614620160a157620161069062005d5b565b620160b7565b9060005b82518110156201614b576001600160a01b03806201612f838662005dc7565b511690831614620160a157620161459062005d5b565b62016110565b505050600090565b801562005d6b576000190190565b9081519060005b60001983810184811162005d6b578210156201622f576001820180831162005d6b575b848110620161a6575050620161a09062005d5b565b62016168565b6001600160a01b0380620161bb858962005dc7565b511681620161ca848a62005dc7565b511614620161e5575b50620161df9062005d5b565b6201618b565b828692960182811162005d6b57620161df9262016228926201620c62016221938b62005dc7565b51166201621a898b62005dc7565b5262016153565b9562016153565b90620161d3565b5050906201623d8162005ee3565b9060005b81811062016250575090925050565b62016277906001600160a01b0362016269828862005dc7565b511662001e45828662005dc7565b62016241565b80519160005b60001984810185811162005d6b5782101562016335576001820180831162005d6b575b858110620162c1575050620162bb9062005d5b565b62016283565b620162cd838662005dc7565b51620162da828762005dc7565b5114620162f3575b620162ed9062005d5b565b620162a6565b948181019080821162005d6b57620163266201632d9162016319620162ed948962005dc7565b516201621a8a8a62005dc7565b9662016153565b9050620162e2565b50509091620163448162005ee3565b9060005b81811062016357575090925050565b806201636862016375928762005dc7565b5162001e45828662005dc7565b62016348565b604051620163898162003e37565b604481527f496e76616c6964206469766964656e64207065726d797269616420706572207460208201527f72616e73616374696f6e2e2053686f756c64206265206c657373207468616e206040820152630313030360e41b606082015290565b604051620163f78162003ebe565b603281527f4e6f20656e6f756768206e756d626572206f66207472616e73616374696f6e7360208201527108199bdc88191a5d9a59195b991cc81e595d60721b604082015290565b6040516201644d8162003eda565b601c81527b6469766964656e6473206f7065726174696f6e206f766572666c6f7760201b602082015290565b604051620164878162003eda565b600d81526c2ab735b737bbb71022b93937b960991b602082015290565b604051620164b28162003ebe565b602681527f4572726f7220696e20776974686472617761626c6520636173682063616c63756020820152653630ba34b7b760d11b604082015290565b604051620164fc8162003eda565b6012815271496e76616c696420506172616d657465727360701b602082015290565b6040516201652c8162003eda565b601581527413595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b602082015290565b6040516201655f8162003eda565b601781527613595b58995c881a5cc81b9bdd081cdd5cdc195b991959604a1b602082015290565b604051620165948162003eda565b601b81527a13595b58995c881a5cc8185b1c9958591e481cdd5cdc195b991959602a1b602082015290565b604051620165cd8162003eda565b60158152744d656d62657220616c72656164792065786973747360581b602082015290565b604051620166008162003eda565b60118152704e6f20656e6f7567682062616c616e636560781b602082015290565b6040516201662f8162003eda565b6018815277125b9d985b1a59081c185c985b595d195c881d1bc81cd95d60421b602082015290565b604051620166658162003eda565b6015815274546f6b656e20616d6f756e74206f766572666c6f7760581b602082015290565b602681101562003fd757801562016878576001811462015a5c57600281146201687257600381146201686c57600481146201686657600581146201686057600681146201685a57600781146201685457600881146201684e57600981146201684857600a81146201684257600b81146201683c57600c81146201683657600d81146201683057600e81146201682a57600f81146201682457601081146201681e57601181146201681857601281146201681257601381146201680c5760148114620168065760158114620168005760188114620167fa5760178114620167f45760198114620167ee57601a8114620167e857601b8114620167e257601c8114620167dc57601d8114620167d657601e8114620167d057601f8114620167ca5760208114620167c457602114620167bf57600090565b602190565b50602090565b50601f90565b50601e90565b50601d90565b50601c90565b50601b90565b50601a90565b50601990565b50601790565b50601690565b50601590565b50601490565b50601390565b50601290565b50601190565b50601090565b50600f90565b50600e90565b50600d90565b50600c90565b50600b90565b50600a90565b50600990565b50600890565b50600790565b50600690565b50600590565b50600490565b50600390565b50600290565b50600090565b90815181101562005d8f570160200190565b604051906201689f8262003ebe565b60288252604036602084013760005b60148110620168bc57505090565b60139080820391821162005d6b57600382901b916001600160fd1b0381160362005d6b5760ff80831162005d6b57600192620169059084901b6001600160a01b03861662006135565b60f081168282160391821162005d6b57620169299060f41b600f60f81b1662016992565b82841b916001600160ff1b038416840362005d6b57620169669160001a6201695284896201687e565b5360f81b6001600160f81b03191662016992565b92810180911162005d6b57620169856201698c9360001a91866201687e565b5362005d5b565b620168ae565b60f81c600a811015620169bb5760300160ff811162005d6b5760f81b6001600160f81b03191690565b60570160ff811162005d6b5760f81b6001600160f81b0319169056fe546865206c656e677468206f662061646472657373657320616e6420746f6b651f4fe3ad533e3985b88710ce05a205152f02825e155777f3bcb8b3bbfcfb03a24ad859a97f543436e70c22b09d31fb4c7b9e987d7a008c98817c9b50a97b1224546865206c656e677468206f6620746f6b656e436c61737320616e6420746f6b546865206c656e677468206f6620746f6b656e496e666f20616e6420746f6b658e71c125ecfe4aeed61c8cf4b09183dd0bf2a3230d826486f04e5f6f0de58e2c18baa939e2e21be0e012ec26e9ec87e9e6faa065bd9f5835250457786300ece8546865206265666f7265206f7065726174696f6e20706c7567696e20737973745265736572766564206f70636f6465206964203233206973206e6f7420696d705265736572766564206f70636f6465206964203238206973206e6f7420696d70546865206c656e677468206f662061646472657373657320616e6420616d6f75a2646970667358221220a6009b1a819644fea5bd74549fcfcaec107c4bee03d67f6b2622f04bdf209c1c64736f6c63430008110033", + "bytecode": "0x608080604052346200001957620169fe90816200001f8239f35b600080fdfe6109a08060405260043610156200001557600080fd5b600080608052803560e01c918263036ee8501462003da5575081630e5a3b291462003a3757816310ade3ea1462003a055781631797631d14620039925781631c75255a146200393c57816323b65c7814620038c95781632514a6b4146200368957816341d1a438146200365657816356424cf4146200356e5781635c00d987146200351f5781635d0b184914620034fb5781635f1231ea14620034075781635f5d5f001462003394578163681ece9d146200335157816374579b18146200236757816379532bfe14620023435781637daa10ce14620023245781638129fc1c1462001f455750806383e4cccf1462001cce578063864f9f7a1462001c8c57806386ad77e2146200194d5780638c7a63ae14620018d35780639df9914514620017b25780639f36145f14620004e1578063a064c4f11462000416578063acf80bc414620003d4578063aefca42a14620003b0578063bba51030146200021b578063d5a172f214620001ec5763d6a93c51146200018f57600080fd5b34620001e65760805180600319360112620001e3575b6127108110620001bb575b602090604051908152f35b60ff60078260031b01541615620001dd57620001d79062005a85565b620001a5565b620001b0565b80fd5b60805180fd5b34620001e65760805180600319360112620001e35762027126546040516001600160a01b039091168152602090f35b34620001e65760805180600319360112620001e3576202712e548091526202712b906020828152600380604060805120015493620002766200025d8662003edb565b956200026d604051978862003eb7565b80875262003edb565b8584019190601f19013683376080515b8560805152818552836040608051200154811015620003595760405163083a348760e31b815260048101829052602486828281305afa9182156200034c57608051926200030e575b50620002db838a62005af1565b9086831015620002f8575052620002f29062005a85565b62000286565b60808051634e487b7160e01b9052602160045251fd5b9091508681813d831162000344575b62000329818362003eb7565b81010312620001e6575185811015620001e6579089620002ce565b503d6200031d565b6040513d608051823e3d90fd5b84878460405192839281840190828552518091526040840192916080515b8281106200038757505050500390f35b91938395509080826200039f60019483975162003fd8565b019501910191859493919262000377565b34620001e65760805180600319360112620001e35760206202712854604051908152f35b34620001e6576020366003190112620001e6576001600160a01b03620003f962003dc7565b166080515262013887602052602060406080512054604051908152f35b34620001e6576020366003190112620001e657600435612710811015620004c957806200044f6001620004569360031b01549162006c21565b9062006b9b565b90156200046857602090604051908152f35b60405162461bcd60e51b815260206004820152603360248201527f73756d566f74696e67576569676874466f72546f6b656e436c6173733a20766f60448201527274696e67576569676874206f766572666c6f7760681b6064820152608490fd5b634e487b7160e01b6080515260326004526024608051fd5b34620001e6576020366003190112620001e657600435608051526202712b602052604060805120604051620005168162003e63565b81546001600160a01b03168152600182018054909290620005378162003edb565b9062000547604051928362003eb7565b808252602082019460805152608051946020862095905b828210620005e957620005be8686866020830152604051620005918162000589816002860162005166565b038262003eb7565b604083015260ff600782015491600960088201549101549060405195869560a0875260a0870190620054e0565b9360208601526040850152620005da6060850183831662003fd8565b60081c16151560808301520390f35b604051620005f78162003e63565b87546001600160a01b0381168252602660a082901c60ff1610156200179a5760a01c60ff1660208201526040516200062f8162003e46565b6200063d60018a0162005204565b8152600289016040518082602082945493848152019060805152608051926020842093905b80601f830110620015c7576200079b945491818110620015b0575b81811062001596575b8181106200157c575b81811062001562575b81811062001549575b8181106200152f575b81811062001515575b818110620014fb575b818110620014e1575b818110620014c7575b818110620014ad575b81811062001493575b81811062001479575b8181106200145f575b81811062001445575b8181106200142b575b81811062001411575b818110620013f7575b818110620013dd575b818110620013c3575b818110620013a9575b8181106200138f575b81811062001375575b8181106200135b575b81811062001341575b81811062001327575b8181106200130d575b818110620012f3575b818110620012d9575b818110620012bf575b818110620012a5575b1062001294575b50038262003eb7565b6020820152600389018054620007b18162003edb565b91620007c1604051938462003eb7565b818352602083019060805152608051906020822091905b8382106200127357505050506040820152600489018054620007fa8162003edb565b916200080a604051938462003eb7565b818352602083019060805152608051906020822091905b838210620010fc57505050506060820152600589016040519081602082549182815201916080515260805190602082205b81601f84011062000e0b5784600997946020979460019a97946200099894549181811062000ded575b81811062000dcc575b81811062000dab575b81811062000d8a575b81811062000d6a575b81811062000d49575b81811062000d28575b81811062000d07575b81811062000ce6575b81811062000cc5575b81811062000ca4575b81811062000c83575b81811062000c62575b81811062000c41575b81811062000c20575b81811062000bff575b81811062000bde575b81811062000bbd575b81811062000b9c575b81811062000b7b575b81811062000b5a575b81811062000b39575b81811062000b18575b81811062000af7575b81811062000ad6575b81811062000ab5575b81811062000a94575b81811062000a73575b81811062000a52575b81811062000a31575b81811062000a10575b10620009f55750038262003eb7565b6080820152620009ab60068d0162005368565b60a0820152620009be60078d0162005421565b60c08201526008620009dc8d62000589604051809481930162005166565b60e082015260408201528152019701910190956200055e565b90889160f81c62000a068162004dc4565b8152013862000792565b928a8d9160ff8560f01c1662000a268162004dc4565b815201930162000989565b928a8d9160ff8560e81c1662000a478162004dc4565b815201930162000980565b928a8d9160ff8560e01c1662000a688162004dc4565b815201930162000977565b928a8d9160ff8560d81c1662000a898162004dc4565b81520193016200096e565b928a8d9160ff8560d01c1662000aaa8162004dc4565b815201930162000965565b928a8d9160ff8560c81c1662000acb8162004dc4565b81520193016200095c565b928a8d9160ff8560c01c1662000aec8162004dc4565b815201930162000953565b928a8d9160ff8560b81c1662000b0d8162004dc4565b81520193016200094a565b928a8d9160ff8560b01c1662000b2e8162004dc4565b815201930162000941565b928a8d9160ff8560a81c1662000b4f8162004dc4565b815201930162000938565b928a8d9160ff8560a01c1662000b708162004dc4565b81520193016200092f565b928a8d9160ff8560981c1662000b918162004dc4565b815201930162000926565b928a8d9160ff8560901c1662000bb28162004dc4565b81520193016200091d565b928a8d9160ff8560881c1662000bd38162004dc4565b815201930162000914565b928a8d9160ff8560801c1662000bf48162004dc4565b81520193016200090b565b928a8d9160ff8560781c1662000c158162004dc4565b815201930162000902565b928a8d9160ff8560701c1662000c368162004dc4565b8152019301620008f9565b928a8d9160ff8560681c1662000c578162004dc4565b8152019301620008f0565b928a8d9160ff8560601c1662000c788162004dc4565b8152019301620008e7565b928a8d9160ff8560581c1662000c998162004dc4565b8152019301620008de565b928a8d9160ff8560501c1662000cba8162004dc4565b8152019301620008d5565b928a8d9160ff8560481c1662000cdb8162004dc4565b8152019301620008cc565b928a8d9160ff8560401c1662000cfc8162004dc4565b8152019301620008c3565b928a8d9160ff8560381c1662000d1d8162004dc4565b8152019301620008ba565b928a8d9160ff8560301c1662000d3e8162004dc4565b8152019301620008b1565b928a8d9160ff8560281c1662000d5f8162004dc4565b8152019301620008a8565b928a8d9160ff85831c1662000d7f8162004dc4565b81520193016200089f565b928a8d9160ff8560181c1662000da08162004dc4565b815201930162000896565b928a8d9160ff8560101c1662000dc18162004dc4565b81520193016200088d565b928a8d9160ff8560081c1662000de28162004dc4565b815201930162000884565b928a8d9160ff851662000e008162004dc4565b81520193016200087b565b926001610400602092865460ff811662000e258162004dc4565b825260ff8160081c1662000e398162004dc4565b8583015260ff8160101c1662000e4f8162004dc4565b604083015260ff8160181c1662000e668162004dc4565b606083015260ff81861c1662000e7c8162004dc4565b608083015260ff8160281c1662000e938162004dc4565b60a083015260ff81818160301c1662000eac8162004dc4565b60c09081860152828260381c1662000ec48162004dc4565b60e0860152828260401c1662000eda8162004dc4565b610100860152828260481c1662000ef18162004dc4565b610120860152828260501c1662000f088162004dc4565b610140860152828260581c1662000f1f8162004dc4565b610160860152828260601c1662000f368162004dc4565b610180860152828260681c1662000f4d8162004dc4565b6101a0860152828260701c1662000f648162004dc4565b6101c0860152828260781c1662000f7b8162004dc4565b6101e0860152828260801c1662000f928162004dc4565b610200860152828260881c1662000fa98162004dc4565b610220860152828260901c1662000fc08162004dc4565b610240860152828260981c1662000fd78162004dc4565b610260860152828260a01c1662000fee8162004dc4565b610280860152828260a81c16620010058162004dc4565b6102a0860152828260b01c166200101c8162004dc4565b6102c0860152828260b81c16620010338162004dc4565b6102e08601521c16620010468162004dc4565b61030083015260ff8160c81c166200105e8162004dc4565b61032083015260ff8160d01c16620010768162004dc4565b61034083015260ff8160d81c166200108e8162004dc4565b61036083015260ff8160e01c16620010a68162004dc4565b61038083015260ff8160e81c16620010be8162004dc4565b6103a083015260ff8160f01c16620010d68162004dc4565b6103c083015260f81c620010ea8162004dc4565b6103e082015201940192019162000852565b60409d9c9b9a999897969d51620011138162003e46565b6200112360ff855416826200534e565b600184015460208201526002840180546200113e8162003edb565b916200114e604051938462003eb7565b8183526020830190608051526080516020812090915b838310620011e557505050509d9e9798999a9b9c9d600192826020926040600695015260038701546060820152604051620011a881620005898160048c0162005166565b608082015260ff6005880154818116151560a0840152818160081c16151560c084015260101c16151560e082015281520193019101909162000821565b60076020600192604051620011fa8162003e2a565b855481526200123e60ff86880154818116620012168162004dc4565b86850152818160081c166200122b8162003f71565b604085015260101c16606083016200535b565b6200124c6002870162005272565b60808201526200125f600387016200547e565b60a082015281520192019201919062001164565b600760206001926200128586620052c7565b815201930191019091620007d8565b60f81c151581526020018d62000792565b92602060019160ff8560f01c16151581520193016200078b565b92602060019160ff8560e81c161515815201930162000782565b92602060019160ff8560e01c161515815201930162000779565b92602060019160ff8560d81c161515815201930162000770565b92602060019160ff8560d01c161515815201930162000767565b92602060019160ff8560c81c16151581520193016200075e565b92602060019160ff8560c01c161515815201930162000755565b92602060019160ff8560b81c16151581520193016200074c565b92602060019160ff8560b01c161515815201930162000743565b92602060019160ff8560a81c16151581520193016200073a565b92602060019160ff8560a01c161515815201930162000731565b92602060019160ff8560981c161515815201930162000728565b92602060019160ff8560901c16151581520193016200071f565b92602060019160ff8560881c161515815201930162000716565b92602060019160ff8560801c16151581520193016200070d565b92602060019160ff8560781c161515815201930162000704565b92602060019160ff8560701c1615158152019301620006fb565b92602060019160ff8560681c1615158152019301620006f2565b92602060019160ff8560601c1615158152019301620006e9565b92602060019160ff8560581c1615158152019301620006e0565b92602060019160ff8560501c1615158152019301620006d7565b92602060019160ff8560481c1615158152019301620006ce565b92602060019160ff8560401c1615158152019301620006c5565b92602060019160ff8560381c1615158152019301620006bc565b92602060019160ff8560301c1615158152019301620006b3565b92602060019160ff8560281c1615158152019301620006aa565b92602060019160ff85831c1615158152019301620006a1565b92602060019160ff8560181c161515815201930162000698565b92602060019160ff8560101c16151581520193016200068f565b92602060019160ff8560081c161515815201930162000686565b92602060019160ff8516151581520193016200067d565b916020919350610400600191865460ff81161515825260ff8160081c1615158583015260ff8160101c161515604083015260ff816060828260181c161515818601528282891c1615156080860152828260281c16151560a0860152828260c092828260301c16151584890152828260381c16151560e0890152828260401c161515610100890152828260481c161515610120890152828260501c161515610140890152828260581c1615156101608901521c161515610180860152828260681c1615156101a0860152828260701c1615156101c0860152828260781c1615156101e0860152828260801c161515610200860152828260881c161515610220860152828260901c161515610240860152828260981c161515610260860152828260a01c161515610280860152828260a81c1615156102a0860152828260b01c1615156102c0860152828260b81c1615156102e08601521c16151561030083015260ff8160c81c16151561032083015260ff8160d01c16151561034083015260ff8160d81c16151561036083015260ff8160e01c16151561038083015260ff8160e81c1615156103a083015260ff8160f01c1615156103c083015260f81c15156103e082015201940192018492939162000662565b634e487b7160e01b6080515260216004526024608051fd5b6020366003190112620001e6576004356001600160401b038111620001e657620017e190369060040162004310565b80516001600160a01b0390620018349082166200182b6200180c620018063362016721565b6200594e565b620018246200181e8688511662016721565b620059b4565b9062005a0b565b90331462005a52565b6080519060208301915b82518051821015620018ab57906200189f620018a592846200186284339362005af1565b515116146200189862001879620018063362016721565b620018246200181e886200188f888c5162005af1565b51511662016721565b9062005a52565b62005a85565b6200183e565b620018cf620018ba8662006e8c565b6040519182916020835260208301906200400b565b0390f35b34620001e6576020366003190112620001e657600435612710811015620004c95760031b60018101546002820154916200194360056200192460068401549362000589604051809481930162005166565b604051948594855260208501526080604085015260808401906200400b565b9060608301520390f35b34620001e65760805180600319360112620001e357620138828054620019738162003edb565b9162001983604051938462003eb7565b8183526020830190608051526080516020812090915b83831062001b4e578462013883908154620019b48162003edb565b92620019c4604051948562003eb7565b8184526020840190608051526080516020812090915b83831062001a105762001a0185620018cf8860405193849360408552604085019062004f51565b90838203602085015262004f51565b60405162001a1e8162003e46565b62001a2e60ff845416826200534e565b6001830154602082015260028301805462001a498162003edb565b9162001a59604051938462003eb7565b818352602083019060805152608051906020822091905b83821062001ae8575050505060019282602092604060069501526003860154606082015260405162001aab81620005898160048b0162005166565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e0820152815201920192019190620019da565b6007602060019260405162001afd8162003e2a565b8654815262001b1960ff86890154818116620012168162004dc4565b62001b276002880162005272565b608082015262001b3a600388016200547e565b60a082015281520193019101909162001a70565b60405162001b5c8162003e46565b62001b6c60ff845416826200534e565b6001830154602082015260028301805462001b878162003edb565b9162001b97604051938462003eb7565b818352602083019060805152608051906020822091905b83821062001c26575050505060019282602092604060069501526003860154606082015260405162001be981620005898160048b0162005166565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e082015281520192019201919062001999565b6007602060019260405162001c3b8162003e2a565b8654815262001c5760ff86890154818116620012168162004dc4565b62001c656002880162005272565b608082015262001c78600388016200547e565b60a082015281520193019101909162001bae565b34620001e6576020366003190112620001e6576001600160a01b0362001cb162003dc7565b166080515262013885602052602060406080512054604051908152f35b34620001e657602080600319360112620001e6576004359062001d0f478311156200189862001cfd8562005e80565b62001d084762005e80565b9062005b39565b3360805152604062001d866201388580845262001d5c8360805120548611156200189862001d3d8862005e80565b336080515284885262001d5587608051205462005e80565b9062005ba5565b336080515280845262001d758584608051205462005e45565b92906200189862001d3d8862005e80565b33608051528352608051908282205520541562001dca575b5060805180808381949382941562001dc0575b3390f1156200034c5760805180f35b506108fc62001db1565b6201388680549162001ddc8362005c0d565b9160805193845b81811062001ed257505062001df88462005c0d565b805191906001600160401b03831162001eba57839062001e188462005d7e565b0190608051526080519280842090845b84811062001e9e5750505050505b82811062001e4657505062001d9e565b62001e98906200189f6001600160a01b0362001e63838662005af1565b511662001e708362005c62565b9080546001600160a01b0360039390931b83811b80199092169390941690931b909216179055565b62001e36565b83516001600160a01b0316838201559281019260010162001e28565b634e487b7160e01b6080515260416004526024608051fd5b62001edd8162005c62565b90546001600160a01b03916003913391831b1c83160362001f0c575b505062001f069062005a85565b62001de3565b9662001f3c91839862001f2362001f069562005c62565b9054911b1c1662001f35828962005af1565b5262005a85565b95908862001ef9565b34620001e65760805180600319360112620001e357506202712680546001600160a01b0319163317905562027129805460ff1916600190811790915560405190919062001f928162003e9b565b608051905262013882805482825580620022a1575b506080515260405162001fba8162003e9b565b6080519052608051806200228a5750620138839081548183558062002208575b5050608051526127106202712a5560405162001ff68162003e7f565b8181526080515b6020808210156200207057604051602092916200201a8262003e2a565b608051825260805181830152608051604083015260805160609081840152806080840152604051906200204d8262003df8565b80825280838301528060408301528082015260a083015282850101520162001ffd565b83620021f584604051620020848162003e9b565b6080518152604051620020978162003e9b565b6080518152604051620020aa8162003e9b565b6080518152604051620020bd8162003e9b565b608051815260405191620020d18362003e9b565b608051835260405193620020e58562003df8565b845260208401526040830152606082015260405191620021058362003e2a565b60805183526003602084015260805160408401526080516060840152608083015260a0820152620021368262005aab565b52620021428162005aab565b506200219d604051620021558162003e46565b6004815284602082015282604082015260805160608201526040516200217b8162003e9b565b608051815260808201528460a08201528460c08201528460e082015262006a18565b60405190620021ac8262003e46565b6002825283602083015260408201526080516060820152604051620021d18162003e9b565b608051815260808201528260a08201528260c082015260805160e082015262006a65565b6113886201388b556201388c5560805180f35b600691818302918383040362002276578060209160805284815220908101905b81811062002237575062001fda565b829060805180825586820155620022516002820162006265565b60805160038201556200226760048201620060f7565b60805160058201550162002228565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b90526041600452608051602490fd5b600690808202908282040362002310578360805282845260208420908101905b818110620022d157505062001fa7565b829060805180825587820155620022eb6002820162006265565b60805160038201556200230160048201620060f7565b608051600582015501620022c1565b634e487b7160e01b84526011600452602484fd5b34620001e65760805180600319360112620001e3576020604051338152f35b34620001e65760805180600319360112620001e35760206202712d54604051908152f35b34620001e6576040366003190112620001e6576004356001600160401b038111620001e6576200239c90369060040162004032565b6024356001600160401b038111620001e657620023be90369060040162004310565b620271298054600260ff8216620023d58162003f71565b146200330c5760ff191660021790556202712e546001810190811062002fd057806202712e5560805190815b84518110156200246457826002620024256200241e848962005af1565b5162014725565b5001541062002440575b6200243a9062005a85565b62002401565b91506200243a6002620024586200241e858862005af1565b5001549290506200242f565b50919060805191825b8551811015620024ca57620024876200241e828862005af1565b508460038092015410620024a8575b50620024a29062005a85565b6200246d565b819450620024bf6200241e620024a2938962005af1565b500154939062002496565b508493608051526202712b60205260805190604082209160018060a01b0382511660018060a01b03198454161783556020820151805191600160401b83116200228a5750600184015482600186015580831062003130575b50608080516001860190525160208082209392015b82821062002a9f575050505090600260406200255793015191016200648b565b62002563835162005c0d565b6202712e54608051526202712b60205260805190600560408320019080519260018060401b0384116200228a5750602090620025a0848462005e25565b01906080515260805160208120905b83811062002a8a5750505050620025c7835162005c0d565b6202712e54608051526202712b60205260805190600460408320019080519260018060401b0384116200228a575060209062002604848462005e25565b01906080515260805160208120905b83811062002a7557505050506200262b835162005c0d565b906202712e54608051526202712b602052608051600660408220019280519160018060401b0383116200228a575060209062002668838662005e25565b0192608051526080519260208420845b83811062002a60575050505062002690904262006ce3565b90916202712e5490526202712b602052600760406080512001551562002a20576202712e54608051526202712b60205260406008620026d9608051936007848620015462006ce3565b92909320015515620029dd576202712e54608051526202712b602052600960406080512001600260ff1982541617905562002715815162005c0d565b6202712e54608051526202712b602052608051600360408220019180519160018060401b0383116200228a575060209062002751838562005e25565b0191608051526080519160208320835b838110620029c85785855b8151811015620027d157806200189f6200278b620027cb938562005af1565b516202712e54608051526202712b602052620027b08360036040608051200162005d10565b90919082549060031b600019811b9283911b16911916179055565b6200276c565b50608051905b8051821015620029c2576202712e549182608051526202712b602052620028186200280b8260036040608051200162005d10565b90549060031b1c62014725565b505490620028268262005c0d565b916080515b81811062002974575050608051805b83518210156200293f5762002850828562005af1565b516127109081811015620004c95760031b6001015462002871848762005af1565b5191821015620004c95760066200288e9260031b01549062006b9b565b9015620028fb57620028a09162006ce3565b919015620028ba57620028b39062005a85565b906200283a565b60405162461bcd60e51b8152602060048201526019602482015278746f74616c566f74696e67506f776572206f766572666c6f7760381b6044820152606490fd5b606460405162461bcd60e51b815260206004820152602060248201527f63757272656e74436c617373566f74696e67506f776572206f766572666c6f776044820152fd5b90506200189f9192506200296d9394608051526202712b602052620027b08360066040608051200162005d10565b90620027d7565b620029bc9086608051526202712b602052620029a981620029a26200280b8760036040608051200162005d10565b5062005d10565b90549060031b1c62001f35828762005af1565b6200282b565b60805180f35b60019060208451940193818401550162002761565b60405162461bcd60e51b815260206004820152601b60248201527a657865637574696e6720656e642074696d65206f766572666c6f7760281b6044820152606490fd5b60405162461bcd60e51b8152602060048201526018602482015277766f74696e6720656e642074696d65206f766572666c6f7760401b6044820152606490fd5b60019060208451940193818401550162002678565b60019060208451940193818401550162002613565b600190602084519401938184015501620025af565b805180518554602083015190916001600160a01b03169060268110156200179a576001600160a81b03199092161760a09190911b60ff60a01b16178555604001518051805190600187019060209062002af9848462006188565b019060805152608051906020822091905b83821062003110575050505060208101518051906001600160401b03821162001eba576020600288019162002b40848462015919565b019060805152608051916020832090835b8160051c8110620030d55750601f198116810362003092575b5050506040820151805191600160401b83116200228a5750600387015482600389015580831062003009575b506080805160038901905251602080822092015b83821062002fe857505050506060810151805190600160401b821162001eba57600487015482600489015580831062002f4b575b506080805160048901905251602080822092015b83821062002f2a5750505050608081015180516001600160401b03811162001eba576020600588019262002c27838562015919565b0191608051526080519060208220915b8160051c811062002eea5750601f198116810362002e9c575b5050506006850160a0820151602081519162002c6d838562006216565b0191608051526080516020812090925b82841062002e3657505050506007850160c0820151602081519162002ca3838562006216565b0191608051526080516020812090925b82841062002dc7575050505060e001518051906001600160401b03821162001eba5762002cf38262002ce9600889015462005129565b6008890162006441565b60805190602091601f841160011462002d4c575092826009936020936001966080519262002d40575b5050600019600383901b1c191690851b1760088801555b0194019101909262002537565b015190508e8062002d1c565b600888019052608051602081209291905b601f198516811062002dae575083602093600196938793600997601f1981161062002d94575b505050811b01600888015562002d33565b015160001960f88460031b161c191690558e808062002d83565b9192602060018192868501518155019401920162002d5d565b80518051906001600160401b03821162001eba5760209062002dea838662005e25565b01836080515260805160208120905b83811062002e1857505050506001602081920192019301929062002cb3565b82516001600160a01b03168183015560209092019160010162002df9565b80518051906001600160401b03821162001eba5760209062002e59838662005e25565b01836080515260805160208120905b83811062002e8757505050506001602081920192019301929062002c7d565b60019060208451940193818401550162002e68565b60805192835b601f1983168303811062002ec057505060051c01558a808062002c50565b9093602062002ee06001928488519162002eda8362004dc4565b62015983565b9501910162002ea2565b608051805b6020811062002f0657508382015560010162002c37565b9490602062002f206001928885519162002eda8362004dc4565b9201950162002eef565b600660208262002f3e6001945187620065a1565b0193019101909162002bf2565b600681810204810362002fd057600683810204830362002fd05760048801608051526020608051208360060281015b826006028201811062002f8f57505062002bde565b600690608051808255600182015562002fab6002820162006265565b608051600382015562002fc160048201620060f7565b60805160058201550162002f7a565b634e487b7160e01b6080515260116004526024608051fd5b600760208262002ffc6001945187620157d7565b0193019101909162002baa565b600781810204810362002fd057600783810204830362002fd05760038801608051526020608051208360070281015b82600702820181106200304d57505062002b96565b806200305b60079262005da2565b60805180600183015580600283015580600383015560048201556200308360058201620060f7565b60805160068201550162003038565b8392845b601f19831683038110620030b457505060051c01558b808062002b6a565b90936020620030cb60019284885115159162015983565b9501910162003096565b84855b60208110620030ef57508382015560010162002b51565b949060206200310660019288855115159162015983565b92019501620030d8565b600160208262003123839451876200648b565b0193019101909162002b0a565b600981810204810362002fd057600983810204830362002fd05760018501608051526020608051208360090281015b82600902820181106200317457505062002522565b6080518155620031876001820162006149565b6200319d600282018054906080518155620158f1565b6003810154608051806003840155816200329a575b505060048101546080518060048401558162003215575b505080620031e46005600993018054906080518155620158f1565b620031f260068201620061d7565b6200320060078201620061d7565b6200320e60088201620060f7565b016200315f565b60068281020482036200328357506004820160805152602060805120906006028101905b81811015620031c95760069060805180825560018201556200325e6002820162006265565b60805160038201556200327460048201620060f7565b60805160058201550162003239565b634e487b7160e01b90526011600452608051602490fd5b60078281020482036200328357506003820160805152602060805120906007028101905b81811015620031b25780620032d560079262005da2565b6080518060018301558060028301558060038301556004820155620032fd60058201620060f7565b608051600682015501620032be565b60405162461bcd60e51b815260206004820152601d60248201527f766f74696e6720697320616c726561647920696e2070726f67726573730000006044820152606490fd5b34620001e6576020366003190112620001e657600435612710811015620004c957620033876004620018cf9260031b01620053c5565b6040519182918262003f92565b34620001e65760805180600319360112620001e3576040518062013881918254808252602080920193608051526080519180832092905b828210620033e657620018cf85620033878189038262003eb7565b83546001600160a01b031686529485019460019384019390910190620033cb565b34620001e657602080600319360112620001e6576200342562003dc7565b604051620034338162003df8565b60805181526080518382015260606040820152606060805191015260018060a01b03166080515262013880815260406080512060405190620034758262003df8565b620034f081549160ff83161515845260ff8585019360081c1615158352600260405191620034b483620034ac816001850162005166565b038462003eb7565b6040860192835201549260608501938452604051958695818752511515908601525115156040850152516080606085015260a08401906200400b565b905160808301520390f35b34620001e65760805180600319360112620001e35760206202712e54604051908152f35b34620001e6576020366003190112620001e657600435612710811015620004c957620035666200355e826200044f600260209560031b01549162006c21565b919062006ad1565b604051908152f35b34620001e65760805180600319360112620001e3576201388b54620035cd620035966201620c565b91620035a86127109384831062005a52565b620035c26201388e546201388c541115620018986201627a565b6201388d5462006b9b565b919050620035da620162d0565b5060805191825b82811062003604575b6020620035fa8585850462006d71565b9050604051908152f35b909260ff60078360031b015416156200364e5781620036386200364492620036316200189f969562006b3e565b9062006ce3565b949062001898620162d0565b92909192620035e1565b9290620035ea565b34620001e6576020366003190112620001e65760206200367860043562015aeb565b62003687604051809262003fd8565bf35b34620001e657602080600319360112620001e657600435620036b7478211156200189862001cfd8462005e80565b33608051526201388790818352620037016040608051205482111562001898620036e18462005e80565b3360805152858752620036fa6040608051205462005e80565b9062005ffa565b3360805152818352620037496200371f826040608051205462005e45565b919062001898620037308562005e80565b3360805152868852620036fa6040608051205462005e80565b336080515282845260805180809381936040832055818115620038bf575b3390f1156200034c573360805152815260406080512054156200378a5760805180f35b62013888908154906200379d8262005c0d565b9260805192835b81811062003853575050620037b98362005c0d565b805191906001600160401b03831162001eba578390620037d98462005d42565b0190608051526080519280842090845b848110620038375750505050505b81811062003807575050620029c2565b62003831906200189f6001600160a01b0362003824838762005af1565b511662001e708362005c45565b620037f7565b83516001600160a01b03168382015592810192600101620037e9565b6200385e8162005c45565b90546001600160a01b03916003913391831b1c8316036200388d575b5050620038879062005a85565b620037a4565b95620038b6918397620038a4620038879562005c45565b9054911b1c1662001f35828a62005af1565b9490876200387a565b506108fc62003767565b34620001e65760805180600319360112620001e3576040518062013886918254808252602080920193608051526080519180832092905b8282106200391b57620018cf85620033878189038262003eb7565b83546001600160a01b03168652948501946001938401939091019062003900565b34620001e6576040366003190112620001e6576024356001600160a01b0381169060043590829003620001e657612710811015620004c95760039160805152811b01602052602060406080512054604051908152f35b34620001e65760805180600319360112620001e3576040518062013888918254808252602080920193608051526080519180832092905b828210620039e457620018cf85620033878189038262003eb7565b83546001600160a01b031686529485019460019384019390910190620039c9565b34620001e65760805180600319360112620001e357602060ff6202712954166040519062003a338162003f71565b8152f35b34620001e6576040366003190112620001e65762003a5462003dc7565b60249081356001600160401b038111620001e65762003a7890369060040162003f01565b91600260ff62027129541662003a8e8162003f71565b0362003d65576202712d5442101562003d275760018060a01b0382169182608051526202712c906020938285526080519560408720966202712e978854809252875260ff604060805120541662003ce95781519481608051526202712b938489526003968760406080512001540362003c8357608051528752608051906040822091528652608051966040882060019889918260ff19825416179055905b62003b375760805180f35b825181101562003c7d5762003b4d818462005af1565b511562003c04578154806080515284895262003ba962003b8c62003b7a8460046040608051200162005d10565b9054908a1b1c62003631858a62015997565b909260805152868b52620027b08460046040608051200162005d10565b1562003bc15762003bba9062005a85565b8862003b2c565b60405162461bcd60e51b815260048101899052601c818901527b766f74696e6720666f7220706f776572596573206f766572666c6f7760201b6044820152606490fd5b8154806080515284895262003c2a62003b8c62003b7a8460046040608051200162005d10565b1562003c3b5762003bba9062005a85565b60405162461bcd60e51b815260048101899052601b818901527a766f74696e6720666f7220706f7765724e6f206f766572666c6f7760281b6044820152606490fd5b620029c2565b60405162461bcd60e51b8152600481018a90526039818a01527f746865206e756d626572206f6620766f74657320646f6573206e6f74206d6174604482015278636820746865206e756d626572206f6620706f6c696369657360381b6064820152608490fd5b60405162461bcd60e51b815260048101889052601781880152761d9bdd195c881a185cc8185b1c9958591e481d9bdd1959604a1b6044820152606490fd5b60649060176040519162461bcd60e51b835260206004840152820152761d9bdd1a5b99c81c195c9a5bd9081a185cc8195b991959604a1b6044820152fd5b60649060196040519162461bcd60e51b83526020600484015282015278766f74696e67206973206e6f7420696e2070726f677265737360381b6044820152fd5b3462003dc3578160031936011262003dc35760209062027127548152f35b5080fd5b600435906001600160a01b038216820362003dde57565b600080fd5b35906001600160a01b038216820362003dde57565b608081019081106001600160401b0382111762003e1457604052565b634e487b7160e01b600052604160045260246000fd5b60c081019081106001600160401b0382111762003e1457604052565b61010081019081106001600160401b0382111762003e1457604052565b606081019081106001600160401b0382111762003e1457604052565b604081019081106001600160401b0382111762003e1457604052565b602081019081106001600160401b0382111762003e1457604052565b601f909101601f19168101906001600160401b0382119082101762003e1457604052565b6001600160401b03811162003e145760051b60200190565b3590811515820362003dde57565b81601f8201121562003dde5780359162003f1b8362003edb565b9262003f2b604051948562003eb7565b808452602092838086019260051b82010192831162003dde578301905b82821062003f57575050505090565b83809162003f658462003ef3565b81520191019062003f48565b6004111562003f7c57565b634e487b7160e01b600052602160045260246000fd5b6020908160408183019282815285518094520193019160005b82811062003fba575050505090565b83516001600160a01b03168552938101939281019260010162003fab565b90600382101562003f7c5752565b60005b83811062003ffa5750506000910152565b818101518382015260200162003fe9565b90602091620040268151809281855285808601910162003fe6565b601f01601f1916010190565b81601f8201121562003dde578035916200404c8362003edb565b926200405c604051948562003eb7565b808452602092838086019260051b82010192831162003dde578301905b82821062004088575050505090565b8135815290830190830162004079565b6001600160401b03811162003e1457601f01601f191660200190565b81601f8201121562003dde57803590620040ce8262004098565b92620040de604051948562003eb7565b8284526020838301011162003dde57816000926020809301838601378301015290565b9080601f8301121562003dde578135906200411c8262003edb565b926200412c604051948562003eb7565b828452602092838086019160051b8301019280841162003dde57848301915b8483106200415c5750505050505090565b82356001600160401b03811162003dde5786916200418084848094890101620040b4565b8152019201916200414b565b9080601f8301121562003dde57813590620041a78262003edb565b92620041b7604051948562003eb7565b828452602092838086019160051b8301019280841162003dde57848301915b848310620041e75750505050505090565b82356001600160401b03811162003dde5786916200420b8484809489010162004032565b815201920191620041d6565b9080601f8301121562003dde57813591620042328362003edb565b92604092620042448451958662003eb7565b8185526020938486019185600594851b8601019481861162003dde57868101935b8685106200427857505050505050505090565b84356001600160401b03811162003dde57820183603f8201121562003dde578881013590620042a78262003edb565b91620042b68751938462003eb7565b808352868b8401918a1b8301019186831162003dde5791878c94929593015b818110620042ee57505082935081520194019362004265565b919380919395620042ff8462003de3565b8152019101918b93919492620042d5565b6060918161086052806108e052031262003dde57604051620043328162003e63565b8091620043426108605162003de3565b82526108605160208101356109208190526001600160401b03811162003dde576108e051910190601f8201121562003dde5762004389620043979135806109605262003edb565b604051806108a05262003eb7565b6108a05161096051905260206108a05101926108e051610960519060206109205161086051019260051b8301011162003dde576020016108c05290925b6109605160051b6109205161086051019060206108c0519183010181101562004d8457356001600160401b03811162003dde57606091018061088052601f19906108e05103011262003dde576040516200442e8162003e63565b6200443f6020610880510162003de3565b81526040610880510135602681101562003dde5760208201526108805160608101356109408190526001600160401b031062003dde5761010090601f19906060810135016108e05103011262003dde57620044a1604051806109805262003e46565b6109405161088051016020810135906001600160401b03821162003dde576020620044d3926108e05192010162004101565b61098051526109405161088051016040810135906001600160401b03821162003dde5760206200450a926108e05192010162003f01565b6109805160200152610940516108805101926001600160401b0360608501351162003dde576108e051603f6060860135860101121562003dde5762004559602060608601358601013562003edb565b9462004569604051968762003eb7565b60608501358086016020908101358089526108e0516109405161088051938b01969493019092019160059190911b82016040011162003dde57604001925b61094051610880510160608801359081019088016020013560051b8101604001851015620046d6578435906001600160401b03821162003dde57016108e0519160e09283603f19848303011262003dde57604051908482016001600160401b03811183821017620046c1576040908152840135906001600160401b03821162003dde5760406200463a9286010162004032565b815260608301356020820152608080840135604083015260a09485850135606084015260c0916200466d83870162003ef3565b90840152840135946001600160401b03861162003dde5761010060209695620046b192620046a6899860406108e05191850101620040b4565b908601520162003ef3565b90820152815201930192620045a7565b60246000634e487b7160e01b81526041600452fd5b505095915091935094919460406109805101526109405161088051019460808601356109005260018060401b0360808701351162003dde576108e0519560808101350195603f8701121562003dde5762004734602087013562003edb565b9462004744604051968762003eb7565b6020878101358088526108e051610900516109405161088051948b01989401019160051b82016040011162003dde576040909893929897949701935b61090051610940516108805101016040602086013560051b82010186101562004bc45785356108408190526001600160401b031062003dde5761010090603f19908735016108e05103011262003dde5760405193620047df8562003e46565b6040610840516109005161094051610880510101010135600681101562003dde57855260606108405161090051610940516108805101010101356020860152610840516109005161094051610880510101019960018060401b0360808c01351162003dde576108e051605f60808d01358d0101121562003dde578a9062004870604060808401358401013562003edb565b9a620048806040519c8d62003eb7565b608083013592830160400135808d526108e051610840516109005161094051610880510101019094019360208e01939160051b85016060011162003dde579192606001915b6108405161090051610940516108805101010160808f0135908101908f016040013560051b810160600184101562004acb578335906001600160401b03821162003dde5760c0605f198383016108e05103011262003dde57604051916001600160401b0360c0840190811190841117620046c15760c083016040528181016060810135845260800135600581101562003dde57602084015260a08183010135600481101562003dde576040840152603d60c08284010135101562003dde5781810160c081013560608501526001600160401b0360e0909101351162003dde576108e051620049bf9083830160e08101350160600162004032565b60808401528181016101000135916001600160401b03831162003dde5701016080605f19826108e05103011262003dde578f956040519262004a018462003df8565b60608301356001600160401b03811162003dde576108e05162004a2991850160600162004101565b845260808301356001600160401b03811162003dde576108e05162004a539185016060016200418c565b602085015260a08301356001600160401b03811162003dde576108e05162004a8091850160600162004217565b604085015260c0830135936001600160401b03851162003dde5762004ab360209594606087966108e051920101620040b4565b606082015260a08201528152019301929350620048c5565b509697939c509798939a915050604082015260a091826108405161090051610940516108805101010101356060830152610840516109005161094051610880510101019160c093848401359460018060401b03861162003dde5762004b3e60209695604088976108e051920101620040b4565b608084015260e09162004b6583610840516109005161094051610880510101010162003ef3565b9084015262004b8a610100610840516109005161094051610880510101010162003ef3565b9083015262004baf610120610840516109005161094051610880510101010162003ef3565b90820152815201950193969792919762004780565b50610980516060015261094051610880519198910196919450925090506001600160401b0360a08601351162003dde576108e0519460a0810135810195603f8701121562003dde5762004c1b602087013562003edb565b9262004c2b604051948562003eb7565b6020878101358086526108e051610940516108805193880196930160a0860135019160051b82016040011162003dde57604001935b604060208a013560051b60a086013561094051610880510101010185101562004c9e578435600581101562003dde5781526020948501940162004c60565b5096509694939291505060806109805101526109405161088051019160c092838101359060018060401b03821162003dde57602062004ce4926108e0519201016200418c565b6109805160a00152610940516108805160e094910184810135906001600160401b03821162003dde57602062004d21926108e05192010162004217565b6109805190910152610940516108805101926101008401356001600160401b03811162003dde576108e05160209562004d5d92018601620040b4565b906109805101526109805160408201528152019260206108c051016108c0529092620043d4565b50506108a051602084015250610860519092919060408101356001600160401b03811162003dde576108e05160409262004dbf9201620040b4565b910152565b6005111562003f7c57565b90815180825260208080930193019160005b82811062004df0575050505090565b83518552938101939281019260010162004de1565b908082519081815260208091019281808460051b8301019501936000915b84831062004e345750505050505090565b909192939495848062004e54600193601f198682030187528a516200400b565b980193019301919493929062004e23565b90815180825260208092019182818360051b82019501936000915b84831062004e915750505050505090565b909192939495848062004ead83856001950387528a5162004dcf565b980193019301919493929062004e80565b90815180825260208092019182818360051b8201950193600080925b85841062004eec575050505050505090565b9091929387828297989903855288519082808351928381520192019085905b80821062004f2d57505050908060019299019401940192959493919062004eda565b82516001600160a01b03168452899493840193909201916001919091019062004f0b565b90815180825260208092019081926005928183851b82019601946000915b84831062004f81575050505050505090565b9091929394959681810383528751906101008082018351600681101562003f7c579083929189945283850151848401528a60409182870151938386015283518091528561012082818801941b8701019401926000905b828210620050425750505050509282916200500c6001956060808501519084015260808085015190848303908501526200400b565b9160a08082015115159083015260c08082015115159083015260e080910151151591015299019301930191959493929062004f6f565b9193959650919361011f19878203018552855190815181528c820151620050698162004dc4565b8d820152828201516200507c8162003f71565b8382015260609081830151603d81101562003f7c576001938f9383620051179382879601528162005107620050f6620050e56080620050c88189015160c080848a015288019062004dcf565b9560a0809901519881880391015287519080875286019062004e05565b888701518582038a87015262004e65565b8a8601518482038c86015262004ebe565b930151918184039101526200400b565b9701950192018b969594939162004fd7565b90600182811c921680156200515b575b60208310146200514557565b634e487b7160e01b600052602260045260246000fd5b91607f169162005139565b9060009291805491620051798362005129565b918282526001938481169081600014620051e057506001146200519d575b50505050565b90919394506000526020928360002092846000945b838610620051cb57505050500101903880808062005197565b805485870183015294019385908201620051b2565b9294505050602093945060ff191683830152151560051b0101903880808062005197565b908154620052128162003edb565b92604093620052248551918262003eb7565b828152809460208092019260005281600020906000935b8585106200524b57505050505050565b60018481928451620052638162000589818a62005166565b8152019301940193916200523b565b9060405191828154918282526020928383019160005283600020936000905b828210620052ac57505050620052aa9250038362003eb7565b565b85548452600195860195889550938101939091019062005291565b60405190919060e081016001600160401b0381118282101762003e145760405260c060ff60068395620052fa8162005272565b855260018101546020860152600281015460408601526003810154606086015282600482015416151560808601526040516200533f8162000589816005860162005166565b60a08601520154161515910152565b600682101562003f7c5752565b603d82101562003f7c5752565b908154620053768162003edb565b9262005386604051948562003eb7565b818452600090815260208082208186015b848410620053a6575050505050565b6001838192620053b68562005272565b81520192019301929062005397565b9060405191828154918282526020928383019160005283600020936000905b828210620053fd57505050620052aa9250038362003eb7565b85546001600160a01b031684526001958601958895509381019390910190620053e4565b9081546200542f8162003edb565b926200543f604051948562003eb7565b818452600090815260208082208186015b8484106200545f575050505050565b60018381926200546f85620053c5565b81520192019301929062005450565b9060036060604051620054918162003df8565b620054dc8195620054a28162005204565b8352620054b26001820162005368565b6020840152620054c56002820162005421565b6040840152620034ac604051809681930162005166565b0152565b9190606081019060018060a01b03845116815260208401519160606020830152825180915260808201602060808360051b85010194019160005b81811062005542575050505060406200553f939401519060408184039101526200400b565b90565b848603607f19018352835180516001600160a01b031687526020810151949693949293919290602682101562003f7c576040916020840152015190606060408201526200559e8251610100606084015261016083019062004e05565b602083810151838303605f190160808501528051808452928201929101906000905b8082106200593357505050604083015190605f198382030160a0840152815180825260208201906020808260051b85010194019260005b828110620058ae575050505050606083015190605f198382030160c0840152815190818152602081016020808460051b8401019401926000925b818410620056fa575050505050608083015190605f198382030160e0840152602080835192838152019201906000905b808210620056d657505050620056c98360209360e0620056b26200569a879660a060019a0151605f198683030161010087015262004e65565b60c0850151848203605f190161012086015262004ebe565b92015190610140605f19828503019101526200400b565b970194019291016200551a565b9091926020806001928651620056ec8162004dc4565b815201940192019062005661565b9091929394601f9e9d9c9e198282030184528551908151600681101562003f7c5781526020820151602082015260408201516101006040830152610100820181518091526101206020818501918360051b8601019301916000905b808210620057c257505050509e9f9d9e826020926200578e8493606060019701516060840152608084015183820360808501526200400b565b9160a0810151151560a083015260c0810151151560c083015260e08091015115159101529701940194019293919062005631565b9091929361011f19868203018452845190815181526020820151620057e78162004dc4565b60208201526040820151620057fc8162003f71565b6040820152606082015191603d83101562003f7c57620058a1826020939260019560608695015260a062005840608083015160c0608086015260c085019062004dcf565b9101519160a081830391015260606200588f6200587c6200586b855160808652608086019062004e05565b878601518582038987015262004e65565b6040850151848203604086015262004ebe565b9201519060608184039101526200400b565b9601940192019062005755565b9091929394602080600192601f1986820301885288519062005918620058dd835160e080855284019062004dcf565b8484015185840152604084015160408401526060840151606084015260808401511515608084015260a084015183820360a08501526200400b565b60c092830151151591909201529701950193929101620055f7565b909192602080600192865115158152019401920190620055c0565b90620052aa604560405180947f496e76616c69642070726f6772616d20616464726573732e204d73672e73656e60208301526403232b91d160dd1b6040830152620059a3815180926020868601910162003fe6565b810103602581018552018362003eb7565b90620052aa6040805180947f2c20616e642070726f6772616d206f70657261746f7220616464726573733a206020830152620059fa815180926020868601910162003fe6565b810103602081018552018362003eb7565b6020620052aa91939293604051948162005a2f879351809286808701910162003fe6565b820162005a458251809386808501910162003fe6565b0103808552018362003eb7565b1562005a5b5750565b60405162461bcd60e51b81526020600482015290819062005a819060248301906200400b565b0390fd5b600019811462005a955760010190565b634e487b7160e01b600052601160045260246000fd5b80511562005ab95760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101562005ab95760400190565b80516002101562005ab95760600190565b805182101562005ab95760209160051b010190565b7f496e76616c696420776974686472617720616d6f756e742e20416d6f756e743a8152600160fd1b602082015260210190565b600f620052aa916020949360405195869262005b6962005b5b83860162005b06565b918281519485920162003fe6565b016e0161030b732103130b630b731b29d1608d1b815262005b94825180936020878501910162003fe6565b010360101981018552018362003eb7565b6019620052aa916020949360405195869262005bc762005b5b83860162005b06565b01780161030b732103bb4ba34323930bbb0b136329031b0b9b41d1603d1b815262005bfc825180936020878501910162003fe6565b010360061981018552018362003eb7565b9062005c198262003edb565b62005c28604051918262003eb7565b828152809262005c3b601f199162003edb565b0190602036910137565b62013888805482101562005ab95760005260206000200190600090565b62013886805482101562005ab95760005260206000200190600090565b62013881805482101562005ab95760005260206000200190600090565b6202711d805482101562005ab95760005260206000200190600090565b6201388a805482101562005ab95760005260206000200190600090565b62027119805482101562005ab95760005260206000200190600090565b6202711b805482101562005ab95760005260206000200190600090565b805482101562005ab95760005260206000200190600090565b81811062005d35575050565b6000815560010162005d29565b600160401b811162003e1457620138889081549080835581811062005d6657505050565b620052aa926000526020600020918201910162005d29565b600160401b811162003e1457620138869081549080835581811062005d6657505050565b8054600082558062005db2575050565b620052aa9160005260206000209081019062005d29565b600160401b811162003e1457620271199081549080835581811062005d6657505050565b600160401b811162003e14576202711b9081549080835581811062005d6657505050565b620138918054600082558062005db2575050565b90600160401b811162003e145781549080835581811062005d6657505050565b919082811162005e56576001920390565b50600091508190565b811562005e6a570490565b634e487b7160e01b600052601260045260246000fd5b6000908072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8082101562005feb575b506904ee2d6d415b85acef8160201b8083101562005fdb575b50662386f26fc100008083101562005fcb575b506305f5e1008083101562005fbb575b506127108083101562005fab575b50606482101562005f9a575b600a8092101562005f8f575b6001908160218186019562005f1c8762004098565b9662005f2c604051988962003eb7565b80885262005f3d601f199162004098565b01366020890137860101905b62005f56575b5050505090565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a83530491821562005f895791908262005f49565b62005f4f565b916001019162005f07565b919060646002910491019162005efb565b6004919392049101913862005eef565b6008919392049101913862005ee1565b6010919392049101913862005ed1565b6020919392049101913862005ebe565b60409350810491503862005ea5565b601e620052aa91602094936040519586926200601c62005b5b83860162005b06565b017f2c20616e6420776974686472617761626c65206469766964656e64733a200000815262006055825180936020878501910162003fe6565b010360011981018552018362003eb7565b90620060728262003edb565b604090620060838251918262003eb7565b838152809362006096601f199162003edb565b019160005b838110620060a95750505050565b6020908251620060b98162003e46565b6000815282600081830152606080868401526000818401526080830152600060a0830152600060c0830152600060e08301528286010152016200609b565b62006103815462005129565b90816200610e575050565b81601f6000931160011462006121575055565b818352602083206200613f91601f0160051c81019060010162005d29565b8160208120915555565b80549060008155816200615a575050565b6000526020600020908101905b81811062006173575050565b8062006181600192620060f7565b0162006167565b90600160401b811162003e1457815491818155828210620061a857505050565b600052602060002091820191015b818110620061c2575050565b80620061d0600192620060f7565b01620061b6565b8054906000815581620061e8575050565b6000526020600020908101905b81811062006201575050565b806200620f60019262005da2565b01620061f5565b90600160401b811162003e14578154918181558282106200623657505050565b600052602060002091820191015b81811062006250575050565b806200625e60019262005da2565b0162006244565b80546000808355816200627757505050565b6007928284029284840403620062f857815260208120918201915b828110620062a05750505050565b8082859255826001820155620062b96002820162005da2565b620062c76003820162006149565b620062d560048201620061d7565b620062e360058201620061d7565b620062f160068201620060f7565b0162006292565b634e487b7160e01b82526011600452602482fd5b600160401b821162003e14578054908281558183106200632b57505050565b600792828402928484040362005a9557808402908482040362005a955760009182526020822092830192015b828110620063655750505050565b80828592558260018201556200637e6002820162005da2565b6200638c6003820162006149565b6200639a60048201620061d7565b620063a860058201620061d7565b620063b660068201620060f7565b0162006357565b51600681101562003f7c5790565b90600681101562003f7c5760ff80198354169116179055565b90620063f08162004dc4565b60ff80198354169116179055565b906200640a8162003f71565b61ff0082549160081b169061ff001916179055565b90603d81101562003f7c5762ff000082549160101b169062ff00001916179055565b9190601f81116200645157505050565b620052aa926000526020600020906020601f840160051c8301931062006480575b601f0160051c019062005d29565b909150819062006472565b81519192916001600160401b03811162003e1457620064b781620064b0845462005129565b8462006441565b602080601f8311600114620064f6575081929394600092620064ea575b50508160011b916000199060031b1c1916179055565b015190503880620064d4565b90601f198316958460005282600020926000905b88821062006545575050836001959697106200652b575b505050811b019055565b015160001960f88460031b161c1916905538808062006521565b806001859682949686015181550195019301906200650a565b9060ff801983541691151516179055565b9061ff00825491151560081b169061ff001916179055565b9062ff0000825491151560101b169062ff00001916179055565b8151600681101562003f7c57620065b99082620063cb565b602082015160018201556002810160408301516020815191620065dd83856200630c565b01916000526020600020916000905b8282106200665057505050509060e06005620052aa93606084015160038201556200661f6080850151600483016200648b565b01916200663360a08201511515846200655e565b6200664560c08201511515846200656f565b015115159062006587565b805180518555600185016200667560208301516200666e8162004dc4565b82620063e4565b620066906040830151620066898162003f71565b82620063fe565b6060820151603d81101562003f7c57620066aa916200641f565b60808101518051906001600160401b03821162003e145760206002880191620066d4848462005e25565b0190600052602060002060005b8381106200697f575050505060a0015180518051906020600388019162006709848462006188565b01906000526020600020906000905b8382106200695f575050505060048501602082015160208151916200673e838562006216565b019160005260206000206000925b828410620068fb5750505050600585016040820151602081519162006772838562006216565b019160005260206000206000925b8284106200688e5750505050606001518051906001600160401b03821162003e1457620067c082620067b6600689015462005129565b6006890162006441565b602090601f83116001146200681357928260079360209360019660009262006807575b5050600019600383901b1c191690851b1760068801555b01940191019092620065ec565b015190503880620067e3565b906006870160005260206000209160005b601f198516811062006875575083602093600196938793600797601f198116106200685b575b505050811b016006880155620067fa565b015160001960f88460031b161c191690553880806200684a565b9192602060018192868501518155019401920162006824565b80518051906001600160401b03821162003e1457602090620068b1838662005e25565b0183600052602060002060005b838110620068dd57505050506001602081920192019301929062006780565b82516001600160a01b031681830155602090920191600101620068be565b80518051906001600160401b03821162003e14576020906200691e838662005e25565b0183600052602060002060005b8381106200694a5750505050600160208192019201930192906200674c565b6001906020845194019381840155016200692b565b600160208262006972839451876200648b565b0193019101909162006718565b600190602084519401938184015501620066e1565b62013883805482101562005ab9576000526006602060002091020190600090565b62027116805482101562005ab9576000526006602060002091020190600090565b62013882805482101562005ab9576000526006602060002091020190600090565b62027115805482101562005ab9576000526006602060002091020190600090565b620138828054600160401b81101562003e145762006a3c91600182019055620069d6565b91909162006a4f57620052aa91620065a1565b634e487b7160e01b600052600060045260246000fd5b620138838054600160401b81101562003e145762006a3c9160018201905562006994565b620271168054600160401b81101562003e145762006a3c91600182019055620069b5565b620271158054600160401b81101562003e145762006a3c91600182019055620069f7565b1562006ad957565b60405162461bcd60e51b815260206004820152603760248201527f73756d4469766964656e64576569676874466f72546f6b656e436c6173733a206044820152766469766964656e64576569676874206f766572666c6f7760481b6064820152608490fd5b61271081101562005ab9576200355e816200044f60026200553f9460031b01549162006c21565b90811562006b9257606462006b7e818402938462005e5f565b0362006b8a5760019190565b600091508190565b60019150600090565b9190821562006bb35762006b7e818402938462005e5f565b5060019150600090565b1562006bc557565b60405162461bcd60e51b815260206004820152602e60248201527f746f74616c546f6b656e73506572546f6b656e436c6173733a20746f74616c5460448201526d6f6b656e73206f766572666c6f7760901b6064820152608490fd5b612710811015908162005ab957600390811b906004928383019182549260009582879601935b85871062006c59575050505050505090565b97969091929394959762006cbb5762006caf8862006ca762006c816200189f9a9b8762005d10565b905490881b1c6001600160a01b0316600090815260208990526040812054909462006ce3565b999062006bbd565b95949392919062006c47565b603282634e487b7160e01b6000525260246000fd5b906001820191821062006b8a5760019190565b9190820191821062006b8a5760019190565b6201388b5462006d08620035966201620c565b91905062006d15620162d0565b5060009081925b81841062006d37575b62006d3293500462006d71565b905090565b9160ff60078560031b0154161562006d6a57836200363862006d6392620036316200189f969762006b3e565b9262006d1c565b9162006d25565b90801562006d895762006d849162005e5f565b600191565b5050600090600090565b62013891805490600160401b82101562003e14576001820180825582101562005ab9576000908152602090200180546001600160a01b0319166001600160a01b03909216919091179055565b6201388f805490600160401b82101562003e14576001820180825582101562005ab9576000908152602090200180546001600160a01b0319166001600160a01b03909216919091179055565b6201388180549190600160401b83101562003e14578262001e70916001620052aa9501905562005c7f565b6040519062006e658262003e7f565b60188252772a343290383937b3b930b69034b99032bc32b1baba32b21760411b6020830152565b600091825b6020808401908151805187101562007022578162006eb48862006ebc9362005af1565b5101620075f9565b6026928382101562003f7c57601a91820362006f7a578762006edf915162005af1565b5192828401519081101562003f7c570362006f3857509362006f2962006f319262006f2162006f1a60a060406200189f9a0151015162005aab565b5162005aab565b519062006ce3565b959062007607565b9262006e91565b6064906040519062461bcd60e51b82526004820152601b60248201527a2a34329037b831b7b2329034b9903737ba102820acafa1a0a9a41760291b6044820152fd5b9291905062006f938162006eb489869a979a5162005af1565b8281101562003f7c5760140362006fcc5750509062006f296200189f956200363162006fc58462006f31965162005af1565b5162007654565b62006fde9062006eb485855162005af1565b9081101562003f7c5760151462006ffc575b5062006f319062005a85565b9062006f296200701b956200363162006fc58462006f31965162005af1565b9062006ff0565b505050909250803410600014620070985760405162461bcd60e51b815260206004820152603760248201527f546865207061796d656e74206973206e6f7420656e6f7567682e205468652074604482015276037ba30b6103830bcb6b2b73a1039b437bab6321031329604d1b6064820152608490fd5b8034116200746e575b5062027129805460ff8116620070b78162003f71565b60018103620070ed5750505080620070dd620070d7620070e393620076fb565b62007710565b6200779a565b6200553f62006e56565b620070f88162003f71565b60028114808062007460575b15620071e957505050506200711981620076fb565b15620071aa576200712a81620076fb565b156200716e576200713b906200779a565b604051620071498162003e7f565b60158152742a3432903b37ba329034b99032bc32b1baba32b21760591b602082015290565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c696420766f74652070726f6772616d60601b6044820152606490fd5b60405162461bcd60e51b815260206004820152601760248201527624b73b30b634b2103b37ba34b73390383937b3b930b69760491b6044820152606490fd5b620071f48262003f71565b6003821491828062007452575b15620072df5750505050506200721781620076fb565b156200728f5780620070dd620070d76200723193620076fb565b6040516200723f8162003e63565b603a81527f5468652070656e64696e672070726f6772616d2069732065786563757465642060208201527930b33a32b9103b37ba34b7339030b7321030b8383937bb30b61760311b604082015290565b60405162461bcd60e51b815260206004820152602260248201527f496e76616c696420657865637574696e672070656e64696e672070726f677261604482015261369760f11b6064820152608490fd5b620072ea8162003f71565b818062007443575b8062007435575b1562007323575050505090620070e391600360ff19825416179055620070dd620070d782620076fb565b6200732e8162003f71565b821562007420575b50508062007411575b6200737857505050604051620073558162003e7f565b6013815272283937b3b930b6903a32b936b4b730ba32b21760691b602082015290565b60ff191660011790556200738c81620076fb565b15620073a65780620070dd620070d7620070e393620076fb565b60405162461bcd60e51b815260206004820152603e60248201527f5b4572726f72203030335d5468652070726f6772616d206973206e6f7420612060448201527f76616c696420657865637574652070656e64696e672070726f6772616d2e00006064820152608490fd5b5062027128544210156200733f565b6200742d91925062003f71565b388062007336565b5062027128544210620072f9565b506202712754421015620072f2565b506202712854421062007201565b506202712754421062007104565b60018060a01b0390818351166000526201388590816020526040600020541562007565575b6200749f903462005e45565b90156200752157620074c290838551166000528260205260406000205462006ce3565b929015620074e05783511660005260205260406000205538620070a1565b60405162461bcd60e51b81526020600482015260196024820152782a3432903732bb903130b630b731b29037bb32b9333637bb9760391b6044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527b2a3432903830bcb6b2b73a103932ba3ab9371037bb32b9333637bb9760211b6044820152606490fd5b6000908162013886928354915b828110620075be575b50156200758c575b50905062007493565b85518516600160401b82101562003e145762001e70826200749f956001620075b79501905562005c62565b3862007583565b86620075ca8262005c62565b919054818b51169260031b1c1614620075ee57620075e89062005a85565b62007572565b50506001386200757b565b51602681101562003f7c5790565b156200760f57565b60405162461bcd60e51b815260206004820152601f60248201527f54686520746f74616c207061796d656e7420697320746f6f206c617267652e006044820152606490fd5b6000805b604083019060a06200766e818451015162005acf565b5151841015620076f35762007693846200768c838651015162005acf565b5162005af1565b51925101519283516002101562005ab957620076e2620076dc620076ea93620076d4604096620076cc8660606200189f9b015162005af1565b519062006b9b565b929062007607565b62006ce3565b949062007607565b91905062007658565b509250505090565b6020015151156200770b57600190565b600090565b156200771857565b60405162461bcd60e51b815260206004820152600f60248201526e496e76616c69642070726f6772616d60881b6044820152606490fd5b60809060208152602a60208201527f5468652070726f6772616d2069732064656e6965642062792074686520706c7560408201526967696e2073797374656d60b01b60608201520190565b620077a58162013d65565b516201385c57600681101562003f7c5760038114620138035780620078025760405162461bcd60e51b8152602060048201526016602482015275151a19481c1c9bd9dc985b481a5cc81a5b9d985b1a5960521b6044820152606490fd5b600481036200b0d55750906000905b602083015180518310156200b0cf57826200782c9162005af1565b516020810180516026908181101562003f7c57156200b08c5781518181101562003f7c5760010362007a7a5750506040809101906200787060c08351015162005aab565b51926200789260a062007887818651015162005aab565b519451015162005acf565b5195620078a385518551146201505a565b620078b28551885114620150c0565b60005b8551811015620079f857620078cb818662005af1565b51612710908181101562005ab957600160ff6007620078f39360031b01541615151462015122565b620078ff828a62005af1565b516200790c838862005af1565b51908282101562005ab95760066200792a9260031b01549062006ce3565b9062007937848962005af1565b51918383101562005ab9576006620079549360031b01556201517a565b62007960828a62005af1565b51906200796e838862005af1565b518181101562005ab9576001600160a01b039392620079ae916003908662007997878e62005af1565b5116600052811b0160205287600020549062006ce3565b620079ba848a62005af1565b519283101562005ab95760036200189f93620079f296620079dc878e62005af1565b5116600052811b016020528760002055620151d9565b620078b5565b50939262007a159192965062007a0e906201610e565b9262015ff2565b94519262007a238462003e9b565b60008452600036813760005b835181101562007a5d57806200189f62007a4e62007a57938762005af1565b51878a62015be6565b62007a2f565b509450926020925062007a71915062005a85565b91905062007811565b81518181101562003f7c5760020362007d1c575050604080910180519283519562007aca62007aae60a08097015162005aab565b519562007abf818651015162005acf565b519451015162005ae0565b5193875186510362007cc957875184510362007c7557875185510362007c1e575060005b855181101562007c085762007b04818762005af1565b5190612710918281101562005ab95762007b2a60ff6007809360031b0154161562015232565b62007b36828962005af1565b518381101562005ab95760031b01805460ff1916600117905562007b5b818a62005af1565b5162007b68828962005af1565b51908382101562005ab957600562007b849260031b016200648b565b62007b90818662005af1565b5162007b9d828962005af1565b518381101562005ab95760031b6001015562007bba818762005af1565b5162007bc7828962005af1565b518381101562005ab95760031b6002015562007be4818862005af1565b519182101562005ab9576000600662007c029360031b015562005a85565b62007aee565b5095509390506020925062007a71915062005a85565b5162461bcd60e51b815260206004820152603c6024820152600080516020620168e983398151915260448201527b1b911a5d9a59195b9915d95a59da1d081a5cc81b9bdd08195c5d585b60221b6064820152608490fd5b5162461bcd60e51b81526020600482015260396024820152600080516020620168e98339815191526044820152781b959bdd1a5b99d41bddd95c881a5cc81b9bdd08195c5d585b603a1b6064820152608490fd5b5162461bcd60e51b81526020600482015260386024820152600080516020620168e98339815191526044820152771b925b99195e105c9c985e481a5cc81b9bdd08195c5d585b60421b6064820152608490fd5b819593949295518181101562003f7c5760030362008318575050604084019062007d4b60c08351015162005aab565b519362007d6260a062007887818651015162005aab565b519362007d778651855114620018986201637f565b62007d8a8651865114620018986201637f565b60005b865181101562007df35762007da3818662005af1565b519061271082101562005ab957600362007ded9260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b5111156200189862016483565b62007d8d565b50909493919460005b855181101562007f275762007e12818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b0160205262007e5560406000205462007e4d848962005af1565b519062005e45565b9062007e62848a62005af1565b51918383101562005ab957600362007e9193878f5116600052811b016020526040600020556200189862016483565b62007e9d828862005af1565b518181101562005ab9576003908462007eb7858c62005af1565b5116600052811b0160205262007ed860406000205462006f21848962005af1565b62007ee4848a62005af1565b519283101562005ab95760036200189f9362007f219662007f06878e62005af1565b5116600052811b0160205260406000205562001898620164e8565b62007dfc565b5091509162007f3e62007f4591969594966201610e565b9562015ff2565b926040519462007f558662003e7f565b6001865260203681880137516001600160a01b031662007f758662005aab565b526000905b8651821015620083035762007f90828862005af1565b516104405262007fa1855162005c0d565b9660009462007fb1885162005c0d565b610560528594865b885181101562008088578a8962007fe96001600160a01b0362007fdd858462005af1565b51166104405162015edb565b158062008042575b6200800a575b5050620080049062005a85565b62007fb9565b98620080379162001f3582859c6200802e620080049760018060a01b039262005af1565b51169262005af1565b9790508a8962007ff7565b50505061271061044051101562005ab9576001600160a01b0362008067828b62005af1565b5116600052600361044051811b016020528a89604060002054151562007ff1565b509098949897969291939760005b88518110156200812a5761271061044051101562005ab9576001600160a01b03620080c2828b62005af1565b5116600052600361044051811b0160205260406000205415620080f1575b620080eb9062005a85565b62008096565b99620080eb9062008121906001600160a01b03620081108e8d62005af1565b511662001f35826105605162005af1565b9a9050620080e0565b50985096949392919561044051612710811015806103a05262005ab95760031b6004015496620081656200815f878a62014cf2565b62005c0d565b996000998a6106c0525b6103a05162005ab9576106c0518a8110156200822457620081a4620081c19160006103a05260046104405160031b0162005d10565b90546105605160039290921b1c6001600160a01b03169062015f9d565b15620081e0575b620081d66106c05162005a85565b6106c0526200816f565b99808c62001f356200821d93620082046106c05160046104405160031b0162005d10565b905460039190911b1c6001600160a01b03169262005af1565b99620081c8565b509a939794969299919850946000915b838310620082c957505050506103a05162005ab9578051906001600160401b03821162003e1457602090620082738360046104405160031b0162005e25565b0160046104405160031b01600052602060002060005b838110620082ab5750505050620082a09062005a85565b909295919562007f7a565b82516001600160a01b03168183015560209092019160010162008289565b620082fc90620082f5906001600160a01b03620082e7868662005af1565b511662001f35828962005af1565b9262005a85565b9162008234565b9194505062007a719194506020925062005a85565b819593949295518181101562003f7c57600403620085a0575050604080920160c094620083596200834d878451015162005aab565b51968351015162005acf565b51946200837060a062007887818651015162005aab565b5193620083858851885114620018986201637f565b620083988851855114620018986201637f565b620083ab8851865114620018986201637f565b60005b88518110156200841357620083c4818662005af1565b519061271082101562005ab9576200840d916003906001600160a01b03620083ed848e62005af1565b5116600052811b016020526200189f886000205462007de0838a62005af1565b620083ae565b50909691959294939660005b8351811015620085545762008435818862005af1565b5190612710918281101562005ab9576001600160a01b0390600390826200845d858a62005af1565b5116600052811b016020526200847e8b62007e4d848b600020549262005af1565b906200848b848c62005af1565b51918583101562005ab9576003620084c49385620084aa888d62005af1565b5116600052811b016020528a600020556200189862016483565b620084d0828a62005af1565b518381101562005ab95760039082620084ea858b62005af1565b5116600052811b016020526200850b8b62006f21848b600020549262005af1565b9190506200851a838b62005af1565b519384101562005ab9576200854e9360039162008538858b62005af1565b5116600052811b01602052876000205562005a85565b6200841f565b50946200857792975062007f3e9193945062008570906201610e565b9362015ff2565b9260005b835181101562007a5d57806200189f62007a4e6200859a938762005af1565b6200857b565b819594939551908082101562003f7c576005918203620087b65750505060409182850190620085e460a0620085d9818551015162005aab565b519351015162005acf565b51928251845103620087655760005b83518110156200864b5762008609818562005af1565b519061271082101562005ab9576003620086459260018060a01b038b5116600052811b016020526200189f876000205462007de0838962005af1565b620085f3565b509092919260005b8451811015620086e65762008669818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b01602052620086a3886000205462007e4d848962005af1565b620086af848a62005af1565b519283101562005ab95760036200189f93620086e0968e5116600052811b0160205289600020556200189862016483565b62008653565b50959392620086f79192506201610e565b91805193620087068562003e7f565b6001855260203681870137516001600160a01b0316620087268562005aab565b525194620087348662003e9b565b60008652600036813760005b835181101562007a5d57806200189f62007a4e6200875f938762005af1565b62008740565b845162461bcd60e51b81526020600482015260356024820152600080516020620168c9833981519152604482015274195b905b5bdd5b9d081a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b8296939496518181101562003f7c5760060362008a2057505050906040809201620087e660c08251015162005aab565b5194620087fd60a0620085d9818551015162005aab565b51928651835103620089cf578651845103620089835760005b87518110156200887b576200882c818562005af1565b519061271082101562005ab95762008875916003906001600160a01b0362008855848d62005af1565b5116600052811b016020526200189f876000205462007de0838962005af1565b62008816565b509092919260005b87518110156200892f5762008899818662005af1565b516127108082101562005ab9576001600160a01b03929160039084620088c0858e62005af1565b5116600052811b01602052620088e0886000205462007e4d848962005af1565b620088ec848a62005af1565b519283101562005ab95760036200189f9362008929966200890f8f889062005af1565b5116600052811b0160205289600020556200189862016483565b62008883565b5095926200894491925062007a0e906201610e565b925194620089528662003e9b565b60008652600036813760005b835181101562007a5d57806200189f62007a4e6200897d938762005af1565b6200895e565b845162461bcd60e51b81526020600482015260306024820152600080516020620169a983398151915260448201526f1b9d1cc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b845162461bcd60e51b81526020600482015260356024820152600080516020620168698339815191526044820152741b90db185cdcd95cc81a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b82518181101562003f7c5760070362008b705750505060408091019362008a4c60c08651015162005aab565b519262008a5e60a08751015162005aab565b519551519162008a768551885114620018986201637f565b60005b855181101562007c085762008b6a906200189f6001600160a01b038260028862008b528e62008b478e62008b3d8f8962008ab48a8562005af1565b511660005262008af18962008ae981620138809a8b60205262008ae360ff876000205416156200189862016450565b62005af1565b519662005af1565b51968a62008b2783519b8c9662008b088862003df8565b600188526060602089019860008a528781019b8c52019b8c5262005af1565b511660005260205260002097511515886200655e565b511515866200656f565b51600185016200648b565b5191015562008b62838a62005af1565b511662006e2b565b62008a79565b82519596959394928185101562003f7c57600894850362008c685750505062008ba260c0604080950151015162005aab565b519360005b855181101562008c535762008c4d906001600160a01b038062008bcb838a62005af1565b511660005262013880908160205262008c2260ff62008bf96001828c600020541615151462001898620163af565b8262008c06868d62005af1565b5116600052836020528960002054891c16156200189862016417565b62008c2e838a62005af1565b51166000526020528560002061010061ff001982541617905562005a85565b62008ba7565b50949093506020925062007a71915062005a85565b80518281101562003f7c5760090362008d3d5750505062008c9260c0604080950151015162005aab565b519360005b855181101562008c535762008d3790866001600160a01b038062008cbc848462005af1565b511660005262008d106001898362008cf28762013880978860205262008ae38660ff8097600020541615151462001898620163af565b5116600052846020528a600020548a1c1615151462001898620163e2565b62008d1c838a62005af1565b51166000526020528560002061ff0019815416905562005a85565b62008c97565b8097969492939597518281101562003f7c57600a0362008e1c575050505060408094019162008d8260a062008d7760c08651015162005aab565b519451015162005aab565b519162008d978451845114620018986201637f565b60005b845181101562007a5d5762008e16906001600160a01b038062008dbe838962005af1565b5116600052620138808060205262008de6600160ff8c600020541615151462001898620163af565b62008df2838862005af1565b519162008e00848a62005af1565b5116600052602052600289600020015562005a85565b62008d9a565b80979597518281101562003f7c57600b0362008eec575050505060408092019362008e4c60c08651015162005aab565b519451519162008e648651845114620018986201637f565b60005b865181101562007a5d5762008ee6906200189f6001600160a01b038062008e8f848c62005af1565b5116600052620138808060205262008eb7600160ff8b600020541615151462001898620163af565b62008ec3848962005af1565b519162008ed1858d62005af1565b5116600052602052600188600020016200648b565b62008e67565b80979495939697518281101562003f7c57600c036200903a5750505060400160609182825101519360005b8551811015620090245760e062008f3382878751015162005af1565b5101511562008fbb5762008f5762008f5082878751015162005af1565b5162006a18565b62013882805460001992919083810190811162005a955762008f7a8a91620069d6565b5001805461ff0019166101001790555491820191821162005a95578762008fa562008fb593620069d6565b5001805460ff1916905562005a85565b62008f17565b62008fd662008fcf82878751015162005af1565b5162006a65565b62013882805460001992919083810190811162005a955762008ff98a9162006994565b5001805461ff0019166101001790555491820191821162005a95578762008fa562008fb59362006994565b5095915093506020925062007a71915062005a85565b8097969593929497518281101562003f7c57600d03620091915750506040019460206200906c60a08851015162005aab565b51965101519162009081875184511462014d99565b60005b875181101562007c08578080878a620090a262009132958962005af1565b5115620091385762009103620090ea8483620090d5620090c86200910e98889762005af1565b5162013882541162014e22565b62008ae38d620090f1620090ea858562005af1565b51620069d6565b509060ff9889920154901c1662014e7a565b500154161562014edb565b866200911f620090ea838c62005af1565b5001805460ff1916600117905562005a85565b62009084565b6200910362009179848362009164620091576200918098889762005af1565b5162013883541162014e22565b62008ae38d620090f162009179858562005af1565b5162006994565b866200911f62009179838c62005af1565b8097949397518281101562003f7c57600e0362009278575050604001916020620091c060a08551015162005aab565b519351015195620091d5845188511462014d99565b60005b845181101562007c085780620091f3620091ff928a62005af1565b51620092055762005a85565b620091d8565b6200922262009215828862005af1565b5162013882541162014f3c565b62009267876200924c6200923b620090ea858b62005af1565b5060ff9283910154891c1662014f95565b886200925d620090ea858b62005af1565b5001541662014ff7565b8662008fa5620090ea838962005af1565b809192935096949596518281101562003f7c57600f036200939357505060400160609182825101519360005b8551811015620090245760e0620092c082878751015162005af1565b510151156200933157620092dd62008f5082878751015162005af1565b62013882805460001992919083810190811162005a9557620093008a91620069d6565b5001805461ff0019166101001790555491820191821162005a9557876200911f6200932b93620069d6565b620092a4565b6200934562008fcf82878751015162005af1565b62013882805460001992919083810190811162005a9557620093688a9162006994565b5001805461ff0019166101001790555491820191821162005a9557876200911f6200932b9362006994565b8091929394969550518281101562003f7c57601003620094385750506040015190620093c860a0608084015193015162005aab565b5193620093dd8351865114620018986201637f565b60005b83518110156200942557806200189f620093ff6200941f938762005af1565b516200940b8162004dc4565b62009417838a62005af1565b519062014d00565b620093e0565b509350916020915062007a719062005a85565b80959295518281101562003f7c57601103620096c3575050906040809401916200946d60a062008d7760c08651015162005aab565b51916200947e845184511462014ca6565b60005b8451811015620094f757620094f1906200189f6001600160a01b0380620094a9848a62005af1565b51166000526201388580602052620094cb8b6000205462006f21868b62005af1565b919092620094da868c62005af1565b51166000526020528a600020556200189862016335565b62009481565b509394509162009508915062015ff2565b906201388692835494620095226200815f85518862014cf2565b91600093845b88811062009683575060005b8651811015620095db576000805b8a81106200958c575b501562009564575b6200955e9062005a85565b62009534565b946200955e9062009583906001600160a01b03620082e7898b62005af1565b95905062009553565b620095978162005c62565b90546001600160a01b0360039290921b1c811690620095b7858c62005af1565b511614620095d057620095ca9062005a85565b62009542565b50506001386200954b565b50965094909350620095ed8362005c0d565b805191906001600160401b03831162003e14576020906200960e8462005d7e565b0190600052602060002060005b83811062009665575050505060005b828110620096425750505062007a7160209162005a85565b6200965f906200189f6001600160a01b0362001e63838662005af1565b6200962a565b82516001600160a01b0316818301556020909201916001016200961b565b94620096b6620096bd91620096988862005c62565b905460039190911b1c6001600160a01b031662001f35828962005af1565b9562005a85565b62009528565b80518281101562003f7c5760120362009935575050604080940191620096f460a062008d7760c08651015162005aab565b519162009705845184511462014ca6565b60005b8451811015620097585762009752906200189f6001600160a01b038062009730848a62005af1565b51166000526201388580602052620094cb8b6000205462007e4d868b62005af1565b62009708565b509491509291620097699062015ff2565b906201388680546200977b8162005c0d565b9260009485925b8084106200982f5750505050620097998362005c0d565b805191906001600160401b03831162003e1457602090620097ba8462005d7e565b0190600052602060002060005b83811062009811575050505060005b828110620097ee5750505062007a7160209162005a85565b6200980b906200189f6001600160a01b0362001e63838662005af1565b620097d6565b82516001600160a01b031681830155602090920191600101620097c7565b9297600097929597949194998a5b86518110156200992357620098528b62005c62565b90546001600160a01b0360039290921b1c81169062009872838a62005af1565b5116146200988b57620098859062005a85565b6200983d565b509950976001979592979491945b80620098f2575b15620098b857620098b19062005a85565b9262009782565b95620098eb620098b191620098cd8962005c62565b905460039190911b1c6001600160a01b031662001f35828a62005af1565b9662005a85565b50620098fe8162005c62565b60018060a01b0391549060031b1c1660005262013885602052826000205415620098a0565b50999890989795929794919462009899565b80959295518281101562003f7c576013036200999657505060408091015101519260005b84518110156200998557806200189f620099786200997f938862005af1565b5162015883565b62009959565b5092509062007a7160209162005a85565b8051918083101562003f7c57601492830362009b3957505050604080910190620099c560c08351015162005aab565b5192620099dc60a062007887818651015162005aab565b5195620099ed85518551146201505a565b620099fc8551885114620150c0565b60005b855181101562009ae45762009a15818962005af1565b5162009a22828762005af1565b51612710918282101562005ab957600662009a439260031b01549062006ce3565b9062009a50848962005af1565b51918383101562005ab957600662009a6d9360031b01556201517a565b62009a79828a62005af1565b519062009a87838862005af1565b518181101562005ab9576001600160a01b03939262009ab0916003908662007997878e62005af1565b62009abc848a62005af1565b519283101562005ab95760036200189f9362009ade96620079dc878e62005af1565b620099ff565b50939262009afa9192965062007a0e906201610e565b94519262009b088462003e9b565b60008452600036813760005b835181101562007a5d57806200189f62007a4e62009b33938762005af1565b62009b14565b81969495939651908082101562003f7c5760159182036200a0b15750505050604084019062009b6d60c08351015162005aab565b519362009b8460a062007887818651015162005aab565b519362009b998651855114620018986201637f565b62009bac8651865114620018986201637f565b60005b865181101562009c085762009bc5818662005af1565b519061271082101562005ab957600362009c029260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b62009baf565b50909493919460005b855181101562009d195762009c27818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b0160205262009c6260406000205462007e4d848962005af1565b9062009c6f848a62005af1565b51918383101562005ab957600362009c9e93878f5116600052811b016020526040600020556200189862016483565b62009caa828862005af1565b518181101562005ab9576003908462009cc4858c62005af1565b5116600052811b0160205262009ce560406000205462006f21848962005af1565b62009cf1848a62005af1565b519283101562005ab95760036200189f9362009d139662007f06878e62005af1565b62009c11565b5091509162007f3e62009d3091969594966201610e565b926040519462009d408662003e7f565b6001865260203681880137516001600160a01b031662009d608662005aab565b526000905b8651821015620083035762009d7b828862005af1565b516104e05262009d8c855162005c0d565b9660009462009d9c885162005c0d565b6102c0528594865b885181101562009e6a578a8962009dd46001600160a01b0362009dc8858462005af1565b51166104e05162015edb565b158062009e24575b62009df5575b505062009def9062005a85565b62009da4565b9862009e199162001f3582859c6200802e62009def9760018060a01b039262005af1565b9790508a8962009de2565b5050506127106104e051101562005ab9576001600160a01b0362009e49828b62005af1565b511660005260036104e051811b016020528a89604060002054151562009ddc565b509098949897969291939760005b885181101562009f0c576127106104e051101562005ab9576001600160a01b0362009ea4828b62005af1565b511660005260036104e051811b016020526040600020541562009ed3575b62009ecd9062005a85565b62009e78565b9962009ecd9062009f03906001600160a01b0362009ef28e8d62005af1565b511662001f35826102c05162005af1565b9a905062009ec2565b5098509694939291956104e051612710811015806108a05262005ab95760031b600401549662009f416200815f878a62014cf2565b996000998a610660525b6108a05162005ab957610660518a81101562009fe75762009f8062009f9d9160006108a05260046104e05160031b0162005d10565b90546102c05160039290921b1c6001600160a01b03169062015f9d565b1562009fbc575b62009fb26106605162005a85565b6106605262009f4b565b99808c62001f3562009fe093620082046106605160046104e05160031b0162005d10565b9962009fa4565b509a939794969299919850946000915b8383106200a08c57505050506108a05162005ab9578051906001600160401b03821162003e14576020906200a0368360046104e05160031b0162005e25565b0160046104e05160031b01600052602060002060005b8381106200a06e57505050506200a0639062005a85565b909295919562009d65565b82516001600160a01b0316818301556020909201916001016200a04c565b6200a0aa90620082f5906001600160a01b03620082e7868662005af1565b9162009ff7565b82979496959751928184101562003f7c5760169384036200a11e57505050505060c060406200a0e4920151015162005aab565b519260005b845181101562009985576200a118906200189f6001600160a01b036200a110838962005af1565b511662006ddf565b6200a0e9565b80518281101562003f7c576017036200a1775760405162461bcd60e51b81526020600482015260296024820152600080516020620169698339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b80518281101562003f7c576018036200a1eb57505050505060c060406200a1a2920151015162005aab565b5162013892805460ff191660011790559260005b845181101562009985576200a1e5906200189f6001600160a01b036200a1dd838962005af1565b511662006d93565b6200a1b6565b80979697518281101562003f7c576019036200a37057505050505060008080604080940160a0808251015180516200a337575b5050519060e0820151916200a24262006f1a60c060018060a01b0393015162005aab565b511690602083519301915af1903d156200a32e573d916200a2638362004098565b926200a2728351948562003eb7565b83523d6000602085013e5b156200a29257505062007a7160209162005a85565b62005a8192506200a30f8151927f5468652063616c6c20746f2074686520636f6e7472616374206973206e6f7420602085015278039bab1b1b2b9b9b33ab617102932ba3ab937103230ba309d1603d1b838501528381516200a2fe816059946020868601910162003fe6565b810103603981018552018362003eb7565b5162461bcd60e51b81526020600482015291829160248301906200400b565b6060916200a27d565b6200a3429062005aab565b51516200a351575b806200a21e565b81925062006f1a906200a3679251015162005aab565b5190386200a34a565b80518281101562003f7c57601a036200a47257505050506200a39b60a0604080940151015162005aab565b51906200a3ac600383511462014ca6565b6200a3b78262005aab565b51926200a3d06200a3c88462005acf565b519362005ae0565b51926200a4385750509162007a71916001602094146000146200a431576200a410906200a4036201388d91825462006ce3565b90915562001898620162d0565b6200189f6201388e6200a424815462006cd0565b909155620018986201630a565b5062005a85565b60649250519062461bcd60e51b825260206004830152602482015273496e76616c6964207061796d656e74207479706560601b6044820152fd5b809192939450518281101562003f7c57601b036200a8f6575050505050906200a4b26201388b54620035a86200a4a76201620c565b612710831062005a52565b50506200a4be620162d0565b506000805b61271081106200a891575b50506200a4da62006cf5565b906200a4ea6202712a5462005c0d565b9060009384905b6127108210156200a886578160031b9260ff600785015416156200a642576000976002850154156200a63057889798975b62005ab95760048501548810156200a616576200a543886004870162005d10565b9054600391821b1c6001600160a01b0316600081815291870160205260409182902054919a916200a576908a9062006b9b565b9b906200a582620162d0565b6200a58d9162005a52565b60009b60028901546200a5a09162006b9b565b906200a5ab620162d0565b6200a5b69162005a52565b828d5262013887602052818d2054906200a5d09162006ce3565b90918d20556200a5df620162d0565b6200a5ea9162005a52565b6200a5f6828962005af1565b526200a6029062005a85565b976200a60e9062005a85565b97986200a522565b929093506200a62791965062005a85565b9095946200a4f1565b929093506200a6279196975062005a85565b959392509350505b6200a6558262005c0d565b91600091825b8281106200a7f05750505062013888908154926200a67e6200815f858462014cf2565b9360009081905b8082106200a7b557505060005b8381106200a7115750508351939150506001600160401b03831162003e14576020906200a6bf8462005d42565b0190600052602060002060005b8381106200a6f3575050505062007a7160209160006201388d5560006201388e5562005a85565b82516001600160a01b0316818301556020909201916001016200a6cc565b6000805b8381106200a76d575b50156200a737575b6200a7319062005a85565b6200a692565b906200a731906200a764906001600160a01b036200a756858762005af1565b511662001f35828a62005af1565b9190506200a726565b6001600160a01b03806200a782858862005af1565b5116906200a791838b62005af1565b5116146200a7aa576200a7a49062005a85565b6200a715565b50506001386200a71e565b9091620082f56200a7e9916200a7cb8562005c45565b905460039190911b1c6001600160a01b031662001f35828b62005af1565b906200a685565b6000805b8581106200a83e575b50156200a816575b6200a8109062005a85565b6200a65b565b926200a810906200a835906001600160a01b03620082e7878662005af1565b9390506200a805565b6001600160a01b03806200a853858762005af1565b5116906200a862838a62005af1565b5116146200a87b576200a8759062005a85565b6200a7f4565b50506001386200a7fd565b93505092906200a64a565b8060031b9060ff600783015416156200a8ef576200a8dd620076dc6200189f946200a8d16200a8e99560026200a8c78762006b3e565b9101549062006b9b565b929062001898620162d0565b939062001898620162d0565b6200a4c3565b506200a4ce565b80518281101562003f7c57601c036200a94f5760405162461bcd60e51b81526020600482015260296024820152600080516020620169898339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b80518281101562003f7c57601d036200a975575b505050505062007a7160209162005a85565b80518281101562003f7c57601e146200a9635780518281101562003f7c57601f036200a9cb57505050506020916200a9c16200a9ba604062007a719401515162005aab565b51620158ba565b913880806200a963565b80518281101562003f7c576020036200a9f1575b505050505062007a716020916200a9c1565b8051908282101562003f7c5760218092036200aa0f575b506200a9df565b8051838110156200b077576022036200aa505750505050505062007a716020916201389260ff1981541690556200aa4562005e11565b91388080806200aa08565b8051838110156200b077576023036200aa77575b50505050505062007a716020916200aa45565b8051838110156200b077576024146200aa64578051838110156200b077576025146200aa64579795949751918210156200b0635750036200b026575060408401906200aac860c08351015162005aab565b51936200aadf60a062007887818651015162005aab565b51936200aaf48651855114620018986201637f565b6200ab078651865114620018986201637f565b60005b86518110156200ab63576200ab20818662005af1565b519061271082101562005ab95760036200ab5d9260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b6200ab0a565b50909493919460005b85518110156200ac74576200ab82818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b016020526200abbd60406000205462007e4d848962005af1565b906200abca848a62005af1565b51918383101562005ab95760036200abf993878f5116600052811b016020526040600020556200189862016483565b6200ac05828862005af1565b518181101562005ab957600390846200ac1f858c62005af1565b5116600052811b016020526200ac4060406000205462006f21848962005af1565b6200ac4c848a62005af1565b519283101562005ab95760036200189f936200ac6e9662007f06878e62005af1565b6200ab6c565b5091509162007f3e6200ac8b91969594966201610e565b92604051946200ac9b8662003e7f565b6001865260203681880137516001600160a01b03166200acbb8662005aab565b526000905b86518210156200b00c576200acd6828862005af1565b516107e0526200ace7855162005c0d565b966000946200acf7885162005c0d565b610300528594865b88518110156200adc5578a896200ad2f6001600160a01b036200ad23858462005af1565b51166107e05162015edb565b15806200ad7f575b6200ad50575b50506200ad4a9062005a85565b6200acff565b986200ad749162001f3582859c6200802e6200ad4a9760018060a01b039262005af1565b9790508a896200ad3d565b5050506127106107e051101562005ab9576001600160a01b036200ada4828b62005af1565b511660005260036107e051811b016020528a8960406000205415156200ad37565b509098949897969291939760005b88518110156200ae67576127106107e051101562005ab9576001600160a01b036200adff828b62005af1565b511660005260036107e051811b01602052604060002054156200ae2e575b6200ae289062005a85565b6200add3565b996200ae28906200ae5e906001600160a01b036200ae4d8e8d62005af1565b511662001f35826103005162005af1565b9a90506200ae1d565b5098509694939291956107e051612710811015806108805262005ab95760031b60040154966200ae9c6200815f878a62014cf2565b996000998a610800525b6108805162005ab957610800518a8110156200af42576200aedb6200aef89160006108805260046107e05160031b0162005d10565b90546103005160039290921b1c6001600160a01b03169062015f9d565b156200af17575b6200af0d6108005162005a85565b610800526200aea6565b99808c62001f356200af3b93620082046108005160046107e05160031b0162005d10565b996200aeff565b509a939794969299919850946000915b8383106200afe757505050506108805162005ab9578051906001600160401b03821162003e14576020906200af918360046107e05160031b0162005e25565b0160046107e05160031b01600052602060002060005b8381106200afc957505050506200afbe9062005a85565b90929591956200acc0565b82516001600160a01b0316818301556020909201916001016200afa7565b6200b00590620082f5906001600160a01b03620082e7868662005af1565b916200af52565b9194505062007a719194506020925091388080806200aa64565b6064906040519062461bcd60e51b825260206004830152602482015275496e76616c6964206f7065726174696f6e207479706560501b6044820152fd5b634e487b7160e01b60005260045260246000fd5b82634e487b7160e01b60005260045260246000fd5b60405162461bcd60e51b815260206004820152601b60248201527a13dc195c985d1a5bdb881d1e5c19481a5cc81d5b9919599a5b9959602a1b6044820152606490fd5b50915050565b600281036200b0f95760405162461bcd60e51b81528062005a81600482016200774f565b6001146200b1045750565b906200b114620138835462006066565b805190600160401b821162003e1457620271165482620271165580831062013787575b506020016202711660005260206000206000915b83831062013766575050505060005b62013883548110156200b19457806200189f6200b17b6200b18e9362006994565b506200b18783620069b5565b9062013c9a565b6200b15a565b506200b1a4620138825462006066565b805190600160401b821162003e14576202711554826202711555808310620136c9575b506020016202711560005260206000206000915b838310620136a8575050505060005b62013882548110156200b21d57806200189f6200b20b6200b21793620069d6565b506200b18783620069f7565b6200b1ea565b5060005b612710811015806200b3e957600160ff6201389a8460031b0154161515146200b257575b506200b2519062005a85565b6200b221565b916000835b62005ab957620138978360031b01548110156200b2c9576200b2c0929350600092816200b2938593620138978860031b0162005d10565b9054600391821b1c6001600160a01b031660009081529087901b6201389601602052604081205562005a85565b9093926200b25c565b5091604051906200b2da8262003e9b565b6000825262005ab9578051906001600160401b03821162003e14576020906200b30c83620138978660031b0162005e25565b01620138978360031b01600052602060002060005b8381106200b3cb5750505050600381901b6201389a8101805460ff191690556000620138938201819055620138948201819055620138958201556201389801546200b25191906200b3729062005129565b601f908181116200b39f575b50506000620138988260031b01556000620138998260031b0155906200b245565b6200b3c391620138988460031b016000526020600020910160051c81019062005d29565b38806200b37e565b82516001600160a01b0316818301556020909201916001016200b321565b505060005b612710811062013613575060005b62013881548110156200b45957806200b4196200b4539262005c7f565b60018060a01b0391549060031b1c166000526202711360205260006002604082208281556200b44b60018201620060f7565b015562005a85565b6200b3fc565b506200b469620138815462005c0d565b8051906001600160401b03821162003e1457600160401b821162003e14576020906202711454836202711455808410620135f0575b500162027114600052602060002060005b838110620135d2575050505060005b62013881548110156200b533576200b4d68162005c7f565b9054620271145460039290921b1c6001600160a01b0316919081101562005ab9576202711460005260008051602062016909833981519152810180546001600160a01b0319169092179091556200b52d9062005a85565b6200b4be565b509060005b62013881548110156200b5f557806200b5556200b5aa9262005c7f565b9060018060a01b03918291549060031b1c1660005262013880602052604080600020916200b5838462005c7f565b90549060031b1c1660005262027113602052600020908082036200b5b0575b505062005a85565b6200b538565b600280916200b5d660ff6200b5c981845416876200655e565b825460081c16856200656f565b6200b5e860018201600186016201392e565b015491015538806200b5a2565b5060005b6202711d548110156200b64957806200b6166200b6439262005c9c565b60018060a01b0391549060031b1c166000526202711c6020526200189f6040600020606481019062005d29565b6200b5f9565b506200b6596201388a5462005c0d565b8051906001600160401b03821162003e1457600160401b821162003e14576020906202711d54836202711d55808410620135af575b50016202711d600052602060002060005b83811062013591575050505060005b6201388a548110156200b6f257806200189f6200b6cf6200b6ec9362005cb9565b905460039190911b1c6001600160a01b031662001e708362005c9c565b6200b6ae565b5060005b6201388a548110156200b78057806200b7136200b7679262005cb9565b9060018060a01b03918291549060031b1c1660005262013889602052604080600020916200b7418462005cb9565b90549060031b1c166000526202711c602052600020908082036200b76d57505062005a85565b6200b6f6565b6200b7789162013d2e565b38806200b5a2565b506201388b546202711e556201388c546202711f556201388d5462027120556201388e5462027121556201388f546001600160401b03811162003e1457600160401b811162003e1457620271225481620271225580821062013562575b506202712260009081527f846ab89c81ea9339188216a1864da1a19ebe28d411cbec99efa70ca6d389710d80546000805160206201688983398151915291905b848410620135405750505050506201389054600160401b811162003e14576202712354816202712355808210620134fd575b50620271236000908152600080516020620168a98339815191527f7f73709277f72a9bc7b284375e83603a53394744e9fa86da811e86c2aa78e05e5b838310620134df57505062013891549150506001600160401b03811162003e1457600160401b811162003e14576202712454816202712455808210620134b0575b506202712460009081527f8f332db73d3937798ea82422156d059730b0b3058606439b57b7ae623e94536680546000805160206201692983398151915291905b8484106201348e57505050505060ff620138925416151560ff8019620271255416911617620271255560005b62027119548110156200b98457806200b9556200b97e9262005cd6565b905460039190911b1c6001600160a01b0316600090815262027118602052604081205562005a85565b6200b938565b506200b994620138865462005c0d565b8051906001600160401b03821162003e14576020906200b9b48362005dc9565b0162027119600052602060002060005b83811062013470575050505060005b62013886548110156200ba1757806200189f6200b9f46200ba119362005c62565b905460039190911b1c6001600160a01b031662001e708362005cd6565b6200b9d3565b5060005b62013886548110156200ba8957806200ba386200ba839262005c62565b9060018060a01b03918291549060031b1c166000526201388560205260408060002054916200ba678462005c62565b90549060031b1c16600052620271186020526000205562005a85565b6200ba1b565b5060005b6202711b548110156200bad957806200baaa6200bad39262005cf3565b905460039190911b1c6001600160a01b031660009081526202711a602052604081205562005a85565b6200ba8d565b506200bae9620138885462005c0d565b8051906001600160401b03821162003e14576020906200bb098362005ded565b016202711b600052602060002060005b83811062013452575050505060005b62013888548110156200bb6c57806200189f6200bb496200bb669362005c45565b905460039190911b1c6001600160a01b031662001e708362005cf3565b6200bb28565b5060005b62013888548110156200bbde57806200bb8d6200bbd89262005c45565b9060018060a01b03918291549060031b1c166000526201388760205260408060002054916200bbbc8462005c45565b90549060031b1c166000526202711a6020526000205562005a85565b6200bb70565b50906000905b60208301518051831015620109f357826200bbff9162005af1565b516020810151602681101562003f7c57156200b08c576020810151602681101562003f7c576001036200c1cf57604001906200bc4060c08351015162005aab565b51936200bc5760a062007887818651015162005aab565b51916200bc6886518551146201505a565b6200bc778651845114620150c0565b60005b86518110156200bdda576200bc90818662005af1565b5161271081101562005ab957600160ff6201389a6200bcb89360031b01541615151462015122565b6200bcc4818562005af1565b516200bcd1828762005af1565b519061271082101562005ab957620138996200bcf39260031b01549062006ce3565b906200bd00838862005af1565b519161271083101562005ab957620138996200bd219360031b01556201517a565b6200bd2d818562005af1565b516200bd3a828762005af1565b519061271082101562005ab9576200bd7e9162013896906001600160a01b036200bd65868d62005af1565b511660005260031b016020526040600020549062006ce3565b91906200bd8c828862005af1565b519061271082101562005ab9576200bdd4936200189f9262013896906001600160a01b036200bdbc878f62005af1565b511660005260031b01602052604060002055620151d9565b6200bc7a565b50926200bdf191925062008570909594956201610e565b916040516200be008162003e9b565b6000815260003681376000945b80518610156200c1b5576200be23868262005af1565b5160e0526200be33855162005c0d565b966000946200be43845162005c0d565b60c05260009460005b88518110156200bf12578a896200be7b6001600160a01b036200be70858462005af1565b511660e05162015f44565b15806200becb575b6200be9c575b50506200be969062005a85565b6200be4c565b986200bec09162001f3582859c6200802e6200be969760018060a01b039262005af1565b9790508a896200be89565b50505061271060e051101562005ab9576001600160a01b036200beef828b62005af1565b51166000526201389660e05160031b016020528a8960406000205415156200be83565b50909895979498969291939660005b88518110156200bfae5761271060e051101562005ab9576001600160a01b03806200bf4d838c62005af1565b51166000526201389660e05160031b01602052604060002054156200bf7f575b506200bf799062005a85565b6200bf21565b819b6200bfa6916200bf966200bf79948d62005af1565b511662001f358260c05162005af1565b9a906200bf6d565b5098509695929190939660e051612710811015806102805262005ab95760031b620138970154986200bfe56200815f898c62014cf2565b610380526000610540526000610600525b6102805162005ab957610600518a8110156200c0be576200c02c6200c04b916000610280526201389760e05160031b0162005d10565b905460c0516001600160a01b03939260031b9190911c83169062015f9d565b156200c06b575b506200c0616106005162005a85565b610600526200bff6565b6000610280526200c08a610600516201389760e05160031b0162005d10565b90549060031b1c166200c0a4610540516103805162005af1565b526200c0b36105405162005a85565b61054052386200c052565b50979294959093985095909560005b8281106200c169575050506102805162005ab95761038051516001600160401b03811162003e14576200c10b816201389760e05160031b0162005e25565b602061038051016201389760e05160031b01600052602060002060005b8381106200c14b57505050506200c13f9062005a85565b9492959091956200be0d565b82516001600160a01b0316818301556020909201916001016200c128565b6200c1af906001600160a01b036200c182828562005af1565b51166200c196610540516103805162005af1565b526200c1a56105405162005a85565b6105405262005a85565b6200c0cd565b5050939092506200c1c7915062005a85565b90916200bbe4565b906020829493940151602681101562003f7c576002036200c38c576040809201908151938451916200c2266200c20a60a08098015162005aab565b51966200c21b818751015162005acf565b519551015162005ae0565b5194835187510362007cc957835185510362007c7557835186510362007c1e575060005b86518110156200c379576200c260818862005af1565b5161271081101562005ab95760ff6201389a6200c2849260031b0154161562015232565b6200c290818862005af1565b5161271081101562005ab95760031b6201389a01805460ff191660011790556200c2bb818562005af1565b516200c2c8828962005af1565b519061271082101562005ab957620138986200c2e89260031b016200648b565b6200c2f4818662005af1565b516200c301828962005af1565b5161271081101562005ab95760031b6201389401556200c322818762005af1565b516200c32f828962005af1565b5161271081101562005ab95760031b6201389501556200c350818862005af1565b519061271082101562005ab9576000620138996200c3739360031b015562005a85565b6200c24a565b509592509350506200c1c7915062005a85565b9092916020840151602681101562003f7c576003036200c9be5760408401906200c3bb60c08351015162005aab565b51906200c3d260a062007887818651015162005aab565b51936200c3e78351855114620018986201637f565b6200c3fa8351865114620018986201637f565b60005b83518110156200c459576200c413818662005af1565b519061271082101562005ab957620138966200c4539260018060a01b038b511660005260031b016020526200189f60406000205462007de0838a62005af1565b6200c3fd565b509095919560005b87518110156200c5ab576200c477818662005af1565b5161271081101562005ab957620138969060018060a01b0386511660005260031b016020526200c4b260406000205462007e4d838962005af1565b906200c4bf838862005af1565b519161271083101562005ab957620138966200c4f99360018060a01b0389511660005260031b016020526040600020556200189862016483565b6200c505818662005af1565b5161271081101562005ab95762013896906001600160a01b036200c52a848c62005af1565b511660005260031b016020526200c54c60406000205462006f21838962005af1565b91906200c55a828862005af1565b519061271082101562005ab9576200c5a593620138966200189f938d6200c5898760018060a01b039262005af1565b511660005260031b0160205260406000205562001898620164e8565b6200c461565b50926200c5ca919294506200c5c3909695966201610e565b9462015ff2565b92604051906200c5da8262003e7f565b6001825260203681840137516001600160a01b03166200c5fa8262005aab565b526000945b80518610156200c1b5576200c615868262005af1565b516103c0526200c626855162005c0d565b966000946200c636845162005c0d565b6108c05260009460005b88518110156200c709578a896200c6706001600160a01b036200c664858462005af1565b51166103c05162015f44565b15806200c6c0575b6200c691575b50506200c68b9062005a85565b6200c640565b986200c6b59162001f3582859c6200802e6200c68b9760018060a01b039262005af1565b9790508a896200c67e565b5050506127106103c051101562005ab9576001600160a01b036200c6e5828b62005af1565b5116600052620138966103c05160031b016020528a8960406000205415156200c678565b50909895979498969291939660005b88518110156200c7af576127106103c051101562005ab9576001600160a01b036200c744828b62005af1565b5116600052620138966103c05160031b01602052604060002054156200c776575b6200c7709062005a85565b6200c718565b996200c770906200c7a6906001600160a01b036200c7958e8d62005af1565b511662001f35826108c05162005af1565b9a90506200c765565b509850969592919093966103c051612710811015806101605262005ab95760031b620138970154986200c7e76200815f898c62014cf2565b610460526000610640526000610220525b6101605162005ab957610220518a8110156200c8c5576200c82f6200c84c91600061016052620138976103c05160031b0162005d10565b90546108c05160039290921b1c6001600160a01b03169062015f9d565b156200c86b575b6200c8616102205162005a85565b610220526200c7f8565b6000610160526200c88b61022051620138976103c05160031b0162005d10565b60018060a01b0391549060031b1c166200c8ac610640516104605162005af1565b526200c8bb6106405162005a85565b610640526200c853565b50979294959093985095909560005b8281106200c972575050506101605162005ab95761046051516001600160401b03811162003e14576200c91381620138976103c05160031b0162005e25565b60206104605101620138976103c05160031b01600052602060002060005b8381106200c95457505050506200c9489062005a85565b9492959091956200c5ff565b82516001600160a01b0316818301556020909201916001016200c931565b6200c9b8906001600160a01b036200c98b828562005af1565b51166200c99f610640516104605162005af1565b526200c9ae6106405162005a85565b6106405262005a85565b6200c8d4565b90926020810151602681101562003f7c576004036200cff75760400160c0936200c9fc6200c9f0868451015162005aab565b51958351015162005acf565b51906200ca1360a062007887818651015162005aab565b51936200ca288751845114620018986201637f565b6200ca3b8751855114620018986201637f565b6200ca4e8751865114620018986201637f565b60005b87518110156200caba576200ca67818662005af1565b519061271082101562005ab9576200cab49162013896906001600160a01b036200ca92848d62005af1565b511660005260031b016020526200189f60406000205462007de0838a62005af1565b6200ca51565b509095919593929360005b83518110156200cc21576200cadb818762005af1565b5161271081101562005ab95762013896906001600160a01b036200cb00848862005af1565b511660005260031b016020526200cb2260406000205462007e4d838862005af1565b906200cb2f838962005af1565b519161271083101562005ab9576200cb769262013896906001600160a01b036200cb5a878b62005af1565b511660005260031b016020526040600020556200189862016483565b6200cb82818762005af1565b5161271081101562005ab95762013896906001600160a01b036200cba7848c62005af1565b511660005260031b016020526200cbc960406000205462006f21838862005af1565b9190506200cbd8818862005af1565b519161271083101562005ab9576200cc1b9262013896906001600160a01b036200cc03858e62005af1565b511660005260031b0160205260406000205562005a85565b6200cac5565b5091936200cc3d91935062007f3e62008570919796976201610e565b6000945b80518610156200c1b5576200cc57868262005af1565b516107a0526200cc68855162005c0d565b966000946200cc78845162005c0d565b6107205260009460005b88518110156200cd4b578a896200ccb26001600160a01b036200cca6858462005af1565b51166107a05162015f44565b15806200cd02575b6200ccd3575b50506200cccd9062005a85565b6200cc82565b986200ccf79162001f3582859c6200802e6200cccd9760018060a01b039262005af1565b9790508a896200ccc0565b5050506127106107a051101562005ab9576001600160a01b036200cd27828b62005af1565b5116600052620138966107a05160031b016020528a8960406000205415156200ccba565b50909895979498969291939660005b88518110156200cdea576127106107a051101562005ab9576001600160a01b03806200cd87838c62005af1565b5116600052620138966107a05160031b01602052604060002054156200cdba575b506200cdb49062005a85565b6200cd5a565b819b6200cde2916200cdd16200cdb4948d62005af1565b511662001f35826107205162005af1565b9a906200cda8565b509850969592919093966107a051612710811015806101c05262005ab95760031b620138970154986200ce226200815f898c62014cf2565b6107c0526000610420526000610860525b6101c05162005ab957610860518a8110156200cefe576200ce6a6200ce8a9160006101c052620138976107a05160031b0162005d10565b9054610720516001600160a01b03939260031b9190911c83169062015f9d565b156200ceaa575b506200cea06108605162005a85565b610860526200ce33565b60006101c0526200ceca61086051620138976107a05160031b0162005d10565b90549060031b1c166200cee4610420516107c05162005af1565b526200cef36104205162005a85565b61042052386200ce91565b50979294959093985095909560005b8281106200cfab575050506101c05162005ab9576107c051516001600160401b03811162003e14576200cf4c81620138976107a05160031b0162005e25565b60206107c05101620138976107a05160031b01600052602060002060005b8381106200cf8d57505050506200cf819062005a85565b9492959091956200cc41565b82516001600160a01b0316818301556020909201916001016200cf6a565b6200cff1906001600160a01b036200cfc4828562005af1565b51166200cfd8610420516107c05162005af1565b526200cfe76104205162005a85565b6104205262005a85565b6200cf0d565b92906020840151602681101562003f7c576005036200d5a85760408401906200d02a60a0620085d9818551015162005aab565b519282518451036200d5565760005b83518110156200d095576200d04f818562005af1565b519061271082101562005ab957620138966200d08f9260018060a01b038a511660005260031b016020526200189f60406000205462007de0838962005af1565b6200d039565b509060005b83518110156200d13e576200d0b0818562005af1565b5161271081101562005ab957620138969060018060a01b0389511660005260031b016020526200d0eb60406000205462007e4d838862005af1565b91906200d0f9828762005af1565b519061271082101562005ab9576200d13893620138966200189f9360018060a01b038d511660005260031b016020526040600020556200189862016483565b6200d09a565b50916200d14f91949593506201610e565b92604051926200d15f8462003e7f565b6001845260203681860137516001600160a01b03166200d17f8462005aab565b52604051926200d18f8462003e9b565b6000845260003681376000945b80518610156200c1b5576200d1b2868262005af1565b51610240526200d1c3855162005c0d565b966000946200d1d3845162005c0d565b6108405260009460005b88518110156200d2a6578a896200d20d6001600160a01b036200d201858462005af1565b51166102405162015f44565b15806200d25d575b6200d22e575b50506200d2289062005a85565b6200d1dd565b986200d2529162001f3582859c6200802e6200d2289760018060a01b039262005af1565b9790508a896200d21b565b50505061271061024051101562005ab9576001600160a01b036200d282828b62005af1565b5116600052620138966102405160031b016020528a8960406000205415156200d215565b50909895979498969291939660005b88518110156200d34c5761271061024051101562005ab9576001600160a01b036200d2e1828b62005af1565b5116600052620138966102405160031b01602052604060002054156200d313575b6200d30d9062005a85565b6200d2b5565b996200d30d906200d343906001600160a01b036200d3328e8d62005af1565b511662001f35826108405162005af1565b9a90506200d302565b50985096959291909396610240516127108110158060a05262005ab95760031b620138970154986200d3836200815f898c62014cf2565b610780526000610320526000610340525b60a05162005ab957610340518a8110156200d45e576200d3c96200d3e691600060a052620138976102405160031b0162005d10565b90546108405160039290921b1c6001600160a01b03169062015f9d565b156200d405575b6200d3fb6103405162005a85565b610340526200d394565b600060a0526200d42461034051620138976102405160031b0162005d10565b60018060a01b0391549060031b1c166200d445610320516107805162005af1565b526200d4546103205162005a85565b610320526200d3ed565b50979294959093985095909560005b8281106200d50a5750505060a05162005ab95761078051516001600160401b03811162003e14576200d4ab81620138976102405160031b0162005e25565b60206107805101620138976102405160031b01600052602060002060005b8381106200d4ec57505050506200d4e09062005a85565b9492959091956200d19c565b82516001600160a01b0316818301556020909201916001016200d4c9565b6200d550906001600160a01b036200d523828562005af1565b51166200d537610320516107805162005af1565b526200d5466103205162005a85565b6103205262005a85565b6200d46d565b60405162461bcd60e51b81526020600482015260356024820152600080516020620168c9833981519152604482015274195b905b5bdd5b9d081a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b926020810151602681101562003f7c576006036200db9b576040016200d5d360c08251015162005aab565b51936200d5ea60a0620085d9818551015162005aab565b519285518351036200db495785518451036200dafc5760005b86518110156200d66c576200d619818562005af1565b519061271082101562005ab9576200d6669162013896906001600160a01b036200d644848c62005af1565b511660005260031b016020526200189f60406000205462007de0838962005af1565b6200d603565b509060005b86518110156200d712576200d687818562005af1565b5161271081101562005ab95762013896906001600160a01b036200d6ac848b62005af1565b511660005260031b016020526200d6ce60406000205462007e4d838862005af1565b91906200d6dc828762005af1565b519061271082101562005ab9576200d70c936200189f9262013896906001600160a01b036200cb5a878f62005af1565b6200d671565b50916200d72991935062008570909594956201610e565b91604051926200d7398462003e9b565b6000845260003681376000945b80518610156200c1b5576200d75c868262005af1565b51610400526200d76d855162005c0d565b966000946200d77d845162005c0d565b6101005260009460005b88518110156200d850578a896200d7b76001600160a01b036200d7ab858462005af1565b51166104005162015f44565b15806200d807575b6200d7d8575b50506200d7d29062005a85565b6200d787565b986200d7fc9162001f3582859c6200802e6200d7d29760018060a01b039262005af1565b9790508a896200d7c5565b50505061271061040051101562005ab9576001600160a01b036200d82c828b62005af1565b5116600052620138966104005160031b016020528a8960406000205415156200d7bf565b50909895979498969291939660005b88518110156200d8ef5761271061040051101562005ab9576001600160a01b03806200d88c838c62005af1565b5116600052620138966104005160031b01602052604060002054156200d8bf575b506200d8b99062005a85565b6200d85f565b819b6200d8e7916200d8d66200d8b9948d62005af1565b511662001f35826101005162005af1565b9a906200d8ad565b5098509695929190939661040051612710811015806104a05262005ab95760031b620138970154986200d9276200815f898c62014cf2565b6101405260006101e05260006104c0525b6104a05162005ab9576104c0518a8110156200da03576200d96f6200d98f9160006104a052620138976104005160031b0162005d10565b9054610100516001600160a01b03939260031b9190911c83169062015f9d565b156200d9af575b506200d9a56104c05162005a85565b6104c0526200d938565b60006104a0526200d9cf6104c051620138976104005160031b0162005d10565b90549060031b1c166200d9e96101e0516101405162005af1565b526200d9f86101e05162005a85565b6101e052386200d996565b50979294959093985095909560005b8281106200dab0575050506104a05162005ab95761014051516001600160401b03811162003e14576200da5181620138976104005160031b0162005e25565b60206101405101620138976104005160031b01600052602060002060005b8381106200da9257505050506200da869062005a85565b9492959091956200d746565b82516001600160a01b0316818301556020909201916001016200da6f565b6200daf6906001600160a01b036200dac9828562005af1565b51166200dadd6101e0516101405162005af1565b526200daec6101e05162005a85565b6101e05262005a85565b6200da12565b60405162461bcd60e51b81526020600482015260306024820152600080516020620169a983398151915260448201526f1b9d1cc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b60405162461bcd60e51b81526020600482015260356024820152600080516020620168698339815191526044820152741b90db185cdcd95cc81a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b602081949293940151602681101562003f7c576007036200dd3a57604001916200dbca60c08451015162005aab565b51916200dbdc60a08551015162005aab565b51935151916200dbf48451865114620018986201637f565b60005b84518110156200dd28576001600160a01b03806200dc16838862005af1565b511660005262027113806020526200dc3b60ff60406000205416156200189862016450565b60026200dc49848862005af1565b516200dcb36200dc5a868c62005af1565b519162008b478b604051966200dc708862003df8565b60018852886200dc978b60208b01946000865260408c0197885260608c01998a5262005af1565b511660005260205262008b3d604060002097511515886200655e565b519101556200dcc3828762005af1565b516202711454929116600160401b83101562003e14576001830180620271145583101562005ab957620271146000526000805160206201690983398151915290920180546001600160a01b0319169092179091556200dd229062005a85565b6200dbf7565b5094915092506200c1c7915062005a85565b6020810151602681101562003f7c576008036200de295760c060406200dd64920151015162005aab565b519160005b83518110156200de1a576200de14906001600160a01b03806200dd8d838862005af1565b51166000526202711390816020526200ddb7600160ff6040600020541615151462001898620163af565b806200ddc4848962005af1565b5116600052816020526200dde860ff60406000205460081c16156200189862016417565b6200ddf4838862005af1565b5116600052602052604060002061010061ff001982541617905562005a85565b6200dd69565b50926200c1c791925062005a85565b6020810151602681101562003f7c576009036200df095760c060406200de53920151015162005aab565b519160005b83518110156200de1a576200df03906001600160a01b03806200de7c838862005af1565b51166000526202711390816020526200dea6600160ff6040600020541615151462001898620163af565b806200deb3848962005af1565b5116600052816020526200dedb600160ff60406000205460081c1615151462001898620163e2565b6200dee7838862005af1565b5116600052602052604060002061ff0019815416905562005a85565b6200de58565b6020810151602681101562003f7c57600a036200dff257604001906200df4560a06200df3a60c08551015162005aab565b519351015162005aab565b51926200df5a8351855114620018986201637f565b60005b83518110156200dfe1576200dfdb906001600160a01b03806200df81838862005af1565b511660005262027113806020526200dfaa600160ff6040600020541615151462001898620163af565b6200dfb6838962005af1565b51916200dfc4848962005af1565b511660005260205260026040600020015562005a85565b6200df5d565b50939092506200c1c7915062005a85565b602081949392940151602681101562003f7c57600b036200e0d357604001926200e02160c08551015162005aab565b51935151916200e0398551845114620018986201637f565b60005b85518110156200e0c3576200e0bd906200189f6001600160a01b03806200e064848b62005af1565b511660005262027113806020526200e08d600160ff6040600020541615151462001898620163af565b6200e099848962005af1565b51916200e0a7858c62005af1565b511660005260205260016040600020016200648b565b6200e03c565b509350916200c1c7915062005a85565b9091926020820151602681101562003f7c57600c036200e217576060604083015101519260005b84518110156200dfe15760e06200e11a8260606040880151015162005af1565b510151156200e1a0576200e1426200e13b8260606040880151015162005af1565b5162006aad565b62027115548060001981011162005a95576200e16460059160001901620069f7565b5001805461ff0019166101001790556202711554906000198201821062005a9557600562008fa56200e19a9360001901620069f7565b6200e0fa565b6200e1bf6200e1b88260606040880151015162005af1565b5162006a89565b62027116548060001981011162005a95576200e1e160059160001901620069b5565b5001805461ff0019166101001790556202711654906000198201821062005a9557600562008fa56200e19a9360001901620069b5565b9291906020810151602681101562003f7c57600d036200e360576040019260206200e24760a08651015162005aab565b5194510151916200e25c855184511462014d99565b60005b85518110156200e0c357806200e27a6200e2f4928662005af1565b51156200e2fa576200e29e6200e291828962005af1565b5162027115541162014e22565b6200e2ca60ff60056200e2bd6200e2b6858c62005af1565b51620069f7565b50015460081c1662014e7a565b6200e2e260ff6005620091036200e2b6858c62005af1565b60056200911f6200e2b6838a62005af1565b6200e25f565b6200e3176200e30a828962005af1565b5162027116541162014e22565b6200e33660ff60056200e2bd6200e32f858c62005af1565b51620069b5565b6200e34e60ff6005620091036200e32f858c62005af1565b60056200911f6200e32f838a62005af1565b6020810151602681101562003f7c57600e036200e498576040019260206200e38d60a08651015162005aab565b5194510151916200e3a2855184511462014d99565b60005b85518110156200e0c357806200e3c06200e433928662005af1565b51156200e439576200e3e46200e3d7828962005af1565b5162027115541162014f3c565b6200e40960ff60056200e3fc6200e2b6858c62005af1565b50015460081c1662014f95565b6200e42160ff60056200925d6200e2b6858c62005af1565b600562008fa56200e2b6838a62005af1565b6200e3a5565b6200e4566200e449828962005af1565b5162027116541162014f3c565b6200e46e60ff60056200e3fc6200e32f858c62005af1565b6200e48660ff60056200925d6200e32f858c62005af1565b600562008fa56200e32f838a62005af1565b9091926020820151602681101562003f7c57600f036200e5ce576060604083015101519260005b84518110156200dfe15760e06200e4df8260606040880151015162005af1565b510151156200e55e576200e5006200e13b8260606040880151015162005af1565b62027115548060001981011162005a95576200e52260059160001901620069f7565b5001805461ff0019166101001790556202711554906000198201821062005a955760056200911f6200e5589360001901620069f7565b6200e4bf565b6200e5766200e1b88260606040880151015162005af1565b62027116548060001981011162005a95576200e59860059160001901620069b5565b5001805461ff0019166101001790556202711654906000198201821062005a955760056200911f6200e5589360001901620069b5565b9291906020810151602681101562003f7c576010036200e7175760400151926200e60160a0608086015195015162005aab565b51916200e6168551845114620018986201637f565b60005b85518110156200e0c357806200e6346200e6aa928862005af1565b516200e6408162004dc4565b6200e64c828762005af1565b51906200e6598162004dc4565b6200e6706200e667620164b2565b82151562005a52565b6200e67b8162004dc4565b600181036200e6b057506200e69f6200e693620164b2565b61271083111562005a52565b6202711e5562005a85565b6200e619565b6200e6bb8162004dc4565b600281036200e6d057506202711f5562005a85565b6200e6db8162004dc4565b600381036200e6f05750620271205562005a85565b806200e6fe60049262004dc4565b146200e70b575062005a85565b6202712155386200a431565b6020810151602681101562003f7c576011036200e9bd57604001906200e74860a06200df3a60c08551015162005aab565b51936200e759835186511462014ca6565b60005b83518110156200e7da576200e7d4906200e7b46001600160a01b03806200e784848962005af1565b51166000526202711890816020526200e7a860406000205462006f21868d62005af1565b93906200189862016335565b6200e7c0848962005af1565b511660005260205260406000205562005a85565b6200e75c565b509350906200e7e99062015ff2565b906202711954936200e8016200815f84518762014cf2565b9060009260005b8781106200e97d575060005b85518110156200e8c9576000805b8981106200e87a575b50156200e844575b6200e83e9062005a85565b6200e814565b936200e83e906200e871906001600160a01b036200e863888a62005af1565b511662001f35828862005af1565b9490506200e833565b6200e8858162005cd6565b90546001600160a01b0360039290921b1c8116906200e8a5858b62005af1565b5116146200e8be576200e8b89062005a85565b6200e822565b50506001386200e82b565b5095509392506200e8da8262005c0d565b8051906001600160401b03821162003e14576020906200e8fa8362005dc9565b0162027119600052602060002060005b8381106200e95f575050505060005b8281106200e92f575050506200c1c79062005a85565b6200e959906200189f6001600160a01b036200e94c838662005af1565b511662001e708362005cd6565b6200e919565b82516001600160a01b0316818301556020909201916001016200e90a565b936200e9b06200e9b7916200e9928762005cd6565b905460039190911b1c6001600160a01b031662001f35828862005af1565b9462005a85565b6200e808565b6020819492940151602681101562003f7c576012036200ec0557604001906200e9f160a06200df3a60c08551015162005aab565b51936200ea02835186511462014ca6565b60005b83518110156200ea57576200ea51906200e7b46001600160a01b03806200ea2d848962005af1565b51166000526202711890816020526200e7a860406000205462007e4d868d62005af1565b6200ea05565b50935091906200ea679062015ff2565b62027119546200ea778162005c0d565b906000926000915b8083106200eb2b575050506200ea958262005c0d565b8051906001600160401b03821162003e14576020906200eab58362005dc9565b0162027119600052602060002060005b8381106200eb0d575050505060005b8281106200eaea575050506200c1c79062005a85565b6200eb07906200189f6001600160a01b036200e94c838662005af1565b6200ead4565b82516001600160a01b0316818301556020909201916001016200eac5565b91956000959193959760005b85518110156200ebf6576200eb4c8962005cd6565b90546001600160a01b0360039290921b1c8116906200eb6c838962005af1565b5116146200eb85576200eb7f9062005a85565b6200eb37565b509750956001959391955b806200ebc4575b156200ebaf576200eba89062005a85565b916200ea7f565b936200e9b06200eba8916200e9928762005cd6565b506200ebd08162005cd6565b60018060a01b0391549060031b1c1660005262027118602052604060002054156200eb97565b5097969096959391956200eb90565b6020819493940151602681101562003f7c576013036200eca95760408091015101519160005b83518110156200de1a576200ec41818562005af1565b51906202711754600160401b81101562003e14576001810180620271175581101562005ab957620271176000526200eca3926200189f916007027f08f37177f6a5732df494aeff73d589b534878a053b84dfe1e41c467868b7c9fd01620157d7565b6200ec2b565b602081949392940151602681101562003f7c576014036200f1f657604001906200ecd860c08351015162005aab565b51936200ecef60a062007887818651015162005aab565b51916200ed0086518551146201505a565b6200ed0f8651845114620150c0565b60005b86518110156200ee0d576200ed28818562005af1565b516200ed35828762005af1565b519061271082101562005ab957620138996200ed579260031b01549062006ce3565b906200ed64838862005af1565b519161271083101562005ab957620138996200ed859360031b01556201517a565b6200ed91818562005af1565b516200ed9e828762005af1565b519061271082101562005ab9576200edc99162013896906001600160a01b036200bd65868d62005af1565b91906200edd7828862005af1565b519061271082101562005ab9576200ee07936200189f9262013896906001600160a01b036200bdbc878f62005af1565b6200ed12565b50926200ee2491925062008570909594956201610e565b916040516200ee338162003e9b565b6000815260003681376000945b80518610156200c1b5576200ee56868262005af1565b51610740526200ee67855162005c0d565b966000946200ee77845162005c0d565b6105e05260009460005b88518110156200ef4a578a896200eeb16001600160a01b036200eea5858462005af1565b51166107405162015f44565b15806200ef01575b6200eed2575b50506200eecc9062005a85565b6200ee81565b986200eef69162001f3582859c6200802e6200eecc9760018060a01b039262005af1565b9790508a896200eebf565b50505061271061074051101562005ab9576001600160a01b036200ef26828b62005af1565b5116600052620138966107405160031b016020528a8960406000205415156200eeb9565b50909895979498969291939660005b88518110156200efe95761271061074051101562005ab9576001600160a01b03806200ef86838c62005af1565b5116600052620138966107405160031b01602052604060002054156200efb9575b506200efb39062005a85565b6200ef59565b819b6200efe1916200efd06200efb3948d62005af1565b511662001f35826105e05162005af1565b9a906200efa7565b5098509695929190939661074051612710811015806101805262005ab95760031b620138970154986200f0216200815f898c62014cf2565b6105005260006105c0526000610820525b6101805162005ab957610820518a8110156200f0fd576200f0696200f08991600061018052620138976107405160031b0162005d10565b90546105e0516001600160a01b03939260031b9190911c83169062015f9d565b156200f0a9575b506200f09f6108205162005a85565b610820526200f032565b6000610180526200f0c961082051620138976107405160031b0162005d10565b90549060031b1c166200f0e36105c0516105005162005af1565b526200f0f26105c05162005a85565b6105c052386200f090565b50979294959093985095909560005b8281106200f1aa575050506101805162005ab95761050051516001600160401b03811162003e14576200f14b81620138976107405160031b0162005e25565b60206105005101620138976107405160031b01600052602060002060005b8381106200f18c57505050506200f1809062005a85565b9492959091956200ee40565b82516001600160a01b0316818301556020909201916001016200f169565b6200f1f0906001600160a01b036200f1c3828562005af1565b51166200f1d76105c0516105005162005af1565b526200f1e66105c05162005a85565b6105c05262005a85565b6200f10c565b926020840151602681101562003f7c576015036200f8035760408401906200f22360c08351015162005aab565b51906200f23a60a062007887818651015162005aab565b51936200f24f8351855114620018986201637f565b6200f2628351865114620018986201637f565b60005b83518110156200f2c1576200f27b818662005af1565b519061271082101562005ab957620138966200f2bb9260018060a01b038b511660005260031b016020526200189f60406000205462007de0838a62005af1565b6200f265565b509095919560005b87518110156200f3f7576200f2df818662005af1565b5161271081101562005ab957620138969060018060a01b0386511660005260031b016020526200f31a60406000205462007e4d838962005af1565b906200f327838862005af1565b519161271083101562005ab957620138966200f3619360018060a01b0389511660005260031b016020526040600020556200189862016483565b6200f36d818662005af1565b5161271081101562005ab95762013896906001600160a01b036200f392848c62005af1565b511660005260031b016020526200f3b460406000205462006f21838962005af1565b91906200f3c2828862005af1565b519061271082101562005ab9576200f3f193620138966200189f938d6200c5898760018060a01b039262005af1565b6200f2c9565b50926200f40f919294506200c5c3909695966201610e565b92604051906200f41f8262003e7f565b6001825260203681840137516001600160a01b03166200f43f8262005aab565b526000945b80518610156200c1b5576200f45a868262005af1565b51610200526200f46b855162005c0d565b966000946200f47b845162005c0d565b6107605260009460005b88518110156200f54e578a896200f4b56001600160a01b036200f4a9858462005af1565b51166102005162015f44565b15806200f505575b6200f4d6575b50506200f4d09062005a85565b6200f485565b986200f4fa9162001f3582859c6200802e6200f4d09760018060a01b039262005af1565b9790508a896200f4c3565b50505061271061020051101562005ab9576001600160a01b036200f52a828b62005af1565b5116600052620138966102005160031b016020528a8960406000205415156200f4bd565b50909895979498969291939660005b88518110156200f5f45761271061020051101562005ab9576001600160a01b036200f589828b62005af1565b5116600052620138966102005160031b01602052604060002054156200f5bb575b6200f5b59062005a85565b6200f55d565b996200f5b5906200f5eb906001600160a01b036200f5da8e8d62005af1565b511662001f35826107605162005af1565b9a90506200f5aa565b5098509695929190939661020051612710811015806102605262005ab95760031b620138970154986200f62c6200815f898c62014cf2565b6104805260006105805260006102a0525b6102605162005ab9576102a0518a8110156200f70a576200f6746200f69191600061026052620138976102005160031b0162005d10565b90546107605160039290921b1c6001600160a01b03169062015f9d565b156200f6b0575b6200f6a66102a05162005a85565b6102a0526200f63d565b6000610260526200f6d06102a051620138976102005160031b0162005d10565b60018060a01b0391549060031b1c166200f6f1610580516104805162005af1565b526200f7006105805162005a85565b610580526200f698565b50979294959093985095909560005b8281106200f7b7575050506102605162005ab95761048051516001600160401b03811162003e14576200f75881620138976102005160031b0162005e25565b60206104805101620138976102005160031b01600052602060002060005b8381106200f79957505050506200f78d9062005a85565b9492959091956200f444565b82516001600160a01b0316818301556020909201916001016200f776565b6200f7fd906001600160a01b036200f7d0828562005af1565b51166200f7e4610580516104805162005af1565b526200f7f36105805162005a85565b6105805262005a85565b6200f719565b9091926020810151602681101562003f7c576016036200f8b85760c060406200f830920151015162005aab565b519160005b83518110156200de1a576001600160a01b036200f853828662005af1565b516202712254929116600160401b83101562003e14576001830180620271225583101562005ab957620271226000526000805160206201688983398151915290920180546001600160a01b0319169092179091556200f8b29062005a85565b6200f835565b6020810151602681101562003f7c576017036200f9155760405162461bcd60e51b81526020600482015260296024820152600080516020620169698339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c576018036200f9d85760c060406200f93f920151015162005aab565b5191600160ff1962027125541617620271255560005b83518110156200de1a576001600160a01b036200f973828662005af1565b516202712454929116600160401b83101562003e14576001830180620271245583101562005ab957620271246000526000805160206201692983398151915290920180546001600160a01b0319169092179091556200f9d29062005a85565b6200f955565b602081949293940151602681101562003f7c576019036200fa00575b506200c1c79062005a85565b6020810151602681101562003f7c57601a036200fb7b5760a060406200fa2a920151015162005aab565b51906200fa3b600383511462014ca6565b6200fa468262005aab565b516200fa566200a3c88462005acf565b51926200fb3f576200c1c7926001036200fb38576200fa7e6200fadd91620271205462006ce3565b6202712055604051906200fa928262003e63565b603282527f6469766964656e6461626c652062616c616e6365206f766572666c6f772077686020830152710cadc40e0e4dec6cae6e6d2dcce40c6c2e6d60731b604083015262005a52565b6200fb316200faf0620271215462006cd0565b6202712155604051906200fb048262003e7f565b601a8252796469766964656e647320636f756e746572206f766572666c6f7760301b602083015262005a52565b906200f9f4565b506200fb31565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c6964207061796d656e74207479706560601b6044820152606490fd5b6020810151602681101562003f7c57601b036201017e575091906202711e546200fba86200a4a76201620c565b62027121546202711f5411156200fbc96200fbc26201627a565b8262005a52565b6202712054906200fbdb838362006b9b565b50506200fbe7620162d0565b506000805b6127108210620100d2575b5050906200fc276200fc2d93926200fc1d6200fc126201620c565b612710861062005a52565b620018986201627a565b62006b9b565b90506200fc39620162d0565b5060009060005b61271081106200fffa575b50906127106200fc5c920462006d71565b90506200fc6d6202712a5462005c0d565b906000946000905b6127108210156200ffed578160031b9460ff6201389a87015416156200fdd35760009662013895870154156200fdc257600098975b62005ab957620138978701548910156200fda8576200fccf8962013897890162005d10565b600160a01b6001900391549060031b1c169788600052620138968801602052604098868a60002054906200fd039162006b9b565b9a906200fd0f620162d0565b6200fd1a9162005a52565b60009a620138958b01546200fd2f9162006b9b565b906200fd3a620162d0565b6200fd459162005a52565b826000526202711a6020528160002054906200fd619162006ce3565b9091600020556200fd71620162d0565b6200fd7c9162005a52565b6200fd88828962005af1565b526200fd949062005a85565b986200fda09062005a85565b98976200fcaa565b929095506200fdba9196975062005a85565b90946200fc75565b929095506200fdba91965062005a85565b95969392509350505b6200fde78262005c0d565b9160009160005b8281106200ff57575050506202711b54916200fe0f6200815f848462014cf2565b926000906000905b8082106200ff3a57505060005b8381106200fea45750508251929150506001600160401b03821162003e14576020906200fe518362005ded565b016202711b600052602060002060005b8381106200fe8657505050506200c1c79060006202712055600062027121556200fb31565b82516001600160a01b0316818301556020909201916001016200fe61565b6000805b8381106200fef2575b50156200feca575b6200fec49062005a85565b6200fe24565b906200fec4906200fee9906001600160a01b03620082e7858762005af1565b9190506200feb9565b6001600160a01b03806200ff07858862005af1565b5116906200ff16838a62005af1565b5116146200ff2f576200ff299062005a85565b6200fea8565b50506001386200feb1565b9091620082f56200ff5091620098cd8562005cf3565b906200fe17565b6000805b8581106200ffa5575b50156200ff7d575b6200ff779062005a85565b6200fdee565b926200ff77906200ff9c906001600160a01b03620082e7878662005af1565b9390506200ff6c565b6001600160a01b03806200ffba858762005af1565b5116906200ffc9838a62005af1565b5116146200ffe2576200ffdc9062005a85565b6200ff5b565b50506001386200ff64565b939495929150506200fddc565b90918160039695961b60ff6201389a8201541615620100c65762013895810154620138978201546000928391825b818410620100645750505050620076dc6201005b93620100536200189f979694620036389462006b9b565b929062006ad1565b9493946200fc40565b94929462005ab957620100bf85620100b76201008a6200189f9862013897870162005d10565b905460039190911b1c6001600160a01b031660009081526201389686016020526040812054909662006ce3565b979062006bbd565b9262010028565b5091909493946200fc4b565b8160039897981b60ff6201389a820154161562010174576201389581015490600062013897820154916000926000925b8184106201013f5750505050620076dc62010135936200a8d1846200fc276200355e6200a8dd966200189f9a9862006b9b565b909695966200fbec565b93929362005ab9576201016d84620101656201008a6200189f9762013897870162005d10565b969062006bbd565b9262010102565b509695966200fbf7565b6020810151602681101562003f7c57601c03620101db5760405162461bcd60e51b81526020600482015260296024820152600080516020620169898339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c57601d03620101ff575b506200c1c7906200fb31565b6020810151602681101562003f7c57601e14620101f3576020810151602681101562003f7c57601f03620102925760406201023d9101515162005aab565b51906202712354600160401b81101562003e14576001810180620271235581101562005ab957620271236000526200c1c7926201028b91600080516020620168a9833981519152016200648b565b90620101f3565b6020810151602681101562003f7c57602003620102b6575b506200c1c7906201028b565b6020810151602681101562003f7c57602114620102aa576020810151602681101562003f7c576022036201034157506200c1c79060ff1962027125541662027125556202712454600062027124558062010314575b505b90620102aa565b620271246000526201033a90600080516020620169298339815191529081019062005d29565b386201030b565b6020810151602681101562003f7c5760230362010365575b506200c1c7906201030d565b6020810151602681101562003f7c5760241462010359576020810151602681101562003f7c5760251462010359579290916020840151602681101562003f7c57601503620109b5576040840190620103c260c08351015162005aab565b5190620103d960a062007887818651015162005aab565b5193620103ee8351855114620018986201637f565b620104018351865114620018986201637f565b60005b835181101562010460576201041a818662005af1565b519061271082101562005ab957620138966201045a9260018060a01b038b511660005260031b016020526200189f60406000205462007de0838a62005af1565b62010404565b509095919560005b875181101562010596576201047e818662005af1565b5161271081101562005ab957620138969060018060a01b0386511660005260031b01602052620104b960406000205462007e4d838962005af1565b90620104c6838862005af1565b519161271083101562005ab95762013896620105009360018060a01b0389511660005260031b016020526040600020556200189862016483565b6201050c818662005af1565b5161271081101562005ab95762013896906001600160a01b0362010531848c62005af1565b511660005260031b016020526201055360406000205462006f21838962005af1565b919062010561828862005af1565b519061271082101562005ab9576201059093620138966200189f938d6200c5898760018060a01b039262005af1565b62010468565b5092620105ae919294506200c5c3909695966201610e565b9260405190620105be8262003e7f565b6001825260203681840137516001600160a01b0316620105de8262005aab565b526000945b8051861015620109a257620105f9868262005af1565b516101a0526201060a855162005c0d565b966000946201061a845162005c0d565b6103e05260009460005b8851811015620106ed578a89620106546001600160a01b0362010648858462005af1565b51166101a05162015f44565b1580620106a4575b62010675575b50506201066f9062005a85565b62010624565b98620106999162001f3582859c6200802e6201066f9760018060a01b039262005af1565b9790508a8962010662565b5050506127106101a051101562005ab9576001600160a01b03620106c9828b62005af1565b5116600052620138966101a05160031b016020528a8960406000205415156201065c565b50909895979498969291939660005b885181101562010793576127106101a051101562005ab9576001600160a01b0362010728828b62005af1565b5116600052620138966101a05160031b01602052604060002054156201075a575b620107549062005a85565b620106fc565b9962010754906201078a906001600160a01b03620107798e8d62005af1565b511662001f35826103e05162005af1565b9a905062010749565b509850969592919093966101a051612710811015806106a05262005ab95760031b62013897015498620107cb6200815f898c62014cf2565b6101205260006106e05260006102e0525b6106a05162005ab9576102e0518a811015620108a95762010813620108309160006106a052620138976101a05160031b0162005d10565b90546103e05160039290921b1c6001600160a01b03169062015f9d565b156201084f575b620108456102e05162005a85565b6102e052620107dc565b60006106a0526201086f6102e051620138976101a05160031b0162005d10565b60018060a01b0391549060031b1c16620108906106e0516101205162005af1565b526201089f6106e05162005a85565b6106e05262010837565b50979294959093985095909560005b82811062010956575050506106a05162005ab95761012051516001600160401b03811162003e1457620108f781620138976101a05160031b0162005e25565b60206101205101620138976101a05160031b01600052602060002060005b8381106201093857505050506201092c9062005a85565b949295909195620105e3565b82516001600160a01b03168183015560209092019160010162010915565b6201099c906001600160a01b036201096f828562005af1565b5116620109836106e0516101205162005af1565b52620109926106e05162005a85565b6106e05262005a85565b620108b8565b5050939092506200c1c791509062010359565b60405162461bcd60e51b8152602060048201526016602482015275496e76616c6964206f7065726174696f6e207479706560501b6044820152606490fd5b5091905062010a028162014179565b90600681101562003f7c576002810362010a315760405162461bcd60e51b81528062005a81600482016200774f565b6003810362010ae45750303b1562003dde57906040518092630e8af36360e31b82526044820160406004840152815180915260206064840192019060005b81811062010aca5750505062010a958291600094600319848303016024850152620054e0565b038183305af1801562010abe5762010aaa5750565b6001600160401b03811162003e1457604052565b6040513d6000823e3d90fd5b825184528694506020938401939092019160010162010a6f565b600591501462010af15750565b906000905b602083015180518310156200b0cf578262010b119162005af1565b516020810151602681101562003f7c57156200b08c576020810151602681101562003f7c5760010362010d59576040019062010b5260c08351015162005aab565b519362010b6960a062007887818651015162005aab565b519162010b7a86518551146201505a565b62010b898651845114620150c0565b60005b865181101562010ce05762010ba2818662005af1565b5161271081101562005ab957600160ff600762010bc89360031b01541615151462015122565b62010bd4818562005af1565b5162010be1828762005af1565b519061271082101562005ab957600662010c019260031b01549062006ce3565b9062010c0e838862005af1565b519161271083101562005ab957600662010c2d9360031b01556201517a565b62010c39818562005af1565b5162010c46828762005af1565b519061271082101562005ab95762010c87916003906001600160a01b0362010c6f868d62005af1565b5116600052811b016020526040600020549062006ce3565b919062010c95828862005af1565b519061271082101562005ab95762010cda936200189f926003906001600160a01b0362010cc3878f62005af1565b5116600052811b01602052604060002055620151d9565b62010b8c565b509491509162010cf462010cfb916201610e565b9162015ff2565b936040519262010d0b8462003e9b565b60008452600036813760005b835181101562010d3c57806200189f62007a4e62010d36938762005af1565b62010d17565b509450926020925062010d50915062005a85565b91905062010af6565b602081949293940151602681101562003f7c5760020362010ff15760400180519283519062010d9162007aae60a08097015162005aab565b5193825186510362010f9c57825184510362010f4657825185510362010eed5760005b865181101562010ed75762010dca818862005af1565b5161271081101562005ab95760ff600762010dec9260031b0154161562015232565b62010df8818862005af1565b5161271081101562005ab95760031b600701805460ff1916600117905562010e21818562005af1565b5162010e2e828962005af1565b519061271082101562005ab957600562010e4c9260031b016200648b565b62010e58818662005af1565b5162010e65828962005af1565b5161271081101562005ab95760031b6001015562010e84818762005af1565b5162010e91828962005af1565b5161271081101562005ab95760031b6002015562010eb0818862005af1565b519061271082101562005ab9576000600662010ed19360031b015562005a85565b62010db4565b5095915093506020925062010d50915062005a85565b60405162461bcd60e51b815260206004820152603c6024820152600080516020620168e983398151915260448201527b1b911a5d9a59195b9915d95a59da1d081a5cc81b9bdd08195c5d585b60221b6064820152608490fd5b60405162461bcd60e51b81526020600482015260396024820152600080516020620168e98339815191526044820152781b959bdd1a5b99d41bddd95c881a5cc81b9bdd08195c5d585b603a1b6064820152608490fd5b60405162461bcd60e51b81526020600482015260386024820152600080516020620168e98339815191526044820152771b925b99195e105c9c985e481a5cc81b9bdd08195c5d585b60421b6064820152608490fd5b92916020840151602681101562003f7c57600303620115f55760408401906201101f60c08351015162005aab565b51906201103660a062007887818651015162005aab565b51936201104b8351855114620018986201637f565b6201105e8351865114620018986201637f565b60005b8351811015620110ba5762011077818662005af1565b519061271082101562005ab9576003620110b49260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b62011061565b509095919560005b8751811015620111e557620110d8818662005af1565b5161271081101562005ab95760039060018060a01b03865116600052811b016020526201111060406000205462007e4d838962005af1565b906201111d838862005af1565b519161271083101562005ab9576003620111549360018060a01b03895116600052811b016020526040600020556200189862016483565b62011160818662005af1565b5161271081101562005ab9576003906001600160a01b0362011183848c62005af1565b5116600052811b01602052620111a460406000205462006f21838962005af1565b9190620111b2828862005af1565b519061271082101562005ab957620111df9360036200189f938d62007f068760018060a01b039262005af1565b620110c2565b5092620111fd919294506200c5c3909695966201610e565b92604051906201120d8262003e7f565b6001825260203681840137516001600160a01b03166201122d8262005aab565b526000945b8051861015620115e15762011248868262005af1565b516103605262011259855162005c0d565b9660009462011269845162005c0d565b6106205260009460005b885181101562011339578a89620112a36001600160a01b0362011297858462005af1565b51166103605162015edb565b1580620112f3575b620112c4575b5050620112be9062005a85565b62011273565b98620112e89162001f3582859c6200802e620112be9760018060a01b039262005af1565b9790508a89620112b1565b50505061271061036051101562005ab9576001600160a01b0362011318828b62005af1565b5116600052600361036051811b016020528a896040600020541515620112ab565b50909895979498969291939660005b8851811015620113dc5761271061036051101562005ab9576001600160a01b0362011374828b62005af1565b5116600052600361036051811b0160205260406000205415620113a3575b6201139d9062005a85565b62011348565b996201139d90620113d3906001600160a01b03620113c28e8d62005af1565b511662001f35826106205162005af1565b9a905062011392565b5098509695929190939661036051612710811015806105a05262005ab95760031b6004015498620114126200815f898c62014cf2565b610700526000610520526000610680525b6105a05162005ab957610680518a811015620114ec5762011458620114759160006105a05260046103605160031b0162005d10565b90546106205160039290921b1c6001600160a01b03169062015f9d565b1562011494575b6201148a6106805162005a85565b6106805262011423565b60006105a052620114b26106805160046103605160031b0162005d10565b60018060a01b0391549060031b1c16620114d3610520516107005162005af1565b52620114e26105205162005a85565b610520526201147c565b50979294959093985095909560005b82811062011595575050506105a05162005ab95761070051516001600160401b03811162003e1457620115388160046103605160031b0162005e25565b6020610700510160046103605160031b01600052602060002060005b8381106201157757505050506201156b9062005a85565b94929590919562011232565b82516001600160a01b03168183015560209092019160010162011554565b620115db906001600160a01b03620115ae828562005af1565b5116620115c2610520516107005162005af1565b52620115d16105205162005a85565b6105205262005a85565b620114fb565b50509362010d509193506020925062005a85565b90926020810151602681101562003f7c576004036201189f576201162160c06040830151015162005aab565b51936201163660c06040840151015162005acf565b51906201165d60a06040620116518282880151015162005aab565b51950151015162005acf565b5193620116728751845114620018986201637f565b620116858751855114620018986201637f565b620116988751865114620018986201637f565b60005b87518110156201170157620116b1818662005af1565b519061271082101562005ab957620116fb916003906001600160a01b03620116da848d62005af1565b5116600052811b016020526200189f60406000205462007de0838a62005af1565b6201169b565b509095919593929360005b83518110156201185c5762011722818762005af1565b5161271081101562005ab9576003906001600160a01b0362011745848862005af1565b5116600052811b016020526201176660406000205462007e4d838862005af1565b9062011773838962005af1565b519161271083101562005ab957620117b7926003906001600160a01b036201179c878b62005af1565b5116600052811b016020526040600020556200189862016483565b620117c3818762005af1565b5161271081101562005ab9576003906001600160a01b03620117e6848c62005af1565b5116600052811b016020526201180760406000205462006f21838862005af1565b91905062011816818862005af1565b519161271083101562005ab95762011856926003906001600160a01b036201183f858e62005af1565b5116600052811b0160205260406000205562005a85565b6201170c565b50936201187691929693506200857062007f3e916201610e565b9260005b835181101562010d3c57806200189f62007a4e62011899938762005af1565b6201187a565b926020840151602681101562003f7c5760050362011a5d576040840190620118d160a0620085d9818551015162005aab565b519282518451036200d5565760005b83518110156201193957620118f6818562005af1565b519061271082101562005ab9576003620119339260018060a01b038a5116600052811b016020526200189f60406000205462007de0838962005af1565b620118e0565b509060005b8351811015620119dc5762011954818562005af1565b5161271081101562005ab95760039060018060a01b03895116600052811b016020526201198c60406000205462007e4d838862005af1565b91906201199a828762005af1565b519061271082101562005ab957620119d69360036200189f9360018060a01b038d5116600052811b016020526040600020556200189862016483565b6201193e565b5094925090620119ec906201610e565b9060405192620119fc8462003e7f565b6001845260203681860137516001600160a01b031662011a1c8462005aab565b526040519462011a2c8662003e9b565b60008652600036813760005b835181101562010d3c57806200189f62007a4e62011a57938762005af1565b62011a38565b926020810151602681101562003f7c5760060362011c155760400162011a8860c08251015162005aab565b519362011a9f60a0620085d9818551015162005aab565b519285518351036200db495785518451036200dafc5760005b865181101562011b1e5762011ace818562005af1565b519061271082101562005ab95762011b18916003906001600160a01b0362011af7848c62005af1565b5116600052811b016020526200189f60406000205462007de0838962005af1565b62011ab8565b509060005b865181101562011bbf5762011b39818562005af1565b5161271081101562005ab9576003906001600160a01b0362011b5c848b62005af1565b5116600052811b0160205262011b7d60406000205462007e4d838862005af1565b919062011b8b828762005af1565b519061271082101562005ab95762011bb9936200189f926003906001600160a01b036201179c878f62005af1565b62011b23565b50949162011bd491935062010cf4906201610e565b916040519462011be48662003e9b565b60008652600036813760005b835181101562010d3c57806200189f62007a4e62011c0f938762005af1565b62011bf0565b6020810151602681101562003f7c5760070362011d28576040019262011c4060c08551015162005aab565b519162011c5260a08651015162005aab565b519451519162011c6a8451875114620018986201637f565b60005b845181101562010d3c5762011d22906200189f6001600160a01b038062011c95848a62005af1565b51166000528660028b62011d1262011cd58762011ccd8162013880978860205262008ae360ff60406000205416156200189862016450565b519362005af1565b519162008b478d6040519662011ceb8862003df8565b60018852886200dc978c60208b01946000865260408c0197885260608c01998a5262005af1565b5191015562008b62838962005af1565b62011c6d565b6020819493940151602681101562003f7c5760080362011dc05760c0604062011d55920151015162005aab565b519160005b835181101562011dae5762011da8906001600160a01b038062011d7e838862005af1565b51166000526201388090816020526200ddb7600160ff6040600020541615151462001898620163af565b62011d5a565b5092602091925062010d509062005a85565b6020810151602681101562003f7c5760090362011e435760c0604062011dea920151015162005aab565b519160005b835181101562011dae5762011e3d906001600160a01b038062011e13838862005af1565b51166000526201388090816020526200dea6600160ff6040600020541615151462001898620163af565b62011def565b6020810151602681101562003f7c57600a0362011ef2576040019062011e7460a06200df3a60c08551015162005aab565b519262011e898351855114620018986201637f565b60005b835181101562011edf5762011ed9906001600160a01b038062011eb0838862005af1565b511660005262013880806020526200dfaa600160ff6040600020541615151462001898620163af565b62011e8c565b509362010d509193506020925062005a85565b602081949392940151602681101562003f7c57600b0362011fa6576040019262011f2160c08551015162005aab565b519351519162011f398551845114620018986201637f565b60005b855181101562011f935762011f8d906200189f6001600160a01b038062011f64848b62005af1565b511660005262013880806020526200e08d600160ff6040600020541615151462001898620163af565b62011f3c565b509350916020915062010d509062005a85565b9091926020820151602681101562003f7c57600c03620120dc576060604083015101519260005b845181101562011edf5760e062011fed8260606040880151015162005af1565b510151156201206c576201200e62008f508260606040880151015162005af1565b62013882548060001981011162005a95576201203060059160001901620069d6565b5001805461ff0019166101001790556201388254906000198201821062005a9557600562008fa5620120669360001901620069d6565b62011fcd565b6201208462008fcf8260606040880151015162005af1565b62013882548060001981011162005a9557620120a66005916000190162006994565b5001805461ff0019166101001790556201388254906000198201821062005a9557600562008fa562012066936000190162006994565b9291906020810151602681101562003f7c57600d03620121f0576040019260206201210c60a08651015162005aab565b51945101519162012121855184511462014d99565b60005b855181101562011f9357806201213f62012198928662005af1565b51156201219e5762012156620090c8828962005af1565b6201216e60ff60056200e2bd620090ea858c62005af1565b6201218660ff600562009103620090ea858c62005af1565b60056200911f620090ea838a62005af1565b62012124565b620121ae62009157828962005af1565b620121c660ff60056200e2bd62009179858c62005af1565b620121de60ff60056200910362009179858c62005af1565b60056200911f62009179838a62005af1565b6020819492940151602681101562003f7c57600e03620122b7576040019060206201222060a08451015162005aab565b51925101519362012235835186511462014d99565b60005b835181101562011f935780620122536201225f928862005af1565b51620122655762005a85565b62012238565b6201227562009215828762005af1565b6201228d60ff60056200e3fc620090ea858a62005af1565b620122a560ff60056200925d620090ea858a62005af1565b600562008fa5620090ea838862005af1565b906020829493940151602681101562003f7c57600f03620123ee576060604083015101519260005b845181101562011edf5760e0620122ff8260606040880151015162005af1565b510151156201237e576201232062008f508260606040880151015162005af1565b62013882548060001981011162005a95576201234260059160001901620069d6565b5001805461ff0019166101001790556201388254906000198201821062005a955760056200911f620123789360001901620069d6565b620122df565b6201239662008fcf8260606040880151015162005af1565b62013882548060001981011162005a9557620123b86005916000190162006994565b5001805461ff0019166101001790556201388254906000198201821062005a955760056200911f62012378936000190162006994565b906020819493940151602681101562003f7c576010036201245f5760400151906201242260a0608084015193015162005aab565b5193620124378351865114620018986201637f565b60005b835181101562011f9357806200189f620093ff62012459938762005af1565b6201243a565b6020819492940151602681101562003f7c57601103620126c457604001906201249360a06200df3a60c08551015162005aab565b5193620124a4835186511462014ca6565b60005b83518110156201251f5762012519906200189f6001600160a01b0380620124cf848962005af1565b51166000526201388580602052620124f260406000205462006f21868d62005af1565b91909262012501868b62005af1565b51166000526020526040600020556200189862016335565b620124a7565b509350906201252e9062015ff2565b90620138865493620125466200815f84518762014cf2565b9060009260005b878110620126a9575060005b855181101562012600576000805b898110620125b1575b501562012589575b620125839062005a85565b62012559565b936201258390620125a8906001600160a01b036200e863888a62005af1565b94905062012578565b620125bc8162005c62565b90546001600160a01b0360039290921b1c811690620125dc858b62005af1565b511614620125f557620125ef9062005a85565b62012567565b505060013862012570565b509550939250620126118262005c0d565b8051906001600160401b03821162003e1457602090620126318362005d7e565b0162013886600052602060002060005b8381106201268b575050505060005b828110620126685750505062010d5060209162005a85565b62012685906200189f6001600160a01b0362001e63838662005af1565b62012650565b82516001600160a01b03168183015560209092019160010162012641565b936200e9b0620126be916200e9928762005c62565b6201254d565b6020819492940151602681101562003f7c576012036201290d5760400190620126f860a06200df3a60c08551015162005aab565b519362012709835186511462014ca6565b60005b83518110156201275d5762012757906200189f6001600160a01b038062012734848962005af1565b51166000526201388580602052620124f260406000205462007e4d868d62005af1565b6201270c565b50935091906201276d9062015ff2565b62013886546201277d8162005c0d565b906000926000915b80831062012833575050506201279b8262005c0d565b8051906001600160401b03821162003e1457602090620127bb8362005d7e565b0162013886600052602060002060005b83811062012815575050505060005b828110620127f25750505062010d5060209162005a85565b6201280f906200189f6001600160a01b0362001e63838662005af1565b620127da565b82516001600160a01b031681830155602090920191600101620127cb565b91956000959193959760005b8551811015620128fe57620128548962005c62565b90546001600160a01b0360039290921b1c81169062012874838962005af1565b5116146201288d57620128879062005a85565b6201283f565b509750956001959391955b80620128cc575b15620128b757620128b09062005a85565b9162012785565b936200e9b0620128b0916200e9928762005c62565b50620128d88162005c62565b60018060a01b0391549060031b1c1660005262013885602052604060002054156201289f565b50979690969593919562012898565b6020810151602681101562003f7c57601303620129665760408091015101519260005b84518110156201295557806200189f620099786201294f938862005af1565b62012930565b5092509062010d5060209162005a85565b6020810151602681101562003f7c5760140362012b1357604001906201299160c08351015162005aab565b5193620129a860a062007887818651015162005aab565b5191620129b986518551146201505a565b620129c88651845114620150c0565b60005b865181101562012abe57620129e1818562005af1565b51620129ee828762005af1565b519061271082101562005ab957600662012a0e9260031b01549062006ce3565b9062012a1b838862005af1565b519161271083101562005ab957600662012a3a9360031b01556201517a565b62012a46818562005af1565b5162012a53828762005af1565b519061271082101562005ab95762012a7c916003906001600160a01b0362010c6f868d62005af1565b919062012a8a828862005af1565b519061271082101562005ab95762012ab8936200189f926003906001600160a01b0362010cc3878f62005af1565b620129cb565b509491509162010cf462012ad2916201610e565b936040519262012ae28462003e9b565b60008452600036813760005b835181101562010d3c57806200189f62007a4e62012b0d938762005af1565b62012aee565b6020810151602681101562003f7c5760150362012b3d57602091926200189f62010d50926201527e565b6020810151602681101562003f7c5760160362012b995760c0604062012b67920151015162005aab565b519260005b8451811015620129555762012b93906200189f6001600160a01b036200a110838962005af1565b62012b6c565b6020810151602681101562003f7c5760170362012bf65760405162461bcd60e51b81526020600482015260296024820152600080516020620169698339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c5760180362012c635760c0604062012c20920151015162005aab565b5192600160ff1962013892541617620138925560005b8451811015620129555762012c5d906200189f6001600160a01b036200a1dd838962005af1565b62012c36565b6020819392930151602681101562003f7c5760190362012d4b5760008080604080940160a08082510151805162012d12575b5050519060e08201519162012cb962006f1a60c060018060a01b0393015162005aab565b511690602083519301915af1903d1562012d09573d9162012cda8362004098565b9262012ce98351948562003eb7565b83523d6000602085013e5b156200a29257505062010d5060209162005a85565b60609162012cf4565b62012d1d9062005aab565b515162012d2c575b8062012c95565b81925062006f1a9062012d429251015162005aab565b51903862012d25565b6020810151602681101562003f7c57601a0362012e455762012d7660a0604080930151015162005aab565b5162012d86600382511462014ca6565b62012d918162005aab565b519162012daa62012da28362005acf565b519262005ae0565b519162012e0b57509162010d50916001602094146000146200a4315762012dda62012de9916201388d5462006ce3565b6201388d5562001898620162d0565b6200189f62012dfc6201388e5462006cd0565b6201388e55620018986201630a565b5162461bcd60e51b8152602060048201526014602482015273496e76616c6964207061796d656e74207479706560601b6044820152606490fd5b6020810151602681101562003f7c57601b036201327d5750919062012e766201388b54620035a86200a4a76201620c565b505062012e82620162d0565b506000805b612710811062013231575b505062012e9e62006cf5565b62012ead6202712a5462005c0d565b906000946000905b61271082101562013224578160031b9460ff60078701541615620130085760009660028701541562012ff757600098975b62005ab957600487015489101562012fdd5762012f07896004890162005d10565b9054600391821b1c6001600160a01b031660008181529189016020526040918290205491999162012f3a90889062006b9b565b9a9062012f46620162d0565b62012f519162005a52565b60009a60028b015462012f649162006b9b565b9062012f6f620162d0565b62012f7a9162005a52565b826000526201388760205281600020549062012f969162006ce3565b90916000205562012fa6620162d0565b62012fb19162005a52565b62012fbd828962005af1565b5262012fc99062005a85565b9862012fd59062005a85565b989762012ee6565b9290955062012fef9196975062005a85565b909462012eb5565b9290955062012fef91965062005a85565b95969392509350505b6201301c8262005c0d565b9160009160005b8281106201318e57505050620138885491620130446200815f848462014cf2565b926000906000905b8082106201317157505060005b838110620130db5750508251929150506001600160401b03821162003e1457602090620130868362005d42565b0162013888600052602060002060005b838110620130bd575050505062010d5060209160006201388d5560006201388e5562005a85565b82516001600160a01b03168183015560209092019160010162013096565b6000805b83811062013129575b501562013101575b620130fb9062005a85565b62013059565b90620130fb9062013120906001600160a01b03620082e7858762005af1565b919050620130f0565b6001600160a01b03806201313e858862005af1565b5116906201314d838a62005af1565b5116146201316657620131609062005a85565b620130df565b5050600138620130e8565b9091620082f56201318791620098cd8562005c45565b906201304c565b6000805b858110620131dc575b5015620131b4575b620131ae9062005a85565b62013023565b92620131ae90620131d3906001600160a01b03620082e7878662005af1565b939050620131a3565b6001600160a01b0380620131f1858762005af1565b51169062013200838a62005af1565b5116146201321957620132139062005a85565b62013192565b50506001386201319b565b9394959291505062013011565b8060039594951b9060ff6007830154161562013273576200a8dd620076dc6200189f946200a8d16201326a9560026200a8c78762006b3e565b93929362012e87565b5093929362012e92565b6020810151602681101562003f7c57601c03620132da5760405162461bcd60e51b81526020600482015260296024820152600080516020620169898339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c57601d0362013300575b5062010d5060209162005a85565b6020810151602681101562003f7c57601e14620132f2576020810151602681101562003f7c57601f036201335157602091620133496200a9ba604062010d509401515162005aab565b9150620132f2565b6020810151602681101562003f7c5760200362013377575b5062010d5060209162013349565b6020810151602681101562003f7c5760211462013369576020810151602681101562003f7c57602203620133cd575062010d5060209160ff196201389254166201389255620133c562005e11565b915062013369565b6020810151602681101562003f7c57602303620133f3575b5062010d50602091620133c5565b6020810151602681101562003f7c57602414620133e5576020810151602681101562003f7c57602514620133e5576020810151602681101562003f7c57601503620109b5576020916201344a62010d50926201527e565b9150620133e5565b82516001600160a01b0316818301556020909201916001016200bb19565b82516001600160a01b0316818301556020909201916001016200b9c4565b600191820180546001600160a01b03909216848601559390910192906200b90c565b62027124600052620134d8906000805160206201692983398151915290810190830162005d29565b386200b8cc565b60018082620134f08294866201392e565b019201920191906200b88b565b62027123600052600080516020620168a9833981519152908282015b81830181106201352b5750506200b84f565b8062013539600192620060f7565b0162013519565b600191820180546001600160a01b03909216848601559390910192906200b81d565b620271226000526201358a906000805160206201688983398151915290810190830162005d29565b386200b7dd565b82516001600160a01b0316818301556020909201916001016200b69f565b620135cb906202711d6000528484600020918201910162005d29565b386200b68e565b82516001600160a01b0316818301556020909201916001016200b4af565b6201360c90620271146000528484600020918201910162005d29565b386200b49e565b80620136359160031b600160ff6007830154161515146201363b575062005a85565b6200b3ee565b6201364f6004820162013897830162013ac7565b6201389a8101600160ff1982541617905580548162013893015560018101546201389482015560028101546201389582015562013695600582016201389883016201392e565b620138996006820154910155386200a431565b6006602082620136bc6001945186620065a1565b019201920191906200b1db565b600681810204810362005a9557600683810204830362005a9557620271156000527f0f9b10e190177c3c56fc6ce7689c8130c567df57aa02c08e7a090a59992adf926006840281015b8260060282018110620137275750506200b1c7565b8060006006925560006001820155620137436002820162006265565b600060038201556201375860048201620060f7565b600060058201550162013712565b60066020826201377a6001945186620065a1565b019201920191906200b14b565b8060060290600682040362005a95578260060260068104840362005a95576000906202711682526020822092830192015b828110620137c85750506200b137565b808260069255826001820155620137e26002820162006265565b826003820155620137f660048201620060f7565b82600582015501620137b8565b608460405162461bcd60e51b815260206004820152604060248201526000805160206201694983398151915260448201527f656d2073686f756c64206e6f742072657475726e20766f7465206e65656465646064820152fd5b60405162461bcd60e51b815260206004820152604760248201526000805160206201694983398151915260448201527f656d2073686f756c64206e6f742072657475726e206120766f74696e672072756064820152661b19481b1a5cdd60ca1b608482015260a490fd5b8181146201392a578154916001600160401b03831162003e1457620138ec838362005e25565b60005260206000209060005260206000208154916000925b84841062013913575050505050565b600180919201938454928185015501929062013904565b5050565b908082146201392a5762013943815462005129565b906001600160401b03821162003e145781906201396d8262013966865462005129565b8662006441565b600090601f8311600114620139a6576000926201399a5750508160011b916000199060031b1c1916179055565b015490503880620064d4565b81526020808220858352818320935090601f1985169083905b828210620139fb575050908460019594939210620139e157505050811b019055565b015460001960f88460031b161c1916905538808062006521565b8495819295850154815560018091019601940190620139bf565b8181146201392a5781549162013a2c838362006188565b6000526020600020906000526020600020906000905b83821062013a505750505050565b8062013a5f600192856201392e565b92810192918101910162013a42565b8181146201392a5781549162013a85838362006216565b6000526020600020906000526020600020906000905b83821062013aa95750505050565b8062013ab860019285620138c6565b92810192918101910162013a9b565b8181146201392a578154916001600160401b03831162003e145762013aed838362005e25565b60005260206000209060005260206000208154916000925b84841062013b14575050505050565b600191820180546001600160a01b039092168486015593909101929062013b05565b8181146201392a5781549162013b4d838362006216565b6000526020600020906000526020600020906000905b83821062013b715750505050565b8062013b806001928562013ac7565b92810192918101910162013b63565b8181146201392a5781549162013ba683836200630c565b6000526020600020906000526020600020906000905b83821062013bca5750505050565b80600191840362013be7575b600780910193019101909162013bbc565b8054845562013c268280860190830160ff9062013c088282541684620063e4565b62013c1a82825460081c1684620063fe565b5460101c16906200641f565b62013c386002808301908601620138c6565b600380850190820180820362013c51575b505062013bd6565b62013c5c9162013a15565b62013c6e600480830190860162013a6e565b62013c80600580830190860162013b36565b62013c9260068083019086016201392e565b388062013c49565b919062006a4f5780820362013cad575050565b60ff600580620052aa9462013cc68486541682620063cb565b6001850154600182015562013ce2600286016002830162013b8f565b6003850154600382015562013cfe60048601600483016201392e565b01920162013d1082825416846200655e565b62013d2282825460081c16846200656f565b5460101c169062006587565b908082146201392a57908154906000915b6064831062013d4e5750505050565b600180919401928354948184015501919262013d3f565b906201388254602060009301908151519062013d818262003edb565b9162013d91604051938462003eb7565b80835262013da2601f199162003edb565b0136602084013762013db78351518262006b9b565b9015620141215762013dc99062005c0d565b90859284515115620141185762013de08262005c0d565b965b85515181101562013f615760008080805b86811062013e785750905062013e158162013e0f858762005af1565b6200534e565b600681101562003f7c5760031462013e3a575b5062013e349062005a85565b62013de2565b6000905b80821062013e4d575062013e28565b9095620098eb62013e719162013e64898d62005af1565b5162001f35828a62005af1565b9062013e3e565b62013e918162013e8a878d5162005af1565b516201453a565b9390948083118062013f4d575b1562013f0457505091838562013efa575b600681101562003f7c5760038e911462013eda575b505062013ed19062005a85565b91909162013df3565b9462013ef19162001f358262013ed1959862005af1565b93908c62013ec4565b6000955062013eaf565b809492959195148062013f39575b1562013ec457600681101562003f7c5760038e911462013eda57505062013ed19062005a85565b50600681101562003f7c5780151562013f12565b50600686101562003f7c5785151562013e9e565b5093505090929350600093845b8351861015620140b35762013f8e62013f88878662005af1565b620063bd565b9060068083101562003f7c57600292830362013fb957505062013fb2909562005a85565b9462013f6e565b62013fc962013f88898862005af1565b928184101562003f7c576001809414806201409f575b1562013ff45750505062013fb2909562005a85565b6201400962013f888a899b9694959b62005af1565b928084101562003f7c576004809414928362014073575b508262014048575b50506201403c575b5062013fb29062005a85565b955062013fb262014030565b9091508810156201405e57871415388062014028565b602182634e487b7160e01b6000525260246000fd5b908093508a10156201408a57891415913862014020565b602184634e487b7160e01b6000525260246000fd5b508183101562003f7c578083141562013fdf565b925092909350600682101562003f7c57600382036201410f575b620140d88162005c0d565b9360005b828110620140eb575050509190565b80620140fc62014109928462005af1565b5162001f35828962005af1565b620140dc565b506000620140cd565b50909392505050565b60405162461bcd60e51b815260206004820152602a60248201527f546865206c656e677468206f6620766f74696e672072756c65206c697374206960448201526973206f766572666c6f7760b01b6064820152608490fd5b9062013883546020600093019081515190620141958262003edb565b91620141a5604051938462003eb7565b808352620141b6601f199162003edb565b01366020840137620141cb8351518262006b9b565b90156201412157620141dd9062005c0d565b908592845151156201411857620141f48262005c0d565b965b855151811015620143625760008080805b8681106201427957509050620142238162013e0f858762005af1565b600681101562003f7c5760031462014248575b50620142429062005a85565b620141f6565b6000905b8082106201425b575062014236565b9095620098eb620142729162013e64898d62005af1565b906201424c565b62014292816201428b878d5162005af1565b51620145d6565b939094808311806201434e575b1562014305575050918385620142fb575b600681101562003f7c5760038e9114620142db575b5050620142d29062005a85565b91909162014207565b94620142f29162001f3582620142d2959862005af1565b93908c620142c5565b60009550620142b0565b80949295919514806201433a575b15620142c557600681101562003f7c5760038e9114620142db575050620142d29062005a85565b50600681101562003f7c5780151562014313565b50600686101562003f7c578515156201429f565b5093505090929350600093845b835186101562014484576201438962013f88878662005af1565b9060068083101562003f7c576002928303620143b4575050620143ad909562005a85565b946201436f565b620143c462013f88898862005af1565b928184101562003f7c5760038094148062014470575b15620143ef57505050620143ad909562005a85565b6201440462013f888a899b9694959b62005af1565b928084101562003f7c576005809414928362014459575b508262014443575b505062014437575b50620143ad9062005a85565b9550620143ad6201442b565b90915088101562003f7c57871415388062014423565b908093508a101562003f7c5789141591386201441b565b508183101562003f7c5780831415620143da565b925092909350600682101562003f7c5760038203620144d3575b620144a98162005c0d565b9360005b828110620144bc575050509190565b80620140fc620144cd928462005af1565b620144ad565b5060006201449e565b15620144e457565b60405162461bcd60e51b815260206004820152602860248201527f506c7567696e466163746f72793a20706c7567696e20696e646578206f7574206044820152676f662072616e676560c01b6064820152608490fd5b90916000809381936201455362013882548310620144dc565b60ff60056201456284620069d6565b50015460081c1615620145ca5782826201457e92600162014763565b6201458a575b50929190565b80945060019293506201459e9150620069d6565b500154906003620145bf60ff620145b586620069d6565b50541694620069d6565b500154913862014584565b50509150915080918190565b9091600080938193620145ef62013883548310620144dc565b60ff6005620145fe8462006994565b50015460081c1615620145ca57828262014619928262014763565b620146245750929190565b809450600192935062014638915062006994565b500154906003620145bf60ff6201464f8662006994565b5054169462006994565b156201466157565b60405162461bcd60e51b815260206004820152603160248201527f436865636b696e6720636f6e646974696f6e206578703a20706c7567696e20696044820152706e646578206f7574206f662072616e676560781b6064820152608490fd5b15620146c857565b60405162461bcd60e51b815260206004820152602f60248201527f436865636b696e6720636f6e646974696f6e206578703a206e6f646520696e6460448201526e6578206f7574206f662072616e676560881b6064820152608490fd5b62013884805482101562005ab9576000526007602060002091020190600090565b805482101562005ab9576000526007602060002091020190600090565b90929190801562014ad2576201477f6201388254831062014659565b6201479b60026201479084620069d6565b5001548410620146c0565b801562014ab457620147cb6001620147c2856002620147ba87620069d6565b500162014746565b50015460ff1690565b620147d68162004dc4565b80620147e6575050505050600090565b620147f18162004dc4565b6003810362014804575050505050600190565b6201480f8162004dc4565b6004810362014822575050505050600090565b6201482d8162004dc4565b60019080820362014846575050926200553f9362014afa565b909293620148548262004dc4565b60028092146201486a575b505050505050600090565b821562014a97576201489384620148878385620147ba8a620069d6565b50015460081c60ff1690565b925b60009586865b62014a25575b50620148ad8762005c0d565b9760005b888110620149c8575050505050620148c98262003f71565b8183036201492857505091906000915b818310620148e75750505090565b9091928062014905575b620148fd909362005a85565b9190620148d9565b50620148fd620149206201491a858462005af1565b51151590565b9050620148f1565b909150620149368262003f71565b81036201498f57509060009182915b818310620149535750505090565b909192801562014972575b6201496a909362005a85565b919062014945565b506201496a620149876201491a858462005af1565b90506201495e565b600391506201499e8162003f71565b14620149b157503880808080806201485f565b620149c46201491a6200553f9262005aab565b1590565b808a62014a04620149fb620149f1848b620149e98c82620147ba8d62006994565b500162005d10565b90549060031b1c90565b86868962014763565b62014a1862014a1f946200189f9362005af1565b9015159052565b620148b1565b8462014a378582620147ba8662006994565b50015481101562014a915762014a5d620149f18287620149e98882620147ba8962006994565b62014a76575b62014a6f879162005a85565b906201489b565b9662014a6f62014a87889262005a85565b9891505062014a63565b620148a1565b62014aad84620148878385620147ba8a62006994565b9262014895565b62014acc6001620147c2856002620147ba8762006994565b620147cb565b62014ae36201388354831062014659565b62014af46002620147908462006994565b6201479b565b909291600362014b4c918360001462014bd45760ff600162014b23876002620147ba86620069d6565b50015460101c16945b841562014bc3576002620147ba62014b4493620069d6565b50016200547e565b91603d81101562003f7c57602c810362014b9357505062014b7662006f1a60208093015162005aab565b51910151602681101562003f7c5762014b8f906201651b565b1490565b9092906001810362014ba85750505050600090565b60031462014bb857505050600090565b6200553f9262014c44565b6002620147ba62014b449362006994565b60ff600162014bea876002620147ba8662006994565b50015460101c169462014b2c565b1562014c0057565b606460405162461bcd60e51b815260206004820152602060248201527f4f70657261746f722061646472657373206973206e6f742070726f76696465646044820152fd5b9190604062006f1a920162014c5e60018251511462014bf8565b62014c79600162014c70835162005aab565b51511462014bf8565b516001600160a01b0392839162014c91919062005aab565b5116921562014ca05751161490565b51161490565b1562014cae57565b60405162461bcd60e51b815260206004820152601c60248201527b496e76616c6964206e756d626572206f6620706172616d657465727360201b6044820152606490fd5b9190820180921162005a9557565b62014d0b8162004dc4565b62014d196200e667620164b2565b62014d248162004dc4565b6001810362014d43575062014d3c6200e693620164b2565b6201388b55565b62014d4e8162004dc4565b6002810362014d5f57506201388c55565b62014d6a8162004dc4565b6003810362014d7b57506201388d55565b8062014d8960049262004dc4565b1462014d925750565b6201388e55565b1562014da157565b60405162461bcd60e51b815260206004820152604d60248201527f546865206c656e677468206f662074686520706c7567696e20696e646578657360448201527f20617272617920616e642074686520626f6f6c65616e206172726179206d757360648201526c74206265207468652073616d6560981b608482015260a490fd5b1562014e2a57565b60405162461bcd60e51b815260206004820152602260248201527f496e76616c696420706c7567696e20696e64657820746f20626520656e61626c604482015261195960f21b6064820152608490fd5b1562014e8257565b60405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c6564206973206e6f742060448201526a1a5b9a5d1a585b1a5e995960aa1b6064820152608490fd5b1562014ee357565b60405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c656420697320616c726560448201526a18591e48195b98589b195960aa1b6064820152608490fd5b1562014f4457565b60405162461bcd60e51b815260206004820152602360248201527f496e76616c696420706c7567696e20696e64657820746f2062652064697361626044820152621b195960ea1b6064820152608490fd5b1562014f9d57565b60405162461bcd60e51b815260206004820152602c60248201527f54686520706c7567696e20746f2062652064697361626c6564206973206e6f7460448201526b081a5b9a5d1a585b1a5e995960a21b6064820152608490fd5b1562014fff57565b60405162461bcd60e51b815260206004820152602d60248201527f54686520706c7567696e20746f2062652064697361626c656420697320616c7260448201526c1958591e48191a5cd8589b1959609a1b6064820152608490fd5b156201506257565b60405162461bcd60e51b815260206004820152603060248201527f546865206c656e677468206f662074617267657420616e6420746f6b656e436c60448201526f185cdcc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b15620150c857565b60405162461bcd60e51b815260206004820152602c60248201527f546865206c656e677468206f662074617267657420616e6420616d6f756e742060448201526b1a5cc81b9bdd08195c5d585b60a21b6064820152608490fd5b156201512a57565b60405162461bcd60e51b815260206004820152602260248201527f54686520746f6b656e20636c617373206973206e6f7420696e697469616c697a604482015261195960f21b6064820152608490fd5b156201518257565b60405162461bcd60e51b815260206004820152602960248201527f54686520746f74616c20737570706c79206f662074686520746f6b656e206973604482015268206f766572666c6f7760b81b6064820152608490fd5b15620151e157565b60405162461bcd60e51b8152602060048201526024808201527f5468652062616c616e6365206f662074686520746f6b656e206973206f766572604482015263666c6f7760e01b6064820152608490fd5b156201523a57565b606460405162461bcd60e51b815260206004820152602060248201527f54686520746f6b656e20697320616c726561647920696e697469616c697a65646044820152fd5b60408101906201529360c08351015162005aab565b5191620152b560a0620152aa818451015162005aab565b519251015162005acf565b5193620152ca8451835114620018986201637f565b620152dd8451865114620018986201637f565b60005b84518110156201533a57620152f6818462005af1565b519061271082101562005ab957620153349160018060a01b03865116600052600390811b016020526200189f60406000205462007de0838a62005af1565b620152e0565b5092919360005b8351811015620154655762015357818462005af1565b5190612710918281101562005ab95760018060a01b03908189511660005260039081602091811b0181526201539760406000205462007e4d868962005af1565b90620153a4868a62005af1565b51918783101562005ab95784620153d193878f5116600052811b0184526040600020556200189862016483565b620153dd848862005af1565b518581101562005ab957829084620153f6878c62005af1565b5116600052811b0181526201541660406000205462006f21868962005af1565b91909262015425868a62005af1565b519687101562005ab9576201545f966200189f9562015445888d62005af1565b5116600052811b01905260406000205562001898620164e8565b62015341565b505062010cf462015476916201610e565b9060405193620154868562003e7f565b60018552602036818701376001600160a01b03610960819052905116620154ad8562005aab565b526000935b8151851015620157d057620154c8858362005af1565b5194620154d6845162005c0d565b91600093620154e6825162005c0d565b610920528496855b87518110156201558f5762015515610960516201550c838b62005af1565b51168b62015edb565b158062015557575b62015534575b6201552e9062005a85565b620154ee565b956201554e6201552e91610960516200a7568a8c62005af1565b96905062015523565b506127108a101562005ab9576109605162015573828a62005af1565b511660005260038a811b0160205260406000205415156201551d565b509793929096949195976000986127108610159560031b9860038a019a5b895181101562015629578762005ab95761096051620155cd828c62005af1565b51166000528b60205260406000205415620155f4575b620155ee9062005a85565b620155ad565b9762015620620155ee918b6201560f8c610960519262005af1565b511662001f35826109205162005af1565b989050620155e3565b50949591939650985096909596806109805262005ab957600401806109005254956201565a6200815f868962014cf2565b61094052600097886108e0525b6109805162005ab9576108e05188811015620157055762015696620156ac916000610980526109005162005d10565b6109605191549060031b1c166109205162015f9d565b15620156cb575b620156c16108e05162005a85565b6108e05262015667565b97620156fe90620156e36108e0516109005162005d10565b6109605191549060031b1c1662001f35826109405162005af1565b97620156b3565b5095939096509690969391936000915b8383106201579f57505050506109805162005ab95761094051516001600160401b03811162003e14576201574d816109005162005e25565b60206109405101610900516000526020600020600061096051905b84811062015788575050505050620157809062005a85565b9392620154b2565b600190602083865116950194818501550162015768565b620082f5620157c99161096051620157b8868662005af1565b511662001f35826109405162005af1565b9162015715565b5050509050565b815180519192916001600160401b03811162003e1457620157f9818562005e25565b6020809201846000528260002060005b83811062015870575050505060c082600692620052aa95940151600185015560408101516002850155606081015160038501556201585160808201511515600486016200655e565b6201586460a0820151600586016200648b565b0151151591016200655e565b8251828201559184019160010162015809565b620138848054600160401b81101562003e1457620158a79160018201905562014725565b91909162006a4f57620052aa91620157d7565b62013890908154600160401b81101562003e14576001810180845581101562005ab957620052aa926000526020600020016200648b565b9080620158fc575050565b620052aa91600052601f6020600020910160051c81019062005d29565b90600160401b811162003e145781548183558082106201593857505050565b620052aa92600052601f6020600020918180850160051c840194168062015967575b500160051c019062005d29565b600019908186019182549160200360031b1c169055386201595a565b9060031b60ff811b9283911b169119161790565b600092620159b1620159aa859462014725565b50620052c7565b9380935b85515185101562015a9f575061271084101562005ab95760039380851b9460018060a01b03851660005260209086018152620159fe604096600188600020549101549062006b9b565b9384911562015a6a579062015a139162006ce3565b96901562015a3057505062015a289062005a85565b9390620159b5565b60649250519062461bcd60e51b825260048201526014602482015273746f74616c20706f776572206f766572666c6f7760601b6044820152fd5b875162461bcd60e51b815260048101849052600e60248201526d706f776572206f766572666c6f7760901b6044820152606490fd5b93505092505090565b1562015ab057565b60405162461bcd60e51b815260206004820152601360248201527263757272656e74596573206f766572666c6f7760681b6044820152606490fd5b600162015af88262014725565b5001546202712e546000928184526202712b908160205262015b21816004604088200162005d10565b90549060031b1c918386528060205262015b42826005604089200162005d10565b90549060031b1c93865260205260ff600662015b7662015b68848360408b200162005d10565b90549060031b1c9362014725565b5001541662015bc4575062015bb4926200044f62015ba6938362015b9e62015bac9562006b65565b969062015aa8565b62014cf2565b929062015aa8565b111562015bbe5790565b50600190565b6200fc27925062015bb49362015bde62015bac9362006b65565b949062015aa8565b9092919262015bf6825162005c0d565b60009162015c05815162005c0d565b8390845b865181101562015ca0576001600160a01b0362015c2c816201550c848b62005af1565b158062015c6b575b62015c4c575b5062015c469062005a85565b62015c09565b819662015c6391620082e762015c46948b62005af1565b959062015c3a565b506127108a101562005ab9578062015c84838a62005af1565b511660005260038a811b01602052604060002054151562015c34565b509295919694509260005b875181101562015d215761271086101562005ab9576001600160a01b038062015cd5838b62005af1565b5116600052600387811b016020526040600020541562015d02575b5062015cfc9062005a85565b62015cab565b819562015d19916200e86362015cfc948c62005af1565b949062015cf0565b509250945092612710831015938462005ab95760049586600395861b019687549462015d526200815f828862014cf2565b9460009689889a5b62015ec657818b101562015dfb57506000998b62015d9562015d7d838362005d10565b90546001600160a01b0392918e1b1c82168a62015f9d565b1562015db8575b50509062015dad8b94939262005a85565b9a9091929362015d5a565b91998c95949392909162015dce908c9062005d10565b9054908d1b1c1662015de1828b62005af1565b5262015ded9062005a85565b9890919293508b3862015d9c565b9697949a98505091975092506000915b83831062015ea1575050505062015e8c578051926001600160401b03841162015e77575062015e3b838362005e25565b602080910191600052806000209060005b84811062015e5b575050505050565b83516001600160a01b0316838201559281019260010162015e4c565b604190634e487b7160e01b6000525260246000fd5b603283634e487b7160e01b6000525260246000fd5b62015ebf90620082f5906001600160a01b036200a756868662005af1565b9162015e0b565b603285634e487b7160e01b6000525260246000fd5b9060005b61271083101562005ab9576003600484821b01805483101562015f3a578262015f089162005d10565b9054911b1c6001600160a01b039081169083161462015f325762015f2c9062005a85565b62015edf565b505050600190565b5050505050600090565b9060005b61271083101562005ab95760036201389784821b01805483101562015f3a578262015f739162005d10565b9054911b1c6001600160a01b039081169083161462015f325762015f979062005a85565b62015f48565b9060005b825181101562015fdc576001600160a01b038062015fc0838662005af1565b51169083161462015f325762015fd69062005a85565b62015fa1565b505050600090565b801562005a95576000190190565b9081519060005b60001983810184811162005a9557821015620160c0576001820180831162005a95575b84811062016037575050620160319062005a85565b62015ff9565b6001600160a01b03806201604c858962005af1565b5116816201605b848a62005af1565b51161462016076575b50620160709062005a85565b6201601c565b828692960182811162005a95576201607092620160b9926201609d620160b2938b62005af1565b5116620160ab898b62005af1565b5262015fe4565b9562015fe4565b9062016064565b505090620160ce8162005c0d565b9060005b818110620160e1575090925050565b62016108906001600160a01b03620160fa828862005af1565b511662001f35828662005af1565b620160d2565b80519160005b60001984810185811162005a9557821015620161c6576001820180831162005a95575b858110620161525750506201614c9062005a85565b62016114565b6201615e838662005af1565b516201616b828762005af1565b511462016184575b6201617e9062005a85565b62016137565b948181019080821162005a9557620161b7620161be91620161aa6201617e948962005af1565b51620160ab8a8a62005af1565b9662015fe4565b905062016173565b50509091620161d58162005c0d565b9060005b818110620161e8575090925050565b80620161f962016206928762005af1565b5162001f35828662005af1565b620161d9565b6040516201621a8162003df8565b604481527f496e76616c6964206469766964656e64207065726d797269616420706572207460208201527f72616e73616374696f6e2e2053686f756c64206265206c657373207468616e206040820152630313030360e41b606082015290565b604051620162888162003e63565b603281527f4e6f20656e6f756768206e756d626572206f66207472616e73616374696f6e7360208201527108199bdc88191a5d9a59195b991cc81e595d60721b604082015290565b604051620162de8162003e7f565b601c81527b6469766964656e6473206f7065726174696f6e206f766572666c6f7760201b602082015290565b604051620163188162003e7f565b600d81526c2ab735b737bbb71022b93937b960991b602082015290565b604051620163438162003e63565b602681527f4572726f7220696e20776974686472617761626c6520636173682063616c63756020820152653630ba34b7b760d11b604082015290565b6040516201638d8162003e7f565b6012815271496e76616c696420506172616d657465727360701b602082015290565b604051620163bd8162003e7f565b601581527413595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b602082015290565b604051620163f08162003e7f565b601781527613595b58995c881a5cc81b9bdd081cdd5cdc195b991959604a1b602082015290565b604051620164258162003e7f565b601b81527a13595b58995c881a5cc8185b1c9958591e481cdd5cdc195b991959602a1b602082015290565b6040516201645e8162003e7f565b60158152744d656d62657220616c72656164792065786973747360581b602082015290565b604051620164918162003e7f565b60118152704e6f20656e6f7567682062616c616e636560781b602082015290565b604051620164c08162003e7f565b6018815277125b9d985b1a59081c185c985b595d195c881d1bc81cd95d60421b602082015290565b604051620164f68162003e7f565b6015815274546f6b656e20616d6f756e74206f766572666c6f7760581b602082015290565b602681101562003f7c57801562016709576001811462015bbe5760028114620167035760038114620166fd5760048114620166f75760058114620166f15760068114620166eb5760078114620166e55760088114620166df5760098114620166d957600a8114620166d357600b8114620166cd57600c8114620166c757600d8114620166c157600e8114620166bb57600f8114620166b55760108114620166af5760118114620166a95760128114620166a357601381146201669d57601481146201669757601581146201669157601881146201668b57601781146201668557601981146201667f57601a81146201667957601b81146201667357601c81146201666d57601d81146201666757601e81146201666157601f81146201665b576020811462016655576021146201665057600090565b602190565b50602090565b50601f90565b50601e90565b50601d90565b50601c90565b50601b90565b50601a90565b50601990565b50601790565b50601690565b50601590565b50601490565b50601390565b50601290565b50601190565b50601090565b50600f90565b50600e90565b50600d90565b50600c90565b50600b90565b50600a90565b50600990565b50600890565b50600790565b50600690565b50600590565b50600490565b50600390565b50600290565b50600090565b90815181101562005ab9570160200190565b60405190620167308262003e63565b60288252604036602084013760005b601481106201674d57505090565b60139080820391821162005a9557600382901b916001600160fd1b0381160362005a955760ff80831162005a9557600192620167969084901b6001600160a01b03861662005e5f565b60f081168282160391821162005a9557620167ba9060f41b600f60f81b1662016823565b82841b916001600160ff1b038416840362005a9557620167f79160001a620167e384896201670f565b5360f81b6001600160f81b03191662016823565b92810180911162005a9557620168166201681d9360001a91866201670f565b5362005a85565b6201673f565b60f81c600a8110156201684c5760300160ff811162005a955760f81b6001600160f81b03191690565b60570160ff811162005a955760f81b6001600160f81b0319169056fe546865206c656e677468206f662061646472657373657320616e6420746f6b651f4fe3ad533e3985b88710ce05a205152f02825e155777f3bcb8b3bbfcfb03a24ad859a97f543436e70c22b09d31fb4c7b9e987d7a008c98817c9b50a97b1224546865206c656e677468206f6620746f6b656e436c61737320616e6420746f6b546865206c656e677468206f6620746f6b656e496e666f20616e6420746f6b658e71c125ecfe4aeed61c8cf4b09183dd0bf2a3230d826486f04e5f6f0de58e2c18baa939e2e21be0e012ec26e9ec87e9e6faa065bd9f5835250457786300ece8546865206265666f7265206f7065726174696f6e20706c7567696e20737973745265736572766564206f70636f6465206964203233206973206e6f7420696d705265736572766564206f70636f6465206964203238206973206e6f7420696d70546865206c656e677468206f662061646472657373657320616e6420616d6f75a26469706673582212201f2bb79a682df659a5922dbdcdc08d51de62b1538a4c40a328e1be2b81a12e7f64736f6c63430008110033", + "deployedBytecode": "0x6109a08060405260043610156200001557600080fd5b600080608052803560e01c918263036ee8501462003da5575081630e5a3b291462003a3757816310ade3ea1462003a055781631797631d14620039925781631c75255a146200393c57816323b65c7814620038c95781632514a6b4146200368957816341d1a438146200365657816356424cf4146200356e5781635c00d987146200351f5781635d0b184914620034fb5781635f1231ea14620034075781635f5d5f001462003394578163681ece9d146200335157816374579b18146200236757816379532bfe14620023435781637daa10ce14620023245781638129fc1c1462001f455750806383e4cccf1462001cce578063864f9f7a1462001c8c57806386ad77e2146200194d5780638c7a63ae14620018d35780639df9914514620017b25780639f36145f14620004e1578063a064c4f11462000416578063acf80bc414620003d4578063aefca42a14620003b0578063bba51030146200021b578063d5a172f214620001ec5763d6a93c51146200018f57600080fd5b34620001e65760805180600319360112620001e3575b6127108110620001bb575b602090604051908152f35b60ff60078260031b01541615620001dd57620001d79062005a85565b620001a5565b620001b0565b80fd5b60805180fd5b34620001e65760805180600319360112620001e35762027126546040516001600160a01b039091168152602090f35b34620001e65760805180600319360112620001e3576202712e548091526202712b906020828152600380604060805120015493620002766200025d8662003edb565b956200026d604051978862003eb7565b80875262003edb565b8584019190601f19013683376080515b8560805152818552836040608051200154811015620003595760405163083a348760e31b815260048101829052602486828281305afa9182156200034c57608051926200030e575b50620002db838a62005af1565b9086831015620002f8575052620002f29062005a85565b62000286565b60808051634e487b7160e01b9052602160045251fd5b9091508681813d831162000344575b62000329818362003eb7565b81010312620001e6575185811015620001e6579089620002ce565b503d6200031d565b6040513d608051823e3d90fd5b84878460405192839281840190828552518091526040840192916080515b8281106200038757505050500390f35b91938395509080826200039f60019483975162003fd8565b019501910191859493919262000377565b34620001e65760805180600319360112620001e35760206202712854604051908152f35b34620001e6576020366003190112620001e6576001600160a01b03620003f962003dc7565b166080515262013887602052602060406080512054604051908152f35b34620001e6576020366003190112620001e657600435612710811015620004c957806200044f6001620004569360031b01549162006c21565b9062006b9b565b90156200046857602090604051908152f35b60405162461bcd60e51b815260206004820152603360248201527f73756d566f74696e67576569676874466f72546f6b656e436c6173733a20766f60448201527274696e67576569676874206f766572666c6f7760681b6064820152608490fd5b634e487b7160e01b6080515260326004526024608051fd5b34620001e6576020366003190112620001e657600435608051526202712b602052604060805120604051620005168162003e63565b81546001600160a01b03168152600182018054909290620005378162003edb565b9062000547604051928362003eb7565b808252602082019460805152608051946020862095905b828210620005e957620005be8686866020830152604051620005918162000589816002860162005166565b038262003eb7565b604083015260ff600782015491600960088201549101549060405195869560a0875260a0870190620054e0565b9360208601526040850152620005da6060850183831662003fd8565b60081c16151560808301520390f35b604051620005f78162003e63565b87546001600160a01b0381168252602660a082901c60ff1610156200179a5760a01c60ff1660208201526040516200062f8162003e46565b6200063d60018a0162005204565b8152600289016040518082602082945493848152019060805152608051926020842093905b80601f830110620015c7576200079b945491818110620015b0575b81811062001596575b8181106200157c575b81811062001562575b81811062001549575b8181106200152f575b81811062001515575b818110620014fb575b818110620014e1575b818110620014c7575b818110620014ad575b81811062001493575b81811062001479575b8181106200145f575b81811062001445575b8181106200142b575b81811062001411575b818110620013f7575b818110620013dd575b818110620013c3575b818110620013a9575b8181106200138f575b81811062001375575b8181106200135b575b81811062001341575b81811062001327575b8181106200130d575b818110620012f3575b818110620012d9575b818110620012bf575b818110620012a5575b1062001294575b50038262003eb7565b6020820152600389018054620007b18162003edb565b91620007c1604051938462003eb7565b818352602083019060805152608051906020822091905b8382106200127357505050506040820152600489018054620007fa8162003edb565b916200080a604051938462003eb7565b818352602083019060805152608051906020822091905b838210620010fc57505050506060820152600589016040519081602082549182815201916080515260805190602082205b81601f84011062000e0b5784600997946020979460019a97946200099894549181811062000ded575b81811062000dcc575b81811062000dab575b81811062000d8a575b81811062000d6a575b81811062000d49575b81811062000d28575b81811062000d07575b81811062000ce6575b81811062000cc5575b81811062000ca4575b81811062000c83575b81811062000c62575b81811062000c41575b81811062000c20575b81811062000bff575b81811062000bde575b81811062000bbd575b81811062000b9c575b81811062000b7b575b81811062000b5a575b81811062000b39575b81811062000b18575b81811062000af7575b81811062000ad6575b81811062000ab5575b81811062000a94575b81811062000a73575b81811062000a52575b81811062000a31575b81811062000a10575b10620009f55750038262003eb7565b6080820152620009ab60068d0162005368565b60a0820152620009be60078d0162005421565b60c08201526008620009dc8d62000589604051809481930162005166565b60e082015260408201528152019701910190956200055e565b90889160f81c62000a068162004dc4565b8152013862000792565b928a8d9160ff8560f01c1662000a268162004dc4565b815201930162000989565b928a8d9160ff8560e81c1662000a478162004dc4565b815201930162000980565b928a8d9160ff8560e01c1662000a688162004dc4565b815201930162000977565b928a8d9160ff8560d81c1662000a898162004dc4565b81520193016200096e565b928a8d9160ff8560d01c1662000aaa8162004dc4565b815201930162000965565b928a8d9160ff8560c81c1662000acb8162004dc4565b81520193016200095c565b928a8d9160ff8560c01c1662000aec8162004dc4565b815201930162000953565b928a8d9160ff8560b81c1662000b0d8162004dc4565b81520193016200094a565b928a8d9160ff8560b01c1662000b2e8162004dc4565b815201930162000941565b928a8d9160ff8560a81c1662000b4f8162004dc4565b815201930162000938565b928a8d9160ff8560a01c1662000b708162004dc4565b81520193016200092f565b928a8d9160ff8560981c1662000b918162004dc4565b815201930162000926565b928a8d9160ff8560901c1662000bb28162004dc4565b81520193016200091d565b928a8d9160ff8560881c1662000bd38162004dc4565b815201930162000914565b928a8d9160ff8560801c1662000bf48162004dc4565b81520193016200090b565b928a8d9160ff8560781c1662000c158162004dc4565b815201930162000902565b928a8d9160ff8560701c1662000c368162004dc4565b8152019301620008f9565b928a8d9160ff8560681c1662000c578162004dc4565b8152019301620008f0565b928a8d9160ff8560601c1662000c788162004dc4565b8152019301620008e7565b928a8d9160ff8560581c1662000c998162004dc4565b8152019301620008de565b928a8d9160ff8560501c1662000cba8162004dc4565b8152019301620008d5565b928a8d9160ff8560481c1662000cdb8162004dc4565b8152019301620008cc565b928a8d9160ff8560401c1662000cfc8162004dc4565b8152019301620008c3565b928a8d9160ff8560381c1662000d1d8162004dc4565b8152019301620008ba565b928a8d9160ff8560301c1662000d3e8162004dc4565b8152019301620008b1565b928a8d9160ff8560281c1662000d5f8162004dc4565b8152019301620008a8565b928a8d9160ff85831c1662000d7f8162004dc4565b81520193016200089f565b928a8d9160ff8560181c1662000da08162004dc4565b815201930162000896565b928a8d9160ff8560101c1662000dc18162004dc4565b81520193016200088d565b928a8d9160ff8560081c1662000de28162004dc4565b815201930162000884565b928a8d9160ff851662000e008162004dc4565b81520193016200087b565b926001610400602092865460ff811662000e258162004dc4565b825260ff8160081c1662000e398162004dc4565b8583015260ff8160101c1662000e4f8162004dc4565b604083015260ff8160181c1662000e668162004dc4565b606083015260ff81861c1662000e7c8162004dc4565b608083015260ff8160281c1662000e938162004dc4565b60a083015260ff81818160301c1662000eac8162004dc4565b60c09081860152828260381c1662000ec48162004dc4565b60e0860152828260401c1662000eda8162004dc4565b610100860152828260481c1662000ef18162004dc4565b610120860152828260501c1662000f088162004dc4565b610140860152828260581c1662000f1f8162004dc4565b610160860152828260601c1662000f368162004dc4565b610180860152828260681c1662000f4d8162004dc4565b6101a0860152828260701c1662000f648162004dc4565b6101c0860152828260781c1662000f7b8162004dc4565b6101e0860152828260801c1662000f928162004dc4565b610200860152828260881c1662000fa98162004dc4565b610220860152828260901c1662000fc08162004dc4565b610240860152828260981c1662000fd78162004dc4565b610260860152828260a01c1662000fee8162004dc4565b610280860152828260a81c16620010058162004dc4565b6102a0860152828260b01c166200101c8162004dc4565b6102c0860152828260b81c16620010338162004dc4565b6102e08601521c16620010468162004dc4565b61030083015260ff8160c81c166200105e8162004dc4565b61032083015260ff8160d01c16620010768162004dc4565b61034083015260ff8160d81c166200108e8162004dc4565b61036083015260ff8160e01c16620010a68162004dc4565b61038083015260ff8160e81c16620010be8162004dc4565b6103a083015260ff8160f01c16620010d68162004dc4565b6103c083015260f81c620010ea8162004dc4565b6103e082015201940192019162000852565b60409d9c9b9a999897969d51620011138162003e46565b6200112360ff855416826200534e565b600184015460208201526002840180546200113e8162003edb565b916200114e604051938462003eb7565b8183526020830190608051526080516020812090915b838310620011e557505050509d9e9798999a9b9c9d600192826020926040600695015260038701546060820152604051620011a881620005898160048c0162005166565b608082015260ff6005880154818116151560a0840152818160081c16151560c084015260101c16151560e082015281520193019101909162000821565b60076020600192604051620011fa8162003e2a565b855481526200123e60ff86880154818116620012168162004dc4565b86850152818160081c166200122b8162003f71565b604085015260101c16606083016200535b565b6200124c6002870162005272565b60808201526200125f600387016200547e565b60a082015281520192019201919062001164565b600760206001926200128586620052c7565b815201930191019091620007d8565b60f81c151581526020018d62000792565b92602060019160ff8560f01c16151581520193016200078b565b92602060019160ff8560e81c161515815201930162000782565b92602060019160ff8560e01c161515815201930162000779565b92602060019160ff8560d81c161515815201930162000770565b92602060019160ff8560d01c161515815201930162000767565b92602060019160ff8560c81c16151581520193016200075e565b92602060019160ff8560c01c161515815201930162000755565b92602060019160ff8560b81c16151581520193016200074c565b92602060019160ff8560b01c161515815201930162000743565b92602060019160ff8560a81c16151581520193016200073a565b92602060019160ff8560a01c161515815201930162000731565b92602060019160ff8560981c161515815201930162000728565b92602060019160ff8560901c16151581520193016200071f565b92602060019160ff8560881c161515815201930162000716565b92602060019160ff8560801c16151581520193016200070d565b92602060019160ff8560781c161515815201930162000704565b92602060019160ff8560701c1615158152019301620006fb565b92602060019160ff8560681c1615158152019301620006f2565b92602060019160ff8560601c1615158152019301620006e9565b92602060019160ff8560581c1615158152019301620006e0565b92602060019160ff8560501c1615158152019301620006d7565b92602060019160ff8560481c1615158152019301620006ce565b92602060019160ff8560401c1615158152019301620006c5565b92602060019160ff8560381c1615158152019301620006bc565b92602060019160ff8560301c1615158152019301620006b3565b92602060019160ff8560281c1615158152019301620006aa565b92602060019160ff85831c1615158152019301620006a1565b92602060019160ff8560181c161515815201930162000698565b92602060019160ff8560101c16151581520193016200068f565b92602060019160ff8560081c161515815201930162000686565b92602060019160ff8516151581520193016200067d565b916020919350610400600191865460ff81161515825260ff8160081c1615158583015260ff8160101c161515604083015260ff816060828260181c161515818601528282891c1615156080860152828260281c16151560a0860152828260c092828260301c16151584890152828260381c16151560e0890152828260401c161515610100890152828260481c161515610120890152828260501c161515610140890152828260581c1615156101608901521c161515610180860152828260681c1615156101a0860152828260701c1615156101c0860152828260781c1615156101e0860152828260801c161515610200860152828260881c161515610220860152828260901c161515610240860152828260981c161515610260860152828260a01c161515610280860152828260a81c1615156102a0860152828260b01c1615156102c0860152828260b81c1615156102e08601521c16151561030083015260ff8160c81c16151561032083015260ff8160d01c16151561034083015260ff8160d81c16151561036083015260ff8160e01c16151561038083015260ff8160e81c1615156103a083015260ff8160f01c1615156103c083015260f81c15156103e082015201940192018492939162000662565b634e487b7160e01b6080515260216004526024608051fd5b6020366003190112620001e6576004356001600160401b038111620001e657620017e190369060040162004310565b80516001600160a01b0390620018349082166200182b6200180c620018063362016721565b6200594e565b620018246200181e8688511662016721565b620059b4565b9062005a0b565b90331462005a52565b6080519060208301915b82518051821015620018ab57906200189f620018a592846200186284339362005af1565b515116146200189862001879620018063362016721565b620018246200181e886200188f888c5162005af1565b51511662016721565b9062005a52565b62005a85565b6200183e565b620018cf620018ba8662006e8c565b6040519182916020835260208301906200400b565b0390f35b34620001e6576020366003190112620001e657600435612710811015620004c95760031b60018101546002820154916200194360056200192460068401549362000589604051809481930162005166565b604051948594855260208501526080604085015260808401906200400b565b9060608301520390f35b34620001e65760805180600319360112620001e357620138828054620019738162003edb565b9162001983604051938462003eb7565b8183526020830190608051526080516020812090915b83831062001b4e578462013883908154620019b48162003edb565b92620019c4604051948562003eb7565b8184526020840190608051526080516020812090915b83831062001a105762001a0185620018cf8860405193849360408552604085019062004f51565b90838203602085015262004f51565b60405162001a1e8162003e46565b62001a2e60ff845416826200534e565b6001830154602082015260028301805462001a498162003edb565b9162001a59604051938462003eb7565b818352602083019060805152608051906020822091905b83821062001ae8575050505060019282602092604060069501526003860154606082015260405162001aab81620005898160048b0162005166565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e0820152815201920192019190620019da565b6007602060019260405162001afd8162003e2a565b8654815262001b1960ff86890154818116620012168162004dc4565b62001b276002880162005272565b608082015262001b3a600388016200547e565b60a082015281520193019101909162001a70565b60405162001b5c8162003e46565b62001b6c60ff845416826200534e565b6001830154602082015260028301805462001b878162003edb565b9162001b97604051938462003eb7565b818352602083019060805152608051906020822091905b83821062001c26575050505060019282602092604060069501526003860154606082015260405162001be981620005898160048b0162005166565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e082015281520192019201919062001999565b6007602060019260405162001c3b8162003e2a565b8654815262001c5760ff86890154818116620012168162004dc4565b62001c656002880162005272565b608082015262001c78600388016200547e565b60a082015281520193019101909162001bae565b34620001e6576020366003190112620001e6576001600160a01b0362001cb162003dc7565b166080515262013885602052602060406080512054604051908152f35b34620001e657602080600319360112620001e6576004359062001d0f478311156200189862001cfd8562005e80565b62001d084762005e80565b9062005b39565b3360805152604062001d866201388580845262001d5c8360805120548611156200189862001d3d8862005e80565b336080515284885262001d5587608051205462005e80565b9062005ba5565b336080515280845262001d758584608051205462005e45565b92906200189862001d3d8862005e80565b33608051528352608051908282205520541562001dca575b5060805180808381949382941562001dc0575b3390f1156200034c5760805180f35b506108fc62001db1565b6201388680549162001ddc8362005c0d565b9160805193845b81811062001ed257505062001df88462005c0d565b805191906001600160401b03831162001eba57839062001e188462005d7e565b0190608051526080519280842090845b84811062001e9e5750505050505b82811062001e4657505062001d9e565b62001e98906200189f6001600160a01b0362001e63838662005af1565b511662001e708362005c62565b9080546001600160a01b0360039390931b83811b80199092169390941690931b909216179055565b62001e36565b83516001600160a01b0316838201559281019260010162001e28565b634e487b7160e01b6080515260416004526024608051fd5b62001edd8162005c62565b90546001600160a01b03916003913391831b1c83160362001f0c575b505062001f069062005a85565b62001de3565b9662001f3c91839862001f2362001f069562005c62565b9054911b1c1662001f35828962005af1565b5262005a85565b95908862001ef9565b34620001e65760805180600319360112620001e357506202712680546001600160a01b0319163317905562027129805460ff1916600190811790915560405190919062001f928162003e9b565b608051905262013882805482825580620022a1575b506080515260405162001fba8162003e9b565b6080519052608051806200228a5750620138839081548183558062002208575b5050608051526127106202712a5560405162001ff68162003e7f565b8181526080515b6020808210156200207057604051602092916200201a8262003e2a565b608051825260805181830152608051604083015260805160609081840152806080840152604051906200204d8262003df8565b80825280838301528060408301528082015260a083015282850101520162001ffd565b83620021f584604051620020848162003e9b565b6080518152604051620020978162003e9b565b6080518152604051620020aa8162003e9b565b6080518152604051620020bd8162003e9b565b608051815260405191620020d18362003e9b565b608051835260405193620020e58562003df8565b845260208401526040830152606082015260405191620021058362003e2a565b60805183526003602084015260805160408401526080516060840152608083015260a0820152620021368262005aab565b52620021428162005aab565b506200219d604051620021558162003e46565b6004815284602082015282604082015260805160608201526040516200217b8162003e9b565b608051815260808201528460a08201528460c08201528460e082015262006a18565b60405190620021ac8262003e46565b6002825283602083015260408201526080516060820152604051620021d18162003e9b565b608051815260808201528260a08201528260c082015260805160e082015262006a65565b6113886201388b556201388c5560805180f35b600691818302918383040362002276578060209160805284815220908101905b81811062002237575062001fda565b829060805180825586820155620022516002820162006265565b60805160038201556200226760048201620060f7565b60805160058201550162002228565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b90526041600452608051602490fd5b600690808202908282040362002310578360805282845260208420908101905b818110620022d157505062001fa7565b829060805180825587820155620022eb6002820162006265565b60805160038201556200230160048201620060f7565b608051600582015501620022c1565b634e487b7160e01b84526011600452602484fd5b34620001e65760805180600319360112620001e3576020604051338152f35b34620001e65760805180600319360112620001e35760206202712d54604051908152f35b34620001e6576040366003190112620001e6576004356001600160401b038111620001e6576200239c90369060040162004032565b6024356001600160401b038111620001e657620023be90369060040162004310565b620271298054600260ff8216620023d58162003f71565b146200330c5760ff191660021790556202712e546001810190811062002fd057806202712e5560805190815b84518110156200246457826002620024256200241e848962005af1565b5162014725565b5001541062002440575b6200243a9062005a85565b62002401565b91506200243a6002620024586200241e858862005af1565b5001549290506200242f565b50919060805191825b8551811015620024ca57620024876200241e828862005af1565b508460038092015410620024a8575b50620024a29062005a85565b6200246d565b819450620024bf6200241e620024a2938962005af1565b500154939062002496565b508493608051526202712b60205260805190604082209160018060a01b0382511660018060a01b03198454161783556020820151805191600160401b83116200228a5750600184015482600186015580831062003130575b50608080516001860190525160208082209392015b82821062002a9f575050505090600260406200255793015191016200648b565b62002563835162005c0d565b6202712e54608051526202712b60205260805190600560408320019080519260018060401b0384116200228a5750602090620025a0848462005e25565b01906080515260805160208120905b83811062002a8a5750505050620025c7835162005c0d565b6202712e54608051526202712b60205260805190600460408320019080519260018060401b0384116200228a575060209062002604848462005e25565b01906080515260805160208120905b83811062002a7557505050506200262b835162005c0d565b906202712e54608051526202712b602052608051600660408220019280519160018060401b0383116200228a575060209062002668838662005e25565b0192608051526080519260208420845b83811062002a60575050505062002690904262006ce3565b90916202712e5490526202712b602052600760406080512001551562002a20576202712e54608051526202712b60205260406008620026d9608051936007848620015462006ce3565b92909320015515620029dd576202712e54608051526202712b602052600960406080512001600260ff1982541617905562002715815162005c0d565b6202712e54608051526202712b602052608051600360408220019180519160018060401b0383116200228a575060209062002751838562005e25565b0191608051526080519160208320835b838110620029c85785855b8151811015620027d157806200189f6200278b620027cb938562005af1565b516202712e54608051526202712b602052620027b08360036040608051200162005d10565b90919082549060031b600019811b9283911b16911916179055565b6200276c565b50608051905b8051821015620029c2576202712e549182608051526202712b602052620028186200280b8260036040608051200162005d10565b90549060031b1c62014725565b505490620028268262005c0d565b916080515b81811062002974575050608051805b83518210156200293f5762002850828562005af1565b516127109081811015620004c95760031b6001015462002871848762005af1565b5191821015620004c95760066200288e9260031b01549062006b9b565b9015620028fb57620028a09162006ce3565b919015620028ba57620028b39062005a85565b906200283a565b60405162461bcd60e51b8152602060048201526019602482015278746f74616c566f74696e67506f776572206f766572666c6f7760381b6044820152606490fd5b606460405162461bcd60e51b815260206004820152602060248201527f63757272656e74436c617373566f74696e67506f776572206f766572666c6f776044820152fd5b90506200189f9192506200296d9394608051526202712b602052620027b08360066040608051200162005d10565b90620027d7565b620029bc9086608051526202712b602052620029a981620029a26200280b8760036040608051200162005d10565b5062005d10565b90549060031b1c62001f35828762005af1565b6200282b565b60805180f35b60019060208451940193818401550162002761565b60405162461bcd60e51b815260206004820152601b60248201527a657865637574696e6720656e642074696d65206f766572666c6f7760281b6044820152606490fd5b60405162461bcd60e51b8152602060048201526018602482015277766f74696e6720656e642074696d65206f766572666c6f7760401b6044820152606490fd5b60019060208451940193818401550162002678565b60019060208451940193818401550162002613565b600190602084519401938184015501620025af565b805180518554602083015190916001600160a01b03169060268110156200179a576001600160a81b03199092161760a09190911b60ff60a01b16178555604001518051805190600187019060209062002af9848462006188565b019060805152608051906020822091905b83821062003110575050505060208101518051906001600160401b03821162001eba576020600288019162002b40848462015919565b019060805152608051916020832090835b8160051c8110620030d55750601f198116810362003092575b5050506040820151805191600160401b83116200228a5750600387015482600389015580831062003009575b506080805160038901905251602080822092015b83821062002fe857505050506060810151805190600160401b821162001eba57600487015482600489015580831062002f4b575b506080805160048901905251602080822092015b83821062002f2a5750505050608081015180516001600160401b03811162001eba576020600588019262002c27838562015919565b0191608051526080519060208220915b8160051c811062002eea5750601f198116810362002e9c575b5050506006850160a0820151602081519162002c6d838562006216565b0191608051526080516020812090925b82841062002e3657505050506007850160c0820151602081519162002ca3838562006216565b0191608051526080516020812090925b82841062002dc7575050505060e001518051906001600160401b03821162001eba5762002cf38262002ce9600889015462005129565b6008890162006441565b60805190602091601f841160011462002d4c575092826009936020936001966080519262002d40575b5050600019600383901b1c191690851b1760088801555b0194019101909262002537565b015190508e8062002d1c565b600888019052608051602081209291905b601f198516811062002dae575083602093600196938793600997601f1981161062002d94575b505050811b01600888015562002d33565b015160001960f88460031b161c191690558e808062002d83565b9192602060018192868501518155019401920162002d5d565b80518051906001600160401b03821162001eba5760209062002dea838662005e25565b01836080515260805160208120905b83811062002e1857505050506001602081920192019301929062002cb3565b82516001600160a01b03168183015560209092019160010162002df9565b80518051906001600160401b03821162001eba5760209062002e59838662005e25565b01836080515260805160208120905b83811062002e8757505050506001602081920192019301929062002c7d565b60019060208451940193818401550162002e68565b60805192835b601f1983168303811062002ec057505060051c01558a808062002c50565b9093602062002ee06001928488519162002eda8362004dc4565b62015983565b9501910162002ea2565b608051805b6020811062002f0657508382015560010162002c37565b9490602062002f206001928885519162002eda8362004dc4565b9201950162002eef565b600660208262002f3e6001945187620065a1565b0193019101909162002bf2565b600681810204810362002fd057600683810204830362002fd05760048801608051526020608051208360060281015b826006028201811062002f8f57505062002bde565b600690608051808255600182015562002fab6002820162006265565b608051600382015562002fc160048201620060f7565b60805160058201550162002f7a565b634e487b7160e01b6080515260116004526024608051fd5b600760208262002ffc6001945187620157d7565b0193019101909162002baa565b600781810204810362002fd057600783810204830362002fd05760038801608051526020608051208360070281015b82600702820181106200304d57505062002b96565b806200305b60079262005da2565b60805180600183015580600283015580600383015560048201556200308360058201620060f7565b60805160068201550162003038565b8392845b601f19831683038110620030b457505060051c01558b808062002b6a565b90936020620030cb60019284885115159162015983565b9501910162003096565b84855b60208110620030ef57508382015560010162002b51565b949060206200310660019288855115159162015983565b92019501620030d8565b600160208262003123839451876200648b565b0193019101909162002b0a565b600981810204810362002fd057600983810204830362002fd05760018501608051526020608051208360090281015b82600902820181106200317457505062002522565b6080518155620031876001820162006149565b6200319d600282018054906080518155620158f1565b6003810154608051806003840155816200329a575b505060048101546080518060048401558162003215575b505080620031e46005600993018054906080518155620158f1565b620031f260068201620061d7565b6200320060078201620061d7565b6200320e60088201620060f7565b016200315f565b60068281020482036200328357506004820160805152602060805120906006028101905b81811015620031c95760069060805180825560018201556200325e6002820162006265565b60805160038201556200327460048201620060f7565b60805160058201550162003239565b634e487b7160e01b90526011600452608051602490fd5b60078281020482036200328357506003820160805152602060805120906007028101905b81811015620031b25780620032d560079262005da2565b6080518060018301558060028301558060038301556004820155620032fd60058201620060f7565b608051600682015501620032be565b60405162461bcd60e51b815260206004820152601d60248201527f766f74696e6720697320616c726561647920696e2070726f67726573730000006044820152606490fd5b34620001e6576020366003190112620001e657600435612710811015620004c957620033876004620018cf9260031b01620053c5565b6040519182918262003f92565b34620001e65760805180600319360112620001e3576040518062013881918254808252602080920193608051526080519180832092905b828210620033e657620018cf85620033878189038262003eb7565b83546001600160a01b031686529485019460019384019390910190620033cb565b34620001e657602080600319360112620001e6576200342562003dc7565b604051620034338162003df8565b60805181526080518382015260606040820152606060805191015260018060a01b03166080515262013880815260406080512060405190620034758262003df8565b620034f081549160ff83161515845260ff8585019360081c1615158352600260405191620034b483620034ac816001850162005166565b038462003eb7565b6040860192835201549260608501938452604051958695818752511515908601525115156040850152516080606085015260a08401906200400b565b905160808301520390f35b34620001e65760805180600319360112620001e35760206202712e54604051908152f35b34620001e6576020366003190112620001e657600435612710811015620004c957620035666200355e826200044f600260209560031b01549162006c21565b919062006ad1565b604051908152f35b34620001e65760805180600319360112620001e3576201388b54620035cd620035966201620c565b91620035a86127109384831062005a52565b620035c26201388e546201388c541115620018986201627a565b6201388d5462006b9b565b919050620035da620162d0565b5060805191825b82811062003604575b6020620035fa8585850462006d71565b9050604051908152f35b909260ff60078360031b015416156200364e5781620036386200364492620036316200189f969562006b3e565b9062006ce3565b949062001898620162d0565b92909192620035e1565b9290620035ea565b34620001e6576020366003190112620001e65760206200367860043562015aeb565b62003687604051809262003fd8565bf35b34620001e657602080600319360112620001e657600435620036b7478211156200189862001cfd8462005e80565b33608051526201388790818352620037016040608051205482111562001898620036e18462005e80565b3360805152858752620036fa6040608051205462005e80565b9062005ffa565b3360805152818352620037496200371f826040608051205462005e45565b919062001898620037308562005e80565b3360805152868852620036fa6040608051205462005e80565b336080515282845260805180809381936040832055818115620038bf575b3390f1156200034c573360805152815260406080512054156200378a5760805180f35b62013888908154906200379d8262005c0d565b9260805192835b81811062003853575050620037b98362005c0d565b805191906001600160401b03831162001eba578390620037d98462005d42565b0190608051526080519280842090845b848110620038375750505050505b81811062003807575050620029c2565b62003831906200189f6001600160a01b0362003824838762005af1565b511662001e708362005c45565b620037f7565b83516001600160a01b03168382015592810192600101620037e9565b6200385e8162005c45565b90546001600160a01b03916003913391831b1c8316036200388d575b5050620038879062005a85565b620037a4565b95620038b6918397620038a4620038879562005c45565b9054911b1c1662001f35828a62005af1565b9490876200387a565b506108fc62003767565b34620001e65760805180600319360112620001e3576040518062013886918254808252602080920193608051526080519180832092905b8282106200391b57620018cf85620033878189038262003eb7565b83546001600160a01b03168652948501946001938401939091019062003900565b34620001e6576040366003190112620001e6576024356001600160a01b0381169060043590829003620001e657612710811015620004c95760039160805152811b01602052602060406080512054604051908152f35b34620001e65760805180600319360112620001e3576040518062013888918254808252602080920193608051526080519180832092905b828210620039e457620018cf85620033878189038262003eb7565b83546001600160a01b031686529485019460019384019390910190620039c9565b34620001e65760805180600319360112620001e357602060ff6202712954166040519062003a338162003f71565b8152f35b34620001e6576040366003190112620001e65762003a5462003dc7565b60249081356001600160401b038111620001e65762003a7890369060040162003f01565b91600260ff62027129541662003a8e8162003f71565b0362003d65576202712d5442101562003d275760018060a01b0382169182608051526202712c906020938285526080519560408720966202712e978854809252875260ff604060805120541662003ce95781519481608051526202712b938489526003968760406080512001540362003c8357608051528752608051906040822091528652608051966040882060019889918260ff19825416179055905b62003b375760805180f35b825181101562003c7d5762003b4d818462005af1565b511562003c04578154806080515284895262003ba962003b8c62003b7a8460046040608051200162005d10565b9054908a1b1c62003631858a62015997565b909260805152868b52620027b08460046040608051200162005d10565b1562003bc15762003bba9062005a85565b8862003b2c565b60405162461bcd60e51b815260048101899052601c818901527b766f74696e6720666f7220706f776572596573206f766572666c6f7760201b6044820152606490fd5b8154806080515284895262003c2a62003b8c62003b7a8460046040608051200162005d10565b1562003c3b5762003bba9062005a85565b60405162461bcd60e51b815260048101899052601b818901527a766f74696e6720666f7220706f7765724e6f206f766572666c6f7760281b6044820152606490fd5b620029c2565b60405162461bcd60e51b8152600481018a90526039818a01527f746865206e756d626572206f6620766f74657320646f6573206e6f74206d6174604482015278636820746865206e756d626572206f6620706f6c696369657360381b6064820152608490fd5b60405162461bcd60e51b815260048101889052601781880152761d9bdd195c881a185cc8185b1c9958591e481d9bdd1959604a1b6044820152606490fd5b60649060176040519162461bcd60e51b835260206004840152820152761d9bdd1a5b99c81c195c9a5bd9081a185cc8195b991959604a1b6044820152fd5b60649060196040519162461bcd60e51b83526020600484015282015278766f74696e67206973206e6f7420696e2070726f677265737360381b6044820152fd5b3462003dc3578160031936011262003dc35760209062027127548152f35b5080fd5b600435906001600160a01b038216820362003dde57565b600080fd5b35906001600160a01b038216820362003dde57565b608081019081106001600160401b0382111762003e1457604052565b634e487b7160e01b600052604160045260246000fd5b60c081019081106001600160401b0382111762003e1457604052565b61010081019081106001600160401b0382111762003e1457604052565b606081019081106001600160401b0382111762003e1457604052565b604081019081106001600160401b0382111762003e1457604052565b602081019081106001600160401b0382111762003e1457604052565b601f909101601f19168101906001600160401b0382119082101762003e1457604052565b6001600160401b03811162003e145760051b60200190565b3590811515820362003dde57565b81601f8201121562003dde5780359162003f1b8362003edb565b9262003f2b604051948562003eb7565b808452602092838086019260051b82010192831162003dde578301905b82821062003f57575050505090565b83809162003f658462003ef3565b81520191019062003f48565b6004111562003f7c57565b634e487b7160e01b600052602160045260246000fd5b6020908160408183019282815285518094520193019160005b82811062003fba575050505090565b83516001600160a01b03168552938101939281019260010162003fab565b90600382101562003f7c5752565b60005b83811062003ffa5750506000910152565b818101518382015260200162003fe9565b90602091620040268151809281855285808601910162003fe6565b601f01601f1916010190565b81601f8201121562003dde578035916200404c8362003edb565b926200405c604051948562003eb7565b808452602092838086019260051b82010192831162003dde578301905b82821062004088575050505090565b8135815290830190830162004079565b6001600160401b03811162003e1457601f01601f191660200190565b81601f8201121562003dde57803590620040ce8262004098565b92620040de604051948562003eb7565b8284526020838301011162003dde57816000926020809301838601378301015290565b9080601f8301121562003dde578135906200411c8262003edb565b926200412c604051948562003eb7565b828452602092838086019160051b8301019280841162003dde57848301915b8483106200415c5750505050505090565b82356001600160401b03811162003dde5786916200418084848094890101620040b4565b8152019201916200414b565b9080601f8301121562003dde57813590620041a78262003edb565b92620041b7604051948562003eb7565b828452602092838086019160051b8301019280841162003dde57848301915b848310620041e75750505050505090565b82356001600160401b03811162003dde5786916200420b8484809489010162004032565b815201920191620041d6565b9080601f8301121562003dde57813591620042328362003edb565b92604092620042448451958662003eb7565b8185526020938486019185600594851b8601019481861162003dde57868101935b8685106200427857505050505050505090565b84356001600160401b03811162003dde57820183603f8201121562003dde578881013590620042a78262003edb565b91620042b68751938462003eb7565b808352868b8401918a1b8301019186831162003dde5791878c94929593015b818110620042ee57505082935081520194019362004265565b919380919395620042ff8462003de3565b8152019101918b93919492620042d5565b6060918161086052806108e052031262003dde57604051620043328162003e63565b8091620043426108605162003de3565b82526108605160208101356109208190526001600160401b03811162003dde576108e051910190601f8201121562003dde5762004389620043979135806109605262003edb565b604051806108a05262003eb7565b6108a05161096051905260206108a05101926108e051610960519060206109205161086051019260051b8301011162003dde576020016108c05290925b6109605160051b6109205161086051019060206108c0519183010181101562004d8457356001600160401b03811162003dde57606091018061088052601f19906108e05103011262003dde576040516200442e8162003e63565b6200443f6020610880510162003de3565b81526040610880510135602681101562003dde5760208201526108805160608101356109408190526001600160401b031062003dde5761010090601f19906060810135016108e05103011262003dde57620044a1604051806109805262003e46565b6109405161088051016020810135906001600160401b03821162003dde576020620044d3926108e05192010162004101565b61098051526109405161088051016040810135906001600160401b03821162003dde5760206200450a926108e05192010162003f01565b6109805160200152610940516108805101926001600160401b0360608501351162003dde576108e051603f6060860135860101121562003dde5762004559602060608601358601013562003edb565b9462004569604051968762003eb7565b60608501358086016020908101358089526108e0516109405161088051938b01969493019092019160059190911b82016040011162003dde57604001925b61094051610880510160608801359081019088016020013560051b8101604001851015620046d6578435906001600160401b03821162003dde57016108e0519160e09283603f19848303011262003dde57604051908482016001600160401b03811183821017620046c1576040908152840135906001600160401b03821162003dde5760406200463a9286010162004032565b815260608301356020820152608080840135604083015260a09485850135606084015260c0916200466d83870162003ef3565b90840152840135946001600160401b03861162003dde5761010060209695620046b192620046a6899860406108e05191850101620040b4565b908601520162003ef3565b90820152815201930192620045a7565b60246000634e487b7160e01b81526041600452fd5b505095915091935094919460406109805101526109405161088051019460808601356109005260018060401b0360808701351162003dde576108e0519560808101350195603f8701121562003dde5762004734602087013562003edb565b9462004744604051968762003eb7565b6020878101358088526108e051610900516109405161088051948b01989401019160051b82016040011162003dde576040909893929897949701935b61090051610940516108805101016040602086013560051b82010186101562004bc45785356108408190526001600160401b031062003dde5761010090603f19908735016108e05103011262003dde5760405193620047df8562003e46565b6040610840516109005161094051610880510101010135600681101562003dde57855260606108405161090051610940516108805101010101356020860152610840516109005161094051610880510101019960018060401b0360808c01351162003dde576108e051605f60808d01358d0101121562003dde578a9062004870604060808401358401013562003edb565b9a620048806040519c8d62003eb7565b608083013592830160400135808d526108e051610840516109005161094051610880510101019094019360208e01939160051b85016060011162003dde579192606001915b6108405161090051610940516108805101010160808f0135908101908f016040013560051b810160600184101562004acb578335906001600160401b03821162003dde5760c0605f198383016108e05103011262003dde57604051916001600160401b0360c0840190811190841117620046c15760c083016040528181016060810135845260800135600581101562003dde57602084015260a08183010135600481101562003dde576040840152603d60c08284010135101562003dde5781810160c081013560608501526001600160401b0360e0909101351162003dde576108e051620049bf9083830160e08101350160600162004032565b60808401528181016101000135916001600160401b03831162003dde5701016080605f19826108e05103011262003dde578f956040519262004a018462003df8565b60608301356001600160401b03811162003dde576108e05162004a2991850160600162004101565b845260808301356001600160401b03811162003dde576108e05162004a539185016060016200418c565b602085015260a08301356001600160401b03811162003dde576108e05162004a8091850160600162004217565b604085015260c0830135936001600160401b03851162003dde5762004ab360209594606087966108e051920101620040b4565b606082015260a08201528152019301929350620048c5565b509697939c509798939a915050604082015260a091826108405161090051610940516108805101010101356060830152610840516109005161094051610880510101019160c093848401359460018060401b03861162003dde5762004b3e60209695604088976108e051920101620040b4565b608084015260e09162004b6583610840516109005161094051610880510101010162003ef3565b9084015262004b8a610100610840516109005161094051610880510101010162003ef3565b9083015262004baf610120610840516109005161094051610880510101010162003ef3565b90820152815201950193969792919762004780565b50610980516060015261094051610880519198910196919450925090506001600160401b0360a08601351162003dde576108e0519460a0810135810195603f8701121562003dde5762004c1b602087013562003edb565b9262004c2b604051948562003eb7565b6020878101358086526108e051610940516108805193880196930160a0860135019160051b82016040011162003dde57604001935b604060208a013560051b60a086013561094051610880510101010185101562004c9e578435600581101562003dde5781526020948501940162004c60565b5096509694939291505060806109805101526109405161088051019160c092838101359060018060401b03821162003dde57602062004ce4926108e0519201016200418c565b6109805160a00152610940516108805160e094910184810135906001600160401b03821162003dde57602062004d21926108e05192010162004217565b6109805190910152610940516108805101926101008401356001600160401b03811162003dde576108e05160209562004d5d92018601620040b4565b906109805101526109805160408201528152019260206108c051016108c0529092620043d4565b50506108a051602084015250610860519092919060408101356001600160401b03811162003dde576108e05160409262004dbf9201620040b4565b910152565b6005111562003f7c57565b90815180825260208080930193019160005b82811062004df0575050505090565b83518552938101939281019260010162004de1565b908082519081815260208091019281808460051b8301019501936000915b84831062004e345750505050505090565b909192939495848062004e54600193601f198682030187528a516200400b565b980193019301919493929062004e23565b90815180825260208092019182818360051b82019501936000915b84831062004e915750505050505090565b909192939495848062004ead83856001950387528a5162004dcf565b980193019301919493929062004e80565b90815180825260208092019182818360051b8201950193600080925b85841062004eec575050505050505090565b9091929387828297989903855288519082808351928381520192019085905b80821062004f2d57505050908060019299019401940192959493919062004eda565b82516001600160a01b03168452899493840193909201916001919091019062004f0b565b90815180825260208092019081926005928183851b82019601946000915b84831062004f81575050505050505090565b9091929394959681810383528751906101008082018351600681101562003f7c579083929189945283850151848401528a60409182870151938386015283518091528561012082818801941b8701019401926000905b828210620050425750505050509282916200500c6001956060808501519084015260808085015190848303908501526200400b565b9160a08082015115159083015260c08082015115159083015260e080910151151591015299019301930191959493929062004f6f565b9193959650919361011f19878203018552855190815181528c820151620050698162004dc4565b8d820152828201516200507c8162003f71565b8382015260609081830151603d81101562003f7c576001938f9383620051179382879601528162005107620050f6620050e56080620050c88189015160c080848a015288019062004dcf565b9560a0809901519881880391015287519080875286019062004e05565b888701518582038a87015262004e65565b8a8601518482038c86015262004ebe565b930151918184039101526200400b565b9701950192018b969594939162004fd7565b90600182811c921680156200515b575b60208310146200514557565b634e487b7160e01b600052602260045260246000fd5b91607f169162005139565b9060009291805491620051798362005129565b918282526001938481169081600014620051e057506001146200519d575b50505050565b90919394506000526020928360002092846000945b838610620051cb57505050500101903880808062005197565b805485870183015294019385908201620051b2565b9294505050602093945060ff191683830152151560051b0101903880808062005197565b908154620052128162003edb565b92604093620052248551918262003eb7565b828152809460208092019260005281600020906000935b8585106200524b57505050505050565b60018481928451620052638162000589818a62005166565b8152019301940193916200523b565b9060405191828154918282526020928383019160005283600020936000905b828210620052ac57505050620052aa9250038362003eb7565b565b85548452600195860195889550938101939091019062005291565b60405190919060e081016001600160401b0381118282101762003e145760405260c060ff60068395620052fa8162005272565b855260018101546020860152600281015460408601526003810154606086015282600482015416151560808601526040516200533f8162000589816005860162005166565b60a08601520154161515910152565b600682101562003f7c5752565b603d82101562003f7c5752565b908154620053768162003edb565b9262005386604051948562003eb7565b818452600090815260208082208186015b848410620053a6575050505050565b6001838192620053b68562005272565b81520192019301929062005397565b9060405191828154918282526020928383019160005283600020936000905b828210620053fd57505050620052aa9250038362003eb7565b85546001600160a01b031684526001958601958895509381019390910190620053e4565b9081546200542f8162003edb565b926200543f604051948562003eb7565b818452600090815260208082208186015b8484106200545f575050505050565b60018381926200546f85620053c5565b81520192019301929062005450565b9060036060604051620054918162003df8565b620054dc8195620054a28162005204565b8352620054b26001820162005368565b6020840152620054c56002820162005421565b6040840152620034ac604051809681930162005166565b0152565b9190606081019060018060a01b03845116815260208401519160606020830152825180915260808201602060808360051b85010194019160005b81811062005542575050505060406200553f939401519060408184039101526200400b565b90565b848603607f19018352835180516001600160a01b031687526020810151949693949293919290602682101562003f7c576040916020840152015190606060408201526200559e8251610100606084015261016083019062004e05565b602083810151838303605f190160808501528051808452928201929101906000905b8082106200593357505050604083015190605f198382030160a0840152815180825260208201906020808260051b85010194019260005b828110620058ae575050505050606083015190605f198382030160c0840152815190818152602081016020808460051b8401019401926000925b818410620056fa575050505050608083015190605f198382030160e0840152602080835192838152019201906000905b808210620056d657505050620056c98360209360e0620056b26200569a879660a060019a0151605f198683030161010087015262004e65565b60c0850151848203605f190161012086015262004ebe565b92015190610140605f19828503019101526200400b565b970194019291016200551a565b9091926020806001928651620056ec8162004dc4565b815201940192019062005661565b9091929394601f9e9d9c9e198282030184528551908151600681101562003f7c5781526020820151602082015260408201516101006040830152610100820181518091526101206020818501918360051b8601019301916000905b808210620057c257505050509e9f9d9e826020926200578e8493606060019701516060840152608084015183820360808501526200400b565b9160a0810151151560a083015260c0810151151560c083015260e08091015115159101529701940194019293919062005631565b9091929361011f19868203018452845190815181526020820151620057e78162004dc4565b60208201526040820151620057fc8162003f71565b6040820152606082015191603d83101562003f7c57620058a1826020939260019560608695015260a062005840608083015160c0608086015260c085019062004dcf565b9101519160a081830391015260606200588f6200587c6200586b855160808652608086019062004e05565b878601518582038987015262004e65565b6040850151848203604086015262004ebe565b9201519060608184039101526200400b565b9601940192019062005755565b9091929394602080600192601f1986820301885288519062005918620058dd835160e080855284019062004dcf565b8484015185840152604084015160408401526060840151606084015260808401511515608084015260a084015183820360a08501526200400b565b60c092830151151591909201529701950193929101620055f7565b909192602080600192865115158152019401920190620055c0565b90620052aa604560405180947f496e76616c69642070726f6772616d20616464726573732e204d73672e73656e60208301526403232b91d160dd1b6040830152620059a3815180926020868601910162003fe6565b810103602581018552018362003eb7565b90620052aa6040805180947f2c20616e642070726f6772616d206f70657261746f7220616464726573733a206020830152620059fa815180926020868601910162003fe6565b810103602081018552018362003eb7565b6020620052aa91939293604051948162005a2f879351809286808701910162003fe6565b820162005a458251809386808501910162003fe6565b0103808552018362003eb7565b1562005a5b5750565b60405162461bcd60e51b81526020600482015290819062005a819060248301906200400b565b0390fd5b600019811462005a955760010190565b634e487b7160e01b600052601160045260246000fd5b80511562005ab95760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101562005ab95760400190565b80516002101562005ab95760600190565b805182101562005ab95760209160051b010190565b7f496e76616c696420776974686472617720616d6f756e742e20416d6f756e743a8152600160fd1b602082015260210190565b600f620052aa916020949360405195869262005b6962005b5b83860162005b06565b918281519485920162003fe6565b016e0161030b732103130b630b731b29d1608d1b815262005b94825180936020878501910162003fe6565b010360101981018552018362003eb7565b6019620052aa916020949360405195869262005bc762005b5b83860162005b06565b01780161030b732103bb4ba34323930bbb0b136329031b0b9b41d1603d1b815262005bfc825180936020878501910162003fe6565b010360061981018552018362003eb7565b9062005c198262003edb565b62005c28604051918262003eb7565b828152809262005c3b601f199162003edb565b0190602036910137565b62013888805482101562005ab95760005260206000200190600090565b62013886805482101562005ab95760005260206000200190600090565b62013881805482101562005ab95760005260206000200190600090565b6202711d805482101562005ab95760005260206000200190600090565b6201388a805482101562005ab95760005260206000200190600090565b62027119805482101562005ab95760005260206000200190600090565b6202711b805482101562005ab95760005260206000200190600090565b805482101562005ab95760005260206000200190600090565b81811062005d35575050565b6000815560010162005d29565b600160401b811162003e1457620138889081549080835581811062005d6657505050565b620052aa926000526020600020918201910162005d29565b600160401b811162003e1457620138869081549080835581811062005d6657505050565b8054600082558062005db2575050565b620052aa9160005260206000209081019062005d29565b600160401b811162003e1457620271199081549080835581811062005d6657505050565b600160401b811162003e14576202711b9081549080835581811062005d6657505050565b620138918054600082558062005db2575050565b90600160401b811162003e145781549080835581811062005d6657505050565b919082811162005e56576001920390565b50600091508190565b811562005e6a570490565b634e487b7160e01b600052601260045260246000fd5b6000908072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8082101562005feb575b506904ee2d6d415b85acef8160201b8083101562005fdb575b50662386f26fc100008083101562005fcb575b506305f5e1008083101562005fbb575b506127108083101562005fab575b50606482101562005f9a575b600a8092101562005f8f575b6001908160218186019562005f1c8762004098565b9662005f2c604051988962003eb7565b80885262005f3d601f199162004098565b01366020890137860101905b62005f56575b5050505090565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a83530491821562005f895791908262005f49565b62005f4f565b916001019162005f07565b919060646002910491019162005efb565b6004919392049101913862005eef565b6008919392049101913862005ee1565b6010919392049101913862005ed1565b6020919392049101913862005ebe565b60409350810491503862005ea5565b601e620052aa91602094936040519586926200601c62005b5b83860162005b06565b017f2c20616e6420776974686472617761626c65206469766964656e64733a200000815262006055825180936020878501910162003fe6565b010360011981018552018362003eb7565b90620060728262003edb565b604090620060838251918262003eb7565b838152809362006096601f199162003edb565b019160005b838110620060a95750505050565b6020908251620060b98162003e46565b6000815282600081830152606080868401526000818401526080830152600060a0830152600060c0830152600060e08301528286010152016200609b565b62006103815462005129565b90816200610e575050565b81601f6000931160011462006121575055565b818352602083206200613f91601f0160051c81019060010162005d29565b8160208120915555565b80549060008155816200615a575050565b6000526020600020908101905b81811062006173575050565b8062006181600192620060f7565b0162006167565b90600160401b811162003e1457815491818155828210620061a857505050565b600052602060002091820191015b818110620061c2575050565b80620061d0600192620060f7565b01620061b6565b8054906000815581620061e8575050565b6000526020600020908101905b81811062006201575050565b806200620f60019262005da2565b01620061f5565b90600160401b811162003e14578154918181558282106200623657505050565b600052602060002091820191015b81811062006250575050565b806200625e60019262005da2565b0162006244565b80546000808355816200627757505050565b6007928284029284840403620062f857815260208120918201915b828110620062a05750505050565b8082859255826001820155620062b96002820162005da2565b620062c76003820162006149565b620062d560048201620061d7565b620062e360058201620061d7565b620062f160068201620060f7565b0162006292565b634e487b7160e01b82526011600452602482fd5b600160401b821162003e14578054908281558183106200632b57505050565b600792828402928484040362005a9557808402908482040362005a955760009182526020822092830192015b828110620063655750505050565b80828592558260018201556200637e6002820162005da2565b6200638c6003820162006149565b6200639a60048201620061d7565b620063a860058201620061d7565b620063b660068201620060f7565b0162006357565b51600681101562003f7c5790565b90600681101562003f7c5760ff80198354169116179055565b90620063f08162004dc4565b60ff80198354169116179055565b906200640a8162003f71565b61ff0082549160081b169061ff001916179055565b90603d81101562003f7c5762ff000082549160101b169062ff00001916179055565b9190601f81116200645157505050565b620052aa926000526020600020906020601f840160051c8301931062006480575b601f0160051c019062005d29565b909150819062006472565b81519192916001600160401b03811162003e1457620064b781620064b0845462005129565b8462006441565b602080601f8311600114620064f6575081929394600092620064ea575b50508160011b916000199060031b1c1916179055565b015190503880620064d4565b90601f198316958460005282600020926000905b88821062006545575050836001959697106200652b575b505050811b019055565b015160001960f88460031b161c1916905538808062006521565b806001859682949686015181550195019301906200650a565b9060ff801983541691151516179055565b9061ff00825491151560081b169061ff001916179055565b9062ff0000825491151560101b169062ff00001916179055565b8151600681101562003f7c57620065b99082620063cb565b602082015160018201556002810160408301516020815191620065dd83856200630c565b01916000526020600020916000905b8282106200665057505050509060e06005620052aa93606084015160038201556200661f6080850151600483016200648b565b01916200663360a08201511515846200655e565b6200664560c08201511515846200656f565b015115159062006587565b805180518555600185016200667560208301516200666e8162004dc4565b82620063e4565b620066906040830151620066898162003f71565b82620063fe565b6060820151603d81101562003f7c57620066aa916200641f565b60808101518051906001600160401b03821162003e145760206002880191620066d4848462005e25565b0190600052602060002060005b8381106200697f575050505060a0015180518051906020600388019162006709848462006188565b01906000526020600020906000905b8382106200695f575050505060048501602082015160208151916200673e838562006216565b019160005260206000206000925b828410620068fb5750505050600585016040820151602081519162006772838562006216565b019160005260206000206000925b8284106200688e5750505050606001518051906001600160401b03821162003e1457620067c082620067b6600689015462005129565b6006890162006441565b602090601f83116001146200681357928260079360209360019660009262006807575b5050600019600383901b1c191690851b1760068801555b01940191019092620065ec565b015190503880620067e3565b906006870160005260206000209160005b601f198516811062006875575083602093600196938793600797601f198116106200685b575b505050811b016006880155620067fa565b015160001960f88460031b161c191690553880806200684a565b9192602060018192868501518155019401920162006824565b80518051906001600160401b03821162003e1457602090620068b1838662005e25565b0183600052602060002060005b838110620068dd57505050506001602081920192019301929062006780565b82516001600160a01b031681830155602090920191600101620068be565b80518051906001600160401b03821162003e14576020906200691e838662005e25565b0183600052602060002060005b8381106200694a5750505050600160208192019201930192906200674c565b6001906020845194019381840155016200692b565b600160208262006972839451876200648b565b0193019101909162006718565b600190602084519401938184015501620066e1565b62013883805482101562005ab9576000526006602060002091020190600090565b62027116805482101562005ab9576000526006602060002091020190600090565b62013882805482101562005ab9576000526006602060002091020190600090565b62027115805482101562005ab9576000526006602060002091020190600090565b620138828054600160401b81101562003e145762006a3c91600182019055620069d6565b91909162006a4f57620052aa91620065a1565b634e487b7160e01b600052600060045260246000fd5b620138838054600160401b81101562003e145762006a3c9160018201905562006994565b620271168054600160401b81101562003e145762006a3c91600182019055620069b5565b620271158054600160401b81101562003e145762006a3c91600182019055620069f7565b1562006ad957565b60405162461bcd60e51b815260206004820152603760248201527f73756d4469766964656e64576569676874466f72546f6b656e436c6173733a206044820152766469766964656e64576569676874206f766572666c6f7760481b6064820152608490fd5b61271081101562005ab9576200355e816200044f60026200553f9460031b01549162006c21565b90811562006b9257606462006b7e818402938462005e5f565b0362006b8a5760019190565b600091508190565b60019150600090565b9190821562006bb35762006b7e818402938462005e5f565b5060019150600090565b1562006bc557565b60405162461bcd60e51b815260206004820152602e60248201527f746f74616c546f6b656e73506572546f6b656e436c6173733a20746f74616c5460448201526d6f6b656e73206f766572666c6f7760901b6064820152608490fd5b612710811015908162005ab957600390811b906004928383019182549260009582879601935b85871062006c59575050505050505090565b97969091929394959762006cbb5762006caf8862006ca762006c816200189f9a9b8762005d10565b905490881b1c6001600160a01b0316600090815260208990526040812054909462006ce3565b999062006bbd565b95949392919062006c47565b603282634e487b7160e01b6000525260246000fd5b906001820191821062006b8a5760019190565b9190820191821062006b8a5760019190565b6201388b5462006d08620035966201620c565b91905062006d15620162d0565b5060009081925b81841062006d37575b62006d3293500462006d71565b905090565b9160ff60078560031b0154161562006d6a57836200363862006d6392620036316200189f969762006b3e565b9262006d1c565b9162006d25565b90801562006d895762006d849162005e5f565b600191565b5050600090600090565b62013891805490600160401b82101562003e14576001820180825582101562005ab9576000908152602090200180546001600160a01b0319166001600160a01b03909216919091179055565b6201388f805490600160401b82101562003e14576001820180825582101562005ab9576000908152602090200180546001600160a01b0319166001600160a01b03909216919091179055565b6201388180549190600160401b83101562003e14578262001e70916001620052aa9501905562005c7f565b6040519062006e658262003e7f565b60188252772a343290383937b3b930b69034b99032bc32b1baba32b21760411b6020830152565b600091825b6020808401908151805187101562007022578162006eb48862006ebc9362005af1565b5101620075f9565b6026928382101562003f7c57601a91820362006f7a578762006edf915162005af1565b5192828401519081101562003f7c570362006f3857509362006f2962006f319262006f2162006f1a60a060406200189f9a0151015162005aab565b5162005aab565b519062006ce3565b959062007607565b9262006e91565b6064906040519062461bcd60e51b82526004820152601b60248201527a2a34329037b831b7b2329034b9903737ba102820acafa1a0a9a41760291b6044820152fd5b9291905062006f938162006eb489869a979a5162005af1565b8281101562003f7c5760140362006fcc5750509062006f296200189f956200363162006fc58462006f31965162005af1565b5162007654565b62006fde9062006eb485855162005af1565b9081101562003f7c5760151462006ffc575b5062006f319062005a85565b9062006f296200701b956200363162006fc58462006f31965162005af1565b9062006ff0565b505050909250803410600014620070985760405162461bcd60e51b815260206004820152603760248201527f546865207061796d656e74206973206e6f7420656e6f7567682e205468652074604482015276037ba30b6103830bcb6b2b73a1039b437bab6321031329604d1b6064820152608490fd5b8034116200746e575b5062027129805460ff8116620070b78162003f71565b60018103620070ed5750505080620070dd620070d7620070e393620076fb565b62007710565b6200779a565b6200553f62006e56565b620070f88162003f71565b60028114808062007460575b15620071e957505050506200711981620076fb565b15620071aa576200712a81620076fb565b156200716e576200713b906200779a565b604051620071498162003e7f565b60158152742a3432903b37ba329034b99032bc32b1baba32b21760591b602082015290565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c696420766f74652070726f6772616d60601b6044820152606490fd5b60405162461bcd60e51b815260206004820152601760248201527624b73b30b634b2103b37ba34b73390383937b3b930b69760491b6044820152606490fd5b620071f48262003f71565b6003821491828062007452575b15620072df5750505050506200721781620076fb565b156200728f5780620070dd620070d76200723193620076fb565b6040516200723f8162003e63565b603a81527f5468652070656e64696e672070726f6772616d2069732065786563757465642060208201527930b33a32b9103b37ba34b7339030b7321030b8383937bb30b61760311b604082015290565b60405162461bcd60e51b815260206004820152602260248201527f496e76616c696420657865637574696e672070656e64696e672070726f677261604482015261369760f11b6064820152608490fd5b620072ea8162003f71565b818062007443575b8062007435575b1562007323575050505090620070e391600360ff19825416179055620070dd620070d782620076fb565b6200732e8162003f71565b821562007420575b50508062007411575b6200737857505050604051620073558162003e7f565b6013815272283937b3b930b6903a32b936b4b730ba32b21760691b602082015290565b60ff191660011790556200738c81620076fb565b15620073a65780620070dd620070d7620070e393620076fb565b60405162461bcd60e51b815260206004820152603e60248201527f5b4572726f72203030335d5468652070726f6772616d206973206e6f7420612060448201527f76616c696420657865637574652070656e64696e672070726f6772616d2e00006064820152608490fd5b5062027128544210156200733f565b6200742d91925062003f71565b388062007336565b5062027128544210620072f9565b506202712754421015620072f2565b506202712854421062007201565b506202712754421062007104565b60018060a01b0390818351166000526201388590816020526040600020541562007565575b6200749f903462005e45565b90156200752157620074c290838551166000528260205260406000205462006ce3565b929015620074e05783511660005260205260406000205538620070a1565b60405162461bcd60e51b81526020600482015260196024820152782a3432903732bb903130b630b731b29037bb32b9333637bb9760391b6044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527b2a3432903830bcb6b2b73a103932ba3ab9371037bb32b9333637bb9760211b6044820152606490fd5b6000908162013886928354915b828110620075be575b50156200758c575b50905062007493565b85518516600160401b82101562003e145762001e70826200749f956001620075b79501905562005c62565b3862007583565b86620075ca8262005c62565b919054818b51169260031b1c1614620075ee57620075e89062005a85565b62007572565b50506001386200757b565b51602681101562003f7c5790565b156200760f57565b60405162461bcd60e51b815260206004820152601f60248201527f54686520746f74616c207061796d656e7420697320746f6f206c617267652e006044820152606490fd5b6000805b604083019060a06200766e818451015162005acf565b5151841015620076f35762007693846200768c838651015162005acf565b5162005af1565b51925101519283516002101562005ab957620076e2620076dc620076ea93620076d4604096620076cc8660606200189f9b015162005af1565b519062006b9b565b929062007607565b62006ce3565b949062007607565b91905062007658565b509250505090565b6020015151156200770b57600190565b600090565b156200771857565b60405162461bcd60e51b815260206004820152600f60248201526e496e76616c69642070726f6772616d60881b6044820152606490fd5b60809060208152602a60208201527f5468652070726f6772616d2069732064656e6965642062792074686520706c7560408201526967696e2073797374656d60b01b60608201520190565b620077a58162013d65565b516201385c57600681101562003f7c5760038114620138035780620078025760405162461bcd60e51b8152602060048201526016602482015275151a19481c1c9bd9dc985b481a5cc81a5b9d985b1a5960521b6044820152606490fd5b600481036200b0d55750906000905b602083015180518310156200b0cf57826200782c9162005af1565b516020810180516026908181101562003f7c57156200b08c5781518181101562003f7c5760010362007a7a5750506040809101906200787060c08351015162005aab565b51926200789260a062007887818651015162005aab565b519451015162005acf565b5195620078a385518551146201505a565b620078b28551885114620150c0565b60005b8551811015620079f857620078cb818662005af1565b51612710908181101562005ab957600160ff6007620078f39360031b01541615151462015122565b620078ff828a62005af1565b516200790c838862005af1565b51908282101562005ab95760066200792a9260031b01549062006ce3565b9062007937848962005af1565b51918383101562005ab9576006620079549360031b01556201517a565b62007960828a62005af1565b51906200796e838862005af1565b518181101562005ab9576001600160a01b039392620079ae916003908662007997878e62005af1565b5116600052811b0160205287600020549062006ce3565b620079ba848a62005af1565b519283101562005ab95760036200189f93620079f296620079dc878e62005af1565b5116600052811b016020528760002055620151d9565b620078b5565b50939262007a159192965062007a0e906201610e565b9262015ff2565b94519262007a238462003e9b565b60008452600036813760005b835181101562007a5d57806200189f62007a4e62007a57938762005af1565b51878a62015be6565b62007a2f565b509450926020925062007a71915062005a85565b91905062007811565b81518181101562003f7c5760020362007d1c575050604080910180519283519562007aca62007aae60a08097015162005aab565b519562007abf818651015162005acf565b519451015162005ae0565b5193875186510362007cc957875184510362007c7557875185510362007c1e575060005b855181101562007c085762007b04818762005af1565b5190612710918281101562005ab95762007b2a60ff6007809360031b0154161562015232565b62007b36828962005af1565b518381101562005ab95760031b01805460ff1916600117905562007b5b818a62005af1565b5162007b68828962005af1565b51908382101562005ab957600562007b849260031b016200648b565b62007b90818662005af1565b5162007b9d828962005af1565b518381101562005ab95760031b6001015562007bba818762005af1565b5162007bc7828962005af1565b518381101562005ab95760031b6002015562007be4818862005af1565b519182101562005ab9576000600662007c029360031b015562005a85565b62007aee565b5095509390506020925062007a71915062005a85565b5162461bcd60e51b815260206004820152603c6024820152600080516020620168e983398151915260448201527b1b911a5d9a59195b9915d95a59da1d081a5cc81b9bdd08195c5d585b60221b6064820152608490fd5b5162461bcd60e51b81526020600482015260396024820152600080516020620168e98339815191526044820152781b959bdd1a5b99d41bddd95c881a5cc81b9bdd08195c5d585b603a1b6064820152608490fd5b5162461bcd60e51b81526020600482015260386024820152600080516020620168e98339815191526044820152771b925b99195e105c9c985e481a5cc81b9bdd08195c5d585b60421b6064820152608490fd5b819593949295518181101562003f7c5760030362008318575050604084019062007d4b60c08351015162005aab565b519362007d6260a062007887818651015162005aab565b519362007d778651855114620018986201637f565b62007d8a8651865114620018986201637f565b60005b865181101562007df35762007da3818662005af1565b519061271082101562005ab957600362007ded9260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b5111156200189862016483565b62007d8d565b50909493919460005b855181101562007f275762007e12818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b0160205262007e5560406000205462007e4d848962005af1565b519062005e45565b9062007e62848a62005af1565b51918383101562005ab957600362007e9193878f5116600052811b016020526040600020556200189862016483565b62007e9d828862005af1565b518181101562005ab9576003908462007eb7858c62005af1565b5116600052811b0160205262007ed860406000205462006f21848962005af1565b62007ee4848a62005af1565b519283101562005ab95760036200189f9362007f219662007f06878e62005af1565b5116600052811b0160205260406000205562001898620164e8565b62007dfc565b5091509162007f3e62007f4591969594966201610e565b9562015ff2565b926040519462007f558662003e7f565b6001865260203681880137516001600160a01b031662007f758662005aab565b526000905b8651821015620083035762007f90828862005af1565b516104405262007fa1855162005c0d565b9660009462007fb1885162005c0d565b610560528594865b885181101562008088578a8962007fe96001600160a01b0362007fdd858462005af1565b51166104405162015edb565b158062008042575b6200800a575b5050620080049062005a85565b62007fb9565b98620080379162001f3582859c6200802e620080049760018060a01b039262005af1565b51169262005af1565b9790508a8962007ff7565b50505061271061044051101562005ab9576001600160a01b0362008067828b62005af1565b5116600052600361044051811b016020528a89604060002054151562007ff1565b509098949897969291939760005b88518110156200812a5761271061044051101562005ab9576001600160a01b03620080c2828b62005af1565b5116600052600361044051811b0160205260406000205415620080f1575b620080eb9062005a85565b62008096565b99620080eb9062008121906001600160a01b03620081108e8d62005af1565b511662001f35826105605162005af1565b9a9050620080e0565b50985096949392919561044051612710811015806103a05262005ab95760031b6004015496620081656200815f878a62014cf2565b62005c0d565b996000998a6106c0525b6103a05162005ab9576106c0518a8110156200822457620081a4620081c19160006103a05260046104405160031b0162005d10565b90546105605160039290921b1c6001600160a01b03169062015f9d565b15620081e0575b620081d66106c05162005a85565b6106c0526200816f565b99808c62001f356200821d93620082046106c05160046104405160031b0162005d10565b905460039190911b1c6001600160a01b03169262005af1565b99620081c8565b509a939794969299919850946000915b838310620082c957505050506103a05162005ab9578051906001600160401b03821162003e1457602090620082738360046104405160031b0162005e25565b0160046104405160031b01600052602060002060005b838110620082ab5750505050620082a09062005a85565b909295919562007f7a565b82516001600160a01b03168183015560209092019160010162008289565b620082fc90620082f5906001600160a01b03620082e7868662005af1565b511662001f35828962005af1565b9262005a85565b9162008234565b9194505062007a719194506020925062005a85565b819593949295518181101562003f7c57600403620085a0575050604080920160c094620083596200834d878451015162005aab565b51968351015162005acf565b51946200837060a062007887818651015162005aab565b5193620083858851885114620018986201637f565b620083988851855114620018986201637f565b620083ab8851865114620018986201637f565b60005b88518110156200841357620083c4818662005af1565b519061271082101562005ab9576200840d916003906001600160a01b03620083ed848e62005af1565b5116600052811b016020526200189f886000205462007de0838a62005af1565b620083ae565b50909691959294939660005b8351811015620085545762008435818862005af1565b5190612710918281101562005ab9576001600160a01b0390600390826200845d858a62005af1565b5116600052811b016020526200847e8b62007e4d848b600020549262005af1565b906200848b848c62005af1565b51918583101562005ab9576003620084c49385620084aa888d62005af1565b5116600052811b016020528a600020556200189862016483565b620084d0828a62005af1565b518381101562005ab95760039082620084ea858b62005af1565b5116600052811b016020526200850b8b62006f21848b600020549262005af1565b9190506200851a838b62005af1565b519384101562005ab9576200854e9360039162008538858b62005af1565b5116600052811b01602052876000205562005a85565b6200841f565b50946200857792975062007f3e9193945062008570906201610e565b9362015ff2565b9260005b835181101562007a5d57806200189f62007a4e6200859a938762005af1565b6200857b565b819594939551908082101562003f7c576005918203620087b65750505060409182850190620085e460a0620085d9818551015162005aab565b519351015162005acf565b51928251845103620087655760005b83518110156200864b5762008609818562005af1565b519061271082101562005ab9576003620086459260018060a01b038b5116600052811b016020526200189f876000205462007de0838962005af1565b620085f3565b509092919260005b8451811015620086e65762008669818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b01602052620086a3886000205462007e4d848962005af1565b620086af848a62005af1565b519283101562005ab95760036200189f93620086e0968e5116600052811b0160205289600020556200189862016483565b62008653565b50959392620086f79192506201610e565b91805193620087068562003e7f565b6001855260203681870137516001600160a01b0316620087268562005aab565b525194620087348662003e9b565b60008652600036813760005b835181101562007a5d57806200189f62007a4e6200875f938762005af1565b62008740565b845162461bcd60e51b81526020600482015260356024820152600080516020620168c9833981519152604482015274195b905b5bdd5b9d081a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b8296939496518181101562003f7c5760060362008a2057505050906040809201620087e660c08251015162005aab565b5194620087fd60a0620085d9818551015162005aab565b51928651835103620089cf578651845103620089835760005b87518110156200887b576200882c818562005af1565b519061271082101562005ab95762008875916003906001600160a01b0362008855848d62005af1565b5116600052811b016020526200189f876000205462007de0838962005af1565b62008816565b509092919260005b87518110156200892f5762008899818662005af1565b516127108082101562005ab9576001600160a01b03929160039084620088c0858e62005af1565b5116600052811b01602052620088e0886000205462007e4d848962005af1565b620088ec848a62005af1565b519283101562005ab95760036200189f9362008929966200890f8f889062005af1565b5116600052811b0160205289600020556200189862016483565b62008883565b5095926200894491925062007a0e906201610e565b925194620089528662003e9b565b60008652600036813760005b835181101562007a5d57806200189f62007a4e6200897d938762005af1565b6200895e565b845162461bcd60e51b81526020600482015260306024820152600080516020620169a983398151915260448201526f1b9d1cc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b845162461bcd60e51b81526020600482015260356024820152600080516020620168698339815191526044820152741b90db185cdcd95cc81a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b82518181101562003f7c5760070362008b705750505060408091019362008a4c60c08651015162005aab565b519262008a5e60a08751015162005aab565b519551519162008a768551885114620018986201637f565b60005b855181101562007c085762008b6a906200189f6001600160a01b038260028862008b528e62008b478e62008b3d8f8962008ab48a8562005af1565b511660005262008af18962008ae981620138809a8b60205262008ae360ff876000205416156200189862016450565b62005af1565b519662005af1565b51968a62008b2783519b8c9662008b088862003df8565b600188526060602089019860008a528781019b8c52019b8c5262005af1565b511660005260205260002097511515886200655e565b511515866200656f565b51600185016200648b565b5191015562008b62838a62005af1565b511662006e2b565b62008a79565b82519596959394928185101562003f7c57600894850362008c685750505062008ba260c0604080950151015162005aab565b519360005b855181101562008c535762008c4d906001600160a01b038062008bcb838a62005af1565b511660005262013880908160205262008c2260ff62008bf96001828c600020541615151462001898620163af565b8262008c06868d62005af1565b5116600052836020528960002054891c16156200189862016417565b62008c2e838a62005af1565b51166000526020528560002061010061ff001982541617905562005a85565b62008ba7565b50949093506020925062007a71915062005a85565b80518281101562003f7c5760090362008d3d5750505062008c9260c0604080950151015162005aab565b519360005b855181101562008c535762008d3790866001600160a01b038062008cbc848462005af1565b511660005262008d106001898362008cf28762013880978860205262008ae38660ff8097600020541615151462001898620163af565b5116600052846020528a600020548a1c1615151462001898620163e2565b62008d1c838a62005af1565b51166000526020528560002061ff0019815416905562005a85565b62008c97565b8097969492939597518281101562003f7c57600a0362008e1c575050505060408094019162008d8260a062008d7760c08651015162005aab565b519451015162005aab565b519162008d978451845114620018986201637f565b60005b845181101562007a5d5762008e16906001600160a01b038062008dbe838962005af1565b5116600052620138808060205262008de6600160ff8c600020541615151462001898620163af565b62008df2838862005af1565b519162008e00848a62005af1565b5116600052602052600289600020015562005a85565b62008d9a565b80979597518281101562003f7c57600b0362008eec575050505060408092019362008e4c60c08651015162005aab565b519451519162008e648651845114620018986201637f565b60005b865181101562007a5d5762008ee6906200189f6001600160a01b038062008e8f848c62005af1565b5116600052620138808060205262008eb7600160ff8b600020541615151462001898620163af565b62008ec3848962005af1565b519162008ed1858d62005af1565b5116600052602052600188600020016200648b565b62008e67565b80979495939697518281101562003f7c57600c036200903a5750505060400160609182825101519360005b8551811015620090245760e062008f3382878751015162005af1565b5101511562008fbb5762008f5762008f5082878751015162005af1565b5162006a18565b62013882805460001992919083810190811162005a955762008f7a8a91620069d6565b5001805461ff0019166101001790555491820191821162005a95578762008fa562008fb593620069d6565b5001805460ff1916905562005a85565b62008f17565b62008fd662008fcf82878751015162005af1565b5162006a65565b62013882805460001992919083810190811162005a955762008ff98a9162006994565b5001805461ff0019166101001790555491820191821162005a95578762008fa562008fb59362006994565b5095915093506020925062007a71915062005a85565b8097969593929497518281101562003f7c57600d03620091915750506040019460206200906c60a08851015162005aab565b51965101519162009081875184511462014d99565b60005b875181101562007c08578080878a620090a262009132958962005af1565b5115620091385762009103620090ea8483620090d5620090c86200910e98889762005af1565b5162013882541162014e22565b62008ae38d620090f1620090ea858562005af1565b51620069d6565b509060ff9889920154901c1662014e7a565b500154161562014edb565b866200911f620090ea838c62005af1565b5001805460ff1916600117905562005a85565b62009084565b6200910362009179848362009164620091576200918098889762005af1565b5162013883541162014e22565b62008ae38d620090f162009179858562005af1565b5162006994565b866200911f62009179838c62005af1565b8097949397518281101562003f7c57600e0362009278575050604001916020620091c060a08551015162005aab565b519351015195620091d5845188511462014d99565b60005b845181101562007c085780620091f3620091ff928a62005af1565b51620092055762005a85565b620091d8565b6200922262009215828862005af1565b5162013882541162014f3c565b62009267876200924c6200923b620090ea858b62005af1565b5060ff9283910154891c1662014f95565b886200925d620090ea858b62005af1565b5001541662014ff7565b8662008fa5620090ea838962005af1565b809192935096949596518281101562003f7c57600f036200939357505060400160609182825101519360005b8551811015620090245760e0620092c082878751015162005af1565b510151156200933157620092dd62008f5082878751015162005af1565b62013882805460001992919083810190811162005a9557620093008a91620069d6565b5001805461ff0019166101001790555491820191821162005a9557876200911f6200932b93620069d6565b620092a4565b6200934562008fcf82878751015162005af1565b62013882805460001992919083810190811162005a9557620093688a9162006994565b5001805461ff0019166101001790555491820191821162005a9557876200911f6200932b9362006994565b8091929394969550518281101562003f7c57601003620094385750506040015190620093c860a0608084015193015162005aab565b5193620093dd8351865114620018986201637f565b60005b83518110156200942557806200189f620093ff6200941f938762005af1565b516200940b8162004dc4565b62009417838a62005af1565b519062014d00565b620093e0565b509350916020915062007a719062005a85565b80959295518281101562003f7c57601103620096c3575050906040809401916200946d60a062008d7760c08651015162005aab565b51916200947e845184511462014ca6565b60005b8451811015620094f757620094f1906200189f6001600160a01b0380620094a9848a62005af1565b51166000526201388580602052620094cb8b6000205462006f21868b62005af1565b919092620094da868c62005af1565b51166000526020528a600020556200189862016335565b62009481565b509394509162009508915062015ff2565b906201388692835494620095226200815f85518862014cf2565b91600093845b88811062009683575060005b8651811015620095db576000805b8a81106200958c575b501562009564575b6200955e9062005a85565b62009534565b946200955e9062009583906001600160a01b03620082e7898b62005af1565b95905062009553565b620095978162005c62565b90546001600160a01b0360039290921b1c811690620095b7858c62005af1565b511614620095d057620095ca9062005a85565b62009542565b50506001386200954b565b50965094909350620095ed8362005c0d565b805191906001600160401b03831162003e14576020906200960e8462005d7e565b0190600052602060002060005b83811062009665575050505060005b828110620096425750505062007a7160209162005a85565b6200965f906200189f6001600160a01b0362001e63838662005af1565b6200962a565b82516001600160a01b0316818301556020909201916001016200961b565b94620096b6620096bd91620096988862005c62565b905460039190911b1c6001600160a01b031662001f35828962005af1565b9562005a85565b62009528565b80518281101562003f7c5760120362009935575050604080940191620096f460a062008d7760c08651015162005aab565b519162009705845184511462014ca6565b60005b8451811015620097585762009752906200189f6001600160a01b038062009730848a62005af1565b51166000526201388580602052620094cb8b6000205462007e4d868b62005af1565b62009708565b509491509291620097699062015ff2565b906201388680546200977b8162005c0d565b9260009485925b8084106200982f5750505050620097998362005c0d565b805191906001600160401b03831162003e1457602090620097ba8462005d7e565b0190600052602060002060005b83811062009811575050505060005b828110620097ee5750505062007a7160209162005a85565b6200980b906200189f6001600160a01b0362001e63838662005af1565b620097d6565b82516001600160a01b031681830155602090920191600101620097c7565b9297600097929597949194998a5b86518110156200992357620098528b62005c62565b90546001600160a01b0360039290921b1c81169062009872838a62005af1565b5116146200988b57620098859062005a85565b6200983d565b509950976001979592979491945b80620098f2575b15620098b857620098b19062005a85565b9262009782565b95620098eb620098b191620098cd8962005c62565b905460039190911b1c6001600160a01b031662001f35828a62005af1565b9662005a85565b50620098fe8162005c62565b60018060a01b0391549060031b1c1660005262013885602052826000205415620098a0565b50999890989795929794919462009899565b80959295518281101562003f7c576013036200999657505060408091015101519260005b84518110156200998557806200189f620099786200997f938862005af1565b5162015883565b62009959565b5092509062007a7160209162005a85565b8051918083101562003f7c57601492830362009b3957505050604080910190620099c560c08351015162005aab565b5192620099dc60a062007887818651015162005aab565b5195620099ed85518551146201505a565b620099fc8551885114620150c0565b60005b855181101562009ae45762009a15818962005af1565b5162009a22828762005af1565b51612710918282101562005ab957600662009a439260031b01549062006ce3565b9062009a50848962005af1565b51918383101562005ab957600662009a6d9360031b01556201517a565b62009a79828a62005af1565b519062009a87838862005af1565b518181101562005ab9576001600160a01b03939262009ab0916003908662007997878e62005af1565b62009abc848a62005af1565b519283101562005ab95760036200189f9362009ade96620079dc878e62005af1565b620099ff565b50939262009afa9192965062007a0e906201610e565b94519262009b088462003e9b565b60008452600036813760005b835181101562007a5d57806200189f62007a4e62009b33938762005af1565b62009b14565b81969495939651908082101562003f7c5760159182036200a0b15750505050604084019062009b6d60c08351015162005aab565b519362009b8460a062007887818651015162005aab565b519362009b998651855114620018986201637f565b62009bac8651865114620018986201637f565b60005b865181101562009c085762009bc5818662005af1565b519061271082101562005ab957600362009c029260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b62009baf565b50909493919460005b855181101562009d195762009c27818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b0160205262009c6260406000205462007e4d848962005af1565b9062009c6f848a62005af1565b51918383101562005ab957600362009c9e93878f5116600052811b016020526040600020556200189862016483565b62009caa828862005af1565b518181101562005ab9576003908462009cc4858c62005af1565b5116600052811b0160205262009ce560406000205462006f21848962005af1565b62009cf1848a62005af1565b519283101562005ab95760036200189f9362009d139662007f06878e62005af1565b62009c11565b5091509162007f3e62009d3091969594966201610e565b926040519462009d408662003e7f565b6001865260203681880137516001600160a01b031662009d608662005aab565b526000905b8651821015620083035762009d7b828862005af1565b516104e05262009d8c855162005c0d565b9660009462009d9c885162005c0d565b6102c0528594865b885181101562009e6a578a8962009dd46001600160a01b0362009dc8858462005af1565b51166104e05162015edb565b158062009e24575b62009df5575b505062009def9062005a85565b62009da4565b9862009e199162001f3582859c6200802e62009def9760018060a01b039262005af1565b9790508a8962009de2565b5050506127106104e051101562005ab9576001600160a01b0362009e49828b62005af1565b511660005260036104e051811b016020528a89604060002054151562009ddc565b509098949897969291939760005b885181101562009f0c576127106104e051101562005ab9576001600160a01b0362009ea4828b62005af1565b511660005260036104e051811b016020526040600020541562009ed3575b62009ecd9062005a85565b62009e78565b9962009ecd9062009f03906001600160a01b0362009ef28e8d62005af1565b511662001f35826102c05162005af1565b9a905062009ec2565b5098509694939291956104e051612710811015806108a05262005ab95760031b600401549662009f416200815f878a62014cf2565b996000998a610660525b6108a05162005ab957610660518a81101562009fe75762009f8062009f9d9160006108a05260046104e05160031b0162005d10565b90546102c05160039290921b1c6001600160a01b03169062015f9d565b1562009fbc575b62009fb26106605162005a85565b6106605262009f4b565b99808c62001f3562009fe093620082046106605160046104e05160031b0162005d10565b9962009fa4565b509a939794969299919850946000915b8383106200a08c57505050506108a05162005ab9578051906001600160401b03821162003e14576020906200a0368360046104e05160031b0162005e25565b0160046104e05160031b01600052602060002060005b8381106200a06e57505050506200a0639062005a85565b909295919562009d65565b82516001600160a01b0316818301556020909201916001016200a04c565b6200a0aa90620082f5906001600160a01b03620082e7868662005af1565b9162009ff7565b82979496959751928184101562003f7c5760169384036200a11e57505050505060c060406200a0e4920151015162005aab565b519260005b845181101562009985576200a118906200189f6001600160a01b036200a110838962005af1565b511662006ddf565b6200a0e9565b80518281101562003f7c576017036200a1775760405162461bcd60e51b81526020600482015260296024820152600080516020620169698339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b80518281101562003f7c576018036200a1eb57505050505060c060406200a1a2920151015162005aab565b5162013892805460ff191660011790559260005b845181101562009985576200a1e5906200189f6001600160a01b036200a1dd838962005af1565b511662006d93565b6200a1b6565b80979697518281101562003f7c576019036200a37057505050505060008080604080940160a0808251015180516200a337575b5050519060e0820151916200a24262006f1a60c060018060a01b0393015162005aab565b511690602083519301915af1903d156200a32e573d916200a2638362004098565b926200a2728351948562003eb7565b83523d6000602085013e5b156200a29257505062007a7160209162005a85565b62005a8192506200a30f8151927f5468652063616c6c20746f2074686520636f6e7472616374206973206e6f7420602085015278039bab1b1b2b9b9b33ab617102932ba3ab937103230ba309d1603d1b838501528381516200a2fe816059946020868601910162003fe6565b810103603981018552018362003eb7565b5162461bcd60e51b81526020600482015291829160248301906200400b565b6060916200a27d565b6200a3429062005aab565b51516200a351575b806200a21e565b81925062006f1a906200a3679251015162005aab565b5190386200a34a565b80518281101562003f7c57601a036200a47257505050506200a39b60a0604080940151015162005aab565b51906200a3ac600383511462014ca6565b6200a3b78262005aab565b51926200a3d06200a3c88462005acf565b519362005ae0565b51926200a4385750509162007a71916001602094146000146200a431576200a410906200a4036201388d91825462006ce3565b90915562001898620162d0565b6200189f6201388e6200a424815462006cd0565b909155620018986201630a565b5062005a85565b60649250519062461bcd60e51b825260206004830152602482015273496e76616c6964207061796d656e74207479706560601b6044820152fd5b809192939450518281101562003f7c57601b036200a8f6575050505050906200a4b26201388b54620035a86200a4a76201620c565b612710831062005a52565b50506200a4be620162d0565b506000805b61271081106200a891575b50506200a4da62006cf5565b906200a4ea6202712a5462005c0d565b9060009384905b6127108210156200a886578160031b9260ff600785015416156200a642576000976002850154156200a63057889798975b62005ab95760048501548810156200a616576200a543886004870162005d10565b9054600391821b1c6001600160a01b0316600081815291870160205260409182902054919a916200a576908a9062006b9b565b9b906200a582620162d0565b6200a58d9162005a52565b60009b60028901546200a5a09162006b9b565b906200a5ab620162d0565b6200a5b69162005a52565b828d5262013887602052818d2054906200a5d09162006ce3565b90918d20556200a5df620162d0565b6200a5ea9162005a52565b6200a5f6828962005af1565b526200a6029062005a85565b976200a60e9062005a85565b97986200a522565b929093506200a62791965062005a85565b9095946200a4f1565b929093506200a6279196975062005a85565b959392509350505b6200a6558262005c0d565b91600091825b8281106200a7f05750505062013888908154926200a67e6200815f858462014cf2565b9360009081905b8082106200a7b557505060005b8381106200a7115750508351939150506001600160401b03831162003e14576020906200a6bf8462005d42565b0190600052602060002060005b8381106200a6f3575050505062007a7160209160006201388d5560006201388e5562005a85565b82516001600160a01b0316818301556020909201916001016200a6cc565b6000805b8381106200a76d575b50156200a737575b6200a7319062005a85565b6200a692565b906200a731906200a764906001600160a01b036200a756858762005af1565b511662001f35828a62005af1565b9190506200a726565b6001600160a01b03806200a782858862005af1565b5116906200a791838b62005af1565b5116146200a7aa576200a7a49062005a85565b6200a715565b50506001386200a71e565b9091620082f56200a7e9916200a7cb8562005c45565b905460039190911b1c6001600160a01b031662001f35828b62005af1565b906200a685565b6000805b8581106200a83e575b50156200a816575b6200a8109062005a85565b6200a65b565b926200a810906200a835906001600160a01b03620082e7878662005af1565b9390506200a805565b6001600160a01b03806200a853858762005af1565b5116906200a862838a62005af1565b5116146200a87b576200a8759062005a85565b6200a7f4565b50506001386200a7fd565b93505092906200a64a565b8060031b9060ff600783015416156200a8ef576200a8dd620076dc6200189f946200a8d16200a8e99560026200a8c78762006b3e565b9101549062006b9b565b929062001898620162d0565b939062001898620162d0565b6200a4c3565b506200a4ce565b80518281101562003f7c57601c036200a94f5760405162461bcd60e51b81526020600482015260296024820152600080516020620169898339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b80518281101562003f7c57601d036200a975575b505050505062007a7160209162005a85565b80518281101562003f7c57601e146200a9635780518281101562003f7c57601f036200a9cb57505050506020916200a9c16200a9ba604062007a719401515162005aab565b51620158ba565b913880806200a963565b80518281101562003f7c576020036200a9f1575b505050505062007a716020916200a9c1565b8051908282101562003f7c5760218092036200aa0f575b506200a9df565b8051838110156200b077576022036200aa505750505050505062007a716020916201389260ff1981541690556200aa4562005e11565b91388080806200aa08565b8051838110156200b077576023036200aa77575b50505050505062007a716020916200aa45565b8051838110156200b077576024146200aa64578051838110156200b077576025146200aa64579795949751918210156200b0635750036200b026575060408401906200aac860c08351015162005aab565b51936200aadf60a062007887818651015162005aab565b51936200aaf48651855114620018986201637f565b6200ab078651865114620018986201637f565b60005b86518110156200ab63576200ab20818662005af1565b519061271082101562005ab95760036200ab5d9260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b6200ab0a565b50909493919460005b85518110156200ac74576200ab82818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b016020526200abbd60406000205462007e4d848962005af1565b906200abca848a62005af1565b51918383101562005ab95760036200abf993878f5116600052811b016020526040600020556200189862016483565b6200ac05828862005af1565b518181101562005ab957600390846200ac1f858c62005af1565b5116600052811b016020526200ac4060406000205462006f21848962005af1565b6200ac4c848a62005af1565b519283101562005ab95760036200189f936200ac6e9662007f06878e62005af1565b6200ab6c565b5091509162007f3e6200ac8b91969594966201610e565b92604051946200ac9b8662003e7f565b6001865260203681880137516001600160a01b03166200acbb8662005aab565b526000905b86518210156200b00c576200acd6828862005af1565b516107e0526200ace7855162005c0d565b966000946200acf7885162005c0d565b610300528594865b88518110156200adc5578a896200ad2f6001600160a01b036200ad23858462005af1565b51166107e05162015edb565b15806200ad7f575b6200ad50575b50506200ad4a9062005a85565b6200acff565b986200ad749162001f3582859c6200802e6200ad4a9760018060a01b039262005af1565b9790508a896200ad3d565b5050506127106107e051101562005ab9576001600160a01b036200ada4828b62005af1565b511660005260036107e051811b016020528a8960406000205415156200ad37565b509098949897969291939760005b88518110156200ae67576127106107e051101562005ab9576001600160a01b036200adff828b62005af1565b511660005260036107e051811b01602052604060002054156200ae2e575b6200ae289062005a85565b6200add3565b996200ae28906200ae5e906001600160a01b036200ae4d8e8d62005af1565b511662001f35826103005162005af1565b9a90506200ae1d565b5098509694939291956107e051612710811015806108805262005ab95760031b60040154966200ae9c6200815f878a62014cf2565b996000998a610800525b6108805162005ab957610800518a8110156200af42576200aedb6200aef89160006108805260046107e05160031b0162005d10565b90546103005160039290921b1c6001600160a01b03169062015f9d565b156200af17575b6200af0d6108005162005a85565b610800526200aea6565b99808c62001f356200af3b93620082046108005160046107e05160031b0162005d10565b996200aeff565b509a939794969299919850946000915b8383106200afe757505050506108805162005ab9578051906001600160401b03821162003e14576020906200af918360046107e05160031b0162005e25565b0160046107e05160031b01600052602060002060005b8381106200afc957505050506200afbe9062005a85565b90929591956200acc0565b82516001600160a01b0316818301556020909201916001016200afa7565b6200b00590620082f5906001600160a01b03620082e7868662005af1565b916200af52565b9194505062007a719194506020925091388080806200aa64565b6064906040519062461bcd60e51b825260206004830152602482015275496e76616c6964206f7065726174696f6e207479706560501b6044820152fd5b634e487b7160e01b60005260045260246000fd5b82634e487b7160e01b60005260045260246000fd5b60405162461bcd60e51b815260206004820152601b60248201527a13dc195c985d1a5bdb881d1e5c19481a5cc81d5b9919599a5b9959602a1b6044820152606490fd5b50915050565b600281036200b0f95760405162461bcd60e51b81528062005a81600482016200774f565b6001146200b1045750565b906200b114620138835462006066565b805190600160401b821162003e1457620271165482620271165580831062013787575b506020016202711660005260206000206000915b83831062013766575050505060005b62013883548110156200b19457806200189f6200b17b6200b18e9362006994565b506200b18783620069b5565b9062013c9a565b6200b15a565b506200b1a4620138825462006066565b805190600160401b821162003e14576202711554826202711555808310620136c9575b506020016202711560005260206000206000915b838310620136a8575050505060005b62013882548110156200b21d57806200189f6200b20b6200b21793620069d6565b506200b18783620069f7565b6200b1ea565b5060005b612710811015806200b3e957600160ff6201389a8460031b0154161515146200b257575b506200b2519062005a85565b6200b221565b916000835b62005ab957620138978360031b01548110156200b2c9576200b2c0929350600092816200b2938593620138978860031b0162005d10565b9054600391821b1c6001600160a01b031660009081529087901b6201389601602052604081205562005a85565b9093926200b25c565b5091604051906200b2da8262003e9b565b6000825262005ab9578051906001600160401b03821162003e14576020906200b30c83620138978660031b0162005e25565b01620138978360031b01600052602060002060005b8381106200b3cb5750505050600381901b6201389a8101805460ff191690556000620138938201819055620138948201819055620138958201556201389801546200b25191906200b3729062005129565b601f908181116200b39f575b50506000620138988260031b01556000620138998260031b0155906200b245565b6200b3c391620138988460031b016000526020600020910160051c81019062005d29565b38806200b37e565b82516001600160a01b0316818301556020909201916001016200b321565b505060005b612710811062013613575060005b62013881548110156200b45957806200b4196200b4539262005c7f565b60018060a01b0391549060031b1c166000526202711360205260006002604082208281556200b44b60018201620060f7565b015562005a85565b6200b3fc565b506200b469620138815462005c0d565b8051906001600160401b03821162003e1457600160401b821162003e14576020906202711454836202711455808410620135f0575b500162027114600052602060002060005b838110620135d2575050505060005b62013881548110156200b533576200b4d68162005c7f565b9054620271145460039290921b1c6001600160a01b0316919081101562005ab9576202711460005260008051602062016909833981519152810180546001600160a01b0319169092179091556200b52d9062005a85565b6200b4be565b509060005b62013881548110156200b5f557806200b5556200b5aa9262005c7f565b9060018060a01b03918291549060031b1c1660005262013880602052604080600020916200b5838462005c7f565b90549060031b1c1660005262027113602052600020908082036200b5b0575b505062005a85565b6200b538565b600280916200b5d660ff6200b5c981845416876200655e565b825460081c16856200656f565b6200b5e860018201600186016201392e565b015491015538806200b5a2565b5060005b6202711d548110156200b64957806200b6166200b6439262005c9c565b60018060a01b0391549060031b1c166000526202711c6020526200189f6040600020606481019062005d29565b6200b5f9565b506200b6596201388a5462005c0d565b8051906001600160401b03821162003e1457600160401b821162003e14576020906202711d54836202711d55808410620135af575b50016202711d600052602060002060005b83811062013591575050505060005b6201388a548110156200b6f257806200189f6200b6cf6200b6ec9362005cb9565b905460039190911b1c6001600160a01b031662001e708362005c9c565b6200b6ae565b5060005b6201388a548110156200b78057806200b7136200b7679262005cb9565b9060018060a01b03918291549060031b1c1660005262013889602052604080600020916200b7418462005cb9565b90549060031b1c166000526202711c602052600020908082036200b76d57505062005a85565b6200b6f6565b6200b7789162013d2e565b38806200b5a2565b506201388b546202711e556201388c546202711f556201388d5462027120556201388e5462027121556201388f546001600160401b03811162003e1457600160401b811162003e1457620271225481620271225580821062013562575b506202712260009081527f846ab89c81ea9339188216a1864da1a19ebe28d411cbec99efa70ca6d389710d80546000805160206201688983398151915291905b848410620135405750505050506201389054600160401b811162003e14576202712354816202712355808210620134fd575b50620271236000908152600080516020620168a98339815191527f7f73709277f72a9bc7b284375e83603a53394744e9fa86da811e86c2aa78e05e5b838310620134df57505062013891549150506001600160401b03811162003e1457600160401b811162003e14576202712454816202712455808210620134b0575b506202712460009081527f8f332db73d3937798ea82422156d059730b0b3058606439b57b7ae623e94536680546000805160206201692983398151915291905b8484106201348e57505050505060ff620138925416151560ff8019620271255416911617620271255560005b62027119548110156200b98457806200b9556200b97e9262005cd6565b905460039190911b1c6001600160a01b0316600090815262027118602052604081205562005a85565b6200b938565b506200b994620138865462005c0d565b8051906001600160401b03821162003e14576020906200b9b48362005dc9565b0162027119600052602060002060005b83811062013470575050505060005b62013886548110156200ba1757806200189f6200b9f46200ba119362005c62565b905460039190911b1c6001600160a01b031662001e708362005cd6565b6200b9d3565b5060005b62013886548110156200ba8957806200ba386200ba839262005c62565b9060018060a01b03918291549060031b1c166000526201388560205260408060002054916200ba678462005c62565b90549060031b1c16600052620271186020526000205562005a85565b6200ba1b565b5060005b6202711b548110156200bad957806200baaa6200bad39262005cf3565b905460039190911b1c6001600160a01b031660009081526202711a602052604081205562005a85565b6200ba8d565b506200bae9620138885462005c0d565b8051906001600160401b03821162003e14576020906200bb098362005ded565b016202711b600052602060002060005b83811062013452575050505060005b62013888548110156200bb6c57806200189f6200bb496200bb669362005c45565b905460039190911b1c6001600160a01b031662001e708362005cf3565b6200bb28565b5060005b62013888548110156200bbde57806200bb8d6200bbd89262005c45565b9060018060a01b03918291549060031b1c166000526201388760205260408060002054916200bbbc8462005c45565b90549060031b1c166000526202711a6020526000205562005a85565b6200bb70565b50906000905b60208301518051831015620109f357826200bbff9162005af1565b516020810151602681101562003f7c57156200b08c576020810151602681101562003f7c576001036200c1cf57604001906200bc4060c08351015162005aab565b51936200bc5760a062007887818651015162005aab565b51916200bc6886518551146201505a565b6200bc778651845114620150c0565b60005b86518110156200bdda576200bc90818662005af1565b5161271081101562005ab957600160ff6201389a6200bcb89360031b01541615151462015122565b6200bcc4818562005af1565b516200bcd1828762005af1565b519061271082101562005ab957620138996200bcf39260031b01549062006ce3565b906200bd00838862005af1565b519161271083101562005ab957620138996200bd219360031b01556201517a565b6200bd2d818562005af1565b516200bd3a828762005af1565b519061271082101562005ab9576200bd7e9162013896906001600160a01b036200bd65868d62005af1565b511660005260031b016020526040600020549062006ce3565b91906200bd8c828862005af1565b519061271082101562005ab9576200bdd4936200189f9262013896906001600160a01b036200bdbc878f62005af1565b511660005260031b01602052604060002055620151d9565b6200bc7a565b50926200bdf191925062008570909594956201610e565b916040516200be008162003e9b565b6000815260003681376000945b80518610156200c1b5576200be23868262005af1565b5160e0526200be33855162005c0d565b966000946200be43845162005c0d565b60c05260009460005b88518110156200bf12578a896200be7b6001600160a01b036200be70858462005af1565b511660e05162015f44565b15806200becb575b6200be9c575b50506200be969062005a85565b6200be4c565b986200bec09162001f3582859c6200802e6200be969760018060a01b039262005af1565b9790508a896200be89565b50505061271060e051101562005ab9576001600160a01b036200beef828b62005af1565b51166000526201389660e05160031b016020528a8960406000205415156200be83565b50909895979498969291939660005b88518110156200bfae5761271060e051101562005ab9576001600160a01b03806200bf4d838c62005af1565b51166000526201389660e05160031b01602052604060002054156200bf7f575b506200bf799062005a85565b6200bf21565b819b6200bfa6916200bf966200bf79948d62005af1565b511662001f358260c05162005af1565b9a906200bf6d565b5098509695929190939660e051612710811015806102805262005ab95760031b620138970154986200bfe56200815f898c62014cf2565b610380526000610540526000610600525b6102805162005ab957610600518a8110156200c0be576200c02c6200c04b916000610280526201389760e05160031b0162005d10565b905460c0516001600160a01b03939260031b9190911c83169062015f9d565b156200c06b575b506200c0616106005162005a85565b610600526200bff6565b6000610280526200c08a610600516201389760e05160031b0162005d10565b90549060031b1c166200c0a4610540516103805162005af1565b526200c0b36105405162005a85565b61054052386200c052565b50979294959093985095909560005b8281106200c169575050506102805162005ab95761038051516001600160401b03811162003e14576200c10b816201389760e05160031b0162005e25565b602061038051016201389760e05160031b01600052602060002060005b8381106200c14b57505050506200c13f9062005a85565b9492959091956200be0d565b82516001600160a01b0316818301556020909201916001016200c128565b6200c1af906001600160a01b036200c182828562005af1565b51166200c196610540516103805162005af1565b526200c1a56105405162005a85565b6105405262005a85565b6200c0cd565b5050939092506200c1c7915062005a85565b90916200bbe4565b906020829493940151602681101562003f7c576002036200c38c576040809201908151938451916200c2266200c20a60a08098015162005aab565b51966200c21b818751015162005acf565b519551015162005ae0565b5194835187510362007cc957835185510362007c7557835186510362007c1e575060005b86518110156200c379576200c260818862005af1565b5161271081101562005ab95760ff6201389a6200c2849260031b0154161562015232565b6200c290818862005af1565b5161271081101562005ab95760031b6201389a01805460ff191660011790556200c2bb818562005af1565b516200c2c8828962005af1565b519061271082101562005ab957620138986200c2e89260031b016200648b565b6200c2f4818662005af1565b516200c301828962005af1565b5161271081101562005ab95760031b6201389401556200c322818762005af1565b516200c32f828962005af1565b5161271081101562005ab95760031b6201389501556200c350818862005af1565b519061271082101562005ab9576000620138996200c3739360031b015562005a85565b6200c24a565b509592509350506200c1c7915062005a85565b9092916020840151602681101562003f7c576003036200c9be5760408401906200c3bb60c08351015162005aab565b51906200c3d260a062007887818651015162005aab565b51936200c3e78351855114620018986201637f565b6200c3fa8351865114620018986201637f565b60005b83518110156200c459576200c413818662005af1565b519061271082101562005ab957620138966200c4539260018060a01b038b511660005260031b016020526200189f60406000205462007de0838a62005af1565b6200c3fd565b509095919560005b87518110156200c5ab576200c477818662005af1565b5161271081101562005ab957620138969060018060a01b0386511660005260031b016020526200c4b260406000205462007e4d838962005af1565b906200c4bf838862005af1565b519161271083101562005ab957620138966200c4f99360018060a01b0389511660005260031b016020526040600020556200189862016483565b6200c505818662005af1565b5161271081101562005ab95762013896906001600160a01b036200c52a848c62005af1565b511660005260031b016020526200c54c60406000205462006f21838962005af1565b91906200c55a828862005af1565b519061271082101562005ab9576200c5a593620138966200189f938d6200c5898760018060a01b039262005af1565b511660005260031b0160205260406000205562001898620164e8565b6200c461565b50926200c5ca919294506200c5c3909695966201610e565b9462015ff2565b92604051906200c5da8262003e7f565b6001825260203681840137516001600160a01b03166200c5fa8262005aab565b526000945b80518610156200c1b5576200c615868262005af1565b516103c0526200c626855162005c0d565b966000946200c636845162005c0d565b6108c05260009460005b88518110156200c709578a896200c6706001600160a01b036200c664858462005af1565b51166103c05162015f44565b15806200c6c0575b6200c691575b50506200c68b9062005a85565b6200c640565b986200c6b59162001f3582859c6200802e6200c68b9760018060a01b039262005af1565b9790508a896200c67e565b5050506127106103c051101562005ab9576001600160a01b036200c6e5828b62005af1565b5116600052620138966103c05160031b016020528a8960406000205415156200c678565b50909895979498969291939660005b88518110156200c7af576127106103c051101562005ab9576001600160a01b036200c744828b62005af1565b5116600052620138966103c05160031b01602052604060002054156200c776575b6200c7709062005a85565b6200c718565b996200c770906200c7a6906001600160a01b036200c7958e8d62005af1565b511662001f35826108c05162005af1565b9a90506200c765565b509850969592919093966103c051612710811015806101605262005ab95760031b620138970154986200c7e76200815f898c62014cf2565b610460526000610640526000610220525b6101605162005ab957610220518a8110156200c8c5576200c82f6200c84c91600061016052620138976103c05160031b0162005d10565b90546108c05160039290921b1c6001600160a01b03169062015f9d565b156200c86b575b6200c8616102205162005a85565b610220526200c7f8565b6000610160526200c88b61022051620138976103c05160031b0162005d10565b60018060a01b0391549060031b1c166200c8ac610640516104605162005af1565b526200c8bb6106405162005a85565b610640526200c853565b50979294959093985095909560005b8281106200c972575050506101605162005ab95761046051516001600160401b03811162003e14576200c91381620138976103c05160031b0162005e25565b60206104605101620138976103c05160031b01600052602060002060005b8381106200c95457505050506200c9489062005a85565b9492959091956200c5ff565b82516001600160a01b0316818301556020909201916001016200c931565b6200c9b8906001600160a01b036200c98b828562005af1565b51166200c99f610640516104605162005af1565b526200c9ae6106405162005a85565b6106405262005a85565b6200c8d4565b90926020810151602681101562003f7c576004036200cff75760400160c0936200c9fc6200c9f0868451015162005aab565b51958351015162005acf565b51906200ca1360a062007887818651015162005aab565b51936200ca288751845114620018986201637f565b6200ca3b8751855114620018986201637f565b6200ca4e8751865114620018986201637f565b60005b87518110156200caba576200ca67818662005af1565b519061271082101562005ab9576200cab49162013896906001600160a01b036200ca92848d62005af1565b511660005260031b016020526200189f60406000205462007de0838a62005af1565b6200ca51565b509095919593929360005b83518110156200cc21576200cadb818762005af1565b5161271081101562005ab95762013896906001600160a01b036200cb00848862005af1565b511660005260031b016020526200cb2260406000205462007e4d838862005af1565b906200cb2f838962005af1565b519161271083101562005ab9576200cb769262013896906001600160a01b036200cb5a878b62005af1565b511660005260031b016020526040600020556200189862016483565b6200cb82818762005af1565b5161271081101562005ab95762013896906001600160a01b036200cba7848c62005af1565b511660005260031b016020526200cbc960406000205462006f21838862005af1565b9190506200cbd8818862005af1565b519161271083101562005ab9576200cc1b9262013896906001600160a01b036200cc03858e62005af1565b511660005260031b0160205260406000205562005a85565b6200cac5565b5091936200cc3d91935062007f3e62008570919796976201610e565b6000945b80518610156200c1b5576200cc57868262005af1565b516107a0526200cc68855162005c0d565b966000946200cc78845162005c0d565b6107205260009460005b88518110156200cd4b578a896200ccb26001600160a01b036200cca6858462005af1565b51166107a05162015f44565b15806200cd02575b6200ccd3575b50506200cccd9062005a85565b6200cc82565b986200ccf79162001f3582859c6200802e6200cccd9760018060a01b039262005af1565b9790508a896200ccc0565b5050506127106107a051101562005ab9576001600160a01b036200cd27828b62005af1565b5116600052620138966107a05160031b016020528a8960406000205415156200ccba565b50909895979498969291939660005b88518110156200cdea576127106107a051101562005ab9576001600160a01b03806200cd87838c62005af1565b5116600052620138966107a05160031b01602052604060002054156200cdba575b506200cdb49062005a85565b6200cd5a565b819b6200cde2916200cdd16200cdb4948d62005af1565b511662001f35826107205162005af1565b9a906200cda8565b509850969592919093966107a051612710811015806101c05262005ab95760031b620138970154986200ce226200815f898c62014cf2565b6107c0526000610420526000610860525b6101c05162005ab957610860518a8110156200cefe576200ce6a6200ce8a9160006101c052620138976107a05160031b0162005d10565b9054610720516001600160a01b03939260031b9190911c83169062015f9d565b156200ceaa575b506200cea06108605162005a85565b610860526200ce33565b60006101c0526200ceca61086051620138976107a05160031b0162005d10565b90549060031b1c166200cee4610420516107c05162005af1565b526200cef36104205162005a85565b61042052386200ce91565b50979294959093985095909560005b8281106200cfab575050506101c05162005ab9576107c051516001600160401b03811162003e14576200cf4c81620138976107a05160031b0162005e25565b60206107c05101620138976107a05160031b01600052602060002060005b8381106200cf8d57505050506200cf819062005a85565b9492959091956200cc41565b82516001600160a01b0316818301556020909201916001016200cf6a565b6200cff1906001600160a01b036200cfc4828562005af1565b51166200cfd8610420516107c05162005af1565b526200cfe76104205162005a85565b6104205262005a85565b6200cf0d565b92906020840151602681101562003f7c576005036200d5a85760408401906200d02a60a0620085d9818551015162005aab565b519282518451036200d5565760005b83518110156200d095576200d04f818562005af1565b519061271082101562005ab957620138966200d08f9260018060a01b038a511660005260031b016020526200189f60406000205462007de0838962005af1565b6200d039565b509060005b83518110156200d13e576200d0b0818562005af1565b5161271081101562005ab957620138969060018060a01b0389511660005260031b016020526200d0eb60406000205462007e4d838862005af1565b91906200d0f9828762005af1565b519061271082101562005ab9576200d13893620138966200189f9360018060a01b038d511660005260031b016020526040600020556200189862016483565b6200d09a565b50916200d14f91949593506201610e565b92604051926200d15f8462003e7f565b6001845260203681860137516001600160a01b03166200d17f8462005aab565b52604051926200d18f8462003e9b565b6000845260003681376000945b80518610156200c1b5576200d1b2868262005af1565b51610240526200d1c3855162005c0d565b966000946200d1d3845162005c0d565b6108405260009460005b88518110156200d2a6578a896200d20d6001600160a01b036200d201858462005af1565b51166102405162015f44565b15806200d25d575b6200d22e575b50506200d2289062005a85565b6200d1dd565b986200d2529162001f3582859c6200802e6200d2289760018060a01b039262005af1565b9790508a896200d21b565b50505061271061024051101562005ab9576001600160a01b036200d282828b62005af1565b5116600052620138966102405160031b016020528a8960406000205415156200d215565b50909895979498969291939660005b88518110156200d34c5761271061024051101562005ab9576001600160a01b036200d2e1828b62005af1565b5116600052620138966102405160031b01602052604060002054156200d313575b6200d30d9062005a85565b6200d2b5565b996200d30d906200d343906001600160a01b036200d3328e8d62005af1565b511662001f35826108405162005af1565b9a90506200d302565b50985096959291909396610240516127108110158060a05262005ab95760031b620138970154986200d3836200815f898c62014cf2565b610780526000610320526000610340525b60a05162005ab957610340518a8110156200d45e576200d3c96200d3e691600060a052620138976102405160031b0162005d10565b90546108405160039290921b1c6001600160a01b03169062015f9d565b156200d405575b6200d3fb6103405162005a85565b610340526200d394565b600060a0526200d42461034051620138976102405160031b0162005d10565b60018060a01b0391549060031b1c166200d445610320516107805162005af1565b526200d4546103205162005a85565b610320526200d3ed565b50979294959093985095909560005b8281106200d50a5750505060a05162005ab95761078051516001600160401b03811162003e14576200d4ab81620138976102405160031b0162005e25565b60206107805101620138976102405160031b01600052602060002060005b8381106200d4ec57505050506200d4e09062005a85565b9492959091956200d19c565b82516001600160a01b0316818301556020909201916001016200d4c9565b6200d550906001600160a01b036200d523828562005af1565b51166200d537610320516107805162005af1565b526200d5466103205162005a85565b6103205262005a85565b6200d46d565b60405162461bcd60e51b81526020600482015260356024820152600080516020620168c9833981519152604482015274195b905b5bdd5b9d081a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b926020810151602681101562003f7c576006036200db9b576040016200d5d360c08251015162005aab565b51936200d5ea60a0620085d9818551015162005aab565b519285518351036200db495785518451036200dafc5760005b86518110156200d66c576200d619818562005af1565b519061271082101562005ab9576200d6669162013896906001600160a01b036200d644848c62005af1565b511660005260031b016020526200189f60406000205462007de0838962005af1565b6200d603565b509060005b86518110156200d712576200d687818562005af1565b5161271081101562005ab95762013896906001600160a01b036200d6ac848b62005af1565b511660005260031b016020526200d6ce60406000205462007e4d838862005af1565b91906200d6dc828762005af1565b519061271082101562005ab9576200d70c936200189f9262013896906001600160a01b036200cb5a878f62005af1565b6200d671565b50916200d72991935062008570909594956201610e565b91604051926200d7398462003e9b565b6000845260003681376000945b80518610156200c1b5576200d75c868262005af1565b51610400526200d76d855162005c0d565b966000946200d77d845162005c0d565b6101005260009460005b88518110156200d850578a896200d7b76001600160a01b036200d7ab858462005af1565b51166104005162015f44565b15806200d807575b6200d7d8575b50506200d7d29062005a85565b6200d787565b986200d7fc9162001f3582859c6200802e6200d7d29760018060a01b039262005af1565b9790508a896200d7c5565b50505061271061040051101562005ab9576001600160a01b036200d82c828b62005af1565b5116600052620138966104005160031b016020528a8960406000205415156200d7bf565b50909895979498969291939660005b88518110156200d8ef5761271061040051101562005ab9576001600160a01b03806200d88c838c62005af1565b5116600052620138966104005160031b01602052604060002054156200d8bf575b506200d8b99062005a85565b6200d85f565b819b6200d8e7916200d8d66200d8b9948d62005af1565b511662001f35826101005162005af1565b9a906200d8ad565b5098509695929190939661040051612710811015806104a05262005ab95760031b620138970154986200d9276200815f898c62014cf2565b6101405260006101e05260006104c0525b6104a05162005ab9576104c0518a8110156200da03576200d96f6200d98f9160006104a052620138976104005160031b0162005d10565b9054610100516001600160a01b03939260031b9190911c83169062015f9d565b156200d9af575b506200d9a56104c05162005a85565b6104c0526200d938565b60006104a0526200d9cf6104c051620138976104005160031b0162005d10565b90549060031b1c166200d9e96101e0516101405162005af1565b526200d9f86101e05162005a85565b6101e052386200d996565b50979294959093985095909560005b8281106200dab0575050506104a05162005ab95761014051516001600160401b03811162003e14576200da5181620138976104005160031b0162005e25565b60206101405101620138976104005160031b01600052602060002060005b8381106200da9257505050506200da869062005a85565b9492959091956200d746565b82516001600160a01b0316818301556020909201916001016200da6f565b6200daf6906001600160a01b036200dac9828562005af1565b51166200dadd6101e0516101405162005af1565b526200daec6101e05162005a85565b6101e05262005a85565b6200da12565b60405162461bcd60e51b81526020600482015260306024820152600080516020620169a983398151915260448201526f1b9d1cc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b60405162461bcd60e51b81526020600482015260356024820152600080516020620168698339815191526044820152741b90db185cdcd95cc81a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b602081949293940151602681101562003f7c576007036200dd3a57604001916200dbca60c08451015162005aab565b51916200dbdc60a08551015162005aab565b51935151916200dbf48451865114620018986201637f565b60005b84518110156200dd28576001600160a01b03806200dc16838862005af1565b511660005262027113806020526200dc3b60ff60406000205416156200189862016450565b60026200dc49848862005af1565b516200dcb36200dc5a868c62005af1565b519162008b478b604051966200dc708862003df8565b60018852886200dc978b60208b01946000865260408c0197885260608c01998a5262005af1565b511660005260205262008b3d604060002097511515886200655e565b519101556200dcc3828762005af1565b516202711454929116600160401b83101562003e14576001830180620271145583101562005ab957620271146000526000805160206201690983398151915290920180546001600160a01b0319169092179091556200dd229062005a85565b6200dbf7565b5094915092506200c1c7915062005a85565b6020810151602681101562003f7c576008036200de295760c060406200dd64920151015162005aab565b519160005b83518110156200de1a576200de14906001600160a01b03806200dd8d838862005af1565b51166000526202711390816020526200ddb7600160ff6040600020541615151462001898620163af565b806200ddc4848962005af1565b5116600052816020526200dde860ff60406000205460081c16156200189862016417565b6200ddf4838862005af1565b5116600052602052604060002061010061ff001982541617905562005a85565b6200dd69565b50926200c1c791925062005a85565b6020810151602681101562003f7c576009036200df095760c060406200de53920151015162005aab565b519160005b83518110156200de1a576200df03906001600160a01b03806200de7c838862005af1565b51166000526202711390816020526200dea6600160ff6040600020541615151462001898620163af565b806200deb3848962005af1565b5116600052816020526200dedb600160ff60406000205460081c1615151462001898620163e2565b6200dee7838862005af1565b5116600052602052604060002061ff0019815416905562005a85565b6200de58565b6020810151602681101562003f7c57600a036200dff257604001906200df4560a06200df3a60c08551015162005aab565b519351015162005aab565b51926200df5a8351855114620018986201637f565b60005b83518110156200dfe1576200dfdb906001600160a01b03806200df81838862005af1565b511660005262027113806020526200dfaa600160ff6040600020541615151462001898620163af565b6200dfb6838962005af1565b51916200dfc4848962005af1565b511660005260205260026040600020015562005a85565b6200df5d565b50939092506200c1c7915062005a85565b602081949392940151602681101562003f7c57600b036200e0d357604001926200e02160c08551015162005aab565b51935151916200e0398551845114620018986201637f565b60005b85518110156200e0c3576200e0bd906200189f6001600160a01b03806200e064848b62005af1565b511660005262027113806020526200e08d600160ff6040600020541615151462001898620163af565b6200e099848962005af1565b51916200e0a7858c62005af1565b511660005260205260016040600020016200648b565b6200e03c565b509350916200c1c7915062005a85565b9091926020820151602681101562003f7c57600c036200e217576060604083015101519260005b84518110156200dfe15760e06200e11a8260606040880151015162005af1565b510151156200e1a0576200e1426200e13b8260606040880151015162005af1565b5162006aad565b62027115548060001981011162005a95576200e16460059160001901620069f7565b5001805461ff0019166101001790556202711554906000198201821062005a9557600562008fa56200e19a9360001901620069f7565b6200e0fa565b6200e1bf6200e1b88260606040880151015162005af1565b5162006a89565b62027116548060001981011162005a95576200e1e160059160001901620069b5565b5001805461ff0019166101001790556202711654906000198201821062005a9557600562008fa56200e19a9360001901620069b5565b9291906020810151602681101562003f7c57600d036200e360576040019260206200e24760a08651015162005aab565b5194510151916200e25c855184511462014d99565b60005b85518110156200e0c357806200e27a6200e2f4928662005af1565b51156200e2fa576200e29e6200e291828962005af1565b5162027115541162014e22565b6200e2ca60ff60056200e2bd6200e2b6858c62005af1565b51620069f7565b50015460081c1662014e7a565b6200e2e260ff6005620091036200e2b6858c62005af1565b60056200911f6200e2b6838a62005af1565b6200e25f565b6200e3176200e30a828962005af1565b5162027116541162014e22565b6200e33660ff60056200e2bd6200e32f858c62005af1565b51620069b5565b6200e34e60ff6005620091036200e32f858c62005af1565b60056200911f6200e32f838a62005af1565b6020810151602681101562003f7c57600e036200e498576040019260206200e38d60a08651015162005aab565b5194510151916200e3a2855184511462014d99565b60005b85518110156200e0c357806200e3c06200e433928662005af1565b51156200e439576200e3e46200e3d7828962005af1565b5162027115541162014f3c565b6200e40960ff60056200e3fc6200e2b6858c62005af1565b50015460081c1662014f95565b6200e42160ff60056200925d6200e2b6858c62005af1565b600562008fa56200e2b6838a62005af1565b6200e3a5565b6200e4566200e449828962005af1565b5162027116541162014f3c565b6200e46e60ff60056200e3fc6200e32f858c62005af1565b6200e48660ff60056200925d6200e32f858c62005af1565b600562008fa56200e32f838a62005af1565b9091926020820151602681101562003f7c57600f036200e5ce576060604083015101519260005b84518110156200dfe15760e06200e4df8260606040880151015162005af1565b510151156200e55e576200e5006200e13b8260606040880151015162005af1565b62027115548060001981011162005a95576200e52260059160001901620069f7565b5001805461ff0019166101001790556202711554906000198201821062005a955760056200911f6200e5589360001901620069f7565b6200e4bf565b6200e5766200e1b88260606040880151015162005af1565b62027116548060001981011162005a95576200e59860059160001901620069b5565b5001805461ff0019166101001790556202711654906000198201821062005a955760056200911f6200e5589360001901620069b5565b9291906020810151602681101562003f7c576010036200e7175760400151926200e60160a0608086015195015162005aab565b51916200e6168551845114620018986201637f565b60005b85518110156200e0c357806200e6346200e6aa928862005af1565b516200e6408162004dc4565b6200e64c828762005af1565b51906200e6598162004dc4565b6200e6706200e667620164b2565b82151562005a52565b6200e67b8162004dc4565b600181036200e6b057506200e69f6200e693620164b2565b61271083111562005a52565b6202711e5562005a85565b6200e619565b6200e6bb8162004dc4565b600281036200e6d057506202711f5562005a85565b6200e6db8162004dc4565b600381036200e6f05750620271205562005a85565b806200e6fe60049262004dc4565b146200e70b575062005a85565b6202712155386200a431565b6020810151602681101562003f7c576011036200e9bd57604001906200e74860a06200df3a60c08551015162005aab565b51936200e759835186511462014ca6565b60005b83518110156200e7da576200e7d4906200e7b46001600160a01b03806200e784848962005af1565b51166000526202711890816020526200e7a860406000205462006f21868d62005af1565b93906200189862016335565b6200e7c0848962005af1565b511660005260205260406000205562005a85565b6200e75c565b509350906200e7e99062015ff2565b906202711954936200e8016200815f84518762014cf2565b9060009260005b8781106200e97d575060005b85518110156200e8c9576000805b8981106200e87a575b50156200e844575b6200e83e9062005a85565b6200e814565b936200e83e906200e871906001600160a01b036200e863888a62005af1565b511662001f35828862005af1565b9490506200e833565b6200e8858162005cd6565b90546001600160a01b0360039290921b1c8116906200e8a5858b62005af1565b5116146200e8be576200e8b89062005a85565b6200e822565b50506001386200e82b565b5095509392506200e8da8262005c0d565b8051906001600160401b03821162003e14576020906200e8fa8362005dc9565b0162027119600052602060002060005b8381106200e95f575050505060005b8281106200e92f575050506200c1c79062005a85565b6200e959906200189f6001600160a01b036200e94c838662005af1565b511662001e708362005cd6565b6200e919565b82516001600160a01b0316818301556020909201916001016200e90a565b936200e9b06200e9b7916200e9928762005cd6565b905460039190911b1c6001600160a01b031662001f35828862005af1565b9462005a85565b6200e808565b6020819492940151602681101562003f7c576012036200ec0557604001906200e9f160a06200df3a60c08551015162005aab565b51936200ea02835186511462014ca6565b60005b83518110156200ea57576200ea51906200e7b46001600160a01b03806200ea2d848962005af1565b51166000526202711890816020526200e7a860406000205462007e4d868d62005af1565b6200ea05565b50935091906200ea679062015ff2565b62027119546200ea778162005c0d565b906000926000915b8083106200eb2b575050506200ea958262005c0d565b8051906001600160401b03821162003e14576020906200eab58362005dc9565b0162027119600052602060002060005b8381106200eb0d575050505060005b8281106200eaea575050506200c1c79062005a85565b6200eb07906200189f6001600160a01b036200e94c838662005af1565b6200ead4565b82516001600160a01b0316818301556020909201916001016200eac5565b91956000959193959760005b85518110156200ebf6576200eb4c8962005cd6565b90546001600160a01b0360039290921b1c8116906200eb6c838962005af1565b5116146200eb85576200eb7f9062005a85565b6200eb37565b509750956001959391955b806200ebc4575b156200ebaf576200eba89062005a85565b916200ea7f565b936200e9b06200eba8916200e9928762005cd6565b506200ebd08162005cd6565b60018060a01b0391549060031b1c1660005262027118602052604060002054156200eb97565b5097969096959391956200eb90565b6020819493940151602681101562003f7c576013036200eca95760408091015101519160005b83518110156200de1a576200ec41818562005af1565b51906202711754600160401b81101562003e14576001810180620271175581101562005ab957620271176000526200eca3926200189f916007027f08f37177f6a5732df494aeff73d589b534878a053b84dfe1e41c467868b7c9fd01620157d7565b6200ec2b565b602081949392940151602681101562003f7c576014036200f1f657604001906200ecd860c08351015162005aab565b51936200ecef60a062007887818651015162005aab565b51916200ed0086518551146201505a565b6200ed0f8651845114620150c0565b60005b86518110156200ee0d576200ed28818562005af1565b516200ed35828762005af1565b519061271082101562005ab957620138996200ed579260031b01549062006ce3565b906200ed64838862005af1565b519161271083101562005ab957620138996200ed859360031b01556201517a565b6200ed91818562005af1565b516200ed9e828762005af1565b519061271082101562005ab9576200edc99162013896906001600160a01b036200bd65868d62005af1565b91906200edd7828862005af1565b519061271082101562005ab9576200ee07936200189f9262013896906001600160a01b036200bdbc878f62005af1565b6200ed12565b50926200ee2491925062008570909594956201610e565b916040516200ee338162003e9b565b6000815260003681376000945b80518610156200c1b5576200ee56868262005af1565b51610740526200ee67855162005c0d565b966000946200ee77845162005c0d565b6105e05260009460005b88518110156200ef4a578a896200eeb16001600160a01b036200eea5858462005af1565b51166107405162015f44565b15806200ef01575b6200eed2575b50506200eecc9062005a85565b6200ee81565b986200eef69162001f3582859c6200802e6200eecc9760018060a01b039262005af1565b9790508a896200eebf565b50505061271061074051101562005ab9576001600160a01b036200ef26828b62005af1565b5116600052620138966107405160031b016020528a8960406000205415156200eeb9565b50909895979498969291939660005b88518110156200efe95761271061074051101562005ab9576001600160a01b03806200ef86838c62005af1565b5116600052620138966107405160031b01602052604060002054156200efb9575b506200efb39062005a85565b6200ef59565b819b6200efe1916200efd06200efb3948d62005af1565b511662001f35826105e05162005af1565b9a906200efa7565b5098509695929190939661074051612710811015806101805262005ab95760031b620138970154986200f0216200815f898c62014cf2565b6105005260006105c0526000610820525b6101805162005ab957610820518a8110156200f0fd576200f0696200f08991600061018052620138976107405160031b0162005d10565b90546105e0516001600160a01b03939260031b9190911c83169062015f9d565b156200f0a9575b506200f09f6108205162005a85565b610820526200f032565b6000610180526200f0c961082051620138976107405160031b0162005d10565b90549060031b1c166200f0e36105c0516105005162005af1565b526200f0f26105c05162005a85565b6105c052386200f090565b50979294959093985095909560005b8281106200f1aa575050506101805162005ab95761050051516001600160401b03811162003e14576200f14b81620138976107405160031b0162005e25565b60206105005101620138976107405160031b01600052602060002060005b8381106200f18c57505050506200f1809062005a85565b9492959091956200ee40565b82516001600160a01b0316818301556020909201916001016200f169565b6200f1f0906001600160a01b036200f1c3828562005af1565b51166200f1d76105c0516105005162005af1565b526200f1e66105c05162005a85565b6105c05262005a85565b6200f10c565b926020840151602681101562003f7c576015036200f8035760408401906200f22360c08351015162005aab565b51906200f23a60a062007887818651015162005aab565b51936200f24f8351855114620018986201637f565b6200f2628351865114620018986201637f565b60005b83518110156200f2c1576200f27b818662005af1565b519061271082101562005ab957620138966200f2bb9260018060a01b038b511660005260031b016020526200189f60406000205462007de0838a62005af1565b6200f265565b509095919560005b87518110156200f3f7576200f2df818662005af1565b5161271081101562005ab957620138969060018060a01b0386511660005260031b016020526200f31a60406000205462007e4d838962005af1565b906200f327838862005af1565b519161271083101562005ab957620138966200f3619360018060a01b0389511660005260031b016020526040600020556200189862016483565b6200f36d818662005af1565b5161271081101562005ab95762013896906001600160a01b036200f392848c62005af1565b511660005260031b016020526200f3b460406000205462006f21838962005af1565b91906200f3c2828862005af1565b519061271082101562005ab9576200f3f193620138966200189f938d6200c5898760018060a01b039262005af1565b6200f2c9565b50926200f40f919294506200c5c3909695966201610e565b92604051906200f41f8262003e7f565b6001825260203681840137516001600160a01b03166200f43f8262005aab565b526000945b80518610156200c1b5576200f45a868262005af1565b51610200526200f46b855162005c0d565b966000946200f47b845162005c0d565b6107605260009460005b88518110156200f54e578a896200f4b56001600160a01b036200f4a9858462005af1565b51166102005162015f44565b15806200f505575b6200f4d6575b50506200f4d09062005a85565b6200f485565b986200f4fa9162001f3582859c6200802e6200f4d09760018060a01b039262005af1565b9790508a896200f4c3565b50505061271061020051101562005ab9576001600160a01b036200f52a828b62005af1565b5116600052620138966102005160031b016020528a8960406000205415156200f4bd565b50909895979498969291939660005b88518110156200f5f45761271061020051101562005ab9576001600160a01b036200f589828b62005af1565b5116600052620138966102005160031b01602052604060002054156200f5bb575b6200f5b59062005a85565b6200f55d565b996200f5b5906200f5eb906001600160a01b036200f5da8e8d62005af1565b511662001f35826107605162005af1565b9a90506200f5aa565b5098509695929190939661020051612710811015806102605262005ab95760031b620138970154986200f62c6200815f898c62014cf2565b6104805260006105805260006102a0525b6102605162005ab9576102a0518a8110156200f70a576200f6746200f69191600061026052620138976102005160031b0162005d10565b90546107605160039290921b1c6001600160a01b03169062015f9d565b156200f6b0575b6200f6a66102a05162005a85565b6102a0526200f63d565b6000610260526200f6d06102a051620138976102005160031b0162005d10565b60018060a01b0391549060031b1c166200f6f1610580516104805162005af1565b526200f7006105805162005a85565b610580526200f698565b50979294959093985095909560005b8281106200f7b7575050506102605162005ab95761048051516001600160401b03811162003e14576200f75881620138976102005160031b0162005e25565b60206104805101620138976102005160031b01600052602060002060005b8381106200f79957505050506200f78d9062005a85565b9492959091956200f444565b82516001600160a01b0316818301556020909201916001016200f776565b6200f7fd906001600160a01b036200f7d0828562005af1565b51166200f7e4610580516104805162005af1565b526200f7f36105805162005a85565b6105805262005a85565b6200f719565b9091926020810151602681101562003f7c576016036200f8b85760c060406200f830920151015162005aab565b519160005b83518110156200de1a576001600160a01b036200f853828662005af1565b516202712254929116600160401b83101562003e14576001830180620271225583101562005ab957620271226000526000805160206201688983398151915290920180546001600160a01b0319169092179091556200f8b29062005a85565b6200f835565b6020810151602681101562003f7c576017036200f9155760405162461bcd60e51b81526020600482015260296024820152600080516020620169698339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c576018036200f9d85760c060406200f93f920151015162005aab565b5191600160ff1962027125541617620271255560005b83518110156200de1a576001600160a01b036200f973828662005af1565b516202712454929116600160401b83101562003e14576001830180620271245583101562005ab957620271246000526000805160206201692983398151915290920180546001600160a01b0319169092179091556200f9d29062005a85565b6200f955565b602081949293940151602681101562003f7c576019036200fa00575b506200c1c79062005a85565b6020810151602681101562003f7c57601a036200fb7b5760a060406200fa2a920151015162005aab565b51906200fa3b600383511462014ca6565b6200fa468262005aab565b516200fa566200a3c88462005acf565b51926200fb3f576200c1c7926001036200fb38576200fa7e6200fadd91620271205462006ce3565b6202712055604051906200fa928262003e63565b603282527f6469766964656e6461626c652062616c616e6365206f766572666c6f772077686020830152710cadc40e0e4dec6cae6e6d2dcce40c6c2e6d60731b604083015262005a52565b6200fb316200faf0620271215462006cd0565b6202712155604051906200fb048262003e7f565b601a8252796469766964656e647320636f756e746572206f766572666c6f7760301b602083015262005a52565b906200f9f4565b506200fb31565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c6964207061796d656e74207479706560601b6044820152606490fd5b6020810151602681101562003f7c57601b036201017e575091906202711e546200fba86200a4a76201620c565b62027121546202711f5411156200fbc96200fbc26201627a565b8262005a52565b6202712054906200fbdb838362006b9b565b50506200fbe7620162d0565b506000805b6127108210620100d2575b5050906200fc276200fc2d93926200fc1d6200fc126201620c565b612710861062005a52565b620018986201627a565b62006b9b565b90506200fc39620162d0565b5060009060005b61271081106200fffa575b50906127106200fc5c920462006d71565b90506200fc6d6202712a5462005c0d565b906000946000905b6127108210156200ffed578160031b9460ff6201389a87015416156200fdd35760009662013895870154156200fdc257600098975b62005ab957620138978701548910156200fda8576200fccf8962013897890162005d10565b600160a01b6001900391549060031b1c169788600052620138968801602052604098868a60002054906200fd039162006b9b565b9a906200fd0f620162d0565b6200fd1a9162005a52565b60009a620138958b01546200fd2f9162006b9b565b906200fd3a620162d0565b6200fd459162005a52565b826000526202711a6020528160002054906200fd619162006ce3565b9091600020556200fd71620162d0565b6200fd7c9162005a52565b6200fd88828962005af1565b526200fd949062005a85565b986200fda09062005a85565b98976200fcaa565b929095506200fdba9196975062005a85565b90946200fc75565b929095506200fdba91965062005a85565b95969392509350505b6200fde78262005c0d565b9160009160005b8281106200ff57575050506202711b54916200fe0f6200815f848462014cf2565b926000906000905b8082106200ff3a57505060005b8381106200fea45750508251929150506001600160401b03821162003e14576020906200fe518362005ded565b016202711b600052602060002060005b8381106200fe8657505050506200c1c79060006202712055600062027121556200fb31565b82516001600160a01b0316818301556020909201916001016200fe61565b6000805b8381106200fef2575b50156200feca575b6200fec49062005a85565b6200fe24565b906200fec4906200fee9906001600160a01b03620082e7858762005af1565b9190506200feb9565b6001600160a01b03806200ff07858862005af1565b5116906200ff16838a62005af1565b5116146200ff2f576200ff299062005a85565b6200fea8565b50506001386200feb1565b9091620082f56200ff5091620098cd8562005cf3565b906200fe17565b6000805b8581106200ffa5575b50156200ff7d575b6200ff779062005a85565b6200fdee565b926200ff77906200ff9c906001600160a01b03620082e7878662005af1565b9390506200ff6c565b6001600160a01b03806200ffba858762005af1565b5116906200ffc9838a62005af1565b5116146200ffe2576200ffdc9062005a85565b6200ff5b565b50506001386200ff64565b939495929150506200fddc565b90918160039695961b60ff6201389a8201541615620100c65762013895810154620138978201546000928391825b818410620100645750505050620076dc6201005b93620100536200189f979694620036389462006b9b565b929062006ad1565b9493946200fc40565b94929462005ab957620100bf85620100b76201008a6200189f9862013897870162005d10565b905460039190911b1c6001600160a01b031660009081526201389686016020526040812054909662006ce3565b979062006bbd565b9262010028565b5091909493946200fc4b565b8160039897981b60ff6201389a820154161562010174576201389581015490600062013897820154916000926000925b8184106201013f5750505050620076dc62010135936200a8d1846200fc276200355e6200a8dd966200189f9a9862006b9b565b909695966200fbec565b93929362005ab9576201016d84620101656201008a6200189f9762013897870162005d10565b969062006bbd565b9262010102565b509695966200fbf7565b6020810151602681101562003f7c57601c03620101db5760405162461bcd60e51b81526020600482015260296024820152600080516020620169898339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c57601d03620101ff575b506200c1c7906200fb31565b6020810151602681101562003f7c57601e14620101f3576020810151602681101562003f7c57601f03620102925760406201023d9101515162005aab565b51906202712354600160401b81101562003e14576001810180620271235581101562005ab957620271236000526200c1c7926201028b91600080516020620168a9833981519152016200648b565b90620101f3565b6020810151602681101562003f7c57602003620102b6575b506200c1c7906201028b565b6020810151602681101562003f7c57602114620102aa576020810151602681101562003f7c576022036201034157506200c1c79060ff1962027125541662027125556202712454600062027124558062010314575b505b90620102aa565b620271246000526201033a90600080516020620169298339815191529081019062005d29565b386201030b565b6020810151602681101562003f7c5760230362010365575b506200c1c7906201030d565b6020810151602681101562003f7c5760241462010359576020810151602681101562003f7c5760251462010359579290916020840151602681101562003f7c57601503620109b5576040840190620103c260c08351015162005aab565b5190620103d960a062007887818651015162005aab565b5193620103ee8351855114620018986201637f565b620104018351865114620018986201637f565b60005b835181101562010460576201041a818662005af1565b519061271082101562005ab957620138966201045a9260018060a01b038b511660005260031b016020526200189f60406000205462007de0838a62005af1565b62010404565b509095919560005b875181101562010596576201047e818662005af1565b5161271081101562005ab957620138969060018060a01b0386511660005260031b01602052620104b960406000205462007e4d838962005af1565b90620104c6838862005af1565b519161271083101562005ab95762013896620105009360018060a01b0389511660005260031b016020526040600020556200189862016483565b6201050c818662005af1565b5161271081101562005ab95762013896906001600160a01b0362010531848c62005af1565b511660005260031b016020526201055360406000205462006f21838962005af1565b919062010561828862005af1565b519061271082101562005ab9576201059093620138966200189f938d6200c5898760018060a01b039262005af1565b62010468565b5092620105ae919294506200c5c3909695966201610e565b9260405190620105be8262003e7f565b6001825260203681840137516001600160a01b0316620105de8262005aab565b526000945b8051861015620109a257620105f9868262005af1565b516101a0526201060a855162005c0d565b966000946201061a845162005c0d565b6103e05260009460005b8851811015620106ed578a89620106546001600160a01b0362010648858462005af1565b51166101a05162015f44565b1580620106a4575b62010675575b50506201066f9062005a85565b62010624565b98620106999162001f3582859c6200802e6201066f9760018060a01b039262005af1565b9790508a8962010662565b5050506127106101a051101562005ab9576001600160a01b03620106c9828b62005af1565b5116600052620138966101a05160031b016020528a8960406000205415156201065c565b50909895979498969291939660005b885181101562010793576127106101a051101562005ab9576001600160a01b0362010728828b62005af1565b5116600052620138966101a05160031b01602052604060002054156201075a575b620107549062005a85565b620106fc565b9962010754906201078a906001600160a01b03620107798e8d62005af1565b511662001f35826103e05162005af1565b9a905062010749565b509850969592919093966101a051612710811015806106a05262005ab95760031b62013897015498620107cb6200815f898c62014cf2565b6101205260006106e05260006102e0525b6106a05162005ab9576102e0518a811015620108a95762010813620108309160006106a052620138976101a05160031b0162005d10565b90546103e05160039290921b1c6001600160a01b03169062015f9d565b156201084f575b620108456102e05162005a85565b6102e052620107dc565b60006106a0526201086f6102e051620138976101a05160031b0162005d10565b60018060a01b0391549060031b1c16620108906106e0516101205162005af1565b526201089f6106e05162005a85565b6106e05262010837565b50979294959093985095909560005b82811062010956575050506106a05162005ab95761012051516001600160401b03811162003e1457620108f781620138976101a05160031b0162005e25565b60206101205101620138976101a05160031b01600052602060002060005b8381106201093857505050506201092c9062005a85565b949295909195620105e3565b82516001600160a01b03168183015560209092019160010162010915565b6201099c906001600160a01b036201096f828562005af1565b5116620109836106e0516101205162005af1565b52620109926106e05162005a85565b6106e05262005a85565b620108b8565b5050939092506200c1c791509062010359565b60405162461bcd60e51b8152602060048201526016602482015275496e76616c6964206f7065726174696f6e207479706560501b6044820152606490fd5b5091905062010a028162014179565b90600681101562003f7c576002810362010a315760405162461bcd60e51b81528062005a81600482016200774f565b6003810362010ae45750303b1562003dde57906040518092630e8af36360e31b82526044820160406004840152815180915260206064840192019060005b81811062010aca5750505062010a958291600094600319848303016024850152620054e0565b038183305af1801562010abe5762010aaa5750565b6001600160401b03811162003e1457604052565b6040513d6000823e3d90fd5b825184528694506020938401939092019160010162010a6f565b600591501462010af15750565b906000905b602083015180518310156200b0cf578262010b119162005af1565b516020810151602681101562003f7c57156200b08c576020810151602681101562003f7c5760010362010d59576040019062010b5260c08351015162005aab565b519362010b6960a062007887818651015162005aab565b519162010b7a86518551146201505a565b62010b898651845114620150c0565b60005b865181101562010ce05762010ba2818662005af1565b5161271081101562005ab957600160ff600762010bc89360031b01541615151462015122565b62010bd4818562005af1565b5162010be1828762005af1565b519061271082101562005ab957600662010c019260031b01549062006ce3565b9062010c0e838862005af1565b519161271083101562005ab957600662010c2d9360031b01556201517a565b62010c39818562005af1565b5162010c46828762005af1565b519061271082101562005ab95762010c87916003906001600160a01b0362010c6f868d62005af1565b5116600052811b016020526040600020549062006ce3565b919062010c95828862005af1565b519061271082101562005ab95762010cda936200189f926003906001600160a01b0362010cc3878f62005af1565b5116600052811b01602052604060002055620151d9565b62010b8c565b509491509162010cf462010cfb916201610e565b9162015ff2565b936040519262010d0b8462003e9b565b60008452600036813760005b835181101562010d3c57806200189f62007a4e62010d36938762005af1565b62010d17565b509450926020925062010d50915062005a85565b91905062010af6565b602081949293940151602681101562003f7c5760020362010ff15760400180519283519062010d9162007aae60a08097015162005aab565b5193825186510362010f9c57825184510362010f4657825185510362010eed5760005b865181101562010ed75762010dca818862005af1565b5161271081101562005ab95760ff600762010dec9260031b0154161562015232565b62010df8818862005af1565b5161271081101562005ab95760031b600701805460ff1916600117905562010e21818562005af1565b5162010e2e828962005af1565b519061271082101562005ab957600562010e4c9260031b016200648b565b62010e58818662005af1565b5162010e65828962005af1565b5161271081101562005ab95760031b6001015562010e84818762005af1565b5162010e91828962005af1565b5161271081101562005ab95760031b6002015562010eb0818862005af1565b519061271082101562005ab9576000600662010ed19360031b015562005a85565b62010db4565b5095915093506020925062010d50915062005a85565b60405162461bcd60e51b815260206004820152603c6024820152600080516020620168e983398151915260448201527b1b911a5d9a59195b9915d95a59da1d081a5cc81b9bdd08195c5d585b60221b6064820152608490fd5b60405162461bcd60e51b81526020600482015260396024820152600080516020620168e98339815191526044820152781b959bdd1a5b99d41bddd95c881a5cc81b9bdd08195c5d585b603a1b6064820152608490fd5b60405162461bcd60e51b81526020600482015260386024820152600080516020620168e98339815191526044820152771b925b99195e105c9c985e481a5cc81b9bdd08195c5d585b60421b6064820152608490fd5b92916020840151602681101562003f7c57600303620115f55760408401906201101f60c08351015162005aab565b51906201103660a062007887818651015162005aab565b51936201104b8351855114620018986201637f565b6201105e8351865114620018986201637f565b60005b8351811015620110ba5762011077818662005af1565b519061271082101562005ab9576003620110b49260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b62011061565b509095919560005b8751811015620111e557620110d8818662005af1565b5161271081101562005ab95760039060018060a01b03865116600052811b016020526201111060406000205462007e4d838962005af1565b906201111d838862005af1565b519161271083101562005ab9576003620111549360018060a01b03895116600052811b016020526040600020556200189862016483565b62011160818662005af1565b5161271081101562005ab9576003906001600160a01b0362011183848c62005af1565b5116600052811b01602052620111a460406000205462006f21838962005af1565b9190620111b2828862005af1565b519061271082101562005ab957620111df9360036200189f938d62007f068760018060a01b039262005af1565b620110c2565b5092620111fd919294506200c5c3909695966201610e565b92604051906201120d8262003e7f565b6001825260203681840137516001600160a01b03166201122d8262005aab565b526000945b8051861015620115e15762011248868262005af1565b516103605262011259855162005c0d565b9660009462011269845162005c0d565b6106205260009460005b885181101562011339578a89620112a36001600160a01b0362011297858462005af1565b51166103605162015edb565b1580620112f3575b620112c4575b5050620112be9062005a85565b62011273565b98620112e89162001f3582859c6200802e620112be9760018060a01b039262005af1565b9790508a89620112b1565b50505061271061036051101562005ab9576001600160a01b0362011318828b62005af1565b5116600052600361036051811b016020528a896040600020541515620112ab565b50909895979498969291939660005b8851811015620113dc5761271061036051101562005ab9576001600160a01b0362011374828b62005af1565b5116600052600361036051811b0160205260406000205415620113a3575b6201139d9062005a85565b62011348565b996201139d90620113d3906001600160a01b03620113c28e8d62005af1565b511662001f35826106205162005af1565b9a905062011392565b5098509695929190939661036051612710811015806105a05262005ab95760031b6004015498620114126200815f898c62014cf2565b610700526000610520526000610680525b6105a05162005ab957610680518a811015620114ec5762011458620114759160006105a05260046103605160031b0162005d10565b90546106205160039290921b1c6001600160a01b03169062015f9d565b1562011494575b6201148a6106805162005a85565b6106805262011423565b60006105a052620114b26106805160046103605160031b0162005d10565b60018060a01b0391549060031b1c16620114d3610520516107005162005af1565b52620114e26105205162005a85565b610520526201147c565b50979294959093985095909560005b82811062011595575050506105a05162005ab95761070051516001600160401b03811162003e1457620115388160046103605160031b0162005e25565b6020610700510160046103605160031b01600052602060002060005b8381106201157757505050506201156b9062005a85565b94929590919562011232565b82516001600160a01b03168183015560209092019160010162011554565b620115db906001600160a01b03620115ae828562005af1565b5116620115c2610520516107005162005af1565b52620115d16105205162005a85565b6105205262005a85565b620114fb565b50509362010d509193506020925062005a85565b90926020810151602681101562003f7c576004036201189f576201162160c06040830151015162005aab565b51936201163660c06040840151015162005acf565b51906201165d60a06040620116518282880151015162005aab565b51950151015162005acf565b5193620116728751845114620018986201637f565b620116858751855114620018986201637f565b620116988751865114620018986201637f565b60005b87518110156201170157620116b1818662005af1565b519061271082101562005ab957620116fb916003906001600160a01b03620116da848d62005af1565b5116600052811b016020526200189f60406000205462007de0838a62005af1565b6201169b565b509095919593929360005b83518110156201185c5762011722818762005af1565b5161271081101562005ab9576003906001600160a01b0362011745848862005af1565b5116600052811b016020526201176660406000205462007e4d838862005af1565b9062011773838962005af1565b519161271083101562005ab957620117b7926003906001600160a01b036201179c878b62005af1565b5116600052811b016020526040600020556200189862016483565b620117c3818762005af1565b5161271081101562005ab9576003906001600160a01b03620117e6848c62005af1565b5116600052811b016020526201180760406000205462006f21838862005af1565b91905062011816818862005af1565b519161271083101562005ab95762011856926003906001600160a01b036201183f858e62005af1565b5116600052811b0160205260406000205562005a85565b6201170c565b50936201187691929693506200857062007f3e916201610e565b9260005b835181101562010d3c57806200189f62007a4e62011899938762005af1565b6201187a565b926020840151602681101562003f7c5760050362011a5d576040840190620118d160a0620085d9818551015162005aab565b519282518451036200d5565760005b83518110156201193957620118f6818562005af1565b519061271082101562005ab9576003620119339260018060a01b038a5116600052811b016020526200189f60406000205462007de0838962005af1565b620118e0565b509060005b8351811015620119dc5762011954818562005af1565b5161271081101562005ab95760039060018060a01b03895116600052811b016020526201198c60406000205462007e4d838862005af1565b91906201199a828762005af1565b519061271082101562005ab957620119d69360036200189f9360018060a01b038d5116600052811b016020526040600020556200189862016483565b6201193e565b5094925090620119ec906201610e565b9060405192620119fc8462003e7f565b6001845260203681860137516001600160a01b031662011a1c8462005aab565b526040519462011a2c8662003e9b565b60008652600036813760005b835181101562010d3c57806200189f62007a4e62011a57938762005af1565b62011a38565b926020810151602681101562003f7c5760060362011c155760400162011a8860c08251015162005aab565b519362011a9f60a0620085d9818551015162005aab565b519285518351036200db495785518451036200dafc5760005b865181101562011b1e5762011ace818562005af1565b519061271082101562005ab95762011b18916003906001600160a01b0362011af7848c62005af1565b5116600052811b016020526200189f60406000205462007de0838962005af1565b62011ab8565b509060005b865181101562011bbf5762011b39818562005af1565b5161271081101562005ab9576003906001600160a01b0362011b5c848b62005af1565b5116600052811b0160205262011b7d60406000205462007e4d838862005af1565b919062011b8b828762005af1565b519061271082101562005ab95762011bb9936200189f926003906001600160a01b036201179c878f62005af1565b62011b23565b50949162011bd491935062010cf4906201610e565b916040519462011be48662003e9b565b60008652600036813760005b835181101562010d3c57806200189f62007a4e62011c0f938762005af1565b62011bf0565b6020810151602681101562003f7c5760070362011d28576040019262011c4060c08551015162005aab565b519162011c5260a08651015162005aab565b519451519162011c6a8451875114620018986201637f565b60005b845181101562010d3c5762011d22906200189f6001600160a01b038062011c95848a62005af1565b51166000528660028b62011d1262011cd58762011ccd8162013880978860205262008ae360ff60406000205416156200189862016450565b519362005af1565b519162008b478d6040519662011ceb8862003df8565b60018852886200dc978c60208b01946000865260408c0197885260608c01998a5262005af1565b5191015562008b62838962005af1565b62011c6d565b6020819493940151602681101562003f7c5760080362011dc05760c0604062011d55920151015162005aab565b519160005b835181101562011dae5762011da8906001600160a01b038062011d7e838862005af1565b51166000526201388090816020526200ddb7600160ff6040600020541615151462001898620163af565b62011d5a565b5092602091925062010d509062005a85565b6020810151602681101562003f7c5760090362011e435760c0604062011dea920151015162005aab565b519160005b835181101562011dae5762011e3d906001600160a01b038062011e13838862005af1565b51166000526201388090816020526200dea6600160ff6040600020541615151462001898620163af565b62011def565b6020810151602681101562003f7c57600a0362011ef2576040019062011e7460a06200df3a60c08551015162005aab565b519262011e898351855114620018986201637f565b60005b835181101562011edf5762011ed9906001600160a01b038062011eb0838862005af1565b511660005262013880806020526200dfaa600160ff6040600020541615151462001898620163af565b62011e8c565b509362010d509193506020925062005a85565b602081949392940151602681101562003f7c57600b0362011fa6576040019262011f2160c08551015162005aab565b519351519162011f398551845114620018986201637f565b60005b855181101562011f935762011f8d906200189f6001600160a01b038062011f64848b62005af1565b511660005262013880806020526200e08d600160ff6040600020541615151462001898620163af565b62011f3c565b509350916020915062010d509062005a85565b9091926020820151602681101562003f7c57600c03620120dc576060604083015101519260005b845181101562011edf5760e062011fed8260606040880151015162005af1565b510151156201206c576201200e62008f508260606040880151015162005af1565b62013882548060001981011162005a95576201203060059160001901620069d6565b5001805461ff0019166101001790556201388254906000198201821062005a9557600562008fa5620120669360001901620069d6565b62011fcd565b6201208462008fcf8260606040880151015162005af1565b62013882548060001981011162005a9557620120a66005916000190162006994565b5001805461ff0019166101001790556201388254906000198201821062005a9557600562008fa562012066936000190162006994565b9291906020810151602681101562003f7c57600d03620121f0576040019260206201210c60a08651015162005aab565b51945101519162012121855184511462014d99565b60005b855181101562011f9357806201213f62012198928662005af1565b51156201219e5762012156620090c8828962005af1565b6201216e60ff60056200e2bd620090ea858c62005af1565b6201218660ff600562009103620090ea858c62005af1565b60056200911f620090ea838a62005af1565b62012124565b620121ae62009157828962005af1565b620121c660ff60056200e2bd62009179858c62005af1565b620121de60ff60056200910362009179858c62005af1565b60056200911f62009179838a62005af1565b6020819492940151602681101562003f7c57600e03620122b7576040019060206201222060a08451015162005aab565b51925101519362012235835186511462014d99565b60005b835181101562011f935780620122536201225f928862005af1565b51620122655762005a85565b62012238565b6201227562009215828762005af1565b6201228d60ff60056200e3fc620090ea858a62005af1565b620122a560ff60056200925d620090ea858a62005af1565b600562008fa5620090ea838862005af1565b906020829493940151602681101562003f7c57600f03620123ee576060604083015101519260005b845181101562011edf5760e0620122ff8260606040880151015162005af1565b510151156201237e576201232062008f508260606040880151015162005af1565b62013882548060001981011162005a95576201234260059160001901620069d6565b5001805461ff0019166101001790556201388254906000198201821062005a955760056200911f620123789360001901620069d6565b620122df565b6201239662008fcf8260606040880151015162005af1565b62013882548060001981011162005a9557620123b86005916000190162006994565b5001805461ff0019166101001790556201388254906000198201821062005a955760056200911f62012378936000190162006994565b906020819493940151602681101562003f7c576010036201245f5760400151906201242260a0608084015193015162005aab565b5193620124378351865114620018986201637f565b60005b835181101562011f9357806200189f620093ff62012459938762005af1565b6201243a565b6020819492940151602681101562003f7c57601103620126c457604001906201249360a06200df3a60c08551015162005aab565b5193620124a4835186511462014ca6565b60005b83518110156201251f5762012519906200189f6001600160a01b0380620124cf848962005af1565b51166000526201388580602052620124f260406000205462006f21868d62005af1565b91909262012501868b62005af1565b51166000526020526040600020556200189862016335565b620124a7565b509350906201252e9062015ff2565b90620138865493620125466200815f84518762014cf2565b9060009260005b878110620126a9575060005b855181101562012600576000805b898110620125b1575b501562012589575b620125839062005a85565b62012559565b936201258390620125a8906001600160a01b036200e863888a62005af1565b94905062012578565b620125bc8162005c62565b90546001600160a01b0360039290921b1c811690620125dc858b62005af1565b511614620125f557620125ef9062005a85565b62012567565b505060013862012570565b509550939250620126118262005c0d565b8051906001600160401b03821162003e1457602090620126318362005d7e565b0162013886600052602060002060005b8381106201268b575050505060005b828110620126685750505062010d5060209162005a85565b62012685906200189f6001600160a01b0362001e63838662005af1565b62012650565b82516001600160a01b03168183015560209092019160010162012641565b936200e9b0620126be916200e9928762005c62565b6201254d565b6020819492940151602681101562003f7c576012036201290d5760400190620126f860a06200df3a60c08551015162005aab565b519362012709835186511462014ca6565b60005b83518110156201275d5762012757906200189f6001600160a01b038062012734848962005af1565b51166000526201388580602052620124f260406000205462007e4d868d62005af1565b6201270c565b50935091906201276d9062015ff2565b62013886546201277d8162005c0d565b906000926000915b80831062012833575050506201279b8262005c0d565b8051906001600160401b03821162003e1457602090620127bb8362005d7e565b0162013886600052602060002060005b83811062012815575050505060005b828110620127f25750505062010d5060209162005a85565b6201280f906200189f6001600160a01b0362001e63838662005af1565b620127da565b82516001600160a01b031681830155602090920191600101620127cb565b91956000959193959760005b8551811015620128fe57620128548962005c62565b90546001600160a01b0360039290921b1c81169062012874838962005af1565b5116146201288d57620128879062005a85565b6201283f565b509750956001959391955b80620128cc575b15620128b757620128b09062005a85565b9162012785565b936200e9b0620128b0916200e9928762005c62565b50620128d88162005c62565b60018060a01b0391549060031b1c1660005262013885602052604060002054156201289f565b50979690969593919562012898565b6020810151602681101562003f7c57601303620129665760408091015101519260005b84518110156201295557806200189f620099786201294f938862005af1565b62012930565b5092509062010d5060209162005a85565b6020810151602681101562003f7c5760140362012b1357604001906201299160c08351015162005aab565b5193620129a860a062007887818651015162005aab565b5191620129b986518551146201505a565b620129c88651845114620150c0565b60005b865181101562012abe57620129e1818562005af1565b51620129ee828762005af1565b519061271082101562005ab957600662012a0e9260031b01549062006ce3565b9062012a1b838862005af1565b519161271083101562005ab957600662012a3a9360031b01556201517a565b62012a46818562005af1565b5162012a53828762005af1565b519061271082101562005ab95762012a7c916003906001600160a01b0362010c6f868d62005af1565b919062012a8a828862005af1565b519061271082101562005ab95762012ab8936200189f926003906001600160a01b0362010cc3878f62005af1565b620129cb565b509491509162010cf462012ad2916201610e565b936040519262012ae28462003e9b565b60008452600036813760005b835181101562010d3c57806200189f62007a4e62012b0d938762005af1565b62012aee565b6020810151602681101562003f7c5760150362012b3d57602091926200189f62010d50926201527e565b6020810151602681101562003f7c5760160362012b995760c0604062012b67920151015162005aab565b519260005b8451811015620129555762012b93906200189f6001600160a01b036200a110838962005af1565b62012b6c565b6020810151602681101562003f7c5760170362012bf65760405162461bcd60e51b81526020600482015260296024820152600080516020620169698339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c5760180362012c635760c0604062012c20920151015162005aab565b5192600160ff1962013892541617620138925560005b8451811015620129555762012c5d906200189f6001600160a01b036200a1dd838962005af1565b62012c36565b6020819392930151602681101562003f7c5760190362012d4b5760008080604080940160a08082510151805162012d12575b5050519060e08201519162012cb962006f1a60c060018060a01b0393015162005aab565b511690602083519301915af1903d1562012d09573d9162012cda8362004098565b9262012ce98351948562003eb7565b83523d6000602085013e5b156200a29257505062010d5060209162005a85565b60609162012cf4565b62012d1d9062005aab565b515162012d2c575b8062012c95565b81925062006f1a9062012d429251015162005aab565b51903862012d25565b6020810151602681101562003f7c57601a0362012e455762012d7660a0604080930151015162005aab565b5162012d86600382511462014ca6565b62012d918162005aab565b519162012daa62012da28362005acf565b519262005ae0565b519162012e0b57509162010d50916001602094146000146200a4315762012dda62012de9916201388d5462006ce3565b6201388d5562001898620162d0565b6200189f62012dfc6201388e5462006cd0565b6201388e55620018986201630a565b5162461bcd60e51b8152602060048201526014602482015273496e76616c6964207061796d656e74207479706560601b6044820152606490fd5b6020810151602681101562003f7c57601b036201327d5750919062012e766201388b54620035a86200a4a76201620c565b505062012e82620162d0565b506000805b612710811062013231575b505062012e9e62006cf5565b62012ead6202712a5462005c0d565b906000946000905b61271082101562013224578160031b9460ff60078701541615620130085760009660028701541562012ff757600098975b62005ab957600487015489101562012fdd5762012f07896004890162005d10565b9054600391821b1c6001600160a01b031660008181529189016020526040918290205491999162012f3a90889062006b9b565b9a9062012f46620162d0565b62012f519162005a52565b60009a60028b015462012f649162006b9b565b9062012f6f620162d0565b62012f7a9162005a52565b826000526201388760205281600020549062012f969162006ce3565b90916000205562012fa6620162d0565b62012fb19162005a52565b62012fbd828962005af1565b5262012fc99062005a85565b9862012fd59062005a85565b989762012ee6565b9290955062012fef9196975062005a85565b909462012eb5565b9290955062012fef91965062005a85565b95969392509350505b6201301c8262005c0d565b9160009160005b8281106201318e57505050620138885491620130446200815f848462014cf2565b926000906000905b8082106201317157505060005b838110620130db5750508251929150506001600160401b03821162003e1457602090620130868362005d42565b0162013888600052602060002060005b838110620130bd575050505062010d5060209160006201388d5560006201388e5562005a85565b82516001600160a01b03168183015560209092019160010162013096565b6000805b83811062013129575b501562013101575b620130fb9062005a85565b62013059565b90620130fb9062013120906001600160a01b03620082e7858762005af1565b919050620130f0565b6001600160a01b03806201313e858862005af1565b5116906201314d838a62005af1565b5116146201316657620131609062005a85565b620130df565b5050600138620130e8565b9091620082f56201318791620098cd8562005c45565b906201304c565b6000805b858110620131dc575b5015620131b4575b620131ae9062005a85565b62013023565b92620131ae90620131d3906001600160a01b03620082e7878662005af1565b939050620131a3565b6001600160a01b0380620131f1858762005af1565b51169062013200838a62005af1565b5116146201321957620132139062005a85565b62013192565b50506001386201319b565b9394959291505062013011565b8060039594951b9060ff6007830154161562013273576200a8dd620076dc6200189f946200a8d16201326a9560026200a8c78762006b3e565b93929362012e87565b5093929362012e92565b6020810151602681101562003f7c57601c03620132da5760405162461bcd60e51b81526020600482015260296024820152600080516020620169898339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c57601d0362013300575b5062010d5060209162005a85565b6020810151602681101562003f7c57601e14620132f2576020810151602681101562003f7c57601f036201335157602091620133496200a9ba604062010d509401515162005aab565b9150620132f2565b6020810151602681101562003f7c5760200362013377575b5062010d5060209162013349565b6020810151602681101562003f7c5760211462013369576020810151602681101562003f7c57602203620133cd575062010d5060209160ff196201389254166201389255620133c562005e11565b915062013369565b6020810151602681101562003f7c57602303620133f3575b5062010d50602091620133c5565b6020810151602681101562003f7c57602414620133e5576020810151602681101562003f7c57602514620133e5576020810151602681101562003f7c57601503620109b5576020916201344a62010d50926201527e565b9150620133e5565b82516001600160a01b0316818301556020909201916001016200bb19565b82516001600160a01b0316818301556020909201916001016200b9c4565b600191820180546001600160a01b03909216848601559390910192906200b90c565b62027124600052620134d8906000805160206201692983398151915290810190830162005d29565b386200b8cc565b60018082620134f08294866201392e565b019201920191906200b88b565b62027123600052600080516020620168a9833981519152908282015b81830181106201352b5750506200b84f565b8062013539600192620060f7565b0162013519565b600191820180546001600160a01b03909216848601559390910192906200b81d565b620271226000526201358a906000805160206201688983398151915290810190830162005d29565b386200b7dd565b82516001600160a01b0316818301556020909201916001016200b69f565b620135cb906202711d6000528484600020918201910162005d29565b386200b68e565b82516001600160a01b0316818301556020909201916001016200b4af565b6201360c90620271146000528484600020918201910162005d29565b386200b49e565b80620136359160031b600160ff6007830154161515146201363b575062005a85565b6200b3ee565b6201364f6004820162013897830162013ac7565b6201389a8101600160ff1982541617905580548162013893015560018101546201389482015560028101546201389582015562013695600582016201389883016201392e565b620138996006820154910155386200a431565b6006602082620136bc6001945186620065a1565b019201920191906200b1db565b600681810204810362005a9557600683810204830362005a9557620271156000527f0f9b10e190177c3c56fc6ce7689c8130c567df57aa02c08e7a090a59992adf926006840281015b8260060282018110620137275750506200b1c7565b8060006006925560006001820155620137436002820162006265565b600060038201556201375860048201620060f7565b600060058201550162013712565b60066020826201377a6001945186620065a1565b019201920191906200b14b565b8060060290600682040362005a95578260060260068104840362005a95576000906202711682526020822092830192015b828110620137c85750506200b137565b808260069255826001820155620137e26002820162006265565b826003820155620137f660048201620060f7565b82600582015501620137b8565b608460405162461bcd60e51b815260206004820152604060248201526000805160206201694983398151915260448201527f656d2073686f756c64206e6f742072657475726e20766f7465206e65656465646064820152fd5b60405162461bcd60e51b815260206004820152604760248201526000805160206201694983398151915260448201527f656d2073686f756c64206e6f742072657475726e206120766f74696e672072756064820152661b19481b1a5cdd60ca1b608482015260a490fd5b8181146201392a578154916001600160401b03831162003e1457620138ec838362005e25565b60005260206000209060005260206000208154916000925b84841062013913575050505050565b600180919201938454928185015501929062013904565b5050565b908082146201392a5762013943815462005129565b906001600160401b03821162003e145781906201396d8262013966865462005129565b8662006441565b600090601f8311600114620139a6576000926201399a5750508160011b916000199060031b1c1916179055565b015490503880620064d4565b81526020808220858352818320935090601f1985169083905b828210620139fb575050908460019594939210620139e157505050811b019055565b015460001960f88460031b161c1916905538808062006521565b8495819295850154815560018091019601940190620139bf565b8181146201392a5781549162013a2c838362006188565b6000526020600020906000526020600020906000905b83821062013a505750505050565b8062013a5f600192856201392e565b92810192918101910162013a42565b8181146201392a5781549162013a85838362006216565b6000526020600020906000526020600020906000905b83821062013aa95750505050565b8062013ab860019285620138c6565b92810192918101910162013a9b565b8181146201392a578154916001600160401b03831162003e145762013aed838362005e25565b60005260206000209060005260206000208154916000925b84841062013b14575050505050565b600191820180546001600160a01b039092168486015593909101929062013b05565b8181146201392a5781549162013b4d838362006216565b6000526020600020906000526020600020906000905b83821062013b715750505050565b8062013b806001928562013ac7565b92810192918101910162013b63565b8181146201392a5781549162013ba683836200630c565b6000526020600020906000526020600020906000905b83821062013bca5750505050565b80600191840362013be7575b600780910193019101909162013bbc565b8054845562013c268280860190830160ff9062013c088282541684620063e4565b62013c1a82825460081c1684620063fe565b5460101c16906200641f565b62013c386002808301908601620138c6565b600380850190820180820362013c51575b505062013bd6565b62013c5c9162013a15565b62013c6e600480830190860162013a6e565b62013c80600580830190860162013b36565b62013c9260068083019086016201392e565b388062013c49565b919062006a4f5780820362013cad575050565b60ff600580620052aa9462013cc68486541682620063cb565b6001850154600182015562013ce2600286016002830162013b8f565b6003850154600382015562013cfe60048601600483016201392e565b01920162013d1082825416846200655e565b62013d2282825460081c16846200656f565b5460101c169062006587565b908082146201392a57908154906000915b6064831062013d4e5750505050565b600180919401928354948184015501919262013d3f565b906201388254602060009301908151519062013d818262003edb565b9162013d91604051938462003eb7565b80835262013da2601f199162003edb565b0136602084013762013db78351518262006b9b565b9015620141215762013dc99062005c0d565b90859284515115620141185762013de08262005c0d565b965b85515181101562013f615760008080805b86811062013e785750905062013e158162013e0f858762005af1565b6200534e565b600681101562003f7c5760031462013e3a575b5062013e349062005a85565b62013de2565b6000905b80821062013e4d575062013e28565b9095620098eb62013e719162013e64898d62005af1565b5162001f35828a62005af1565b9062013e3e565b62013e918162013e8a878d5162005af1565b516201453a565b9390948083118062013f4d575b1562013f0457505091838562013efa575b600681101562003f7c5760038e911462013eda575b505062013ed19062005a85565b91909162013df3565b9462013ef19162001f358262013ed1959862005af1565b93908c62013ec4565b6000955062013eaf565b809492959195148062013f39575b1562013ec457600681101562003f7c5760038e911462013eda57505062013ed19062005a85565b50600681101562003f7c5780151562013f12565b50600686101562003f7c5785151562013e9e565b5093505090929350600093845b8351861015620140b35762013f8e62013f88878662005af1565b620063bd565b9060068083101562003f7c57600292830362013fb957505062013fb2909562005a85565b9462013f6e565b62013fc962013f88898862005af1565b928184101562003f7c576001809414806201409f575b1562013ff45750505062013fb2909562005a85565b6201400962013f888a899b9694959b62005af1565b928084101562003f7c576004809414928362014073575b508262014048575b50506201403c575b5062013fb29062005a85565b955062013fb262014030565b9091508810156201405e57871415388062014028565b602182634e487b7160e01b6000525260246000fd5b908093508a10156201408a57891415913862014020565b602184634e487b7160e01b6000525260246000fd5b508183101562003f7c578083141562013fdf565b925092909350600682101562003f7c57600382036201410f575b620140d88162005c0d565b9360005b828110620140eb575050509190565b80620140fc62014109928462005af1565b5162001f35828962005af1565b620140dc565b506000620140cd565b50909392505050565b60405162461bcd60e51b815260206004820152602a60248201527f546865206c656e677468206f6620766f74696e672072756c65206c697374206960448201526973206f766572666c6f7760b01b6064820152608490fd5b9062013883546020600093019081515190620141958262003edb565b91620141a5604051938462003eb7565b808352620141b6601f199162003edb565b01366020840137620141cb8351518262006b9b565b90156201412157620141dd9062005c0d565b908592845151156201411857620141f48262005c0d565b965b855151811015620143625760008080805b8681106201427957509050620142238162013e0f858762005af1565b600681101562003f7c5760031462014248575b50620142429062005a85565b620141f6565b6000905b8082106201425b575062014236565b9095620098eb620142729162013e64898d62005af1565b906201424c565b62014292816201428b878d5162005af1565b51620145d6565b939094808311806201434e575b1562014305575050918385620142fb575b600681101562003f7c5760038e9114620142db575b5050620142d29062005a85565b91909162014207565b94620142f29162001f3582620142d2959862005af1565b93908c620142c5565b60009550620142b0565b80949295919514806201433a575b15620142c557600681101562003f7c5760038e9114620142db575050620142d29062005a85565b50600681101562003f7c5780151562014313565b50600686101562003f7c578515156201429f565b5093505090929350600093845b835186101562014484576201438962013f88878662005af1565b9060068083101562003f7c576002928303620143b4575050620143ad909562005a85565b946201436f565b620143c462013f88898862005af1565b928184101562003f7c5760038094148062014470575b15620143ef57505050620143ad909562005a85565b6201440462013f888a899b9694959b62005af1565b928084101562003f7c576005809414928362014459575b508262014443575b505062014437575b50620143ad9062005a85565b9550620143ad6201442b565b90915088101562003f7c57871415388062014423565b908093508a101562003f7c5789141591386201441b565b508183101562003f7c5780831415620143da565b925092909350600682101562003f7c5760038203620144d3575b620144a98162005c0d565b9360005b828110620144bc575050509190565b80620140fc620144cd928462005af1565b620144ad565b5060006201449e565b15620144e457565b60405162461bcd60e51b815260206004820152602860248201527f506c7567696e466163746f72793a20706c7567696e20696e646578206f7574206044820152676f662072616e676560c01b6064820152608490fd5b90916000809381936201455362013882548310620144dc565b60ff60056201456284620069d6565b50015460081c1615620145ca5782826201457e92600162014763565b6201458a575b50929190565b80945060019293506201459e9150620069d6565b500154906003620145bf60ff620145b586620069d6565b50541694620069d6565b500154913862014584565b50509150915080918190565b9091600080938193620145ef62013883548310620144dc565b60ff6005620145fe8462006994565b50015460081c1615620145ca57828262014619928262014763565b620146245750929190565b809450600192935062014638915062006994565b500154906003620145bf60ff6201464f8662006994565b5054169462006994565b156201466157565b60405162461bcd60e51b815260206004820152603160248201527f436865636b696e6720636f6e646974696f6e206578703a20706c7567696e20696044820152706e646578206f7574206f662072616e676560781b6064820152608490fd5b15620146c857565b60405162461bcd60e51b815260206004820152602f60248201527f436865636b696e6720636f6e646974696f6e206578703a206e6f646520696e6460448201526e6578206f7574206f662072616e676560881b6064820152608490fd5b62013884805482101562005ab9576000526007602060002091020190600090565b805482101562005ab9576000526007602060002091020190600090565b90929190801562014ad2576201477f6201388254831062014659565b6201479b60026201479084620069d6565b5001548410620146c0565b801562014ab457620147cb6001620147c2856002620147ba87620069d6565b500162014746565b50015460ff1690565b620147d68162004dc4565b80620147e6575050505050600090565b620147f18162004dc4565b6003810362014804575050505050600190565b6201480f8162004dc4565b6004810362014822575050505050600090565b6201482d8162004dc4565b60019080820362014846575050926200553f9362014afa565b909293620148548262004dc4565b60028092146201486a575b505050505050600090565b821562014a97576201489384620148878385620147ba8a620069d6565b50015460081c60ff1690565b925b60009586865b62014a25575b50620148ad8762005c0d565b9760005b888110620149c8575050505050620148c98262003f71565b8183036201492857505091906000915b818310620148e75750505090565b9091928062014905575b620148fd909362005a85565b9190620148d9565b50620148fd620149206201491a858462005af1565b51151590565b9050620148f1565b909150620149368262003f71565b81036201498f57509060009182915b818310620149535750505090565b909192801562014972575b6201496a909362005a85565b919062014945565b506201496a620149876201491a858462005af1565b90506201495e565b600391506201499e8162003f71565b14620149b157503880808080806201485f565b620149c46201491a6200553f9262005aab565b1590565b808a62014a04620149fb620149f1848b620149e98c82620147ba8d62006994565b500162005d10565b90549060031b1c90565b86868962014763565b62014a1862014a1f946200189f9362005af1565b9015159052565b620148b1565b8462014a378582620147ba8662006994565b50015481101562014a915762014a5d620149f18287620149e98882620147ba8962006994565b62014a76575b62014a6f879162005a85565b906201489b565b9662014a6f62014a87889262005a85565b9891505062014a63565b620148a1565b62014aad84620148878385620147ba8a62006994565b9262014895565b62014acc6001620147c2856002620147ba8762006994565b620147cb565b62014ae36201388354831062014659565b62014af46002620147908462006994565b6201479b565b909291600362014b4c918360001462014bd45760ff600162014b23876002620147ba86620069d6565b50015460101c16945b841562014bc3576002620147ba62014b4493620069d6565b50016200547e565b91603d81101562003f7c57602c810362014b9357505062014b7662006f1a60208093015162005aab565b51910151602681101562003f7c5762014b8f906201651b565b1490565b9092906001810362014ba85750505050600090565b60031462014bb857505050600090565b6200553f9262014c44565b6002620147ba62014b449362006994565b60ff600162014bea876002620147ba8662006994565b50015460101c169462014b2c565b1562014c0057565b606460405162461bcd60e51b815260206004820152602060248201527f4f70657261746f722061646472657373206973206e6f742070726f76696465646044820152fd5b9190604062006f1a920162014c5e60018251511462014bf8565b62014c79600162014c70835162005aab565b51511462014bf8565b516001600160a01b0392839162014c91919062005aab565b5116921562014ca05751161490565b51161490565b1562014cae57565b60405162461bcd60e51b815260206004820152601c60248201527b496e76616c6964206e756d626572206f6620706172616d657465727360201b6044820152606490fd5b9190820180921162005a9557565b62014d0b8162004dc4565b62014d196200e667620164b2565b62014d248162004dc4565b6001810362014d43575062014d3c6200e693620164b2565b6201388b55565b62014d4e8162004dc4565b6002810362014d5f57506201388c55565b62014d6a8162004dc4565b6003810362014d7b57506201388d55565b8062014d8960049262004dc4565b1462014d925750565b6201388e55565b1562014da157565b60405162461bcd60e51b815260206004820152604d60248201527f546865206c656e677468206f662074686520706c7567696e20696e646578657360448201527f20617272617920616e642074686520626f6f6c65616e206172726179206d757360648201526c74206265207468652073616d6560981b608482015260a490fd5b1562014e2a57565b60405162461bcd60e51b815260206004820152602260248201527f496e76616c696420706c7567696e20696e64657820746f20626520656e61626c604482015261195960f21b6064820152608490fd5b1562014e8257565b60405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c6564206973206e6f742060448201526a1a5b9a5d1a585b1a5e995960aa1b6064820152608490fd5b1562014ee357565b60405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c656420697320616c726560448201526a18591e48195b98589b195960aa1b6064820152608490fd5b1562014f4457565b60405162461bcd60e51b815260206004820152602360248201527f496e76616c696420706c7567696e20696e64657820746f2062652064697361626044820152621b195960ea1b6064820152608490fd5b1562014f9d57565b60405162461bcd60e51b815260206004820152602c60248201527f54686520706c7567696e20746f2062652064697361626c6564206973206e6f7460448201526b081a5b9a5d1a585b1a5e995960a21b6064820152608490fd5b1562014fff57565b60405162461bcd60e51b815260206004820152602d60248201527f54686520706c7567696e20746f2062652064697361626c656420697320616c7260448201526c1958591e48191a5cd8589b1959609a1b6064820152608490fd5b156201506257565b60405162461bcd60e51b815260206004820152603060248201527f546865206c656e677468206f662074617267657420616e6420746f6b656e436c60448201526f185cdcc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b15620150c857565b60405162461bcd60e51b815260206004820152602c60248201527f546865206c656e677468206f662074617267657420616e6420616d6f756e742060448201526b1a5cc81b9bdd08195c5d585b60a21b6064820152608490fd5b156201512a57565b60405162461bcd60e51b815260206004820152602260248201527f54686520746f6b656e20636c617373206973206e6f7420696e697469616c697a604482015261195960f21b6064820152608490fd5b156201518257565b60405162461bcd60e51b815260206004820152602960248201527f54686520746f74616c20737570706c79206f662074686520746f6b656e206973604482015268206f766572666c6f7760b81b6064820152608490fd5b15620151e157565b60405162461bcd60e51b8152602060048201526024808201527f5468652062616c616e6365206f662074686520746f6b656e206973206f766572604482015263666c6f7760e01b6064820152608490fd5b156201523a57565b606460405162461bcd60e51b815260206004820152602060248201527f54686520746f6b656e20697320616c726561647920696e697469616c697a65646044820152fd5b60408101906201529360c08351015162005aab565b5191620152b560a0620152aa818451015162005aab565b519251015162005acf565b5193620152ca8451835114620018986201637f565b620152dd8451865114620018986201637f565b60005b84518110156201533a57620152f6818462005af1565b519061271082101562005ab957620153349160018060a01b03865116600052600390811b016020526200189f60406000205462007de0838a62005af1565b620152e0565b5092919360005b8351811015620154655762015357818462005af1565b5190612710918281101562005ab95760018060a01b03908189511660005260039081602091811b0181526201539760406000205462007e4d868962005af1565b90620153a4868a62005af1565b51918783101562005ab95784620153d193878f5116600052811b0184526040600020556200189862016483565b620153dd848862005af1565b518581101562005ab957829084620153f6878c62005af1565b5116600052811b0181526201541660406000205462006f21868962005af1565b91909262015425868a62005af1565b519687101562005ab9576201545f966200189f9562015445888d62005af1565b5116600052811b01905260406000205562001898620164e8565b62015341565b505062010cf462015476916201610e565b9060405193620154868562003e7f565b60018552602036818701376001600160a01b03610960819052905116620154ad8562005aab565b526000935b8151851015620157d057620154c8858362005af1565b5194620154d6845162005c0d565b91600093620154e6825162005c0d565b610920528496855b87518110156201558f5762015515610960516201550c838b62005af1565b51168b62015edb565b158062015557575b62015534575b6201552e9062005a85565b620154ee565b956201554e6201552e91610960516200a7568a8c62005af1565b96905062015523565b506127108a101562005ab9576109605162015573828a62005af1565b511660005260038a811b0160205260406000205415156201551d565b509793929096949195976000986127108610159560031b9860038a019a5b895181101562015629578762005ab95761096051620155cd828c62005af1565b51166000528b60205260406000205415620155f4575b620155ee9062005a85565b620155ad565b9762015620620155ee918b6201560f8c610960519262005af1565b511662001f35826109205162005af1565b989050620155e3565b50949591939650985096909596806109805262005ab957600401806109005254956201565a6200815f868962014cf2565b61094052600097886108e0525b6109805162005ab9576108e05188811015620157055762015696620156ac916000610980526109005162005d10565b6109605191549060031b1c166109205162015f9d565b15620156cb575b620156c16108e05162005a85565b6108e05262015667565b97620156fe90620156e36108e0516109005162005d10565b6109605191549060031b1c1662001f35826109405162005af1565b97620156b3565b5095939096509690969391936000915b8383106201579f57505050506109805162005ab95761094051516001600160401b03811162003e14576201574d816109005162005e25565b60206109405101610900516000526020600020600061096051905b84811062015788575050505050620157809062005a85565b9392620154b2565b600190602083865116950194818501550162015768565b620082f5620157c99161096051620157b8868662005af1565b511662001f35826109405162005af1565b9162015715565b5050509050565b815180519192916001600160401b03811162003e1457620157f9818562005e25565b6020809201846000528260002060005b83811062015870575050505060c082600692620052aa95940151600185015560408101516002850155606081015160038501556201585160808201511515600486016200655e565b6201586460a0820151600586016200648b565b0151151591016200655e565b8251828201559184019160010162015809565b620138848054600160401b81101562003e1457620158a79160018201905562014725565b91909162006a4f57620052aa91620157d7565b62013890908154600160401b81101562003e14576001810180845581101562005ab957620052aa926000526020600020016200648b565b9080620158fc575050565b620052aa91600052601f6020600020910160051c81019062005d29565b90600160401b811162003e145781548183558082106201593857505050565b620052aa92600052601f6020600020918180850160051c840194168062015967575b500160051c019062005d29565b600019908186019182549160200360031b1c169055386201595a565b9060031b60ff811b9283911b169119161790565b600092620159b1620159aa859462014725565b50620052c7565b9380935b85515185101562015a9f575061271084101562005ab95760039380851b9460018060a01b03851660005260209086018152620159fe604096600188600020549101549062006b9b565b9384911562015a6a579062015a139162006ce3565b96901562015a3057505062015a289062005a85565b9390620159b5565b60649250519062461bcd60e51b825260048201526014602482015273746f74616c20706f776572206f766572666c6f7760601b6044820152fd5b875162461bcd60e51b815260048101849052600e60248201526d706f776572206f766572666c6f7760901b6044820152606490fd5b93505092505090565b1562015ab057565b60405162461bcd60e51b815260206004820152601360248201527263757272656e74596573206f766572666c6f7760681b6044820152606490fd5b600162015af88262014725565b5001546202712e546000928184526202712b908160205262015b21816004604088200162005d10565b90549060031b1c918386528060205262015b42826005604089200162005d10565b90549060031b1c93865260205260ff600662015b7662015b68848360408b200162005d10565b90549060031b1c9362014725565b5001541662015bc4575062015bb4926200044f62015ba6938362015b9e62015bac9562006b65565b969062015aa8565b62014cf2565b929062015aa8565b111562015bbe5790565b50600190565b6200fc27925062015bb49362015bde62015bac9362006b65565b949062015aa8565b9092919262015bf6825162005c0d565b60009162015c05815162005c0d565b8390845b865181101562015ca0576001600160a01b0362015c2c816201550c848b62005af1565b158062015c6b575b62015c4c575b5062015c469062005a85565b62015c09565b819662015c6391620082e762015c46948b62005af1565b959062015c3a565b506127108a101562005ab9578062015c84838a62005af1565b511660005260038a811b01602052604060002054151562015c34565b509295919694509260005b875181101562015d215761271086101562005ab9576001600160a01b038062015cd5838b62005af1565b5116600052600387811b016020526040600020541562015d02575b5062015cfc9062005a85565b62015cab565b819562015d19916200e86362015cfc948c62005af1565b949062015cf0565b509250945092612710831015938462005ab95760049586600395861b019687549462015d526200815f828862014cf2565b9460009689889a5b62015ec657818b101562015dfb57506000998b62015d9562015d7d838362005d10565b90546001600160a01b0392918e1b1c82168a62015f9d565b1562015db8575b50509062015dad8b94939262005a85565b9a9091929362015d5a565b91998c95949392909162015dce908c9062005d10565b9054908d1b1c1662015de1828b62005af1565b5262015ded9062005a85565b9890919293508b3862015d9c565b9697949a98505091975092506000915b83831062015ea1575050505062015e8c578051926001600160401b03841162015e77575062015e3b838362005e25565b602080910191600052806000209060005b84811062015e5b575050505050565b83516001600160a01b0316838201559281019260010162015e4c565b604190634e487b7160e01b6000525260246000fd5b603283634e487b7160e01b6000525260246000fd5b62015ebf90620082f5906001600160a01b036200a756868662005af1565b9162015e0b565b603285634e487b7160e01b6000525260246000fd5b9060005b61271083101562005ab9576003600484821b01805483101562015f3a578262015f089162005d10565b9054911b1c6001600160a01b039081169083161462015f325762015f2c9062005a85565b62015edf565b505050600190565b5050505050600090565b9060005b61271083101562005ab95760036201389784821b01805483101562015f3a578262015f739162005d10565b9054911b1c6001600160a01b039081169083161462015f325762015f979062005a85565b62015f48565b9060005b825181101562015fdc576001600160a01b038062015fc0838662005af1565b51169083161462015f325762015fd69062005a85565b62015fa1565b505050600090565b801562005a95576000190190565b9081519060005b60001983810184811162005a9557821015620160c0576001820180831162005a95575b84811062016037575050620160319062005a85565b62015ff9565b6001600160a01b03806201604c858962005af1565b5116816201605b848a62005af1565b51161462016076575b50620160709062005a85565b6201601c565b828692960182811162005a95576201607092620160b9926201609d620160b2938b62005af1565b5116620160ab898b62005af1565b5262015fe4565b9562015fe4565b9062016064565b505090620160ce8162005c0d565b9060005b818110620160e1575090925050565b62016108906001600160a01b03620160fa828862005af1565b511662001f35828662005af1565b620160d2565b80519160005b60001984810185811162005a9557821015620161c6576001820180831162005a95575b858110620161525750506201614c9062005a85565b62016114565b6201615e838662005af1565b516201616b828762005af1565b511462016184575b6201617e9062005a85565b62016137565b948181019080821162005a9557620161b7620161be91620161aa6201617e948962005af1565b51620160ab8a8a62005af1565b9662015fe4565b905062016173565b50509091620161d58162005c0d565b9060005b818110620161e8575090925050565b80620161f962016206928762005af1565b5162001f35828662005af1565b620161d9565b6040516201621a8162003df8565b604481527f496e76616c6964206469766964656e64207065726d797269616420706572207460208201527f72616e73616374696f6e2e2053686f756c64206265206c657373207468616e206040820152630313030360e41b606082015290565b604051620162888162003e63565b603281527f4e6f20656e6f756768206e756d626572206f66207472616e73616374696f6e7360208201527108199bdc88191a5d9a59195b991cc81e595d60721b604082015290565b604051620162de8162003e7f565b601c81527b6469766964656e6473206f7065726174696f6e206f766572666c6f7760201b602082015290565b604051620163188162003e7f565b600d81526c2ab735b737bbb71022b93937b960991b602082015290565b604051620163438162003e63565b602681527f4572726f7220696e20776974686472617761626c6520636173682063616c63756020820152653630ba34b7b760d11b604082015290565b6040516201638d8162003e7f565b6012815271496e76616c696420506172616d657465727360701b602082015290565b604051620163bd8162003e7f565b601581527413595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b602082015290565b604051620163f08162003e7f565b601781527613595b58995c881a5cc81b9bdd081cdd5cdc195b991959604a1b602082015290565b604051620164258162003e7f565b601b81527a13595b58995c881a5cc8185b1c9958591e481cdd5cdc195b991959602a1b602082015290565b6040516201645e8162003e7f565b60158152744d656d62657220616c72656164792065786973747360581b602082015290565b604051620164918162003e7f565b60118152704e6f20656e6f7567682062616c616e636560781b602082015290565b604051620164c08162003e7f565b6018815277125b9d985b1a59081c185c985b595d195c881d1bc81cd95d60421b602082015290565b604051620164f68162003e7f565b6015815274546f6b656e20616d6f756e74206f766572666c6f7760581b602082015290565b602681101562003f7c57801562016709576001811462015bbe5760028114620167035760038114620166fd5760048114620166f75760058114620166f15760068114620166eb5760078114620166e55760088114620166df5760098114620166d957600a8114620166d357600b8114620166cd57600c8114620166c757600d8114620166c157600e8114620166bb57600f8114620166b55760108114620166af5760118114620166a95760128114620166a357601381146201669d57601481146201669757601581146201669157601881146201668b57601781146201668557601981146201667f57601a81146201667957601b81146201667357601c81146201666d57601d81146201666757601e81146201666157601f81146201665b576020811462016655576021146201665057600090565b602190565b50602090565b50601f90565b50601e90565b50601d90565b50601c90565b50601b90565b50601a90565b50601990565b50601790565b50601690565b50601590565b50601490565b50601390565b50601290565b50601190565b50601090565b50600f90565b50600e90565b50600d90565b50600c90565b50600b90565b50600a90565b50600990565b50600890565b50600790565b50600690565b50600590565b50600490565b50600390565b50600290565b50600090565b90815181101562005ab9570160200190565b60405190620167308262003e63565b60288252604036602084013760005b601481106201674d57505090565b60139080820391821162005a9557600382901b916001600160fd1b0381160362005a955760ff80831162005a9557600192620167969084901b6001600160a01b03861662005e5f565b60f081168282160391821162005a9557620167ba9060f41b600f60f81b1662016823565b82841b916001600160ff1b038416840362005a9557620167f79160001a620167e384896201670f565b5360f81b6001600160f81b03191662016823565b92810180911162005a9557620168166201681d9360001a91866201670f565b5362005a85565b6201673f565b60f81c600a8110156201684c5760300160ff811162005a955760f81b6001600160f81b03191690565b60570160ff811162005a955760f81b6001600160f81b0319169056fe546865206c656e677468206f662061646472657373657320616e6420746f6b651f4fe3ad533e3985b88710ce05a205152f02825e155777f3bcb8b3bbfcfb03a24ad859a97f543436e70c22b09d31fb4c7b9e987d7a008c98817c9b50a97b1224546865206c656e677468206f6620746f6b656e436c61737320616e6420746f6b546865206c656e677468206f6620746f6b656e496e666f20616e6420746f6b658e71c125ecfe4aeed61c8cf4b09183dd0bf2a3230d826486f04e5f6f0de58e2c18baa939e2e21be0e012ec26e9ec87e9e6faa065bd9f5835250457786300ece8546865206265666f7265206f7065726174696f6e20706c7567696e20737973745265736572766564206f70636f6465206964203233206973206e6f7420696d705265736572766564206f70636f6465206964203238206973206e6f7420696d70546865206c656e677468206f662061646472657373657320616e6420616d6f75a26469706673582212201f2bb79a682df659a5922dbdcdc08d51de62b1538a4c40a328e1be2b81a12e7f64736f6c63430008110033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/darc-js/src/types/basicTypes.ts b/darc-js/src/types/basicTypes.ts index c9f5169..a459324 100644 --- a/darc-js/src/types/basicTypes.ts +++ b/darc-js/src/types/basicTypes.ts @@ -47,7 +47,6 @@ export type NodeParamStruct = { STRING_ARRAY: PromiseOrValue[]; UINT256_2DARRAY: PromiseOrValue[][]; ADDRESS_2DARRAY: PromiseOrValue[][]; - STRING_2DARRAY: PromiseOrValue[][]; BYTES: PromiseOrValue; }; @@ -61,7 +60,6 @@ export type NodeParamStructOutput = [ STRING_ARRAY: string[]; UINT256_2DARRAY: BigNumber[][]; ADDRESS_2DARRAY: string[][]; - STRING_2DARRAY: string[][]; BYTES: string; }; diff --git a/darc-protocol/contracts/protocol/MachineStateManager.sol b/darc-protocol/contracts/protocol/MachineStateManager.sol index ae89aae..bc4efb9 100644 --- a/darc-protocol/contracts/protocol/MachineStateManager.sol +++ b/darc-protocol/contracts/protocol/MachineStateManager.sol @@ -97,7 +97,7 @@ contract MachineStateManager { new string[](0), new uint256[][](0), new address[][](0), - new string[][](0), + //new string[][](0), new bytes(0) ) ); diff --git a/darc-protocol/contracts/protocol/Opcodes.sol b/darc-protocol/contracts/protocol/Opcodes.sol index 493e0c8..1052d46 100644 --- a/darc-protocol/contracts/protocol/Opcodes.sol +++ b/darc-protocol/contracts/protocol/Opcodes.sol @@ -278,7 +278,7 @@ enum EnumOpcode { /** * @notice Add storage IPFS hash to the storage list permanently - * @paran STRING_2DARRAY[0] address: the address to set approval for all cash withdraw operations + * @paran STRING_ARRAY[0][0] address: the address to set approval for all cash withdraw operations * ID:31 */ ADD_STORAGE_IPFS_HASH, diff --git a/darc-protocol/contracts/protocol/Plugin/Plugin.sol b/darc-protocol/contracts/protocol/Plugin/Plugin.sol index a1399b0..39e8e54 100644 --- a/darc-protocol/contracts/protocol/Plugin/Plugin.sol +++ b/darc-protocol/contracts/protocol/Plugin/Plugin.sol @@ -96,12 +96,9 @@ enum EnumPluginParamType { * Each expression node has a list of uint256, */ struct NodeParam { - // uint256[] UINT256_ARRAY; - // address[] ADDRESS_ARRAY; string[] STRING_ARRAY; uint256[][] UINT256_2DARRAY; address[][] ADDRESS_2DARRAY; - string[][] STRING_2DARRAY; bytes BYTES; } diff --git a/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol b/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol index 6570206..81e0eba 100644 --- a/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol +++ b/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol @@ -11,6 +11,6 @@ import "../../protocol/Runtime/Executable/Executable.sol"; contract PluginJudgementTest is Executable { function testPluginJudgement() public { - + uint256[] memory input = new uint256[](1); } } \ No newline at end of file diff --git a/darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts b/darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts index cf1ac5e..5935421 100644 --- a/darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts +++ b/darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts @@ -53,7 +53,6 @@ describe("test for multi DARC call test", function () { STRING_ARRAY: [], UINT256_2DARRAY: [], ADDRESS_2DARRAY: [ [darc1.address] ], // if operator === darc1.address - STRING_2DARRAY: [], BYTES: [], } }; diff --git a/darc-protocol/test/MultiDARCTest/Multi_DARC_call_with_payment_test.ts b/darc-protocol/test/MultiDARCTest/Multi_DARC_call_with_payment_test.ts index aaea9da..4f51bc3 100644 --- a/darc-protocol/test/MultiDARCTest/Multi_DARC_call_with_payment_test.ts +++ b/darc-protocol/test/MultiDARCTest/Multi_DARC_call_with_payment_test.ts @@ -19,7 +19,7 @@ const target3 = '0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65'; const target4 = '0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199'; -describe.only("test for multi DARC call test with payment", function () { +describe("test for multi DARC call test with payment", function () { it ("should let DARC1 execute program on DARC2 successfully with payment", async function () { @@ -53,7 +53,6 @@ describe.only("test for multi DARC call test with payment", function () { STRING_ARRAY: [], UINT256_2DARRAY: [], ADDRESS_2DARRAY: [ [darc1.address] ], // if operator === darc1.address - STRING_2DARRAY: [], BYTES: [], } }; diff --git a/darc-protocol/test/operationUnitTest/batch_add_and_enable_plugin_test.ts b/darc-protocol/test/operationUnitTest/batch_add_and_enable_plugin_test.ts index 09e18bd..28b1601 100644 --- a/darc-protocol/test/operationUnitTest/batch_add_and_enable_plugin_test.ts +++ b/darc-protocol/test/operationUnitTest/batch_add_and_enable_plugin_test.ts @@ -72,7 +72,6 @@ describe("test for batch add and enable plugins", function () { STRING_ARRAY: [], UINT256_2DARRAY: [], ADDRESS_2DARRAY: [ ["0x70997970C51812dc3A010C7d01b50e0d17dc79C8"] ], - STRING_2DARRAY: [], BYTES: [], } }; From a1663a1da01eb6c5d9bb695014c4f03d0d42eec6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AB=8B=E5=85=9A=20Lidang?= Date: Sun, 24 Dec 2023 10:58:18 -0600 Subject: [PATCH 03/14] update --- .../PluginJudgementTest.sol | 4 +- darc-protocol/scripts/getABI.ts | 2 +- .../MultiDARCTest/Multi_DARC_call_test.ts | 6 +-- .../Multi_DARC_call_with_payment_test.ts | 6 +-- .../batch_add_and_enable_plugin_test.ts | 2 +- .../batch_add_membership_test.ts | 2 +- .../batch_add_withdrawable_balances_test.ts | 2 +- .../batch_burn_tokens_from_test.ts | 2 +- .../batch_burn_tokens_test.ts | 2 +- .../batch_create_token_class_test.ts | 2 +- .../batch_mint_token_test.ts | 2 +- .../batch_pay_to_mint_tokens_test.ts | 2 +- .../batch_pay_to_transfer_tokens_test.ts | 2 +- .../batch_transfer_tokens.ts | 2 +- .../batch_transfer_tokens_from_to.ts | 2 +- .../call_contract_abi_test.ts | 2 +- .../operationUnitTest/offer_dividends_test.ts | 2 +- .../paymentUnitTest/payment_pay_cash_test.ts | 2 +- .../pluginJudgementContractTest.ts | 37 +++++++++++++++++++ .../test/withdrawTest/withdrawCashTest.ts | 2 +- .../test/withdrawTest/withdrawDividendTest.ts | 2 +- 21 files changed, 61 insertions(+), 26 deletions(-) create mode 100644 darc-protocol/test/pluginJudgementContractTest/pluginJudgementContractTest.ts diff --git a/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol b/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol index 81e0eba..3d70a5f 100644 --- a/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol +++ b/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol @@ -1,6 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.9; - import "../../protocol/Runtime/Executable/Executable.sol"; /** @@ -10,7 +9,6 @@ import "../../protocol/Runtime/Executable/Executable.sol"; */ contract PluginJudgementTest is Executable { - function testPluginJudgement() public { - uint256[] memory input = new uint256[](1); + function test() public { } } \ No newline at end of file diff --git a/darc-protocol/scripts/getABI.ts b/darc-protocol/scripts/getABI.ts index af1c9a2..2bc514a 100644 --- a/darc-protocol/scripts/getABI.ts +++ b/darc-protocol/scripts/getABI.ts @@ -9,7 +9,7 @@ async function main(){ const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); diff --git a/darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts b/darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts index 5935421..a855f32 100644 --- a/darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts +++ b/darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts @@ -26,21 +26,21 @@ describe("test for multi DARC call test", function () { // create darc1 contract, deploy it and initialize it const DARC1 = await ethers.getContractFactory("DARC"); const darc1 = await DARC1.deploy(); - console.log("DARC1 address: ", darc1.address); + // console.log("DARC1 address: ", darc1.address); await darc1.deployed(); await darc1.initialize(); // create darc2 contract, deploy it and initialize it const DARC2 = await ethers.getContractFactory("DARC"); const darc2 = await DARC2.deploy(); - console.log("DARC2 address: ", darc2.address); + // console.log("DARC2 address: ", darc2.address); await darc2.deployed(); await darc2.initialize(); const signer1 = ethers.provider.getSigner(target1); const darc2_with_signer1 = (await ethers.getContractFactory("DARC")).attach(darc2.address).connect(signer1); - console.log("Current darc2 with signer's signer address is " + JSON.stringify(await darc2_with_signer1.signer.getAddress())); + //console.log("Current darc2 with signer's signer address is " + JSON.stringify(await darc2_with_signer1.signer.getAddress())); // let DARC2 to accept any program from DARC1 const node_allow_signer1_target1: ConditionNodeStruct = { diff --git a/darc-protocol/test/MultiDARCTest/Multi_DARC_call_with_payment_test.ts b/darc-protocol/test/MultiDARCTest/Multi_DARC_call_with_payment_test.ts index 4f51bc3..9c2e488 100644 --- a/darc-protocol/test/MultiDARCTest/Multi_DARC_call_with_payment_test.ts +++ b/darc-protocol/test/MultiDARCTest/Multi_DARC_call_with_payment_test.ts @@ -26,21 +26,21 @@ describe("test for multi DARC call test with payment", function () { // create darc1 contract, deploy it and initialize it const DARC1 = await ethers.getContractFactory("DARC"); const darc1 = await DARC1.deploy(); - console.log("DARC1 address: ", darc1.address); + // console.log("DARC1 address: ", darc1.address); await darc1.deployed(); await darc1.initialize(); // create darc2 contract, deploy it and initialize it const DARC2 = await ethers.getContractFactory("DARC"); const darc2 = await DARC2.deploy(); - console.log("DARC2 address: ", darc2.address); + // console.log("DARC2 address: ", darc2.address); await darc2.deployed(); await darc2.initialize(); const signer1 = ethers.provider.getSigner(target1); const darc2_with_signer1 = (await ethers.getContractFactory("DARC")).attach(darc2.address).connect(signer1); - console.log("Current darc2 with signer's signer address is " + JSON.stringify(await darc2_with_signer1.signer.getAddress())); + //console.log("Current darc2 with signer's signer address is " + JSON.stringify(await darc2_with_signer1.signer.getAddress())); // let DARC2 to accept any program from DARC1 const node_allow_signer1_target1: ConditionNodeStruct = { diff --git a/darc-protocol/test/operationUnitTest/batch_add_and_enable_plugin_test.ts b/darc-protocol/test/operationUnitTest/batch_add_and_enable_plugin_test.ts index 28b1601..c1a9ac1 100644 --- a/darc-protocol/test/operationUnitTest/batch_add_and_enable_plugin_test.ts +++ b/darc-protocol/test/operationUnitTest/batch_add_and_enable_plugin_test.ts @@ -22,7 +22,7 @@ describe("test for batch add and enable plugins", function () { const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); diff --git a/darc-protocol/test/operationUnitTest/batch_add_membership_test.ts b/darc-protocol/test/operationUnitTest/batch_add_membership_test.ts index 3b45f07..3a01638 100644 --- a/darc-protocol/test/operationUnitTest/batch_add_membership_test.ts +++ b/darc-protocol/test/operationUnitTest/batch_add_membership_test.ts @@ -13,7 +13,7 @@ describe("batch_add_membership_test", function () { const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); diff --git a/darc-protocol/test/operationUnitTest/batch_add_withdrawable_balances_test.ts b/darc-protocol/test/operationUnitTest/batch_add_withdrawable_balances_test.ts index 3201a0c..1a8f1af 100644 --- a/darc-protocol/test/operationUnitTest/batch_add_withdrawable_balances_test.ts +++ b/darc-protocol/test/operationUnitTest/batch_add_withdrawable_balances_test.ts @@ -13,7 +13,7 @@ describe("batch_add_withdrawable_balances_test", function () { const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); diff --git a/darc-protocol/test/operationUnitTest/batch_burn_tokens_from_test.ts b/darc-protocol/test/operationUnitTest/batch_burn_tokens_from_test.ts index 6595420..b89d366 100644 --- a/darc-protocol/test/operationUnitTest/batch_burn_tokens_from_test.ts +++ b/darc-protocol/test/operationUnitTest/batch_burn_tokens_from_test.ts @@ -20,7 +20,7 @@ describe("batch_burn_tokens_from_to_test", function () { const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); diff --git a/darc-protocol/test/operationUnitTest/batch_burn_tokens_test.ts b/darc-protocol/test/operationUnitTest/batch_burn_tokens_test.ts index 45327d2..3f93fa5 100644 --- a/darc-protocol/test/operationUnitTest/batch_burn_tokens_test.ts +++ b/darc-protocol/test/operationUnitTest/batch_burn_tokens_test.ts @@ -22,7 +22,7 @@ describe("batch_burn_tokens_test", function () { const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); diff --git a/darc-protocol/test/operationUnitTest/batch_create_token_class_test.ts b/darc-protocol/test/operationUnitTest/batch_create_token_class_test.ts index 122739e..6b49d8e 100644 --- a/darc-protocol/test/operationUnitTest/batch_create_token_class_test.ts +++ b/darc-protocol/test/operationUnitTest/batch_create_token_class_test.ts @@ -13,7 +13,7 @@ describe("test for batch create token class instruction", function () { const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); diff --git a/darc-protocol/test/operationUnitTest/batch_mint_token_test.ts b/darc-protocol/test/operationUnitTest/batch_mint_token_test.ts index cbc693e..9e8979f 100644 --- a/darc-protocol/test/operationUnitTest/batch_mint_token_test.ts +++ b/darc-protocol/test/operationUnitTest/batch_mint_token_test.ts @@ -36,7 +36,7 @@ describe("batch_mint_token_test", function () { const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); diff --git a/darc-protocol/test/operationUnitTest/batch_pay_to_mint_tokens_test.ts b/darc-protocol/test/operationUnitTest/batch_pay_to_mint_tokens_test.ts index 7e47bfd..8b08dfc 100644 --- a/darc-protocol/test/operationUnitTest/batch_pay_to_mint_tokens_test.ts +++ b/darc-protocol/test/operationUnitTest/batch_pay_to_mint_tokens_test.ts @@ -29,7 +29,7 @@ describe("batch_pay_to_mint_token_test", function () { const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); diff --git a/darc-protocol/test/operationUnitTest/batch_pay_to_transfer_tokens_test.ts b/darc-protocol/test/operationUnitTest/batch_pay_to_transfer_tokens_test.ts index 86231b3..51b7f65 100644 --- a/darc-protocol/test/operationUnitTest/batch_pay_to_transfer_tokens_test.ts +++ b/darc-protocol/test/operationUnitTest/batch_pay_to_transfer_tokens_test.ts @@ -21,7 +21,7 @@ describe("batch_pay_to_transfer_token_test", function () { const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); diff --git a/darc-protocol/test/operationUnitTest/batch_transfer_tokens.ts b/darc-protocol/test/operationUnitTest/batch_transfer_tokens.ts index 900094c..e1fa67b 100644 --- a/darc-protocol/test/operationUnitTest/batch_transfer_tokens.ts +++ b/darc-protocol/test/operationUnitTest/batch_transfer_tokens.ts @@ -29,7 +29,7 @@ describe("batch_transfer_tokens_test", function () { const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); diff --git a/darc-protocol/test/operationUnitTest/batch_transfer_tokens_from_to.ts b/darc-protocol/test/operationUnitTest/batch_transfer_tokens_from_to.ts index 01bea55..b6c9d90 100644 --- a/darc-protocol/test/operationUnitTest/batch_transfer_tokens_from_to.ts +++ b/darc-protocol/test/operationUnitTest/batch_transfer_tokens_from_to.ts @@ -30,7 +30,7 @@ describe("batch_transfer_tokens_from_to_test", function () { const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); diff --git a/darc-protocol/test/operationUnitTest/call_contract_abi_test.ts b/darc-protocol/test/operationUnitTest/call_contract_abi_test.ts index 47eaab0..866e3b6 100644 --- a/darc-protocol/test/operationUnitTest/call_contract_abi_test.ts +++ b/darc-protocol/test/operationUnitTest/call_contract_abi_test.ts @@ -24,7 +24,7 @@ describe("test for call contract abi", function () { // create darc contract, deploy it and initialize it const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); diff --git a/darc-protocol/test/operationUnitTest/offer_dividends_test.ts b/darc-protocol/test/operationUnitTest/offer_dividends_test.ts index 7a8fbf7..f96e3ac 100644 --- a/darc-protocol/test/operationUnitTest/offer_dividends_test.ts +++ b/darc-protocol/test/operationUnitTest/offer_dividends_test.ts @@ -26,7 +26,7 @@ describe("offer_dividends_test", function () { const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); diff --git a/darc-protocol/test/paymentUnitTest/payment_pay_cash_test.ts b/darc-protocol/test/paymentUnitTest/payment_pay_cash_test.ts index 676b705..05ea063 100644 --- a/darc-protocol/test/paymentUnitTest/payment_pay_cash_test.ts +++ b/darc-protocol/test/paymentUnitTest/payment_pay_cash_test.ts @@ -10,7 +10,7 @@ describe("payment_pay_cash_test", function () { // initialize DARC const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); diff --git a/darc-protocol/test/pluginJudgementContractTest/pluginJudgementContractTest.ts b/darc-protocol/test/pluginJudgementContractTest/pluginJudgementContractTest.ts new file mode 100644 index 0000000..9182397 --- /dev/null +++ b/darc-protocol/test/pluginJudgementContractTest/pluginJudgementContractTest.ts @@ -0,0 +1,37 @@ +import { time, loadFixture } from "@nomicfoundation/hardhat-network-helpers"; +import { anyValue } from "@nomicfoundation/hardhat-chai-matchers/withArgs"; +import { expect } from "chai"; +import { ethers } from "hardhat"; +import { BigNumber } from "ethers"; +import { ConditionNodeStruct } from "../../typechain-types/contracts/protocol/DARC" + + +const programOperatorAddress = "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"; + +const target1 = '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC'; + +const target2 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; + +const target3 = '0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65'; + +describe.only("plugin judgement contract test", function () { + it ("should pass all plugin judgement test in PluginJudgementTest.sol", async function () { + + const PluginJudgementTestFactory = await ethers.getContractFactory("PluginJudgementTest"); + const pluginJudgementTest = await PluginJudgementTestFactory.deploy(); + await pluginJudgementTest.deployed(); + await pluginJudgementTest.initialize(); + let bIsSuccess = true; + try{ + await pluginJudgementTest.test(); + } + catch (error) { + console.log("error: ", error); + bIsSuccess = false; + } + + expect(bIsSuccess).to.equal(true); + }); + + +}); \ No newline at end of file diff --git a/darc-protocol/test/withdrawTest/withdrawCashTest.ts b/darc-protocol/test/withdrawTest/withdrawCashTest.ts index 10b9b8b..e0cedfa 100644 --- a/darc-protocol/test/withdrawTest/withdrawCashTest.ts +++ b/darc-protocol/test/withdrawTest/withdrawCashTest.ts @@ -17,7 +17,7 @@ describe("withdraw cash test", function () { // initialize DARC const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); // initialize program diff --git a/darc-protocol/test/withdrawTest/withdrawDividendTest.ts b/darc-protocol/test/withdrawTest/withdrawDividendTest.ts index bf8f519..0f68f65 100644 --- a/darc-protocol/test/withdrawTest/withdrawDividendTest.ts +++ b/darc-protocol/test/withdrawTest/withdrawDividendTest.ts @@ -26,7 +26,7 @@ describe("offer_dividends_test", function () { const DARC = await ethers.getContractFactory("DARC"); const darc = await DARC.deploy(); - console.log("DARC address: ", darc.address); + //console.log("DARC address: ", darc.address); await darc.deployed(); await darc.initialize(); From 426e9c65394ae07375e73089224db9af52ba4bfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AB=8B=E5=85=9A=20Lidang?= Date: Sun, 24 Dec 2023 13:23:22 -0600 Subject: [PATCH 04/14] update --- .../runtime-test/pressure-mint-token-test.ts | 2 +- .../PluginJudgementTest.sol | 46 ++++++++++++++++++- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/darc-js/tests/runtime-test/pressure-mint-token-test.ts b/darc-js/tests/runtime-test/pressure-mint-token-test.ts index 1217ba6..ee93012 100644 --- a/darc-js/tests/runtime-test/pressure-mint-token-test.ts +++ b/darc-js/tests/runtime-test/pressure-mint-token-test.ts @@ -63,7 +63,7 @@ describe('Pressure mint token execution test', () => { const token_owner_balance = await attached_local_darc2.getTokenOwnerBalance(BigInt(0),my_wallet_address); - console.log("token_info", token_owner_balance); + //console.log("token_info", token_owner_balance); expect(token_owner_balance.toString()).to.equal("100000"); }); } diff --git a/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol b/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol index 3d70a5f..eecf232 100644 --- a/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol +++ b/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.9; import "../../protocol/Runtime/Executable/Executable.sol"; - +import "../../protocol/Opcodes.sol"; /** * @title The test contract of PluginJudgement * @author DARC Team @@ -11,4 +11,48 @@ contract PluginJudgementTest is Executable { function test() public { } + + /** + * Add a test program, read the return type of the program, and return the return type + * @param currentProgram The program to be executed and tested + * @return EnumReturnType The return type of the program + */ + function checkProgram_beforeOp(Program memory currentProgram) public view returns (EnumReturnType) { + return checkBeforeOperationPlugins(currentProgram); + } + + /** + * Add a test program, read the return type of the program, and return the return type + * @param currentProgram The program to be executed and tested + * @return EnumReturnType The return type of the program + * @return uint256[] The voting rule index list of the program, if the return type is VOTING_NEEDED + */ + function checkProgram_afterOp(Program memory currentProgram) public view returns (EnumReturnType, uint256[] memory) { + (EnumReturnType afterReturnType, uint256[] memory afterRuleIdxList) = checkAfterOperationPlugins(currentProgram); + return (afterReturnType, afterRuleIdxList); + } + + /** + * Directly add a plugin to the before operation plugin system + * @param plugin The before op plugin to be added + */ + function addBeforeOpPlugin(Plugin memory plugin) public { + currentMachineState.beforeOpPlugins.push(plugin); + } + + /** + * Directly add a plugin to the after operation plugin system + * @param plugin The after op plugin to be added + */ + function addAfterOpPlugin(Plugin memory plugin) public { + currentMachineState.afterOpPlugins.push(plugin); + } + + /** + * Directly execute program without checking the plugin system + * @param currentProgram The program to be executed + */ + function executeProgram(Program memory currentProgram) public { + executeProgram_Executable(currentProgram, false); + } } \ No newline at end of file From 6d881ae6bfa8b3336540640e19c246f1615f09c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AB=8B=E5=85=9A=20Lidang?= Date: Sun, 24 Dec 2023 16:57:04 -0600 Subject: [PATCH 05/14] update --- .../PluginTest.sol} | 6 +-- .../test/pluginTest/boolean_OR_test.ts | 37 +++++++++++++++++++ .../pluginJudgementContractTest.ts | 32 ++++++++-------- 3 files changed, 56 insertions(+), 19 deletions(-) rename darc-protocol/contracts/test-contracts/{test-plugin-judgement/PluginJudgementTest.sol => test-plugin/PluginTest.sol} (91%) create mode 100644 darc-protocol/test/pluginTest/boolean_OR_test.ts rename darc-protocol/test/{pluginJudgementContractTest => pluginTest}/pluginJudgementContractTest.ts (54%) diff --git a/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol b/darc-protocol/contracts/test-contracts/test-plugin/PluginTest.sol similarity index 91% rename from darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol rename to darc-protocol/contracts/test-contracts/test-plugin/PluginTest.sol index eecf232..db5a7d5 100644 --- a/darc-protocol/contracts/test-contracts/test-plugin-judgement/PluginJudgementTest.sol +++ b/darc-protocol/contracts/test-contracts/test-plugin/PluginTest.sol @@ -7,7 +7,7 @@ import "../../protocol/Opcodes.sol"; * @author DARC Team * @notice Only used for testing */ -contract PluginJudgementTest is Executable { +contract PluginTest is Executable { function test() public { } @@ -52,7 +52,7 @@ contract PluginJudgementTest is Executable { * Directly execute program without checking the plugin system * @param currentProgram The program to be executed */ - function executeProgram(Program memory currentProgram) public { - executeProgram_Executable(currentProgram, false); + function executeProgram(Program memory currentProgram, bool bIsSandbox) public { + executeProgram_Executable(currentProgram, bIsSandbox); } } \ No newline at end of file diff --git a/darc-protocol/test/pluginTest/boolean_OR_test.ts b/darc-protocol/test/pluginTest/boolean_OR_test.ts new file mode 100644 index 0000000..514a03f --- /dev/null +++ b/darc-protocol/test/pluginTest/boolean_OR_test.ts @@ -0,0 +1,37 @@ +import { time, loadFixture } from "@nomicfoundation/hardhat-network-helpers"; +import { anyValue } from "@nomicfoundation/hardhat-chai-matchers/withArgs"; +import { expect } from "chai"; +import { ethers } from "hardhat"; +import { BigNumber } from "ethers"; +import { ConditionNodeStruct } from "../../typechain-types/contracts/protocol/DARC" + + +const programOperatorAddress = "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"; + +const target1 = '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC'; + +const target2 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; + +const target3 = '0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65'; + +describe.only("plugin judgement contract test", function () { + it ("should pass all plugin judgement test in PluginTest.sol", async function () { + + // const PluginJudgementTestFactory = await ethers.getContractFactory("PluginTest"); + // const pluginJudgementTest = await PluginJudgementTestFactory.deploy(); + // await pluginJudgementTest.deployed(); + // await pluginJudgementTest.initialize(); + // let bIsSuccess = true; + // try{ + // await pluginJudgementTest.test(); + // } + // catch (error) { + // console.log("error: ", error); + // bIsSuccess = false; + // } + + //expect(true).to.equal(true); + }); + + +}); \ No newline at end of file diff --git a/darc-protocol/test/pluginJudgementContractTest/pluginJudgementContractTest.ts b/darc-protocol/test/pluginTest/pluginJudgementContractTest.ts similarity index 54% rename from darc-protocol/test/pluginJudgementContractTest/pluginJudgementContractTest.ts rename to darc-protocol/test/pluginTest/pluginJudgementContractTest.ts index 9182397..514a03f 100644 --- a/darc-protocol/test/pluginJudgementContractTest/pluginJudgementContractTest.ts +++ b/darc-protocol/test/pluginTest/pluginJudgementContractTest.ts @@ -15,22 +15,22 @@ const target2 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; const target3 = '0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65'; describe.only("plugin judgement contract test", function () { - it ("should pass all plugin judgement test in PluginJudgementTest.sol", async function () { - - const PluginJudgementTestFactory = await ethers.getContractFactory("PluginJudgementTest"); - const pluginJudgementTest = await PluginJudgementTestFactory.deploy(); - await pluginJudgementTest.deployed(); - await pluginJudgementTest.initialize(); - let bIsSuccess = true; - try{ - await pluginJudgementTest.test(); - } - catch (error) { - console.log("error: ", error); - bIsSuccess = false; - } - - expect(bIsSuccess).to.equal(true); + it ("should pass all plugin judgement test in PluginTest.sol", async function () { + + // const PluginJudgementTestFactory = await ethers.getContractFactory("PluginTest"); + // const pluginJudgementTest = await PluginJudgementTestFactory.deploy(); + // await pluginJudgementTest.deployed(); + // await pluginJudgementTest.initialize(); + // let bIsSuccess = true; + // try{ + // await pluginJudgementTest.test(); + // } + // catch (error) { + // console.log("error: ", error); + // bIsSuccess = false; + // } + + //expect(true).to.equal(true); }); From 3a8e1f06d296294a46cf29f5f841f9685a85f658 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AB=8B=E5=85=9A=20Lidang?= Date: Sun, 24 Dec 2023 18:34:15 -0600 Subject: [PATCH 06/14] update --- .../Instructions/PluginInstructions.sol | 66 +++++++++++++++++++ .../test/pluginTest/boolean_OR_test.ts | 21 ++---- 2 files changed, 73 insertions(+), 14 deletions(-) diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol index 0110824..5ec908f 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol @@ -8,6 +8,7 @@ import "@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol"; import "../../../Plugin/Plugin.sol"; import "../../../Utilities/ErrorMsg.sol"; + /** * @title Implementation of BATCH_ADD_AND_ENABLE_PLUGINS operation * @author DARC Team @@ -15,6 +16,71 @@ import "../../../Utilities/ErrorMsg.sol"; */ contract PluginInstructions is MachineStateManager{ + + /** + * This is a helper function that helps checking if all the plugins are on the right level + * based on the return type. + * Check the "/Plugin/Plugin.sol" for the definition of "level" and "return type" + * + * ---------------------------------------------- + * + * + * For before operation plugins, here is the rule: + * 1. If the return type is YES_AND_SKIP_SANDBOX, then all the plugin level L%3 == 1, e.g. [1, 4, 7, 10, ...] + * 2. If the return type is SANDBOX_NEEDED, then all the plugin level L%3 == 2, e.g. [2, 5, 8, 11, ...] + * 3. If the return type is NO, then all the plugin level L%3 == 0, e.g. [3, 6, 9, 12, ...] + * + * + * ---------------------------------------------- + * + * For after operation plugins, here is the rule: + * 1. If the return type is YES, then all the plugin level L%3 == 1, e.g. [1, 4, 7, 10, ...] + * 2. If the return type is VOTING_NEEDED, then all the plugin level L%3 == 2, e.g. [2, 5, 8, 11, ...] + * 3. If the return type is NO, then all the plugin level L%3 == 0, e.g. [3, 6, 9, 12, ...] + * + * ---------------------------------------------- + * + * If the return type is UNDEFINED, then just throw the error and revert the transaction + * + * @param pluginList The list of plugins to be checked + * @param bIsBeforeOperation The flag to indicate if the plugins are before operation plugins + */ + function pluginCheck(Plugin[] memory pluginList, bool bIsBeforeOperation) internal view returns (bool) { + if (bIsBeforeOperation) { // if the plugins are before operation plugins + if (currentMachineState.beforeOpPlugins.length == 0) { // if there is no before operation plugin + return true; + } + else { // if there is at least one before operation plugin + // get the return type of the program + EnumReturnType returnType = currentMachineState.beforeOpPlugins[0].returnType; + // check if all the plugins are on the right level + for (uint256 i=0;i Date: Sun, 24 Dec 2023 19:50:58 -0600 Subject: [PATCH 07/14] update --- darc-protocol/contracts/protocol/DARC.sol | 2 +- .../protocol/Dashboard/Dashboard.sol | 2 +- .../contracts/protocol/MachineState.sol | 2 +- .../protocol/MachineStateManager.sol | 2 +- darc-protocol/contracts/protocol/Opcodes.sol | 2 +- .../Plugin/ConditionExpressionFactory.sol | 2 +- .../MachineState/TimeStateFunction.sol | 2 +- .../MachineStateExpressionFunction.sol | 2 +- .../MintTokensExpressionFunction.sol_ | 2 +- ...atchCreateTokenClassExpressionFunction.sol | 2 +- .../BatchMintTokensExpressionFunction.sol | 2 +- .../GeneralOperationExpressionFunction.sol | 2 +- .../Conditions/OperatorExpressionFunction.sol | 2 +- .../CertainTokenNumberExpressionFunction.sol | 2 +- ...ertainTokenPermyriadExpressionFunction.sol | 2 +- .../TotalTokenNumberExpressionFunction.sol | 2 +- .../TotalTokenPermyriadExpressionFunction.sol | 2 +- .../TransferTokensExpressionFunction.sol_ | 2 +- .../Plugin/EnumConditionExpression.sol | 2 +- .../contracts/protocol/Plugin/Plugin.sol | 6 +- .../protocol/Plugin/PluginFactory.sol | 2 +- .../protocol/Plugin/PluginSystem.sol | 2 +- darc-protocol/contracts/protocol/Program.sol | 2 +- .../Runtime/Executable/Executable.sol | 2 +- .../Runtime/Executable/InstructionMachine.sol | 2 +- .../Instructions/MembershipInstructions.sol | 2 +- .../Instructions/MoneyInstructions.sol | 2 +- .../OfferDividendsInstructions.sol | 2 +- .../Instructions/ParameterInstructions.sol | 2 +- .../Instructions/PluginInstructions.sol | 77 +++++++++++-------- .../Instructions/TokenInstructions.sol | 2 +- .../Instructions/UtilityInstructions.sol | 2 +- .../Runtime/PaymentCheck/PaymentCheck.sol | 2 +- .../ProgramValidator/ProgramValidator.sol | 2 +- .../contracts/protocol/Runtime/Runtime.sol | 2 +- .../Runtime/VotingMachine/VotingMachine.sol | 2 +- .../protocol/TokenOwnerListManager.sol | 2 +- .../protocol/Utilities/ArrayUtils.sol | 2 +- .../contracts/protocol/Utilities/ErrorMsg.sol | 2 +- .../protocol/Utilities/OpcodeMap.sol | 2 +- .../protocol/Utilities/StringUtils.sol | 2 +- .../contracts/protocol/VirtualMachine.sol | 2 +- .../test-ABI-call/ABICallTestContract.sol | 2 +- .../test-delegate-call/DelegateCallTest.sol | 2 +- .../test-contracts/test-plugin/PluginTest.sol | 2 +- .../test-contracts/test-voting/VotingTest.sol | 2 +- darc-protocol/hardhat.config.ts | 2 +- .../batch_add_and_enable_plugin_test.ts | 2 +- .../test/pluginTest/boolean_OR_test.ts | 2 +- .../pluginTest/pluginJudgementContractTest.ts | 2 +- 50 files changed, 99 insertions(+), 80 deletions(-) diff --git a/darc-protocol/contracts/protocol/DARC.sol b/darc-protocol/contracts/protocol/DARC.sol index 5e5456b..1d6f14a 100644 --- a/darc-protocol/contracts/protocol/DARC.sol +++ b/darc-protocol/contracts/protocol/DARC.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import "./Runtime/Runtime.sol"; import "./Program.sol"; diff --git a/darc-protocol/contracts/protocol/Dashboard/Dashboard.sol b/darc-protocol/contracts/protocol/Dashboard/Dashboard.sol index 25655fa..f06ab32 100644 --- a/darc-protocol/contracts/protocol/Dashboard/Dashboard.sol +++ b/darc-protocol/contracts/protocol/Dashboard/Dashboard.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import "../Runtime/Runtime.sol"; diff --git a/darc-protocol/contracts/protocol/MachineState.sol b/darc-protocol/contracts/protocol/MachineState.sol index 71a5fd9..46a8c45 100644 --- a/darc-protocol/contracts/protocol/MachineState.sol +++ b/darc-protocol/contracts/protocol/MachineState.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import "./Program.sol"; import "./Plugin/Plugin.sol"; /** diff --git a/darc-protocol/contracts/protocol/MachineStateManager.sol b/darc-protocol/contracts/protocol/MachineStateManager.sol index bc4efb9..5078cc8 100644 --- a/darc-protocol/contracts/protocol/MachineStateManager.sol +++ b/darc-protocol/contracts/protocol/MachineStateManager.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "./MachineState.sol"; import "./Plugin/Plugin.sol"; diff --git a/darc-protocol/contracts/protocol/Opcodes.sol b/darc-protocol/contracts/protocol/Opcodes.sol index 1052d46..a8466f8 100644 --- a/darc-protocol/contracts/protocol/Opcodes.sol +++ b/darc-protocol/contracts/protocol/Opcodes.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; /* diff --git a/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol b/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol index 14bb9ed..3e52240 100644 --- a/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol +++ b/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import "../MachineState.sol"; diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/MachineState/TimeStateFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/MachineState/TimeStateFunction.sol index 6fb1d7c..5039043 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/MachineState/TimeStateFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/MachineState/TimeStateFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/MachineStateExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/MachineStateExpressionFunction.sol index 9e5cf12..30a10a7 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/MachineStateExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/MachineStateExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/MintTokensExpressionFunction.sol_ b/darc-protocol/contracts/protocol/Plugin/Conditions/MintTokensExpressionFunction.sol_ index aacdabb..828355d 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/MintTokensExpressionFunction.sol_ +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/MintTokensExpressionFunction.sol_ @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; /** * @title MintTokensExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchCreateTokenClass/BatchCreateTokenClassExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchCreateTokenClass/BatchCreateTokenClassExpressionFunction.sol index 2c671ec..3ae48fb 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchCreateTokenClass/BatchCreateTokenClassExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchCreateTokenClass/BatchCreateTokenClassExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchMintTokens/BatchMintTokensExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchMintTokens/BatchMintTokensExpressionFunction.sol index dc2e953..31f7fc4 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchMintTokens/BatchMintTokensExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchMintTokens/BatchMintTokensExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/GeneralOperationExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/GeneralOperationExpressionFunction.sol index 514bb92..ce854c4 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/GeneralOperationExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/GeneralOperationExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/OperatorExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/OperatorExpressionFunction.sol index e84a796..022ff63 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/OperatorExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/OperatorExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenNumberExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenNumberExpressionFunction.sol index 77dd9f1..60ef8e9 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenNumberExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenNumberExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenPermyriadExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenPermyriadExpressionFunction.sol index 4fe0446..9004537 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenPermyriadExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenPermyriadExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenNumberExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenNumberExpressionFunction.sol index 9c3a05c..22b3209 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenNumberExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenNumberExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenPermyriadExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenPermyriadExpressionFunction.sol index af23347..3aa45a2 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenPermyriadExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenPermyriadExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/TransferTokensExpressionFunction.sol_ b/darc-protocol/contracts/protocol/Plugin/Conditions/TransferTokensExpressionFunction.sol_ index d1b71f4..a361796 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/TransferTokensExpressionFunction.sol_ +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/TransferTokensExpressionFunction.sol_ @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; /** * @title TransferTokenExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol b/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol index 4cc95ce..faf59cd 100644 --- a/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol +++ b/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; /** * @notice EnumConditionExpression is the enum of the condition expression command, with parameters and types diff --git a/darc-protocol/contracts/protocol/Plugin/Plugin.sol b/darc-protocol/contracts/protocol/Plugin/Plugin.sol index 39e8e54..dc9348e 100644 --- a/darc-protocol/contracts/protocol/Plugin/Plugin.sol +++ b/darc-protocol/contracts/protocol/Plugin/Plugin.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import './EnumConditionExpression.sol'; @@ -27,6 +27,10 @@ enum EnumLogicalOperatorType {UNDEFINED, AND, OR, NOT } * check and be executed in current machine state. * 4. Otherwise, the program is invalid and should be rejected. * + * + * ---------------------------------------------- + * + * * For the After Operation Plugin System (after executed in sandbox), the priority of the return value is: * NO > VOTING_NEEDED > YES > UNDEFINED, * which means: diff --git a/darc-protocol/contracts/protocol/Plugin/PluginFactory.sol b/darc-protocol/contracts/protocol/Plugin/PluginFactory.sol index 8894705..6a4a3b2 100644 --- a/darc-protocol/contracts/protocol/Plugin/PluginFactory.sol +++ b/darc-protocol/contracts/protocol/Plugin/PluginFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import './Plugin.sol'; import '../MachineStateManager.sol'; diff --git a/darc-protocol/contracts/protocol/Plugin/PluginSystem.sol b/darc-protocol/contracts/protocol/Plugin/PluginSystem.sol index 6ac8ccd..f64a902 100644 --- a/darc-protocol/contracts/protocol/Plugin/PluginSystem.sol +++ b/darc-protocol/contracts/protocol/Plugin/PluginSystem.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "../MachineState.sol"; import "../MachineStateManager.sol"; diff --git a/darc-protocol/contracts/protocol/Program.sol b/darc-protocol/contracts/protocol/Program.sol index f1c0c33..5e663c3 100644 --- a/darc-protocol/contracts/protocol/Program.sol +++ b/darc-protocol/contracts/protocol/Program.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import "./Opcodes.sol"; import "./Plugin/Plugin.sol"; diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/Executable.sol b/darc-protocol/contracts/protocol/Runtime/Executable/Executable.sol index bf3d3fe..9cdd8be 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/Executable.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/Executable.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "../../MachineState.sol"; import "../../MachineStateManager.sol"; diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/InstructionMachine.sol b/darc-protocol/contracts/protocol/Runtime/Executable/InstructionMachine.sol index 5cb0914..a63e31b 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/InstructionMachine.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/InstructionMachine.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "../../MachineState.sol"; import "../../MachineStateManager.sol"; diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MembershipInstructions.sol b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MembershipInstructions.sol index abb33df..3a68a1a 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MembershipInstructions.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MembershipInstructions.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "../../../MachineState.sol"; import "../../../MachineStateManager.sol"; diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MoneyInstructions.sol b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MoneyInstructions.sol index 09f591a..b22e645 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MoneyInstructions.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MoneyInstructions.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import "../../../MachineState.sol"; import "../../../MachineStateManager.sol"; import "../../../Plugin/PluginSystem.sol"; diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/OfferDividendsInstructions.sol b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/OfferDividendsInstructions.sol index e77d32e..49dd37b 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/OfferDividendsInstructions.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/OfferDividendsInstructions.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "../../../MachineState.sol"; import "../../../MachineStateManager.sol"; diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/ParameterInstructions.sol b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/ParameterInstructions.sol index 1ebdad5..62ec0d3 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/ParameterInstructions.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/ParameterInstructions.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "../../../MachineState.sol"; import "../../../MachineStateManager.sol"; diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol index 5ec908f..86d5b36 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.9; +pragma solidity ^0.8.17; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "../../../MachineState.sol"; import "../../../MachineStateManager.sol"; @@ -7,7 +7,7 @@ import "../../../Plugin/PluginSystem.sol"; import "@openzeppelin/contracts-upgradeable/utils/math/SafeMathUpgradeable.sol"; import "../../../Plugin/Plugin.sol"; import "../../../Utilities/ErrorMsg.sol"; - +import "@openzeppelin/contracts/utils/Strings.sol"; /** * @title Implementation of BATCH_ADD_AND_ENABLE_PLUGINS operation @@ -43,44 +43,52 @@ contract PluginInstructions is MachineStateManager{ * If the return type is UNDEFINED, then just throw the error and revert the transaction * * @param pluginList The list of plugins to be checked - * @param bIsBeforeOperation The flag to indicate if the plugins are before operation plugins */ - function pluginCheck(Plugin[] memory pluginList, bool bIsBeforeOperation) internal view returns (bool) { - if (bIsBeforeOperation) { // if the plugins are before operation plugins - if (currentMachineState.beforeOpPlugins.length == 0) { // if there is no before operation plugin - return true; - } - else { // if there is at least one before operation plugin - // get the return type of the program - EnumReturnType returnType = currentMachineState.beforeOpPlugins[0].returnType; - // check if all the plugins are on the right level - for (uint256 i=0;i Date: Sun, 24 Dec 2023 20:49:21 -0600 Subject: [PATCH 08/14] update --- darc-js/src/SDK/struct/Plugin.ts | 6 +++--- darc-js/src/darcBinary/DARC-latest.json | 14 +++++++------- darc-js/src/types/basicTypes.ts | 4 ++-- darc-protocol/contracts/protocol/DARC.sol | 2 +- .../contracts/protocol/Dashboard/Dashboard.sol | 2 +- darc-protocol/contracts/protocol/MachineState.sol | 2 +- .../contracts/protocol/MachineStateManager.sol | 2 +- darc-protocol/contracts/protocol/Opcodes.sol | 2 +- .../protocol/Plugin/ConditionExpressionFactory.sol | 2 +- .../Conditions/MachineState/TimeStateFunction.sol | 2 +- .../Conditions/MachineStateExpressionFunction.sol | 2 +- .../Conditions/MintTokensExpressionFunction.sol_ | 2 +- .../BatchCreateTokenClassExpressionFunction.sol | 2 +- .../BatchMintTokensExpressionFunction.sol | 2 +- .../GeneralOperationExpressionFunction.sol | 2 +- .../Conditions/OperatorExpressionFunction.sol | 2 +- .../CertainTokenNumberExpressionFunction.sol | 2 +- .../CertainTokenPermyriadExpressionFunction.sol | 2 +- .../TotalTokenNumberExpressionFunction.sol | 2 +- .../TotalTokenPermyriadExpressionFunction.sol | 2 +- .../TransferTokensExpressionFunction.sol_ | 2 +- .../protocol/Plugin/EnumConditionExpression.sol | 2 +- darc-protocol/contracts/protocol/Plugin/Plugin.sol | 4 ++-- .../contracts/protocol/Plugin/PluginFactory.sol | 2 +- .../contracts/protocol/Plugin/PluginSystem.sol | 2 +- darc-protocol/contracts/protocol/Program.sol | 2 +- .../protocol/Runtime/Executable/Executable.sol | 2 +- .../Runtime/Executable/InstructionMachine.sol | 2 +- .../Instructions/MembershipInstructions.sol | 2 +- .../Executable/Instructions/MoneyInstructions.sol | 2 +- .../Instructions/OfferDividendsInstructions.sol | 2 +- .../Instructions/ParameterInstructions.sol | 2 +- .../Executable/Instructions/PluginInstructions.sol | 4 ++-- .../Executable/Instructions/TokenInstructions.sol | 2 +- .../Instructions/UtilityInstructions.sol | 2 +- .../protocol/Runtime/PaymentCheck/PaymentCheck.sol | 2 +- .../Runtime/ProgramValidator/ProgramValidator.sol | 2 +- .../contracts/protocol/Runtime/Runtime.sol | 2 +- .../Runtime/VotingMachine/VotingMachine.sol | 2 +- .../contracts/protocol/TokenOwnerListManager.sol | 2 +- .../contracts/protocol/Utilities/ArrayUtils.sol | 2 +- .../contracts/protocol/Utilities/ErrorMsg.sol | 2 +- .../contracts/protocol/Utilities/OpcodeMap.sol | 2 +- .../contracts/protocol/Utilities/StringUtils.sol | 2 +- .../contracts/protocol/VirtualMachine.sol | 2 +- .../test-ABI-call/ABICallTestContract.sol | 2 +- .../test-delegate-call/DelegateCallTest.sol | 2 +- .../test-contracts/test-plugin/PluginTest.sol | 2 +- .../test-contracts/test-voting/VotingTest.sol | 2 +- darc-protocol/hardhat.config.ts | 2 +- .../Multi_DARC_call_with_payment_test.ts | 2 +- .../batch_add_and_enable_plugin_test.ts | 2 +- darc-protocol/test/pluginTest/boolean_OR_test.ts | 13 +++++++++++-- .../test/pluginTest/pluginJudgementContractTest.ts | 1 + 54 files changed, 75 insertions(+), 65 deletions(-) diff --git a/darc-js/src/SDK/struct/Plugin.ts b/darc-js/src/SDK/struct/Plugin.ts index e121858..3d20031 100644 --- a/darc-js/src/SDK/struct/Plugin.ts +++ b/darc-js/src/SDK/struct/Plugin.ts @@ -2,13 +2,13 @@ import { ConditionNode } from "../plugins/ConditionNode"; import { VotingParameters } from "./voting-param"; class Plugin { - note: string; + notes: string; conditionExpressionTreeRootNode: ConditionNode; restrictionPluginReturnType: RestrictionPluginReturnType; votingParameters: VotingParameters | null; restrictionPluginType: RestrictionPluginType; - constructor(note: string, conditionExpressionTreeRootNode: ConditionNode, restrictionPluginReturnType: RestrictionPluginReturnType, votingParameters: VotingParameters | null, restrictionPluginType: RestrictionPluginType) { - this.note = note; + constructor(inputNotes: string, conditionExpressionTreeRootNode: ConditionNode, restrictionPluginReturnType: RestrictionPluginReturnType, votingParameters: VotingParameters | null, restrictionPluginType: RestrictionPluginType) { + this.notes = inputNotes; this.conditionExpressionTreeRootNode = conditionExpressionTreeRootNode; this.restrictionPluginReturnType = restrictionPluginReturnType; this.votingParameters = votingParameters; diff --git a/darc-js/src/darcBinary/DARC-latest.json b/darc-js/src/darcBinary/DARC-latest.json index 8168f51..bce807d 100644 --- a/darc-js/src/darcBinary/DARC-latest.json +++ b/darc-js/src/darcBinary/DARC-latest.json @@ -201,7 +201,7 @@ }, { "internalType": "string", - "name": "note", + "name": "notes", "type": "string" }, { @@ -477,7 +477,7 @@ }, { "internalType": "string", - "name": "note", + "name": "notes", "type": "string" }, { @@ -578,7 +578,7 @@ }, { "internalType": "string", - "name": "note", + "name": "notes", "type": "string" }, { @@ -962,7 +962,7 @@ }, { "internalType": "string", - "name": "note", + "name": "notes", "type": "string" }, { @@ -1236,7 +1236,7 @@ }, { "internalType": "string", - "name": "note", + "name": "notes", "type": "string" }, { @@ -1350,8 +1350,8 @@ "type": "function" } ], - "bytecode": "0x608080604052346200001957620169fe90816200001f8239f35b600080fdfe6109a08060405260043610156200001557600080fd5b600080608052803560e01c918263036ee8501462003da5575081630e5a3b291462003a3757816310ade3ea1462003a055781631797631d14620039925781631c75255a146200393c57816323b65c7814620038c95781632514a6b4146200368957816341d1a438146200365657816356424cf4146200356e5781635c00d987146200351f5781635d0b184914620034fb5781635f1231ea14620034075781635f5d5f001462003394578163681ece9d146200335157816374579b18146200236757816379532bfe14620023435781637daa10ce14620023245781638129fc1c1462001f455750806383e4cccf1462001cce578063864f9f7a1462001c8c57806386ad77e2146200194d5780638c7a63ae14620018d35780639df9914514620017b25780639f36145f14620004e1578063a064c4f11462000416578063acf80bc414620003d4578063aefca42a14620003b0578063bba51030146200021b578063d5a172f214620001ec5763d6a93c51146200018f57600080fd5b34620001e65760805180600319360112620001e3575b6127108110620001bb575b602090604051908152f35b60ff60078260031b01541615620001dd57620001d79062005a85565b620001a5565b620001b0565b80fd5b60805180fd5b34620001e65760805180600319360112620001e35762027126546040516001600160a01b039091168152602090f35b34620001e65760805180600319360112620001e3576202712e548091526202712b906020828152600380604060805120015493620002766200025d8662003edb565b956200026d604051978862003eb7565b80875262003edb565b8584019190601f19013683376080515b8560805152818552836040608051200154811015620003595760405163083a348760e31b815260048101829052602486828281305afa9182156200034c57608051926200030e575b50620002db838a62005af1565b9086831015620002f8575052620002f29062005a85565b62000286565b60808051634e487b7160e01b9052602160045251fd5b9091508681813d831162000344575b62000329818362003eb7565b81010312620001e6575185811015620001e6579089620002ce565b503d6200031d565b6040513d608051823e3d90fd5b84878460405192839281840190828552518091526040840192916080515b8281106200038757505050500390f35b91938395509080826200039f60019483975162003fd8565b019501910191859493919262000377565b34620001e65760805180600319360112620001e35760206202712854604051908152f35b34620001e6576020366003190112620001e6576001600160a01b03620003f962003dc7565b166080515262013887602052602060406080512054604051908152f35b34620001e6576020366003190112620001e657600435612710811015620004c957806200044f6001620004569360031b01549162006c21565b9062006b9b565b90156200046857602090604051908152f35b60405162461bcd60e51b815260206004820152603360248201527f73756d566f74696e67576569676874466f72546f6b656e436c6173733a20766f60448201527274696e67576569676874206f766572666c6f7760681b6064820152608490fd5b634e487b7160e01b6080515260326004526024608051fd5b34620001e6576020366003190112620001e657600435608051526202712b602052604060805120604051620005168162003e63565b81546001600160a01b03168152600182018054909290620005378162003edb565b9062000547604051928362003eb7565b808252602082019460805152608051946020862095905b828210620005e957620005be8686866020830152604051620005918162000589816002860162005166565b038262003eb7565b604083015260ff600782015491600960088201549101549060405195869560a0875260a0870190620054e0565b9360208601526040850152620005da6060850183831662003fd8565b60081c16151560808301520390f35b604051620005f78162003e63565b87546001600160a01b0381168252602660a082901c60ff1610156200179a5760a01c60ff1660208201526040516200062f8162003e46565b6200063d60018a0162005204565b8152600289016040518082602082945493848152019060805152608051926020842093905b80601f830110620015c7576200079b945491818110620015b0575b81811062001596575b8181106200157c575b81811062001562575b81811062001549575b8181106200152f575b81811062001515575b818110620014fb575b818110620014e1575b818110620014c7575b818110620014ad575b81811062001493575b81811062001479575b8181106200145f575b81811062001445575b8181106200142b575b81811062001411575b818110620013f7575b818110620013dd575b818110620013c3575b818110620013a9575b8181106200138f575b81811062001375575b8181106200135b575b81811062001341575b81811062001327575b8181106200130d575b818110620012f3575b818110620012d9575b818110620012bf575b818110620012a5575b1062001294575b50038262003eb7565b6020820152600389018054620007b18162003edb565b91620007c1604051938462003eb7565b818352602083019060805152608051906020822091905b8382106200127357505050506040820152600489018054620007fa8162003edb565b916200080a604051938462003eb7565b818352602083019060805152608051906020822091905b838210620010fc57505050506060820152600589016040519081602082549182815201916080515260805190602082205b81601f84011062000e0b5784600997946020979460019a97946200099894549181811062000ded575b81811062000dcc575b81811062000dab575b81811062000d8a575b81811062000d6a575b81811062000d49575b81811062000d28575b81811062000d07575b81811062000ce6575b81811062000cc5575b81811062000ca4575b81811062000c83575b81811062000c62575b81811062000c41575b81811062000c20575b81811062000bff575b81811062000bde575b81811062000bbd575b81811062000b9c575b81811062000b7b575b81811062000b5a575b81811062000b39575b81811062000b18575b81811062000af7575b81811062000ad6575b81811062000ab5575b81811062000a94575b81811062000a73575b81811062000a52575b81811062000a31575b81811062000a10575b10620009f55750038262003eb7565b6080820152620009ab60068d0162005368565b60a0820152620009be60078d0162005421565b60c08201526008620009dc8d62000589604051809481930162005166565b60e082015260408201528152019701910190956200055e565b90889160f81c62000a068162004dc4565b8152013862000792565b928a8d9160ff8560f01c1662000a268162004dc4565b815201930162000989565b928a8d9160ff8560e81c1662000a478162004dc4565b815201930162000980565b928a8d9160ff8560e01c1662000a688162004dc4565b815201930162000977565b928a8d9160ff8560d81c1662000a898162004dc4565b81520193016200096e565b928a8d9160ff8560d01c1662000aaa8162004dc4565b815201930162000965565b928a8d9160ff8560c81c1662000acb8162004dc4565b81520193016200095c565b928a8d9160ff8560c01c1662000aec8162004dc4565b815201930162000953565b928a8d9160ff8560b81c1662000b0d8162004dc4565b81520193016200094a565b928a8d9160ff8560b01c1662000b2e8162004dc4565b815201930162000941565b928a8d9160ff8560a81c1662000b4f8162004dc4565b815201930162000938565b928a8d9160ff8560a01c1662000b708162004dc4565b81520193016200092f565b928a8d9160ff8560981c1662000b918162004dc4565b815201930162000926565b928a8d9160ff8560901c1662000bb28162004dc4565b81520193016200091d565b928a8d9160ff8560881c1662000bd38162004dc4565b815201930162000914565b928a8d9160ff8560801c1662000bf48162004dc4565b81520193016200090b565b928a8d9160ff8560781c1662000c158162004dc4565b815201930162000902565b928a8d9160ff8560701c1662000c368162004dc4565b8152019301620008f9565b928a8d9160ff8560681c1662000c578162004dc4565b8152019301620008f0565b928a8d9160ff8560601c1662000c788162004dc4565b8152019301620008e7565b928a8d9160ff8560581c1662000c998162004dc4565b8152019301620008de565b928a8d9160ff8560501c1662000cba8162004dc4565b8152019301620008d5565b928a8d9160ff8560481c1662000cdb8162004dc4565b8152019301620008cc565b928a8d9160ff8560401c1662000cfc8162004dc4565b8152019301620008c3565b928a8d9160ff8560381c1662000d1d8162004dc4565b8152019301620008ba565b928a8d9160ff8560301c1662000d3e8162004dc4565b8152019301620008b1565b928a8d9160ff8560281c1662000d5f8162004dc4565b8152019301620008a8565b928a8d9160ff85831c1662000d7f8162004dc4565b81520193016200089f565b928a8d9160ff8560181c1662000da08162004dc4565b815201930162000896565b928a8d9160ff8560101c1662000dc18162004dc4565b81520193016200088d565b928a8d9160ff8560081c1662000de28162004dc4565b815201930162000884565b928a8d9160ff851662000e008162004dc4565b81520193016200087b565b926001610400602092865460ff811662000e258162004dc4565b825260ff8160081c1662000e398162004dc4565b8583015260ff8160101c1662000e4f8162004dc4565b604083015260ff8160181c1662000e668162004dc4565b606083015260ff81861c1662000e7c8162004dc4565b608083015260ff8160281c1662000e938162004dc4565b60a083015260ff81818160301c1662000eac8162004dc4565b60c09081860152828260381c1662000ec48162004dc4565b60e0860152828260401c1662000eda8162004dc4565b610100860152828260481c1662000ef18162004dc4565b610120860152828260501c1662000f088162004dc4565b610140860152828260581c1662000f1f8162004dc4565b610160860152828260601c1662000f368162004dc4565b610180860152828260681c1662000f4d8162004dc4565b6101a0860152828260701c1662000f648162004dc4565b6101c0860152828260781c1662000f7b8162004dc4565b6101e0860152828260801c1662000f928162004dc4565b610200860152828260881c1662000fa98162004dc4565b610220860152828260901c1662000fc08162004dc4565b610240860152828260981c1662000fd78162004dc4565b610260860152828260a01c1662000fee8162004dc4565b610280860152828260a81c16620010058162004dc4565b6102a0860152828260b01c166200101c8162004dc4565b6102c0860152828260b81c16620010338162004dc4565b6102e08601521c16620010468162004dc4565b61030083015260ff8160c81c166200105e8162004dc4565b61032083015260ff8160d01c16620010768162004dc4565b61034083015260ff8160d81c166200108e8162004dc4565b61036083015260ff8160e01c16620010a68162004dc4565b61038083015260ff8160e81c16620010be8162004dc4565b6103a083015260ff8160f01c16620010d68162004dc4565b6103c083015260f81c620010ea8162004dc4565b6103e082015201940192019162000852565b60409d9c9b9a999897969d51620011138162003e46565b6200112360ff855416826200534e565b600184015460208201526002840180546200113e8162003edb565b916200114e604051938462003eb7565b8183526020830190608051526080516020812090915b838310620011e557505050509d9e9798999a9b9c9d600192826020926040600695015260038701546060820152604051620011a881620005898160048c0162005166565b608082015260ff6005880154818116151560a0840152818160081c16151560c084015260101c16151560e082015281520193019101909162000821565b60076020600192604051620011fa8162003e2a565b855481526200123e60ff86880154818116620012168162004dc4565b86850152818160081c166200122b8162003f71565b604085015260101c16606083016200535b565b6200124c6002870162005272565b60808201526200125f600387016200547e565b60a082015281520192019201919062001164565b600760206001926200128586620052c7565b815201930191019091620007d8565b60f81c151581526020018d62000792565b92602060019160ff8560f01c16151581520193016200078b565b92602060019160ff8560e81c161515815201930162000782565b92602060019160ff8560e01c161515815201930162000779565b92602060019160ff8560d81c161515815201930162000770565b92602060019160ff8560d01c161515815201930162000767565b92602060019160ff8560c81c16151581520193016200075e565b92602060019160ff8560c01c161515815201930162000755565b92602060019160ff8560b81c16151581520193016200074c565b92602060019160ff8560b01c161515815201930162000743565b92602060019160ff8560a81c16151581520193016200073a565b92602060019160ff8560a01c161515815201930162000731565b92602060019160ff8560981c161515815201930162000728565b92602060019160ff8560901c16151581520193016200071f565b92602060019160ff8560881c161515815201930162000716565b92602060019160ff8560801c16151581520193016200070d565b92602060019160ff8560781c161515815201930162000704565b92602060019160ff8560701c1615158152019301620006fb565b92602060019160ff8560681c1615158152019301620006f2565b92602060019160ff8560601c1615158152019301620006e9565b92602060019160ff8560581c1615158152019301620006e0565b92602060019160ff8560501c1615158152019301620006d7565b92602060019160ff8560481c1615158152019301620006ce565b92602060019160ff8560401c1615158152019301620006c5565b92602060019160ff8560381c1615158152019301620006bc565b92602060019160ff8560301c1615158152019301620006b3565b92602060019160ff8560281c1615158152019301620006aa565b92602060019160ff85831c1615158152019301620006a1565b92602060019160ff8560181c161515815201930162000698565b92602060019160ff8560101c16151581520193016200068f565b92602060019160ff8560081c161515815201930162000686565b92602060019160ff8516151581520193016200067d565b916020919350610400600191865460ff81161515825260ff8160081c1615158583015260ff8160101c161515604083015260ff816060828260181c161515818601528282891c1615156080860152828260281c16151560a0860152828260c092828260301c16151584890152828260381c16151560e0890152828260401c161515610100890152828260481c161515610120890152828260501c161515610140890152828260581c1615156101608901521c161515610180860152828260681c1615156101a0860152828260701c1615156101c0860152828260781c1615156101e0860152828260801c161515610200860152828260881c161515610220860152828260901c161515610240860152828260981c161515610260860152828260a01c161515610280860152828260a81c1615156102a0860152828260b01c1615156102c0860152828260b81c1615156102e08601521c16151561030083015260ff8160c81c16151561032083015260ff8160d01c16151561034083015260ff8160d81c16151561036083015260ff8160e01c16151561038083015260ff8160e81c1615156103a083015260ff8160f01c1615156103c083015260f81c15156103e082015201940192018492939162000662565b634e487b7160e01b6080515260216004526024608051fd5b6020366003190112620001e6576004356001600160401b038111620001e657620017e190369060040162004310565b80516001600160a01b0390620018349082166200182b6200180c620018063362016721565b6200594e565b620018246200181e8688511662016721565b620059b4565b9062005a0b565b90331462005a52565b6080519060208301915b82518051821015620018ab57906200189f620018a592846200186284339362005af1565b515116146200189862001879620018063362016721565b620018246200181e886200188f888c5162005af1565b51511662016721565b9062005a52565b62005a85565b6200183e565b620018cf620018ba8662006e8c565b6040519182916020835260208301906200400b565b0390f35b34620001e6576020366003190112620001e657600435612710811015620004c95760031b60018101546002820154916200194360056200192460068401549362000589604051809481930162005166565b604051948594855260208501526080604085015260808401906200400b565b9060608301520390f35b34620001e65760805180600319360112620001e357620138828054620019738162003edb565b9162001983604051938462003eb7565b8183526020830190608051526080516020812090915b83831062001b4e578462013883908154620019b48162003edb565b92620019c4604051948562003eb7565b8184526020840190608051526080516020812090915b83831062001a105762001a0185620018cf8860405193849360408552604085019062004f51565b90838203602085015262004f51565b60405162001a1e8162003e46565b62001a2e60ff845416826200534e565b6001830154602082015260028301805462001a498162003edb565b9162001a59604051938462003eb7565b818352602083019060805152608051906020822091905b83821062001ae8575050505060019282602092604060069501526003860154606082015260405162001aab81620005898160048b0162005166565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e0820152815201920192019190620019da565b6007602060019260405162001afd8162003e2a565b8654815262001b1960ff86890154818116620012168162004dc4565b62001b276002880162005272565b608082015262001b3a600388016200547e565b60a082015281520193019101909162001a70565b60405162001b5c8162003e46565b62001b6c60ff845416826200534e565b6001830154602082015260028301805462001b878162003edb565b9162001b97604051938462003eb7565b818352602083019060805152608051906020822091905b83821062001c26575050505060019282602092604060069501526003860154606082015260405162001be981620005898160048b0162005166565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e082015281520192019201919062001999565b6007602060019260405162001c3b8162003e2a565b8654815262001c5760ff86890154818116620012168162004dc4565b62001c656002880162005272565b608082015262001c78600388016200547e565b60a082015281520193019101909162001bae565b34620001e6576020366003190112620001e6576001600160a01b0362001cb162003dc7565b166080515262013885602052602060406080512054604051908152f35b34620001e657602080600319360112620001e6576004359062001d0f478311156200189862001cfd8562005e80565b62001d084762005e80565b9062005b39565b3360805152604062001d866201388580845262001d5c8360805120548611156200189862001d3d8862005e80565b336080515284885262001d5587608051205462005e80565b9062005ba5565b336080515280845262001d758584608051205462005e45565b92906200189862001d3d8862005e80565b33608051528352608051908282205520541562001dca575b5060805180808381949382941562001dc0575b3390f1156200034c5760805180f35b506108fc62001db1565b6201388680549162001ddc8362005c0d565b9160805193845b81811062001ed257505062001df88462005c0d565b805191906001600160401b03831162001eba57839062001e188462005d7e565b0190608051526080519280842090845b84811062001e9e5750505050505b82811062001e4657505062001d9e565b62001e98906200189f6001600160a01b0362001e63838662005af1565b511662001e708362005c62565b9080546001600160a01b0360039390931b83811b80199092169390941690931b909216179055565b62001e36565b83516001600160a01b0316838201559281019260010162001e28565b634e487b7160e01b6080515260416004526024608051fd5b62001edd8162005c62565b90546001600160a01b03916003913391831b1c83160362001f0c575b505062001f069062005a85565b62001de3565b9662001f3c91839862001f2362001f069562005c62565b9054911b1c1662001f35828962005af1565b5262005a85565b95908862001ef9565b34620001e65760805180600319360112620001e357506202712680546001600160a01b0319163317905562027129805460ff1916600190811790915560405190919062001f928162003e9b565b608051905262013882805482825580620022a1575b506080515260405162001fba8162003e9b565b6080519052608051806200228a5750620138839081548183558062002208575b5050608051526127106202712a5560405162001ff68162003e7f565b8181526080515b6020808210156200207057604051602092916200201a8262003e2a565b608051825260805181830152608051604083015260805160609081840152806080840152604051906200204d8262003df8565b80825280838301528060408301528082015260a083015282850101520162001ffd565b83620021f584604051620020848162003e9b565b6080518152604051620020978162003e9b565b6080518152604051620020aa8162003e9b565b6080518152604051620020bd8162003e9b565b608051815260405191620020d18362003e9b565b608051835260405193620020e58562003df8565b845260208401526040830152606082015260405191620021058362003e2a565b60805183526003602084015260805160408401526080516060840152608083015260a0820152620021368262005aab565b52620021428162005aab565b506200219d604051620021558162003e46565b6004815284602082015282604082015260805160608201526040516200217b8162003e9b565b608051815260808201528460a08201528460c08201528460e082015262006a18565b60405190620021ac8262003e46565b6002825283602083015260408201526080516060820152604051620021d18162003e9b565b608051815260808201528260a08201528260c082015260805160e082015262006a65565b6113886201388b556201388c5560805180f35b600691818302918383040362002276578060209160805284815220908101905b81811062002237575062001fda565b829060805180825586820155620022516002820162006265565b60805160038201556200226760048201620060f7565b60805160058201550162002228565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b90526041600452608051602490fd5b600690808202908282040362002310578360805282845260208420908101905b818110620022d157505062001fa7565b829060805180825587820155620022eb6002820162006265565b60805160038201556200230160048201620060f7565b608051600582015501620022c1565b634e487b7160e01b84526011600452602484fd5b34620001e65760805180600319360112620001e3576020604051338152f35b34620001e65760805180600319360112620001e35760206202712d54604051908152f35b34620001e6576040366003190112620001e6576004356001600160401b038111620001e6576200239c90369060040162004032565b6024356001600160401b038111620001e657620023be90369060040162004310565b620271298054600260ff8216620023d58162003f71565b146200330c5760ff191660021790556202712e546001810190811062002fd057806202712e5560805190815b84518110156200246457826002620024256200241e848962005af1565b5162014725565b5001541062002440575b6200243a9062005a85565b62002401565b91506200243a6002620024586200241e858862005af1565b5001549290506200242f565b50919060805191825b8551811015620024ca57620024876200241e828862005af1565b508460038092015410620024a8575b50620024a29062005a85565b6200246d565b819450620024bf6200241e620024a2938962005af1565b500154939062002496565b508493608051526202712b60205260805190604082209160018060a01b0382511660018060a01b03198454161783556020820151805191600160401b83116200228a5750600184015482600186015580831062003130575b50608080516001860190525160208082209392015b82821062002a9f575050505090600260406200255793015191016200648b565b62002563835162005c0d565b6202712e54608051526202712b60205260805190600560408320019080519260018060401b0384116200228a5750602090620025a0848462005e25565b01906080515260805160208120905b83811062002a8a5750505050620025c7835162005c0d565b6202712e54608051526202712b60205260805190600460408320019080519260018060401b0384116200228a575060209062002604848462005e25565b01906080515260805160208120905b83811062002a7557505050506200262b835162005c0d565b906202712e54608051526202712b602052608051600660408220019280519160018060401b0383116200228a575060209062002668838662005e25565b0192608051526080519260208420845b83811062002a60575050505062002690904262006ce3565b90916202712e5490526202712b602052600760406080512001551562002a20576202712e54608051526202712b60205260406008620026d9608051936007848620015462006ce3565b92909320015515620029dd576202712e54608051526202712b602052600960406080512001600260ff1982541617905562002715815162005c0d565b6202712e54608051526202712b602052608051600360408220019180519160018060401b0383116200228a575060209062002751838562005e25565b0191608051526080519160208320835b838110620029c85785855b8151811015620027d157806200189f6200278b620027cb938562005af1565b516202712e54608051526202712b602052620027b08360036040608051200162005d10565b90919082549060031b600019811b9283911b16911916179055565b6200276c565b50608051905b8051821015620029c2576202712e549182608051526202712b602052620028186200280b8260036040608051200162005d10565b90549060031b1c62014725565b505490620028268262005c0d565b916080515b81811062002974575050608051805b83518210156200293f5762002850828562005af1565b516127109081811015620004c95760031b6001015462002871848762005af1565b5191821015620004c95760066200288e9260031b01549062006b9b565b9015620028fb57620028a09162006ce3565b919015620028ba57620028b39062005a85565b906200283a565b60405162461bcd60e51b8152602060048201526019602482015278746f74616c566f74696e67506f776572206f766572666c6f7760381b6044820152606490fd5b606460405162461bcd60e51b815260206004820152602060248201527f63757272656e74436c617373566f74696e67506f776572206f766572666c6f776044820152fd5b90506200189f9192506200296d9394608051526202712b602052620027b08360066040608051200162005d10565b90620027d7565b620029bc9086608051526202712b602052620029a981620029a26200280b8760036040608051200162005d10565b5062005d10565b90549060031b1c62001f35828762005af1565b6200282b565b60805180f35b60019060208451940193818401550162002761565b60405162461bcd60e51b815260206004820152601b60248201527a657865637574696e6720656e642074696d65206f766572666c6f7760281b6044820152606490fd5b60405162461bcd60e51b8152602060048201526018602482015277766f74696e6720656e642074696d65206f766572666c6f7760401b6044820152606490fd5b60019060208451940193818401550162002678565b60019060208451940193818401550162002613565b600190602084519401938184015501620025af565b805180518554602083015190916001600160a01b03169060268110156200179a576001600160a81b03199092161760a09190911b60ff60a01b16178555604001518051805190600187019060209062002af9848462006188565b019060805152608051906020822091905b83821062003110575050505060208101518051906001600160401b03821162001eba576020600288019162002b40848462015919565b019060805152608051916020832090835b8160051c8110620030d55750601f198116810362003092575b5050506040820151805191600160401b83116200228a5750600387015482600389015580831062003009575b506080805160038901905251602080822092015b83821062002fe857505050506060810151805190600160401b821162001eba57600487015482600489015580831062002f4b575b506080805160048901905251602080822092015b83821062002f2a5750505050608081015180516001600160401b03811162001eba576020600588019262002c27838562015919565b0191608051526080519060208220915b8160051c811062002eea5750601f198116810362002e9c575b5050506006850160a0820151602081519162002c6d838562006216565b0191608051526080516020812090925b82841062002e3657505050506007850160c0820151602081519162002ca3838562006216565b0191608051526080516020812090925b82841062002dc7575050505060e001518051906001600160401b03821162001eba5762002cf38262002ce9600889015462005129565b6008890162006441565b60805190602091601f841160011462002d4c575092826009936020936001966080519262002d40575b5050600019600383901b1c191690851b1760088801555b0194019101909262002537565b015190508e8062002d1c565b600888019052608051602081209291905b601f198516811062002dae575083602093600196938793600997601f1981161062002d94575b505050811b01600888015562002d33565b015160001960f88460031b161c191690558e808062002d83565b9192602060018192868501518155019401920162002d5d565b80518051906001600160401b03821162001eba5760209062002dea838662005e25565b01836080515260805160208120905b83811062002e1857505050506001602081920192019301929062002cb3565b82516001600160a01b03168183015560209092019160010162002df9565b80518051906001600160401b03821162001eba5760209062002e59838662005e25565b01836080515260805160208120905b83811062002e8757505050506001602081920192019301929062002c7d565b60019060208451940193818401550162002e68565b60805192835b601f1983168303811062002ec057505060051c01558a808062002c50565b9093602062002ee06001928488519162002eda8362004dc4565b62015983565b9501910162002ea2565b608051805b6020811062002f0657508382015560010162002c37565b9490602062002f206001928885519162002eda8362004dc4565b9201950162002eef565b600660208262002f3e6001945187620065a1565b0193019101909162002bf2565b600681810204810362002fd057600683810204830362002fd05760048801608051526020608051208360060281015b826006028201811062002f8f57505062002bde565b600690608051808255600182015562002fab6002820162006265565b608051600382015562002fc160048201620060f7565b60805160058201550162002f7a565b634e487b7160e01b6080515260116004526024608051fd5b600760208262002ffc6001945187620157d7565b0193019101909162002baa565b600781810204810362002fd057600783810204830362002fd05760038801608051526020608051208360070281015b82600702820181106200304d57505062002b96565b806200305b60079262005da2565b60805180600183015580600283015580600383015560048201556200308360058201620060f7565b60805160068201550162003038565b8392845b601f19831683038110620030b457505060051c01558b808062002b6a565b90936020620030cb60019284885115159162015983565b9501910162003096565b84855b60208110620030ef57508382015560010162002b51565b949060206200310660019288855115159162015983565b92019501620030d8565b600160208262003123839451876200648b565b0193019101909162002b0a565b600981810204810362002fd057600983810204830362002fd05760018501608051526020608051208360090281015b82600902820181106200317457505062002522565b6080518155620031876001820162006149565b6200319d600282018054906080518155620158f1565b6003810154608051806003840155816200329a575b505060048101546080518060048401558162003215575b505080620031e46005600993018054906080518155620158f1565b620031f260068201620061d7565b6200320060078201620061d7565b6200320e60088201620060f7565b016200315f565b60068281020482036200328357506004820160805152602060805120906006028101905b81811015620031c95760069060805180825560018201556200325e6002820162006265565b60805160038201556200327460048201620060f7565b60805160058201550162003239565b634e487b7160e01b90526011600452608051602490fd5b60078281020482036200328357506003820160805152602060805120906007028101905b81811015620031b25780620032d560079262005da2565b6080518060018301558060028301558060038301556004820155620032fd60058201620060f7565b608051600682015501620032be565b60405162461bcd60e51b815260206004820152601d60248201527f766f74696e6720697320616c726561647920696e2070726f67726573730000006044820152606490fd5b34620001e6576020366003190112620001e657600435612710811015620004c957620033876004620018cf9260031b01620053c5565b6040519182918262003f92565b34620001e65760805180600319360112620001e3576040518062013881918254808252602080920193608051526080519180832092905b828210620033e657620018cf85620033878189038262003eb7565b83546001600160a01b031686529485019460019384019390910190620033cb565b34620001e657602080600319360112620001e6576200342562003dc7565b604051620034338162003df8565b60805181526080518382015260606040820152606060805191015260018060a01b03166080515262013880815260406080512060405190620034758262003df8565b620034f081549160ff83161515845260ff8585019360081c1615158352600260405191620034b483620034ac816001850162005166565b038462003eb7565b6040860192835201549260608501938452604051958695818752511515908601525115156040850152516080606085015260a08401906200400b565b905160808301520390f35b34620001e65760805180600319360112620001e35760206202712e54604051908152f35b34620001e6576020366003190112620001e657600435612710811015620004c957620035666200355e826200044f600260209560031b01549162006c21565b919062006ad1565b604051908152f35b34620001e65760805180600319360112620001e3576201388b54620035cd620035966201620c565b91620035a86127109384831062005a52565b620035c26201388e546201388c541115620018986201627a565b6201388d5462006b9b565b919050620035da620162d0565b5060805191825b82811062003604575b6020620035fa8585850462006d71565b9050604051908152f35b909260ff60078360031b015416156200364e5781620036386200364492620036316200189f969562006b3e565b9062006ce3565b949062001898620162d0565b92909192620035e1565b9290620035ea565b34620001e6576020366003190112620001e65760206200367860043562015aeb565b62003687604051809262003fd8565bf35b34620001e657602080600319360112620001e657600435620036b7478211156200189862001cfd8462005e80565b33608051526201388790818352620037016040608051205482111562001898620036e18462005e80565b3360805152858752620036fa6040608051205462005e80565b9062005ffa565b3360805152818352620037496200371f826040608051205462005e45565b919062001898620037308562005e80565b3360805152868852620036fa6040608051205462005e80565b336080515282845260805180809381936040832055818115620038bf575b3390f1156200034c573360805152815260406080512054156200378a5760805180f35b62013888908154906200379d8262005c0d565b9260805192835b81811062003853575050620037b98362005c0d565b805191906001600160401b03831162001eba578390620037d98462005d42565b0190608051526080519280842090845b848110620038375750505050505b81811062003807575050620029c2565b62003831906200189f6001600160a01b0362003824838762005af1565b511662001e708362005c45565b620037f7565b83516001600160a01b03168382015592810192600101620037e9565b6200385e8162005c45565b90546001600160a01b03916003913391831b1c8316036200388d575b5050620038879062005a85565b620037a4565b95620038b6918397620038a4620038879562005c45565b9054911b1c1662001f35828a62005af1565b9490876200387a565b506108fc62003767565b34620001e65760805180600319360112620001e3576040518062013886918254808252602080920193608051526080519180832092905b8282106200391b57620018cf85620033878189038262003eb7565b83546001600160a01b03168652948501946001938401939091019062003900565b34620001e6576040366003190112620001e6576024356001600160a01b0381169060043590829003620001e657612710811015620004c95760039160805152811b01602052602060406080512054604051908152f35b34620001e65760805180600319360112620001e3576040518062013888918254808252602080920193608051526080519180832092905b828210620039e457620018cf85620033878189038262003eb7565b83546001600160a01b031686529485019460019384019390910190620039c9565b34620001e65760805180600319360112620001e357602060ff6202712954166040519062003a338162003f71565b8152f35b34620001e6576040366003190112620001e65762003a5462003dc7565b60249081356001600160401b038111620001e65762003a7890369060040162003f01565b91600260ff62027129541662003a8e8162003f71565b0362003d65576202712d5442101562003d275760018060a01b0382169182608051526202712c906020938285526080519560408720966202712e978854809252875260ff604060805120541662003ce95781519481608051526202712b938489526003968760406080512001540362003c8357608051528752608051906040822091528652608051966040882060019889918260ff19825416179055905b62003b375760805180f35b825181101562003c7d5762003b4d818462005af1565b511562003c04578154806080515284895262003ba962003b8c62003b7a8460046040608051200162005d10565b9054908a1b1c62003631858a62015997565b909260805152868b52620027b08460046040608051200162005d10565b1562003bc15762003bba9062005a85565b8862003b2c565b60405162461bcd60e51b815260048101899052601c818901527b766f74696e6720666f7220706f776572596573206f766572666c6f7760201b6044820152606490fd5b8154806080515284895262003c2a62003b8c62003b7a8460046040608051200162005d10565b1562003c3b5762003bba9062005a85565b60405162461bcd60e51b815260048101899052601b818901527a766f74696e6720666f7220706f7765724e6f206f766572666c6f7760281b6044820152606490fd5b620029c2565b60405162461bcd60e51b8152600481018a90526039818a01527f746865206e756d626572206f6620766f74657320646f6573206e6f74206d6174604482015278636820746865206e756d626572206f6620706f6c696369657360381b6064820152608490fd5b60405162461bcd60e51b815260048101889052601781880152761d9bdd195c881a185cc8185b1c9958591e481d9bdd1959604a1b6044820152606490fd5b60649060176040519162461bcd60e51b835260206004840152820152761d9bdd1a5b99c81c195c9a5bd9081a185cc8195b991959604a1b6044820152fd5b60649060196040519162461bcd60e51b83526020600484015282015278766f74696e67206973206e6f7420696e2070726f677265737360381b6044820152fd5b3462003dc3578160031936011262003dc35760209062027127548152f35b5080fd5b600435906001600160a01b038216820362003dde57565b600080fd5b35906001600160a01b038216820362003dde57565b608081019081106001600160401b0382111762003e1457604052565b634e487b7160e01b600052604160045260246000fd5b60c081019081106001600160401b0382111762003e1457604052565b61010081019081106001600160401b0382111762003e1457604052565b606081019081106001600160401b0382111762003e1457604052565b604081019081106001600160401b0382111762003e1457604052565b602081019081106001600160401b0382111762003e1457604052565b601f909101601f19168101906001600160401b0382119082101762003e1457604052565b6001600160401b03811162003e145760051b60200190565b3590811515820362003dde57565b81601f8201121562003dde5780359162003f1b8362003edb565b9262003f2b604051948562003eb7565b808452602092838086019260051b82010192831162003dde578301905b82821062003f57575050505090565b83809162003f658462003ef3565b81520191019062003f48565b6004111562003f7c57565b634e487b7160e01b600052602160045260246000fd5b6020908160408183019282815285518094520193019160005b82811062003fba575050505090565b83516001600160a01b03168552938101939281019260010162003fab565b90600382101562003f7c5752565b60005b83811062003ffa5750506000910152565b818101518382015260200162003fe9565b90602091620040268151809281855285808601910162003fe6565b601f01601f1916010190565b81601f8201121562003dde578035916200404c8362003edb565b926200405c604051948562003eb7565b808452602092838086019260051b82010192831162003dde578301905b82821062004088575050505090565b8135815290830190830162004079565b6001600160401b03811162003e1457601f01601f191660200190565b81601f8201121562003dde57803590620040ce8262004098565b92620040de604051948562003eb7565b8284526020838301011162003dde57816000926020809301838601378301015290565b9080601f8301121562003dde578135906200411c8262003edb565b926200412c604051948562003eb7565b828452602092838086019160051b8301019280841162003dde57848301915b8483106200415c5750505050505090565b82356001600160401b03811162003dde5786916200418084848094890101620040b4565b8152019201916200414b565b9080601f8301121562003dde57813590620041a78262003edb565b92620041b7604051948562003eb7565b828452602092838086019160051b8301019280841162003dde57848301915b848310620041e75750505050505090565b82356001600160401b03811162003dde5786916200420b8484809489010162004032565b815201920191620041d6565b9080601f8301121562003dde57813591620042328362003edb565b92604092620042448451958662003eb7565b8185526020938486019185600594851b8601019481861162003dde57868101935b8685106200427857505050505050505090565b84356001600160401b03811162003dde57820183603f8201121562003dde578881013590620042a78262003edb565b91620042b68751938462003eb7565b808352868b8401918a1b8301019186831162003dde5791878c94929593015b818110620042ee57505082935081520194019362004265565b919380919395620042ff8462003de3565b8152019101918b93919492620042d5565b6060918161086052806108e052031262003dde57604051620043328162003e63565b8091620043426108605162003de3565b82526108605160208101356109208190526001600160401b03811162003dde576108e051910190601f8201121562003dde5762004389620043979135806109605262003edb565b604051806108a05262003eb7565b6108a05161096051905260206108a05101926108e051610960519060206109205161086051019260051b8301011162003dde576020016108c05290925b6109605160051b6109205161086051019060206108c0519183010181101562004d8457356001600160401b03811162003dde57606091018061088052601f19906108e05103011262003dde576040516200442e8162003e63565b6200443f6020610880510162003de3565b81526040610880510135602681101562003dde5760208201526108805160608101356109408190526001600160401b031062003dde5761010090601f19906060810135016108e05103011262003dde57620044a1604051806109805262003e46565b6109405161088051016020810135906001600160401b03821162003dde576020620044d3926108e05192010162004101565b61098051526109405161088051016040810135906001600160401b03821162003dde5760206200450a926108e05192010162003f01565b6109805160200152610940516108805101926001600160401b0360608501351162003dde576108e051603f6060860135860101121562003dde5762004559602060608601358601013562003edb565b9462004569604051968762003eb7565b60608501358086016020908101358089526108e0516109405161088051938b01969493019092019160059190911b82016040011162003dde57604001925b61094051610880510160608801359081019088016020013560051b8101604001851015620046d6578435906001600160401b03821162003dde57016108e0519160e09283603f19848303011262003dde57604051908482016001600160401b03811183821017620046c1576040908152840135906001600160401b03821162003dde5760406200463a9286010162004032565b815260608301356020820152608080840135604083015260a09485850135606084015260c0916200466d83870162003ef3565b90840152840135946001600160401b03861162003dde5761010060209695620046b192620046a6899860406108e05191850101620040b4565b908601520162003ef3565b90820152815201930192620045a7565b60246000634e487b7160e01b81526041600452fd5b505095915091935094919460406109805101526109405161088051019460808601356109005260018060401b0360808701351162003dde576108e0519560808101350195603f8701121562003dde5762004734602087013562003edb565b9462004744604051968762003eb7565b6020878101358088526108e051610900516109405161088051948b01989401019160051b82016040011162003dde576040909893929897949701935b61090051610940516108805101016040602086013560051b82010186101562004bc45785356108408190526001600160401b031062003dde5761010090603f19908735016108e05103011262003dde5760405193620047df8562003e46565b6040610840516109005161094051610880510101010135600681101562003dde57855260606108405161090051610940516108805101010101356020860152610840516109005161094051610880510101019960018060401b0360808c01351162003dde576108e051605f60808d01358d0101121562003dde578a9062004870604060808401358401013562003edb565b9a620048806040519c8d62003eb7565b608083013592830160400135808d526108e051610840516109005161094051610880510101019094019360208e01939160051b85016060011162003dde579192606001915b6108405161090051610940516108805101010160808f0135908101908f016040013560051b810160600184101562004acb578335906001600160401b03821162003dde5760c0605f198383016108e05103011262003dde57604051916001600160401b0360c0840190811190841117620046c15760c083016040528181016060810135845260800135600581101562003dde57602084015260a08183010135600481101562003dde576040840152603d60c08284010135101562003dde5781810160c081013560608501526001600160401b0360e0909101351162003dde576108e051620049bf9083830160e08101350160600162004032565b60808401528181016101000135916001600160401b03831162003dde5701016080605f19826108e05103011262003dde578f956040519262004a018462003df8565b60608301356001600160401b03811162003dde576108e05162004a2991850160600162004101565b845260808301356001600160401b03811162003dde576108e05162004a539185016060016200418c565b602085015260a08301356001600160401b03811162003dde576108e05162004a8091850160600162004217565b604085015260c0830135936001600160401b03851162003dde5762004ab360209594606087966108e051920101620040b4565b606082015260a08201528152019301929350620048c5565b509697939c509798939a915050604082015260a091826108405161090051610940516108805101010101356060830152610840516109005161094051610880510101019160c093848401359460018060401b03861162003dde5762004b3e60209695604088976108e051920101620040b4565b608084015260e09162004b6583610840516109005161094051610880510101010162003ef3565b9084015262004b8a610100610840516109005161094051610880510101010162003ef3565b9083015262004baf610120610840516109005161094051610880510101010162003ef3565b90820152815201950193969792919762004780565b50610980516060015261094051610880519198910196919450925090506001600160401b0360a08601351162003dde576108e0519460a0810135810195603f8701121562003dde5762004c1b602087013562003edb565b9262004c2b604051948562003eb7565b6020878101358086526108e051610940516108805193880196930160a0860135019160051b82016040011162003dde57604001935b604060208a013560051b60a086013561094051610880510101010185101562004c9e578435600581101562003dde5781526020948501940162004c60565b5096509694939291505060806109805101526109405161088051019160c092838101359060018060401b03821162003dde57602062004ce4926108e0519201016200418c565b6109805160a00152610940516108805160e094910184810135906001600160401b03821162003dde57602062004d21926108e05192010162004217565b6109805190910152610940516108805101926101008401356001600160401b03811162003dde576108e05160209562004d5d92018601620040b4565b906109805101526109805160408201528152019260206108c051016108c0529092620043d4565b50506108a051602084015250610860519092919060408101356001600160401b03811162003dde576108e05160409262004dbf9201620040b4565b910152565b6005111562003f7c57565b90815180825260208080930193019160005b82811062004df0575050505090565b83518552938101939281019260010162004de1565b908082519081815260208091019281808460051b8301019501936000915b84831062004e345750505050505090565b909192939495848062004e54600193601f198682030187528a516200400b565b980193019301919493929062004e23565b90815180825260208092019182818360051b82019501936000915b84831062004e915750505050505090565b909192939495848062004ead83856001950387528a5162004dcf565b980193019301919493929062004e80565b90815180825260208092019182818360051b8201950193600080925b85841062004eec575050505050505090565b9091929387828297989903855288519082808351928381520192019085905b80821062004f2d57505050908060019299019401940192959493919062004eda565b82516001600160a01b03168452899493840193909201916001919091019062004f0b565b90815180825260208092019081926005928183851b82019601946000915b84831062004f81575050505050505090565b9091929394959681810383528751906101008082018351600681101562003f7c579083929189945283850151848401528a60409182870151938386015283518091528561012082818801941b8701019401926000905b828210620050425750505050509282916200500c6001956060808501519084015260808085015190848303908501526200400b565b9160a08082015115159083015260c08082015115159083015260e080910151151591015299019301930191959493929062004f6f565b9193959650919361011f19878203018552855190815181528c820151620050698162004dc4565b8d820152828201516200507c8162003f71565b8382015260609081830151603d81101562003f7c576001938f9383620051179382879601528162005107620050f6620050e56080620050c88189015160c080848a015288019062004dcf565b9560a0809901519881880391015287519080875286019062004e05565b888701518582038a87015262004e65565b8a8601518482038c86015262004ebe565b930151918184039101526200400b565b9701950192018b969594939162004fd7565b90600182811c921680156200515b575b60208310146200514557565b634e487b7160e01b600052602260045260246000fd5b91607f169162005139565b9060009291805491620051798362005129565b918282526001938481169081600014620051e057506001146200519d575b50505050565b90919394506000526020928360002092846000945b838610620051cb57505050500101903880808062005197565b805485870183015294019385908201620051b2565b9294505050602093945060ff191683830152151560051b0101903880808062005197565b908154620052128162003edb565b92604093620052248551918262003eb7565b828152809460208092019260005281600020906000935b8585106200524b57505050505050565b60018481928451620052638162000589818a62005166565b8152019301940193916200523b565b9060405191828154918282526020928383019160005283600020936000905b828210620052ac57505050620052aa9250038362003eb7565b565b85548452600195860195889550938101939091019062005291565b60405190919060e081016001600160401b0381118282101762003e145760405260c060ff60068395620052fa8162005272565b855260018101546020860152600281015460408601526003810154606086015282600482015416151560808601526040516200533f8162000589816005860162005166565b60a08601520154161515910152565b600682101562003f7c5752565b603d82101562003f7c5752565b908154620053768162003edb565b9262005386604051948562003eb7565b818452600090815260208082208186015b848410620053a6575050505050565b6001838192620053b68562005272565b81520192019301929062005397565b9060405191828154918282526020928383019160005283600020936000905b828210620053fd57505050620052aa9250038362003eb7565b85546001600160a01b031684526001958601958895509381019390910190620053e4565b9081546200542f8162003edb565b926200543f604051948562003eb7565b818452600090815260208082208186015b8484106200545f575050505050565b60018381926200546f85620053c5565b81520192019301929062005450565b9060036060604051620054918162003df8565b620054dc8195620054a28162005204565b8352620054b26001820162005368565b6020840152620054c56002820162005421565b6040840152620034ac604051809681930162005166565b0152565b9190606081019060018060a01b03845116815260208401519160606020830152825180915260808201602060808360051b85010194019160005b81811062005542575050505060406200553f939401519060408184039101526200400b565b90565b848603607f19018352835180516001600160a01b031687526020810151949693949293919290602682101562003f7c576040916020840152015190606060408201526200559e8251610100606084015261016083019062004e05565b602083810151838303605f190160808501528051808452928201929101906000905b8082106200593357505050604083015190605f198382030160a0840152815180825260208201906020808260051b85010194019260005b828110620058ae575050505050606083015190605f198382030160c0840152815190818152602081016020808460051b8401019401926000925b818410620056fa575050505050608083015190605f198382030160e0840152602080835192838152019201906000905b808210620056d657505050620056c98360209360e0620056b26200569a879660a060019a0151605f198683030161010087015262004e65565b60c0850151848203605f190161012086015262004ebe565b92015190610140605f19828503019101526200400b565b970194019291016200551a565b9091926020806001928651620056ec8162004dc4565b815201940192019062005661565b9091929394601f9e9d9c9e198282030184528551908151600681101562003f7c5781526020820151602082015260408201516101006040830152610100820181518091526101206020818501918360051b8601019301916000905b808210620057c257505050509e9f9d9e826020926200578e8493606060019701516060840152608084015183820360808501526200400b565b9160a0810151151560a083015260c0810151151560c083015260e08091015115159101529701940194019293919062005631565b9091929361011f19868203018452845190815181526020820151620057e78162004dc4565b60208201526040820151620057fc8162003f71565b6040820152606082015191603d83101562003f7c57620058a1826020939260019560608695015260a062005840608083015160c0608086015260c085019062004dcf565b9101519160a081830391015260606200588f6200587c6200586b855160808652608086019062004e05565b878601518582038987015262004e65565b6040850151848203604086015262004ebe565b9201519060608184039101526200400b565b9601940192019062005755565b9091929394602080600192601f1986820301885288519062005918620058dd835160e080855284019062004dcf565b8484015185840152604084015160408401526060840151606084015260808401511515608084015260a084015183820360a08501526200400b565b60c092830151151591909201529701950193929101620055f7565b909192602080600192865115158152019401920190620055c0565b90620052aa604560405180947f496e76616c69642070726f6772616d20616464726573732e204d73672e73656e60208301526403232b91d160dd1b6040830152620059a3815180926020868601910162003fe6565b810103602581018552018362003eb7565b90620052aa6040805180947f2c20616e642070726f6772616d206f70657261746f7220616464726573733a206020830152620059fa815180926020868601910162003fe6565b810103602081018552018362003eb7565b6020620052aa91939293604051948162005a2f879351809286808701910162003fe6565b820162005a458251809386808501910162003fe6565b0103808552018362003eb7565b1562005a5b5750565b60405162461bcd60e51b81526020600482015290819062005a819060248301906200400b565b0390fd5b600019811462005a955760010190565b634e487b7160e01b600052601160045260246000fd5b80511562005ab95760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101562005ab95760400190565b80516002101562005ab95760600190565b805182101562005ab95760209160051b010190565b7f496e76616c696420776974686472617720616d6f756e742e20416d6f756e743a8152600160fd1b602082015260210190565b600f620052aa916020949360405195869262005b6962005b5b83860162005b06565b918281519485920162003fe6565b016e0161030b732103130b630b731b29d1608d1b815262005b94825180936020878501910162003fe6565b010360101981018552018362003eb7565b6019620052aa916020949360405195869262005bc762005b5b83860162005b06565b01780161030b732103bb4ba34323930bbb0b136329031b0b9b41d1603d1b815262005bfc825180936020878501910162003fe6565b010360061981018552018362003eb7565b9062005c198262003edb565b62005c28604051918262003eb7565b828152809262005c3b601f199162003edb565b0190602036910137565b62013888805482101562005ab95760005260206000200190600090565b62013886805482101562005ab95760005260206000200190600090565b62013881805482101562005ab95760005260206000200190600090565b6202711d805482101562005ab95760005260206000200190600090565b6201388a805482101562005ab95760005260206000200190600090565b62027119805482101562005ab95760005260206000200190600090565b6202711b805482101562005ab95760005260206000200190600090565b805482101562005ab95760005260206000200190600090565b81811062005d35575050565b6000815560010162005d29565b600160401b811162003e1457620138889081549080835581811062005d6657505050565b620052aa926000526020600020918201910162005d29565b600160401b811162003e1457620138869081549080835581811062005d6657505050565b8054600082558062005db2575050565b620052aa9160005260206000209081019062005d29565b600160401b811162003e1457620271199081549080835581811062005d6657505050565b600160401b811162003e14576202711b9081549080835581811062005d6657505050565b620138918054600082558062005db2575050565b90600160401b811162003e145781549080835581811062005d6657505050565b919082811162005e56576001920390565b50600091508190565b811562005e6a570490565b634e487b7160e01b600052601260045260246000fd5b6000908072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8082101562005feb575b506904ee2d6d415b85acef8160201b8083101562005fdb575b50662386f26fc100008083101562005fcb575b506305f5e1008083101562005fbb575b506127108083101562005fab575b50606482101562005f9a575b600a8092101562005f8f575b6001908160218186019562005f1c8762004098565b9662005f2c604051988962003eb7565b80885262005f3d601f199162004098565b01366020890137860101905b62005f56575b5050505090565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a83530491821562005f895791908262005f49565b62005f4f565b916001019162005f07565b919060646002910491019162005efb565b6004919392049101913862005eef565b6008919392049101913862005ee1565b6010919392049101913862005ed1565b6020919392049101913862005ebe565b60409350810491503862005ea5565b601e620052aa91602094936040519586926200601c62005b5b83860162005b06565b017f2c20616e6420776974686472617761626c65206469766964656e64733a200000815262006055825180936020878501910162003fe6565b010360011981018552018362003eb7565b90620060728262003edb565b604090620060838251918262003eb7565b838152809362006096601f199162003edb565b019160005b838110620060a95750505050565b6020908251620060b98162003e46565b6000815282600081830152606080868401526000818401526080830152600060a0830152600060c0830152600060e08301528286010152016200609b565b62006103815462005129565b90816200610e575050565b81601f6000931160011462006121575055565b818352602083206200613f91601f0160051c81019060010162005d29565b8160208120915555565b80549060008155816200615a575050565b6000526020600020908101905b81811062006173575050565b8062006181600192620060f7565b0162006167565b90600160401b811162003e1457815491818155828210620061a857505050565b600052602060002091820191015b818110620061c2575050565b80620061d0600192620060f7565b01620061b6565b8054906000815581620061e8575050565b6000526020600020908101905b81811062006201575050565b806200620f60019262005da2565b01620061f5565b90600160401b811162003e14578154918181558282106200623657505050565b600052602060002091820191015b81811062006250575050565b806200625e60019262005da2565b0162006244565b80546000808355816200627757505050565b6007928284029284840403620062f857815260208120918201915b828110620062a05750505050565b8082859255826001820155620062b96002820162005da2565b620062c76003820162006149565b620062d560048201620061d7565b620062e360058201620061d7565b620062f160068201620060f7565b0162006292565b634e487b7160e01b82526011600452602482fd5b600160401b821162003e14578054908281558183106200632b57505050565b600792828402928484040362005a9557808402908482040362005a955760009182526020822092830192015b828110620063655750505050565b80828592558260018201556200637e6002820162005da2565b6200638c6003820162006149565b6200639a60048201620061d7565b620063a860058201620061d7565b620063b660068201620060f7565b0162006357565b51600681101562003f7c5790565b90600681101562003f7c5760ff80198354169116179055565b90620063f08162004dc4565b60ff80198354169116179055565b906200640a8162003f71565b61ff0082549160081b169061ff001916179055565b90603d81101562003f7c5762ff000082549160101b169062ff00001916179055565b9190601f81116200645157505050565b620052aa926000526020600020906020601f840160051c8301931062006480575b601f0160051c019062005d29565b909150819062006472565b81519192916001600160401b03811162003e1457620064b781620064b0845462005129565b8462006441565b602080601f8311600114620064f6575081929394600092620064ea575b50508160011b916000199060031b1c1916179055565b015190503880620064d4565b90601f198316958460005282600020926000905b88821062006545575050836001959697106200652b575b505050811b019055565b015160001960f88460031b161c1916905538808062006521565b806001859682949686015181550195019301906200650a565b9060ff801983541691151516179055565b9061ff00825491151560081b169061ff001916179055565b9062ff0000825491151560101b169062ff00001916179055565b8151600681101562003f7c57620065b99082620063cb565b602082015160018201556002810160408301516020815191620065dd83856200630c565b01916000526020600020916000905b8282106200665057505050509060e06005620052aa93606084015160038201556200661f6080850151600483016200648b565b01916200663360a08201511515846200655e565b6200664560c08201511515846200656f565b015115159062006587565b805180518555600185016200667560208301516200666e8162004dc4565b82620063e4565b620066906040830151620066898162003f71565b82620063fe565b6060820151603d81101562003f7c57620066aa916200641f565b60808101518051906001600160401b03821162003e145760206002880191620066d4848462005e25565b0190600052602060002060005b8381106200697f575050505060a0015180518051906020600388019162006709848462006188565b01906000526020600020906000905b8382106200695f575050505060048501602082015160208151916200673e838562006216565b019160005260206000206000925b828410620068fb5750505050600585016040820151602081519162006772838562006216565b019160005260206000206000925b8284106200688e5750505050606001518051906001600160401b03821162003e1457620067c082620067b6600689015462005129565b6006890162006441565b602090601f83116001146200681357928260079360209360019660009262006807575b5050600019600383901b1c191690851b1760068801555b01940191019092620065ec565b015190503880620067e3565b906006870160005260206000209160005b601f198516811062006875575083602093600196938793600797601f198116106200685b575b505050811b016006880155620067fa565b015160001960f88460031b161c191690553880806200684a565b9192602060018192868501518155019401920162006824565b80518051906001600160401b03821162003e1457602090620068b1838662005e25565b0183600052602060002060005b838110620068dd57505050506001602081920192019301929062006780565b82516001600160a01b031681830155602090920191600101620068be565b80518051906001600160401b03821162003e14576020906200691e838662005e25565b0183600052602060002060005b8381106200694a5750505050600160208192019201930192906200674c565b6001906020845194019381840155016200692b565b600160208262006972839451876200648b565b0193019101909162006718565b600190602084519401938184015501620066e1565b62013883805482101562005ab9576000526006602060002091020190600090565b62027116805482101562005ab9576000526006602060002091020190600090565b62013882805482101562005ab9576000526006602060002091020190600090565b62027115805482101562005ab9576000526006602060002091020190600090565b620138828054600160401b81101562003e145762006a3c91600182019055620069d6565b91909162006a4f57620052aa91620065a1565b634e487b7160e01b600052600060045260246000fd5b620138838054600160401b81101562003e145762006a3c9160018201905562006994565b620271168054600160401b81101562003e145762006a3c91600182019055620069b5565b620271158054600160401b81101562003e145762006a3c91600182019055620069f7565b1562006ad957565b60405162461bcd60e51b815260206004820152603760248201527f73756d4469766964656e64576569676874466f72546f6b656e436c6173733a206044820152766469766964656e64576569676874206f766572666c6f7760481b6064820152608490fd5b61271081101562005ab9576200355e816200044f60026200553f9460031b01549162006c21565b90811562006b9257606462006b7e818402938462005e5f565b0362006b8a5760019190565b600091508190565b60019150600090565b9190821562006bb35762006b7e818402938462005e5f565b5060019150600090565b1562006bc557565b60405162461bcd60e51b815260206004820152602e60248201527f746f74616c546f6b656e73506572546f6b656e436c6173733a20746f74616c5460448201526d6f6b656e73206f766572666c6f7760901b6064820152608490fd5b612710811015908162005ab957600390811b906004928383019182549260009582879601935b85871062006c59575050505050505090565b97969091929394959762006cbb5762006caf8862006ca762006c816200189f9a9b8762005d10565b905490881b1c6001600160a01b0316600090815260208990526040812054909462006ce3565b999062006bbd565b95949392919062006c47565b603282634e487b7160e01b6000525260246000fd5b906001820191821062006b8a5760019190565b9190820191821062006b8a5760019190565b6201388b5462006d08620035966201620c565b91905062006d15620162d0565b5060009081925b81841062006d37575b62006d3293500462006d71565b905090565b9160ff60078560031b0154161562006d6a57836200363862006d6392620036316200189f969762006b3e565b9262006d1c565b9162006d25565b90801562006d895762006d849162005e5f565b600191565b5050600090600090565b62013891805490600160401b82101562003e14576001820180825582101562005ab9576000908152602090200180546001600160a01b0319166001600160a01b03909216919091179055565b6201388f805490600160401b82101562003e14576001820180825582101562005ab9576000908152602090200180546001600160a01b0319166001600160a01b03909216919091179055565b6201388180549190600160401b83101562003e14578262001e70916001620052aa9501905562005c7f565b6040519062006e658262003e7f565b60188252772a343290383937b3b930b69034b99032bc32b1baba32b21760411b6020830152565b600091825b6020808401908151805187101562007022578162006eb48862006ebc9362005af1565b5101620075f9565b6026928382101562003f7c57601a91820362006f7a578762006edf915162005af1565b5192828401519081101562003f7c570362006f3857509362006f2962006f319262006f2162006f1a60a060406200189f9a0151015162005aab565b5162005aab565b519062006ce3565b959062007607565b9262006e91565b6064906040519062461bcd60e51b82526004820152601b60248201527a2a34329037b831b7b2329034b9903737ba102820acafa1a0a9a41760291b6044820152fd5b9291905062006f938162006eb489869a979a5162005af1565b8281101562003f7c5760140362006fcc5750509062006f296200189f956200363162006fc58462006f31965162005af1565b5162007654565b62006fde9062006eb485855162005af1565b9081101562003f7c5760151462006ffc575b5062006f319062005a85565b9062006f296200701b956200363162006fc58462006f31965162005af1565b9062006ff0565b505050909250803410600014620070985760405162461bcd60e51b815260206004820152603760248201527f546865207061796d656e74206973206e6f7420656e6f7567682e205468652074604482015276037ba30b6103830bcb6b2b73a1039b437bab6321031329604d1b6064820152608490fd5b8034116200746e575b5062027129805460ff8116620070b78162003f71565b60018103620070ed5750505080620070dd620070d7620070e393620076fb565b62007710565b6200779a565b6200553f62006e56565b620070f88162003f71565b60028114808062007460575b15620071e957505050506200711981620076fb565b15620071aa576200712a81620076fb565b156200716e576200713b906200779a565b604051620071498162003e7f565b60158152742a3432903b37ba329034b99032bc32b1baba32b21760591b602082015290565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c696420766f74652070726f6772616d60601b6044820152606490fd5b60405162461bcd60e51b815260206004820152601760248201527624b73b30b634b2103b37ba34b73390383937b3b930b69760491b6044820152606490fd5b620071f48262003f71565b6003821491828062007452575b15620072df5750505050506200721781620076fb565b156200728f5780620070dd620070d76200723193620076fb565b6040516200723f8162003e63565b603a81527f5468652070656e64696e672070726f6772616d2069732065786563757465642060208201527930b33a32b9103b37ba34b7339030b7321030b8383937bb30b61760311b604082015290565b60405162461bcd60e51b815260206004820152602260248201527f496e76616c696420657865637574696e672070656e64696e672070726f677261604482015261369760f11b6064820152608490fd5b620072ea8162003f71565b818062007443575b8062007435575b1562007323575050505090620070e391600360ff19825416179055620070dd620070d782620076fb565b6200732e8162003f71565b821562007420575b50508062007411575b6200737857505050604051620073558162003e7f565b6013815272283937b3b930b6903a32b936b4b730ba32b21760691b602082015290565b60ff191660011790556200738c81620076fb565b15620073a65780620070dd620070d7620070e393620076fb565b60405162461bcd60e51b815260206004820152603e60248201527f5b4572726f72203030335d5468652070726f6772616d206973206e6f7420612060448201527f76616c696420657865637574652070656e64696e672070726f6772616d2e00006064820152608490fd5b5062027128544210156200733f565b6200742d91925062003f71565b388062007336565b5062027128544210620072f9565b506202712754421015620072f2565b506202712854421062007201565b506202712754421062007104565b60018060a01b0390818351166000526201388590816020526040600020541562007565575b6200749f903462005e45565b90156200752157620074c290838551166000528260205260406000205462006ce3565b929015620074e05783511660005260205260406000205538620070a1565b60405162461bcd60e51b81526020600482015260196024820152782a3432903732bb903130b630b731b29037bb32b9333637bb9760391b6044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527b2a3432903830bcb6b2b73a103932ba3ab9371037bb32b9333637bb9760211b6044820152606490fd5b6000908162013886928354915b828110620075be575b50156200758c575b50905062007493565b85518516600160401b82101562003e145762001e70826200749f956001620075b79501905562005c62565b3862007583565b86620075ca8262005c62565b919054818b51169260031b1c1614620075ee57620075e89062005a85565b62007572565b50506001386200757b565b51602681101562003f7c5790565b156200760f57565b60405162461bcd60e51b815260206004820152601f60248201527f54686520746f74616c207061796d656e7420697320746f6f206c617267652e006044820152606490fd5b6000805b604083019060a06200766e818451015162005acf565b5151841015620076f35762007693846200768c838651015162005acf565b5162005af1565b51925101519283516002101562005ab957620076e2620076dc620076ea93620076d4604096620076cc8660606200189f9b015162005af1565b519062006b9b565b929062007607565b62006ce3565b949062007607565b91905062007658565b509250505090565b6020015151156200770b57600190565b600090565b156200771857565b60405162461bcd60e51b815260206004820152600f60248201526e496e76616c69642070726f6772616d60881b6044820152606490fd5b60809060208152602a60208201527f5468652070726f6772616d2069732064656e6965642062792074686520706c7560408201526967696e2073797374656d60b01b60608201520190565b620077a58162013d65565b516201385c57600681101562003f7c5760038114620138035780620078025760405162461bcd60e51b8152602060048201526016602482015275151a19481c1c9bd9dc985b481a5cc81a5b9d985b1a5960521b6044820152606490fd5b600481036200b0d55750906000905b602083015180518310156200b0cf57826200782c9162005af1565b516020810180516026908181101562003f7c57156200b08c5781518181101562003f7c5760010362007a7a5750506040809101906200787060c08351015162005aab565b51926200789260a062007887818651015162005aab565b519451015162005acf565b5195620078a385518551146201505a565b620078b28551885114620150c0565b60005b8551811015620079f857620078cb818662005af1565b51612710908181101562005ab957600160ff6007620078f39360031b01541615151462015122565b620078ff828a62005af1565b516200790c838862005af1565b51908282101562005ab95760066200792a9260031b01549062006ce3565b9062007937848962005af1565b51918383101562005ab9576006620079549360031b01556201517a565b62007960828a62005af1565b51906200796e838862005af1565b518181101562005ab9576001600160a01b039392620079ae916003908662007997878e62005af1565b5116600052811b0160205287600020549062006ce3565b620079ba848a62005af1565b519283101562005ab95760036200189f93620079f296620079dc878e62005af1565b5116600052811b016020528760002055620151d9565b620078b5565b50939262007a159192965062007a0e906201610e565b9262015ff2565b94519262007a238462003e9b565b60008452600036813760005b835181101562007a5d57806200189f62007a4e62007a57938762005af1565b51878a62015be6565b62007a2f565b509450926020925062007a71915062005a85565b91905062007811565b81518181101562003f7c5760020362007d1c575050604080910180519283519562007aca62007aae60a08097015162005aab565b519562007abf818651015162005acf565b519451015162005ae0565b5193875186510362007cc957875184510362007c7557875185510362007c1e575060005b855181101562007c085762007b04818762005af1565b5190612710918281101562005ab95762007b2a60ff6007809360031b0154161562015232565b62007b36828962005af1565b518381101562005ab95760031b01805460ff1916600117905562007b5b818a62005af1565b5162007b68828962005af1565b51908382101562005ab957600562007b849260031b016200648b565b62007b90818662005af1565b5162007b9d828962005af1565b518381101562005ab95760031b6001015562007bba818762005af1565b5162007bc7828962005af1565b518381101562005ab95760031b6002015562007be4818862005af1565b519182101562005ab9576000600662007c029360031b015562005a85565b62007aee565b5095509390506020925062007a71915062005a85565b5162461bcd60e51b815260206004820152603c6024820152600080516020620168e983398151915260448201527b1b911a5d9a59195b9915d95a59da1d081a5cc81b9bdd08195c5d585b60221b6064820152608490fd5b5162461bcd60e51b81526020600482015260396024820152600080516020620168e98339815191526044820152781b959bdd1a5b99d41bddd95c881a5cc81b9bdd08195c5d585b603a1b6064820152608490fd5b5162461bcd60e51b81526020600482015260386024820152600080516020620168e98339815191526044820152771b925b99195e105c9c985e481a5cc81b9bdd08195c5d585b60421b6064820152608490fd5b819593949295518181101562003f7c5760030362008318575050604084019062007d4b60c08351015162005aab565b519362007d6260a062007887818651015162005aab565b519362007d778651855114620018986201637f565b62007d8a8651865114620018986201637f565b60005b865181101562007df35762007da3818662005af1565b519061271082101562005ab957600362007ded9260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b5111156200189862016483565b62007d8d565b50909493919460005b855181101562007f275762007e12818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b0160205262007e5560406000205462007e4d848962005af1565b519062005e45565b9062007e62848a62005af1565b51918383101562005ab957600362007e9193878f5116600052811b016020526040600020556200189862016483565b62007e9d828862005af1565b518181101562005ab9576003908462007eb7858c62005af1565b5116600052811b0160205262007ed860406000205462006f21848962005af1565b62007ee4848a62005af1565b519283101562005ab95760036200189f9362007f219662007f06878e62005af1565b5116600052811b0160205260406000205562001898620164e8565b62007dfc565b5091509162007f3e62007f4591969594966201610e565b9562015ff2565b926040519462007f558662003e7f565b6001865260203681880137516001600160a01b031662007f758662005aab565b526000905b8651821015620083035762007f90828862005af1565b516104405262007fa1855162005c0d565b9660009462007fb1885162005c0d565b610560528594865b885181101562008088578a8962007fe96001600160a01b0362007fdd858462005af1565b51166104405162015edb565b158062008042575b6200800a575b5050620080049062005a85565b62007fb9565b98620080379162001f3582859c6200802e620080049760018060a01b039262005af1565b51169262005af1565b9790508a8962007ff7565b50505061271061044051101562005ab9576001600160a01b0362008067828b62005af1565b5116600052600361044051811b016020528a89604060002054151562007ff1565b509098949897969291939760005b88518110156200812a5761271061044051101562005ab9576001600160a01b03620080c2828b62005af1565b5116600052600361044051811b0160205260406000205415620080f1575b620080eb9062005a85565b62008096565b99620080eb9062008121906001600160a01b03620081108e8d62005af1565b511662001f35826105605162005af1565b9a9050620080e0565b50985096949392919561044051612710811015806103a05262005ab95760031b6004015496620081656200815f878a62014cf2565b62005c0d565b996000998a6106c0525b6103a05162005ab9576106c0518a8110156200822457620081a4620081c19160006103a05260046104405160031b0162005d10565b90546105605160039290921b1c6001600160a01b03169062015f9d565b15620081e0575b620081d66106c05162005a85565b6106c0526200816f565b99808c62001f356200821d93620082046106c05160046104405160031b0162005d10565b905460039190911b1c6001600160a01b03169262005af1565b99620081c8565b509a939794969299919850946000915b838310620082c957505050506103a05162005ab9578051906001600160401b03821162003e1457602090620082738360046104405160031b0162005e25565b0160046104405160031b01600052602060002060005b838110620082ab5750505050620082a09062005a85565b909295919562007f7a565b82516001600160a01b03168183015560209092019160010162008289565b620082fc90620082f5906001600160a01b03620082e7868662005af1565b511662001f35828962005af1565b9262005a85565b9162008234565b9194505062007a719194506020925062005a85565b819593949295518181101562003f7c57600403620085a0575050604080920160c094620083596200834d878451015162005aab565b51968351015162005acf565b51946200837060a062007887818651015162005aab565b5193620083858851885114620018986201637f565b620083988851855114620018986201637f565b620083ab8851865114620018986201637f565b60005b88518110156200841357620083c4818662005af1565b519061271082101562005ab9576200840d916003906001600160a01b03620083ed848e62005af1565b5116600052811b016020526200189f886000205462007de0838a62005af1565b620083ae565b50909691959294939660005b8351811015620085545762008435818862005af1565b5190612710918281101562005ab9576001600160a01b0390600390826200845d858a62005af1565b5116600052811b016020526200847e8b62007e4d848b600020549262005af1565b906200848b848c62005af1565b51918583101562005ab9576003620084c49385620084aa888d62005af1565b5116600052811b016020528a600020556200189862016483565b620084d0828a62005af1565b518381101562005ab95760039082620084ea858b62005af1565b5116600052811b016020526200850b8b62006f21848b600020549262005af1565b9190506200851a838b62005af1565b519384101562005ab9576200854e9360039162008538858b62005af1565b5116600052811b01602052876000205562005a85565b6200841f565b50946200857792975062007f3e9193945062008570906201610e565b9362015ff2565b9260005b835181101562007a5d57806200189f62007a4e6200859a938762005af1565b6200857b565b819594939551908082101562003f7c576005918203620087b65750505060409182850190620085e460a0620085d9818551015162005aab565b519351015162005acf565b51928251845103620087655760005b83518110156200864b5762008609818562005af1565b519061271082101562005ab9576003620086459260018060a01b038b5116600052811b016020526200189f876000205462007de0838962005af1565b620085f3565b509092919260005b8451811015620086e65762008669818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b01602052620086a3886000205462007e4d848962005af1565b620086af848a62005af1565b519283101562005ab95760036200189f93620086e0968e5116600052811b0160205289600020556200189862016483565b62008653565b50959392620086f79192506201610e565b91805193620087068562003e7f565b6001855260203681870137516001600160a01b0316620087268562005aab565b525194620087348662003e9b565b60008652600036813760005b835181101562007a5d57806200189f62007a4e6200875f938762005af1565b62008740565b845162461bcd60e51b81526020600482015260356024820152600080516020620168c9833981519152604482015274195b905b5bdd5b9d081a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b8296939496518181101562003f7c5760060362008a2057505050906040809201620087e660c08251015162005aab565b5194620087fd60a0620085d9818551015162005aab565b51928651835103620089cf578651845103620089835760005b87518110156200887b576200882c818562005af1565b519061271082101562005ab95762008875916003906001600160a01b0362008855848d62005af1565b5116600052811b016020526200189f876000205462007de0838962005af1565b62008816565b509092919260005b87518110156200892f5762008899818662005af1565b516127108082101562005ab9576001600160a01b03929160039084620088c0858e62005af1565b5116600052811b01602052620088e0886000205462007e4d848962005af1565b620088ec848a62005af1565b519283101562005ab95760036200189f9362008929966200890f8f889062005af1565b5116600052811b0160205289600020556200189862016483565b62008883565b5095926200894491925062007a0e906201610e565b925194620089528662003e9b565b60008652600036813760005b835181101562007a5d57806200189f62007a4e6200897d938762005af1565b6200895e565b845162461bcd60e51b81526020600482015260306024820152600080516020620169a983398151915260448201526f1b9d1cc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b845162461bcd60e51b81526020600482015260356024820152600080516020620168698339815191526044820152741b90db185cdcd95cc81a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b82518181101562003f7c5760070362008b705750505060408091019362008a4c60c08651015162005aab565b519262008a5e60a08751015162005aab565b519551519162008a768551885114620018986201637f565b60005b855181101562007c085762008b6a906200189f6001600160a01b038260028862008b528e62008b478e62008b3d8f8962008ab48a8562005af1565b511660005262008af18962008ae981620138809a8b60205262008ae360ff876000205416156200189862016450565b62005af1565b519662005af1565b51968a62008b2783519b8c9662008b088862003df8565b600188526060602089019860008a528781019b8c52019b8c5262005af1565b511660005260205260002097511515886200655e565b511515866200656f565b51600185016200648b565b5191015562008b62838a62005af1565b511662006e2b565b62008a79565b82519596959394928185101562003f7c57600894850362008c685750505062008ba260c0604080950151015162005aab565b519360005b855181101562008c535762008c4d906001600160a01b038062008bcb838a62005af1565b511660005262013880908160205262008c2260ff62008bf96001828c600020541615151462001898620163af565b8262008c06868d62005af1565b5116600052836020528960002054891c16156200189862016417565b62008c2e838a62005af1565b51166000526020528560002061010061ff001982541617905562005a85565b62008ba7565b50949093506020925062007a71915062005a85565b80518281101562003f7c5760090362008d3d5750505062008c9260c0604080950151015162005aab565b519360005b855181101562008c535762008d3790866001600160a01b038062008cbc848462005af1565b511660005262008d106001898362008cf28762013880978860205262008ae38660ff8097600020541615151462001898620163af565b5116600052846020528a600020548a1c1615151462001898620163e2565b62008d1c838a62005af1565b51166000526020528560002061ff0019815416905562005a85565b62008c97565b8097969492939597518281101562003f7c57600a0362008e1c575050505060408094019162008d8260a062008d7760c08651015162005aab565b519451015162005aab565b519162008d978451845114620018986201637f565b60005b845181101562007a5d5762008e16906001600160a01b038062008dbe838962005af1565b5116600052620138808060205262008de6600160ff8c600020541615151462001898620163af565b62008df2838862005af1565b519162008e00848a62005af1565b5116600052602052600289600020015562005a85565b62008d9a565b80979597518281101562003f7c57600b0362008eec575050505060408092019362008e4c60c08651015162005aab565b519451519162008e648651845114620018986201637f565b60005b865181101562007a5d5762008ee6906200189f6001600160a01b038062008e8f848c62005af1565b5116600052620138808060205262008eb7600160ff8b600020541615151462001898620163af565b62008ec3848962005af1565b519162008ed1858d62005af1565b5116600052602052600188600020016200648b565b62008e67565b80979495939697518281101562003f7c57600c036200903a5750505060400160609182825101519360005b8551811015620090245760e062008f3382878751015162005af1565b5101511562008fbb5762008f5762008f5082878751015162005af1565b5162006a18565b62013882805460001992919083810190811162005a955762008f7a8a91620069d6565b5001805461ff0019166101001790555491820191821162005a95578762008fa562008fb593620069d6565b5001805460ff1916905562005a85565b62008f17565b62008fd662008fcf82878751015162005af1565b5162006a65565b62013882805460001992919083810190811162005a955762008ff98a9162006994565b5001805461ff0019166101001790555491820191821162005a95578762008fa562008fb59362006994565b5095915093506020925062007a71915062005a85565b8097969593929497518281101562003f7c57600d03620091915750506040019460206200906c60a08851015162005aab565b51965101519162009081875184511462014d99565b60005b875181101562007c08578080878a620090a262009132958962005af1565b5115620091385762009103620090ea8483620090d5620090c86200910e98889762005af1565b5162013882541162014e22565b62008ae38d620090f1620090ea858562005af1565b51620069d6565b509060ff9889920154901c1662014e7a565b500154161562014edb565b866200911f620090ea838c62005af1565b5001805460ff1916600117905562005a85565b62009084565b6200910362009179848362009164620091576200918098889762005af1565b5162013883541162014e22565b62008ae38d620090f162009179858562005af1565b5162006994565b866200911f62009179838c62005af1565b8097949397518281101562003f7c57600e0362009278575050604001916020620091c060a08551015162005aab565b519351015195620091d5845188511462014d99565b60005b845181101562007c085780620091f3620091ff928a62005af1565b51620092055762005a85565b620091d8565b6200922262009215828862005af1565b5162013882541162014f3c565b62009267876200924c6200923b620090ea858b62005af1565b5060ff9283910154891c1662014f95565b886200925d620090ea858b62005af1565b5001541662014ff7565b8662008fa5620090ea838962005af1565b809192935096949596518281101562003f7c57600f036200939357505060400160609182825101519360005b8551811015620090245760e0620092c082878751015162005af1565b510151156200933157620092dd62008f5082878751015162005af1565b62013882805460001992919083810190811162005a9557620093008a91620069d6565b5001805461ff0019166101001790555491820191821162005a9557876200911f6200932b93620069d6565b620092a4565b6200934562008fcf82878751015162005af1565b62013882805460001992919083810190811162005a9557620093688a9162006994565b5001805461ff0019166101001790555491820191821162005a9557876200911f6200932b9362006994565b8091929394969550518281101562003f7c57601003620094385750506040015190620093c860a0608084015193015162005aab565b5193620093dd8351865114620018986201637f565b60005b83518110156200942557806200189f620093ff6200941f938762005af1565b516200940b8162004dc4565b62009417838a62005af1565b519062014d00565b620093e0565b509350916020915062007a719062005a85565b80959295518281101562003f7c57601103620096c3575050906040809401916200946d60a062008d7760c08651015162005aab565b51916200947e845184511462014ca6565b60005b8451811015620094f757620094f1906200189f6001600160a01b0380620094a9848a62005af1565b51166000526201388580602052620094cb8b6000205462006f21868b62005af1565b919092620094da868c62005af1565b51166000526020528a600020556200189862016335565b62009481565b509394509162009508915062015ff2565b906201388692835494620095226200815f85518862014cf2565b91600093845b88811062009683575060005b8651811015620095db576000805b8a81106200958c575b501562009564575b6200955e9062005a85565b62009534565b946200955e9062009583906001600160a01b03620082e7898b62005af1565b95905062009553565b620095978162005c62565b90546001600160a01b0360039290921b1c811690620095b7858c62005af1565b511614620095d057620095ca9062005a85565b62009542565b50506001386200954b565b50965094909350620095ed8362005c0d565b805191906001600160401b03831162003e14576020906200960e8462005d7e565b0190600052602060002060005b83811062009665575050505060005b828110620096425750505062007a7160209162005a85565b6200965f906200189f6001600160a01b0362001e63838662005af1565b6200962a565b82516001600160a01b0316818301556020909201916001016200961b565b94620096b6620096bd91620096988862005c62565b905460039190911b1c6001600160a01b031662001f35828962005af1565b9562005a85565b62009528565b80518281101562003f7c5760120362009935575050604080940191620096f460a062008d7760c08651015162005aab565b519162009705845184511462014ca6565b60005b8451811015620097585762009752906200189f6001600160a01b038062009730848a62005af1565b51166000526201388580602052620094cb8b6000205462007e4d868b62005af1565b62009708565b509491509291620097699062015ff2565b906201388680546200977b8162005c0d565b9260009485925b8084106200982f5750505050620097998362005c0d565b805191906001600160401b03831162003e1457602090620097ba8462005d7e565b0190600052602060002060005b83811062009811575050505060005b828110620097ee5750505062007a7160209162005a85565b6200980b906200189f6001600160a01b0362001e63838662005af1565b620097d6565b82516001600160a01b031681830155602090920191600101620097c7565b9297600097929597949194998a5b86518110156200992357620098528b62005c62565b90546001600160a01b0360039290921b1c81169062009872838a62005af1565b5116146200988b57620098859062005a85565b6200983d565b509950976001979592979491945b80620098f2575b15620098b857620098b19062005a85565b9262009782565b95620098eb620098b191620098cd8962005c62565b905460039190911b1c6001600160a01b031662001f35828a62005af1565b9662005a85565b50620098fe8162005c62565b60018060a01b0391549060031b1c1660005262013885602052826000205415620098a0565b50999890989795929794919462009899565b80959295518281101562003f7c576013036200999657505060408091015101519260005b84518110156200998557806200189f620099786200997f938862005af1565b5162015883565b62009959565b5092509062007a7160209162005a85565b8051918083101562003f7c57601492830362009b3957505050604080910190620099c560c08351015162005aab565b5192620099dc60a062007887818651015162005aab565b5195620099ed85518551146201505a565b620099fc8551885114620150c0565b60005b855181101562009ae45762009a15818962005af1565b5162009a22828762005af1565b51612710918282101562005ab957600662009a439260031b01549062006ce3565b9062009a50848962005af1565b51918383101562005ab957600662009a6d9360031b01556201517a565b62009a79828a62005af1565b519062009a87838862005af1565b518181101562005ab9576001600160a01b03939262009ab0916003908662007997878e62005af1565b62009abc848a62005af1565b519283101562005ab95760036200189f9362009ade96620079dc878e62005af1565b620099ff565b50939262009afa9192965062007a0e906201610e565b94519262009b088462003e9b565b60008452600036813760005b835181101562007a5d57806200189f62007a4e62009b33938762005af1565b62009b14565b81969495939651908082101562003f7c5760159182036200a0b15750505050604084019062009b6d60c08351015162005aab565b519362009b8460a062007887818651015162005aab565b519362009b998651855114620018986201637f565b62009bac8651865114620018986201637f565b60005b865181101562009c085762009bc5818662005af1565b519061271082101562005ab957600362009c029260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b62009baf565b50909493919460005b855181101562009d195762009c27818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b0160205262009c6260406000205462007e4d848962005af1565b9062009c6f848a62005af1565b51918383101562005ab957600362009c9e93878f5116600052811b016020526040600020556200189862016483565b62009caa828862005af1565b518181101562005ab9576003908462009cc4858c62005af1565b5116600052811b0160205262009ce560406000205462006f21848962005af1565b62009cf1848a62005af1565b519283101562005ab95760036200189f9362009d139662007f06878e62005af1565b62009c11565b5091509162007f3e62009d3091969594966201610e565b926040519462009d408662003e7f565b6001865260203681880137516001600160a01b031662009d608662005aab565b526000905b8651821015620083035762009d7b828862005af1565b516104e05262009d8c855162005c0d565b9660009462009d9c885162005c0d565b6102c0528594865b885181101562009e6a578a8962009dd46001600160a01b0362009dc8858462005af1565b51166104e05162015edb565b158062009e24575b62009df5575b505062009def9062005a85565b62009da4565b9862009e199162001f3582859c6200802e62009def9760018060a01b039262005af1565b9790508a8962009de2565b5050506127106104e051101562005ab9576001600160a01b0362009e49828b62005af1565b511660005260036104e051811b016020528a89604060002054151562009ddc565b509098949897969291939760005b885181101562009f0c576127106104e051101562005ab9576001600160a01b0362009ea4828b62005af1565b511660005260036104e051811b016020526040600020541562009ed3575b62009ecd9062005a85565b62009e78565b9962009ecd9062009f03906001600160a01b0362009ef28e8d62005af1565b511662001f35826102c05162005af1565b9a905062009ec2565b5098509694939291956104e051612710811015806108a05262005ab95760031b600401549662009f416200815f878a62014cf2565b996000998a610660525b6108a05162005ab957610660518a81101562009fe75762009f8062009f9d9160006108a05260046104e05160031b0162005d10565b90546102c05160039290921b1c6001600160a01b03169062015f9d565b1562009fbc575b62009fb26106605162005a85565b6106605262009f4b565b99808c62001f3562009fe093620082046106605160046104e05160031b0162005d10565b9962009fa4565b509a939794969299919850946000915b8383106200a08c57505050506108a05162005ab9578051906001600160401b03821162003e14576020906200a0368360046104e05160031b0162005e25565b0160046104e05160031b01600052602060002060005b8381106200a06e57505050506200a0639062005a85565b909295919562009d65565b82516001600160a01b0316818301556020909201916001016200a04c565b6200a0aa90620082f5906001600160a01b03620082e7868662005af1565b9162009ff7565b82979496959751928184101562003f7c5760169384036200a11e57505050505060c060406200a0e4920151015162005aab565b519260005b845181101562009985576200a118906200189f6001600160a01b036200a110838962005af1565b511662006ddf565b6200a0e9565b80518281101562003f7c576017036200a1775760405162461bcd60e51b81526020600482015260296024820152600080516020620169698339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b80518281101562003f7c576018036200a1eb57505050505060c060406200a1a2920151015162005aab565b5162013892805460ff191660011790559260005b845181101562009985576200a1e5906200189f6001600160a01b036200a1dd838962005af1565b511662006d93565b6200a1b6565b80979697518281101562003f7c576019036200a37057505050505060008080604080940160a0808251015180516200a337575b5050519060e0820151916200a24262006f1a60c060018060a01b0393015162005aab565b511690602083519301915af1903d156200a32e573d916200a2638362004098565b926200a2728351948562003eb7565b83523d6000602085013e5b156200a29257505062007a7160209162005a85565b62005a8192506200a30f8151927f5468652063616c6c20746f2074686520636f6e7472616374206973206e6f7420602085015278039bab1b1b2b9b9b33ab617102932ba3ab937103230ba309d1603d1b838501528381516200a2fe816059946020868601910162003fe6565b810103603981018552018362003eb7565b5162461bcd60e51b81526020600482015291829160248301906200400b565b6060916200a27d565b6200a3429062005aab565b51516200a351575b806200a21e565b81925062006f1a906200a3679251015162005aab565b5190386200a34a565b80518281101562003f7c57601a036200a47257505050506200a39b60a0604080940151015162005aab565b51906200a3ac600383511462014ca6565b6200a3b78262005aab565b51926200a3d06200a3c88462005acf565b519362005ae0565b51926200a4385750509162007a71916001602094146000146200a431576200a410906200a4036201388d91825462006ce3565b90915562001898620162d0565b6200189f6201388e6200a424815462006cd0565b909155620018986201630a565b5062005a85565b60649250519062461bcd60e51b825260206004830152602482015273496e76616c6964207061796d656e74207479706560601b6044820152fd5b809192939450518281101562003f7c57601b036200a8f6575050505050906200a4b26201388b54620035a86200a4a76201620c565b612710831062005a52565b50506200a4be620162d0565b506000805b61271081106200a891575b50506200a4da62006cf5565b906200a4ea6202712a5462005c0d565b9060009384905b6127108210156200a886578160031b9260ff600785015416156200a642576000976002850154156200a63057889798975b62005ab95760048501548810156200a616576200a543886004870162005d10565b9054600391821b1c6001600160a01b0316600081815291870160205260409182902054919a916200a576908a9062006b9b565b9b906200a582620162d0565b6200a58d9162005a52565b60009b60028901546200a5a09162006b9b565b906200a5ab620162d0565b6200a5b69162005a52565b828d5262013887602052818d2054906200a5d09162006ce3565b90918d20556200a5df620162d0565b6200a5ea9162005a52565b6200a5f6828962005af1565b526200a6029062005a85565b976200a60e9062005a85565b97986200a522565b929093506200a62791965062005a85565b9095946200a4f1565b929093506200a6279196975062005a85565b959392509350505b6200a6558262005c0d565b91600091825b8281106200a7f05750505062013888908154926200a67e6200815f858462014cf2565b9360009081905b8082106200a7b557505060005b8381106200a7115750508351939150506001600160401b03831162003e14576020906200a6bf8462005d42565b0190600052602060002060005b8381106200a6f3575050505062007a7160209160006201388d5560006201388e5562005a85565b82516001600160a01b0316818301556020909201916001016200a6cc565b6000805b8381106200a76d575b50156200a737575b6200a7319062005a85565b6200a692565b906200a731906200a764906001600160a01b036200a756858762005af1565b511662001f35828a62005af1565b9190506200a726565b6001600160a01b03806200a782858862005af1565b5116906200a791838b62005af1565b5116146200a7aa576200a7a49062005a85565b6200a715565b50506001386200a71e565b9091620082f56200a7e9916200a7cb8562005c45565b905460039190911b1c6001600160a01b031662001f35828b62005af1565b906200a685565b6000805b8581106200a83e575b50156200a816575b6200a8109062005a85565b6200a65b565b926200a810906200a835906001600160a01b03620082e7878662005af1565b9390506200a805565b6001600160a01b03806200a853858762005af1565b5116906200a862838a62005af1565b5116146200a87b576200a8759062005a85565b6200a7f4565b50506001386200a7fd565b93505092906200a64a565b8060031b9060ff600783015416156200a8ef576200a8dd620076dc6200189f946200a8d16200a8e99560026200a8c78762006b3e565b9101549062006b9b565b929062001898620162d0565b939062001898620162d0565b6200a4c3565b506200a4ce565b80518281101562003f7c57601c036200a94f5760405162461bcd60e51b81526020600482015260296024820152600080516020620169898339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b80518281101562003f7c57601d036200a975575b505050505062007a7160209162005a85565b80518281101562003f7c57601e146200a9635780518281101562003f7c57601f036200a9cb57505050506020916200a9c16200a9ba604062007a719401515162005aab565b51620158ba565b913880806200a963565b80518281101562003f7c576020036200a9f1575b505050505062007a716020916200a9c1565b8051908282101562003f7c5760218092036200aa0f575b506200a9df565b8051838110156200b077576022036200aa505750505050505062007a716020916201389260ff1981541690556200aa4562005e11565b91388080806200aa08565b8051838110156200b077576023036200aa77575b50505050505062007a716020916200aa45565b8051838110156200b077576024146200aa64578051838110156200b077576025146200aa64579795949751918210156200b0635750036200b026575060408401906200aac860c08351015162005aab565b51936200aadf60a062007887818651015162005aab565b51936200aaf48651855114620018986201637f565b6200ab078651865114620018986201637f565b60005b86518110156200ab63576200ab20818662005af1565b519061271082101562005ab95760036200ab5d9260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b6200ab0a565b50909493919460005b85518110156200ac74576200ab82818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b016020526200abbd60406000205462007e4d848962005af1565b906200abca848a62005af1565b51918383101562005ab95760036200abf993878f5116600052811b016020526040600020556200189862016483565b6200ac05828862005af1565b518181101562005ab957600390846200ac1f858c62005af1565b5116600052811b016020526200ac4060406000205462006f21848962005af1565b6200ac4c848a62005af1565b519283101562005ab95760036200189f936200ac6e9662007f06878e62005af1565b6200ab6c565b5091509162007f3e6200ac8b91969594966201610e565b92604051946200ac9b8662003e7f565b6001865260203681880137516001600160a01b03166200acbb8662005aab565b526000905b86518210156200b00c576200acd6828862005af1565b516107e0526200ace7855162005c0d565b966000946200acf7885162005c0d565b610300528594865b88518110156200adc5578a896200ad2f6001600160a01b036200ad23858462005af1565b51166107e05162015edb565b15806200ad7f575b6200ad50575b50506200ad4a9062005a85565b6200acff565b986200ad749162001f3582859c6200802e6200ad4a9760018060a01b039262005af1565b9790508a896200ad3d565b5050506127106107e051101562005ab9576001600160a01b036200ada4828b62005af1565b511660005260036107e051811b016020528a8960406000205415156200ad37565b509098949897969291939760005b88518110156200ae67576127106107e051101562005ab9576001600160a01b036200adff828b62005af1565b511660005260036107e051811b01602052604060002054156200ae2e575b6200ae289062005a85565b6200add3565b996200ae28906200ae5e906001600160a01b036200ae4d8e8d62005af1565b511662001f35826103005162005af1565b9a90506200ae1d565b5098509694939291956107e051612710811015806108805262005ab95760031b60040154966200ae9c6200815f878a62014cf2565b996000998a610800525b6108805162005ab957610800518a8110156200af42576200aedb6200aef89160006108805260046107e05160031b0162005d10565b90546103005160039290921b1c6001600160a01b03169062015f9d565b156200af17575b6200af0d6108005162005a85565b610800526200aea6565b99808c62001f356200af3b93620082046108005160046107e05160031b0162005d10565b996200aeff565b509a939794969299919850946000915b8383106200afe757505050506108805162005ab9578051906001600160401b03821162003e14576020906200af918360046107e05160031b0162005e25565b0160046107e05160031b01600052602060002060005b8381106200afc957505050506200afbe9062005a85565b90929591956200acc0565b82516001600160a01b0316818301556020909201916001016200afa7565b6200b00590620082f5906001600160a01b03620082e7868662005af1565b916200af52565b9194505062007a719194506020925091388080806200aa64565b6064906040519062461bcd60e51b825260206004830152602482015275496e76616c6964206f7065726174696f6e207479706560501b6044820152fd5b634e487b7160e01b60005260045260246000fd5b82634e487b7160e01b60005260045260246000fd5b60405162461bcd60e51b815260206004820152601b60248201527a13dc195c985d1a5bdb881d1e5c19481a5cc81d5b9919599a5b9959602a1b6044820152606490fd5b50915050565b600281036200b0f95760405162461bcd60e51b81528062005a81600482016200774f565b6001146200b1045750565b906200b114620138835462006066565b805190600160401b821162003e1457620271165482620271165580831062013787575b506020016202711660005260206000206000915b83831062013766575050505060005b62013883548110156200b19457806200189f6200b17b6200b18e9362006994565b506200b18783620069b5565b9062013c9a565b6200b15a565b506200b1a4620138825462006066565b805190600160401b821162003e14576202711554826202711555808310620136c9575b506020016202711560005260206000206000915b838310620136a8575050505060005b62013882548110156200b21d57806200189f6200b20b6200b21793620069d6565b506200b18783620069f7565b6200b1ea565b5060005b612710811015806200b3e957600160ff6201389a8460031b0154161515146200b257575b506200b2519062005a85565b6200b221565b916000835b62005ab957620138978360031b01548110156200b2c9576200b2c0929350600092816200b2938593620138978860031b0162005d10565b9054600391821b1c6001600160a01b031660009081529087901b6201389601602052604081205562005a85565b9093926200b25c565b5091604051906200b2da8262003e9b565b6000825262005ab9578051906001600160401b03821162003e14576020906200b30c83620138978660031b0162005e25565b01620138978360031b01600052602060002060005b8381106200b3cb5750505050600381901b6201389a8101805460ff191690556000620138938201819055620138948201819055620138958201556201389801546200b25191906200b3729062005129565b601f908181116200b39f575b50506000620138988260031b01556000620138998260031b0155906200b245565b6200b3c391620138988460031b016000526020600020910160051c81019062005d29565b38806200b37e565b82516001600160a01b0316818301556020909201916001016200b321565b505060005b612710811062013613575060005b62013881548110156200b45957806200b4196200b4539262005c7f565b60018060a01b0391549060031b1c166000526202711360205260006002604082208281556200b44b60018201620060f7565b015562005a85565b6200b3fc565b506200b469620138815462005c0d565b8051906001600160401b03821162003e1457600160401b821162003e14576020906202711454836202711455808410620135f0575b500162027114600052602060002060005b838110620135d2575050505060005b62013881548110156200b533576200b4d68162005c7f565b9054620271145460039290921b1c6001600160a01b0316919081101562005ab9576202711460005260008051602062016909833981519152810180546001600160a01b0319169092179091556200b52d9062005a85565b6200b4be565b509060005b62013881548110156200b5f557806200b5556200b5aa9262005c7f565b9060018060a01b03918291549060031b1c1660005262013880602052604080600020916200b5838462005c7f565b90549060031b1c1660005262027113602052600020908082036200b5b0575b505062005a85565b6200b538565b600280916200b5d660ff6200b5c981845416876200655e565b825460081c16856200656f565b6200b5e860018201600186016201392e565b015491015538806200b5a2565b5060005b6202711d548110156200b64957806200b6166200b6439262005c9c565b60018060a01b0391549060031b1c166000526202711c6020526200189f6040600020606481019062005d29565b6200b5f9565b506200b6596201388a5462005c0d565b8051906001600160401b03821162003e1457600160401b821162003e14576020906202711d54836202711d55808410620135af575b50016202711d600052602060002060005b83811062013591575050505060005b6201388a548110156200b6f257806200189f6200b6cf6200b6ec9362005cb9565b905460039190911b1c6001600160a01b031662001e708362005c9c565b6200b6ae565b5060005b6201388a548110156200b78057806200b7136200b7679262005cb9565b9060018060a01b03918291549060031b1c1660005262013889602052604080600020916200b7418462005cb9565b90549060031b1c166000526202711c602052600020908082036200b76d57505062005a85565b6200b6f6565b6200b7789162013d2e565b38806200b5a2565b506201388b546202711e556201388c546202711f556201388d5462027120556201388e5462027121556201388f546001600160401b03811162003e1457600160401b811162003e1457620271225481620271225580821062013562575b506202712260009081527f846ab89c81ea9339188216a1864da1a19ebe28d411cbec99efa70ca6d389710d80546000805160206201688983398151915291905b848410620135405750505050506201389054600160401b811162003e14576202712354816202712355808210620134fd575b50620271236000908152600080516020620168a98339815191527f7f73709277f72a9bc7b284375e83603a53394744e9fa86da811e86c2aa78e05e5b838310620134df57505062013891549150506001600160401b03811162003e1457600160401b811162003e14576202712454816202712455808210620134b0575b506202712460009081527f8f332db73d3937798ea82422156d059730b0b3058606439b57b7ae623e94536680546000805160206201692983398151915291905b8484106201348e57505050505060ff620138925416151560ff8019620271255416911617620271255560005b62027119548110156200b98457806200b9556200b97e9262005cd6565b905460039190911b1c6001600160a01b0316600090815262027118602052604081205562005a85565b6200b938565b506200b994620138865462005c0d565b8051906001600160401b03821162003e14576020906200b9b48362005dc9565b0162027119600052602060002060005b83811062013470575050505060005b62013886548110156200ba1757806200189f6200b9f46200ba119362005c62565b905460039190911b1c6001600160a01b031662001e708362005cd6565b6200b9d3565b5060005b62013886548110156200ba8957806200ba386200ba839262005c62565b9060018060a01b03918291549060031b1c166000526201388560205260408060002054916200ba678462005c62565b90549060031b1c16600052620271186020526000205562005a85565b6200ba1b565b5060005b6202711b548110156200bad957806200baaa6200bad39262005cf3565b905460039190911b1c6001600160a01b031660009081526202711a602052604081205562005a85565b6200ba8d565b506200bae9620138885462005c0d565b8051906001600160401b03821162003e14576020906200bb098362005ded565b016202711b600052602060002060005b83811062013452575050505060005b62013888548110156200bb6c57806200189f6200bb496200bb669362005c45565b905460039190911b1c6001600160a01b031662001e708362005cf3565b6200bb28565b5060005b62013888548110156200bbde57806200bb8d6200bbd89262005c45565b9060018060a01b03918291549060031b1c166000526201388760205260408060002054916200bbbc8462005c45565b90549060031b1c166000526202711a6020526000205562005a85565b6200bb70565b50906000905b60208301518051831015620109f357826200bbff9162005af1565b516020810151602681101562003f7c57156200b08c576020810151602681101562003f7c576001036200c1cf57604001906200bc4060c08351015162005aab565b51936200bc5760a062007887818651015162005aab565b51916200bc6886518551146201505a565b6200bc778651845114620150c0565b60005b86518110156200bdda576200bc90818662005af1565b5161271081101562005ab957600160ff6201389a6200bcb89360031b01541615151462015122565b6200bcc4818562005af1565b516200bcd1828762005af1565b519061271082101562005ab957620138996200bcf39260031b01549062006ce3565b906200bd00838862005af1565b519161271083101562005ab957620138996200bd219360031b01556201517a565b6200bd2d818562005af1565b516200bd3a828762005af1565b519061271082101562005ab9576200bd7e9162013896906001600160a01b036200bd65868d62005af1565b511660005260031b016020526040600020549062006ce3565b91906200bd8c828862005af1565b519061271082101562005ab9576200bdd4936200189f9262013896906001600160a01b036200bdbc878f62005af1565b511660005260031b01602052604060002055620151d9565b6200bc7a565b50926200bdf191925062008570909594956201610e565b916040516200be008162003e9b565b6000815260003681376000945b80518610156200c1b5576200be23868262005af1565b5160e0526200be33855162005c0d565b966000946200be43845162005c0d565b60c05260009460005b88518110156200bf12578a896200be7b6001600160a01b036200be70858462005af1565b511660e05162015f44565b15806200becb575b6200be9c575b50506200be969062005a85565b6200be4c565b986200bec09162001f3582859c6200802e6200be969760018060a01b039262005af1565b9790508a896200be89565b50505061271060e051101562005ab9576001600160a01b036200beef828b62005af1565b51166000526201389660e05160031b016020528a8960406000205415156200be83565b50909895979498969291939660005b88518110156200bfae5761271060e051101562005ab9576001600160a01b03806200bf4d838c62005af1565b51166000526201389660e05160031b01602052604060002054156200bf7f575b506200bf799062005a85565b6200bf21565b819b6200bfa6916200bf966200bf79948d62005af1565b511662001f358260c05162005af1565b9a906200bf6d565b5098509695929190939660e051612710811015806102805262005ab95760031b620138970154986200bfe56200815f898c62014cf2565b610380526000610540526000610600525b6102805162005ab957610600518a8110156200c0be576200c02c6200c04b916000610280526201389760e05160031b0162005d10565b905460c0516001600160a01b03939260031b9190911c83169062015f9d565b156200c06b575b506200c0616106005162005a85565b610600526200bff6565b6000610280526200c08a610600516201389760e05160031b0162005d10565b90549060031b1c166200c0a4610540516103805162005af1565b526200c0b36105405162005a85565b61054052386200c052565b50979294959093985095909560005b8281106200c169575050506102805162005ab95761038051516001600160401b03811162003e14576200c10b816201389760e05160031b0162005e25565b602061038051016201389760e05160031b01600052602060002060005b8381106200c14b57505050506200c13f9062005a85565b9492959091956200be0d565b82516001600160a01b0316818301556020909201916001016200c128565b6200c1af906001600160a01b036200c182828562005af1565b51166200c196610540516103805162005af1565b526200c1a56105405162005a85565b6105405262005a85565b6200c0cd565b5050939092506200c1c7915062005a85565b90916200bbe4565b906020829493940151602681101562003f7c576002036200c38c576040809201908151938451916200c2266200c20a60a08098015162005aab565b51966200c21b818751015162005acf565b519551015162005ae0565b5194835187510362007cc957835185510362007c7557835186510362007c1e575060005b86518110156200c379576200c260818862005af1565b5161271081101562005ab95760ff6201389a6200c2849260031b0154161562015232565b6200c290818862005af1565b5161271081101562005ab95760031b6201389a01805460ff191660011790556200c2bb818562005af1565b516200c2c8828962005af1565b519061271082101562005ab957620138986200c2e89260031b016200648b565b6200c2f4818662005af1565b516200c301828962005af1565b5161271081101562005ab95760031b6201389401556200c322818762005af1565b516200c32f828962005af1565b5161271081101562005ab95760031b6201389501556200c350818862005af1565b519061271082101562005ab9576000620138996200c3739360031b015562005a85565b6200c24a565b509592509350506200c1c7915062005a85565b9092916020840151602681101562003f7c576003036200c9be5760408401906200c3bb60c08351015162005aab565b51906200c3d260a062007887818651015162005aab565b51936200c3e78351855114620018986201637f565b6200c3fa8351865114620018986201637f565b60005b83518110156200c459576200c413818662005af1565b519061271082101562005ab957620138966200c4539260018060a01b038b511660005260031b016020526200189f60406000205462007de0838a62005af1565b6200c3fd565b509095919560005b87518110156200c5ab576200c477818662005af1565b5161271081101562005ab957620138969060018060a01b0386511660005260031b016020526200c4b260406000205462007e4d838962005af1565b906200c4bf838862005af1565b519161271083101562005ab957620138966200c4f99360018060a01b0389511660005260031b016020526040600020556200189862016483565b6200c505818662005af1565b5161271081101562005ab95762013896906001600160a01b036200c52a848c62005af1565b511660005260031b016020526200c54c60406000205462006f21838962005af1565b91906200c55a828862005af1565b519061271082101562005ab9576200c5a593620138966200189f938d6200c5898760018060a01b039262005af1565b511660005260031b0160205260406000205562001898620164e8565b6200c461565b50926200c5ca919294506200c5c3909695966201610e565b9462015ff2565b92604051906200c5da8262003e7f565b6001825260203681840137516001600160a01b03166200c5fa8262005aab565b526000945b80518610156200c1b5576200c615868262005af1565b516103c0526200c626855162005c0d565b966000946200c636845162005c0d565b6108c05260009460005b88518110156200c709578a896200c6706001600160a01b036200c664858462005af1565b51166103c05162015f44565b15806200c6c0575b6200c691575b50506200c68b9062005a85565b6200c640565b986200c6b59162001f3582859c6200802e6200c68b9760018060a01b039262005af1565b9790508a896200c67e565b5050506127106103c051101562005ab9576001600160a01b036200c6e5828b62005af1565b5116600052620138966103c05160031b016020528a8960406000205415156200c678565b50909895979498969291939660005b88518110156200c7af576127106103c051101562005ab9576001600160a01b036200c744828b62005af1565b5116600052620138966103c05160031b01602052604060002054156200c776575b6200c7709062005a85565b6200c718565b996200c770906200c7a6906001600160a01b036200c7958e8d62005af1565b511662001f35826108c05162005af1565b9a90506200c765565b509850969592919093966103c051612710811015806101605262005ab95760031b620138970154986200c7e76200815f898c62014cf2565b610460526000610640526000610220525b6101605162005ab957610220518a8110156200c8c5576200c82f6200c84c91600061016052620138976103c05160031b0162005d10565b90546108c05160039290921b1c6001600160a01b03169062015f9d565b156200c86b575b6200c8616102205162005a85565b610220526200c7f8565b6000610160526200c88b61022051620138976103c05160031b0162005d10565b60018060a01b0391549060031b1c166200c8ac610640516104605162005af1565b526200c8bb6106405162005a85565b610640526200c853565b50979294959093985095909560005b8281106200c972575050506101605162005ab95761046051516001600160401b03811162003e14576200c91381620138976103c05160031b0162005e25565b60206104605101620138976103c05160031b01600052602060002060005b8381106200c95457505050506200c9489062005a85565b9492959091956200c5ff565b82516001600160a01b0316818301556020909201916001016200c931565b6200c9b8906001600160a01b036200c98b828562005af1565b51166200c99f610640516104605162005af1565b526200c9ae6106405162005a85565b6106405262005a85565b6200c8d4565b90926020810151602681101562003f7c576004036200cff75760400160c0936200c9fc6200c9f0868451015162005aab565b51958351015162005acf565b51906200ca1360a062007887818651015162005aab565b51936200ca288751845114620018986201637f565b6200ca3b8751855114620018986201637f565b6200ca4e8751865114620018986201637f565b60005b87518110156200caba576200ca67818662005af1565b519061271082101562005ab9576200cab49162013896906001600160a01b036200ca92848d62005af1565b511660005260031b016020526200189f60406000205462007de0838a62005af1565b6200ca51565b509095919593929360005b83518110156200cc21576200cadb818762005af1565b5161271081101562005ab95762013896906001600160a01b036200cb00848862005af1565b511660005260031b016020526200cb2260406000205462007e4d838862005af1565b906200cb2f838962005af1565b519161271083101562005ab9576200cb769262013896906001600160a01b036200cb5a878b62005af1565b511660005260031b016020526040600020556200189862016483565b6200cb82818762005af1565b5161271081101562005ab95762013896906001600160a01b036200cba7848c62005af1565b511660005260031b016020526200cbc960406000205462006f21838862005af1565b9190506200cbd8818862005af1565b519161271083101562005ab9576200cc1b9262013896906001600160a01b036200cc03858e62005af1565b511660005260031b0160205260406000205562005a85565b6200cac5565b5091936200cc3d91935062007f3e62008570919796976201610e565b6000945b80518610156200c1b5576200cc57868262005af1565b516107a0526200cc68855162005c0d565b966000946200cc78845162005c0d565b6107205260009460005b88518110156200cd4b578a896200ccb26001600160a01b036200cca6858462005af1565b51166107a05162015f44565b15806200cd02575b6200ccd3575b50506200cccd9062005a85565b6200cc82565b986200ccf79162001f3582859c6200802e6200cccd9760018060a01b039262005af1565b9790508a896200ccc0565b5050506127106107a051101562005ab9576001600160a01b036200cd27828b62005af1565b5116600052620138966107a05160031b016020528a8960406000205415156200ccba565b50909895979498969291939660005b88518110156200cdea576127106107a051101562005ab9576001600160a01b03806200cd87838c62005af1565b5116600052620138966107a05160031b01602052604060002054156200cdba575b506200cdb49062005a85565b6200cd5a565b819b6200cde2916200cdd16200cdb4948d62005af1565b511662001f35826107205162005af1565b9a906200cda8565b509850969592919093966107a051612710811015806101c05262005ab95760031b620138970154986200ce226200815f898c62014cf2565b6107c0526000610420526000610860525b6101c05162005ab957610860518a8110156200cefe576200ce6a6200ce8a9160006101c052620138976107a05160031b0162005d10565b9054610720516001600160a01b03939260031b9190911c83169062015f9d565b156200ceaa575b506200cea06108605162005a85565b610860526200ce33565b60006101c0526200ceca61086051620138976107a05160031b0162005d10565b90549060031b1c166200cee4610420516107c05162005af1565b526200cef36104205162005a85565b61042052386200ce91565b50979294959093985095909560005b8281106200cfab575050506101c05162005ab9576107c051516001600160401b03811162003e14576200cf4c81620138976107a05160031b0162005e25565b60206107c05101620138976107a05160031b01600052602060002060005b8381106200cf8d57505050506200cf819062005a85565b9492959091956200cc41565b82516001600160a01b0316818301556020909201916001016200cf6a565b6200cff1906001600160a01b036200cfc4828562005af1565b51166200cfd8610420516107c05162005af1565b526200cfe76104205162005a85565b6104205262005a85565b6200cf0d565b92906020840151602681101562003f7c576005036200d5a85760408401906200d02a60a0620085d9818551015162005aab565b519282518451036200d5565760005b83518110156200d095576200d04f818562005af1565b519061271082101562005ab957620138966200d08f9260018060a01b038a511660005260031b016020526200189f60406000205462007de0838962005af1565b6200d039565b509060005b83518110156200d13e576200d0b0818562005af1565b5161271081101562005ab957620138969060018060a01b0389511660005260031b016020526200d0eb60406000205462007e4d838862005af1565b91906200d0f9828762005af1565b519061271082101562005ab9576200d13893620138966200189f9360018060a01b038d511660005260031b016020526040600020556200189862016483565b6200d09a565b50916200d14f91949593506201610e565b92604051926200d15f8462003e7f565b6001845260203681860137516001600160a01b03166200d17f8462005aab565b52604051926200d18f8462003e9b565b6000845260003681376000945b80518610156200c1b5576200d1b2868262005af1565b51610240526200d1c3855162005c0d565b966000946200d1d3845162005c0d565b6108405260009460005b88518110156200d2a6578a896200d20d6001600160a01b036200d201858462005af1565b51166102405162015f44565b15806200d25d575b6200d22e575b50506200d2289062005a85565b6200d1dd565b986200d2529162001f3582859c6200802e6200d2289760018060a01b039262005af1565b9790508a896200d21b565b50505061271061024051101562005ab9576001600160a01b036200d282828b62005af1565b5116600052620138966102405160031b016020528a8960406000205415156200d215565b50909895979498969291939660005b88518110156200d34c5761271061024051101562005ab9576001600160a01b036200d2e1828b62005af1565b5116600052620138966102405160031b01602052604060002054156200d313575b6200d30d9062005a85565b6200d2b5565b996200d30d906200d343906001600160a01b036200d3328e8d62005af1565b511662001f35826108405162005af1565b9a90506200d302565b50985096959291909396610240516127108110158060a05262005ab95760031b620138970154986200d3836200815f898c62014cf2565b610780526000610320526000610340525b60a05162005ab957610340518a8110156200d45e576200d3c96200d3e691600060a052620138976102405160031b0162005d10565b90546108405160039290921b1c6001600160a01b03169062015f9d565b156200d405575b6200d3fb6103405162005a85565b610340526200d394565b600060a0526200d42461034051620138976102405160031b0162005d10565b60018060a01b0391549060031b1c166200d445610320516107805162005af1565b526200d4546103205162005a85565b610320526200d3ed565b50979294959093985095909560005b8281106200d50a5750505060a05162005ab95761078051516001600160401b03811162003e14576200d4ab81620138976102405160031b0162005e25565b60206107805101620138976102405160031b01600052602060002060005b8381106200d4ec57505050506200d4e09062005a85565b9492959091956200d19c565b82516001600160a01b0316818301556020909201916001016200d4c9565b6200d550906001600160a01b036200d523828562005af1565b51166200d537610320516107805162005af1565b526200d5466103205162005a85565b6103205262005a85565b6200d46d565b60405162461bcd60e51b81526020600482015260356024820152600080516020620168c9833981519152604482015274195b905b5bdd5b9d081a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b926020810151602681101562003f7c576006036200db9b576040016200d5d360c08251015162005aab565b51936200d5ea60a0620085d9818551015162005aab565b519285518351036200db495785518451036200dafc5760005b86518110156200d66c576200d619818562005af1565b519061271082101562005ab9576200d6669162013896906001600160a01b036200d644848c62005af1565b511660005260031b016020526200189f60406000205462007de0838962005af1565b6200d603565b509060005b86518110156200d712576200d687818562005af1565b5161271081101562005ab95762013896906001600160a01b036200d6ac848b62005af1565b511660005260031b016020526200d6ce60406000205462007e4d838862005af1565b91906200d6dc828762005af1565b519061271082101562005ab9576200d70c936200189f9262013896906001600160a01b036200cb5a878f62005af1565b6200d671565b50916200d72991935062008570909594956201610e565b91604051926200d7398462003e9b565b6000845260003681376000945b80518610156200c1b5576200d75c868262005af1565b51610400526200d76d855162005c0d565b966000946200d77d845162005c0d565b6101005260009460005b88518110156200d850578a896200d7b76001600160a01b036200d7ab858462005af1565b51166104005162015f44565b15806200d807575b6200d7d8575b50506200d7d29062005a85565b6200d787565b986200d7fc9162001f3582859c6200802e6200d7d29760018060a01b039262005af1565b9790508a896200d7c5565b50505061271061040051101562005ab9576001600160a01b036200d82c828b62005af1565b5116600052620138966104005160031b016020528a8960406000205415156200d7bf565b50909895979498969291939660005b88518110156200d8ef5761271061040051101562005ab9576001600160a01b03806200d88c838c62005af1565b5116600052620138966104005160031b01602052604060002054156200d8bf575b506200d8b99062005a85565b6200d85f565b819b6200d8e7916200d8d66200d8b9948d62005af1565b511662001f35826101005162005af1565b9a906200d8ad565b5098509695929190939661040051612710811015806104a05262005ab95760031b620138970154986200d9276200815f898c62014cf2565b6101405260006101e05260006104c0525b6104a05162005ab9576104c0518a8110156200da03576200d96f6200d98f9160006104a052620138976104005160031b0162005d10565b9054610100516001600160a01b03939260031b9190911c83169062015f9d565b156200d9af575b506200d9a56104c05162005a85565b6104c0526200d938565b60006104a0526200d9cf6104c051620138976104005160031b0162005d10565b90549060031b1c166200d9e96101e0516101405162005af1565b526200d9f86101e05162005a85565b6101e052386200d996565b50979294959093985095909560005b8281106200dab0575050506104a05162005ab95761014051516001600160401b03811162003e14576200da5181620138976104005160031b0162005e25565b60206101405101620138976104005160031b01600052602060002060005b8381106200da9257505050506200da869062005a85565b9492959091956200d746565b82516001600160a01b0316818301556020909201916001016200da6f565b6200daf6906001600160a01b036200dac9828562005af1565b51166200dadd6101e0516101405162005af1565b526200daec6101e05162005a85565b6101e05262005a85565b6200da12565b60405162461bcd60e51b81526020600482015260306024820152600080516020620169a983398151915260448201526f1b9d1cc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b60405162461bcd60e51b81526020600482015260356024820152600080516020620168698339815191526044820152741b90db185cdcd95cc81a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b602081949293940151602681101562003f7c576007036200dd3a57604001916200dbca60c08451015162005aab565b51916200dbdc60a08551015162005aab565b51935151916200dbf48451865114620018986201637f565b60005b84518110156200dd28576001600160a01b03806200dc16838862005af1565b511660005262027113806020526200dc3b60ff60406000205416156200189862016450565b60026200dc49848862005af1565b516200dcb36200dc5a868c62005af1565b519162008b478b604051966200dc708862003df8565b60018852886200dc978b60208b01946000865260408c0197885260608c01998a5262005af1565b511660005260205262008b3d604060002097511515886200655e565b519101556200dcc3828762005af1565b516202711454929116600160401b83101562003e14576001830180620271145583101562005ab957620271146000526000805160206201690983398151915290920180546001600160a01b0319169092179091556200dd229062005a85565b6200dbf7565b5094915092506200c1c7915062005a85565b6020810151602681101562003f7c576008036200de295760c060406200dd64920151015162005aab565b519160005b83518110156200de1a576200de14906001600160a01b03806200dd8d838862005af1565b51166000526202711390816020526200ddb7600160ff6040600020541615151462001898620163af565b806200ddc4848962005af1565b5116600052816020526200dde860ff60406000205460081c16156200189862016417565b6200ddf4838862005af1565b5116600052602052604060002061010061ff001982541617905562005a85565b6200dd69565b50926200c1c791925062005a85565b6020810151602681101562003f7c576009036200df095760c060406200de53920151015162005aab565b519160005b83518110156200de1a576200df03906001600160a01b03806200de7c838862005af1565b51166000526202711390816020526200dea6600160ff6040600020541615151462001898620163af565b806200deb3848962005af1565b5116600052816020526200dedb600160ff60406000205460081c1615151462001898620163e2565b6200dee7838862005af1565b5116600052602052604060002061ff0019815416905562005a85565b6200de58565b6020810151602681101562003f7c57600a036200dff257604001906200df4560a06200df3a60c08551015162005aab565b519351015162005aab565b51926200df5a8351855114620018986201637f565b60005b83518110156200dfe1576200dfdb906001600160a01b03806200df81838862005af1565b511660005262027113806020526200dfaa600160ff6040600020541615151462001898620163af565b6200dfb6838962005af1565b51916200dfc4848962005af1565b511660005260205260026040600020015562005a85565b6200df5d565b50939092506200c1c7915062005a85565b602081949392940151602681101562003f7c57600b036200e0d357604001926200e02160c08551015162005aab565b51935151916200e0398551845114620018986201637f565b60005b85518110156200e0c3576200e0bd906200189f6001600160a01b03806200e064848b62005af1565b511660005262027113806020526200e08d600160ff6040600020541615151462001898620163af565b6200e099848962005af1565b51916200e0a7858c62005af1565b511660005260205260016040600020016200648b565b6200e03c565b509350916200c1c7915062005a85565b9091926020820151602681101562003f7c57600c036200e217576060604083015101519260005b84518110156200dfe15760e06200e11a8260606040880151015162005af1565b510151156200e1a0576200e1426200e13b8260606040880151015162005af1565b5162006aad565b62027115548060001981011162005a95576200e16460059160001901620069f7565b5001805461ff0019166101001790556202711554906000198201821062005a9557600562008fa56200e19a9360001901620069f7565b6200e0fa565b6200e1bf6200e1b88260606040880151015162005af1565b5162006a89565b62027116548060001981011162005a95576200e1e160059160001901620069b5565b5001805461ff0019166101001790556202711654906000198201821062005a9557600562008fa56200e19a9360001901620069b5565b9291906020810151602681101562003f7c57600d036200e360576040019260206200e24760a08651015162005aab565b5194510151916200e25c855184511462014d99565b60005b85518110156200e0c357806200e27a6200e2f4928662005af1565b51156200e2fa576200e29e6200e291828962005af1565b5162027115541162014e22565b6200e2ca60ff60056200e2bd6200e2b6858c62005af1565b51620069f7565b50015460081c1662014e7a565b6200e2e260ff6005620091036200e2b6858c62005af1565b60056200911f6200e2b6838a62005af1565b6200e25f565b6200e3176200e30a828962005af1565b5162027116541162014e22565b6200e33660ff60056200e2bd6200e32f858c62005af1565b51620069b5565b6200e34e60ff6005620091036200e32f858c62005af1565b60056200911f6200e32f838a62005af1565b6020810151602681101562003f7c57600e036200e498576040019260206200e38d60a08651015162005aab565b5194510151916200e3a2855184511462014d99565b60005b85518110156200e0c357806200e3c06200e433928662005af1565b51156200e439576200e3e46200e3d7828962005af1565b5162027115541162014f3c565b6200e40960ff60056200e3fc6200e2b6858c62005af1565b50015460081c1662014f95565b6200e42160ff60056200925d6200e2b6858c62005af1565b600562008fa56200e2b6838a62005af1565b6200e3a5565b6200e4566200e449828962005af1565b5162027116541162014f3c565b6200e46e60ff60056200e3fc6200e32f858c62005af1565b6200e48660ff60056200925d6200e32f858c62005af1565b600562008fa56200e32f838a62005af1565b9091926020820151602681101562003f7c57600f036200e5ce576060604083015101519260005b84518110156200dfe15760e06200e4df8260606040880151015162005af1565b510151156200e55e576200e5006200e13b8260606040880151015162005af1565b62027115548060001981011162005a95576200e52260059160001901620069f7565b5001805461ff0019166101001790556202711554906000198201821062005a955760056200911f6200e5589360001901620069f7565b6200e4bf565b6200e5766200e1b88260606040880151015162005af1565b62027116548060001981011162005a95576200e59860059160001901620069b5565b5001805461ff0019166101001790556202711654906000198201821062005a955760056200911f6200e5589360001901620069b5565b9291906020810151602681101562003f7c576010036200e7175760400151926200e60160a0608086015195015162005aab565b51916200e6168551845114620018986201637f565b60005b85518110156200e0c357806200e6346200e6aa928862005af1565b516200e6408162004dc4565b6200e64c828762005af1565b51906200e6598162004dc4565b6200e6706200e667620164b2565b82151562005a52565b6200e67b8162004dc4565b600181036200e6b057506200e69f6200e693620164b2565b61271083111562005a52565b6202711e5562005a85565b6200e619565b6200e6bb8162004dc4565b600281036200e6d057506202711f5562005a85565b6200e6db8162004dc4565b600381036200e6f05750620271205562005a85565b806200e6fe60049262004dc4565b146200e70b575062005a85565b6202712155386200a431565b6020810151602681101562003f7c576011036200e9bd57604001906200e74860a06200df3a60c08551015162005aab565b51936200e759835186511462014ca6565b60005b83518110156200e7da576200e7d4906200e7b46001600160a01b03806200e784848962005af1565b51166000526202711890816020526200e7a860406000205462006f21868d62005af1565b93906200189862016335565b6200e7c0848962005af1565b511660005260205260406000205562005a85565b6200e75c565b509350906200e7e99062015ff2565b906202711954936200e8016200815f84518762014cf2565b9060009260005b8781106200e97d575060005b85518110156200e8c9576000805b8981106200e87a575b50156200e844575b6200e83e9062005a85565b6200e814565b936200e83e906200e871906001600160a01b036200e863888a62005af1565b511662001f35828862005af1565b9490506200e833565b6200e8858162005cd6565b90546001600160a01b0360039290921b1c8116906200e8a5858b62005af1565b5116146200e8be576200e8b89062005a85565b6200e822565b50506001386200e82b565b5095509392506200e8da8262005c0d565b8051906001600160401b03821162003e14576020906200e8fa8362005dc9565b0162027119600052602060002060005b8381106200e95f575050505060005b8281106200e92f575050506200c1c79062005a85565b6200e959906200189f6001600160a01b036200e94c838662005af1565b511662001e708362005cd6565b6200e919565b82516001600160a01b0316818301556020909201916001016200e90a565b936200e9b06200e9b7916200e9928762005cd6565b905460039190911b1c6001600160a01b031662001f35828862005af1565b9462005a85565b6200e808565b6020819492940151602681101562003f7c576012036200ec0557604001906200e9f160a06200df3a60c08551015162005aab565b51936200ea02835186511462014ca6565b60005b83518110156200ea57576200ea51906200e7b46001600160a01b03806200ea2d848962005af1565b51166000526202711890816020526200e7a860406000205462007e4d868d62005af1565b6200ea05565b50935091906200ea679062015ff2565b62027119546200ea778162005c0d565b906000926000915b8083106200eb2b575050506200ea958262005c0d565b8051906001600160401b03821162003e14576020906200eab58362005dc9565b0162027119600052602060002060005b8381106200eb0d575050505060005b8281106200eaea575050506200c1c79062005a85565b6200eb07906200189f6001600160a01b036200e94c838662005af1565b6200ead4565b82516001600160a01b0316818301556020909201916001016200eac5565b91956000959193959760005b85518110156200ebf6576200eb4c8962005cd6565b90546001600160a01b0360039290921b1c8116906200eb6c838962005af1565b5116146200eb85576200eb7f9062005a85565b6200eb37565b509750956001959391955b806200ebc4575b156200ebaf576200eba89062005a85565b916200ea7f565b936200e9b06200eba8916200e9928762005cd6565b506200ebd08162005cd6565b60018060a01b0391549060031b1c1660005262027118602052604060002054156200eb97565b5097969096959391956200eb90565b6020819493940151602681101562003f7c576013036200eca95760408091015101519160005b83518110156200de1a576200ec41818562005af1565b51906202711754600160401b81101562003e14576001810180620271175581101562005ab957620271176000526200eca3926200189f916007027f08f37177f6a5732df494aeff73d589b534878a053b84dfe1e41c467868b7c9fd01620157d7565b6200ec2b565b602081949392940151602681101562003f7c576014036200f1f657604001906200ecd860c08351015162005aab565b51936200ecef60a062007887818651015162005aab565b51916200ed0086518551146201505a565b6200ed0f8651845114620150c0565b60005b86518110156200ee0d576200ed28818562005af1565b516200ed35828762005af1565b519061271082101562005ab957620138996200ed579260031b01549062006ce3565b906200ed64838862005af1565b519161271083101562005ab957620138996200ed859360031b01556201517a565b6200ed91818562005af1565b516200ed9e828762005af1565b519061271082101562005ab9576200edc99162013896906001600160a01b036200bd65868d62005af1565b91906200edd7828862005af1565b519061271082101562005ab9576200ee07936200189f9262013896906001600160a01b036200bdbc878f62005af1565b6200ed12565b50926200ee2491925062008570909594956201610e565b916040516200ee338162003e9b565b6000815260003681376000945b80518610156200c1b5576200ee56868262005af1565b51610740526200ee67855162005c0d565b966000946200ee77845162005c0d565b6105e05260009460005b88518110156200ef4a578a896200eeb16001600160a01b036200eea5858462005af1565b51166107405162015f44565b15806200ef01575b6200eed2575b50506200eecc9062005a85565b6200ee81565b986200eef69162001f3582859c6200802e6200eecc9760018060a01b039262005af1565b9790508a896200eebf565b50505061271061074051101562005ab9576001600160a01b036200ef26828b62005af1565b5116600052620138966107405160031b016020528a8960406000205415156200eeb9565b50909895979498969291939660005b88518110156200efe95761271061074051101562005ab9576001600160a01b03806200ef86838c62005af1565b5116600052620138966107405160031b01602052604060002054156200efb9575b506200efb39062005a85565b6200ef59565b819b6200efe1916200efd06200efb3948d62005af1565b511662001f35826105e05162005af1565b9a906200efa7565b5098509695929190939661074051612710811015806101805262005ab95760031b620138970154986200f0216200815f898c62014cf2565b6105005260006105c0526000610820525b6101805162005ab957610820518a8110156200f0fd576200f0696200f08991600061018052620138976107405160031b0162005d10565b90546105e0516001600160a01b03939260031b9190911c83169062015f9d565b156200f0a9575b506200f09f6108205162005a85565b610820526200f032565b6000610180526200f0c961082051620138976107405160031b0162005d10565b90549060031b1c166200f0e36105c0516105005162005af1565b526200f0f26105c05162005a85565b6105c052386200f090565b50979294959093985095909560005b8281106200f1aa575050506101805162005ab95761050051516001600160401b03811162003e14576200f14b81620138976107405160031b0162005e25565b60206105005101620138976107405160031b01600052602060002060005b8381106200f18c57505050506200f1809062005a85565b9492959091956200ee40565b82516001600160a01b0316818301556020909201916001016200f169565b6200f1f0906001600160a01b036200f1c3828562005af1565b51166200f1d76105c0516105005162005af1565b526200f1e66105c05162005a85565b6105c05262005a85565b6200f10c565b926020840151602681101562003f7c576015036200f8035760408401906200f22360c08351015162005aab565b51906200f23a60a062007887818651015162005aab565b51936200f24f8351855114620018986201637f565b6200f2628351865114620018986201637f565b60005b83518110156200f2c1576200f27b818662005af1565b519061271082101562005ab957620138966200f2bb9260018060a01b038b511660005260031b016020526200189f60406000205462007de0838a62005af1565b6200f265565b509095919560005b87518110156200f3f7576200f2df818662005af1565b5161271081101562005ab957620138969060018060a01b0386511660005260031b016020526200f31a60406000205462007e4d838962005af1565b906200f327838862005af1565b519161271083101562005ab957620138966200f3619360018060a01b0389511660005260031b016020526040600020556200189862016483565b6200f36d818662005af1565b5161271081101562005ab95762013896906001600160a01b036200f392848c62005af1565b511660005260031b016020526200f3b460406000205462006f21838962005af1565b91906200f3c2828862005af1565b519061271082101562005ab9576200f3f193620138966200189f938d6200c5898760018060a01b039262005af1565b6200f2c9565b50926200f40f919294506200c5c3909695966201610e565b92604051906200f41f8262003e7f565b6001825260203681840137516001600160a01b03166200f43f8262005aab565b526000945b80518610156200c1b5576200f45a868262005af1565b51610200526200f46b855162005c0d565b966000946200f47b845162005c0d565b6107605260009460005b88518110156200f54e578a896200f4b56001600160a01b036200f4a9858462005af1565b51166102005162015f44565b15806200f505575b6200f4d6575b50506200f4d09062005a85565b6200f485565b986200f4fa9162001f3582859c6200802e6200f4d09760018060a01b039262005af1565b9790508a896200f4c3565b50505061271061020051101562005ab9576001600160a01b036200f52a828b62005af1565b5116600052620138966102005160031b016020528a8960406000205415156200f4bd565b50909895979498969291939660005b88518110156200f5f45761271061020051101562005ab9576001600160a01b036200f589828b62005af1565b5116600052620138966102005160031b01602052604060002054156200f5bb575b6200f5b59062005a85565b6200f55d565b996200f5b5906200f5eb906001600160a01b036200f5da8e8d62005af1565b511662001f35826107605162005af1565b9a90506200f5aa565b5098509695929190939661020051612710811015806102605262005ab95760031b620138970154986200f62c6200815f898c62014cf2565b6104805260006105805260006102a0525b6102605162005ab9576102a0518a8110156200f70a576200f6746200f69191600061026052620138976102005160031b0162005d10565b90546107605160039290921b1c6001600160a01b03169062015f9d565b156200f6b0575b6200f6a66102a05162005a85565b6102a0526200f63d565b6000610260526200f6d06102a051620138976102005160031b0162005d10565b60018060a01b0391549060031b1c166200f6f1610580516104805162005af1565b526200f7006105805162005a85565b610580526200f698565b50979294959093985095909560005b8281106200f7b7575050506102605162005ab95761048051516001600160401b03811162003e14576200f75881620138976102005160031b0162005e25565b60206104805101620138976102005160031b01600052602060002060005b8381106200f79957505050506200f78d9062005a85565b9492959091956200f444565b82516001600160a01b0316818301556020909201916001016200f776565b6200f7fd906001600160a01b036200f7d0828562005af1565b51166200f7e4610580516104805162005af1565b526200f7f36105805162005a85565b6105805262005a85565b6200f719565b9091926020810151602681101562003f7c576016036200f8b85760c060406200f830920151015162005aab565b519160005b83518110156200de1a576001600160a01b036200f853828662005af1565b516202712254929116600160401b83101562003e14576001830180620271225583101562005ab957620271226000526000805160206201688983398151915290920180546001600160a01b0319169092179091556200f8b29062005a85565b6200f835565b6020810151602681101562003f7c576017036200f9155760405162461bcd60e51b81526020600482015260296024820152600080516020620169698339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c576018036200f9d85760c060406200f93f920151015162005aab565b5191600160ff1962027125541617620271255560005b83518110156200de1a576001600160a01b036200f973828662005af1565b516202712454929116600160401b83101562003e14576001830180620271245583101562005ab957620271246000526000805160206201692983398151915290920180546001600160a01b0319169092179091556200f9d29062005a85565b6200f955565b602081949293940151602681101562003f7c576019036200fa00575b506200c1c79062005a85565b6020810151602681101562003f7c57601a036200fb7b5760a060406200fa2a920151015162005aab565b51906200fa3b600383511462014ca6565b6200fa468262005aab565b516200fa566200a3c88462005acf565b51926200fb3f576200c1c7926001036200fb38576200fa7e6200fadd91620271205462006ce3565b6202712055604051906200fa928262003e63565b603282527f6469766964656e6461626c652062616c616e6365206f766572666c6f772077686020830152710cadc40e0e4dec6cae6e6d2dcce40c6c2e6d60731b604083015262005a52565b6200fb316200faf0620271215462006cd0565b6202712155604051906200fb048262003e7f565b601a8252796469766964656e647320636f756e746572206f766572666c6f7760301b602083015262005a52565b906200f9f4565b506200fb31565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c6964207061796d656e74207479706560601b6044820152606490fd5b6020810151602681101562003f7c57601b036201017e575091906202711e546200fba86200a4a76201620c565b62027121546202711f5411156200fbc96200fbc26201627a565b8262005a52565b6202712054906200fbdb838362006b9b565b50506200fbe7620162d0565b506000805b6127108210620100d2575b5050906200fc276200fc2d93926200fc1d6200fc126201620c565b612710861062005a52565b620018986201627a565b62006b9b565b90506200fc39620162d0565b5060009060005b61271081106200fffa575b50906127106200fc5c920462006d71565b90506200fc6d6202712a5462005c0d565b906000946000905b6127108210156200ffed578160031b9460ff6201389a87015416156200fdd35760009662013895870154156200fdc257600098975b62005ab957620138978701548910156200fda8576200fccf8962013897890162005d10565b600160a01b6001900391549060031b1c169788600052620138968801602052604098868a60002054906200fd039162006b9b565b9a906200fd0f620162d0565b6200fd1a9162005a52565b60009a620138958b01546200fd2f9162006b9b565b906200fd3a620162d0565b6200fd459162005a52565b826000526202711a6020528160002054906200fd619162006ce3565b9091600020556200fd71620162d0565b6200fd7c9162005a52565b6200fd88828962005af1565b526200fd949062005a85565b986200fda09062005a85565b98976200fcaa565b929095506200fdba9196975062005a85565b90946200fc75565b929095506200fdba91965062005a85565b95969392509350505b6200fde78262005c0d565b9160009160005b8281106200ff57575050506202711b54916200fe0f6200815f848462014cf2565b926000906000905b8082106200ff3a57505060005b8381106200fea45750508251929150506001600160401b03821162003e14576020906200fe518362005ded565b016202711b600052602060002060005b8381106200fe8657505050506200c1c79060006202712055600062027121556200fb31565b82516001600160a01b0316818301556020909201916001016200fe61565b6000805b8381106200fef2575b50156200feca575b6200fec49062005a85565b6200fe24565b906200fec4906200fee9906001600160a01b03620082e7858762005af1565b9190506200feb9565b6001600160a01b03806200ff07858862005af1565b5116906200ff16838a62005af1565b5116146200ff2f576200ff299062005a85565b6200fea8565b50506001386200feb1565b9091620082f56200ff5091620098cd8562005cf3565b906200fe17565b6000805b8581106200ffa5575b50156200ff7d575b6200ff779062005a85565b6200fdee565b926200ff77906200ff9c906001600160a01b03620082e7878662005af1565b9390506200ff6c565b6001600160a01b03806200ffba858762005af1565b5116906200ffc9838a62005af1565b5116146200ffe2576200ffdc9062005a85565b6200ff5b565b50506001386200ff64565b939495929150506200fddc565b90918160039695961b60ff6201389a8201541615620100c65762013895810154620138978201546000928391825b818410620100645750505050620076dc6201005b93620100536200189f979694620036389462006b9b565b929062006ad1565b9493946200fc40565b94929462005ab957620100bf85620100b76201008a6200189f9862013897870162005d10565b905460039190911b1c6001600160a01b031660009081526201389686016020526040812054909662006ce3565b979062006bbd565b9262010028565b5091909493946200fc4b565b8160039897981b60ff6201389a820154161562010174576201389581015490600062013897820154916000926000925b8184106201013f5750505050620076dc62010135936200a8d1846200fc276200355e6200a8dd966200189f9a9862006b9b565b909695966200fbec565b93929362005ab9576201016d84620101656201008a6200189f9762013897870162005d10565b969062006bbd565b9262010102565b509695966200fbf7565b6020810151602681101562003f7c57601c03620101db5760405162461bcd60e51b81526020600482015260296024820152600080516020620169898339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c57601d03620101ff575b506200c1c7906200fb31565b6020810151602681101562003f7c57601e14620101f3576020810151602681101562003f7c57601f03620102925760406201023d9101515162005aab565b51906202712354600160401b81101562003e14576001810180620271235581101562005ab957620271236000526200c1c7926201028b91600080516020620168a9833981519152016200648b565b90620101f3565b6020810151602681101562003f7c57602003620102b6575b506200c1c7906201028b565b6020810151602681101562003f7c57602114620102aa576020810151602681101562003f7c576022036201034157506200c1c79060ff1962027125541662027125556202712454600062027124558062010314575b505b90620102aa565b620271246000526201033a90600080516020620169298339815191529081019062005d29565b386201030b565b6020810151602681101562003f7c5760230362010365575b506200c1c7906201030d565b6020810151602681101562003f7c5760241462010359576020810151602681101562003f7c5760251462010359579290916020840151602681101562003f7c57601503620109b5576040840190620103c260c08351015162005aab565b5190620103d960a062007887818651015162005aab565b5193620103ee8351855114620018986201637f565b620104018351865114620018986201637f565b60005b835181101562010460576201041a818662005af1565b519061271082101562005ab957620138966201045a9260018060a01b038b511660005260031b016020526200189f60406000205462007de0838a62005af1565b62010404565b509095919560005b875181101562010596576201047e818662005af1565b5161271081101562005ab957620138969060018060a01b0386511660005260031b01602052620104b960406000205462007e4d838962005af1565b90620104c6838862005af1565b519161271083101562005ab95762013896620105009360018060a01b0389511660005260031b016020526040600020556200189862016483565b6201050c818662005af1565b5161271081101562005ab95762013896906001600160a01b0362010531848c62005af1565b511660005260031b016020526201055360406000205462006f21838962005af1565b919062010561828862005af1565b519061271082101562005ab9576201059093620138966200189f938d6200c5898760018060a01b039262005af1565b62010468565b5092620105ae919294506200c5c3909695966201610e565b9260405190620105be8262003e7f565b6001825260203681840137516001600160a01b0316620105de8262005aab565b526000945b8051861015620109a257620105f9868262005af1565b516101a0526201060a855162005c0d565b966000946201061a845162005c0d565b6103e05260009460005b8851811015620106ed578a89620106546001600160a01b0362010648858462005af1565b51166101a05162015f44565b1580620106a4575b62010675575b50506201066f9062005a85565b62010624565b98620106999162001f3582859c6200802e6201066f9760018060a01b039262005af1565b9790508a8962010662565b5050506127106101a051101562005ab9576001600160a01b03620106c9828b62005af1565b5116600052620138966101a05160031b016020528a8960406000205415156201065c565b50909895979498969291939660005b885181101562010793576127106101a051101562005ab9576001600160a01b0362010728828b62005af1565b5116600052620138966101a05160031b01602052604060002054156201075a575b620107549062005a85565b620106fc565b9962010754906201078a906001600160a01b03620107798e8d62005af1565b511662001f35826103e05162005af1565b9a905062010749565b509850969592919093966101a051612710811015806106a05262005ab95760031b62013897015498620107cb6200815f898c62014cf2565b6101205260006106e05260006102e0525b6106a05162005ab9576102e0518a811015620108a95762010813620108309160006106a052620138976101a05160031b0162005d10565b90546103e05160039290921b1c6001600160a01b03169062015f9d565b156201084f575b620108456102e05162005a85565b6102e052620107dc565b60006106a0526201086f6102e051620138976101a05160031b0162005d10565b60018060a01b0391549060031b1c16620108906106e0516101205162005af1565b526201089f6106e05162005a85565b6106e05262010837565b50979294959093985095909560005b82811062010956575050506106a05162005ab95761012051516001600160401b03811162003e1457620108f781620138976101a05160031b0162005e25565b60206101205101620138976101a05160031b01600052602060002060005b8381106201093857505050506201092c9062005a85565b949295909195620105e3565b82516001600160a01b03168183015560209092019160010162010915565b6201099c906001600160a01b036201096f828562005af1565b5116620109836106e0516101205162005af1565b52620109926106e05162005a85565b6106e05262005a85565b620108b8565b5050939092506200c1c791509062010359565b60405162461bcd60e51b8152602060048201526016602482015275496e76616c6964206f7065726174696f6e207479706560501b6044820152606490fd5b5091905062010a028162014179565b90600681101562003f7c576002810362010a315760405162461bcd60e51b81528062005a81600482016200774f565b6003810362010ae45750303b1562003dde57906040518092630e8af36360e31b82526044820160406004840152815180915260206064840192019060005b81811062010aca5750505062010a958291600094600319848303016024850152620054e0565b038183305af1801562010abe5762010aaa5750565b6001600160401b03811162003e1457604052565b6040513d6000823e3d90fd5b825184528694506020938401939092019160010162010a6f565b600591501462010af15750565b906000905b602083015180518310156200b0cf578262010b119162005af1565b516020810151602681101562003f7c57156200b08c576020810151602681101562003f7c5760010362010d59576040019062010b5260c08351015162005aab565b519362010b6960a062007887818651015162005aab565b519162010b7a86518551146201505a565b62010b898651845114620150c0565b60005b865181101562010ce05762010ba2818662005af1565b5161271081101562005ab957600160ff600762010bc89360031b01541615151462015122565b62010bd4818562005af1565b5162010be1828762005af1565b519061271082101562005ab957600662010c019260031b01549062006ce3565b9062010c0e838862005af1565b519161271083101562005ab957600662010c2d9360031b01556201517a565b62010c39818562005af1565b5162010c46828762005af1565b519061271082101562005ab95762010c87916003906001600160a01b0362010c6f868d62005af1565b5116600052811b016020526040600020549062006ce3565b919062010c95828862005af1565b519061271082101562005ab95762010cda936200189f926003906001600160a01b0362010cc3878f62005af1565b5116600052811b01602052604060002055620151d9565b62010b8c565b509491509162010cf462010cfb916201610e565b9162015ff2565b936040519262010d0b8462003e9b565b60008452600036813760005b835181101562010d3c57806200189f62007a4e62010d36938762005af1565b62010d17565b509450926020925062010d50915062005a85565b91905062010af6565b602081949293940151602681101562003f7c5760020362010ff15760400180519283519062010d9162007aae60a08097015162005aab565b5193825186510362010f9c57825184510362010f4657825185510362010eed5760005b865181101562010ed75762010dca818862005af1565b5161271081101562005ab95760ff600762010dec9260031b0154161562015232565b62010df8818862005af1565b5161271081101562005ab95760031b600701805460ff1916600117905562010e21818562005af1565b5162010e2e828962005af1565b519061271082101562005ab957600562010e4c9260031b016200648b565b62010e58818662005af1565b5162010e65828962005af1565b5161271081101562005ab95760031b6001015562010e84818762005af1565b5162010e91828962005af1565b5161271081101562005ab95760031b6002015562010eb0818862005af1565b519061271082101562005ab9576000600662010ed19360031b015562005a85565b62010db4565b5095915093506020925062010d50915062005a85565b60405162461bcd60e51b815260206004820152603c6024820152600080516020620168e983398151915260448201527b1b911a5d9a59195b9915d95a59da1d081a5cc81b9bdd08195c5d585b60221b6064820152608490fd5b60405162461bcd60e51b81526020600482015260396024820152600080516020620168e98339815191526044820152781b959bdd1a5b99d41bddd95c881a5cc81b9bdd08195c5d585b603a1b6064820152608490fd5b60405162461bcd60e51b81526020600482015260386024820152600080516020620168e98339815191526044820152771b925b99195e105c9c985e481a5cc81b9bdd08195c5d585b60421b6064820152608490fd5b92916020840151602681101562003f7c57600303620115f55760408401906201101f60c08351015162005aab565b51906201103660a062007887818651015162005aab565b51936201104b8351855114620018986201637f565b6201105e8351865114620018986201637f565b60005b8351811015620110ba5762011077818662005af1565b519061271082101562005ab9576003620110b49260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b62011061565b509095919560005b8751811015620111e557620110d8818662005af1565b5161271081101562005ab95760039060018060a01b03865116600052811b016020526201111060406000205462007e4d838962005af1565b906201111d838862005af1565b519161271083101562005ab9576003620111549360018060a01b03895116600052811b016020526040600020556200189862016483565b62011160818662005af1565b5161271081101562005ab9576003906001600160a01b0362011183848c62005af1565b5116600052811b01602052620111a460406000205462006f21838962005af1565b9190620111b2828862005af1565b519061271082101562005ab957620111df9360036200189f938d62007f068760018060a01b039262005af1565b620110c2565b5092620111fd919294506200c5c3909695966201610e565b92604051906201120d8262003e7f565b6001825260203681840137516001600160a01b03166201122d8262005aab565b526000945b8051861015620115e15762011248868262005af1565b516103605262011259855162005c0d565b9660009462011269845162005c0d565b6106205260009460005b885181101562011339578a89620112a36001600160a01b0362011297858462005af1565b51166103605162015edb565b1580620112f3575b620112c4575b5050620112be9062005a85565b62011273565b98620112e89162001f3582859c6200802e620112be9760018060a01b039262005af1565b9790508a89620112b1565b50505061271061036051101562005ab9576001600160a01b0362011318828b62005af1565b5116600052600361036051811b016020528a896040600020541515620112ab565b50909895979498969291939660005b8851811015620113dc5761271061036051101562005ab9576001600160a01b0362011374828b62005af1565b5116600052600361036051811b0160205260406000205415620113a3575b6201139d9062005a85565b62011348565b996201139d90620113d3906001600160a01b03620113c28e8d62005af1565b511662001f35826106205162005af1565b9a905062011392565b5098509695929190939661036051612710811015806105a05262005ab95760031b6004015498620114126200815f898c62014cf2565b610700526000610520526000610680525b6105a05162005ab957610680518a811015620114ec5762011458620114759160006105a05260046103605160031b0162005d10565b90546106205160039290921b1c6001600160a01b03169062015f9d565b1562011494575b6201148a6106805162005a85565b6106805262011423565b60006105a052620114b26106805160046103605160031b0162005d10565b60018060a01b0391549060031b1c16620114d3610520516107005162005af1565b52620114e26105205162005a85565b610520526201147c565b50979294959093985095909560005b82811062011595575050506105a05162005ab95761070051516001600160401b03811162003e1457620115388160046103605160031b0162005e25565b6020610700510160046103605160031b01600052602060002060005b8381106201157757505050506201156b9062005a85565b94929590919562011232565b82516001600160a01b03168183015560209092019160010162011554565b620115db906001600160a01b03620115ae828562005af1565b5116620115c2610520516107005162005af1565b52620115d16105205162005a85565b6105205262005a85565b620114fb565b50509362010d509193506020925062005a85565b90926020810151602681101562003f7c576004036201189f576201162160c06040830151015162005aab565b51936201163660c06040840151015162005acf565b51906201165d60a06040620116518282880151015162005aab565b51950151015162005acf565b5193620116728751845114620018986201637f565b620116858751855114620018986201637f565b620116988751865114620018986201637f565b60005b87518110156201170157620116b1818662005af1565b519061271082101562005ab957620116fb916003906001600160a01b03620116da848d62005af1565b5116600052811b016020526200189f60406000205462007de0838a62005af1565b6201169b565b509095919593929360005b83518110156201185c5762011722818762005af1565b5161271081101562005ab9576003906001600160a01b0362011745848862005af1565b5116600052811b016020526201176660406000205462007e4d838862005af1565b9062011773838962005af1565b519161271083101562005ab957620117b7926003906001600160a01b036201179c878b62005af1565b5116600052811b016020526040600020556200189862016483565b620117c3818762005af1565b5161271081101562005ab9576003906001600160a01b03620117e6848c62005af1565b5116600052811b016020526201180760406000205462006f21838862005af1565b91905062011816818862005af1565b519161271083101562005ab95762011856926003906001600160a01b036201183f858e62005af1565b5116600052811b0160205260406000205562005a85565b6201170c565b50936201187691929693506200857062007f3e916201610e565b9260005b835181101562010d3c57806200189f62007a4e62011899938762005af1565b6201187a565b926020840151602681101562003f7c5760050362011a5d576040840190620118d160a0620085d9818551015162005aab565b519282518451036200d5565760005b83518110156201193957620118f6818562005af1565b519061271082101562005ab9576003620119339260018060a01b038a5116600052811b016020526200189f60406000205462007de0838962005af1565b620118e0565b509060005b8351811015620119dc5762011954818562005af1565b5161271081101562005ab95760039060018060a01b03895116600052811b016020526201198c60406000205462007e4d838862005af1565b91906201199a828762005af1565b519061271082101562005ab957620119d69360036200189f9360018060a01b038d5116600052811b016020526040600020556200189862016483565b6201193e565b5094925090620119ec906201610e565b9060405192620119fc8462003e7f565b6001845260203681860137516001600160a01b031662011a1c8462005aab565b526040519462011a2c8662003e9b565b60008652600036813760005b835181101562010d3c57806200189f62007a4e62011a57938762005af1565b62011a38565b926020810151602681101562003f7c5760060362011c155760400162011a8860c08251015162005aab565b519362011a9f60a0620085d9818551015162005aab565b519285518351036200db495785518451036200dafc5760005b865181101562011b1e5762011ace818562005af1565b519061271082101562005ab95762011b18916003906001600160a01b0362011af7848c62005af1565b5116600052811b016020526200189f60406000205462007de0838962005af1565b62011ab8565b509060005b865181101562011bbf5762011b39818562005af1565b5161271081101562005ab9576003906001600160a01b0362011b5c848b62005af1565b5116600052811b0160205262011b7d60406000205462007e4d838862005af1565b919062011b8b828762005af1565b519061271082101562005ab95762011bb9936200189f926003906001600160a01b036201179c878f62005af1565b62011b23565b50949162011bd491935062010cf4906201610e565b916040519462011be48662003e9b565b60008652600036813760005b835181101562010d3c57806200189f62007a4e62011c0f938762005af1565b62011bf0565b6020810151602681101562003f7c5760070362011d28576040019262011c4060c08551015162005aab565b519162011c5260a08651015162005aab565b519451519162011c6a8451875114620018986201637f565b60005b845181101562010d3c5762011d22906200189f6001600160a01b038062011c95848a62005af1565b51166000528660028b62011d1262011cd58762011ccd8162013880978860205262008ae360ff60406000205416156200189862016450565b519362005af1565b519162008b478d6040519662011ceb8862003df8565b60018852886200dc978c60208b01946000865260408c0197885260608c01998a5262005af1565b5191015562008b62838962005af1565b62011c6d565b6020819493940151602681101562003f7c5760080362011dc05760c0604062011d55920151015162005aab565b519160005b835181101562011dae5762011da8906001600160a01b038062011d7e838862005af1565b51166000526201388090816020526200ddb7600160ff6040600020541615151462001898620163af565b62011d5a565b5092602091925062010d509062005a85565b6020810151602681101562003f7c5760090362011e435760c0604062011dea920151015162005aab565b519160005b835181101562011dae5762011e3d906001600160a01b038062011e13838862005af1565b51166000526201388090816020526200dea6600160ff6040600020541615151462001898620163af565b62011def565b6020810151602681101562003f7c57600a0362011ef2576040019062011e7460a06200df3a60c08551015162005aab565b519262011e898351855114620018986201637f565b60005b835181101562011edf5762011ed9906001600160a01b038062011eb0838862005af1565b511660005262013880806020526200dfaa600160ff6040600020541615151462001898620163af565b62011e8c565b509362010d509193506020925062005a85565b602081949392940151602681101562003f7c57600b0362011fa6576040019262011f2160c08551015162005aab565b519351519162011f398551845114620018986201637f565b60005b855181101562011f935762011f8d906200189f6001600160a01b038062011f64848b62005af1565b511660005262013880806020526200e08d600160ff6040600020541615151462001898620163af565b62011f3c565b509350916020915062010d509062005a85565b9091926020820151602681101562003f7c57600c03620120dc576060604083015101519260005b845181101562011edf5760e062011fed8260606040880151015162005af1565b510151156201206c576201200e62008f508260606040880151015162005af1565b62013882548060001981011162005a95576201203060059160001901620069d6565b5001805461ff0019166101001790556201388254906000198201821062005a9557600562008fa5620120669360001901620069d6565b62011fcd565b6201208462008fcf8260606040880151015162005af1565b62013882548060001981011162005a9557620120a66005916000190162006994565b5001805461ff0019166101001790556201388254906000198201821062005a9557600562008fa562012066936000190162006994565b9291906020810151602681101562003f7c57600d03620121f0576040019260206201210c60a08651015162005aab565b51945101519162012121855184511462014d99565b60005b855181101562011f9357806201213f62012198928662005af1565b51156201219e5762012156620090c8828962005af1565b6201216e60ff60056200e2bd620090ea858c62005af1565b6201218660ff600562009103620090ea858c62005af1565b60056200911f620090ea838a62005af1565b62012124565b620121ae62009157828962005af1565b620121c660ff60056200e2bd62009179858c62005af1565b620121de60ff60056200910362009179858c62005af1565b60056200911f62009179838a62005af1565b6020819492940151602681101562003f7c57600e03620122b7576040019060206201222060a08451015162005aab565b51925101519362012235835186511462014d99565b60005b835181101562011f935780620122536201225f928862005af1565b51620122655762005a85565b62012238565b6201227562009215828762005af1565b6201228d60ff60056200e3fc620090ea858a62005af1565b620122a560ff60056200925d620090ea858a62005af1565b600562008fa5620090ea838862005af1565b906020829493940151602681101562003f7c57600f03620123ee576060604083015101519260005b845181101562011edf5760e0620122ff8260606040880151015162005af1565b510151156201237e576201232062008f508260606040880151015162005af1565b62013882548060001981011162005a95576201234260059160001901620069d6565b5001805461ff0019166101001790556201388254906000198201821062005a955760056200911f620123789360001901620069d6565b620122df565b6201239662008fcf8260606040880151015162005af1565b62013882548060001981011162005a9557620123b86005916000190162006994565b5001805461ff0019166101001790556201388254906000198201821062005a955760056200911f62012378936000190162006994565b906020819493940151602681101562003f7c576010036201245f5760400151906201242260a0608084015193015162005aab565b5193620124378351865114620018986201637f565b60005b835181101562011f9357806200189f620093ff62012459938762005af1565b6201243a565b6020819492940151602681101562003f7c57601103620126c457604001906201249360a06200df3a60c08551015162005aab565b5193620124a4835186511462014ca6565b60005b83518110156201251f5762012519906200189f6001600160a01b0380620124cf848962005af1565b51166000526201388580602052620124f260406000205462006f21868d62005af1565b91909262012501868b62005af1565b51166000526020526040600020556200189862016335565b620124a7565b509350906201252e9062015ff2565b90620138865493620125466200815f84518762014cf2565b9060009260005b878110620126a9575060005b855181101562012600576000805b898110620125b1575b501562012589575b620125839062005a85565b62012559565b936201258390620125a8906001600160a01b036200e863888a62005af1565b94905062012578565b620125bc8162005c62565b90546001600160a01b0360039290921b1c811690620125dc858b62005af1565b511614620125f557620125ef9062005a85565b62012567565b505060013862012570565b509550939250620126118262005c0d565b8051906001600160401b03821162003e1457602090620126318362005d7e565b0162013886600052602060002060005b8381106201268b575050505060005b828110620126685750505062010d5060209162005a85565b62012685906200189f6001600160a01b0362001e63838662005af1565b62012650565b82516001600160a01b03168183015560209092019160010162012641565b936200e9b0620126be916200e9928762005c62565b6201254d565b6020819492940151602681101562003f7c576012036201290d5760400190620126f860a06200df3a60c08551015162005aab565b519362012709835186511462014ca6565b60005b83518110156201275d5762012757906200189f6001600160a01b038062012734848962005af1565b51166000526201388580602052620124f260406000205462007e4d868d62005af1565b6201270c565b50935091906201276d9062015ff2565b62013886546201277d8162005c0d565b906000926000915b80831062012833575050506201279b8262005c0d565b8051906001600160401b03821162003e1457602090620127bb8362005d7e565b0162013886600052602060002060005b83811062012815575050505060005b828110620127f25750505062010d5060209162005a85565b6201280f906200189f6001600160a01b0362001e63838662005af1565b620127da565b82516001600160a01b031681830155602090920191600101620127cb565b91956000959193959760005b8551811015620128fe57620128548962005c62565b90546001600160a01b0360039290921b1c81169062012874838962005af1565b5116146201288d57620128879062005a85565b6201283f565b509750956001959391955b80620128cc575b15620128b757620128b09062005a85565b9162012785565b936200e9b0620128b0916200e9928762005c62565b50620128d88162005c62565b60018060a01b0391549060031b1c1660005262013885602052604060002054156201289f565b50979690969593919562012898565b6020810151602681101562003f7c57601303620129665760408091015101519260005b84518110156201295557806200189f620099786201294f938862005af1565b62012930565b5092509062010d5060209162005a85565b6020810151602681101562003f7c5760140362012b1357604001906201299160c08351015162005aab565b5193620129a860a062007887818651015162005aab565b5191620129b986518551146201505a565b620129c88651845114620150c0565b60005b865181101562012abe57620129e1818562005af1565b51620129ee828762005af1565b519061271082101562005ab957600662012a0e9260031b01549062006ce3565b9062012a1b838862005af1565b519161271083101562005ab957600662012a3a9360031b01556201517a565b62012a46818562005af1565b5162012a53828762005af1565b519061271082101562005ab95762012a7c916003906001600160a01b0362010c6f868d62005af1565b919062012a8a828862005af1565b519061271082101562005ab95762012ab8936200189f926003906001600160a01b0362010cc3878f62005af1565b620129cb565b509491509162010cf462012ad2916201610e565b936040519262012ae28462003e9b565b60008452600036813760005b835181101562010d3c57806200189f62007a4e62012b0d938762005af1565b62012aee565b6020810151602681101562003f7c5760150362012b3d57602091926200189f62010d50926201527e565b6020810151602681101562003f7c5760160362012b995760c0604062012b67920151015162005aab565b519260005b8451811015620129555762012b93906200189f6001600160a01b036200a110838962005af1565b62012b6c565b6020810151602681101562003f7c5760170362012bf65760405162461bcd60e51b81526020600482015260296024820152600080516020620169698339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c5760180362012c635760c0604062012c20920151015162005aab565b5192600160ff1962013892541617620138925560005b8451811015620129555762012c5d906200189f6001600160a01b036200a1dd838962005af1565b62012c36565b6020819392930151602681101562003f7c5760190362012d4b5760008080604080940160a08082510151805162012d12575b5050519060e08201519162012cb962006f1a60c060018060a01b0393015162005aab565b511690602083519301915af1903d1562012d09573d9162012cda8362004098565b9262012ce98351948562003eb7565b83523d6000602085013e5b156200a29257505062010d5060209162005a85565b60609162012cf4565b62012d1d9062005aab565b515162012d2c575b8062012c95565b81925062006f1a9062012d429251015162005aab565b51903862012d25565b6020810151602681101562003f7c57601a0362012e455762012d7660a0604080930151015162005aab565b5162012d86600382511462014ca6565b62012d918162005aab565b519162012daa62012da28362005acf565b519262005ae0565b519162012e0b57509162010d50916001602094146000146200a4315762012dda62012de9916201388d5462006ce3565b6201388d5562001898620162d0565b6200189f62012dfc6201388e5462006cd0565b6201388e55620018986201630a565b5162461bcd60e51b8152602060048201526014602482015273496e76616c6964207061796d656e74207479706560601b6044820152606490fd5b6020810151602681101562003f7c57601b036201327d5750919062012e766201388b54620035a86200a4a76201620c565b505062012e82620162d0565b506000805b612710811062013231575b505062012e9e62006cf5565b62012ead6202712a5462005c0d565b906000946000905b61271082101562013224578160031b9460ff60078701541615620130085760009660028701541562012ff757600098975b62005ab957600487015489101562012fdd5762012f07896004890162005d10565b9054600391821b1c6001600160a01b031660008181529189016020526040918290205491999162012f3a90889062006b9b565b9a9062012f46620162d0565b62012f519162005a52565b60009a60028b015462012f649162006b9b565b9062012f6f620162d0565b62012f7a9162005a52565b826000526201388760205281600020549062012f969162006ce3565b90916000205562012fa6620162d0565b62012fb19162005a52565b62012fbd828962005af1565b5262012fc99062005a85565b9862012fd59062005a85565b989762012ee6565b9290955062012fef9196975062005a85565b909462012eb5565b9290955062012fef91965062005a85565b95969392509350505b6201301c8262005c0d565b9160009160005b8281106201318e57505050620138885491620130446200815f848462014cf2565b926000906000905b8082106201317157505060005b838110620130db5750508251929150506001600160401b03821162003e1457602090620130868362005d42565b0162013888600052602060002060005b838110620130bd575050505062010d5060209160006201388d5560006201388e5562005a85565b82516001600160a01b03168183015560209092019160010162013096565b6000805b83811062013129575b501562013101575b620130fb9062005a85565b62013059565b90620130fb9062013120906001600160a01b03620082e7858762005af1565b919050620130f0565b6001600160a01b03806201313e858862005af1565b5116906201314d838a62005af1565b5116146201316657620131609062005a85565b620130df565b5050600138620130e8565b9091620082f56201318791620098cd8562005c45565b906201304c565b6000805b858110620131dc575b5015620131b4575b620131ae9062005a85565b62013023565b92620131ae90620131d3906001600160a01b03620082e7878662005af1565b939050620131a3565b6001600160a01b0380620131f1858762005af1565b51169062013200838a62005af1565b5116146201321957620132139062005a85565b62013192565b50506001386201319b565b9394959291505062013011565b8060039594951b9060ff6007830154161562013273576200a8dd620076dc6200189f946200a8d16201326a9560026200a8c78762006b3e565b93929362012e87565b5093929362012e92565b6020810151602681101562003f7c57601c03620132da5760405162461bcd60e51b81526020600482015260296024820152600080516020620169898339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c57601d0362013300575b5062010d5060209162005a85565b6020810151602681101562003f7c57601e14620132f2576020810151602681101562003f7c57601f036201335157602091620133496200a9ba604062010d509401515162005aab565b9150620132f2565b6020810151602681101562003f7c5760200362013377575b5062010d5060209162013349565b6020810151602681101562003f7c5760211462013369576020810151602681101562003f7c57602203620133cd575062010d5060209160ff196201389254166201389255620133c562005e11565b915062013369565b6020810151602681101562003f7c57602303620133f3575b5062010d50602091620133c5565b6020810151602681101562003f7c57602414620133e5576020810151602681101562003f7c57602514620133e5576020810151602681101562003f7c57601503620109b5576020916201344a62010d50926201527e565b9150620133e5565b82516001600160a01b0316818301556020909201916001016200bb19565b82516001600160a01b0316818301556020909201916001016200b9c4565b600191820180546001600160a01b03909216848601559390910192906200b90c565b62027124600052620134d8906000805160206201692983398151915290810190830162005d29565b386200b8cc565b60018082620134f08294866201392e565b019201920191906200b88b565b62027123600052600080516020620168a9833981519152908282015b81830181106201352b5750506200b84f565b8062013539600192620060f7565b0162013519565b600191820180546001600160a01b03909216848601559390910192906200b81d565b620271226000526201358a906000805160206201688983398151915290810190830162005d29565b386200b7dd565b82516001600160a01b0316818301556020909201916001016200b69f565b620135cb906202711d6000528484600020918201910162005d29565b386200b68e565b82516001600160a01b0316818301556020909201916001016200b4af565b6201360c90620271146000528484600020918201910162005d29565b386200b49e565b80620136359160031b600160ff6007830154161515146201363b575062005a85565b6200b3ee565b6201364f6004820162013897830162013ac7565b6201389a8101600160ff1982541617905580548162013893015560018101546201389482015560028101546201389582015562013695600582016201389883016201392e565b620138996006820154910155386200a431565b6006602082620136bc6001945186620065a1565b019201920191906200b1db565b600681810204810362005a9557600683810204830362005a9557620271156000527f0f9b10e190177c3c56fc6ce7689c8130c567df57aa02c08e7a090a59992adf926006840281015b8260060282018110620137275750506200b1c7565b8060006006925560006001820155620137436002820162006265565b600060038201556201375860048201620060f7565b600060058201550162013712565b60066020826201377a6001945186620065a1565b019201920191906200b14b565b8060060290600682040362005a95578260060260068104840362005a95576000906202711682526020822092830192015b828110620137c85750506200b137565b808260069255826001820155620137e26002820162006265565b826003820155620137f660048201620060f7565b82600582015501620137b8565b608460405162461bcd60e51b815260206004820152604060248201526000805160206201694983398151915260448201527f656d2073686f756c64206e6f742072657475726e20766f7465206e65656465646064820152fd5b60405162461bcd60e51b815260206004820152604760248201526000805160206201694983398151915260448201527f656d2073686f756c64206e6f742072657475726e206120766f74696e672072756064820152661b19481b1a5cdd60ca1b608482015260a490fd5b8181146201392a578154916001600160401b03831162003e1457620138ec838362005e25565b60005260206000209060005260206000208154916000925b84841062013913575050505050565b600180919201938454928185015501929062013904565b5050565b908082146201392a5762013943815462005129565b906001600160401b03821162003e145781906201396d8262013966865462005129565b8662006441565b600090601f8311600114620139a6576000926201399a5750508160011b916000199060031b1c1916179055565b015490503880620064d4565b81526020808220858352818320935090601f1985169083905b828210620139fb575050908460019594939210620139e157505050811b019055565b015460001960f88460031b161c1916905538808062006521565b8495819295850154815560018091019601940190620139bf565b8181146201392a5781549162013a2c838362006188565b6000526020600020906000526020600020906000905b83821062013a505750505050565b8062013a5f600192856201392e565b92810192918101910162013a42565b8181146201392a5781549162013a85838362006216565b6000526020600020906000526020600020906000905b83821062013aa95750505050565b8062013ab860019285620138c6565b92810192918101910162013a9b565b8181146201392a578154916001600160401b03831162003e145762013aed838362005e25565b60005260206000209060005260206000208154916000925b84841062013b14575050505050565b600191820180546001600160a01b039092168486015593909101929062013b05565b8181146201392a5781549162013b4d838362006216565b6000526020600020906000526020600020906000905b83821062013b715750505050565b8062013b806001928562013ac7565b92810192918101910162013b63565b8181146201392a5781549162013ba683836200630c565b6000526020600020906000526020600020906000905b83821062013bca5750505050565b80600191840362013be7575b600780910193019101909162013bbc565b8054845562013c268280860190830160ff9062013c088282541684620063e4565b62013c1a82825460081c1684620063fe565b5460101c16906200641f565b62013c386002808301908601620138c6565b600380850190820180820362013c51575b505062013bd6565b62013c5c9162013a15565b62013c6e600480830190860162013a6e565b62013c80600580830190860162013b36565b62013c9260068083019086016201392e565b388062013c49565b919062006a4f5780820362013cad575050565b60ff600580620052aa9462013cc68486541682620063cb565b6001850154600182015562013ce2600286016002830162013b8f565b6003850154600382015562013cfe60048601600483016201392e565b01920162013d1082825416846200655e565b62013d2282825460081c16846200656f565b5460101c169062006587565b908082146201392a57908154906000915b6064831062013d4e5750505050565b600180919401928354948184015501919262013d3f565b906201388254602060009301908151519062013d818262003edb565b9162013d91604051938462003eb7565b80835262013da2601f199162003edb565b0136602084013762013db78351518262006b9b565b9015620141215762013dc99062005c0d565b90859284515115620141185762013de08262005c0d565b965b85515181101562013f615760008080805b86811062013e785750905062013e158162013e0f858762005af1565b6200534e565b600681101562003f7c5760031462013e3a575b5062013e349062005a85565b62013de2565b6000905b80821062013e4d575062013e28565b9095620098eb62013e719162013e64898d62005af1565b5162001f35828a62005af1565b9062013e3e565b62013e918162013e8a878d5162005af1565b516201453a565b9390948083118062013f4d575b1562013f0457505091838562013efa575b600681101562003f7c5760038e911462013eda575b505062013ed19062005a85565b91909162013df3565b9462013ef19162001f358262013ed1959862005af1565b93908c62013ec4565b6000955062013eaf565b809492959195148062013f39575b1562013ec457600681101562003f7c5760038e911462013eda57505062013ed19062005a85565b50600681101562003f7c5780151562013f12565b50600686101562003f7c5785151562013e9e565b5093505090929350600093845b8351861015620140b35762013f8e62013f88878662005af1565b620063bd565b9060068083101562003f7c57600292830362013fb957505062013fb2909562005a85565b9462013f6e565b62013fc962013f88898862005af1565b928184101562003f7c576001809414806201409f575b1562013ff45750505062013fb2909562005a85565b6201400962013f888a899b9694959b62005af1565b928084101562003f7c576004809414928362014073575b508262014048575b50506201403c575b5062013fb29062005a85565b955062013fb262014030565b9091508810156201405e57871415388062014028565b602182634e487b7160e01b6000525260246000fd5b908093508a10156201408a57891415913862014020565b602184634e487b7160e01b6000525260246000fd5b508183101562003f7c578083141562013fdf565b925092909350600682101562003f7c57600382036201410f575b620140d88162005c0d565b9360005b828110620140eb575050509190565b80620140fc62014109928462005af1565b5162001f35828962005af1565b620140dc565b506000620140cd565b50909392505050565b60405162461bcd60e51b815260206004820152602a60248201527f546865206c656e677468206f6620766f74696e672072756c65206c697374206960448201526973206f766572666c6f7760b01b6064820152608490fd5b9062013883546020600093019081515190620141958262003edb565b91620141a5604051938462003eb7565b808352620141b6601f199162003edb565b01366020840137620141cb8351518262006b9b565b90156201412157620141dd9062005c0d565b908592845151156201411857620141f48262005c0d565b965b855151811015620143625760008080805b8681106201427957509050620142238162013e0f858762005af1565b600681101562003f7c5760031462014248575b50620142429062005a85565b620141f6565b6000905b8082106201425b575062014236565b9095620098eb620142729162013e64898d62005af1565b906201424c565b62014292816201428b878d5162005af1565b51620145d6565b939094808311806201434e575b1562014305575050918385620142fb575b600681101562003f7c5760038e9114620142db575b5050620142d29062005a85565b91909162014207565b94620142f29162001f3582620142d2959862005af1565b93908c620142c5565b60009550620142b0565b80949295919514806201433a575b15620142c557600681101562003f7c5760038e9114620142db575050620142d29062005a85565b50600681101562003f7c5780151562014313565b50600686101562003f7c578515156201429f565b5093505090929350600093845b835186101562014484576201438962013f88878662005af1565b9060068083101562003f7c576002928303620143b4575050620143ad909562005a85565b946201436f565b620143c462013f88898862005af1565b928184101562003f7c5760038094148062014470575b15620143ef57505050620143ad909562005a85565b6201440462013f888a899b9694959b62005af1565b928084101562003f7c576005809414928362014459575b508262014443575b505062014437575b50620143ad9062005a85565b9550620143ad6201442b565b90915088101562003f7c57871415388062014423565b908093508a101562003f7c5789141591386201441b565b508183101562003f7c5780831415620143da565b925092909350600682101562003f7c5760038203620144d3575b620144a98162005c0d565b9360005b828110620144bc575050509190565b80620140fc620144cd928462005af1565b620144ad565b5060006201449e565b15620144e457565b60405162461bcd60e51b815260206004820152602860248201527f506c7567696e466163746f72793a20706c7567696e20696e646578206f7574206044820152676f662072616e676560c01b6064820152608490fd5b90916000809381936201455362013882548310620144dc565b60ff60056201456284620069d6565b50015460081c1615620145ca5782826201457e92600162014763565b6201458a575b50929190565b80945060019293506201459e9150620069d6565b500154906003620145bf60ff620145b586620069d6565b50541694620069d6565b500154913862014584565b50509150915080918190565b9091600080938193620145ef62013883548310620144dc565b60ff6005620145fe8462006994565b50015460081c1615620145ca57828262014619928262014763565b620146245750929190565b809450600192935062014638915062006994565b500154906003620145bf60ff6201464f8662006994565b5054169462006994565b156201466157565b60405162461bcd60e51b815260206004820152603160248201527f436865636b696e6720636f6e646974696f6e206578703a20706c7567696e20696044820152706e646578206f7574206f662072616e676560781b6064820152608490fd5b15620146c857565b60405162461bcd60e51b815260206004820152602f60248201527f436865636b696e6720636f6e646974696f6e206578703a206e6f646520696e6460448201526e6578206f7574206f662072616e676560881b6064820152608490fd5b62013884805482101562005ab9576000526007602060002091020190600090565b805482101562005ab9576000526007602060002091020190600090565b90929190801562014ad2576201477f6201388254831062014659565b6201479b60026201479084620069d6565b5001548410620146c0565b801562014ab457620147cb6001620147c2856002620147ba87620069d6565b500162014746565b50015460ff1690565b620147d68162004dc4565b80620147e6575050505050600090565b620147f18162004dc4565b6003810362014804575050505050600190565b6201480f8162004dc4565b6004810362014822575050505050600090565b6201482d8162004dc4565b60019080820362014846575050926200553f9362014afa565b909293620148548262004dc4565b60028092146201486a575b505050505050600090565b821562014a97576201489384620148878385620147ba8a620069d6565b50015460081c60ff1690565b925b60009586865b62014a25575b50620148ad8762005c0d565b9760005b888110620149c8575050505050620148c98262003f71565b8183036201492857505091906000915b818310620148e75750505090565b9091928062014905575b620148fd909362005a85565b9190620148d9565b50620148fd620149206201491a858462005af1565b51151590565b9050620148f1565b909150620149368262003f71565b81036201498f57509060009182915b818310620149535750505090565b909192801562014972575b6201496a909362005a85565b919062014945565b506201496a620149876201491a858462005af1565b90506201495e565b600391506201499e8162003f71565b14620149b157503880808080806201485f565b620149c46201491a6200553f9262005aab565b1590565b808a62014a04620149fb620149f1848b620149e98c82620147ba8d62006994565b500162005d10565b90549060031b1c90565b86868962014763565b62014a1862014a1f946200189f9362005af1565b9015159052565b620148b1565b8462014a378582620147ba8662006994565b50015481101562014a915762014a5d620149f18287620149e98882620147ba8962006994565b62014a76575b62014a6f879162005a85565b906201489b565b9662014a6f62014a87889262005a85565b9891505062014a63565b620148a1565b62014aad84620148878385620147ba8a62006994565b9262014895565b62014acc6001620147c2856002620147ba8762006994565b620147cb565b62014ae36201388354831062014659565b62014af46002620147908462006994565b6201479b565b909291600362014b4c918360001462014bd45760ff600162014b23876002620147ba86620069d6565b50015460101c16945b841562014bc3576002620147ba62014b4493620069d6565b50016200547e565b91603d81101562003f7c57602c810362014b9357505062014b7662006f1a60208093015162005aab565b51910151602681101562003f7c5762014b8f906201651b565b1490565b9092906001810362014ba85750505050600090565b60031462014bb857505050600090565b6200553f9262014c44565b6002620147ba62014b449362006994565b60ff600162014bea876002620147ba8662006994565b50015460101c169462014b2c565b1562014c0057565b606460405162461bcd60e51b815260206004820152602060248201527f4f70657261746f722061646472657373206973206e6f742070726f76696465646044820152fd5b9190604062006f1a920162014c5e60018251511462014bf8565b62014c79600162014c70835162005aab565b51511462014bf8565b516001600160a01b0392839162014c91919062005aab565b5116921562014ca05751161490565b51161490565b1562014cae57565b60405162461bcd60e51b815260206004820152601c60248201527b496e76616c6964206e756d626572206f6620706172616d657465727360201b6044820152606490fd5b9190820180921162005a9557565b62014d0b8162004dc4565b62014d196200e667620164b2565b62014d248162004dc4565b6001810362014d43575062014d3c6200e693620164b2565b6201388b55565b62014d4e8162004dc4565b6002810362014d5f57506201388c55565b62014d6a8162004dc4565b6003810362014d7b57506201388d55565b8062014d8960049262004dc4565b1462014d925750565b6201388e55565b1562014da157565b60405162461bcd60e51b815260206004820152604d60248201527f546865206c656e677468206f662074686520706c7567696e20696e646578657360448201527f20617272617920616e642074686520626f6f6c65616e206172726179206d757360648201526c74206265207468652073616d6560981b608482015260a490fd5b1562014e2a57565b60405162461bcd60e51b815260206004820152602260248201527f496e76616c696420706c7567696e20696e64657820746f20626520656e61626c604482015261195960f21b6064820152608490fd5b1562014e8257565b60405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c6564206973206e6f742060448201526a1a5b9a5d1a585b1a5e995960aa1b6064820152608490fd5b1562014ee357565b60405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c656420697320616c726560448201526a18591e48195b98589b195960aa1b6064820152608490fd5b1562014f4457565b60405162461bcd60e51b815260206004820152602360248201527f496e76616c696420706c7567696e20696e64657820746f2062652064697361626044820152621b195960ea1b6064820152608490fd5b1562014f9d57565b60405162461bcd60e51b815260206004820152602c60248201527f54686520706c7567696e20746f2062652064697361626c6564206973206e6f7460448201526b081a5b9a5d1a585b1a5e995960a21b6064820152608490fd5b1562014fff57565b60405162461bcd60e51b815260206004820152602d60248201527f54686520706c7567696e20746f2062652064697361626c656420697320616c7260448201526c1958591e48191a5cd8589b1959609a1b6064820152608490fd5b156201506257565b60405162461bcd60e51b815260206004820152603060248201527f546865206c656e677468206f662074617267657420616e6420746f6b656e436c60448201526f185cdcc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b15620150c857565b60405162461bcd60e51b815260206004820152602c60248201527f546865206c656e677468206f662074617267657420616e6420616d6f756e742060448201526b1a5cc81b9bdd08195c5d585b60a21b6064820152608490fd5b156201512a57565b60405162461bcd60e51b815260206004820152602260248201527f54686520746f6b656e20636c617373206973206e6f7420696e697469616c697a604482015261195960f21b6064820152608490fd5b156201518257565b60405162461bcd60e51b815260206004820152602960248201527f54686520746f74616c20737570706c79206f662074686520746f6b656e206973604482015268206f766572666c6f7760b81b6064820152608490fd5b15620151e157565b60405162461bcd60e51b8152602060048201526024808201527f5468652062616c616e6365206f662074686520746f6b656e206973206f766572604482015263666c6f7760e01b6064820152608490fd5b156201523a57565b606460405162461bcd60e51b815260206004820152602060248201527f54686520746f6b656e20697320616c726561647920696e697469616c697a65646044820152fd5b60408101906201529360c08351015162005aab565b5191620152b560a0620152aa818451015162005aab565b519251015162005acf565b5193620152ca8451835114620018986201637f565b620152dd8451865114620018986201637f565b60005b84518110156201533a57620152f6818462005af1565b519061271082101562005ab957620153349160018060a01b03865116600052600390811b016020526200189f60406000205462007de0838a62005af1565b620152e0565b5092919360005b8351811015620154655762015357818462005af1565b5190612710918281101562005ab95760018060a01b03908189511660005260039081602091811b0181526201539760406000205462007e4d868962005af1565b90620153a4868a62005af1565b51918783101562005ab95784620153d193878f5116600052811b0184526040600020556200189862016483565b620153dd848862005af1565b518581101562005ab957829084620153f6878c62005af1565b5116600052811b0181526201541660406000205462006f21868962005af1565b91909262015425868a62005af1565b519687101562005ab9576201545f966200189f9562015445888d62005af1565b5116600052811b01905260406000205562001898620164e8565b62015341565b505062010cf462015476916201610e565b9060405193620154868562003e7f565b60018552602036818701376001600160a01b03610960819052905116620154ad8562005aab565b526000935b8151851015620157d057620154c8858362005af1565b5194620154d6845162005c0d565b91600093620154e6825162005c0d565b610920528496855b87518110156201558f5762015515610960516201550c838b62005af1565b51168b62015edb565b158062015557575b62015534575b6201552e9062005a85565b620154ee565b956201554e6201552e91610960516200a7568a8c62005af1565b96905062015523565b506127108a101562005ab9576109605162015573828a62005af1565b511660005260038a811b0160205260406000205415156201551d565b509793929096949195976000986127108610159560031b9860038a019a5b895181101562015629578762005ab95761096051620155cd828c62005af1565b51166000528b60205260406000205415620155f4575b620155ee9062005a85565b620155ad565b9762015620620155ee918b6201560f8c610960519262005af1565b511662001f35826109205162005af1565b989050620155e3565b50949591939650985096909596806109805262005ab957600401806109005254956201565a6200815f868962014cf2565b61094052600097886108e0525b6109805162005ab9576108e05188811015620157055762015696620156ac916000610980526109005162005d10565b6109605191549060031b1c166109205162015f9d565b15620156cb575b620156c16108e05162005a85565b6108e05262015667565b97620156fe90620156e36108e0516109005162005d10565b6109605191549060031b1c1662001f35826109405162005af1565b97620156b3565b5095939096509690969391936000915b8383106201579f57505050506109805162005ab95761094051516001600160401b03811162003e14576201574d816109005162005e25565b60206109405101610900516000526020600020600061096051905b84811062015788575050505050620157809062005a85565b9392620154b2565b600190602083865116950194818501550162015768565b620082f5620157c99161096051620157b8868662005af1565b511662001f35826109405162005af1565b9162015715565b5050509050565b815180519192916001600160401b03811162003e1457620157f9818562005e25565b6020809201846000528260002060005b83811062015870575050505060c082600692620052aa95940151600185015560408101516002850155606081015160038501556201585160808201511515600486016200655e565b6201586460a0820151600586016200648b565b0151151591016200655e565b8251828201559184019160010162015809565b620138848054600160401b81101562003e1457620158a79160018201905562014725565b91909162006a4f57620052aa91620157d7565b62013890908154600160401b81101562003e14576001810180845581101562005ab957620052aa926000526020600020016200648b565b9080620158fc575050565b620052aa91600052601f6020600020910160051c81019062005d29565b90600160401b811162003e145781548183558082106201593857505050565b620052aa92600052601f6020600020918180850160051c840194168062015967575b500160051c019062005d29565b600019908186019182549160200360031b1c169055386201595a565b9060031b60ff811b9283911b169119161790565b600092620159b1620159aa859462014725565b50620052c7565b9380935b85515185101562015a9f575061271084101562005ab95760039380851b9460018060a01b03851660005260209086018152620159fe604096600188600020549101549062006b9b565b9384911562015a6a579062015a139162006ce3565b96901562015a3057505062015a289062005a85565b9390620159b5565b60649250519062461bcd60e51b825260048201526014602482015273746f74616c20706f776572206f766572666c6f7760601b6044820152fd5b875162461bcd60e51b815260048101849052600e60248201526d706f776572206f766572666c6f7760901b6044820152606490fd5b93505092505090565b1562015ab057565b60405162461bcd60e51b815260206004820152601360248201527263757272656e74596573206f766572666c6f7760681b6044820152606490fd5b600162015af88262014725565b5001546202712e546000928184526202712b908160205262015b21816004604088200162005d10565b90549060031b1c918386528060205262015b42826005604089200162005d10565b90549060031b1c93865260205260ff600662015b7662015b68848360408b200162005d10565b90549060031b1c9362014725565b5001541662015bc4575062015bb4926200044f62015ba6938362015b9e62015bac9562006b65565b969062015aa8565b62014cf2565b929062015aa8565b111562015bbe5790565b50600190565b6200fc27925062015bb49362015bde62015bac9362006b65565b949062015aa8565b9092919262015bf6825162005c0d565b60009162015c05815162005c0d565b8390845b865181101562015ca0576001600160a01b0362015c2c816201550c848b62005af1565b158062015c6b575b62015c4c575b5062015c469062005a85565b62015c09565b819662015c6391620082e762015c46948b62005af1565b959062015c3a565b506127108a101562005ab9578062015c84838a62005af1565b511660005260038a811b01602052604060002054151562015c34565b509295919694509260005b875181101562015d215761271086101562005ab9576001600160a01b038062015cd5838b62005af1565b5116600052600387811b016020526040600020541562015d02575b5062015cfc9062005a85565b62015cab565b819562015d19916200e86362015cfc948c62005af1565b949062015cf0565b509250945092612710831015938462005ab95760049586600395861b019687549462015d526200815f828862014cf2565b9460009689889a5b62015ec657818b101562015dfb57506000998b62015d9562015d7d838362005d10565b90546001600160a01b0392918e1b1c82168a62015f9d565b1562015db8575b50509062015dad8b94939262005a85565b9a9091929362015d5a565b91998c95949392909162015dce908c9062005d10565b9054908d1b1c1662015de1828b62005af1565b5262015ded9062005a85565b9890919293508b3862015d9c565b9697949a98505091975092506000915b83831062015ea1575050505062015e8c578051926001600160401b03841162015e77575062015e3b838362005e25565b602080910191600052806000209060005b84811062015e5b575050505050565b83516001600160a01b0316838201559281019260010162015e4c565b604190634e487b7160e01b6000525260246000fd5b603283634e487b7160e01b6000525260246000fd5b62015ebf90620082f5906001600160a01b036200a756868662005af1565b9162015e0b565b603285634e487b7160e01b6000525260246000fd5b9060005b61271083101562005ab9576003600484821b01805483101562015f3a578262015f089162005d10565b9054911b1c6001600160a01b039081169083161462015f325762015f2c9062005a85565b62015edf565b505050600190565b5050505050600090565b9060005b61271083101562005ab95760036201389784821b01805483101562015f3a578262015f739162005d10565b9054911b1c6001600160a01b039081169083161462015f325762015f979062005a85565b62015f48565b9060005b825181101562015fdc576001600160a01b038062015fc0838662005af1565b51169083161462015f325762015fd69062005a85565b62015fa1565b505050600090565b801562005a95576000190190565b9081519060005b60001983810184811162005a9557821015620160c0576001820180831162005a95575b84811062016037575050620160319062005a85565b62015ff9565b6001600160a01b03806201604c858962005af1565b5116816201605b848a62005af1565b51161462016076575b50620160709062005a85565b6201601c565b828692960182811162005a95576201607092620160b9926201609d620160b2938b62005af1565b5116620160ab898b62005af1565b5262015fe4565b9562015fe4565b9062016064565b505090620160ce8162005c0d565b9060005b818110620160e1575090925050565b62016108906001600160a01b03620160fa828862005af1565b511662001f35828662005af1565b620160d2565b80519160005b60001984810185811162005a9557821015620161c6576001820180831162005a95575b858110620161525750506201614c9062005a85565b62016114565b6201615e838662005af1565b516201616b828762005af1565b511462016184575b6201617e9062005a85565b62016137565b948181019080821162005a9557620161b7620161be91620161aa6201617e948962005af1565b51620160ab8a8a62005af1565b9662015fe4565b905062016173565b50509091620161d58162005c0d565b9060005b818110620161e8575090925050565b80620161f962016206928762005af1565b5162001f35828662005af1565b620161d9565b6040516201621a8162003df8565b604481527f496e76616c6964206469766964656e64207065726d797269616420706572207460208201527f72616e73616374696f6e2e2053686f756c64206265206c657373207468616e206040820152630313030360e41b606082015290565b604051620162888162003e63565b603281527f4e6f20656e6f756768206e756d626572206f66207472616e73616374696f6e7360208201527108199bdc88191a5d9a59195b991cc81e595d60721b604082015290565b604051620162de8162003e7f565b601c81527b6469766964656e6473206f7065726174696f6e206f766572666c6f7760201b602082015290565b604051620163188162003e7f565b600d81526c2ab735b737bbb71022b93937b960991b602082015290565b604051620163438162003e63565b602681527f4572726f7220696e20776974686472617761626c6520636173682063616c63756020820152653630ba34b7b760d11b604082015290565b6040516201638d8162003e7f565b6012815271496e76616c696420506172616d657465727360701b602082015290565b604051620163bd8162003e7f565b601581527413595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b602082015290565b604051620163f08162003e7f565b601781527613595b58995c881a5cc81b9bdd081cdd5cdc195b991959604a1b602082015290565b604051620164258162003e7f565b601b81527a13595b58995c881a5cc8185b1c9958591e481cdd5cdc195b991959602a1b602082015290565b6040516201645e8162003e7f565b60158152744d656d62657220616c72656164792065786973747360581b602082015290565b604051620164918162003e7f565b60118152704e6f20656e6f7567682062616c616e636560781b602082015290565b604051620164c08162003e7f565b6018815277125b9d985b1a59081c185c985b595d195c881d1bc81cd95d60421b602082015290565b604051620164f68162003e7f565b6015815274546f6b656e20616d6f756e74206f766572666c6f7760581b602082015290565b602681101562003f7c57801562016709576001811462015bbe5760028114620167035760038114620166fd5760048114620166f75760058114620166f15760068114620166eb5760078114620166e55760088114620166df5760098114620166d957600a8114620166d357600b8114620166cd57600c8114620166c757600d8114620166c157600e8114620166bb57600f8114620166b55760108114620166af5760118114620166a95760128114620166a357601381146201669d57601481146201669757601581146201669157601881146201668b57601781146201668557601981146201667f57601a81146201667957601b81146201667357601c81146201666d57601d81146201666757601e81146201666157601f81146201665b576020811462016655576021146201665057600090565b602190565b50602090565b50601f90565b50601e90565b50601d90565b50601c90565b50601b90565b50601a90565b50601990565b50601790565b50601690565b50601590565b50601490565b50601390565b50601290565b50601190565b50601090565b50600f90565b50600e90565b50600d90565b50600c90565b50600b90565b50600a90565b50600990565b50600890565b50600790565b50600690565b50600590565b50600490565b50600390565b50600290565b50600090565b90815181101562005ab9570160200190565b60405190620167308262003e63565b60288252604036602084013760005b601481106201674d57505090565b60139080820391821162005a9557600382901b916001600160fd1b0381160362005a955760ff80831162005a9557600192620167969084901b6001600160a01b03861662005e5f565b60f081168282160391821162005a9557620167ba9060f41b600f60f81b1662016823565b82841b916001600160ff1b038416840362005a9557620167f79160001a620167e384896201670f565b5360f81b6001600160f81b03191662016823565b92810180911162005a9557620168166201681d9360001a91866201670f565b5362005a85565b6201673f565b60f81c600a8110156201684c5760300160ff811162005a955760f81b6001600160f81b03191690565b60570160ff811162005a955760f81b6001600160f81b0319169056fe546865206c656e677468206f662061646472657373657320616e6420746f6b651f4fe3ad533e3985b88710ce05a205152f02825e155777f3bcb8b3bbfcfb03a24ad859a97f543436e70c22b09d31fb4c7b9e987d7a008c98817c9b50a97b1224546865206c656e677468206f6620746f6b656e436c61737320616e6420746f6b546865206c656e677468206f6620746f6b656e496e666f20616e6420746f6b658e71c125ecfe4aeed61c8cf4b09183dd0bf2a3230d826486f04e5f6f0de58e2c18baa939e2e21be0e012ec26e9ec87e9e6faa065bd9f5835250457786300ece8546865206265666f7265206f7065726174696f6e20706c7567696e20737973745265736572766564206f70636f6465206964203233206973206e6f7420696d705265736572766564206f70636f6465206964203238206973206e6f7420696d70546865206c656e677468206f662061646472657373657320616e6420616d6f75a26469706673582212201f2bb79a682df659a5922dbdcdc08d51de62b1538a4c40a328e1be2b81a12e7f64736f6c63430008110033", - "deployedBytecode": "0x6109a08060405260043610156200001557600080fd5b600080608052803560e01c918263036ee8501462003da5575081630e5a3b291462003a3757816310ade3ea1462003a055781631797631d14620039925781631c75255a146200393c57816323b65c7814620038c95781632514a6b4146200368957816341d1a438146200365657816356424cf4146200356e5781635c00d987146200351f5781635d0b184914620034fb5781635f1231ea14620034075781635f5d5f001462003394578163681ece9d146200335157816374579b18146200236757816379532bfe14620023435781637daa10ce14620023245781638129fc1c1462001f455750806383e4cccf1462001cce578063864f9f7a1462001c8c57806386ad77e2146200194d5780638c7a63ae14620018d35780639df9914514620017b25780639f36145f14620004e1578063a064c4f11462000416578063acf80bc414620003d4578063aefca42a14620003b0578063bba51030146200021b578063d5a172f214620001ec5763d6a93c51146200018f57600080fd5b34620001e65760805180600319360112620001e3575b6127108110620001bb575b602090604051908152f35b60ff60078260031b01541615620001dd57620001d79062005a85565b620001a5565b620001b0565b80fd5b60805180fd5b34620001e65760805180600319360112620001e35762027126546040516001600160a01b039091168152602090f35b34620001e65760805180600319360112620001e3576202712e548091526202712b906020828152600380604060805120015493620002766200025d8662003edb565b956200026d604051978862003eb7565b80875262003edb565b8584019190601f19013683376080515b8560805152818552836040608051200154811015620003595760405163083a348760e31b815260048101829052602486828281305afa9182156200034c57608051926200030e575b50620002db838a62005af1565b9086831015620002f8575052620002f29062005a85565b62000286565b60808051634e487b7160e01b9052602160045251fd5b9091508681813d831162000344575b62000329818362003eb7565b81010312620001e6575185811015620001e6579089620002ce565b503d6200031d565b6040513d608051823e3d90fd5b84878460405192839281840190828552518091526040840192916080515b8281106200038757505050500390f35b91938395509080826200039f60019483975162003fd8565b019501910191859493919262000377565b34620001e65760805180600319360112620001e35760206202712854604051908152f35b34620001e6576020366003190112620001e6576001600160a01b03620003f962003dc7565b166080515262013887602052602060406080512054604051908152f35b34620001e6576020366003190112620001e657600435612710811015620004c957806200044f6001620004569360031b01549162006c21565b9062006b9b565b90156200046857602090604051908152f35b60405162461bcd60e51b815260206004820152603360248201527f73756d566f74696e67576569676874466f72546f6b656e436c6173733a20766f60448201527274696e67576569676874206f766572666c6f7760681b6064820152608490fd5b634e487b7160e01b6080515260326004526024608051fd5b34620001e6576020366003190112620001e657600435608051526202712b602052604060805120604051620005168162003e63565b81546001600160a01b03168152600182018054909290620005378162003edb565b9062000547604051928362003eb7565b808252602082019460805152608051946020862095905b828210620005e957620005be8686866020830152604051620005918162000589816002860162005166565b038262003eb7565b604083015260ff600782015491600960088201549101549060405195869560a0875260a0870190620054e0565b9360208601526040850152620005da6060850183831662003fd8565b60081c16151560808301520390f35b604051620005f78162003e63565b87546001600160a01b0381168252602660a082901c60ff1610156200179a5760a01c60ff1660208201526040516200062f8162003e46565b6200063d60018a0162005204565b8152600289016040518082602082945493848152019060805152608051926020842093905b80601f830110620015c7576200079b945491818110620015b0575b81811062001596575b8181106200157c575b81811062001562575b81811062001549575b8181106200152f575b81811062001515575b818110620014fb575b818110620014e1575b818110620014c7575b818110620014ad575b81811062001493575b81811062001479575b8181106200145f575b81811062001445575b8181106200142b575b81811062001411575b818110620013f7575b818110620013dd575b818110620013c3575b818110620013a9575b8181106200138f575b81811062001375575b8181106200135b575b81811062001341575b81811062001327575b8181106200130d575b818110620012f3575b818110620012d9575b818110620012bf575b818110620012a5575b1062001294575b50038262003eb7565b6020820152600389018054620007b18162003edb565b91620007c1604051938462003eb7565b818352602083019060805152608051906020822091905b8382106200127357505050506040820152600489018054620007fa8162003edb565b916200080a604051938462003eb7565b818352602083019060805152608051906020822091905b838210620010fc57505050506060820152600589016040519081602082549182815201916080515260805190602082205b81601f84011062000e0b5784600997946020979460019a97946200099894549181811062000ded575b81811062000dcc575b81811062000dab575b81811062000d8a575b81811062000d6a575b81811062000d49575b81811062000d28575b81811062000d07575b81811062000ce6575b81811062000cc5575b81811062000ca4575b81811062000c83575b81811062000c62575b81811062000c41575b81811062000c20575b81811062000bff575b81811062000bde575b81811062000bbd575b81811062000b9c575b81811062000b7b575b81811062000b5a575b81811062000b39575b81811062000b18575b81811062000af7575b81811062000ad6575b81811062000ab5575b81811062000a94575b81811062000a73575b81811062000a52575b81811062000a31575b81811062000a10575b10620009f55750038262003eb7565b6080820152620009ab60068d0162005368565b60a0820152620009be60078d0162005421565b60c08201526008620009dc8d62000589604051809481930162005166565b60e082015260408201528152019701910190956200055e565b90889160f81c62000a068162004dc4565b8152013862000792565b928a8d9160ff8560f01c1662000a268162004dc4565b815201930162000989565b928a8d9160ff8560e81c1662000a478162004dc4565b815201930162000980565b928a8d9160ff8560e01c1662000a688162004dc4565b815201930162000977565b928a8d9160ff8560d81c1662000a898162004dc4565b81520193016200096e565b928a8d9160ff8560d01c1662000aaa8162004dc4565b815201930162000965565b928a8d9160ff8560c81c1662000acb8162004dc4565b81520193016200095c565b928a8d9160ff8560c01c1662000aec8162004dc4565b815201930162000953565b928a8d9160ff8560b81c1662000b0d8162004dc4565b81520193016200094a565b928a8d9160ff8560b01c1662000b2e8162004dc4565b815201930162000941565b928a8d9160ff8560a81c1662000b4f8162004dc4565b815201930162000938565b928a8d9160ff8560a01c1662000b708162004dc4565b81520193016200092f565b928a8d9160ff8560981c1662000b918162004dc4565b815201930162000926565b928a8d9160ff8560901c1662000bb28162004dc4565b81520193016200091d565b928a8d9160ff8560881c1662000bd38162004dc4565b815201930162000914565b928a8d9160ff8560801c1662000bf48162004dc4565b81520193016200090b565b928a8d9160ff8560781c1662000c158162004dc4565b815201930162000902565b928a8d9160ff8560701c1662000c368162004dc4565b8152019301620008f9565b928a8d9160ff8560681c1662000c578162004dc4565b8152019301620008f0565b928a8d9160ff8560601c1662000c788162004dc4565b8152019301620008e7565b928a8d9160ff8560581c1662000c998162004dc4565b8152019301620008de565b928a8d9160ff8560501c1662000cba8162004dc4565b8152019301620008d5565b928a8d9160ff8560481c1662000cdb8162004dc4565b8152019301620008cc565b928a8d9160ff8560401c1662000cfc8162004dc4565b8152019301620008c3565b928a8d9160ff8560381c1662000d1d8162004dc4565b8152019301620008ba565b928a8d9160ff8560301c1662000d3e8162004dc4565b8152019301620008b1565b928a8d9160ff8560281c1662000d5f8162004dc4565b8152019301620008a8565b928a8d9160ff85831c1662000d7f8162004dc4565b81520193016200089f565b928a8d9160ff8560181c1662000da08162004dc4565b815201930162000896565b928a8d9160ff8560101c1662000dc18162004dc4565b81520193016200088d565b928a8d9160ff8560081c1662000de28162004dc4565b815201930162000884565b928a8d9160ff851662000e008162004dc4565b81520193016200087b565b926001610400602092865460ff811662000e258162004dc4565b825260ff8160081c1662000e398162004dc4565b8583015260ff8160101c1662000e4f8162004dc4565b604083015260ff8160181c1662000e668162004dc4565b606083015260ff81861c1662000e7c8162004dc4565b608083015260ff8160281c1662000e938162004dc4565b60a083015260ff81818160301c1662000eac8162004dc4565b60c09081860152828260381c1662000ec48162004dc4565b60e0860152828260401c1662000eda8162004dc4565b610100860152828260481c1662000ef18162004dc4565b610120860152828260501c1662000f088162004dc4565b610140860152828260581c1662000f1f8162004dc4565b610160860152828260601c1662000f368162004dc4565b610180860152828260681c1662000f4d8162004dc4565b6101a0860152828260701c1662000f648162004dc4565b6101c0860152828260781c1662000f7b8162004dc4565b6101e0860152828260801c1662000f928162004dc4565b610200860152828260881c1662000fa98162004dc4565b610220860152828260901c1662000fc08162004dc4565b610240860152828260981c1662000fd78162004dc4565b610260860152828260a01c1662000fee8162004dc4565b610280860152828260a81c16620010058162004dc4565b6102a0860152828260b01c166200101c8162004dc4565b6102c0860152828260b81c16620010338162004dc4565b6102e08601521c16620010468162004dc4565b61030083015260ff8160c81c166200105e8162004dc4565b61032083015260ff8160d01c16620010768162004dc4565b61034083015260ff8160d81c166200108e8162004dc4565b61036083015260ff8160e01c16620010a68162004dc4565b61038083015260ff8160e81c16620010be8162004dc4565b6103a083015260ff8160f01c16620010d68162004dc4565b6103c083015260f81c620010ea8162004dc4565b6103e082015201940192019162000852565b60409d9c9b9a999897969d51620011138162003e46565b6200112360ff855416826200534e565b600184015460208201526002840180546200113e8162003edb565b916200114e604051938462003eb7565b8183526020830190608051526080516020812090915b838310620011e557505050509d9e9798999a9b9c9d600192826020926040600695015260038701546060820152604051620011a881620005898160048c0162005166565b608082015260ff6005880154818116151560a0840152818160081c16151560c084015260101c16151560e082015281520193019101909162000821565b60076020600192604051620011fa8162003e2a565b855481526200123e60ff86880154818116620012168162004dc4565b86850152818160081c166200122b8162003f71565b604085015260101c16606083016200535b565b6200124c6002870162005272565b60808201526200125f600387016200547e565b60a082015281520192019201919062001164565b600760206001926200128586620052c7565b815201930191019091620007d8565b60f81c151581526020018d62000792565b92602060019160ff8560f01c16151581520193016200078b565b92602060019160ff8560e81c161515815201930162000782565b92602060019160ff8560e01c161515815201930162000779565b92602060019160ff8560d81c161515815201930162000770565b92602060019160ff8560d01c161515815201930162000767565b92602060019160ff8560c81c16151581520193016200075e565b92602060019160ff8560c01c161515815201930162000755565b92602060019160ff8560b81c16151581520193016200074c565b92602060019160ff8560b01c161515815201930162000743565b92602060019160ff8560a81c16151581520193016200073a565b92602060019160ff8560a01c161515815201930162000731565b92602060019160ff8560981c161515815201930162000728565b92602060019160ff8560901c16151581520193016200071f565b92602060019160ff8560881c161515815201930162000716565b92602060019160ff8560801c16151581520193016200070d565b92602060019160ff8560781c161515815201930162000704565b92602060019160ff8560701c1615158152019301620006fb565b92602060019160ff8560681c1615158152019301620006f2565b92602060019160ff8560601c1615158152019301620006e9565b92602060019160ff8560581c1615158152019301620006e0565b92602060019160ff8560501c1615158152019301620006d7565b92602060019160ff8560481c1615158152019301620006ce565b92602060019160ff8560401c1615158152019301620006c5565b92602060019160ff8560381c1615158152019301620006bc565b92602060019160ff8560301c1615158152019301620006b3565b92602060019160ff8560281c1615158152019301620006aa565b92602060019160ff85831c1615158152019301620006a1565b92602060019160ff8560181c161515815201930162000698565b92602060019160ff8560101c16151581520193016200068f565b92602060019160ff8560081c161515815201930162000686565b92602060019160ff8516151581520193016200067d565b916020919350610400600191865460ff81161515825260ff8160081c1615158583015260ff8160101c161515604083015260ff816060828260181c161515818601528282891c1615156080860152828260281c16151560a0860152828260c092828260301c16151584890152828260381c16151560e0890152828260401c161515610100890152828260481c161515610120890152828260501c161515610140890152828260581c1615156101608901521c161515610180860152828260681c1615156101a0860152828260701c1615156101c0860152828260781c1615156101e0860152828260801c161515610200860152828260881c161515610220860152828260901c161515610240860152828260981c161515610260860152828260a01c161515610280860152828260a81c1615156102a0860152828260b01c1615156102c0860152828260b81c1615156102e08601521c16151561030083015260ff8160c81c16151561032083015260ff8160d01c16151561034083015260ff8160d81c16151561036083015260ff8160e01c16151561038083015260ff8160e81c1615156103a083015260ff8160f01c1615156103c083015260f81c15156103e082015201940192018492939162000662565b634e487b7160e01b6080515260216004526024608051fd5b6020366003190112620001e6576004356001600160401b038111620001e657620017e190369060040162004310565b80516001600160a01b0390620018349082166200182b6200180c620018063362016721565b6200594e565b620018246200181e8688511662016721565b620059b4565b9062005a0b565b90331462005a52565b6080519060208301915b82518051821015620018ab57906200189f620018a592846200186284339362005af1565b515116146200189862001879620018063362016721565b620018246200181e886200188f888c5162005af1565b51511662016721565b9062005a52565b62005a85565b6200183e565b620018cf620018ba8662006e8c565b6040519182916020835260208301906200400b565b0390f35b34620001e6576020366003190112620001e657600435612710811015620004c95760031b60018101546002820154916200194360056200192460068401549362000589604051809481930162005166565b604051948594855260208501526080604085015260808401906200400b565b9060608301520390f35b34620001e65760805180600319360112620001e357620138828054620019738162003edb565b9162001983604051938462003eb7565b8183526020830190608051526080516020812090915b83831062001b4e578462013883908154620019b48162003edb565b92620019c4604051948562003eb7565b8184526020840190608051526080516020812090915b83831062001a105762001a0185620018cf8860405193849360408552604085019062004f51565b90838203602085015262004f51565b60405162001a1e8162003e46565b62001a2e60ff845416826200534e565b6001830154602082015260028301805462001a498162003edb565b9162001a59604051938462003eb7565b818352602083019060805152608051906020822091905b83821062001ae8575050505060019282602092604060069501526003860154606082015260405162001aab81620005898160048b0162005166565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e0820152815201920192019190620019da565b6007602060019260405162001afd8162003e2a565b8654815262001b1960ff86890154818116620012168162004dc4565b62001b276002880162005272565b608082015262001b3a600388016200547e565b60a082015281520193019101909162001a70565b60405162001b5c8162003e46565b62001b6c60ff845416826200534e565b6001830154602082015260028301805462001b878162003edb565b9162001b97604051938462003eb7565b818352602083019060805152608051906020822091905b83821062001c26575050505060019282602092604060069501526003860154606082015260405162001be981620005898160048b0162005166565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e082015281520192019201919062001999565b6007602060019260405162001c3b8162003e2a565b8654815262001c5760ff86890154818116620012168162004dc4565b62001c656002880162005272565b608082015262001c78600388016200547e565b60a082015281520193019101909162001bae565b34620001e6576020366003190112620001e6576001600160a01b0362001cb162003dc7565b166080515262013885602052602060406080512054604051908152f35b34620001e657602080600319360112620001e6576004359062001d0f478311156200189862001cfd8562005e80565b62001d084762005e80565b9062005b39565b3360805152604062001d866201388580845262001d5c8360805120548611156200189862001d3d8862005e80565b336080515284885262001d5587608051205462005e80565b9062005ba5565b336080515280845262001d758584608051205462005e45565b92906200189862001d3d8862005e80565b33608051528352608051908282205520541562001dca575b5060805180808381949382941562001dc0575b3390f1156200034c5760805180f35b506108fc62001db1565b6201388680549162001ddc8362005c0d565b9160805193845b81811062001ed257505062001df88462005c0d565b805191906001600160401b03831162001eba57839062001e188462005d7e565b0190608051526080519280842090845b84811062001e9e5750505050505b82811062001e4657505062001d9e565b62001e98906200189f6001600160a01b0362001e63838662005af1565b511662001e708362005c62565b9080546001600160a01b0360039390931b83811b80199092169390941690931b909216179055565b62001e36565b83516001600160a01b0316838201559281019260010162001e28565b634e487b7160e01b6080515260416004526024608051fd5b62001edd8162005c62565b90546001600160a01b03916003913391831b1c83160362001f0c575b505062001f069062005a85565b62001de3565b9662001f3c91839862001f2362001f069562005c62565b9054911b1c1662001f35828962005af1565b5262005a85565b95908862001ef9565b34620001e65760805180600319360112620001e357506202712680546001600160a01b0319163317905562027129805460ff1916600190811790915560405190919062001f928162003e9b565b608051905262013882805482825580620022a1575b506080515260405162001fba8162003e9b565b6080519052608051806200228a5750620138839081548183558062002208575b5050608051526127106202712a5560405162001ff68162003e7f565b8181526080515b6020808210156200207057604051602092916200201a8262003e2a565b608051825260805181830152608051604083015260805160609081840152806080840152604051906200204d8262003df8565b80825280838301528060408301528082015260a083015282850101520162001ffd565b83620021f584604051620020848162003e9b565b6080518152604051620020978162003e9b565b6080518152604051620020aa8162003e9b565b6080518152604051620020bd8162003e9b565b608051815260405191620020d18362003e9b565b608051835260405193620020e58562003df8565b845260208401526040830152606082015260405191620021058362003e2a565b60805183526003602084015260805160408401526080516060840152608083015260a0820152620021368262005aab565b52620021428162005aab565b506200219d604051620021558162003e46565b6004815284602082015282604082015260805160608201526040516200217b8162003e9b565b608051815260808201528460a08201528460c08201528460e082015262006a18565b60405190620021ac8262003e46565b6002825283602083015260408201526080516060820152604051620021d18162003e9b565b608051815260808201528260a08201528260c082015260805160e082015262006a65565b6113886201388b556201388c5560805180f35b600691818302918383040362002276578060209160805284815220908101905b81811062002237575062001fda565b829060805180825586820155620022516002820162006265565b60805160038201556200226760048201620060f7565b60805160058201550162002228565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b90526041600452608051602490fd5b600690808202908282040362002310578360805282845260208420908101905b818110620022d157505062001fa7565b829060805180825587820155620022eb6002820162006265565b60805160038201556200230160048201620060f7565b608051600582015501620022c1565b634e487b7160e01b84526011600452602484fd5b34620001e65760805180600319360112620001e3576020604051338152f35b34620001e65760805180600319360112620001e35760206202712d54604051908152f35b34620001e6576040366003190112620001e6576004356001600160401b038111620001e6576200239c90369060040162004032565b6024356001600160401b038111620001e657620023be90369060040162004310565b620271298054600260ff8216620023d58162003f71565b146200330c5760ff191660021790556202712e546001810190811062002fd057806202712e5560805190815b84518110156200246457826002620024256200241e848962005af1565b5162014725565b5001541062002440575b6200243a9062005a85565b62002401565b91506200243a6002620024586200241e858862005af1565b5001549290506200242f565b50919060805191825b8551811015620024ca57620024876200241e828862005af1565b508460038092015410620024a8575b50620024a29062005a85565b6200246d565b819450620024bf6200241e620024a2938962005af1565b500154939062002496565b508493608051526202712b60205260805190604082209160018060a01b0382511660018060a01b03198454161783556020820151805191600160401b83116200228a5750600184015482600186015580831062003130575b50608080516001860190525160208082209392015b82821062002a9f575050505090600260406200255793015191016200648b565b62002563835162005c0d565b6202712e54608051526202712b60205260805190600560408320019080519260018060401b0384116200228a5750602090620025a0848462005e25565b01906080515260805160208120905b83811062002a8a5750505050620025c7835162005c0d565b6202712e54608051526202712b60205260805190600460408320019080519260018060401b0384116200228a575060209062002604848462005e25565b01906080515260805160208120905b83811062002a7557505050506200262b835162005c0d565b906202712e54608051526202712b602052608051600660408220019280519160018060401b0383116200228a575060209062002668838662005e25565b0192608051526080519260208420845b83811062002a60575050505062002690904262006ce3565b90916202712e5490526202712b602052600760406080512001551562002a20576202712e54608051526202712b60205260406008620026d9608051936007848620015462006ce3565b92909320015515620029dd576202712e54608051526202712b602052600960406080512001600260ff1982541617905562002715815162005c0d565b6202712e54608051526202712b602052608051600360408220019180519160018060401b0383116200228a575060209062002751838562005e25565b0191608051526080519160208320835b838110620029c85785855b8151811015620027d157806200189f6200278b620027cb938562005af1565b516202712e54608051526202712b602052620027b08360036040608051200162005d10565b90919082549060031b600019811b9283911b16911916179055565b6200276c565b50608051905b8051821015620029c2576202712e549182608051526202712b602052620028186200280b8260036040608051200162005d10565b90549060031b1c62014725565b505490620028268262005c0d565b916080515b81811062002974575050608051805b83518210156200293f5762002850828562005af1565b516127109081811015620004c95760031b6001015462002871848762005af1565b5191821015620004c95760066200288e9260031b01549062006b9b565b9015620028fb57620028a09162006ce3565b919015620028ba57620028b39062005a85565b906200283a565b60405162461bcd60e51b8152602060048201526019602482015278746f74616c566f74696e67506f776572206f766572666c6f7760381b6044820152606490fd5b606460405162461bcd60e51b815260206004820152602060248201527f63757272656e74436c617373566f74696e67506f776572206f766572666c6f776044820152fd5b90506200189f9192506200296d9394608051526202712b602052620027b08360066040608051200162005d10565b90620027d7565b620029bc9086608051526202712b602052620029a981620029a26200280b8760036040608051200162005d10565b5062005d10565b90549060031b1c62001f35828762005af1565b6200282b565b60805180f35b60019060208451940193818401550162002761565b60405162461bcd60e51b815260206004820152601b60248201527a657865637574696e6720656e642074696d65206f766572666c6f7760281b6044820152606490fd5b60405162461bcd60e51b8152602060048201526018602482015277766f74696e6720656e642074696d65206f766572666c6f7760401b6044820152606490fd5b60019060208451940193818401550162002678565b60019060208451940193818401550162002613565b600190602084519401938184015501620025af565b805180518554602083015190916001600160a01b03169060268110156200179a576001600160a81b03199092161760a09190911b60ff60a01b16178555604001518051805190600187019060209062002af9848462006188565b019060805152608051906020822091905b83821062003110575050505060208101518051906001600160401b03821162001eba576020600288019162002b40848462015919565b019060805152608051916020832090835b8160051c8110620030d55750601f198116810362003092575b5050506040820151805191600160401b83116200228a5750600387015482600389015580831062003009575b506080805160038901905251602080822092015b83821062002fe857505050506060810151805190600160401b821162001eba57600487015482600489015580831062002f4b575b506080805160048901905251602080822092015b83821062002f2a5750505050608081015180516001600160401b03811162001eba576020600588019262002c27838562015919565b0191608051526080519060208220915b8160051c811062002eea5750601f198116810362002e9c575b5050506006850160a0820151602081519162002c6d838562006216565b0191608051526080516020812090925b82841062002e3657505050506007850160c0820151602081519162002ca3838562006216565b0191608051526080516020812090925b82841062002dc7575050505060e001518051906001600160401b03821162001eba5762002cf38262002ce9600889015462005129565b6008890162006441565b60805190602091601f841160011462002d4c575092826009936020936001966080519262002d40575b5050600019600383901b1c191690851b1760088801555b0194019101909262002537565b015190508e8062002d1c565b600888019052608051602081209291905b601f198516811062002dae575083602093600196938793600997601f1981161062002d94575b505050811b01600888015562002d33565b015160001960f88460031b161c191690558e808062002d83565b9192602060018192868501518155019401920162002d5d565b80518051906001600160401b03821162001eba5760209062002dea838662005e25565b01836080515260805160208120905b83811062002e1857505050506001602081920192019301929062002cb3565b82516001600160a01b03168183015560209092019160010162002df9565b80518051906001600160401b03821162001eba5760209062002e59838662005e25565b01836080515260805160208120905b83811062002e8757505050506001602081920192019301929062002c7d565b60019060208451940193818401550162002e68565b60805192835b601f1983168303811062002ec057505060051c01558a808062002c50565b9093602062002ee06001928488519162002eda8362004dc4565b62015983565b9501910162002ea2565b608051805b6020811062002f0657508382015560010162002c37565b9490602062002f206001928885519162002eda8362004dc4565b9201950162002eef565b600660208262002f3e6001945187620065a1565b0193019101909162002bf2565b600681810204810362002fd057600683810204830362002fd05760048801608051526020608051208360060281015b826006028201811062002f8f57505062002bde565b600690608051808255600182015562002fab6002820162006265565b608051600382015562002fc160048201620060f7565b60805160058201550162002f7a565b634e487b7160e01b6080515260116004526024608051fd5b600760208262002ffc6001945187620157d7565b0193019101909162002baa565b600781810204810362002fd057600783810204830362002fd05760038801608051526020608051208360070281015b82600702820181106200304d57505062002b96565b806200305b60079262005da2565b60805180600183015580600283015580600383015560048201556200308360058201620060f7565b60805160068201550162003038565b8392845b601f19831683038110620030b457505060051c01558b808062002b6a565b90936020620030cb60019284885115159162015983565b9501910162003096565b84855b60208110620030ef57508382015560010162002b51565b949060206200310660019288855115159162015983565b92019501620030d8565b600160208262003123839451876200648b565b0193019101909162002b0a565b600981810204810362002fd057600983810204830362002fd05760018501608051526020608051208360090281015b82600902820181106200317457505062002522565b6080518155620031876001820162006149565b6200319d600282018054906080518155620158f1565b6003810154608051806003840155816200329a575b505060048101546080518060048401558162003215575b505080620031e46005600993018054906080518155620158f1565b620031f260068201620061d7565b6200320060078201620061d7565b6200320e60088201620060f7565b016200315f565b60068281020482036200328357506004820160805152602060805120906006028101905b81811015620031c95760069060805180825560018201556200325e6002820162006265565b60805160038201556200327460048201620060f7565b60805160058201550162003239565b634e487b7160e01b90526011600452608051602490fd5b60078281020482036200328357506003820160805152602060805120906007028101905b81811015620031b25780620032d560079262005da2565b6080518060018301558060028301558060038301556004820155620032fd60058201620060f7565b608051600682015501620032be565b60405162461bcd60e51b815260206004820152601d60248201527f766f74696e6720697320616c726561647920696e2070726f67726573730000006044820152606490fd5b34620001e6576020366003190112620001e657600435612710811015620004c957620033876004620018cf9260031b01620053c5565b6040519182918262003f92565b34620001e65760805180600319360112620001e3576040518062013881918254808252602080920193608051526080519180832092905b828210620033e657620018cf85620033878189038262003eb7565b83546001600160a01b031686529485019460019384019390910190620033cb565b34620001e657602080600319360112620001e6576200342562003dc7565b604051620034338162003df8565b60805181526080518382015260606040820152606060805191015260018060a01b03166080515262013880815260406080512060405190620034758262003df8565b620034f081549160ff83161515845260ff8585019360081c1615158352600260405191620034b483620034ac816001850162005166565b038462003eb7565b6040860192835201549260608501938452604051958695818752511515908601525115156040850152516080606085015260a08401906200400b565b905160808301520390f35b34620001e65760805180600319360112620001e35760206202712e54604051908152f35b34620001e6576020366003190112620001e657600435612710811015620004c957620035666200355e826200044f600260209560031b01549162006c21565b919062006ad1565b604051908152f35b34620001e65760805180600319360112620001e3576201388b54620035cd620035966201620c565b91620035a86127109384831062005a52565b620035c26201388e546201388c541115620018986201627a565b6201388d5462006b9b565b919050620035da620162d0565b5060805191825b82811062003604575b6020620035fa8585850462006d71565b9050604051908152f35b909260ff60078360031b015416156200364e5781620036386200364492620036316200189f969562006b3e565b9062006ce3565b949062001898620162d0565b92909192620035e1565b9290620035ea565b34620001e6576020366003190112620001e65760206200367860043562015aeb565b62003687604051809262003fd8565bf35b34620001e657602080600319360112620001e657600435620036b7478211156200189862001cfd8462005e80565b33608051526201388790818352620037016040608051205482111562001898620036e18462005e80565b3360805152858752620036fa6040608051205462005e80565b9062005ffa565b3360805152818352620037496200371f826040608051205462005e45565b919062001898620037308562005e80565b3360805152868852620036fa6040608051205462005e80565b336080515282845260805180809381936040832055818115620038bf575b3390f1156200034c573360805152815260406080512054156200378a5760805180f35b62013888908154906200379d8262005c0d565b9260805192835b81811062003853575050620037b98362005c0d565b805191906001600160401b03831162001eba578390620037d98462005d42565b0190608051526080519280842090845b848110620038375750505050505b81811062003807575050620029c2565b62003831906200189f6001600160a01b0362003824838762005af1565b511662001e708362005c45565b620037f7565b83516001600160a01b03168382015592810192600101620037e9565b6200385e8162005c45565b90546001600160a01b03916003913391831b1c8316036200388d575b5050620038879062005a85565b620037a4565b95620038b6918397620038a4620038879562005c45565b9054911b1c1662001f35828a62005af1565b9490876200387a565b506108fc62003767565b34620001e65760805180600319360112620001e3576040518062013886918254808252602080920193608051526080519180832092905b8282106200391b57620018cf85620033878189038262003eb7565b83546001600160a01b03168652948501946001938401939091019062003900565b34620001e6576040366003190112620001e6576024356001600160a01b0381169060043590829003620001e657612710811015620004c95760039160805152811b01602052602060406080512054604051908152f35b34620001e65760805180600319360112620001e3576040518062013888918254808252602080920193608051526080519180832092905b828210620039e457620018cf85620033878189038262003eb7565b83546001600160a01b031686529485019460019384019390910190620039c9565b34620001e65760805180600319360112620001e357602060ff6202712954166040519062003a338162003f71565b8152f35b34620001e6576040366003190112620001e65762003a5462003dc7565b60249081356001600160401b038111620001e65762003a7890369060040162003f01565b91600260ff62027129541662003a8e8162003f71565b0362003d65576202712d5442101562003d275760018060a01b0382169182608051526202712c906020938285526080519560408720966202712e978854809252875260ff604060805120541662003ce95781519481608051526202712b938489526003968760406080512001540362003c8357608051528752608051906040822091528652608051966040882060019889918260ff19825416179055905b62003b375760805180f35b825181101562003c7d5762003b4d818462005af1565b511562003c04578154806080515284895262003ba962003b8c62003b7a8460046040608051200162005d10565b9054908a1b1c62003631858a62015997565b909260805152868b52620027b08460046040608051200162005d10565b1562003bc15762003bba9062005a85565b8862003b2c565b60405162461bcd60e51b815260048101899052601c818901527b766f74696e6720666f7220706f776572596573206f766572666c6f7760201b6044820152606490fd5b8154806080515284895262003c2a62003b8c62003b7a8460046040608051200162005d10565b1562003c3b5762003bba9062005a85565b60405162461bcd60e51b815260048101899052601b818901527a766f74696e6720666f7220706f7765724e6f206f766572666c6f7760281b6044820152606490fd5b620029c2565b60405162461bcd60e51b8152600481018a90526039818a01527f746865206e756d626572206f6620766f74657320646f6573206e6f74206d6174604482015278636820746865206e756d626572206f6620706f6c696369657360381b6064820152608490fd5b60405162461bcd60e51b815260048101889052601781880152761d9bdd195c881a185cc8185b1c9958591e481d9bdd1959604a1b6044820152606490fd5b60649060176040519162461bcd60e51b835260206004840152820152761d9bdd1a5b99c81c195c9a5bd9081a185cc8195b991959604a1b6044820152fd5b60649060196040519162461bcd60e51b83526020600484015282015278766f74696e67206973206e6f7420696e2070726f677265737360381b6044820152fd5b3462003dc3578160031936011262003dc35760209062027127548152f35b5080fd5b600435906001600160a01b038216820362003dde57565b600080fd5b35906001600160a01b038216820362003dde57565b608081019081106001600160401b0382111762003e1457604052565b634e487b7160e01b600052604160045260246000fd5b60c081019081106001600160401b0382111762003e1457604052565b61010081019081106001600160401b0382111762003e1457604052565b606081019081106001600160401b0382111762003e1457604052565b604081019081106001600160401b0382111762003e1457604052565b602081019081106001600160401b0382111762003e1457604052565b601f909101601f19168101906001600160401b0382119082101762003e1457604052565b6001600160401b03811162003e145760051b60200190565b3590811515820362003dde57565b81601f8201121562003dde5780359162003f1b8362003edb565b9262003f2b604051948562003eb7565b808452602092838086019260051b82010192831162003dde578301905b82821062003f57575050505090565b83809162003f658462003ef3565b81520191019062003f48565b6004111562003f7c57565b634e487b7160e01b600052602160045260246000fd5b6020908160408183019282815285518094520193019160005b82811062003fba575050505090565b83516001600160a01b03168552938101939281019260010162003fab565b90600382101562003f7c5752565b60005b83811062003ffa5750506000910152565b818101518382015260200162003fe9565b90602091620040268151809281855285808601910162003fe6565b601f01601f1916010190565b81601f8201121562003dde578035916200404c8362003edb565b926200405c604051948562003eb7565b808452602092838086019260051b82010192831162003dde578301905b82821062004088575050505090565b8135815290830190830162004079565b6001600160401b03811162003e1457601f01601f191660200190565b81601f8201121562003dde57803590620040ce8262004098565b92620040de604051948562003eb7565b8284526020838301011162003dde57816000926020809301838601378301015290565b9080601f8301121562003dde578135906200411c8262003edb565b926200412c604051948562003eb7565b828452602092838086019160051b8301019280841162003dde57848301915b8483106200415c5750505050505090565b82356001600160401b03811162003dde5786916200418084848094890101620040b4565b8152019201916200414b565b9080601f8301121562003dde57813590620041a78262003edb565b92620041b7604051948562003eb7565b828452602092838086019160051b8301019280841162003dde57848301915b848310620041e75750505050505090565b82356001600160401b03811162003dde5786916200420b8484809489010162004032565b815201920191620041d6565b9080601f8301121562003dde57813591620042328362003edb565b92604092620042448451958662003eb7565b8185526020938486019185600594851b8601019481861162003dde57868101935b8685106200427857505050505050505090565b84356001600160401b03811162003dde57820183603f8201121562003dde578881013590620042a78262003edb565b91620042b68751938462003eb7565b808352868b8401918a1b8301019186831162003dde5791878c94929593015b818110620042ee57505082935081520194019362004265565b919380919395620042ff8462003de3565b8152019101918b93919492620042d5565b6060918161086052806108e052031262003dde57604051620043328162003e63565b8091620043426108605162003de3565b82526108605160208101356109208190526001600160401b03811162003dde576108e051910190601f8201121562003dde5762004389620043979135806109605262003edb565b604051806108a05262003eb7565b6108a05161096051905260206108a05101926108e051610960519060206109205161086051019260051b8301011162003dde576020016108c05290925b6109605160051b6109205161086051019060206108c0519183010181101562004d8457356001600160401b03811162003dde57606091018061088052601f19906108e05103011262003dde576040516200442e8162003e63565b6200443f6020610880510162003de3565b81526040610880510135602681101562003dde5760208201526108805160608101356109408190526001600160401b031062003dde5761010090601f19906060810135016108e05103011262003dde57620044a1604051806109805262003e46565b6109405161088051016020810135906001600160401b03821162003dde576020620044d3926108e05192010162004101565b61098051526109405161088051016040810135906001600160401b03821162003dde5760206200450a926108e05192010162003f01565b6109805160200152610940516108805101926001600160401b0360608501351162003dde576108e051603f6060860135860101121562003dde5762004559602060608601358601013562003edb565b9462004569604051968762003eb7565b60608501358086016020908101358089526108e0516109405161088051938b01969493019092019160059190911b82016040011162003dde57604001925b61094051610880510160608801359081019088016020013560051b8101604001851015620046d6578435906001600160401b03821162003dde57016108e0519160e09283603f19848303011262003dde57604051908482016001600160401b03811183821017620046c1576040908152840135906001600160401b03821162003dde5760406200463a9286010162004032565b815260608301356020820152608080840135604083015260a09485850135606084015260c0916200466d83870162003ef3565b90840152840135946001600160401b03861162003dde5761010060209695620046b192620046a6899860406108e05191850101620040b4565b908601520162003ef3565b90820152815201930192620045a7565b60246000634e487b7160e01b81526041600452fd5b505095915091935094919460406109805101526109405161088051019460808601356109005260018060401b0360808701351162003dde576108e0519560808101350195603f8701121562003dde5762004734602087013562003edb565b9462004744604051968762003eb7565b6020878101358088526108e051610900516109405161088051948b01989401019160051b82016040011162003dde576040909893929897949701935b61090051610940516108805101016040602086013560051b82010186101562004bc45785356108408190526001600160401b031062003dde5761010090603f19908735016108e05103011262003dde5760405193620047df8562003e46565b6040610840516109005161094051610880510101010135600681101562003dde57855260606108405161090051610940516108805101010101356020860152610840516109005161094051610880510101019960018060401b0360808c01351162003dde576108e051605f60808d01358d0101121562003dde578a9062004870604060808401358401013562003edb565b9a620048806040519c8d62003eb7565b608083013592830160400135808d526108e051610840516109005161094051610880510101019094019360208e01939160051b85016060011162003dde579192606001915b6108405161090051610940516108805101010160808f0135908101908f016040013560051b810160600184101562004acb578335906001600160401b03821162003dde5760c0605f198383016108e05103011262003dde57604051916001600160401b0360c0840190811190841117620046c15760c083016040528181016060810135845260800135600581101562003dde57602084015260a08183010135600481101562003dde576040840152603d60c08284010135101562003dde5781810160c081013560608501526001600160401b0360e0909101351162003dde576108e051620049bf9083830160e08101350160600162004032565b60808401528181016101000135916001600160401b03831162003dde5701016080605f19826108e05103011262003dde578f956040519262004a018462003df8565b60608301356001600160401b03811162003dde576108e05162004a2991850160600162004101565b845260808301356001600160401b03811162003dde576108e05162004a539185016060016200418c565b602085015260a08301356001600160401b03811162003dde576108e05162004a8091850160600162004217565b604085015260c0830135936001600160401b03851162003dde5762004ab360209594606087966108e051920101620040b4565b606082015260a08201528152019301929350620048c5565b509697939c509798939a915050604082015260a091826108405161090051610940516108805101010101356060830152610840516109005161094051610880510101019160c093848401359460018060401b03861162003dde5762004b3e60209695604088976108e051920101620040b4565b608084015260e09162004b6583610840516109005161094051610880510101010162003ef3565b9084015262004b8a610100610840516109005161094051610880510101010162003ef3565b9083015262004baf610120610840516109005161094051610880510101010162003ef3565b90820152815201950193969792919762004780565b50610980516060015261094051610880519198910196919450925090506001600160401b0360a08601351162003dde576108e0519460a0810135810195603f8701121562003dde5762004c1b602087013562003edb565b9262004c2b604051948562003eb7565b6020878101358086526108e051610940516108805193880196930160a0860135019160051b82016040011162003dde57604001935b604060208a013560051b60a086013561094051610880510101010185101562004c9e578435600581101562003dde5781526020948501940162004c60565b5096509694939291505060806109805101526109405161088051019160c092838101359060018060401b03821162003dde57602062004ce4926108e0519201016200418c565b6109805160a00152610940516108805160e094910184810135906001600160401b03821162003dde57602062004d21926108e05192010162004217565b6109805190910152610940516108805101926101008401356001600160401b03811162003dde576108e05160209562004d5d92018601620040b4565b906109805101526109805160408201528152019260206108c051016108c0529092620043d4565b50506108a051602084015250610860519092919060408101356001600160401b03811162003dde576108e05160409262004dbf9201620040b4565b910152565b6005111562003f7c57565b90815180825260208080930193019160005b82811062004df0575050505090565b83518552938101939281019260010162004de1565b908082519081815260208091019281808460051b8301019501936000915b84831062004e345750505050505090565b909192939495848062004e54600193601f198682030187528a516200400b565b980193019301919493929062004e23565b90815180825260208092019182818360051b82019501936000915b84831062004e915750505050505090565b909192939495848062004ead83856001950387528a5162004dcf565b980193019301919493929062004e80565b90815180825260208092019182818360051b8201950193600080925b85841062004eec575050505050505090565b9091929387828297989903855288519082808351928381520192019085905b80821062004f2d57505050908060019299019401940192959493919062004eda565b82516001600160a01b03168452899493840193909201916001919091019062004f0b565b90815180825260208092019081926005928183851b82019601946000915b84831062004f81575050505050505090565b9091929394959681810383528751906101008082018351600681101562003f7c579083929189945283850151848401528a60409182870151938386015283518091528561012082818801941b8701019401926000905b828210620050425750505050509282916200500c6001956060808501519084015260808085015190848303908501526200400b565b9160a08082015115159083015260c08082015115159083015260e080910151151591015299019301930191959493929062004f6f565b9193959650919361011f19878203018552855190815181528c820151620050698162004dc4565b8d820152828201516200507c8162003f71565b8382015260609081830151603d81101562003f7c576001938f9383620051179382879601528162005107620050f6620050e56080620050c88189015160c080848a015288019062004dcf565b9560a0809901519881880391015287519080875286019062004e05565b888701518582038a87015262004e65565b8a8601518482038c86015262004ebe565b930151918184039101526200400b565b9701950192018b969594939162004fd7565b90600182811c921680156200515b575b60208310146200514557565b634e487b7160e01b600052602260045260246000fd5b91607f169162005139565b9060009291805491620051798362005129565b918282526001938481169081600014620051e057506001146200519d575b50505050565b90919394506000526020928360002092846000945b838610620051cb57505050500101903880808062005197565b805485870183015294019385908201620051b2565b9294505050602093945060ff191683830152151560051b0101903880808062005197565b908154620052128162003edb565b92604093620052248551918262003eb7565b828152809460208092019260005281600020906000935b8585106200524b57505050505050565b60018481928451620052638162000589818a62005166565b8152019301940193916200523b565b9060405191828154918282526020928383019160005283600020936000905b828210620052ac57505050620052aa9250038362003eb7565b565b85548452600195860195889550938101939091019062005291565b60405190919060e081016001600160401b0381118282101762003e145760405260c060ff60068395620052fa8162005272565b855260018101546020860152600281015460408601526003810154606086015282600482015416151560808601526040516200533f8162000589816005860162005166565b60a08601520154161515910152565b600682101562003f7c5752565b603d82101562003f7c5752565b908154620053768162003edb565b9262005386604051948562003eb7565b818452600090815260208082208186015b848410620053a6575050505050565b6001838192620053b68562005272565b81520192019301929062005397565b9060405191828154918282526020928383019160005283600020936000905b828210620053fd57505050620052aa9250038362003eb7565b85546001600160a01b031684526001958601958895509381019390910190620053e4565b9081546200542f8162003edb565b926200543f604051948562003eb7565b818452600090815260208082208186015b8484106200545f575050505050565b60018381926200546f85620053c5565b81520192019301929062005450565b9060036060604051620054918162003df8565b620054dc8195620054a28162005204565b8352620054b26001820162005368565b6020840152620054c56002820162005421565b6040840152620034ac604051809681930162005166565b0152565b9190606081019060018060a01b03845116815260208401519160606020830152825180915260808201602060808360051b85010194019160005b81811062005542575050505060406200553f939401519060408184039101526200400b565b90565b848603607f19018352835180516001600160a01b031687526020810151949693949293919290602682101562003f7c576040916020840152015190606060408201526200559e8251610100606084015261016083019062004e05565b602083810151838303605f190160808501528051808452928201929101906000905b8082106200593357505050604083015190605f198382030160a0840152815180825260208201906020808260051b85010194019260005b828110620058ae575050505050606083015190605f198382030160c0840152815190818152602081016020808460051b8401019401926000925b818410620056fa575050505050608083015190605f198382030160e0840152602080835192838152019201906000905b808210620056d657505050620056c98360209360e0620056b26200569a879660a060019a0151605f198683030161010087015262004e65565b60c0850151848203605f190161012086015262004ebe565b92015190610140605f19828503019101526200400b565b970194019291016200551a565b9091926020806001928651620056ec8162004dc4565b815201940192019062005661565b9091929394601f9e9d9c9e198282030184528551908151600681101562003f7c5781526020820151602082015260408201516101006040830152610100820181518091526101206020818501918360051b8601019301916000905b808210620057c257505050509e9f9d9e826020926200578e8493606060019701516060840152608084015183820360808501526200400b565b9160a0810151151560a083015260c0810151151560c083015260e08091015115159101529701940194019293919062005631565b9091929361011f19868203018452845190815181526020820151620057e78162004dc4565b60208201526040820151620057fc8162003f71565b6040820152606082015191603d83101562003f7c57620058a1826020939260019560608695015260a062005840608083015160c0608086015260c085019062004dcf565b9101519160a081830391015260606200588f6200587c6200586b855160808652608086019062004e05565b878601518582038987015262004e65565b6040850151848203604086015262004ebe565b9201519060608184039101526200400b565b9601940192019062005755565b9091929394602080600192601f1986820301885288519062005918620058dd835160e080855284019062004dcf565b8484015185840152604084015160408401526060840151606084015260808401511515608084015260a084015183820360a08501526200400b565b60c092830151151591909201529701950193929101620055f7565b909192602080600192865115158152019401920190620055c0565b90620052aa604560405180947f496e76616c69642070726f6772616d20616464726573732e204d73672e73656e60208301526403232b91d160dd1b6040830152620059a3815180926020868601910162003fe6565b810103602581018552018362003eb7565b90620052aa6040805180947f2c20616e642070726f6772616d206f70657261746f7220616464726573733a206020830152620059fa815180926020868601910162003fe6565b810103602081018552018362003eb7565b6020620052aa91939293604051948162005a2f879351809286808701910162003fe6565b820162005a458251809386808501910162003fe6565b0103808552018362003eb7565b1562005a5b5750565b60405162461bcd60e51b81526020600482015290819062005a819060248301906200400b565b0390fd5b600019811462005a955760010190565b634e487b7160e01b600052601160045260246000fd5b80511562005ab95760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101562005ab95760400190565b80516002101562005ab95760600190565b805182101562005ab95760209160051b010190565b7f496e76616c696420776974686472617720616d6f756e742e20416d6f756e743a8152600160fd1b602082015260210190565b600f620052aa916020949360405195869262005b6962005b5b83860162005b06565b918281519485920162003fe6565b016e0161030b732103130b630b731b29d1608d1b815262005b94825180936020878501910162003fe6565b010360101981018552018362003eb7565b6019620052aa916020949360405195869262005bc762005b5b83860162005b06565b01780161030b732103bb4ba34323930bbb0b136329031b0b9b41d1603d1b815262005bfc825180936020878501910162003fe6565b010360061981018552018362003eb7565b9062005c198262003edb565b62005c28604051918262003eb7565b828152809262005c3b601f199162003edb565b0190602036910137565b62013888805482101562005ab95760005260206000200190600090565b62013886805482101562005ab95760005260206000200190600090565b62013881805482101562005ab95760005260206000200190600090565b6202711d805482101562005ab95760005260206000200190600090565b6201388a805482101562005ab95760005260206000200190600090565b62027119805482101562005ab95760005260206000200190600090565b6202711b805482101562005ab95760005260206000200190600090565b805482101562005ab95760005260206000200190600090565b81811062005d35575050565b6000815560010162005d29565b600160401b811162003e1457620138889081549080835581811062005d6657505050565b620052aa926000526020600020918201910162005d29565b600160401b811162003e1457620138869081549080835581811062005d6657505050565b8054600082558062005db2575050565b620052aa9160005260206000209081019062005d29565b600160401b811162003e1457620271199081549080835581811062005d6657505050565b600160401b811162003e14576202711b9081549080835581811062005d6657505050565b620138918054600082558062005db2575050565b90600160401b811162003e145781549080835581811062005d6657505050565b919082811162005e56576001920390565b50600091508190565b811562005e6a570490565b634e487b7160e01b600052601260045260246000fd5b6000908072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8082101562005feb575b506904ee2d6d415b85acef8160201b8083101562005fdb575b50662386f26fc100008083101562005fcb575b506305f5e1008083101562005fbb575b506127108083101562005fab575b50606482101562005f9a575b600a8092101562005f8f575b6001908160218186019562005f1c8762004098565b9662005f2c604051988962003eb7565b80885262005f3d601f199162004098565b01366020890137860101905b62005f56575b5050505090565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a83530491821562005f895791908262005f49565b62005f4f565b916001019162005f07565b919060646002910491019162005efb565b6004919392049101913862005eef565b6008919392049101913862005ee1565b6010919392049101913862005ed1565b6020919392049101913862005ebe565b60409350810491503862005ea5565b601e620052aa91602094936040519586926200601c62005b5b83860162005b06565b017f2c20616e6420776974686472617761626c65206469766964656e64733a200000815262006055825180936020878501910162003fe6565b010360011981018552018362003eb7565b90620060728262003edb565b604090620060838251918262003eb7565b838152809362006096601f199162003edb565b019160005b838110620060a95750505050565b6020908251620060b98162003e46565b6000815282600081830152606080868401526000818401526080830152600060a0830152600060c0830152600060e08301528286010152016200609b565b62006103815462005129565b90816200610e575050565b81601f6000931160011462006121575055565b818352602083206200613f91601f0160051c81019060010162005d29565b8160208120915555565b80549060008155816200615a575050565b6000526020600020908101905b81811062006173575050565b8062006181600192620060f7565b0162006167565b90600160401b811162003e1457815491818155828210620061a857505050565b600052602060002091820191015b818110620061c2575050565b80620061d0600192620060f7565b01620061b6565b8054906000815581620061e8575050565b6000526020600020908101905b81811062006201575050565b806200620f60019262005da2565b01620061f5565b90600160401b811162003e14578154918181558282106200623657505050565b600052602060002091820191015b81811062006250575050565b806200625e60019262005da2565b0162006244565b80546000808355816200627757505050565b6007928284029284840403620062f857815260208120918201915b828110620062a05750505050565b8082859255826001820155620062b96002820162005da2565b620062c76003820162006149565b620062d560048201620061d7565b620062e360058201620061d7565b620062f160068201620060f7565b0162006292565b634e487b7160e01b82526011600452602482fd5b600160401b821162003e14578054908281558183106200632b57505050565b600792828402928484040362005a9557808402908482040362005a955760009182526020822092830192015b828110620063655750505050565b80828592558260018201556200637e6002820162005da2565b6200638c6003820162006149565b6200639a60048201620061d7565b620063a860058201620061d7565b620063b660068201620060f7565b0162006357565b51600681101562003f7c5790565b90600681101562003f7c5760ff80198354169116179055565b90620063f08162004dc4565b60ff80198354169116179055565b906200640a8162003f71565b61ff0082549160081b169061ff001916179055565b90603d81101562003f7c5762ff000082549160101b169062ff00001916179055565b9190601f81116200645157505050565b620052aa926000526020600020906020601f840160051c8301931062006480575b601f0160051c019062005d29565b909150819062006472565b81519192916001600160401b03811162003e1457620064b781620064b0845462005129565b8462006441565b602080601f8311600114620064f6575081929394600092620064ea575b50508160011b916000199060031b1c1916179055565b015190503880620064d4565b90601f198316958460005282600020926000905b88821062006545575050836001959697106200652b575b505050811b019055565b015160001960f88460031b161c1916905538808062006521565b806001859682949686015181550195019301906200650a565b9060ff801983541691151516179055565b9061ff00825491151560081b169061ff001916179055565b9062ff0000825491151560101b169062ff00001916179055565b8151600681101562003f7c57620065b99082620063cb565b602082015160018201556002810160408301516020815191620065dd83856200630c565b01916000526020600020916000905b8282106200665057505050509060e06005620052aa93606084015160038201556200661f6080850151600483016200648b565b01916200663360a08201511515846200655e565b6200664560c08201511515846200656f565b015115159062006587565b805180518555600185016200667560208301516200666e8162004dc4565b82620063e4565b620066906040830151620066898162003f71565b82620063fe565b6060820151603d81101562003f7c57620066aa916200641f565b60808101518051906001600160401b03821162003e145760206002880191620066d4848462005e25565b0190600052602060002060005b8381106200697f575050505060a0015180518051906020600388019162006709848462006188565b01906000526020600020906000905b8382106200695f575050505060048501602082015160208151916200673e838562006216565b019160005260206000206000925b828410620068fb5750505050600585016040820151602081519162006772838562006216565b019160005260206000206000925b8284106200688e5750505050606001518051906001600160401b03821162003e1457620067c082620067b6600689015462005129565b6006890162006441565b602090601f83116001146200681357928260079360209360019660009262006807575b5050600019600383901b1c191690851b1760068801555b01940191019092620065ec565b015190503880620067e3565b906006870160005260206000209160005b601f198516811062006875575083602093600196938793600797601f198116106200685b575b505050811b016006880155620067fa565b015160001960f88460031b161c191690553880806200684a565b9192602060018192868501518155019401920162006824565b80518051906001600160401b03821162003e1457602090620068b1838662005e25565b0183600052602060002060005b838110620068dd57505050506001602081920192019301929062006780565b82516001600160a01b031681830155602090920191600101620068be565b80518051906001600160401b03821162003e14576020906200691e838662005e25565b0183600052602060002060005b8381106200694a5750505050600160208192019201930192906200674c565b6001906020845194019381840155016200692b565b600160208262006972839451876200648b565b0193019101909162006718565b600190602084519401938184015501620066e1565b62013883805482101562005ab9576000526006602060002091020190600090565b62027116805482101562005ab9576000526006602060002091020190600090565b62013882805482101562005ab9576000526006602060002091020190600090565b62027115805482101562005ab9576000526006602060002091020190600090565b620138828054600160401b81101562003e145762006a3c91600182019055620069d6565b91909162006a4f57620052aa91620065a1565b634e487b7160e01b600052600060045260246000fd5b620138838054600160401b81101562003e145762006a3c9160018201905562006994565b620271168054600160401b81101562003e145762006a3c91600182019055620069b5565b620271158054600160401b81101562003e145762006a3c91600182019055620069f7565b1562006ad957565b60405162461bcd60e51b815260206004820152603760248201527f73756d4469766964656e64576569676874466f72546f6b656e436c6173733a206044820152766469766964656e64576569676874206f766572666c6f7760481b6064820152608490fd5b61271081101562005ab9576200355e816200044f60026200553f9460031b01549162006c21565b90811562006b9257606462006b7e818402938462005e5f565b0362006b8a5760019190565b600091508190565b60019150600090565b9190821562006bb35762006b7e818402938462005e5f565b5060019150600090565b1562006bc557565b60405162461bcd60e51b815260206004820152602e60248201527f746f74616c546f6b656e73506572546f6b656e436c6173733a20746f74616c5460448201526d6f6b656e73206f766572666c6f7760901b6064820152608490fd5b612710811015908162005ab957600390811b906004928383019182549260009582879601935b85871062006c59575050505050505090565b97969091929394959762006cbb5762006caf8862006ca762006c816200189f9a9b8762005d10565b905490881b1c6001600160a01b0316600090815260208990526040812054909462006ce3565b999062006bbd565b95949392919062006c47565b603282634e487b7160e01b6000525260246000fd5b906001820191821062006b8a5760019190565b9190820191821062006b8a5760019190565b6201388b5462006d08620035966201620c565b91905062006d15620162d0565b5060009081925b81841062006d37575b62006d3293500462006d71565b905090565b9160ff60078560031b0154161562006d6a57836200363862006d6392620036316200189f969762006b3e565b9262006d1c565b9162006d25565b90801562006d895762006d849162005e5f565b600191565b5050600090600090565b62013891805490600160401b82101562003e14576001820180825582101562005ab9576000908152602090200180546001600160a01b0319166001600160a01b03909216919091179055565b6201388f805490600160401b82101562003e14576001820180825582101562005ab9576000908152602090200180546001600160a01b0319166001600160a01b03909216919091179055565b6201388180549190600160401b83101562003e14578262001e70916001620052aa9501905562005c7f565b6040519062006e658262003e7f565b60188252772a343290383937b3b930b69034b99032bc32b1baba32b21760411b6020830152565b600091825b6020808401908151805187101562007022578162006eb48862006ebc9362005af1565b5101620075f9565b6026928382101562003f7c57601a91820362006f7a578762006edf915162005af1565b5192828401519081101562003f7c570362006f3857509362006f2962006f319262006f2162006f1a60a060406200189f9a0151015162005aab565b5162005aab565b519062006ce3565b959062007607565b9262006e91565b6064906040519062461bcd60e51b82526004820152601b60248201527a2a34329037b831b7b2329034b9903737ba102820acafa1a0a9a41760291b6044820152fd5b9291905062006f938162006eb489869a979a5162005af1565b8281101562003f7c5760140362006fcc5750509062006f296200189f956200363162006fc58462006f31965162005af1565b5162007654565b62006fde9062006eb485855162005af1565b9081101562003f7c5760151462006ffc575b5062006f319062005a85565b9062006f296200701b956200363162006fc58462006f31965162005af1565b9062006ff0565b505050909250803410600014620070985760405162461bcd60e51b815260206004820152603760248201527f546865207061796d656e74206973206e6f7420656e6f7567682e205468652074604482015276037ba30b6103830bcb6b2b73a1039b437bab6321031329604d1b6064820152608490fd5b8034116200746e575b5062027129805460ff8116620070b78162003f71565b60018103620070ed5750505080620070dd620070d7620070e393620076fb565b62007710565b6200779a565b6200553f62006e56565b620070f88162003f71565b60028114808062007460575b15620071e957505050506200711981620076fb565b15620071aa576200712a81620076fb565b156200716e576200713b906200779a565b604051620071498162003e7f565b60158152742a3432903b37ba329034b99032bc32b1baba32b21760591b602082015290565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c696420766f74652070726f6772616d60601b6044820152606490fd5b60405162461bcd60e51b815260206004820152601760248201527624b73b30b634b2103b37ba34b73390383937b3b930b69760491b6044820152606490fd5b620071f48262003f71565b6003821491828062007452575b15620072df5750505050506200721781620076fb565b156200728f5780620070dd620070d76200723193620076fb565b6040516200723f8162003e63565b603a81527f5468652070656e64696e672070726f6772616d2069732065786563757465642060208201527930b33a32b9103b37ba34b7339030b7321030b8383937bb30b61760311b604082015290565b60405162461bcd60e51b815260206004820152602260248201527f496e76616c696420657865637574696e672070656e64696e672070726f677261604482015261369760f11b6064820152608490fd5b620072ea8162003f71565b818062007443575b8062007435575b1562007323575050505090620070e391600360ff19825416179055620070dd620070d782620076fb565b6200732e8162003f71565b821562007420575b50508062007411575b6200737857505050604051620073558162003e7f565b6013815272283937b3b930b6903a32b936b4b730ba32b21760691b602082015290565b60ff191660011790556200738c81620076fb565b15620073a65780620070dd620070d7620070e393620076fb565b60405162461bcd60e51b815260206004820152603e60248201527f5b4572726f72203030335d5468652070726f6772616d206973206e6f7420612060448201527f76616c696420657865637574652070656e64696e672070726f6772616d2e00006064820152608490fd5b5062027128544210156200733f565b6200742d91925062003f71565b388062007336565b5062027128544210620072f9565b506202712754421015620072f2565b506202712854421062007201565b506202712754421062007104565b60018060a01b0390818351166000526201388590816020526040600020541562007565575b6200749f903462005e45565b90156200752157620074c290838551166000528260205260406000205462006ce3565b929015620074e05783511660005260205260406000205538620070a1565b60405162461bcd60e51b81526020600482015260196024820152782a3432903732bb903130b630b731b29037bb32b9333637bb9760391b6044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527b2a3432903830bcb6b2b73a103932ba3ab9371037bb32b9333637bb9760211b6044820152606490fd5b6000908162013886928354915b828110620075be575b50156200758c575b50905062007493565b85518516600160401b82101562003e145762001e70826200749f956001620075b79501905562005c62565b3862007583565b86620075ca8262005c62565b919054818b51169260031b1c1614620075ee57620075e89062005a85565b62007572565b50506001386200757b565b51602681101562003f7c5790565b156200760f57565b60405162461bcd60e51b815260206004820152601f60248201527f54686520746f74616c207061796d656e7420697320746f6f206c617267652e006044820152606490fd5b6000805b604083019060a06200766e818451015162005acf565b5151841015620076f35762007693846200768c838651015162005acf565b5162005af1565b51925101519283516002101562005ab957620076e2620076dc620076ea93620076d4604096620076cc8660606200189f9b015162005af1565b519062006b9b565b929062007607565b62006ce3565b949062007607565b91905062007658565b509250505090565b6020015151156200770b57600190565b600090565b156200771857565b60405162461bcd60e51b815260206004820152600f60248201526e496e76616c69642070726f6772616d60881b6044820152606490fd5b60809060208152602a60208201527f5468652070726f6772616d2069732064656e6965642062792074686520706c7560408201526967696e2073797374656d60b01b60608201520190565b620077a58162013d65565b516201385c57600681101562003f7c5760038114620138035780620078025760405162461bcd60e51b8152602060048201526016602482015275151a19481c1c9bd9dc985b481a5cc81a5b9d985b1a5960521b6044820152606490fd5b600481036200b0d55750906000905b602083015180518310156200b0cf57826200782c9162005af1565b516020810180516026908181101562003f7c57156200b08c5781518181101562003f7c5760010362007a7a5750506040809101906200787060c08351015162005aab565b51926200789260a062007887818651015162005aab565b519451015162005acf565b5195620078a385518551146201505a565b620078b28551885114620150c0565b60005b8551811015620079f857620078cb818662005af1565b51612710908181101562005ab957600160ff6007620078f39360031b01541615151462015122565b620078ff828a62005af1565b516200790c838862005af1565b51908282101562005ab95760066200792a9260031b01549062006ce3565b9062007937848962005af1565b51918383101562005ab9576006620079549360031b01556201517a565b62007960828a62005af1565b51906200796e838862005af1565b518181101562005ab9576001600160a01b039392620079ae916003908662007997878e62005af1565b5116600052811b0160205287600020549062006ce3565b620079ba848a62005af1565b519283101562005ab95760036200189f93620079f296620079dc878e62005af1565b5116600052811b016020528760002055620151d9565b620078b5565b50939262007a159192965062007a0e906201610e565b9262015ff2565b94519262007a238462003e9b565b60008452600036813760005b835181101562007a5d57806200189f62007a4e62007a57938762005af1565b51878a62015be6565b62007a2f565b509450926020925062007a71915062005a85565b91905062007811565b81518181101562003f7c5760020362007d1c575050604080910180519283519562007aca62007aae60a08097015162005aab565b519562007abf818651015162005acf565b519451015162005ae0565b5193875186510362007cc957875184510362007c7557875185510362007c1e575060005b855181101562007c085762007b04818762005af1565b5190612710918281101562005ab95762007b2a60ff6007809360031b0154161562015232565b62007b36828962005af1565b518381101562005ab95760031b01805460ff1916600117905562007b5b818a62005af1565b5162007b68828962005af1565b51908382101562005ab957600562007b849260031b016200648b565b62007b90818662005af1565b5162007b9d828962005af1565b518381101562005ab95760031b6001015562007bba818762005af1565b5162007bc7828962005af1565b518381101562005ab95760031b6002015562007be4818862005af1565b519182101562005ab9576000600662007c029360031b015562005a85565b62007aee565b5095509390506020925062007a71915062005a85565b5162461bcd60e51b815260206004820152603c6024820152600080516020620168e983398151915260448201527b1b911a5d9a59195b9915d95a59da1d081a5cc81b9bdd08195c5d585b60221b6064820152608490fd5b5162461bcd60e51b81526020600482015260396024820152600080516020620168e98339815191526044820152781b959bdd1a5b99d41bddd95c881a5cc81b9bdd08195c5d585b603a1b6064820152608490fd5b5162461bcd60e51b81526020600482015260386024820152600080516020620168e98339815191526044820152771b925b99195e105c9c985e481a5cc81b9bdd08195c5d585b60421b6064820152608490fd5b819593949295518181101562003f7c5760030362008318575050604084019062007d4b60c08351015162005aab565b519362007d6260a062007887818651015162005aab565b519362007d778651855114620018986201637f565b62007d8a8651865114620018986201637f565b60005b865181101562007df35762007da3818662005af1565b519061271082101562005ab957600362007ded9260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b5111156200189862016483565b62007d8d565b50909493919460005b855181101562007f275762007e12818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b0160205262007e5560406000205462007e4d848962005af1565b519062005e45565b9062007e62848a62005af1565b51918383101562005ab957600362007e9193878f5116600052811b016020526040600020556200189862016483565b62007e9d828862005af1565b518181101562005ab9576003908462007eb7858c62005af1565b5116600052811b0160205262007ed860406000205462006f21848962005af1565b62007ee4848a62005af1565b519283101562005ab95760036200189f9362007f219662007f06878e62005af1565b5116600052811b0160205260406000205562001898620164e8565b62007dfc565b5091509162007f3e62007f4591969594966201610e565b9562015ff2565b926040519462007f558662003e7f565b6001865260203681880137516001600160a01b031662007f758662005aab565b526000905b8651821015620083035762007f90828862005af1565b516104405262007fa1855162005c0d565b9660009462007fb1885162005c0d565b610560528594865b885181101562008088578a8962007fe96001600160a01b0362007fdd858462005af1565b51166104405162015edb565b158062008042575b6200800a575b5050620080049062005a85565b62007fb9565b98620080379162001f3582859c6200802e620080049760018060a01b039262005af1565b51169262005af1565b9790508a8962007ff7565b50505061271061044051101562005ab9576001600160a01b0362008067828b62005af1565b5116600052600361044051811b016020528a89604060002054151562007ff1565b509098949897969291939760005b88518110156200812a5761271061044051101562005ab9576001600160a01b03620080c2828b62005af1565b5116600052600361044051811b0160205260406000205415620080f1575b620080eb9062005a85565b62008096565b99620080eb9062008121906001600160a01b03620081108e8d62005af1565b511662001f35826105605162005af1565b9a9050620080e0565b50985096949392919561044051612710811015806103a05262005ab95760031b6004015496620081656200815f878a62014cf2565b62005c0d565b996000998a6106c0525b6103a05162005ab9576106c0518a8110156200822457620081a4620081c19160006103a05260046104405160031b0162005d10565b90546105605160039290921b1c6001600160a01b03169062015f9d565b15620081e0575b620081d66106c05162005a85565b6106c0526200816f565b99808c62001f356200821d93620082046106c05160046104405160031b0162005d10565b905460039190911b1c6001600160a01b03169262005af1565b99620081c8565b509a939794969299919850946000915b838310620082c957505050506103a05162005ab9578051906001600160401b03821162003e1457602090620082738360046104405160031b0162005e25565b0160046104405160031b01600052602060002060005b838110620082ab5750505050620082a09062005a85565b909295919562007f7a565b82516001600160a01b03168183015560209092019160010162008289565b620082fc90620082f5906001600160a01b03620082e7868662005af1565b511662001f35828962005af1565b9262005a85565b9162008234565b9194505062007a719194506020925062005a85565b819593949295518181101562003f7c57600403620085a0575050604080920160c094620083596200834d878451015162005aab565b51968351015162005acf565b51946200837060a062007887818651015162005aab565b5193620083858851885114620018986201637f565b620083988851855114620018986201637f565b620083ab8851865114620018986201637f565b60005b88518110156200841357620083c4818662005af1565b519061271082101562005ab9576200840d916003906001600160a01b03620083ed848e62005af1565b5116600052811b016020526200189f886000205462007de0838a62005af1565b620083ae565b50909691959294939660005b8351811015620085545762008435818862005af1565b5190612710918281101562005ab9576001600160a01b0390600390826200845d858a62005af1565b5116600052811b016020526200847e8b62007e4d848b600020549262005af1565b906200848b848c62005af1565b51918583101562005ab9576003620084c49385620084aa888d62005af1565b5116600052811b016020528a600020556200189862016483565b620084d0828a62005af1565b518381101562005ab95760039082620084ea858b62005af1565b5116600052811b016020526200850b8b62006f21848b600020549262005af1565b9190506200851a838b62005af1565b519384101562005ab9576200854e9360039162008538858b62005af1565b5116600052811b01602052876000205562005a85565b6200841f565b50946200857792975062007f3e9193945062008570906201610e565b9362015ff2565b9260005b835181101562007a5d57806200189f62007a4e6200859a938762005af1565b6200857b565b819594939551908082101562003f7c576005918203620087b65750505060409182850190620085e460a0620085d9818551015162005aab565b519351015162005acf565b51928251845103620087655760005b83518110156200864b5762008609818562005af1565b519061271082101562005ab9576003620086459260018060a01b038b5116600052811b016020526200189f876000205462007de0838962005af1565b620085f3565b509092919260005b8451811015620086e65762008669818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b01602052620086a3886000205462007e4d848962005af1565b620086af848a62005af1565b519283101562005ab95760036200189f93620086e0968e5116600052811b0160205289600020556200189862016483565b62008653565b50959392620086f79192506201610e565b91805193620087068562003e7f565b6001855260203681870137516001600160a01b0316620087268562005aab565b525194620087348662003e9b565b60008652600036813760005b835181101562007a5d57806200189f62007a4e6200875f938762005af1565b62008740565b845162461bcd60e51b81526020600482015260356024820152600080516020620168c9833981519152604482015274195b905b5bdd5b9d081a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b8296939496518181101562003f7c5760060362008a2057505050906040809201620087e660c08251015162005aab565b5194620087fd60a0620085d9818551015162005aab565b51928651835103620089cf578651845103620089835760005b87518110156200887b576200882c818562005af1565b519061271082101562005ab95762008875916003906001600160a01b0362008855848d62005af1565b5116600052811b016020526200189f876000205462007de0838962005af1565b62008816565b509092919260005b87518110156200892f5762008899818662005af1565b516127108082101562005ab9576001600160a01b03929160039084620088c0858e62005af1565b5116600052811b01602052620088e0886000205462007e4d848962005af1565b620088ec848a62005af1565b519283101562005ab95760036200189f9362008929966200890f8f889062005af1565b5116600052811b0160205289600020556200189862016483565b62008883565b5095926200894491925062007a0e906201610e565b925194620089528662003e9b565b60008652600036813760005b835181101562007a5d57806200189f62007a4e6200897d938762005af1565b6200895e565b845162461bcd60e51b81526020600482015260306024820152600080516020620169a983398151915260448201526f1b9d1cc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b845162461bcd60e51b81526020600482015260356024820152600080516020620168698339815191526044820152741b90db185cdcd95cc81a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b82518181101562003f7c5760070362008b705750505060408091019362008a4c60c08651015162005aab565b519262008a5e60a08751015162005aab565b519551519162008a768551885114620018986201637f565b60005b855181101562007c085762008b6a906200189f6001600160a01b038260028862008b528e62008b478e62008b3d8f8962008ab48a8562005af1565b511660005262008af18962008ae981620138809a8b60205262008ae360ff876000205416156200189862016450565b62005af1565b519662005af1565b51968a62008b2783519b8c9662008b088862003df8565b600188526060602089019860008a528781019b8c52019b8c5262005af1565b511660005260205260002097511515886200655e565b511515866200656f565b51600185016200648b565b5191015562008b62838a62005af1565b511662006e2b565b62008a79565b82519596959394928185101562003f7c57600894850362008c685750505062008ba260c0604080950151015162005aab565b519360005b855181101562008c535762008c4d906001600160a01b038062008bcb838a62005af1565b511660005262013880908160205262008c2260ff62008bf96001828c600020541615151462001898620163af565b8262008c06868d62005af1565b5116600052836020528960002054891c16156200189862016417565b62008c2e838a62005af1565b51166000526020528560002061010061ff001982541617905562005a85565b62008ba7565b50949093506020925062007a71915062005a85565b80518281101562003f7c5760090362008d3d5750505062008c9260c0604080950151015162005aab565b519360005b855181101562008c535762008d3790866001600160a01b038062008cbc848462005af1565b511660005262008d106001898362008cf28762013880978860205262008ae38660ff8097600020541615151462001898620163af565b5116600052846020528a600020548a1c1615151462001898620163e2565b62008d1c838a62005af1565b51166000526020528560002061ff0019815416905562005a85565b62008c97565b8097969492939597518281101562003f7c57600a0362008e1c575050505060408094019162008d8260a062008d7760c08651015162005aab565b519451015162005aab565b519162008d978451845114620018986201637f565b60005b845181101562007a5d5762008e16906001600160a01b038062008dbe838962005af1565b5116600052620138808060205262008de6600160ff8c600020541615151462001898620163af565b62008df2838862005af1565b519162008e00848a62005af1565b5116600052602052600289600020015562005a85565b62008d9a565b80979597518281101562003f7c57600b0362008eec575050505060408092019362008e4c60c08651015162005aab565b519451519162008e648651845114620018986201637f565b60005b865181101562007a5d5762008ee6906200189f6001600160a01b038062008e8f848c62005af1565b5116600052620138808060205262008eb7600160ff8b600020541615151462001898620163af565b62008ec3848962005af1565b519162008ed1858d62005af1565b5116600052602052600188600020016200648b565b62008e67565b80979495939697518281101562003f7c57600c036200903a5750505060400160609182825101519360005b8551811015620090245760e062008f3382878751015162005af1565b5101511562008fbb5762008f5762008f5082878751015162005af1565b5162006a18565b62013882805460001992919083810190811162005a955762008f7a8a91620069d6565b5001805461ff0019166101001790555491820191821162005a95578762008fa562008fb593620069d6565b5001805460ff1916905562005a85565b62008f17565b62008fd662008fcf82878751015162005af1565b5162006a65565b62013882805460001992919083810190811162005a955762008ff98a9162006994565b5001805461ff0019166101001790555491820191821162005a95578762008fa562008fb59362006994565b5095915093506020925062007a71915062005a85565b8097969593929497518281101562003f7c57600d03620091915750506040019460206200906c60a08851015162005aab565b51965101519162009081875184511462014d99565b60005b875181101562007c08578080878a620090a262009132958962005af1565b5115620091385762009103620090ea8483620090d5620090c86200910e98889762005af1565b5162013882541162014e22565b62008ae38d620090f1620090ea858562005af1565b51620069d6565b509060ff9889920154901c1662014e7a565b500154161562014edb565b866200911f620090ea838c62005af1565b5001805460ff1916600117905562005a85565b62009084565b6200910362009179848362009164620091576200918098889762005af1565b5162013883541162014e22565b62008ae38d620090f162009179858562005af1565b5162006994565b866200911f62009179838c62005af1565b8097949397518281101562003f7c57600e0362009278575050604001916020620091c060a08551015162005aab565b519351015195620091d5845188511462014d99565b60005b845181101562007c085780620091f3620091ff928a62005af1565b51620092055762005a85565b620091d8565b6200922262009215828862005af1565b5162013882541162014f3c565b62009267876200924c6200923b620090ea858b62005af1565b5060ff9283910154891c1662014f95565b886200925d620090ea858b62005af1565b5001541662014ff7565b8662008fa5620090ea838962005af1565b809192935096949596518281101562003f7c57600f036200939357505060400160609182825101519360005b8551811015620090245760e0620092c082878751015162005af1565b510151156200933157620092dd62008f5082878751015162005af1565b62013882805460001992919083810190811162005a9557620093008a91620069d6565b5001805461ff0019166101001790555491820191821162005a9557876200911f6200932b93620069d6565b620092a4565b6200934562008fcf82878751015162005af1565b62013882805460001992919083810190811162005a9557620093688a9162006994565b5001805461ff0019166101001790555491820191821162005a9557876200911f6200932b9362006994565b8091929394969550518281101562003f7c57601003620094385750506040015190620093c860a0608084015193015162005aab565b5193620093dd8351865114620018986201637f565b60005b83518110156200942557806200189f620093ff6200941f938762005af1565b516200940b8162004dc4565b62009417838a62005af1565b519062014d00565b620093e0565b509350916020915062007a719062005a85565b80959295518281101562003f7c57601103620096c3575050906040809401916200946d60a062008d7760c08651015162005aab565b51916200947e845184511462014ca6565b60005b8451811015620094f757620094f1906200189f6001600160a01b0380620094a9848a62005af1565b51166000526201388580602052620094cb8b6000205462006f21868b62005af1565b919092620094da868c62005af1565b51166000526020528a600020556200189862016335565b62009481565b509394509162009508915062015ff2565b906201388692835494620095226200815f85518862014cf2565b91600093845b88811062009683575060005b8651811015620095db576000805b8a81106200958c575b501562009564575b6200955e9062005a85565b62009534565b946200955e9062009583906001600160a01b03620082e7898b62005af1565b95905062009553565b620095978162005c62565b90546001600160a01b0360039290921b1c811690620095b7858c62005af1565b511614620095d057620095ca9062005a85565b62009542565b50506001386200954b565b50965094909350620095ed8362005c0d565b805191906001600160401b03831162003e14576020906200960e8462005d7e565b0190600052602060002060005b83811062009665575050505060005b828110620096425750505062007a7160209162005a85565b6200965f906200189f6001600160a01b0362001e63838662005af1565b6200962a565b82516001600160a01b0316818301556020909201916001016200961b565b94620096b6620096bd91620096988862005c62565b905460039190911b1c6001600160a01b031662001f35828962005af1565b9562005a85565b62009528565b80518281101562003f7c5760120362009935575050604080940191620096f460a062008d7760c08651015162005aab565b519162009705845184511462014ca6565b60005b8451811015620097585762009752906200189f6001600160a01b038062009730848a62005af1565b51166000526201388580602052620094cb8b6000205462007e4d868b62005af1565b62009708565b509491509291620097699062015ff2565b906201388680546200977b8162005c0d565b9260009485925b8084106200982f5750505050620097998362005c0d565b805191906001600160401b03831162003e1457602090620097ba8462005d7e565b0190600052602060002060005b83811062009811575050505060005b828110620097ee5750505062007a7160209162005a85565b6200980b906200189f6001600160a01b0362001e63838662005af1565b620097d6565b82516001600160a01b031681830155602090920191600101620097c7565b9297600097929597949194998a5b86518110156200992357620098528b62005c62565b90546001600160a01b0360039290921b1c81169062009872838a62005af1565b5116146200988b57620098859062005a85565b6200983d565b509950976001979592979491945b80620098f2575b15620098b857620098b19062005a85565b9262009782565b95620098eb620098b191620098cd8962005c62565b905460039190911b1c6001600160a01b031662001f35828a62005af1565b9662005a85565b50620098fe8162005c62565b60018060a01b0391549060031b1c1660005262013885602052826000205415620098a0565b50999890989795929794919462009899565b80959295518281101562003f7c576013036200999657505060408091015101519260005b84518110156200998557806200189f620099786200997f938862005af1565b5162015883565b62009959565b5092509062007a7160209162005a85565b8051918083101562003f7c57601492830362009b3957505050604080910190620099c560c08351015162005aab565b5192620099dc60a062007887818651015162005aab565b5195620099ed85518551146201505a565b620099fc8551885114620150c0565b60005b855181101562009ae45762009a15818962005af1565b5162009a22828762005af1565b51612710918282101562005ab957600662009a439260031b01549062006ce3565b9062009a50848962005af1565b51918383101562005ab957600662009a6d9360031b01556201517a565b62009a79828a62005af1565b519062009a87838862005af1565b518181101562005ab9576001600160a01b03939262009ab0916003908662007997878e62005af1565b62009abc848a62005af1565b519283101562005ab95760036200189f9362009ade96620079dc878e62005af1565b620099ff565b50939262009afa9192965062007a0e906201610e565b94519262009b088462003e9b565b60008452600036813760005b835181101562007a5d57806200189f62007a4e62009b33938762005af1565b62009b14565b81969495939651908082101562003f7c5760159182036200a0b15750505050604084019062009b6d60c08351015162005aab565b519362009b8460a062007887818651015162005aab565b519362009b998651855114620018986201637f565b62009bac8651865114620018986201637f565b60005b865181101562009c085762009bc5818662005af1565b519061271082101562005ab957600362009c029260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b62009baf565b50909493919460005b855181101562009d195762009c27818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b0160205262009c6260406000205462007e4d848962005af1565b9062009c6f848a62005af1565b51918383101562005ab957600362009c9e93878f5116600052811b016020526040600020556200189862016483565b62009caa828862005af1565b518181101562005ab9576003908462009cc4858c62005af1565b5116600052811b0160205262009ce560406000205462006f21848962005af1565b62009cf1848a62005af1565b519283101562005ab95760036200189f9362009d139662007f06878e62005af1565b62009c11565b5091509162007f3e62009d3091969594966201610e565b926040519462009d408662003e7f565b6001865260203681880137516001600160a01b031662009d608662005aab565b526000905b8651821015620083035762009d7b828862005af1565b516104e05262009d8c855162005c0d565b9660009462009d9c885162005c0d565b6102c0528594865b885181101562009e6a578a8962009dd46001600160a01b0362009dc8858462005af1565b51166104e05162015edb565b158062009e24575b62009df5575b505062009def9062005a85565b62009da4565b9862009e199162001f3582859c6200802e62009def9760018060a01b039262005af1565b9790508a8962009de2565b5050506127106104e051101562005ab9576001600160a01b0362009e49828b62005af1565b511660005260036104e051811b016020528a89604060002054151562009ddc565b509098949897969291939760005b885181101562009f0c576127106104e051101562005ab9576001600160a01b0362009ea4828b62005af1565b511660005260036104e051811b016020526040600020541562009ed3575b62009ecd9062005a85565b62009e78565b9962009ecd9062009f03906001600160a01b0362009ef28e8d62005af1565b511662001f35826102c05162005af1565b9a905062009ec2565b5098509694939291956104e051612710811015806108a05262005ab95760031b600401549662009f416200815f878a62014cf2565b996000998a610660525b6108a05162005ab957610660518a81101562009fe75762009f8062009f9d9160006108a05260046104e05160031b0162005d10565b90546102c05160039290921b1c6001600160a01b03169062015f9d565b1562009fbc575b62009fb26106605162005a85565b6106605262009f4b565b99808c62001f3562009fe093620082046106605160046104e05160031b0162005d10565b9962009fa4565b509a939794969299919850946000915b8383106200a08c57505050506108a05162005ab9578051906001600160401b03821162003e14576020906200a0368360046104e05160031b0162005e25565b0160046104e05160031b01600052602060002060005b8381106200a06e57505050506200a0639062005a85565b909295919562009d65565b82516001600160a01b0316818301556020909201916001016200a04c565b6200a0aa90620082f5906001600160a01b03620082e7868662005af1565b9162009ff7565b82979496959751928184101562003f7c5760169384036200a11e57505050505060c060406200a0e4920151015162005aab565b519260005b845181101562009985576200a118906200189f6001600160a01b036200a110838962005af1565b511662006ddf565b6200a0e9565b80518281101562003f7c576017036200a1775760405162461bcd60e51b81526020600482015260296024820152600080516020620169698339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b80518281101562003f7c576018036200a1eb57505050505060c060406200a1a2920151015162005aab565b5162013892805460ff191660011790559260005b845181101562009985576200a1e5906200189f6001600160a01b036200a1dd838962005af1565b511662006d93565b6200a1b6565b80979697518281101562003f7c576019036200a37057505050505060008080604080940160a0808251015180516200a337575b5050519060e0820151916200a24262006f1a60c060018060a01b0393015162005aab565b511690602083519301915af1903d156200a32e573d916200a2638362004098565b926200a2728351948562003eb7565b83523d6000602085013e5b156200a29257505062007a7160209162005a85565b62005a8192506200a30f8151927f5468652063616c6c20746f2074686520636f6e7472616374206973206e6f7420602085015278039bab1b1b2b9b9b33ab617102932ba3ab937103230ba309d1603d1b838501528381516200a2fe816059946020868601910162003fe6565b810103603981018552018362003eb7565b5162461bcd60e51b81526020600482015291829160248301906200400b565b6060916200a27d565b6200a3429062005aab565b51516200a351575b806200a21e565b81925062006f1a906200a3679251015162005aab565b5190386200a34a565b80518281101562003f7c57601a036200a47257505050506200a39b60a0604080940151015162005aab565b51906200a3ac600383511462014ca6565b6200a3b78262005aab565b51926200a3d06200a3c88462005acf565b519362005ae0565b51926200a4385750509162007a71916001602094146000146200a431576200a410906200a4036201388d91825462006ce3565b90915562001898620162d0565b6200189f6201388e6200a424815462006cd0565b909155620018986201630a565b5062005a85565b60649250519062461bcd60e51b825260206004830152602482015273496e76616c6964207061796d656e74207479706560601b6044820152fd5b809192939450518281101562003f7c57601b036200a8f6575050505050906200a4b26201388b54620035a86200a4a76201620c565b612710831062005a52565b50506200a4be620162d0565b506000805b61271081106200a891575b50506200a4da62006cf5565b906200a4ea6202712a5462005c0d565b9060009384905b6127108210156200a886578160031b9260ff600785015416156200a642576000976002850154156200a63057889798975b62005ab95760048501548810156200a616576200a543886004870162005d10565b9054600391821b1c6001600160a01b0316600081815291870160205260409182902054919a916200a576908a9062006b9b565b9b906200a582620162d0565b6200a58d9162005a52565b60009b60028901546200a5a09162006b9b565b906200a5ab620162d0565b6200a5b69162005a52565b828d5262013887602052818d2054906200a5d09162006ce3565b90918d20556200a5df620162d0565b6200a5ea9162005a52565b6200a5f6828962005af1565b526200a6029062005a85565b976200a60e9062005a85565b97986200a522565b929093506200a62791965062005a85565b9095946200a4f1565b929093506200a6279196975062005a85565b959392509350505b6200a6558262005c0d565b91600091825b8281106200a7f05750505062013888908154926200a67e6200815f858462014cf2565b9360009081905b8082106200a7b557505060005b8381106200a7115750508351939150506001600160401b03831162003e14576020906200a6bf8462005d42565b0190600052602060002060005b8381106200a6f3575050505062007a7160209160006201388d5560006201388e5562005a85565b82516001600160a01b0316818301556020909201916001016200a6cc565b6000805b8381106200a76d575b50156200a737575b6200a7319062005a85565b6200a692565b906200a731906200a764906001600160a01b036200a756858762005af1565b511662001f35828a62005af1565b9190506200a726565b6001600160a01b03806200a782858862005af1565b5116906200a791838b62005af1565b5116146200a7aa576200a7a49062005a85565b6200a715565b50506001386200a71e565b9091620082f56200a7e9916200a7cb8562005c45565b905460039190911b1c6001600160a01b031662001f35828b62005af1565b906200a685565b6000805b8581106200a83e575b50156200a816575b6200a8109062005a85565b6200a65b565b926200a810906200a835906001600160a01b03620082e7878662005af1565b9390506200a805565b6001600160a01b03806200a853858762005af1565b5116906200a862838a62005af1565b5116146200a87b576200a8759062005a85565b6200a7f4565b50506001386200a7fd565b93505092906200a64a565b8060031b9060ff600783015416156200a8ef576200a8dd620076dc6200189f946200a8d16200a8e99560026200a8c78762006b3e565b9101549062006b9b565b929062001898620162d0565b939062001898620162d0565b6200a4c3565b506200a4ce565b80518281101562003f7c57601c036200a94f5760405162461bcd60e51b81526020600482015260296024820152600080516020620169898339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b80518281101562003f7c57601d036200a975575b505050505062007a7160209162005a85565b80518281101562003f7c57601e146200a9635780518281101562003f7c57601f036200a9cb57505050506020916200a9c16200a9ba604062007a719401515162005aab565b51620158ba565b913880806200a963565b80518281101562003f7c576020036200a9f1575b505050505062007a716020916200a9c1565b8051908282101562003f7c5760218092036200aa0f575b506200a9df565b8051838110156200b077576022036200aa505750505050505062007a716020916201389260ff1981541690556200aa4562005e11565b91388080806200aa08565b8051838110156200b077576023036200aa77575b50505050505062007a716020916200aa45565b8051838110156200b077576024146200aa64578051838110156200b077576025146200aa64579795949751918210156200b0635750036200b026575060408401906200aac860c08351015162005aab565b51936200aadf60a062007887818651015162005aab565b51936200aaf48651855114620018986201637f565b6200ab078651865114620018986201637f565b60005b86518110156200ab63576200ab20818662005af1565b519061271082101562005ab95760036200ab5d9260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b6200ab0a565b50909493919460005b85518110156200ac74576200ab82818662005af1565b51906127108083101562005ab957600360018060a01b0393848c5116600052811b016020526200abbd60406000205462007e4d848962005af1565b906200abca848a62005af1565b51918383101562005ab95760036200abf993878f5116600052811b016020526040600020556200189862016483565b6200ac05828862005af1565b518181101562005ab957600390846200ac1f858c62005af1565b5116600052811b016020526200ac4060406000205462006f21848962005af1565b6200ac4c848a62005af1565b519283101562005ab95760036200189f936200ac6e9662007f06878e62005af1565b6200ab6c565b5091509162007f3e6200ac8b91969594966201610e565b92604051946200ac9b8662003e7f565b6001865260203681880137516001600160a01b03166200acbb8662005aab565b526000905b86518210156200b00c576200acd6828862005af1565b516107e0526200ace7855162005c0d565b966000946200acf7885162005c0d565b610300528594865b88518110156200adc5578a896200ad2f6001600160a01b036200ad23858462005af1565b51166107e05162015edb565b15806200ad7f575b6200ad50575b50506200ad4a9062005a85565b6200acff565b986200ad749162001f3582859c6200802e6200ad4a9760018060a01b039262005af1565b9790508a896200ad3d565b5050506127106107e051101562005ab9576001600160a01b036200ada4828b62005af1565b511660005260036107e051811b016020528a8960406000205415156200ad37565b509098949897969291939760005b88518110156200ae67576127106107e051101562005ab9576001600160a01b036200adff828b62005af1565b511660005260036107e051811b01602052604060002054156200ae2e575b6200ae289062005a85565b6200add3565b996200ae28906200ae5e906001600160a01b036200ae4d8e8d62005af1565b511662001f35826103005162005af1565b9a90506200ae1d565b5098509694939291956107e051612710811015806108805262005ab95760031b60040154966200ae9c6200815f878a62014cf2565b996000998a610800525b6108805162005ab957610800518a8110156200af42576200aedb6200aef89160006108805260046107e05160031b0162005d10565b90546103005160039290921b1c6001600160a01b03169062015f9d565b156200af17575b6200af0d6108005162005a85565b610800526200aea6565b99808c62001f356200af3b93620082046108005160046107e05160031b0162005d10565b996200aeff565b509a939794969299919850946000915b8383106200afe757505050506108805162005ab9578051906001600160401b03821162003e14576020906200af918360046107e05160031b0162005e25565b0160046107e05160031b01600052602060002060005b8381106200afc957505050506200afbe9062005a85565b90929591956200acc0565b82516001600160a01b0316818301556020909201916001016200afa7565b6200b00590620082f5906001600160a01b03620082e7868662005af1565b916200af52565b9194505062007a719194506020925091388080806200aa64565b6064906040519062461bcd60e51b825260206004830152602482015275496e76616c6964206f7065726174696f6e207479706560501b6044820152fd5b634e487b7160e01b60005260045260246000fd5b82634e487b7160e01b60005260045260246000fd5b60405162461bcd60e51b815260206004820152601b60248201527a13dc195c985d1a5bdb881d1e5c19481a5cc81d5b9919599a5b9959602a1b6044820152606490fd5b50915050565b600281036200b0f95760405162461bcd60e51b81528062005a81600482016200774f565b6001146200b1045750565b906200b114620138835462006066565b805190600160401b821162003e1457620271165482620271165580831062013787575b506020016202711660005260206000206000915b83831062013766575050505060005b62013883548110156200b19457806200189f6200b17b6200b18e9362006994565b506200b18783620069b5565b9062013c9a565b6200b15a565b506200b1a4620138825462006066565b805190600160401b821162003e14576202711554826202711555808310620136c9575b506020016202711560005260206000206000915b838310620136a8575050505060005b62013882548110156200b21d57806200189f6200b20b6200b21793620069d6565b506200b18783620069f7565b6200b1ea565b5060005b612710811015806200b3e957600160ff6201389a8460031b0154161515146200b257575b506200b2519062005a85565b6200b221565b916000835b62005ab957620138978360031b01548110156200b2c9576200b2c0929350600092816200b2938593620138978860031b0162005d10565b9054600391821b1c6001600160a01b031660009081529087901b6201389601602052604081205562005a85565b9093926200b25c565b5091604051906200b2da8262003e9b565b6000825262005ab9578051906001600160401b03821162003e14576020906200b30c83620138978660031b0162005e25565b01620138978360031b01600052602060002060005b8381106200b3cb5750505050600381901b6201389a8101805460ff191690556000620138938201819055620138948201819055620138958201556201389801546200b25191906200b3729062005129565b601f908181116200b39f575b50506000620138988260031b01556000620138998260031b0155906200b245565b6200b3c391620138988460031b016000526020600020910160051c81019062005d29565b38806200b37e565b82516001600160a01b0316818301556020909201916001016200b321565b505060005b612710811062013613575060005b62013881548110156200b45957806200b4196200b4539262005c7f565b60018060a01b0391549060031b1c166000526202711360205260006002604082208281556200b44b60018201620060f7565b015562005a85565b6200b3fc565b506200b469620138815462005c0d565b8051906001600160401b03821162003e1457600160401b821162003e14576020906202711454836202711455808410620135f0575b500162027114600052602060002060005b838110620135d2575050505060005b62013881548110156200b533576200b4d68162005c7f565b9054620271145460039290921b1c6001600160a01b0316919081101562005ab9576202711460005260008051602062016909833981519152810180546001600160a01b0319169092179091556200b52d9062005a85565b6200b4be565b509060005b62013881548110156200b5f557806200b5556200b5aa9262005c7f565b9060018060a01b03918291549060031b1c1660005262013880602052604080600020916200b5838462005c7f565b90549060031b1c1660005262027113602052600020908082036200b5b0575b505062005a85565b6200b538565b600280916200b5d660ff6200b5c981845416876200655e565b825460081c16856200656f565b6200b5e860018201600186016201392e565b015491015538806200b5a2565b5060005b6202711d548110156200b64957806200b6166200b6439262005c9c565b60018060a01b0391549060031b1c166000526202711c6020526200189f6040600020606481019062005d29565b6200b5f9565b506200b6596201388a5462005c0d565b8051906001600160401b03821162003e1457600160401b821162003e14576020906202711d54836202711d55808410620135af575b50016202711d600052602060002060005b83811062013591575050505060005b6201388a548110156200b6f257806200189f6200b6cf6200b6ec9362005cb9565b905460039190911b1c6001600160a01b031662001e708362005c9c565b6200b6ae565b5060005b6201388a548110156200b78057806200b7136200b7679262005cb9565b9060018060a01b03918291549060031b1c1660005262013889602052604080600020916200b7418462005cb9565b90549060031b1c166000526202711c602052600020908082036200b76d57505062005a85565b6200b6f6565b6200b7789162013d2e565b38806200b5a2565b506201388b546202711e556201388c546202711f556201388d5462027120556201388e5462027121556201388f546001600160401b03811162003e1457600160401b811162003e1457620271225481620271225580821062013562575b506202712260009081527f846ab89c81ea9339188216a1864da1a19ebe28d411cbec99efa70ca6d389710d80546000805160206201688983398151915291905b848410620135405750505050506201389054600160401b811162003e14576202712354816202712355808210620134fd575b50620271236000908152600080516020620168a98339815191527f7f73709277f72a9bc7b284375e83603a53394744e9fa86da811e86c2aa78e05e5b838310620134df57505062013891549150506001600160401b03811162003e1457600160401b811162003e14576202712454816202712455808210620134b0575b506202712460009081527f8f332db73d3937798ea82422156d059730b0b3058606439b57b7ae623e94536680546000805160206201692983398151915291905b8484106201348e57505050505060ff620138925416151560ff8019620271255416911617620271255560005b62027119548110156200b98457806200b9556200b97e9262005cd6565b905460039190911b1c6001600160a01b0316600090815262027118602052604081205562005a85565b6200b938565b506200b994620138865462005c0d565b8051906001600160401b03821162003e14576020906200b9b48362005dc9565b0162027119600052602060002060005b83811062013470575050505060005b62013886548110156200ba1757806200189f6200b9f46200ba119362005c62565b905460039190911b1c6001600160a01b031662001e708362005cd6565b6200b9d3565b5060005b62013886548110156200ba8957806200ba386200ba839262005c62565b9060018060a01b03918291549060031b1c166000526201388560205260408060002054916200ba678462005c62565b90549060031b1c16600052620271186020526000205562005a85565b6200ba1b565b5060005b6202711b548110156200bad957806200baaa6200bad39262005cf3565b905460039190911b1c6001600160a01b031660009081526202711a602052604081205562005a85565b6200ba8d565b506200bae9620138885462005c0d565b8051906001600160401b03821162003e14576020906200bb098362005ded565b016202711b600052602060002060005b83811062013452575050505060005b62013888548110156200bb6c57806200189f6200bb496200bb669362005c45565b905460039190911b1c6001600160a01b031662001e708362005cf3565b6200bb28565b5060005b62013888548110156200bbde57806200bb8d6200bbd89262005c45565b9060018060a01b03918291549060031b1c166000526201388760205260408060002054916200bbbc8462005c45565b90549060031b1c166000526202711a6020526000205562005a85565b6200bb70565b50906000905b60208301518051831015620109f357826200bbff9162005af1565b516020810151602681101562003f7c57156200b08c576020810151602681101562003f7c576001036200c1cf57604001906200bc4060c08351015162005aab565b51936200bc5760a062007887818651015162005aab565b51916200bc6886518551146201505a565b6200bc778651845114620150c0565b60005b86518110156200bdda576200bc90818662005af1565b5161271081101562005ab957600160ff6201389a6200bcb89360031b01541615151462015122565b6200bcc4818562005af1565b516200bcd1828762005af1565b519061271082101562005ab957620138996200bcf39260031b01549062006ce3565b906200bd00838862005af1565b519161271083101562005ab957620138996200bd219360031b01556201517a565b6200bd2d818562005af1565b516200bd3a828762005af1565b519061271082101562005ab9576200bd7e9162013896906001600160a01b036200bd65868d62005af1565b511660005260031b016020526040600020549062006ce3565b91906200bd8c828862005af1565b519061271082101562005ab9576200bdd4936200189f9262013896906001600160a01b036200bdbc878f62005af1565b511660005260031b01602052604060002055620151d9565b6200bc7a565b50926200bdf191925062008570909594956201610e565b916040516200be008162003e9b565b6000815260003681376000945b80518610156200c1b5576200be23868262005af1565b5160e0526200be33855162005c0d565b966000946200be43845162005c0d565b60c05260009460005b88518110156200bf12578a896200be7b6001600160a01b036200be70858462005af1565b511660e05162015f44565b15806200becb575b6200be9c575b50506200be969062005a85565b6200be4c565b986200bec09162001f3582859c6200802e6200be969760018060a01b039262005af1565b9790508a896200be89565b50505061271060e051101562005ab9576001600160a01b036200beef828b62005af1565b51166000526201389660e05160031b016020528a8960406000205415156200be83565b50909895979498969291939660005b88518110156200bfae5761271060e051101562005ab9576001600160a01b03806200bf4d838c62005af1565b51166000526201389660e05160031b01602052604060002054156200bf7f575b506200bf799062005a85565b6200bf21565b819b6200bfa6916200bf966200bf79948d62005af1565b511662001f358260c05162005af1565b9a906200bf6d565b5098509695929190939660e051612710811015806102805262005ab95760031b620138970154986200bfe56200815f898c62014cf2565b610380526000610540526000610600525b6102805162005ab957610600518a8110156200c0be576200c02c6200c04b916000610280526201389760e05160031b0162005d10565b905460c0516001600160a01b03939260031b9190911c83169062015f9d565b156200c06b575b506200c0616106005162005a85565b610600526200bff6565b6000610280526200c08a610600516201389760e05160031b0162005d10565b90549060031b1c166200c0a4610540516103805162005af1565b526200c0b36105405162005a85565b61054052386200c052565b50979294959093985095909560005b8281106200c169575050506102805162005ab95761038051516001600160401b03811162003e14576200c10b816201389760e05160031b0162005e25565b602061038051016201389760e05160031b01600052602060002060005b8381106200c14b57505050506200c13f9062005a85565b9492959091956200be0d565b82516001600160a01b0316818301556020909201916001016200c128565b6200c1af906001600160a01b036200c182828562005af1565b51166200c196610540516103805162005af1565b526200c1a56105405162005a85565b6105405262005a85565b6200c0cd565b5050939092506200c1c7915062005a85565b90916200bbe4565b906020829493940151602681101562003f7c576002036200c38c576040809201908151938451916200c2266200c20a60a08098015162005aab565b51966200c21b818751015162005acf565b519551015162005ae0565b5194835187510362007cc957835185510362007c7557835186510362007c1e575060005b86518110156200c379576200c260818862005af1565b5161271081101562005ab95760ff6201389a6200c2849260031b0154161562015232565b6200c290818862005af1565b5161271081101562005ab95760031b6201389a01805460ff191660011790556200c2bb818562005af1565b516200c2c8828962005af1565b519061271082101562005ab957620138986200c2e89260031b016200648b565b6200c2f4818662005af1565b516200c301828962005af1565b5161271081101562005ab95760031b6201389401556200c322818762005af1565b516200c32f828962005af1565b5161271081101562005ab95760031b6201389501556200c350818862005af1565b519061271082101562005ab9576000620138996200c3739360031b015562005a85565b6200c24a565b509592509350506200c1c7915062005a85565b9092916020840151602681101562003f7c576003036200c9be5760408401906200c3bb60c08351015162005aab565b51906200c3d260a062007887818651015162005aab565b51936200c3e78351855114620018986201637f565b6200c3fa8351865114620018986201637f565b60005b83518110156200c459576200c413818662005af1565b519061271082101562005ab957620138966200c4539260018060a01b038b511660005260031b016020526200189f60406000205462007de0838a62005af1565b6200c3fd565b509095919560005b87518110156200c5ab576200c477818662005af1565b5161271081101562005ab957620138969060018060a01b0386511660005260031b016020526200c4b260406000205462007e4d838962005af1565b906200c4bf838862005af1565b519161271083101562005ab957620138966200c4f99360018060a01b0389511660005260031b016020526040600020556200189862016483565b6200c505818662005af1565b5161271081101562005ab95762013896906001600160a01b036200c52a848c62005af1565b511660005260031b016020526200c54c60406000205462006f21838962005af1565b91906200c55a828862005af1565b519061271082101562005ab9576200c5a593620138966200189f938d6200c5898760018060a01b039262005af1565b511660005260031b0160205260406000205562001898620164e8565b6200c461565b50926200c5ca919294506200c5c3909695966201610e565b9462015ff2565b92604051906200c5da8262003e7f565b6001825260203681840137516001600160a01b03166200c5fa8262005aab565b526000945b80518610156200c1b5576200c615868262005af1565b516103c0526200c626855162005c0d565b966000946200c636845162005c0d565b6108c05260009460005b88518110156200c709578a896200c6706001600160a01b036200c664858462005af1565b51166103c05162015f44565b15806200c6c0575b6200c691575b50506200c68b9062005a85565b6200c640565b986200c6b59162001f3582859c6200802e6200c68b9760018060a01b039262005af1565b9790508a896200c67e565b5050506127106103c051101562005ab9576001600160a01b036200c6e5828b62005af1565b5116600052620138966103c05160031b016020528a8960406000205415156200c678565b50909895979498969291939660005b88518110156200c7af576127106103c051101562005ab9576001600160a01b036200c744828b62005af1565b5116600052620138966103c05160031b01602052604060002054156200c776575b6200c7709062005a85565b6200c718565b996200c770906200c7a6906001600160a01b036200c7958e8d62005af1565b511662001f35826108c05162005af1565b9a90506200c765565b509850969592919093966103c051612710811015806101605262005ab95760031b620138970154986200c7e76200815f898c62014cf2565b610460526000610640526000610220525b6101605162005ab957610220518a8110156200c8c5576200c82f6200c84c91600061016052620138976103c05160031b0162005d10565b90546108c05160039290921b1c6001600160a01b03169062015f9d565b156200c86b575b6200c8616102205162005a85565b610220526200c7f8565b6000610160526200c88b61022051620138976103c05160031b0162005d10565b60018060a01b0391549060031b1c166200c8ac610640516104605162005af1565b526200c8bb6106405162005a85565b610640526200c853565b50979294959093985095909560005b8281106200c972575050506101605162005ab95761046051516001600160401b03811162003e14576200c91381620138976103c05160031b0162005e25565b60206104605101620138976103c05160031b01600052602060002060005b8381106200c95457505050506200c9489062005a85565b9492959091956200c5ff565b82516001600160a01b0316818301556020909201916001016200c931565b6200c9b8906001600160a01b036200c98b828562005af1565b51166200c99f610640516104605162005af1565b526200c9ae6106405162005a85565b6106405262005a85565b6200c8d4565b90926020810151602681101562003f7c576004036200cff75760400160c0936200c9fc6200c9f0868451015162005aab565b51958351015162005acf565b51906200ca1360a062007887818651015162005aab565b51936200ca288751845114620018986201637f565b6200ca3b8751855114620018986201637f565b6200ca4e8751865114620018986201637f565b60005b87518110156200caba576200ca67818662005af1565b519061271082101562005ab9576200cab49162013896906001600160a01b036200ca92848d62005af1565b511660005260031b016020526200189f60406000205462007de0838a62005af1565b6200ca51565b509095919593929360005b83518110156200cc21576200cadb818762005af1565b5161271081101562005ab95762013896906001600160a01b036200cb00848862005af1565b511660005260031b016020526200cb2260406000205462007e4d838862005af1565b906200cb2f838962005af1565b519161271083101562005ab9576200cb769262013896906001600160a01b036200cb5a878b62005af1565b511660005260031b016020526040600020556200189862016483565b6200cb82818762005af1565b5161271081101562005ab95762013896906001600160a01b036200cba7848c62005af1565b511660005260031b016020526200cbc960406000205462006f21838862005af1565b9190506200cbd8818862005af1565b519161271083101562005ab9576200cc1b9262013896906001600160a01b036200cc03858e62005af1565b511660005260031b0160205260406000205562005a85565b6200cac5565b5091936200cc3d91935062007f3e62008570919796976201610e565b6000945b80518610156200c1b5576200cc57868262005af1565b516107a0526200cc68855162005c0d565b966000946200cc78845162005c0d565b6107205260009460005b88518110156200cd4b578a896200ccb26001600160a01b036200cca6858462005af1565b51166107a05162015f44565b15806200cd02575b6200ccd3575b50506200cccd9062005a85565b6200cc82565b986200ccf79162001f3582859c6200802e6200cccd9760018060a01b039262005af1565b9790508a896200ccc0565b5050506127106107a051101562005ab9576001600160a01b036200cd27828b62005af1565b5116600052620138966107a05160031b016020528a8960406000205415156200ccba565b50909895979498969291939660005b88518110156200cdea576127106107a051101562005ab9576001600160a01b03806200cd87838c62005af1565b5116600052620138966107a05160031b01602052604060002054156200cdba575b506200cdb49062005a85565b6200cd5a565b819b6200cde2916200cdd16200cdb4948d62005af1565b511662001f35826107205162005af1565b9a906200cda8565b509850969592919093966107a051612710811015806101c05262005ab95760031b620138970154986200ce226200815f898c62014cf2565b6107c0526000610420526000610860525b6101c05162005ab957610860518a8110156200cefe576200ce6a6200ce8a9160006101c052620138976107a05160031b0162005d10565b9054610720516001600160a01b03939260031b9190911c83169062015f9d565b156200ceaa575b506200cea06108605162005a85565b610860526200ce33565b60006101c0526200ceca61086051620138976107a05160031b0162005d10565b90549060031b1c166200cee4610420516107c05162005af1565b526200cef36104205162005a85565b61042052386200ce91565b50979294959093985095909560005b8281106200cfab575050506101c05162005ab9576107c051516001600160401b03811162003e14576200cf4c81620138976107a05160031b0162005e25565b60206107c05101620138976107a05160031b01600052602060002060005b8381106200cf8d57505050506200cf819062005a85565b9492959091956200cc41565b82516001600160a01b0316818301556020909201916001016200cf6a565b6200cff1906001600160a01b036200cfc4828562005af1565b51166200cfd8610420516107c05162005af1565b526200cfe76104205162005a85565b6104205262005a85565b6200cf0d565b92906020840151602681101562003f7c576005036200d5a85760408401906200d02a60a0620085d9818551015162005aab565b519282518451036200d5565760005b83518110156200d095576200d04f818562005af1565b519061271082101562005ab957620138966200d08f9260018060a01b038a511660005260031b016020526200189f60406000205462007de0838962005af1565b6200d039565b509060005b83518110156200d13e576200d0b0818562005af1565b5161271081101562005ab957620138969060018060a01b0389511660005260031b016020526200d0eb60406000205462007e4d838862005af1565b91906200d0f9828762005af1565b519061271082101562005ab9576200d13893620138966200189f9360018060a01b038d511660005260031b016020526040600020556200189862016483565b6200d09a565b50916200d14f91949593506201610e565b92604051926200d15f8462003e7f565b6001845260203681860137516001600160a01b03166200d17f8462005aab565b52604051926200d18f8462003e9b565b6000845260003681376000945b80518610156200c1b5576200d1b2868262005af1565b51610240526200d1c3855162005c0d565b966000946200d1d3845162005c0d565b6108405260009460005b88518110156200d2a6578a896200d20d6001600160a01b036200d201858462005af1565b51166102405162015f44565b15806200d25d575b6200d22e575b50506200d2289062005a85565b6200d1dd565b986200d2529162001f3582859c6200802e6200d2289760018060a01b039262005af1565b9790508a896200d21b565b50505061271061024051101562005ab9576001600160a01b036200d282828b62005af1565b5116600052620138966102405160031b016020528a8960406000205415156200d215565b50909895979498969291939660005b88518110156200d34c5761271061024051101562005ab9576001600160a01b036200d2e1828b62005af1565b5116600052620138966102405160031b01602052604060002054156200d313575b6200d30d9062005a85565b6200d2b5565b996200d30d906200d343906001600160a01b036200d3328e8d62005af1565b511662001f35826108405162005af1565b9a90506200d302565b50985096959291909396610240516127108110158060a05262005ab95760031b620138970154986200d3836200815f898c62014cf2565b610780526000610320526000610340525b60a05162005ab957610340518a8110156200d45e576200d3c96200d3e691600060a052620138976102405160031b0162005d10565b90546108405160039290921b1c6001600160a01b03169062015f9d565b156200d405575b6200d3fb6103405162005a85565b610340526200d394565b600060a0526200d42461034051620138976102405160031b0162005d10565b60018060a01b0391549060031b1c166200d445610320516107805162005af1565b526200d4546103205162005a85565b610320526200d3ed565b50979294959093985095909560005b8281106200d50a5750505060a05162005ab95761078051516001600160401b03811162003e14576200d4ab81620138976102405160031b0162005e25565b60206107805101620138976102405160031b01600052602060002060005b8381106200d4ec57505050506200d4e09062005a85565b9492959091956200d19c565b82516001600160a01b0316818301556020909201916001016200d4c9565b6200d550906001600160a01b036200d523828562005af1565b51166200d537610320516107805162005af1565b526200d5466103205162005a85565b6103205262005a85565b6200d46d565b60405162461bcd60e51b81526020600482015260356024820152600080516020620168c9833981519152604482015274195b905b5bdd5b9d081a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b926020810151602681101562003f7c576006036200db9b576040016200d5d360c08251015162005aab565b51936200d5ea60a0620085d9818551015162005aab565b519285518351036200db495785518451036200dafc5760005b86518110156200d66c576200d619818562005af1565b519061271082101562005ab9576200d6669162013896906001600160a01b036200d644848c62005af1565b511660005260031b016020526200189f60406000205462007de0838962005af1565b6200d603565b509060005b86518110156200d712576200d687818562005af1565b5161271081101562005ab95762013896906001600160a01b036200d6ac848b62005af1565b511660005260031b016020526200d6ce60406000205462007e4d838862005af1565b91906200d6dc828762005af1565b519061271082101562005ab9576200d70c936200189f9262013896906001600160a01b036200cb5a878f62005af1565b6200d671565b50916200d72991935062008570909594956201610e565b91604051926200d7398462003e9b565b6000845260003681376000945b80518610156200c1b5576200d75c868262005af1565b51610400526200d76d855162005c0d565b966000946200d77d845162005c0d565b6101005260009460005b88518110156200d850578a896200d7b76001600160a01b036200d7ab858462005af1565b51166104005162015f44565b15806200d807575b6200d7d8575b50506200d7d29062005a85565b6200d787565b986200d7fc9162001f3582859c6200802e6200d7d29760018060a01b039262005af1565b9790508a896200d7c5565b50505061271061040051101562005ab9576001600160a01b036200d82c828b62005af1565b5116600052620138966104005160031b016020528a8960406000205415156200d7bf565b50909895979498969291939660005b88518110156200d8ef5761271061040051101562005ab9576001600160a01b03806200d88c838c62005af1565b5116600052620138966104005160031b01602052604060002054156200d8bf575b506200d8b99062005a85565b6200d85f565b819b6200d8e7916200d8d66200d8b9948d62005af1565b511662001f35826101005162005af1565b9a906200d8ad565b5098509695929190939661040051612710811015806104a05262005ab95760031b620138970154986200d9276200815f898c62014cf2565b6101405260006101e05260006104c0525b6104a05162005ab9576104c0518a8110156200da03576200d96f6200d98f9160006104a052620138976104005160031b0162005d10565b9054610100516001600160a01b03939260031b9190911c83169062015f9d565b156200d9af575b506200d9a56104c05162005a85565b6104c0526200d938565b60006104a0526200d9cf6104c051620138976104005160031b0162005d10565b90549060031b1c166200d9e96101e0516101405162005af1565b526200d9f86101e05162005a85565b6101e052386200d996565b50979294959093985095909560005b8281106200dab0575050506104a05162005ab95761014051516001600160401b03811162003e14576200da5181620138976104005160031b0162005e25565b60206101405101620138976104005160031b01600052602060002060005b8381106200da9257505050506200da869062005a85565b9492959091956200d746565b82516001600160a01b0316818301556020909201916001016200da6f565b6200daf6906001600160a01b036200dac9828562005af1565b51166200dadd6101e0516101405162005af1565b526200daec6101e05162005a85565b6101e05262005a85565b6200da12565b60405162461bcd60e51b81526020600482015260306024820152600080516020620169a983398151915260448201526f1b9d1cc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b60405162461bcd60e51b81526020600482015260356024820152600080516020620168698339815191526044820152741b90db185cdcd95cc81a5cc81b9bdd08195c5d585b605a1b6064820152608490fd5b602081949293940151602681101562003f7c576007036200dd3a57604001916200dbca60c08451015162005aab565b51916200dbdc60a08551015162005aab565b51935151916200dbf48451865114620018986201637f565b60005b84518110156200dd28576001600160a01b03806200dc16838862005af1565b511660005262027113806020526200dc3b60ff60406000205416156200189862016450565b60026200dc49848862005af1565b516200dcb36200dc5a868c62005af1565b519162008b478b604051966200dc708862003df8565b60018852886200dc978b60208b01946000865260408c0197885260608c01998a5262005af1565b511660005260205262008b3d604060002097511515886200655e565b519101556200dcc3828762005af1565b516202711454929116600160401b83101562003e14576001830180620271145583101562005ab957620271146000526000805160206201690983398151915290920180546001600160a01b0319169092179091556200dd229062005a85565b6200dbf7565b5094915092506200c1c7915062005a85565b6020810151602681101562003f7c576008036200de295760c060406200dd64920151015162005aab565b519160005b83518110156200de1a576200de14906001600160a01b03806200dd8d838862005af1565b51166000526202711390816020526200ddb7600160ff6040600020541615151462001898620163af565b806200ddc4848962005af1565b5116600052816020526200dde860ff60406000205460081c16156200189862016417565b6200ddf4838862005af1565b5116600052602052604060002061010061ff001982541617905562005a85565b6200dd69565b50926200c1c791925062005a85565b6020810151602681101562003f7c576009036200df095760c060406200de53920151015162005aab565b519160005b83518110156200de1a576200df03906001600160a01b03806200de7c838862005af1565b51166000526202711390816020526200dea6600160ff6040600020541615151462001898620163af565b806200deb3848962005af1565b5116600052816020526200dedb600160ff60406000205460081c1615151462001898620163e2565b6200dee7838862005af1565b5116600052602052604060002061ff0019815416905562005a85565b6200de58565b6020810151602681101562003f7c57600a036200dff257604001906200df4560a06200df3a60c08551015162005aab565b519351015162005aab565b51926200df5a8351855114620018986201637f565b60005b83518110156200dfe1576200dfdb906001600160a01b03806200df81838862005af1565b511660005262027113806020526200dfaa600160ff6040600020541615151462001898620163af565b6200dfb6838962005af1565b51916200dfc4848962005af1565b511660005260205260026040600020015562005a85565b6200df5d565b50939092506200c1c7915062005a85565b602081949392940151602681101562003f7c57600b036200e0d357604001926200e02160c08551015162005aab565b51935151916200e0398551845114620018986201637f565b60005b85518110156200e0c3576200e0bd906200189f6001600160a01b03806200e064848b62005af1565b511660005262027113806020526200e08d600160ff6040600020541615151462001898620163af565b6200e099848962005af1565b51916200e0a7858c62005af1565b511660005260205260016040600020016200648b565b6200e03c565b509350916200c1c7915062005a85565b9091926020820151602681101562003f7c57600c036200e217576060604083015101519260005b84518110156200dfe15760e06200e11a8260606040880151015162005af1565b510151156200e1a0576200e1426200e13b8260606040880151015162005af1565b5162006aad565b62027115548060001981011162005a95576200e16460059160001901620069f7565b5001805461ff0019166101001790556202711554906000198201821062005a9557600562008fa56200e19a9360001901620069f7565b6200e0fa565b6200e1bf6200e1b88260606040880151015162005af1565b5162006a89565b62027116548060001981011162005a95576200e1e160059160001901620069b5565b5001805461ff0019166101001790556202711654906000198201821062005a9557600562008fa56200e19a9360001901620069b5565b9291906020810151602681101562003f7c57600d036200e360576040019260206200e24760a08651015162005aab565b5194510151916200e25c855184511462014d99565b60005b85518110156200e0c357806200e27a6200e2f4928662005af1565b51156200e2fa576200e29e6200e291828962005af1565b5162027115541162014e22565b6200e2ca60ff60056200e2bd6200e2b6858c62005af1565b51620069f7565b50015460081c1662014e7a565b6200e2e260ff6005620091036200e2b6858c62005af1565b60056200911f6200e2b6838a62005af1565b6200e25f565b6200e3176200e30a828962005af1565b5162027116541162014e22565b6200e33660ff60056200e2bd6200e32f858c62005af1565b51620069b5565b6200e34e60ff6005620091036200e32f858c62005af1565b60056200911f6200e32f838a62005af1565b6020810151602681101562003f7c57600e036200e498576040019260206200e38d60a08651015162005aab565b5194510151916200e3a2855184511462014d99565b60005b85518110156200e0c357806200e3c06200e433928662005af1565b51156200e439576200e3e46200e3d7828962005af1565b5162027115541162014f3c565b6200e40960ff60056200e3fc6200e2b6858c62005af1565b50015460081c1662014f95565b6200e42160ff60056200925d6200e2b6858c62005af1565b600562008fa56200e2b6838a62005af1565b6200e3a5565b6200e4566200e449828962005af1565b5162027116541162014f3c565b6200e46e60ff60056200e3fc6200e32f858c62005af1565b6200e48660ff60056200925d6200e32f858c62005af1565b600562008fa56200e32f838a62005af1565b9091926020820151602681101562003f7c57600f036200e5ce576060604083015101519260005b84518110156200dfe15760e06200e4df8260606040880151015162005af1565b510151156200e55e576200e5006200e13b8260606040880151015162005af1565b62027115548060001981011162005a95576200e52260059160001901620069f7565b5001805461ff0019166101001790556202711554906000198201821062005a955760056200911f6200e5589360001901620069f7565b6200e4bf565b6200e5766200e1b88260606040880151015162005af1565b62027116548060001981011162005a95576200e59860059160001901620069b5565b5001805461ff0019166101001790556202711654906000198201821062005a955760056200911f6200e5589360001901620069b5565b9291906020810151602681101562003f7c576010036200e7175760400151926200e60160a0608086015195015162005aab565b51916200e6168551845114620018986201637f565b60005b85518110156200e0c357806200e6346200e6aa928862005af1565b516200e6408162004dc4565b6200e64c828762005af1565b51906200e6598162004dc4565b6200e6706200e667620164b2565b82151562005a52565b6200e67b8162004dc4565b600181036200e6b057506200e69f6200e693620164b2565b61271083111562005a52565b6202711e5562005a85565b6200e619565b6200e6bb8162004dc4565b600281036200e6d057506202711f5562005a85565b6200e6db8162004dc4565b600381036200e6f05750620271205562005a85565b806200e6fe60049262004dc4565b146200e70b575062005a85565b6202712155386200a431565b6020810151602681101562003f7c576011036200e9bd57604001906200e74860a06200df3a60c08551015162005aab565b51936200e759835186511462014ca6565b60005b83518110156200e7da576200e7d4906200e7b46001600160a01b03806200e784848962005af1565b51166000526202711890816020526200e7a860406000205462006f21868d62005af1565b93906200189862016335565b6200e7c0848962005af1565b511660005260205260406000205562005a85565b6200e75c565b509350906200e7e99062015ff2565b906202711954936200e8016200815f84518762014cf2565b9060009260005b8781106200e97d575060005b85518110156200e8c9576000805b8981106200e87a575b50156200e844575b6200e83e9062005a85565b6200e814565b936200e83e906200e871906001600160a01b036200e863888a62005af1565b511662001f35828862005af1565b9490506200e833565b6200e8858162005cd6565b90546001600160a01b0360039290921b1c8116906200e8a5858b62005af1565b5116146200e8be576200e8b89062005a85565b6200e822565b50506001386200e82b565b5095509392506200e8da8262005c0d565b8051906001600160401b03821162003e14576020906200e8fa8362005dc9565b0162027119600052602060002060005b8381106200e95f575050505060005b8281106200e92f575050506200c1c79062005a85565b6200e959906200189f6001600160a01b036200e94c838662005af1565b511662001e708362005cd6565b6200e919565b82516001600160a01b0316818301556020909201916001016200e90a565b936200e9b06200e9b7916200e9928762005cd6565b905460039190911b1c6001600160a01b031662001f35828862005af1565b9462005a85565b6200e808565b6020819492940151602681101562003f7c576012036200ec0557604001906200e9f160a06200df3a60c08551015162005aab565b51936200ea02835186511462014ca6565b60005b83518110156200ea57576200ea51906200e7b46001600160a01b03806200ea2d848962005af1565b51166000526202711890816020526200e7a860406000205462007e4d868d62005af1565b6200ea05565b50935091906200ea679062015ff2565b62027119546200ea778162005c0d565b906000926000915b8083106200eb2b575050506200ea958262005c0d565b8051906001600160401b03821162003e14576020906200eab58362005dc9565b0162027119600052602060002060005b8381106200eb0d575050505060005b8281106200eaea575050506200c1c79062005a85565b6200eb07906200189f6001600160a01b036200e94c838662005af1565b6200ead4565b82516001600160a01b0316818301556020909201916001016200eac5565b91956000959193959760005b85518110156200ebf6576200eb4c8962005cd6565b90546001600160a01b0360039290921b1c8116906200eb6c838962005af1565b5116146200eb85576200eb7f9062005a85565b6200eb37565b509750956001959391955b806200ebc4575b156200ebaf576200eba89062005a85565b916200ea7f565b936200e9b06200eba8916200e9928762005cd6565b506200ebd08162005cd6565b60018060a01b0391549060031b1c1660005262027118602052604060002054156200eb97565b5097969096959391956200eb90565b6020819493940151602681101562003f7c576013036200eca95760408091015101519160005b83518110156200de1a576200ec41818562005af1565b51906202711754600160401b81101562003e14576001810180620271175581101562005ab957620271176000526200eca3926200189f916007027f08f37177f6a5732df494aeff73d589b534878a053b84dfe1e41c467868b7c9fd01620157d7565b6200ec2b565b602081949392940151602681101562003f7c576014036200f1f657604001906200ecd860c08351015162005aab565b51936200ecef60a062007887818651015162005aab565b51916200ed0086518551146201505a565b6200ed0f8651845114620150c0565b60005b86518110156200ee0d576200ed28818562005af1565b516200ed35828762005af1565b519061271082101562005ab957620138996200ed579260031b01549062006ce3565b906200ed64838862005af1565b519161271083101562005ab957620138996200ed859360031b01556201517a565b6200ed91818562005af1565b516200ed9e828762005af1565b519061271082101562005ab9576200edc99162013896906001600160a01b036200bd65868d62005af1565b91906200edd7828862005af1565b519061271082101562005ab9576200ee07936200189f9262013896906001600160a01b036200bdbc878f62005af1565b6200ed12565b50926200ee2491925062008570909594956201610e565b916040516200ee338162003e9b565b6000815260003681376000945b80518610156200c1b5576200ee56868262005af1565b51610740526200ee67855162005c0d565b966000946200ee77845162005c0d565b6105e05260009460005b88518110156200ef4a578a896200eeb16001600160a01b036200eea5858462005af1565b51166107405162015f44565b15806200ef01575b6200eed2575b50506200eecc9062005a85565b6200ee81565b986200eef69162001f3582859c6200802e6200eecc9760018060a01b039262005af1565b9790508a896200eebf565b50505061271061074051101562005ab9576001600160a01b036200ef26828b62005af1565b5116600052620138966107405160031b016020528a8960406000205415156200eeb9565b50909895979498969291939660005b88518110156200efe95761271061074051101562005ab9576001600160a01b03806200ef86838c62005af1565b5116600052620138966107405160031b01602052604060002054156200efb9575b506200efb39062005a85565b6200ef59565b819b6200efe1916200efd06200efb3948d62005af1565b511662001f35826105e05162005af1565b9a906200efa7565b5098509695929190939661074051612710811015806101805262005ab95760031b620138970154986200f0216200815f898c62014cf2565b6105005260006105c0526000610820525b6101805162005ab957610820518a8110156200f0fd576200f0696200f08991600061018052620138976107405160031b0162005d10565b90546105e0516001600160a01b03939260031b9190911c83169062015f9d565b156200f0a9575b506200f09f6108205162005a85565b610820526200f032565b6000610180526200f0c961082051620138976107405160031b0162005d10565b90549060031b1c166200f0e36105c0516105005162005af1565b526200f0f26105c05162005a85565b6105c052386200f090565b50979294959093985095909560005b8281106200f1aa575050506101805162005ab95761050051516001600160401b03811162003e14576200f14b81620138976107405160031b0162005e25565b60206105005101620138976107405160031b01600052602060002060005b8381106200f18c57505050506200f1809062005a85565b9492959091956200ee40565b82516001600160a01b0316818301556020909201916001016200f169565b6200f1f0906001600160a01b036200f1c3828562005af1565b51166200f1d76105c0516105005162005af1565b526200f1e66105c05162005a85565b6105c05262005a85565b6200f10c565b926020840151602681101562003f7c576015036200f8035760408401906200f22360c08351015162005aab565b51906200f23a60a062007887818651015162005aab565b51936200f24f8351855114620018986201637f565b6200f2628351865114620018986201637f565b60005b83518110156200f2c1576200f27b818662005af1565b519061271082101562005ab957620138966200f2bb9260018060a01b038b511660005260031b016020526200189f60406000205462007de0838a62005af1565b6200f265565b509095919560005b87518110156200f3f7576200f2df818662005af1565b5161271081101562005ab957620138969060018060a01b0386511660005260031b016020526200f31a60406000205462007e4d838962005af1565b906200f327838862005af1565b519161271083101562005ab957620138966200f3619360018060a01b0389511660005260031b016020526040600020556200189862016483565b6200f36d818662005af1565b5161271081101562005ab95762013896906001600160a01b036200f392848c62005af1565b511660005260031b016020526200f3b460406000205462006f21838962005af1565b91906200f3c2828862005af1565b519061271082101562005ab9576200f3f193620138966200189f938d6200c5898760018060a01b039262005af1565b6200f2c9565b50926200f40f919294506200c5c3909695966201610e565b92604051906200f41f8262003e7f565b6001825260203681840137516001600160a01b03166200f43f8262005aab565b526000945b80518610156200c1b5576200f45a868262005af1565b51610200526200f46b855162005c0d565b966000946200f47b845162005c0d565b6107605260009460005b88518110156200f54e578a896200f4b56001600160a01b036200f4a9858462005af1565b51166102005162015f44565b15806200f505575b6200f4d6575b50506200f4d09062005a85565b6200f485565b986200f4fa9162001f3582859c6200802e6200f4d09760018060a01b039262005af1565b9790508a896200f4c3565b50505061271061020051101562005ab9576001600160a01b036200f52a828b62005af1565b5116600052620138966102005160031b016020528a8960406000205415156200f4bd565b50909895979498969291939660005b88518110156200f5f45761271061020051101562005ab9576001600160a01b036200f589828b62005af1565b5116600052620138966102005160031b01602052604060002054156200f5bb575b6200f5b59062005a85565b6200f55d565b996200f5b5906200f5eb906001600160a01b036200f5da8e8d62005af1565b511662001f35826107605162005af1565b9a90506200f5aa565b5098509695929190939661020051612710811015806102605262005ab95760031b620138970154986200f62c6200815f898c62014cf2565b6104805260006105805260006102a0525b6102605162005ab9576102a0518a8110156200f70a576200f6746200f69191600061026052620138976102005160031b0162005d10565b90546107605160039290921b1c6001600160a01b03169062015f9d565b156200f6b0575b6200f6a66102a05162005a85565b6102a0526200f63d565b6000610260526200f6d06102a051620138976102005160031b0162005d10565b60018060a01b0391549060031b1c166200f6f1610580516104805162005af1565b526200f7006105805162005a85565b610580526200f698565b50979294959093985095909560005b8281106200f7b7575050506102605162005ab95761048051516001600160401b03811162003e14576200f75881620138976102005160031b0162005e25565b60206104805101620138976102005160031b01600052602060002060005b8381106200f79957505050506200f78d9062005a85565b9492959091956200f444565b82516001600160a01b0316818301556020909201916001016200f776565b6200f7fd906001600160a01b036200f7d0828562005af1565b51166200f7e4610580516104805162005af1565b526200f7f36105805162005a85565b6105805262005a85565b6200f719565b9091926020810151602681101562003f7c576016036200f8b85760c060406200f830920151015162005aab565b519160005b83518110156200de1a576001600160a01b036200f853828662005af1565b516202712254929116600160401b83101562003e14576001830180620271225583101562005ab957620271226000526000805160206201688983398151915290920180546001600160a01b0319169092179091556200f8b29062005a85565b6200f835565b6020810151602681101562003f7c576017036200f9155760405162461bcd60e51b81526020600482015260296024820152600080516020620169698339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c576018036200f9d85760c060406200f93f920151015162005aab565b5191600160ff1962027125541617620271255560005b83518110156200de1a576001600160a01b036200f973828662005af1565b516202712454929116600160401b83101562003e14576001830180620271245583101562005ab957620271246000526000805160206201692983398151915290920180546001600160a01b0319169092179091556200f9d29062005a85565b6200f955565b602081949293940151602681101562003f7c576019036200fa00575b506200c1c79062005a85565b6020810151602681101562003f7c57601a036200fb7b5760a060406200fa2a920151015162005aab565b51906200fa3b600383511462014ca6565b6200fa468262005aab565b516200fa566200a3c88462005acf565b51926200fb3f576200c1c7926001036200fb38576200fa7e6200fadd91620271205462006ce3565b6202712055604051906200fa928262003e63565b603282527f6469766964656e6461626c652062616c616e6365206f766572666c6f772077686020830152710cadc40e0e4dec6cae6e6d2dcce40c6c2e6d60731b604083015262005a52565b6200fb316200faf0620271215462006cd0565b6202712155604051906200fb048262003e7f565b601a8252796469766964656e647320636f756e746572206f766572666c6f7760301b602083015262005a52565b906200f9f4565b506200fb31565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c6964207061796d656e74207479706560601b6044820152606490fd5b6020810151602681101562003f7c57601b036201017e575091906202711e546200fba86200a4a76201620c565b62027121546202711f5411156200fbc96200fbc26201627a565b8262005a52565b6202712054906200fbdb838362006b9b565b50506200fbe7620162d0565b506000805b6127108210620100d2575b5050906200fc276200fc2d93926200fc1d6200fc126201620c565b612710861062005a52565b620018986201627a565b62006b9b565b90506200fc39620162d0565b5060009060005b61271081106200fffa575b50906127106200fc5c920462006d71565b90506200fc6d6202712a5462005c0d565b906000946000905b6127108210156200ffed578160031b9460ff6201389a87015416156200fdd35760009662013895870154156200fdc257600098975b62005ab957620138978701548910156200fda8576200fccf8962013897890162005d10565b600160a01b6001900391549060031b1c169788600052620138968801602052604098868a60002054906200fd039162006b9b565b9a906200fd0f620162d0565b6200fd1a9162005a52565b60009a620138958b01546200fd2f9162006b9b565b906200fd3a620162d0565b6200fd459162005a52565b826000526202711a6020528160002054906200fd619162006ce3565b9091600020556200fd71620162d0565b6200fd7c9162005a52565b6200fd88828962005af1565b526200fd949062005a85565b986200fda09062005a85565b98976200fcaa565b929095506200fdba9196975062005a85565b90946200fc75565b929095506200fdba91965062005a85565b95969392509350505b6200fde78262005c0d565b9160009160005b8281106200ff57575050506202711b54916200fe0f6200815f848462014cf2565b926000906000905b8082106200ff3a57505060005b8381106200fea45750508251929150506001600160401b03821162003e14576020906200fe518362005ded565b016202711b600052602060002060005b8381106200fe8657505050506200c1c79060006202712055600062027121556200fb31565b82516001600160a01b0316818301556020909201916001016200fe61565b6000805b8381106200fef2575b50156200feca575b6200fec49062005a85565b6200fe24565b906200fec4906200fee9906001600160a01b03620082e7858762005af1565b9190506200feb9565b6001600160a01b03806200ff07858862005af1565b5116906200ff16838a62005af1565b5116146200ff2f576200ff299062005a85565b6200fea8565b50506001386200feb1565b9091620082f56200ff5091620098cd8562005cf3565b906200fe17565b6000805b8581106200ffa5575b50156200ff7d575b6200ff779062005a85565b6200fdee565b926200ff77906200ff9c906001600160a01b03620082e7878662005af1565b9390506200ff6c565b6001600160a01b03806200ffba858762005af1565b5116906200ffc9838a62005af1565b5116146200ffe2576200ffdc9062005a85565b6200ff5b565b50506001386200ff64565b939495929150506200fddc565b90918160039695961b60ff6201389a8201541615620100c65762013895810154620138978201546000928391825b818410620100645750505050620076dc6201005b93620100536200189f979694620036389462006b9b565b929062006ad1565b9493946200fc40565b94929462005ab957620100bf85620100b76201008a6200189f9862013897870162005d10565b905460039190911b1c6001600160a01b031660009081526201389686016020526040812054909662006ce3565b979062006bbd565b9262010028565b5091909493946200fc4b565b8160039897981b60ff6201389a820154161562010174576201389581015490600062013897820154916000926000925b8184106201013f5750505050620076dc62010135936200a8d1846200fc276200355e6200a8dd966200189f9a9862006b9b565b909695966200fbec565b93929362005ab9576201016d84620101656201008a6200189f9762013897870162005d10565b969062006bbd565b9262010102565b509695966200fbf7565b6020810151602681101562003f7c57601c03620101db5760405162461bcd60e51b81526020600482015260296024820152600080516020620169898339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c57601d03620101ff575b506200c1c7906200fb31565b6020810151602681101562003f7c57601e14620101f3576020810151602681101562003f7c57601f03620102925760406201023d9101515162005aab565b51906202712354600160401b81101562003e14576001810180620271235581101562005ab957620271236000526200c1c7926201028b91600080516020620168a9833981519152016200648b565b90620101f3565b6020810151602681101562003f7c57602003620102b6575b506200c1c7906201028b565b6020810151602681101562003f7c57602114620102aa576020810151602681101562003f7c576022036201034157506200c1c79060ff1962027125541662027125556202712454600062027124558062010314575b505b90620102aa565b620271246000526201033a90600080516020620169298339815191529081019062005d29565b386201030b565b6020810151602681101562003f7c5760230362010365575b506200c1c7906201030d565b6020810151602681101562003f7c5760241462010359576020810151602681101562003f7c5760251462010359579290916020840151602681101562003f7c57601503620109b5576040840190620103c260c08351015162005aab565b5190620103d960a062007887818651015162005aab565b5193620103ee8351855114620018986201637f565b620104018351865114620018986201637f565b60005b835181101562010460576201041a818662005af1565b519061271082101562005ab957620138966201045a9260018060a01b038b511660005260031b016020526200189f60406000205462007de0838a62005af1565b62010404565b509095919560005b875181101562010596576201047e818662005af1565b5161271081101562005ab957620138969060018060a01b0386511660005260031b01602052620104b960406000205462007e4d838962005af1565b90620104c6838862005af1565b519161271083101562005ab95762013896620105009360018060a01b0389511660005260031b016020526040600020556200189862016483565b6201050c818662005af1565b5161271081101562005ab95762013896906001600160a01b0362010531848c62005af1565b511660005260031b016020526201055360406000205462006f21838962005af1565b919062010561828862005af1565b519061271082101562005ab9576201059093620138966200189f938d6200c5898760018060a01b039262005af1565b62010468565b5092620105ae919294506200c5c3909695966201610e565b9260405190620105be8262003e7f565b6001825260203681840137516001600160a01b0316620105de8262005aab565b526000945b8051861015620109a257620105f9868262005af1565b516101a0526201060a855162005c0d565b966000946201061a845162005c0d565b6103e05260009460005b8851811015620106ed578a89620106546001600160a01b0362010648858462005af1565b51166101a05162015f44565b1580620106a4575b62010675575b50506201066f9062005a85565b62010624565b98620106999162001f3582859c6200802e6201066f9760018060a01b039262005af1565b9790508a8962010662565b5050506127106101a051101562005ab9576001600160a01b03620106c9828b62005af1565b5116600052620138966101a05160031b016020528a8960406000205415156201065c565b50909895979498969291939660005b885181101562010793576127106101a051101562005ab9576001600160a01b0362010728828b62005af1565b5116600052620138966101a05160031b01602052604060002054156201075a575b620107549062005a85565b620106fc565b9962010754906201078a906001600160a01b03620107798e8d62005af1565b511662001f35826103e05162005af1565b9a905062010749565b509850969592919093966101a051612710811015806106a05262005ab95760031b62013897015498620107cb6200815f898c62014cf2565b6101205260006106e05260006102e0525b6106a05162005ab9576102e0518a811015620108a95762010813620108309160006106a052620138976101a05160031b0162005d10565b90546103e05160039290921b1c6001600160a01b03169062015f9d565b156201084f575b620108456102e05162005a85565b6102e052620107dc565b60006106a0526201086f6102e051620138976101a05160031b0162005d10565b60018060a01b0391549060031b1c16620108906106e0516101205162005af1565b526201089f6106e05162005a85565b6106e05262010837565b50979294959093985095909560005b82811062010956575050506106a05162005ab95761012051516001600160401b03811162003e1457620108f781620138976101a05160031b0162005e25565b60206101205101620138976101a05160031b01600052602060002060005b8381106201093857505050506201092c9062005a85565b949295909195620105e3565b82516001600160a01b03168183015560209092019160010162010915565b6201099c906001600160a01b036201096f828562005af1565b5116620109836106e0516101205162005af1565b52620109926106e05162005a85565b6106e05262005a85565b620108b8565b5050939092506200c1c791509062010359565b60405162461bcd60e51b8152602060048201526016602482015275496e76616c6964206f7065726174696f6e207479706560501b6044820152606490fd5b5091905062010a028162014179565b90600681101562003f7c576002810362010a315760405162461bcd60e51b81528062005a81600482016200774f565b6003810362010ae45750303b1562003dde57906040518092630e8af36360e31b82526044820160406004840152815180915260206064840192019060005b81811062010aca5750505062010a958291600094600319848303016024850152620054e0565b038183305af1801562010abe5762010aaa5750565b6001600160401b03811162003e1457604052565b6040513d6000823e3d90fd5b825184528694506020938401939092019160010162010a6f565b600591501462010af15750565b906000905b602083015180518310156200b0cf578262010b119162005af1565b516020810151602681101562003f7c57156200b08c576020810151602681101562003f7c5760010362010d59576040019062010b5260c08351015162005aab565b519362010b6960a062007887818651015162005aab565b519162010b7a86518551146201505a565b62010b898651845114620150c0565b60005b865181101562010ce05762010ba2818662005af1565b5161271081101562005ab957600160ff600762010bc89360031b01541615151462015122565b62010bd4818562005af1565b5162010be1828762005af1565b519061271082101562005ab957600662010c019260031b01549062006ce3565b9062010c0e838862005af1565b519161271083101562005ab957600662010c2d9360031b01556201517a565b62010c39818562005af1565b5162010c46828762005af1565b519061271082101562005ab95762010c87916003906001600160a01b0362010c6f868d62005af1565b5116600052811b016020526040600020549062006ce3565b919062010c95828862005af1565b519061271082101562005ab95762010cda936200189f926003906001600160a01b0362010cc3878f62005af1565b5116600052811b01602052604060002055620151d9565b62010b8c565b509491509162010cf462010cfb916201610e565b9162015ff2565b936040519262010d0b8462003e9b565b60008452600036813760005b835181101562010d3c57806200189f62007a4e62010d36938762005af1565b62010d17565b509450926020925062010d50915062005a85565b91905062010af6565b602081949293940151602681101562003f7c5760020362010ff15760400180519283519062010d9162007aae60a08097015162005aab565b5193825186510362010f9c57825184510362010f4657825185510362010eed5760005b865181101562010ed75762010dca818862005af1565b5161271081101562005ab95760ff600762010dec9260031b0154161562015232565b62010df8818862005af1565b5161271081101562005ab95760031b600701805460ff1916600117905562010e21818562005af1565b5162010e2e828962005af1565b519061271082101562005ab957600562010e4c9260031b016200648b565b62010e58818662005af1565b5162010e65828962005af1565b5161271081101562005ab95760031b6001015562010e84818762005af1565b5162010e91828962005af1565b5161271081101562005ab95760031b6002015562010eb0818862005af1565b519061271082101562005ab9576000600662010ed19360031b015562005a85565b62010db4565b5095915093506020925062010d50915062005a85565b60405162461bcd60e51b815260206004820152603c6024820152600080516020620168e983398151915260448201527b1b911a5d9a59195b9915d95a59da1d081a5cc81b9bdd08195c5d585b60221b6064820152608490fd5b60405162461bcd60e51b81526020600482015260396024820152600080516020620168e98339815191526044820152781b959bdd1a5b99d41bddd95c881a5cc81b9bdd08195c5d585b603a1b6064820152608490fd5b60405162461bcd60e51b81526020600482015260386024820152600080516020620168e98339815191526044820152771b925b99195e105c9c985e481a5cc81b9bdd08195c5d585b60421b6064820152608490fd5b92916020840151602681101562003f7c57600303620115f55760408401906201101f60c08351015162005aab565b51906201103660a062007887818651015162005aab565b51936201104b8351855114620018986201637f565b6201105e8351865114620018986201637f565b60005b8351811015620110ba5762011077818662005af1565b519061271082101562005ab9576003620110b49260018060a01b038b5116600052811b016020526200189f60406000205462007de0838a62005af1565b62011061565b509095919560005b8751811015620111e557620110d8818662005af1565b5161271081101562005ab95760039060018060a01b03865116600052811b016020526201111060406000205462007e4d838962005af1565b906201111d838862005af1565b519161271083101562005ab9576003620111549360018060a01b03895116600052811b016020526040600020556200189862016483565b62011160818662005af1565b5161271081101562005ab9576003906001600160a01b0362011183848c62005af1565b5116600052811b01602052620111a460406000205462006f21838962005af1565b9190620111b2828862005af1565b519061271082101562005ab957620111df9360036200189f938d62007f068760018060a01b039262005af1565b620110c2565b5092620111fd919294506200c5c3909695966201610e565b92604051906201120d8262003e7f565b6001825260203681840137516001600160a01b03166201122d8262005aab565b526000945b8051861015620115e15762011248868262005af1565b516103605262011259855162005c0d565b9660009462011269845162005c0d565b6106205260009460005b885181101562011339578a89620112a36001600160a01b0362011297858462005af1565b51166103605162015edb565b1580620112f3575b620112c4575b5050620112be9062005a85565b62011273565b98620112e89162001f3582859c6200802e620112be9760018060a01b039262005af1565b9790508a89620112b1565b50505061271061036051101562005ab9576001600160a01b0362011318828b62005af1565b5116600052600361036051811b016020528a896040600020541515620112ab565b50909895979498969291939660005b8851811015620113dc5761271061036051101562005ab9576001600160a01b0362011374828b62005af1565b5116600052600361036051811b0160205260406000205415620113a3575b6201139d9062005a85565b62011348565b996201139d90620113d3906001600160a01b03620113c28e8d62005af1565b511662001f35826106205162005af1565b9a905062011392565b5098509695929190939661036051612710811015806105a05262005ab95760031b6004015498620114126200815f898c62014cf2565b610700526000610520526000610680525b6105a05162005ab957610680518a811015620114ec5762011458620114759160006105a05260046103605160031b0162005d10565b90546106205160039290921b1c6001600160a01b03169062015f9d565b1562011494575b6201148a6106805162005a85565b6106805262011423565b60006105a052620114b26106805160046103605160031b0162005d10565b60018060a01b0391549060031b1c16620114d3610520516107005162005af1565b52620114e26105205162005a85565b610520526201147c565b50979294959093985095909560005b82811062011595575050506105a05162005ab95761070051516001600160401b03811162003e1457620115388160046103605160031b0162005e25565b6020610700510160046103605160031b01600052602060002060005b8381106201157757505050506201156b9062005a85565b94929590919562011232565b82516001600160a01b03168183015560209092019160010162011554565b620115db906001600160a01b03620115ae828562005af1565b5116620115c2610520516107005162005af1565b52620115d16105205162005a85565b6105205262005a85565b620114fb565b50509362010d509193506020925062005a85565b90926020810151602681101562003f7c576004036201189f576201162160c06040830151015162005aab565b51936201163660c06040840151015162005acf565b51906201165d60a06040620116518282880151015162005aab565b51950151015162005acf565b5193620116728751845114620018986201637f565b620116858751855114620018986201637f565b620116988751865114620018986201637f565b60005b87518110156201170157620116b1818662005af1565b519061271082101562005ab957620116fb916003906001600160a01b03620116da848d62005af1565b5116600052811b016020526200189f60406000205462007de0838a62005af1565b6201169b565b509095919593929360005b83518110156201185c5762011722818762005af1565b5161271081101562005ab9576003906001600160a01b0362011745848862005af1565b5116600052811b016020526201176660406000205462007e4d838862005af1565b9062011773838962005af1565b519161271083101562005ab957620117b7926003906001600160a01b036201179c878b62005af1565b5116600052811b016020526040600020556200189862016483565b620117c3818762005af1565b5161271081101562005ab9576003906001600160a01b03620117e6848c62005af1565b5116600052811b016020526201180760406000205462006f21838862005af1565b91905062011816818862005af1565b519161271083101562005ab95762011856926003906001600160a01b036201183f858e62005af1565b5116600052811b0160205260406000205562005a85565b6201170c565b50936201187691929693506200857062007f3e916201610e565b9260005b835181101562010d3c57806200189f62007a4e62011899938762005af1565b6201187a565b926020840151602681101562003f7c5760050362011a5d576040840190620118d160a0620085d9818551015162005aab565b519282518451036200d5565760005b83518110156201193957620118f6818562005af1565b519061271082101562005ab9576003620119339260018060a01b038a5116600052811b016020526200189f60406000205462007de0838962005af1565b620118e0565b509060005b8351811015620119dc5762011954818562005af1565b5161271081101562005ab95760039060018060a01b03895116600052811b016020526201198c60406000205462007e4d838862005af1565b91906201199a828762005af1565b519061271082101562005ab957620119d69360036200189f9360018060a01b038d5116600052811b016020526040600020556200189862016483565b6201193e565b5094925090620119ec906201610e565b9060405192620119fc8462003e7f565b6001845260203681860137516001600160a01b031662011a1c8462005aab565b526040519462011a2c8662003e9b565b60008652600036813760005b835181101562010d3c57806200189f62007a4e62011a57938762005af1565b62011a38565b926020810151602681101562003f7c5760060362011c155760400162011a8860c08251015162005aab565b519362011a9f60a0620085d9818551015162005aab565b519285518351036200db495785518451036200dafc5760005b865181101562011b1e5762011ace818562005af1565b519061271082101562005ab95762011b18916003906001600160a01b0362011af7848c62005af1565b5116600052811b016020526200189f60406000205462007de0838962005af1565b62011ab8565b509060005b865181101562011bbf5762011b39818562005af1565b5161271081101562005ab9576003906001600160a01b0362011b5c848b62005af1565b5116600052811b0160205262011b7d60406000205462007e4d838862005af1565b919062011b8b828762005af1565b519061271082101562005ab95762011bb9936200189f926003906001600160a01b036201179c878f62005af1565b62011b23565b50949162011bd491935062010cf4906201610e565b916040519462011be48662003e9b565b60008652600036813760005b835181101562010d3c57806200189f62007a4e62011c0f938762005af1565b62011bf0565b6020810151602681101562003f7c5760070362011d28576040019262011c4060c08551015162005aab565b519162011c5260a08651015162005aab565b519451519162011c6a8451875114620018986201637f565b60005b845181101562010d3c5762011d22906200189f6001600160a01b038062011c95848a62005af1565b51166000528660028b62011d1262011cd58762011ccd8162013880978860205262008ae360ff60406000205416156200189862016450565b519362005af1565b519162008b478d6040519662011ceb8862003df8565b60018852886200dc978c60208b01946000865260408c0197885260608c01998a5262005af1565b5191015562008b62838962005af1565b62011c6d565b6020819493940151602681101562003f7c5760080362011dc05760c0604062011d55920151015162005aab565b519160005b835181101562011dae5762011da8906001600160a01b038062011d7e838862005af1565b51166000526201388090816020526200ddb7600160ff6040600020541615151462001898620163af565b62011d5a565b5092602091925062010d509062005a85565b6020810151602681101562003f7c5760090362011e435760c0604062011dea920151015162005aab565b519160005b835181101562011dae5762011e3d906001600160a01b038062011e13838862005af1565b51166000526201388090816020526200dea6600160ff6040600020541615151462001898620163af565b62011def565b6020810151602681101562003f7c57600a0362011ef2576040019062011e7460a06200df3a60c08551015162005aab565b519262011e898351855114620018986201637f565b60005b835181101562011edf5762011ed9906001600160a01b038062011eb0838862005af1565b511660005262013880806020526200dfaa600160ff6040600020541615151462001898620163af565b62011e8c565b509362010d509193506020925062005a85565b602081949392940151602681101562003f7c57600b0362011fa6576040019262011f2160c08551015162005aab565b519351519162011f398551845114620018986201637f565b60005b855181101562011f935762011f8d906200189f6001600160a01b038062011f64848b62005af1565b511660005262013880806020526200e08d600160ff6040600020541615151462001898620163af565b62011f3c565b509350916020915062010d509062005a85565b9091926020820151602681101562003f7c57600c03620120dc576060604083015101519260005b845181101562011edf5760e062011fed8260606040880151015162005af1565b510151156201206c576201200e62008f508260606040880151015162005af1565b62013882548060001981011162005a95576201203060059160001901620069d6565b5001805461ff0019166101001790556201388254906000198201821062005a9557600562008fa5620120669360001901620069d6565b62011fcd565b6201208462008fcf8260606040880151015162005af1565b62013882548060001981011162005a9557620120a66005916000190162006994565b5001805461ff0019166101001790556201388254906000198201821062005a9557600562008fa562012066936000190162006994565b9291906020810151602681101562003f7c57600d03620121f0576040019260206201210c60a08651015162005aab565b51945101519162012121855184511462014d99565b60005b855181101562011f9357806201213f62012198928662005af1565b51156201219e5762012156620090c8828962005af1565b6201216e60ff60056200e2bd620090ea858c62005af1565b6201218660ff600562009103620090ea858c62005af1565b60056200911f620090ea838a62005af1565b62012124565b620121ae62009157828962005af1565b620121c660ff60056200e2bd62009179858c62005af1565b620121de60ff60056200910362009179858c62005af1565b60056200911f62009179838a62005af1565b6020819492940151602681101562003f7c57600e03620122b7576040019060206201222060a08451015162005aab565b51925101519362012235835186511462014d99565b60005b835181101562011f935780620122536201225f928862005af1565b51620122655762005a85565b62012238565b6201227562009215828762005af1565b6201228d60ff60056200e3fc620090ea858a62005af1565b620122a560ff60056200925d620090ea858a62005af1565b600562008fa5620090ea838862005af1565b906020829493940151602681101562003f7c57600f03620123ee576060604083015101519260005b845181101562011edf5760e0620122ff8260606040880151015162005af1565b510151156201237e576201232062008f508260606040880151015162005af1565b62013882548060001981011162005a95576201234260059160001901620069d6565b5001805461ff0019166101001790556201388254906000198201821062005a955760056200911f620123789360001901620069d6565b620122df565b6201239662008fcf8260606040880151015162005af1565b62013882548060001981011162005a9557620123b86005916000190162006994565b5001805461ff0019166101001790556201388254906000198201821062005a955760056200911f62012378936000190162006994565b906020819493940151602681101562003f7c576010036201245f5760400151906201242260a0608084015193015162005aab565b5193620124378351865114620018986201637f565b60005b835181101562011f9357806200189f620093ff62012459938762005af1565b6201243a565b6020819492940151602681101562003f7c57601103620126c457604001906201249360a06200df3a60c08551015162005aab565b5193620124a4835186511462014ca6565b60005b83518110156201251f5762012519906200189f6001600160a01b0380620124cf848962005af1565b51166000526201388580602052620124f260406000205462006f21868d62005af1565b91909262012501868b62005af1565b51166000526020526040600020556200189862016335565b620124a7565b509350906201252e9062015ff2565b90620138865493620125466200815f84518762014cf2565b9060009260005b878110620126a9575060005b855181101562012600576000805b898110620125b1575b501562012589575b620125839062005a85565b62012559565b936201258390620125a8906001600160a01b036200e863888a62005af1565b94905062012578565b620125bc8162005c62565b90546001600160a01b0360039290921b1c811690620125dc858b62005af1565b511614620125f557620125ef9062005a85565b62012567565b505060013862012570565b509550939250620126118262005c0d565b8051906001600160401b03821162003e1457602090620126318362005d7e565b0162013886600052602060002060005b8381106201268b575050505060005b828110620126685750505062010d5060209162005a85565b62012685906200189f6001600160a01b0362001e63838662005af1565b62012650565b82516001600160a01b03168183015560209092019160010162012641565b936200e9b0620126be916200e9928762005c62565b6201254d565b6020819492940151602681101562003f7c576012036201290d5760400190620126f860a06200df3a60c08551015162005aab565b519362012709835186511462014ca6565b60005b83518110156201275d5762012757906200189f6001600160a01b038062012734848962005af1565b51166000526201388580602052620124f260406000205462007e4d868d62005af1565b6201270c565b50935091906201276d9062015ff2565b62013886546201277d8162005c0d565b906000926000915b80831062012833575050506201279b8262005c0d565b8051906001600160401b03821162003e1457602090620127bb8362005d7e565b0162013886600052602060002060005b83811062012815575050505060005b828110620127f25750505062010d5060209162005a85565b6201280f906200189f6001600160a01b0362001e63838662005af1565b620127da565b82516001600160a01b031681830155602090920191600101620127cb565b91956000959193959760005b8551811015620128fe57620128548962005c62565b90546001600160a01b0360039290921b1c81169062012874838962005af1565b5116146201288d57620128879062005a85565b6201283f565b509750956001959391955b80620128cc575b15620128b757620128b09062005a85565b9162012785565b936200e9b0620128b0916200e9928762005c62565b50620128d88162005c62565b60018060a01b0391549060031b1c1660005262013885602052604060002054156201289f565b50979690969593919562012898565b6020810151602681101562003f7c57601303620129665760408091015101519260005b84518110156201295557806200189f620099786201294f938862005af1565b62012930565b5092509062010d5060209162005a85565b6020810151602681101562003f7c5760140362012b1357604001906201299160c08351015162005aab565b5193620129a860a062007887818651015162005aab565b5191620129b986518551146201505a565b620129c88651845114620150c0565b60005b865181101562012abe57620129e1818562005af1565b51620129ee828762005af1565b519061271082101562005ab957600662012a0e9260031b01549062006ce3565b9062012a1b838862005af1565b519161271083101562005ab957600662012a3a9360031b01556201517a565b62012a46818562005af1565b5162012a53828762005af1565b519061271082101562005ab95762012a7c916003906001600160a01b0362010c6f868d62005af1565b919062012a8a828862005af1565b519061271082101562005ab95762012ab8936200189f926003906001600160a01b0362010cc3878f62005af1565b620129cb565b509491509162010cf462012ad2916201610e565b936040519262012ae28462003e9b565b60008452600036813760005b835181101562010d3c57806200189f62007a4e62012b0d938762005af1565b62012aee565b6020810151602681101562003f7c5760150362012b3d57602091926200189f62010d50926201527e565b6020810151602681101562003f7c5760160362012b995760c0604062012b67920151015162005aab565b519260005b8451811015620129555762012b93906200189f6001600160a01b036200a110838962005af1565b62012b6c565b6020810151602681101562003f7c5760170362012bf65760405162461bcd60e51b81526020600482015260296024820152600080516020620169698339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c5760180362012c635760c0604062012c20920151015162005aab565b5192600160ff1962013892541617620138925560005b8451811015620129555762012c5d906200189f6001600160a01b036200a1dd838962005af1565b62012c36565b6020819392930151602681101562003f7c5760190362012d4b5760008080604080940160a08082510151805162012d12575b5050519060e08201519162012cb962006f1a60c060018060a01b0393015162005aab565b511690602083519301915af1903d1562012d09573d9162012cda8362004098565b9262012ce98351948562003eb7565b83523d6000602085013e5b156200a29257505062010d5060209162005a85565b60609162012cf4565b62012d1d9062005aab565b515162012d2c575b8062012c95565b81925062006f1a9062012d429251015162005aab565b51903862012d25565b6020810151602681101562003f7c57601a0362012e455762012d7660a0604080930151015162005aab565b5162012d86600382511462014ca6565b62012d918162005aab565b519162012daa62012da28362005acf565b519262005ae0565b519162012e0b57509162010d50916001602094146000146200a4315762012dda62012de9916201388d5462006ce3565b6201388d5562001898620162d0565b6200189f62012dfc6201388e5462006cd0565b6201388e55620018986201630a565b5162461bcd60e51b8152602060048201526014602482015273496e76616c6964207061796d656e74207479706560601b6044820152606490fd5b6020810151602681101562003f7c57601b036201327d5750919062012e766201388b54620035a86200a4a76201620c565b505062012e82620162d0565b506000805b612710811062013231575b505062012e9e62006cf5565b62012ead6202712a5462005c0d565b906000946000905b61271082101562013224578160031b9460ff60078701541615620130085760009660028701541562012ff757600098975b62005ab957600487015489101562012fdd5762012f07896004890162005d10565b9054600391821b1c6001600160a01b031660008181529189016020526040918290205491999162012f3a90889062006b9b565b9a9062012f46620162d0565b62012f519162005a52565b60009a60028b015462012f649162006b9b565b9062012f6f620162d0565b62012f7a9162005a52565b826000526201388760205281600020549062012f969162006ce3565b90916000205562012fa6620162d0565b62012fb19162005a52565b62012fbd828962005af1565b5262012fc99062005a85565b9862012fd59062005a85565b989762012ee6565b9290955062012fef9196975062005a85565b909462012eb5565b9290955062012fef91965062005a85565b95969392509350505b6201301c8262005c0d565b9160009160005b8281106201318e57505050620138885491620130446200815f848462014cf2565b926000906000905b8082106201317157505060005b838110620130db5750508251929150506001600160401b03821162003e1457602090620130868362005d42565b0162013888600052602060002060005b838110620130bd575050505062010d5060209160006201388d5560006201388e5562005a85565b82516001600160a01b03168183015560209092019160010162013096565b6000805b83811062013129575b501562013101575b620130fb9062005a85565b62013059565b90620130fb9062013120906001600160a01b03620082e7858762005af1565b919050620130f0565b6001600160a01b03806201313e858862005af1565b5116906201314d838a62005af1565b5116146201316657620131609062005a85565b620130df565b5050600138620130e8565b9091620082f56201318791620098cd8562005c45565b906201304c565b6000805b858110620131dc575b5015620131b4575b620131ae9062005a85565b62013023565b92620131ae90620131d3906001600160a01b03620082e7878662005af1565b939050620131a3565b6001600160a01b0380620131f1858762005af1565b51169062013200838a62005af1565b5116146201321957620132139062005a85565b62013192565b50506001386201319b565b9394959291505062013011565b8060039594951b9060ff6007830154161562013273576200a8dd620076dc6200189f946200a8d16201326a9560026200a8c78762006b3e565b93929362012e87565b5093929362012e92565b6020810151602681101562003f7c57601c03620132da5760405162461bcd60e51b81526020600482015260296024820152600080516020620169898339815191526044820152683632b6b2b73a32b21760b91b6064820152608490fd5b6020810151602681101562003f7c57601d0362013300575b5062010d5060209162005a85565b6020810151602681101562003f7c57601e14620132f2576020810151602681101562003f7c57601f036201335157602091620133496200a9ba604062010d509401515162005aab565b9150620132f2565b6020810151602681101562003f7c5760200362013377575b5062010d5060209162013349565b6020810151602681101562003f7c5760211462013369576020810151602681101562003f7c57602203620133cd575062010d5060209160ff196201389254166201389255620133c562005e11565b915062013369565b6020810151602681101562003f7c57602303620133f3575b5062010d50602091620133c5565b6020810151602681101562003f7c57602414620133e5576020810151602681101562003f7c57602514620133e5576020810151602681101562003f7c57601503620109b5576020916201344a62010d50926201527e565b9150620133e5565b82516001600160a01b0316818301556020909201916001016200bb19565b82516001600160a01b0316818301556020909201916001016200b9c4565b600191820180546001600160a01b03909216848601559390910192906200b90c565b62027124600052620134d8906000805160206201692983398151915290810190830162005d29565b386200b8cc565b60018082620134f08294866201392e565b019201920191906200b88b565b62027123600052600080516020620168a9833981519152908282015b81830181106201352b5750506200b84f565b8062013539600192620060f7565b0162013519565b600191820180546001600160a01b03909216848601559390910192906200b81d565b620271226000526201358a906000805160206201688983398151915290810190830162005d29565b386200b7dd565b82516001600160a01b0316818301556020909201916001016200b69f565b620135cb906202711d6000528484600020918201910162005d29565b386200b68e565b82516001600160a01b0316818301556020909201916001016200b4af565b6201360c90620271146000528484600020918201910162005d29565b386200b49e565b80620136359160031b600160ff6007830154161515146201363b575062005a85565b6200b3ee565b6201364f6004820162013897830162013ac7565b6201389a8101600160ff1982541617905580548162013893015560018101546201389482015560028101546201389582015562013695600582016201389883016201392e565b620138996006820154910155386200a431565b6006602082620136bc6001945186620065a1565b019201920191906200b1db565b600681810204810362005a9557600683810204830362005a9557620271156000527f0f9b10e190177c3c56fc6ce7689c8130c567df57aa02c08e7a090a59992adf926006840281015b8260060282018110620137275750506200b1c7565b8060006006925560006001820155620137436002820162006265565b600060038201556201375860048201620060f7565b600060058201550162013712565b60066020826201377a6001945186620065a1565b019201920191906200b14b565b8060060290600682040362005a95578260060260068104840362005a95576000906202711682526020822092830192015b828110620137c85750506200b137565b808260069255826001820155620137e26002820162006265565b826003820155620137f660048201620060f7565b82600582015501620137b8565b608460405162461bcd60e51b815260206004820152604060248201526000805160206201694983398151915260448201527f656d2073686f756c64206e6f742072657475726e20766f7465206e65656465646064820152fd5b60405162461bcd60e51b815260206004820152604760248201526000805160206201694983398151915260448201527f656d2073686f756c64206e6f742072657475726e206120766f74696e672072756064820152661b19481b1a5cdd60ca1b608482015260a490fd5b8181146201392a578154916001600160401b03831162003e1457620138ec838362005e25565b60005260206000209060005260206000208154916000925b84841062013913575050505050565b600180919201938454928185015501929062013904565b5050565b908082146201392a5762013943815462005129565b906001600160401b03821162003e145781906201396d8262013966865462005129565b8662006441565b600090601f8311600114620139a6576000926201399a5750508160011b916000199060031b1c1916179055565b015490503880620064d4565b81526020808220858352818320935090601f1985169083905b828210620139fb575050908460019594939210620139e157505050811b019055565b015460001960f88460031b161c1916905538808062006521565b8495819295850154815560018091019601940190620139bf565b8181146201392a5781549162013a2c838362006188565b6000526020600020906000526020600020906000905b83821062013a505750505050565b8062013a5f600192856201392e565b92810192918101910162013a42565b8181146201392a5781549162013a85838362006216565b6000526020600020906000526020600020906000905b83821062013aa95750505050565b8062013ab860019285620138c6565b92810192918101910162013a9b565b8181146201392a578154916001600160401b03831162003e145762013aed838362005e25565b60005260206000209060005260206000208154916000925b84841062013b14575050505050565b600191820180546001600160a01b039092168486015593909101929062013b05565b8181146201392a5781549162013b4d838362006216565b6000526020600020906000526020600020906000905b83821062013b715750505050565b8062013b806001928562013ac7565b92810192918101910162013b63565b8181146201392a5781549162013ba683836200630c565b6000526020600020906000526020600020906000905b83821062013bca5750505050565b80600191840362013be7575b600780910193019101909162013bbc565b8054845562013c268280860190830160ff9062013c088282541684620063e4565b62013c1a82825460081c1684620063fe565b5460101c16906200641f565b62013c386002808301908601620138c6565b600380850190820180820362013c51575b505062013bd6565b62013c5c9162013a15565b62013c6e600480830190860162013a6e565b62013c80600580830190860162013b36565b62013c9260068083019086016201392e565b388062013c49565b919062006a4f5780820362013cad575050565b60ff600580620052aa9462013cc68486541682620063cb565b6001850154600182015562013ce2600286016002830162013b8f565b6003850154600382015562013cfe60048601600483016201392e565b01920162013d1082825416846200655e565b62013d2282825460081c16846200656f565b5460101c169062006587565b908082146201392a57908154906000915b6064831062013d4e5750505050565b600180919401928354948184015501919262013d3f565b906201388254602060009301908151519062013d818262003edb565b9162013d91604051938462003eb7565b80835262013da2601f199162003edb565b0136602084013762013db78351518262006b9b565b9015620141215762013dc99062005c0d565b90859284515115620141185762013de08262005c0d565b965b85515181101562013f615760008080805b86811062013e785750905062013e158162013e0f858762005af1565b6200534e565b600681101562003f7c5760031462013e3a575b5062013e349062005a85565b62013de2565b6000905b80821062013e4d575062013e28565b9095620098eb62013e719162013e64898d62005af1565b5162001f35828a62005af1565b9062013e3e565b62013e918162013e8a878d5162005af1565b516201453a565b9390948083118062013f4d575b1562013f0457505091838562013efa575b600681101562003f7c5760038e911462013eda575b505062013ed19062005a85565b91909162013df3565b9462013ef19162001f358262013ed1959862005af1565b93908c62013ec4565b6000955062013eaf565b809492959195148062013f39575b1562013ec457600681101562003f7c5760038e911462013eda57505062013ed19062005a85565b50600681101562003f7c5780151562013f12565b50600686101562003f7c5785151562013e9e565b5093505090929350600093845b8351861015620140b35762013f8e62013f88878662005af1565b620063bd565b9060068083101562003f7c57600292830362013fb957505062013fb2909562005a85565b9462013f6e565b62013fc962013f88898862005af1565b928184101562003f7c576001809414806201409f575b1562013ff45750505062013fb2909562005a85565b6201400962013f888a899b9694959b62005af1565b928084101562003f7c576004809414928362014073575b508262014048575b50506201403c575b5062013fb29062005a85565b955062013fb262014030565b9091508810156201405e57871415388062014028565b602182634e487b7160e01b6000525260246000fd5b908093508a10156201408a57891415913862014020565b602184634e487b7160e01b6000525260246000fd5b508183101562003f7c578083141562013fdf565b925092909350600682101562003f7c57600382036201410f575b620140d88162005c0d565b9360005b828110620140eb575050509190565b80620140fc62014109928462005af1565b5162001f35828962005af1565b620140dc565b506000620140cd565b50909392505050565b60405162461bcd60e51b815260206004820152602a60248201527f546865206c656e677468206f6620766f74696e672072756c65206c697374206960448201526973206f766572666c6f7760b01b6064820152608490fd5b9062013883546020600093019081515190620141958262003edb565b91620141a5604051938462003eb7565b808352620141b6601f199162003edb565b01366020840137620141cb8351518262006b9b565b90156201412157620141dd9062005c0d565b908592845151156201411857620141f48262005c0d565b965b855151811015620143625760008080805b8681106201427957509050620142238162013e0f858762005af1565b600681101562003f7c5760031462014248575b50620142429062005a85565b620141f6565b6000905b8082106201425b575062014236565b9095620098eb620142729162013e64898d62005af1565b906201424c565b62014292816201428b878d5162005af1565b51620145d6565b939094808311806201434e575b1562014305575050918385620142fb575b600681101562003f7c5760038e9114620142db575b5050620142d29062005a85565b91909162014207565b94620142f29162001f3582620142d2959862005af1565b93908c620142c5565b60009550620142b0565b80949295919514806201433a575b15620142c557600681101562003f7c5760038e9114620142db575050620142d29062005a85565b50600681101562003f7c5780151562014313565b50600686101562003f7c578515156201429f565b5093505090929350600093845b835186101562014484576201438962013f88878662005af1565b9060068083101562003f7c576002928303620143b4575050620143ad909562005a85565b946201436f565b620143c462013f88898862005af1565b928184101562003f7c5760038094148062014470575b15620143ef57505050620143ad909562005a85565b6201440462013f888a899b9694959b62005af1565b928084101562003f7c576005809414928362014459575b508262014443575b505062014437575b50620143ad9062005a85565b9550620143ad6201442b565b90915088101562003f7c57871415388062014423565b908093508a101562003f7c5789141591386201441b565b508183101562003f7c5780831415620143da565b925092909350600682101562003f7c5760038203620144d3575b620144a98162005c0d565b9360005b828110620144bc575050509190565b80620140fc620144cd928462005af1565b620144ad565b5060006201449e565b15620144e457565b60405162461bcd60e51b815260206004820152602860248201527f506c7567696e466163746f72793a20706c7567696e20696e646578206f7574206044820152676f662072616e676560c01b6064820152608490fd5b90916000809381936201455362013882548310620144dc565b60ff60056201456284620069d6565b50015460081c1615620145ca5782826201457e92600162014763565b6201458a575b50929190565b80945060019293506201459e9150620069d6565b500154906003620145bf60ff620145b586620069d6565b50541694620069d6565b500154913862014584565b50509150915080918190565b9091600080938193620145ef62013883548310620144dc565b60ff6005620145fe8462006994565b50015460081c1615620145ca57828262014619928262014763565b620146245750929190565b809450600192935062014638915062006994565b500154906003620145bf60ff6201464f8662006994565b5054169462006994565b156201466157565b60405162461bcd60e51b815260206004820152603160248201527f436865636b696e6720636f6e646974696f6e206578703a20706c7567696e20696044820152706e646578206f7574206f662072616e676560781b6064820152608490fd5b15620146c857565b60405162461bcd60e51b815260206004820152602f60248201527f436865636b696e6720636f6e646974696f6e206578703a206e6f646520696e6460448201526e6578206f7574206f662072616e676560881b6064820152608490fd5b62013884805482101562005ab9576000526007602060002091020190600090565b805482101562005ab9576000526007602060002091020190600090565b90929190801562014ad2576201477f6201388254831062014659565b6201479b60026201479084620069d6565b5001548410620146c0565b801562014ab457620147cb6001620147c2856002620147ba87620069d6565b500162014746565b50015460ff1690565b620147d68162004dc4565b80620147e6575050505050600090565b620147f18162004dc4565b6003810362014804575050505050600190565b6201480f8162004dc4565b6004810362014822575050505050600090565b6201482d8162004dc4565b60019080820362014846575050926200553f9362014afa565b909293620148548262004dc4565b60028092146201486a575b505050505050600090565b821562014a97576201489384620148878385620147ba8a620069d6565b50015460081c60ff1690565b925b60009586865b62014a25575b50620148ad8762005c0d565b9760005b888110620149c8575050505050620148c98262003f71565b8183036201492857505091906000915b818310620148e75750505090565b9091928062014905575b620148fd909362005a85565b9190620148d9565b50620148fd620149206201491a858462005af1565b51151590565b9050620148f1565b909150620149368262003f71565b81036201498f57509060009182915b818310620149535750505090565b909192801562014972575b6201496a909362005a85565b919062014945565b506201496a620149876201491a858462005af1565b90506201495e565b600391506201499e8162003f71565b14620149b157503880808080806201485f565b620149c46201491a6200553f9262005aab565b1590565b808a62014a04620149fb620149f1848b620149e98c82620147ba8d62006994565b500162005d10565b90549060031b1c90565b86868962014763565b62014a1862014a1f946200189f9362005af1565b9015159052565b620148b1565b8462014a378582620147ba8662006994565b50015481101562014a915762014a5d620149f18287620149e98882620147ba8962006994565b62014a76575b62014a6f879162005a85565b906201489b565b9662014a6f62014a87889262005a85565b9891505062014a63565b620148a1565b62014aad84620148878385620147ba8a62006994565b9262014895565b62014acc6001620147c2856002620147ba8762006994565b620147cb565b62014ae36201388354831062014659565b62014af46002620147908462006994565b6201479b565b909291600362014b4c918360001462014bd45760ff600162014b23876002620147ba86620069d6565b50015460101c16945b841562014bc3576002620147ba62014b4493620069d6565b50016200547e565b91603d81101562003f7c57602c810362014b9357505062014b7662006f1a60208093015162005aab565b51910151602681101562003f7c5762014b8f906201651b565b1490565b9092906001810362014ba85750505050600090565b60031462014bb857505050600090565b6200553f9262014c44565b6002620147ba62014b449362006994565b60ff600162014bea876002620147ba8662006994565b50015460101c169462014b2c565b1562014c0057565b606460405162461bcd60e51b815260206004820152602060248201527f4f70657261746f722061646472657373206973206e6f742070726f76696465646044820152fd5b9190604062006f1a920162014c5e60018251511462014bf8565b62014c79600162014c70835162005aab565b51511462014bf8565b516001600160a01b0392839162014c91919062005aab565b5116921562014ca05751161490565b51161490565b1562014cae57565b60405162461bcd60e51b815260206004820152601c60248201527b496e76616c6964206e756d626572206f6620706172616d657465727360201b6044820152606490fd5b9190820180921162005a9557565b62014d0b8162004dc4565b62014d196200e667620164b2565b62014d248162004dc4565b6001810362014d43575062014d3c6200e693620164b2565b6201388b55565b62014d4e8162004dc4565b6002810362014d5f57506201388c55565b62014d6a8162004dc4565b6003810362014d7b57506201388d55565b8062014d8960049262004dc4565b1462014d925750565b6201388e55565b1562014da157565b60405162461bcd60e51b815260206004820152604d60248201527f546865206c656e677468206f662074686520706c7567696e20696e646578657360448201527f20617272617920616e642074686520626f6f6c65616e206172726179206d757360648201526c74206265207468652073616d6560981b608482015260a490fd5b1562014e2a57565b60405162461bcd60e51b815260206004820152602260248201527f496e76616c696420706c7567696e20696e64657820746f20626520656e61626c604482015261195960f21b6064820152608490fd5b1562014e8257565b60405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c6564206973206e6f742060448201526a1a5b9a5d1a585b1a5e995960aa1b6064820152608490fd5b1562014ee357565b60405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c656420697320616c726560448201526a18591e48195b98589b195960aa1b6064820152608490fd5b1562014f4457565b60405162461bcd60e51b815260206004820152602360248201527f496e76616c696420706c7567696e20696e64657820746f2062652064697361626044820152621b195960ea1b6064820152608490fd5b1562014f9d57565b60405162461bcd60e51b815260206004820152602c60248201527f54686520706c7567696e20746f2062652064697361626c6564206973206e6f7460448201526b081a5b9a5d1a585b1a5e995960a21b6064820152608490fd5b1562014fff57565b60405162461bcd60e51b815260206004820152602d60248201527f54686520706c7567696e20746f2062652064697361626c656420697320616c7260448201526c1958591e48191a5cd8589b1959609a1b6064820152608490fd5b156201506257565b60405162461bcd60e51b815260206004820152603060248201527f546865206c656e677468206f662074617267657420616e6420746f6b656e436c60448201526f185cdcc81a5cc81b9bdd08195c5d585b60821b6064820152608490fd5b15620150c857565b60405162461bcd60e51b815260206004820152602c60248201527f546865206c656e677468206f662074617267657420616e6420616d6f756e742060448201526b1a5cc81b9bdd08195c5d585b60a21b6064820152608490fd5b156201512a57565b60405162461bcd60e51b815260206004820152602260248201527f54686520746f6b656e20636c617373206973206e6f7420696e697469616c697a604482015261195960f21b6064820152608490fd5b156201518257565b60405162461bcd60e51b815260206004820152602960248201527f54686520746f74616c20737570706c79206f662074686520746f6b656e206973604482015268206f766572666c6f7760b81b6064820152608490fd5b15620151e157565b60405162461bcd60e51b8152602060048201526024808201527f5468652062616c616e6365206f662074686520746f6b656e206973206f766572604482015263666c6f7760e01b6064820152608490fd5b156201523a57565b606460405162461bcd60e51b815260206004820152602060248201527f54686520746f6b656e20697320616c726561647920696e697469616c697a65646044820152fd5b60408101906201529360c08351015162005aab565b5191620152b560a0620152aa818451015162005aab565b519251015162005acf565b5193620152ca8451835114620018986201637f565b620152dd8451865114620018986201637f565b60005b84518110156201533a57620152f6818462005af1565b519061271082101562005ab957620153349160018060a01b03865116600052600390811b016020526200189f60406000205462007de0838a62005af1565b620152e0565b5092919360005b8351811015620154655762015357818462005af1565b5190612710918281101562005ab95760018060a01b03908189511660005260039081602091811b0181526201539760406000205462007e4d868962005af1565b90620153a4868a62005af1565b51918783101562005ab95784620153d193878f5116600052811b0184526040600020556200189862016483565b620153dd848862005af1565b518581101562005ab957829084620153f6878c62005af1565b5116600052811b0181526201541660406000205462006f21868962005af1565b91909262015425868a62005af1565b519687101562005ab9576201545f966200189f9562015445888d62005af1565b5116600052811b01905260406000205562001898620164e8565b62015341565b505062010cf462015476916201610e565b9060405193620154868562003e7f565b60018552602036818701376001600160a01b03610960819052905116620154ad8562005aab565b526000935b8151851015620157d057620154c8858362005af1565b5194620154d6845162005c0d565b91600093620154e6825162005c0d565b610920528496855b87518110156201558f5762015515610960516201550c838b62005af1565b51168b62015edb565b158062015557575b62015534575b6201552e9062005a85565b620154ee565b956201554e6201552e91610960516200a7568a8c62005af1565b96905062015523565b506127108a101562005ab9576109605162015573828a62005af1565b511660005260038a811b0160205260406000205415156201551d565b509793929096949195976000986127108610159560031b9860038a019a5b895181101562015629578762005ab95761096051620155cd828c62005af1565b51166000528b60205260406000205415620155f4575b620155ee9062005a85565b620155ad565b9762015620620155ee918b6201560f8c610960519262005af1565b511662001f35826109205162005af1565b989050620155e3565b50949591939650985096909596806109805262005ab957600401806109005254956201565a6200815f868962014cf2565b61094052600097886108e0525b6109805162005ab9576108e05188811015620157055762015696620156ac916000610980526109005162005d10565b6109605191549060031b1c166109205162015f9d565b15620156cb575b620156c16108e05162005a85565b6108e05262015667565b97620156fe90620156e36108e0516109005162005d10565b6109605191549060031b1c1662001f35826109405162005af1565b97620156b3565b5095939096509690969391936000915b8383106201579f57505050506109805162005ab95761094051516001600160401b03811162003e14576201574d816109005162005e25565b60206109405101610900516000526020600020600061096051905b84811062015788575050505050620157809062005a85565b9392620154b2565b600190602083865116950194818501550162015768565b620082f5620157c99161096051620157b8868662005af1565b511662001f35826109405162005af1565b9162015715565b5050509050565b815180519192916001600160401b03811162003e1457620157f9818562005e25565b6020809201846000528260002060005b83811062015870575050505060c082600692620052aa95940151600185015560408101516002850155606081015160038501556201585160808201511515600486016200655e565b6201586460a0820151600586016200648b565b0151151591016200655e565b8251828201559184019160010162015809565b620138848054600160401b81101562003e1457620158a79160018201905562014725565b91909162006a4f57620052aa91620157d7565b62013890908154600160401b81101562003e14576001810180845581101562005ab957620052aa926000526020600020016200648b565b9080620158fc575050565b620052aa91600052601f6020600020910160051c81019062005d29565b90600160401b811162003e145781548183558082106201593857505050565b620052aa92600052601f6020600020918180850160051c840194168062015967575b500160051c019062005d29565b600019908186019182549160200360031b1c169055386201595a565b9060031b60ff811b9283911b169119161790565b600092620159b1620159aa859462014725565b50620052c7565b9380935b85515185101562015a9f575061271084101562005ab95760039380851b9460018060a01b03851660005260209086018152620159fe604096600188600020549101549062006b9b565b9384911562015a6a579062015a139162006ce3565b96901562015a3057505062015a289062005a85565b9390620159b5565b60649250519062461bcd60e51b825260048201526014602482015273746f74616c20706f776572206f766572666c6f7760601b6044820152fd5b875162461bcd60e51b815260048101849052600e60248201526d706f776572206f766572666c6f7760901b6044820152606490fd5b93505092505090565b1562015ab057565b60405162461bcd60e51b815260206004820152601360248201527263757272656e74596573206f766572666c6f7760681b6044820152606490fd5b600162015af88262014725565b5001546202712e546000928184526202712b908160205262015b21816004604088200162005d10565b90549060031b1c918386528060205262015b42826005604089200162005d10565b90549060031b1c93865260205260ff600662015b7662015b68848360408b200162005d10565b90549060031b1c9362014725565b5001541662015bc4575062015bb4926200044f62015ba6938362015b9e62015bac9562006b65565b969062015aa8565b62014cf2565b929062015aa8565b111562015bbe5790565b50600190565b6200fc27925062015bb49362015bde62015bac9362006b65565b949062015aa8565b9092919262015bf6825162005c0d565b60009162015c05815162005c0d565b8390845b865181101562015ca0576001600160a01b0362015c2c816201550c848b62005af1565b158062015c6b575b62015c4c575b5062015c469062005a85565b62015c09565b819662015c6391620082e762015c46948b62005af1565b959062015c3a565b506127108a101562005ab9578062015c84838a62005af1565b511660005260038a811b01602052604060002054151562015c34565b509295919694509260005b875181101562015d215761271086101562005ab9576001600160a01b038062015cd5838b62005af1565b5116600052600387811b016020526040600020541562015d02575b5062015cfc9062005a85565b62015cab565b819562015d19916200e86362015cfc948c62005af1565b949062015cf0565b509250945092612710831015938462005ab95760049586600395861b019687549462015d526200815f828862014cf2565b9460009689889a5b62015ec657818b101562015dfb57506000998b62015d9562015d7d838362005d10565b90546001600160a01b0392918e1b1c82168a62015f9d565b1562015db8575b50509062015dad8b94939262005a85565b9a9091929362015d5a565b91998c95949392909162015dce908c9062005d10565b9054908d1b1c1662015de1828b62005af1565b5262015ded9062005a85565b9890919293508b3862015d9c565b9697949a98505091975092506000915b83831062015ea1575050505062015e8c578051926001600160401b03841162015e77575062015e3b838362005e25565b602080910191600052806000209060005b84811062015e5b575050505050565b83516001600160a01b0316838201559281019260010162015e4c565b604190634e487b7160e01b6000525260246000fd5b603283634e487b7160e01b6000525260246000fd5b62015ebf90620082f5906001600160a01b036200a756868662005af1565b9162015e0b565b603285634e487b7160e01b6000525260246000fd5b9060005b61271083101562005ab9576003600484821b01805483101562015f3a578262015f089162005d10565b9054911b1c6001600160a01b039081169083161462015f325762015f2c9062005a85565b62015edf565b505050600190565b5050505050600090565b9060005b61271083101562005ab95760036201389784821b01805483101562015f3a578262015f739162005d10565b9054911b1c6001600160a01b039081169083161462015f325762015f979062005a85565b62015f48565b9060005b825181101562015fdc576001600160a01b038062015fc0838662005af1565b51169083161462015f325762015fd69062005a85565b62015fa1565b505050600090565b801562005a95576000190190565b9081519060005b60001983810184811162005a9557821015620160c0576001820180831162005a95575b84811062016037575050620160319062005a85565b62015ff9565b6001600160a01b03806201604c858962005af1565b5116816201605b848a62005af1565b51161462016076575b50620160709062005a85565b6201601c565b828692960182811162005a95576201607092620160b9926201609d620160b2938b62005af1565b5116620160ab898b62005af1565b5262015fe4565b9562015fe4565b9062016064565b505090620160ce8162005c0d565b9060005b818110620160e1575090925050565b62016108906001600160a01b03620160fa828862005af1565b511662001f35828662005af1565b620160d2565b80519160005b60001984810185811162005a9557821015620161c6576001820180831162005a95575b858110620161525750506201614c9062005a85565b62016114565b6201615e838662005af1565b516201616b828762005af1565b511462016184575b6201617e9062005a85565b62016137565b948181019080821162005a9557620161b7620161be91620161aa6201617e948962005af1565b51620160ab8a8a62005af1565b9662015fe4565b905062016173565b50509091620161d58162005c0d565b9060005b818110620161e8575090925050565b80620161f962016206928762005af1565b5162001f35828662005af1565b620161d9565b6040516201621a8162003df8565b604481527f496e76616c6964206469766964656e64207065726d797269616420706572207460208201527f72616e73616374696f6e2e2053686f756c64206265206c657373207468616e206040820152630313030360e41b606082015290565b604051620162888162003e63565b603281527f4e6f20656e6f756768206e756d626572206f66207472616e73616374696f6e7360208201527108199bdc88191a5d9a59195b991cc81e595d60721b604082015290565b604051620162de8162003e7f565b601c81527b6469766964656e6473206f7065726174696f6e206f766572666c6f7760201b602082015290565b604051620163188162003e7f565b600d81526c2ab735b737bbb71022b93937b960991b602082015290565b604051620163438162003e63565b602681527f4572726f7220696e20776974686472617761626c6520636173682063616c63756020820152653630ba34b7b760d11b604082015290565b6040516201638d8162003e7f565b6012815271496e76616c696420506172616d657465727360701b602082015290565b604051620163bd8162003e7f565b601581527413595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b602082015290565b604051620163f08162003e7f565b601781527613595b58995c881a5cc81b9bdd081cdd5cdc195b991959604a1b602082015290565b604051620164258162003e7f565b601b81527a13595b58995c881a5cc8185b1c9958591e481cdd5cdc195b991959602a1b602082015290565b6040516201645e8162003e7f565b60158152744d656d62657220616c72656164792065786973747360581b602082015290565b604051620164918162003e7f565b60118152704e6f20656e6f7567682062616c616e636560781b602082015290565b604051620164c08162003e7f565b6018815277125b9d985b1a59081c185c985b595d195c881d1bc81cd95d60421b602082015290565b604051620164f68162003e7f565b6015815274546f6b656e20616d6f756e74206f766572666c6f7760581b602082015290565b602681101562003f7c57801562016709576001811462015bbe5760028114620167035760038114620166fd5760048114620166f75760058114620166f15760068114620166eb5760078114620166e55760088114620166df5760098114620166d957600a8114620166d357600b8114620166cd57600c8114620166c757600d8114620166c157600e8114620166bb57600f8114620166b55760108114620166af5760118114620166a95760128114620166a357601381146201669d57601481146201669757601581146201669157601881146201668b57601781146201668557601981146201667f57601a81146201667957601b81146201667357601c81146201666d57601d81146201666757601e81146201666157601f81146201665b576020811462016655576021146201665057600090565b602190565b50602090565b50601f90565b50601e90565b50601d90565b50601c90565b50601b90565b50601a90565b50601990565b50601790565b50601690565b50601590565b50601490565b50601390565b50601290565b50601190565b50601090565b50600f90565b50600e90565b50600d90565b50600c90565b50600b90565b50600a90565b50600990565b50600890565b50600790565b50600690565b50600590565b50600490565b50600390565b50600290565b50600090565b90815181101562005ab9570160200190565b60405190620167308262003e63565b60288252604036602084013760005b601481106201674d57505090565b60139080820391821162005a9557600382901b916001600160fd1b0381160362005a955760ff80831162005a9557600192620167969084901b6001600160a01b03861662005e5f565b60f081168282160391821162005a9557620167ba9060f41b600f60f81b1662016823565b82841b916001600160ff1b038416840362005a9557620167f79160001a620167e384896201670f565b5360f81b6001600160f81b03191662016823565b92810180911162005a9557620168166201681d9360001a91866201670f565b5362005a85565b6201673f565b60f81c600a8110156201684c5760300160ff811162005a955760f81b6001600160f81b03191690565b60570160ff811162005a955760f81b6001600160f81b0319169056fe546865206c656e677468206f662061646472657373657320616e6420746f6b651f4fe3ad533e3985b88710ce05a205152f02825e155777f3bcb8b3bbfcfb03a24ad859a97f543436e70c22b09d31fb4c7b9e987d7a008c98817c9b50a97b1224546865206c656e677468206f6620746f6b656e436c61737320616e6420746f6b546865206c656e677468206f6620746f6b656e496e666f20616e6420746f6b658e71c125ecfe4aeed61c8cf4b09183dd0bf2a3230d826486f04e5f6f0de58e2c18baa939e2e21be0e012ec26e9ec87e9e6faa065bd9f5835250457786300ece8546865206265666f7265206f7065726174696f6e20706c7567696e20737973745265736572766564206f70636f6465206964203233206973206e6f7420696d705265736572766564206f70636f6465206964203238206973206e6f7420696d70546865206c656e677468206f662061646472657373657320616e6420616d6f75a26469706673582212201f2bb79a682df659a5922dbdcdc08d51de62b1538a4c40a328e1be2b81a12e7f64736f6c63430008110033", + "bytecode": "0x60808060405234620000195762017aea90816200001f8239f35b600080fdfe6108008060405260043610156200001557600080fd5b600080608052803560e01c918263036ee8501462003eab575081630e5a3b291462003b2257816310ade3ea1462003af05781631797631d1462003a605781631c75255a1462003a0b57816323b65c78146200397b5781632514a6b4146200371f57816341d1a43814620036ec57816356424cf414620036cb5781635c00d98714620036a15781635d0b1849146200367d5781635f1231ea14620035885781635f5d5f0014620034f8578163681ece9d14620034b557816374579b18146200247457816379532bfe14620024505781637daa10ce14620024315781638129fc1c146200201d57816383e4cccf1462001d91578163864f9f7a1462001d4f57816386ad77e214620019d85781638c7a63ae146200195e5781639df9914514620018455781639f36145f1462000577578163a064c4f1146200042c57508063acf80bc414620003ea578063aefca42a14620003c6578063bba510301462000219578063d5a172f214620001ec5763d6a93c51146200018f57600080fd5b34620001e65760805180600319360112620001e3575b6127108110620001bb575b602090604051908152f35b60ff60078260031b01541615620001dd57620001d79062005b81565b620001a5565b620001b0565b80fd5b60805180fd5b34620001e65760805180600319360112620001e35760206001600160a01b03620271265416604051908152f35b34620001e65760805180600319360112620001e3576202712e548091526202712b906020828152600380604060805120015493620002746200025b8662003ffb565b956200026b604051978862003fd9565b80875262003ffb565b8584019190601f19013683376080515b85608051528185528360406080512001548110156200036f576040517f41d1a438000000000000000000000000000000000000000000000000000000008152816004820152602486828281305afa91821562000362576080519262000324575b50620002f1838a62005bed565b90868310156200030e575052620003089062005b81565b62000284565b634e487b7160e01b608051526021600452608051fd5b9091508681813d83116200035a575b6200033f818362003fd9565b81010312620001e6575185811015620001e6579089620002e4565b503d62000333565b6040513d608051823e3d90fd5b84878460405192839281840190828552518091526040840192916080515b8281106200039d57505050500390f35b9193839550908082620003b5600194839751620040f8565b01950191019185949391926200038d565b34620001e65760805180600319360112620001e35760206202712854604051908152f35b34620001e6576020366003190112620001e6576001600160a01b036200040f62003ecd565b166080515262013887602052602060406080512054604051908152f35b34620001e65760209081600319360112620001e6576004356127108110156200055f5790600391821b9060018201549091600481018054946080519481869401905b878510620004fc578862000483888862006fe1565b90156200049257604051908152f35b6084826040519062461bcd60e51b82526004820152603360248201527f73756d566f74696e67576569676874466f72546f6b656e436c6173733a20766f60448201527f74696e67576569676874206f766572666c6f77000000000000000000000000006064820152fd5b9590919293956200055f576200055586620005476001600160a01b03620005286200054f9a8962005f0b565b905490881b1c1693608051948552858c52604060805120549062007088565b989062007003565b62005b81565b939291906200046e565b634e487b7160e01b6080515260326004526024608051fd5b34620001e6576020366003190112620001e657600435608051526202712b602052604060805120604051620005ac8162003f69565b6001600160a01b03825416815260018201918254620005cb8162003ffb565b90620005db604051928362003fd9565b808252602082019460805152608051946020862095905b8282106200067d5762000652868686602083015260405162000625816200061d81600286016200525e565b038262003fd9565b604083015260ff600782015491600960088201549101549060405195869560a0875260a0870190620055c7565b93602086015260408501526200066e60608501838316620040f8565b60081c16151560808301520390f35b6040516200068b8162003f69565b87546001600160a01b0381168252602660ff8260a01c1610156200182d5760a01c60ff166020820152604051620006c28162003f4c565b620006d060018a01620052fc565b8152600289016040518082602082945493848152019060805152608051926020842093905b80601f8301106200165a576200082e94549181811062001643575b81811062001629575b8181106200160f575b818110620015f5575b818110620015dc575b818110620015c2575b818110620015a8575b8181106200158e575b81811062001574575b8181106200155a575b81811062001540575b81811062001526575b8181106200150c575b818110620014f2575b818110620014d8575b818110620014be575b818110620014a4575b8181106200148a575b81811062001470575b81811062001456575b8181106200143c575b81811062001422575b81811062001408575b818110620013ee575b818110620013d4575b818110620013ba575b818110620013a0575b81811062001386575b8181106200136c575b81811062001352575b81811062001338575b1062001327575b50038262003fd9565b6020820152600389018054620008448162003ffb565b9162000854604051938462003fd9565b818352602083019060805152608051906020822091905b83821062001306575050505060408201526004890180546200088d8162003ffb565b916200089d604051938462003fd9565b818352602083019060805152608051906020822091905b8382106200118f57505050506060820152600589016040519081602082549182815201916080515260805190602082205b81601f84011062000e9e5784600997946020979460019a979462000a2b94549181811062000e80575b81811062000e5f575b81811062000e3e575b81811062000e1d575b81811062000dfd575b81811062000ddc575b81811062000dbb575b81811062000d9a575b81811062000d79575b81811062000d58575b81811062000d37575b81811062000d16575b81811062000cf5575b81811062000cd4575b81811062000cb3575b81811062000c92575b81811062000c71575b81811062000c50575b81811062000c2f575b81811062000c0e575b81811062000bed575b81811062000bcc575b81811062000bab575b81811062000b8a575b81811062000b69575b81811062000b48575b81811062000b27575b81811062000b06575b81811062000ae5575b81811062000ac4575b81811062000aa3575b1062000a885750038262003fd9565b608082015262000a3e60068d016200544f565b60a082015262000a5160078d0162005508565b60c0820152600862000a6f8d6200061d60405180948193016200525e565b60e08201526040820152815201970191019095620005f2565b90889160f81c62000a998162004eaa565b8152013862000825565b928a8d9160ff8560f01c1662000ab98162004eaa565b815201930162000a1c565b928a8d9160ff8560e81c1662000ada8162004eaa565b815201930162000a13565b928a8d9160ff8560e01c1662000afb8162004eaa565b815201930162000a0a565b928a8d9160ff8560d81c1662000b1c8162004eaa565b815201930162000a01565b928a8d9160ff8560d01c1662000b3d8162004eaa565b8152019301620009f8565b928a8d9160ff8560c81c1662000b5e8162004eaa565b8152019301620009ef565b928a8d9160ff8560c01c1662000b7f8162004eaa565b8152019301620009e6565b928a8d9160ff8560b81c1662000ba08162004eaa565b8152019301620009dd565b928a8d9160ff8560b01c1662000bc18162004eaa565b8152019301620009d4565b928a8d9160ff8560a81c1662000be28162004eaa565b8152019301620009cb565b928a8d9160ff8560a01c1662000c038162004eaa565b8152019301620009c2565b928a8d9160ff8560981c1662000c248162004eaa565b8152019301620009b9565b928a8d9160ff8560901c1662000c458162004eaa565b8152019301620009b0565b928a8d9160ff8560881c1662000c668162004eaa565b8152019301620009a7565b928a8d9160ff8560801c1662000c878162004eaa565b81520193016200099e565b928a8d9160ff8560781c1662000ca88162004eaa565b815201930162000995565b928a8d9160ff8560701c1662000cc98162004eaa565b81520193016200098c565b928a8d9160ff8560681c1662000cea8162004eaa565b815201930162000983565b928a8d9160ff8560601c1662000d0b8162004eaa565b81520193016200097a565b928a8d9160ff8560581c1662000d2c8162004eaa565b815201930162000971565b928a8d9160ff8560501c1662000d4d8162004eaa565b815201930162000968565b928a8d9160ff8560481c1662000d6e8162004eaa565b81520193016200095f565b928a8d9160ff8560401c1662000d8f8162004eaa565b815201930162000956565b928a8d9160ff8560381c1662000db08162004eaa565b81520193016200094d565b928a8d9160ff8560301c1662000dd18162004eaa565b815201930162000944565b928a8d9160ff8560281c1662000df28162004eaa565b81520193016200093b565b928a8d9160ff85831c1662000e128162004eaa565b815201930162000932565b928a8d9160ff8560181c1662000e338162004eaa565b815201930162000929565b928a8d9160ff8560101c1662000e548162004eaa565b815201930162000920565b928a8d9160ff8560081c1662000e758162004eaa565b815201930162000917565b928a8d9160ff851662000e938162004eaa565b81520193016200090e565b926001610400602092865460ff811662000eb88162004eaa565b825260ff8160081c1662000ecc8162004eaa565b8583015260ff8160101c1662000ee28162004eaa565b604083015260ff8160181c1662000ef98162004eaa565b606083015260ff81861c1662000f0f8162004eaa565b608083015260ff8160281c1662000f268162004eaa565b60a083015260ff81818160301c1662000f3f8162004eaa565b60c09081860152828260381c1662000f578162004eaa565b60e0860152828260401c1662000f6d8162004eaa565b610100860152828260481c1662000f848162004eaa565b610120860152828260501c1662000f9b8162004eaa565b610140860152828260581c1662000fb28162004eaa565b610160860152828260601c1662000fc98162004eaa565b610180860152828260681c1662000fe08162004eaa565b6101a0860152828260701c1662000ff78162004eaa565b6101c0860152828260781c166200100e8162004eaa565b6101e0860152828260801c16620010258162004eaa565b610200860152828260881c166200103c8162004eaa565b610220860152828260901c16620010538162004eaa565b610240860152828260981c166200106a8162004eaa565b610260860152828260a01c16620010818162004eaa565b610280860152828260a81c16620010988162004eaa565b6102a0860152828260b01c16620010af8162004eaa565b6102c0860152828260b81c16620010c68162004eaa565b6102e08601521c16620010d98162004eaa565b61030083015260ff8160c81c16620010f18162004eaa565b61032083015260ff8160d01c16620011098162004eaa565b61034083015260ff8160d81c16620011218162004eaa565b61036083015260ff8160e01c16620011398162004eaa565b61038083015260ff8160e81c16620011518162004eaa565b6103a083015260ff8160f01c16620011698162004eaa565b6103c083015260f81c6200117d8162004eaa565b6103e0820152019401920191620008e5565b60409d9c9b9a999897969d51620011a68162003f4c565b620011b660ff8554168262005435565b60018401546020820152600284018054620011d18162003ffb565b91620011e1604051938462003fd9565b8183526020830190608051526080516020812090915b8383106200127857505050509d9e9798999a9b9c9d6001928260209260406006950152600387015460608201526040516200123b816200061d8160048c016200525e565b608082015260ff6005880154818116151560a0840152818160081c16151560c084015260101c16151560e0820152815201930191019091620008b4565b600760206001926040516200128d8162003f30565b85548152620012d160ff86880154818116620012a98162004eaa565b86850152818160081c16620012be8162004091565b604085015260101c166060830162005442565b620012df600287016200536a565b6080820152620012f26003870162005565565b60a0820152815201920192019190620011f7565b600760206001926200131886620053bf565b8152019301910190916200086b565b60f81c151581526020018d62000825565b92602060019160ff8560f01c16151581520193016200081e565b92602060019160ff8560e81c161515815201930162000815565b92602060019160ff8560e01c16151581520193016200080c565b92602060019160ff8560d81c161515815201930162000803565b92602060019160ff8560d01c1615158152019301620007fa565b92602060019160ff8560c81c1615158152019301620007f1565b92602060019160ff8560c01c1615158152019301620007e8565b92602060019160ff8560b81c1615158152019301620007df565b92602060019160ff8560b01c1615158152019301620007d6565b92602060019160ff8560a81c1615158152019301620007cd565b92602060019160ff8560a01c1615158152019301620007c4565b92602060019160ff8560981c1615158152019301620007bb565b92602060019160ff8560901c1615158152019301620007b2565b92602060019160ff8560881c1615158152019301620007a9565b92602060019160ff8560801c1615158152019301620007a0565b92602060019160ff8560781c161515815201930162000797565b92602060019160ff8560701c16151581520193016200078e565b92602060019160ff8560681c161515815201930162000785565b92602060019160ff8560601c16151581520193016200077c565b92602060019160ff8560581c161515815201930162000773565b92602060019160ff8560501c16151581520193016200076a565b92602060019160ff8560481c161515815201930162000761565b92602060019160ff8560401c161515815201930162000758565b92602060019160ff8560381c16151581520193016200074f565b92602060019160ff8560301c161515815201930162000746565b92602060019160ff8560281c16151581520193016200073d565b92602060019160ff85831c161515815201930162000734565b92602060019160ff8560181c16151581520193016200072b565b92602060019160ff8560101c161515815201930162000722565b92602060019160ff8560081c161515815201930162000719565b92602060019160ff85161515815201930162000710565b916020919350610400600191865460ff81161515825260ff8160081c1615158583015260ff8160101c161515604083015260ff816060828260181c161515818601528282891c1615156080860152828260281c16151560a0860152828260c092828260301c16151584890152828260381c16151560e0890152828260401c161515610100890152828260481c161515610120890152828260501c161515610140890152828260581c1615156101608901521c161515610180860152828260681c1615156101a0860152828260701c1615156101c0860152828260781c1615156101e0860152828260801c161515610200860152828260881c161515610220860152828260901c161515610240860152828260981c161515610260860152828260a01c161515610280860152828260a81c1615156102a0860152828260b01c1615156102c0860152828260b81c1615156102e08601521c16151561030083015260ff8160c81c16151561032083015260ff8160d01c16151561034083015260ff8160d81c16151561036083015260ff8160e01c16151561038083015260ff8160e81c1615156103a083015260ff8160f01c1615156103c083015260f81c15156103e0820152019401920184929391620006f5565b634e487b7160e01b6080515260216004526024608051fd5b6020366003190112620001e6576004356001600160401b038111620001e6576200187490369060040162004430565b6001600160a01b03620018c581835116620018bc6200189d6200189733620178d8565b62005a32565b620018b5620018af86885116620178d8565b62005ab0565b9062005b07565b90331462005b4e565b6080519060208301915b825180518210156200193657906200054f620019309284620018f384339362005bed565b51511614620019296200190a6200189733620178d8565b620018b5620018af8862001920888c5162005bed565b515116620178d8565b9062005b4e565b620018cf565b6200195a6200194586620072a7565b6040519182916020835260208301906200412b565b0390f35b34620001e6576020366003190112620001e6576004356127108110156200055f5760031b6001810154600282015491620019ce6005620019af6006840154936200061d60405180948193016200525e565b604051948594855260208501526080604085015260808401906200412b565b9060608301520390f35b34620001e65760805180600319360112620001e357620138828054620019fe8162003ffb565b9162001a0e604051938462003fd9565b8183526020830190608051527fe5dac618068543225ae1c2f585dbaa37d058ab507104bc7da3da5ab2e5666cc7608051915b83831062001c1157846201388390815462001a5b8162003ffb565b9262001a6b604051948562003fd9565b8184526020840190608051527f9e32270fdbb1cb37df0574dfc18a9a2c56583299a239108c9d137f746b82200a608051915b83831062001ad35762001ac4856200195a8860405193849360408552604085019062005044565b90838203602085015262005044565b60405162001ae18162003f4c565b62001af160ff8454168262005435565b6001830154602082015260028301805462001b0c8162003ffb565b9162001b1c604051938462003fd9565b818352602083019060805152608051906020822091905b83821062001bab575050505060019282602092604060069501526003860154606082015260405162001b6e816200061d8160048b016200525e565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e082015281520192019201919062001a9d565b6007602060019260405162001bc08162003f30565b8654815262001bdc60ff86890154818116620012a98162004eaa565b62001bea600288016200536a565b608082015262001bfd6003880162005565565b60a082015281520193019101909162001b33565b60405162001c1f8162003f4c565b62001c2f60ff8454168262005435565b6001830154602082015260028301805462001c4a8162003ffb565b9162001c5a604051938462003fd9565b818352602083019060805152608051906020822091905b83821062001ce9575050505060019282602092604060069501526003860154606082015260405162001cac816200061d8160048b016200525e565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e082015281520192019201919062001a40565b6007602060019260405162001cfe8162003f30565b8654815262001d1a60ff86890154818116620012a98162004eaa565b62001d28600288016200536a565b608082015262001d3b6003880162005565565b60a082015281520193019101909162001c71565b34620001e6576020366003190112620001e6576001600160a01b0362001d7462003ecd565b166080515262013885602052602060406080512054604051908152f35b34620001e657602080600319360112620001e6576004359062001dd2478311156200192962001dc08562006190565b62001dcb4762006190565b9062005c02565b336080515262001e4a6201388580835262001e1f604060805120548511156200192962001dff8762006190565b336080515284875262001e186040608051205462006190565b9062005caa565b336080515280835262001e39846040608051205462006155565b92906200192962001dff8762006190565b3360805152825280604060805120551562001e8c575b5060805180808381949382941562001e82575b3390f115620003625760805180f35b506108fc62001e73565b620138869081549162001e9f8362005d44565b9160805193845b81811062001faa57505062001ebb8462005d44565b918251926001600160401b03841162001f925791839262001edd829562005f95565b01906080515260805192835b83811062001f5657505050505b82811062001f0657505062001e60565b806200054f6001600160a01b0362001f2362001f50948662005bed565b511662001f308362005db5565b90919082549060031b916001600160a01b03809116831b921b1916179055565b62001ef6565b82516001600160a01b03167f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa48201559181019160010162001ee9565b634e487b7160e01b6080515260416004526024608051fd5b62001fb58162005db5565b6001600160a01b03915490826003923392841b1c160362001fe4575b505062001fde9062005b81565b62001ea6565b966200201491839862001ffb62001fde9562005db5565b9054911b1c166200200d828962005bed565b5262005b81565b95908862001fd1565b34620001e65760805180600319360112620001e3575062027126336001600160a01b0319825416179055600190620271298260ff19825416179055604051620020668162003fbd565b60805190526201388280548282558062002391575b50608051526040516200208e8162003fbd565b6080519052608051806200237b57506201388390815481835580620022dc575b5050608051526127106202712a55604051620020ca8162003fa1565b8181526080515b602080821015620021445760405160209291620020ee8262003f30565b60805182526080518183015260805160408301526080516060908184015280608084015260405190620021218262003efe565b80825280838301528060408301528082015260a0830152828501015201620020d1565b83620022c984604051620021588162003fbd565b60805181526040516200216b8162003fbd565b60805181526040516200217e8162003fbd565b6080518152604051620021918162003fbd565b608051815260405191620021a58362003fbd565b608051835260405193620021b98562003efe565b845260208401526040830152606082015260405191620021d98362003f30565b60805183526003602084015260805160408401526080516060840152608083015260a08201526200220a8262005ba7565b52620022168162005ba7565b5062002271604051620022298162003f4c565b6004815284602082015282604082015260805160608201526040516200224f8162003fbd565b608051815260808201528460a08201528460c08201528460e082015262006db8565b60405190620022808262003f4c565b6002825283602083015260408201526080516060820152604051620022a58162003fbd565b608051815260808201528260a08201528260c082015260805160e082015262006e05565b6113886201388b556201388c5560805180f35b60069181830291838304036200236757808491608052527f9e32270fdbb1cb37df0574dfc18a9a2c56583299a239108c9d137f746b82200a908101905b818110620023285750620020ae565b8290608051808255868201556200234260028201620065b3565b6080516003820155620023586004820162006448565b60805160058201550162002319565b80634e487b7160e01b602492526011600452fd5b634e487b7160e01b905260416004526024608051fd5b60069080820290828204036200241d57836080528284527fe5dac618068543225ae1c2f585dbaa37d058ab507104bc7da3da5ab2e5666cc7908101905b818110620023de5750506200207b565b829060805180825587820155620023f860028201620065b3565b60805160038201556200240e6004820162006448565b608051600582015501620023ce565b602484634e487b7160e01b81526011600452fd5b34620001e65760805180600319360112620001e3576020604051338152f35b34620001e65760805180600319360112620001e35760206202712d54604051908152f35b34620001e6576040366003190112620001e6576004356001600160401b038111620001e657620024a990369060040162004152565b6024356001600160401b038111620001e657620024cb90369060040162004430565b620271298054600260ff8216620024e28162004091565b14620034715760ff191660021790556202712e54600181019081106200311a57806202712e5560805190815b84518110156200257157826002620025326200252b848962005bed565b5162014e46565b500154106200254d575b620025479062005b81565b6200250e565b9150620025476002620025656200252b858862005bed565b5001549290506200253c565b50919060805191825b8551811015620025d757620025946200252b828862005bed565b508460038092015410620025b5575b50620025af9062005b81565b6200257a565b819450620025cc6200252b620025af938962005bed565b5001549390620025a3565b508493608051526202712b6020526080519060408220916001600160a01b038251166001600160a01b03198454161783556020820151805191600160401b83116200237b5750600184015482600186015580831062003296575b50608080516001860190525160208082209392015b82821062002bb657505050509060026040620026669301519101620067d9565b62002672835162005d44565b6202712e54608051526202712b6020526080519060056040832001908051926001600160401b0384116200237b5750602090620026b084846200611d565b01906080515260805160208120905b83811062002ba15750505050620026d7835162005d44565b6202712e54608051526202712b6020526080519060046040832001908051926001600160401b0384116200237b57506020906200271584846200611d565b01906080515260805160208120905b83811062002b8c57505050506200273c835162005d44565b906202712e54608051526202712b60205260805160066040822001928051916001600160401b0383116200237b57506020906200277a83866200611d565b0192608051526080519260208420845b83811062002b775750505050620027a2904262007088565b90916202712e5490526202712b602052600760406080512001551562002b33576202712e54608051526202712b6020526008620027ea60406080512092600784015462007088565b91909201551562002aef576202712e54608051526202712b602052600960406080512001600260ff1982541617905562002825815162005d44565b6202712e54608051526202712b60205260805160036040822001918051916001600160401b0383116200237b57506020906200286283856200611d565b0191608051526080519160208320835b83811062002ada5785855b8151811015620028e057806200054f6200289c620028da938562005bed565b516202712e54608051526202712b602052620028c18360036040608051200162005f0b565b90919082549060031b91821b91600019901b1916179055565b6200287d565b50608051905b805182101562002ad4576202712e549182608051526202712b602052620029276200291a8260036040608051200162005f0b565b90549060031b1c62014e46565b505490620029358262005d44565b916080515b81811062002a86575050608051805b835182101562002a51576200295f828562005bed565b5161271090818110156200055f5760031b6001015462002980848762005bed565b51918210156200055f5760066200299d9260031b01549062006fe1565b901562002a0d57620029af9162007088565b919015620029c957620029c29062005b81565b9062002949565b606460405162461bcd60e51b815260206004820152601960248201527f746f74616c566f74696e67506f776572206f766572666c6f77000000000000006044820152fd5b606460405162461bcd60e51b815260206004820152602060248201527f63757272656e74436c617373566f74696e67506f776572206f766572666c6f776044820152fd5b90506200054f91925062002a7f9394608051526202712b602052620028c18360066040608051200162005f0b565b90620028e6565b62002ace9086608051526202712b60205262002abb8162002ab46200291a8760036040608051200162005f0b565b5062005f0b565b90549060031b1c6200200d828762005bed565b6200293a565b60805180f35b60019060208451940193818401550162002872565b606460405162461bcd60e51b815260206004820152601b60248201527f657865637574696e6720656e642074696d65206f766572666c6f7700000000006044820152fd5b606460405162461bcd60e51b815260206004820152601860248201527f766f74696e6720656e642074696d65206f766572666c6f7700000000000000006044820152fd5b6001906020845194019381840155016200278a565b60019060208451940193818401550162002724565b600190602084519401938184015501620026bf565b80516001600160a01b03815116855490602083015160268110156200182d5774ff00000000000000000000000000000000000000007fffffffffffffffffffffff0000000000000000000000000000000000000000009160a01b1692161717855560406001860191015190815190602082519262002c358484620064d6565b019060805152608051906020822091905b83821062003276575050505060208101518051906001600160401b03821162001f92576020600288019162002c7c848462016a33565b019060805152608051916020832090835b8160051c81106200322d5750601f1981168103620031dc575b5050506040820151805191600160401b83116200237b5750600387015482600389015580831062003153575b506080805160038901905251602080822092015b8382106200313257505050506060810151805190600160401b821162001f9257600487015482600489015580831062003095575b506080805160048901905251602080822092015b838210620030745750505050608081015180516001600160401b03811162001f92576020600588019262002d63838562016a33565b0191608051526080519060208220915b8160051c8110620030345750601f198116810362002fd8575b5050506006850160a0820151602081519162002da9838562006564565b0191608051526080516020812090925b82841062002f7257505050506007850160c0820151602081519162002ddf838562006564565b0191608051526080516020812090925b82841062002f03575050505060e001518051906001600160401b03821162001f925762002e2f8262002e25600889015462005221565b600889016200678f565b60805190602091601f841160011462002e88575092826009936020936001966080519262002e7c575b5050600019600383901b1c191690851b1760088801555b0194019101909262002646565b015190508e8062002e58565b600888019052608051602081209291905b601f198516811062002eea575083602093600196938793600997601f1981161062002ed0575b505050811b01600888015562002e6f565b015160001960f88460031b161c191690558e808062002ebf565b9192602060018192868501518155019401920162002e99565b80518051906001600160401b03821162001f925760209062002f2683866200611d565b01836080515260805160208120905b83811062002f5457505050506001602081920192019301929062002def565b60019060206001600160a01b03855116940193818401550162002f35565b80518051906001600160401b03821162001f925760209062002f9583866200611d565b01836080515260805160208120905b83811062002fc357505050506001602081920192019301929062002db9565b60019060208451940193818401550162002fa4565b60805192835b601f1983168303811062002ffc57505060051c01558a808062002d8c565b909360206200302a60019284885191620030168362004eaa565b9060ff809160031b9316831b921b19161790565b9501910162002fde565b608051805b602081106200305057508382015560010162002d73565b949060206200306a60019288855191620030168362004eaa565b9201950162003039565b6006602082620030886001945187620068ac565b0193019101909162002d2e565b60068181020481036200311a5760068381020483036200311a5760048801608051526020608051208360060281015b8260060282018110620030d957505062002d1a565b6006906080518082556001820155620030f560028201620065b3565b60805160038201556200310b6004820162006448565b608051600582015501620030c4565b634e487b7160e01b6080515260116004526024608051fd5b6007602082620031466001945187620168c1565b0193019101909162002ce6565b60078181020481036200311a5760078381020483036200311a5760038801608051526020608051208360070281015b82600702820181106200319757505062002cd2565b80620031a560079262005fed565b6080518060018301558060028301558060038301556004820155620031cd6005820162006448565b60805160068201550162003182565b8392845b601f19831683038110620031fe57505060051c01558b808062002ca6565b90936020620032236001928488511515919060ff809160031b9316831b921b19161790565b95019101620031e0565b84855b602081106200324757508382015560010162002c8d565b949060206200326c6001928885511515919060ff809160031b9316831b921b19161790565b9201950162003230565b60016020826200328983945187620067d9565b0193019101909162002c46565b60098181020481036200311a5760098381020483036200311a5760018501608051526020608051208360090281015b8260090282018110620032da57505062002631565b6080518155620032ed6001820162006497565b6200330360028201805490608051815562016a0b565b600381015460805180600384015581620033ff575b50506004810154608051806004840155816200337b575b5050806200334a600560099301805490608051815562016a0b565b620033586006820162006525565b620033666007820162006525565b620033746008820162006448565b01620032c5565b6006828102048203620033e957506004820160805152602060805120906006028101905b818110156200332f576006906080518082556001820155620033c460028201620065b3565b6080516003820155620033da6004820162006448565b6080516005820155016200339f565b634e487b7160e01b905260116004526024608051fd5b6007828102048203620033e957506003820160805152602060805120906007028101905b818110156200331857806200343a60079262005fed565b6080518060018301558060028301558060038301556004820155620034626005820162006448565b60805160068201550162003423565b606460405162461bcd60e51b815260206004820152601d60248201527f766f74696e6720697320616c726561647920696e2070726f67726573730000006044820152fd5b34620001e6576020366003190112620001e6576004356127108110156200055f57620034eb60046200195a9260031b01620054ac565b60405191829182620040b2565b34620001e65760805180600319360112620001e3576040518062013881918254808252602080920193608051527fcd6f7cece5c70f73af31bb8ed8b80ae1c2a9e5eb261bd5ab2d9374b0c38719c891608051905b82821062003567576200195a85620034eb8189038262003fd9565b83546001600160a01b0316865294850194600193840193909101906200354c565b34620001e657602080600319360112620001e6576001600160a01b03620035ae62003ecd565b604051620035bc8162003efe565b608051815260805184820152606060408201526060608051910152166080515262013880815260406080512060405190620035f78262003efe565b6200367281549160ff83161515845260ff8585019360081c161515835260026040519162003636836200362e81600185016200525e565b038462003fd9565b6040860192835201549260608501938452604051958695818752511515908601525115156040850152516080606085015260a08401906200412b565b905160808301520390f35b34620001e65760805180600319360112620001e35760206202712e54604051908152f35b34620001e6576020366003190112620001e6576020620036c360043562006ee3565b604051908152f35b34620001e65760805180600319360112620001e3576020620036c36200709a565b34620001e6576020366003190112620001e65760206200370e60043562016c12565b6200371d6040518092620040f8565bf35b34620001e657602080600319360112620001e6576004356200374d478211156200192962001dc08462006190565b33608051526201388790818352620037976040608051205482111562001929620037778462006190565b3360805152858752620037906040608051205462006190565b906200631d565b3360805152818352620037df620037b5826040608051205462006155565b919062001929620037c68562006190565b3360805152868852620037906040608051205462006190565b33608051528284526080518080938193604083205581811562003971575b3390f1156200036257336080515281526040608051205415620038205760805180f35b62013888805490620038328262005d44565b9260805192835b818110620039055750506200384e8362005d44565b918251926001600160401b03841162001f925791839262003870829562005f3d565b01906080515260805192835b838110620038c957505050505b8181106200389957505062002ad4565b806200054f6001600160a01b03620038b6620038c3948762005bed565b511662001f308362005d7c565b62003889565b82516001600160a01b03167ff9ab3ee50aab7a7cf5b7d30204dd21b5da7cc33690a7aec17b3653a822a635df820155918101916001016200387c565b620039108162005d7c565b6001600160a01b03915490826003923392841b1c16036200393f575b5050620039399062005b81565b62003839565b956200396891839762003956620039399562005d7c565b9054911b1c166200200d828a62005bed565b9490876200392c565b506108fc620037fd565b34620001e65760805180600319360112620001e3576040518062013886918254808252602080920193608051527f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa491608051905b828210620039ea576200195a85620034eb8189038262003fd9565b83546001600160a01b031686529485019460019384019390910190620039cf565b34620001e6576040366003190112620001e657600435602435906001600160a01b038216809203620001e6576127108110156200055f5760039160805152811b01602052602060406080512054604051908152f35b34620001e65760805180600319360112620001e3576040518062013888918254808252602080920193608051527ff9ab3ee50aab7a7cf5b7d30204dd21b5da7cc33690a7aec17b3653a822a635df91608051905b82821062003acf576200195a85620034eb8189038262003fd9565b83546001600160a01b03168652948501946001938401939091019062003ab4565b34620001e65760805180600319360112620001e357602060ff6202712954166040519062003b1e8162004091565b8152f35b34620001e6576040366003190112620001e65762003b3f62003ecd565b60249081356001600160401b038111620001e65762003b6390369060040162004021565b91600260ff62027129541662003b798162004091565b0362003e67576202712d5442101562003e23576001600160a01b0382169182608051526202712c906020938285526080519560408720966202712e978854809252875260ff604060805120541662003de05781519481608051526202712b938489526003968760406080512001540362003d7757608051528752608051906040822091528652608051966040882060019889918260ff19825416179055905b62003c235760805180f35b825181101562003d715762003c39818462005bed565b511562003cf7578154806080515284895262003c9c62003c7f62003c668460046040608051200162005f0b565b9054908a1b1c62003c78858a62016a9d565b9062007088565b909260805152868b52620028c18460046040608051200162005f0b565b1562003cb45762003cad9062005b81565b8862003c18565b606488601c896040519262461bcd60e51b845260048401528201527f766f74696e6720666f7220706f776572596573206f766572666c6f77000000006044820152fd5b8154806080515284895262003d1d62003c7f62003c668460046040608051200162005f0b565b1562003d2e5762003cad9062005b81565b606488601b896040519262461bcd60e51b845260048401528201527f766f74696e6720666f7220706f7765724e6f206f766572666c6f7700000000006044820152fd5b62002ad4565b60848960398a6040519262461bcd60e51b845260048401528201527f746865206e756d626572206f6620766f74657320646f6573206e6f74206d617460448201527f636820746865206e756d626572206f6620706f6c6963696573000000000000006064820152fd5b6064876017886040519262461bcd60e51b845260048401528201527f766f7465722068617320616c726561647920766f7465640000000000000000006044820152fd5b60649060176040519162461bcd60e51b8352602060048401528201527f766f74696e6720706572696f642068617320656e6465640000000000000000006044820152fd5b60649060196040519162461bcd60e51b8352602060048401528201527f766f74696e67206973206e6f7420696e2070726f6772657373000000000000006044820152fd5b3462003ec9578160031936011262003ec95760209062027127548152f35b5080fd5b600435906001600160a01b038216820362003ee457565b600080fd5b35906001600160a01b038216820362003ee457565b608081019081106001600160401b0382111762003f1a57604052565b634e487b7160e01b600052604160045260246000fd5b60c081019081106001600160401b0382111762003f1a57604052565b61010081019081106001600160401b0382111762003f1a57604052565b606081019081106001600160401b0382111762003f1a57604052565b60e081019081106001600160401b0382111762003f1a57604052565b604081019081106001600160401b0382111762003f1a57604052565b602081019081106001600160401b0382111762003f1a57604052565b90601f801991011681019081106001600160401b0382111762003f1a57604052565b6001600160401b03811162003f1a5760051b60200190565b3590811515820362003ee457565b81601f8201121562003ee4578035916200403b8362003ffb565b926200404b604051948562003fd9565b808452602092838086019260051b82010192831162003ee4578301905b82821062004077575050505090565b838091620040858462004013565b81520191019062004068565b600411156200409c57565b634e487b7160e01b600052602160045260246000fd5b6020908160408183019282815285518094520193019160005b828110620040da575050505090565b83516001600160a01b031685529381019392810192600101620040cb565b9060038210156200409c5752565b60005b8381106200411a5750506000910152565b818101518382015260200162004109565b90602091620041468151809281855285808601910162004106565b601f01601f1916010190565b81601f8201121562003ee4578035916200416c8362003ffb565b926200417c604051948562003fd9565b808452602092838086019260051b82010192831162003ee4578301905b828210620041a8575050505090565b8135815290830190830162004199565b6001600160401b03811162003f1a57601f01601f191660200190565b81601f8201121562003ee457803590620041ee82620041b8565b92620041fe604051948562003fd9565b8284526020838301011162003ee457816000926020809301838601378301015290565b9080601f8301121562003ee4578135906200423c8262003ffb565b926200424c604051948562003fd9565b828452602092838086019160051b8301019280841162003ee457848301915b8483106200427c5750505050505090565b82356001600160401b03811162003ee4578691620042a084848094890101620041d4565b8152019201916200426b565b9080601f8301121562003ee457813590620042c78262003ffb565b92620042d7604051948562003fd9565b828452602092838086019160051b8301019280841162003ee457848301915b848310620043075750505050505090565b82356001600160401b03811162003ee45786916200432b8484809489010162004152565b815201920191620042f6565b9080601f8301121562003ee457813591620043528362003ffb565b92604092620043648451958662003fd9565b8185526020938486019185600594851b8601019481861162003ee457868101935b8685106200439857505050505050505090565b84356001600160401b03811162003ee457820183603f8201121562003ee4578881013590620043c78262003ffb565b91620043d68751938462003fd9565b808352868b8401918a1b8301019186831162003ee45791878c94929593015b8181106200440e57505082935081520194019362004385565b9193809193956200441f8462003ee9565b8152019101918b93919492620043f5565b6060918161070052806107c052031262003ee457604051620044528162003f69565b8091620044626107005162003ee9565b8252610700516020810135806107e0526001600160401b03811162003ee4576107c051910190601f8201121562003ee457620044a8620044b69135806106e05262003ffb565b604051806106c05262003fd9565b6106c0516106e051905260206106c05101926107c0516106e0519060206107e05161070051019260051b8301011162003ee4576020016106a05290925b6106e05160051b6107e05161070051019060206106a0519183010181101562004e6c57356001600160401b03811162003ee457606091018061074052601f19906107c05103011262003ee4576040516200454d8162003f69565b6200455e6020610740510162003ee9565b81526040610740510135602681101562003ee45760208201526107405160608101356107208190526001600160401b031062003ee45761010090601f19906060810135016107c05103011262003ee457620045c0604051806107a05262003f4c565b6107205161074051016020810135906001600160401b03821162003ee4576020620045f2926107c05192010162004221565b6107a051526107205161074051016040810135906001600160401b03821162003ee457602062004629926107c05192010162004021565b60206107a0510152610720516107405101926001600160401b0360608501351162003ee4576107c051603f6060860135860101121562003ee45762004678602060608601358601013562003ffb565b9462004688604051968762003fd9565b60608501358086016020908101358089526107c0516107205161074051938b01969493019092019160059190911b82016040011162003ee457604001925b61072051610740510160608801359081019088016020013560051b8101604001851015620047d2578435906001600160401b03821162003ee4570160e09182603f19836107c05103011262003ee457604051620047238162003f85565b60408301356001600160401b03811162003ee4576107c0516200474b91850160400162004152565b815260608301356020820152608080840135604083015260a09485850135606084015260c0916200477e83870162004013565b90840152840135946001600160401b03861162003ee45761010060209695620047c292620047b7899860406107c05191850101620041d4565b908601520162004013565b90820152815201930192620046c6565b505095915091935094919460406107a0510152610720516107405101946080860135610780526001600160401b0360808701351162003ee4576107c0519560808101350195603f8701121562003ee45762004831602087013562003ffb565b9462004841604051968762003fd9565b6020878101358088526107c051610780516107205161074051948b01989401019160051b82016040011162003ee4576040909893929897949701935b61078051610720516107405101016040602086013560051b82010186101562004caf578535610760526001600160401b0386351162003ee45761010090603f19908735016107c05103011262003ee45760405193620048dc8562003f4c565b6040610760516107805161072051610740510101010135600681101562003ee45785526060610760516107805161072051610740510101010135602086015261076051610780516107205161074051010101996001600160401b0360808c01351162003ee4576107c051605f60808d01358d0101121562003ee4578a906200496e604060808401358401013562003ffb565b9a6200497e6040519c8d62003fd9565b608083013592830160400135808d526107c051610760516107805161072051610740510101019094019360208e01939160051b85016060011162003ee4579192606001915b6107605161078051610720516107405101010160808f0135908101908f016040013560051b810160600184101562004bb5578335906001600160401b03821162003ee45760c0605f198383016107c05103011262003ee4576040519162004a2a8362003f30565b8181016060810135845260800135600581101562003ee457602084015260a08183010135600481101562003ee4576040840152603d60c08284010135101562003ee45760c0818301013560608401526001600160401b0360e082840101351162003ee4576107c05162004aa99083830160e08101350160600162004152565b60808401526101008183010135916001600160401b03831162003ee45701016080605f19826107c05103011262003ee4578f956040519262004aeb8462003efe565b60608301356001600160401b03811162003ee4576107c05162004b1391850160600162004221565b845260808301356001600160401b03811162003ee4576107c05162004b3d918501606001620042ac565b602085015260a08301356001600160401b03811162003ee4576107c05162004b6a91850160600162004337565b604085015260c0830135936001600160401b03851162003ee45762004b9d60209594606087966107c051920101620041d4565b606082015260a08201528152019301929350620049c3565b509697939c509798939a915050604082015260a091826107605161078051610720516107405101010101356060830152610760516107805161072051610740510101019160c09384840135946001600160401b03861162003ee45762004c2960209695604088976107c051920101620041d4565b608084015260e09162004c5083610760516107805161072051610740510101010162004013565b9084015262004c75610100610760516107805161072051610740510101010162004013565b9083015262004c9a610120610760516107805161072051610740510101010162004013565b9082015281520195019396979291976200487d565b509250969250925060606107a0510152610720516107405101936001600160401b0360a08601351162003ee4576107c0519460a0810135810195603f8701121562003ee45762004d03602087013562003ffb565b9262004d13604051948562003fd9565b6020878101358086526107c051610720516107405193880196930160a0860135019160051b82016040011162003ee457604001935b604060208a013560051b60a086013561072051610740510101010185101562004d86578435600581101562003ee45781526020948501940162004d48565b5096509694939291505060806107a05101526107205161074051019160c09283810135906001600160401b03821162003ee457602062004dcd926107c051920101620042ac565b60a06107a05101526107205161074051019260e09384810135906001600160401b03821162003ee457602062004e0a926107c05192010162004337565b906107a0510152610720516107405101926101008401356001600160401b03811162003ee4576107c05160209562004e4592018601620041d4565b906107a05101526107a05160408201528152019260206106a051016106a0529092620044f3565b50505091906106c05160208201526107005160408101356001600160401b03811162003ee4576107c05160409262004ea59201620041d4565b910152565b600511156200409c57565b90815180825260208080930193019160005b82811062004ed6575050505090565b83518552938101939281019260010162004ec7565b908082519081815260208091019281808460051b8301019501936000915b84831062004f1a5750505050505090565b909192939495848062004f3a600193601f198682030187528a516200412b565b980193019301919493929062004f09565b908082519081815260208091019281808460051b8301019501936000915b84831062004f7a5750505050505090565b909192939495848062004f9a600193601f198682030187528a5162004eb5565b980193019301919493929062004f69565b908082519081815260208091019281808460051b830101950193600080925b85841062004fdc575050505050505090565b9091929380959697601f1983820301855288519082808351928381520192019085905b8082106200502157505050908060019299019401940192959493919062004fca565b919380600192946001600160a01b03875116815201940192018893929162004fff565b90808251808352602080930192600592818084861b8301019601946000915b84831062005075575050505050505090565b90919293949596601f19828203018352875190610100808201835160068110156200409c579083929189945283850151848401528a60409182870151938386015283518091528561012082818801941b8701019401926000905b8282106200513a575050505050928291620051046001956060808501519084015260808085015190848303908501526200412b565b9160a08082015115159083015260c08082015115159083015260e080910151151591015299019301930191959493929062005063565b9193959650919361011f19878203018552855190815181528c820151620051618162004eaa565b8d82015282820151620051748162004091565b8382015260609081830151603d8110156200409c576001938f93836200520f93828796015281620051ff620051ee620051dd6080620051c08189015160c080848a015288019062004eb5565b9560a0809901519881880391015287519080875286019062004eeb565b888701518582038a87015262004f4b565b8a8601518482038c86015262004fab565b930151918184039101526200412b565b9701950192018b9695949391620050cf565b90600182811c9216801562005253575b60208310146200523d57565b634e487b7160e01b600052602260045260246000fd5b91607f169162005231565b9060009291805491620052718362005221565b918282526001938481169081600014620052d8575060011462005295575b50505050565b90919394506000526020928360002092846000945b838610620052c35750505050010190388080806200528f565b805485870183015294019385908201620052aa565b9294505050602093945060ff191683830152151560051b010190388080806200528f565b9081546200530a8162003ffb565b926040936200531c8551918262003fd9565b828152809460208092019260005281600020906000935b8585106200534357505050505050565b600184819284516200535b816200061d818a6200525e565b81520193019401939162005333565b9060405191828154918282526020928383019160005283600020936000905b828210620053a457505050620053a29250038362003fd9565b565b85548452600195860195889550938101939091019062005389565b90604051620053ce8162003f85565b60c060ff60068395620053e1816200536a565b8552600181015460208601526002810154604086015260038101546060860152826004820154161515608086015260405162005426816200061d81600586016200525e565b60a08601520154161515910152565b60068210156200409c5752565b603d8210156200409c5752565b9081546200545d8162003ffb565b926200546d604051948562003fd9565b818452600090815260208082208186015b8484106200548d575050505050565b60018381926200549d856200536a565b8152019201930192906200547e565b9060405191828154918282526020928383019160005283600020936000905b828210620054e457505050620053a29250038362003fd9565b85546001600160a01b031684526001958601958895509381019390910190620054cb565b908154620055168162003ffb565b9262005526604051948562003fd9565b818452600090815260208082208186015b84841062005546575050505050565b60018381926200555685620054ac565b81520192019301929062005537565b9060036060604051620055788162003efe565b620055c381956200558981620052fc565b835262005599600182016200544f565b6020840152620055ac6002820162005508565b60408401526200362e60405180968193016200525e565b0152565b919060608101906001600160a01b03845116815260208401519160606020830152825180915260808201602060808360051b85010194019160005b8181106200562a5750505050604062005627939401519060408184039101526200412b565b90565b90919294607f1985820301845285516001600160a01b03815116825260208101519060268210156200409c57604091602084015201519060606040820152620056828251610100606084015261016083019062004eeb565b602083810151838303605f190160808501528051808452928201929101906000905b80821062005a1757505050604083015190605f198382030160a0840152815180825260208201906020808260051b85010194019260005b82811062005992575050505050606083015190605f198382030160c0840152815190818152602081016020808460051b8401019401926000925b818410620057de575050505050608083015190605f198382030160e0840152602080835192838152019201906000905b808210620057ba57505050620057ad8360209360e0620057966200577e879660a060019a0151605f198683030161010087015262004f4b565b60c0850151848203605f190161012086015262004fab565b92015190610140605f19828503019101526200412b565b9701940192910162005602565b9091926020806001928651620057d08162004eaa565b815201940192019062005745565b9091929394601f9e9d9c9e19828203018452855190815160068110156200409c5781526020820151602082015260408201516101006040830152610100820181518091526101206020818501918360051b8601019301916000905b808210620058a657505050509e9f9d9e82602092620058728493606060019701516060840152608084015183820360808501526200412b565b9160a0810151151560a083015260c0810151151560c083015260e08091015115159101529701940194019293919062005715565b9091929361011f19868203018452845190815181526020820151620058cb8162004eaa565b60208201526040820151620058e08162004091565b6040820152606082015191603d8310156200409c5762005985826020939260019560608695015260a062005924608083015160c0608086015260c085019062004eb5565b9101519160a0818303910152606062005973620059606200594f855160808652608086019062004eeb565b878601518582038987015262004f4b565b6040850151848203604086015262004fab565b9201519060608184039101526200412b565b9601940192019062005839565b9091929394602080600192601f19868203018852885190620059fc620059c1835160e080855284019062004eb5565b8484015185840152604084015160408401526060840151606084015260808401511515608084015260a084015183820360a08501526200412b565b60c092830151151591909201529701950193929101620056db565b909192602080600192865115158152019401920190620056a4565b90620053a2604560405180947f496e76616c69642070726f6772616d20616464726573732e204d73672e73656e60208301527f6465723a20000000000000000000000000000000000000000000000000000000604083015262005a9f815180926020868601910162004106565b810103602581018552018362003fd9565b90620053a26040805180947f2c20616e642070726f6772616d206f70657261746f7220616464726573733a20602083015262005af6815180926020868601910162004106565b810103602081018552018362003fd9565b6020620053a291939293604051948162005b2b879351809286808701910162004106565b820162005b418251809386808501910162004106565b0103808552018362003fd9565b1562005b575750565b62005b7d9060405191829162461bcd60e51b83526020600484015260248301906200412b565b0390fd5b600019811462005b915760010190565b634e487b7160e01b600052601160045260246000fd5b80511562005bb55760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101562005bb55760400190565b80516002101562005bb55760600190565b805182101562005bb55760209160051b010190565b600f620053a2916020949360405195869262005c6062005c528386016021907f496e76616c696420776974686472617720616d6f756e742e20416d6f756e743a8152600160fd1b60208201520190565b918281519485920162004106565b017f2c20616e642062616c616e63653a200000000000000000000000000000000000815262005c99825180936020878501910162004106565b010360101981018552018362003fd9565b6019620053a2916020949360405195869262005cfa62005c528386016021907f496e76616c696420776974686472617720616d6f756e742e20416d6f756e743a8152600160fd1b60208201520190565b017f2c20616e6420776974686472617761626c6520636173683a2000000000000000815262005d33825180936020878501910162004106565b010360061981018552018362003fd9565b9062005d508262003ffb565b62005d5f604051918262003fd9565b828152809262005d72601f199162003ffb565b0190602036910137565b62013888805482101562005bb5576000527ff9ab3ee50aab7a7cf5b7d30204dd21b5da7cc33690a7aec17b3653a822a635df0190600090565b62013886805482101562005bb5576000527f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa40190600090565b62013881805482101562005bb5576000527fcd6f7cece5c70f73af31bb8ed8b80ae1c2a9e5eb261bd5ab2d9374b0c38719c80190600090565b6202711d805482101562005bb5576000527f7f4320370b90cfd882bd4442421f8b4dbea0ca3aefc8d29d4787126914d53c5a0190600090565b6201388a805482101562005bb5576000527f3fb2ace5abc3439263a869a5230f0e568826a389e5a73118798eab8fd0f728590190600090565b62027119805482101562005bb5576000527fe43a1016fd4ea9a9b882244b4d001d1f2d6b7fe146dc2643bb2c59db4a7bb0e10190600090565b6202711b805482101562005bb5576000527fc59860dc09a642b584039e685e1d1ef32a7f12bf29c382ee17f417fe2f31f3990190600090565b805482101562005bb55760005260206000200190600090565b81811062005f30575050565b6000815560010162005f24565b600160401b811162003f1a57620138889081549080835581811062005f6157505050565b620053a2926000527ff9ab3ee50aab7a7cf5b7d30204dd21b5da7cc33690a7aec17b3653a822a635df918201910162005f24565b600160401b811162003f1a57620138869081549080835581811062005fb957505050565b620053a2926000527f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa4918201910162005f24565b8054600082558062005ffd575050565b620053a29160005260206000209081019062005f24565b600160401b811162003f1a5762027119908154908083558181106200603857505050565b620053a2926000527fe43a1016fd4ea9a9b882244b4d001d1f2d6b7fe146dc2643bb2c59db4a7bb0e1918201910162005f24565b600160401b811162003f1a576202711b908154908083558181106200609057505050565b620053a2926000527fc59860dc09a642b584039e685e1d1ef32a7f12bf29c382ee17f417fe2f31f399918201910162005f24565b6201389180549060009081815582620060dc57505050565b81527f8f332db73d3937798ea82422156d059730b0b3058606439b57b7ae623e945366918201915b8281106200611157505050565b81815560010162006104565b90600160401b811162003f1a578154908083558181106200613d57505050565b620053a2926000526020600020918201910162005f24565b919082811162006166576001920390565b50600091508190565b81156200617a570490565b634e487b7160e01b600052601260045260246000fd5b806000917a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000808210156200630e575b506d04ee2d6d415b85acef810000000080831015620062fe575b50662386f26fc1000080831015620062ee575b506305f5e10080831015620062de575b5061271080831015620062ce575b506064821015620062bd575b600a80921015620062b2575b600190816021818601956200623287620041b8565b9662006242604051988962003fd9565b80885262006253601f1991620041b8565b01366020890137860101905b6200626c575b5050505090565b600019019083907f30313233343536373839616263646566000000000000000000000000000000008282061a835304918215620062ac579190826200625f565b62006265565b91600101916200621d565b919060646002910491019162006211565b6004919392049101913862006205565b60089193920491019138620061f7565b60109193920491019138620061e7565b60209193920491019138620061d4565b604093508104915038620061ba565b601e620053a291602094936040519586926200636d62005c528386016021907f496e76616c696420776974686472617720616d6f756e742e20416d6f756e743a8152600160fd1b60208201520190565b017f2c20616e6420776974686472617761626c65206469766964656e64733a2000008152620063a6825180936020878501910162004106565b010360011981018552018362003fd9565b90620063c38262003ffb565b604090620063d48251918262003fd9565b8381528093620063e7601f199162003ffb565b019160005b838110620063fa5750505050565b60209082516200640a8162003f4c565b6000815282600081830152606080868401526000818401526080830152600060a0830152600060c0830152600060e0830152828601015201620063ec565b62006454815462005221565b90816200645f575050565b81601f6000931160011462006472575055565b90808391825262006493601f60208420940160051c84016001850162005f24565b5555565b8054906000815581620064a8575050565b6000526020600020908101905b818110620064c1575050565b80620064cf60019262006448565b01620064b5565b90600160401b811162003f1a57815491818155828210620064f657505050565b600052602060002091820191015b81811062006510575050565b806200651e60019262006448565b0162006504565b805490600081558162006536575050565b6000526020600020908101905b8181106200654f575050565b806200655d60019262005fed565b0162006543565b90600160401b811162003f1a578154918181558282106200658457505050565b600052602060002091820191015b8181106200659e575050565b80620065ac60019262005fed565b0162006592565b8054600080835581620065c557505050565b60079282840292848404036200664657815260208120918201915b828110620065ee5750505050565b8082859255826001820155620066076002820162005fed565b620066156003820162006497565b620066236004820162006525565b620066316005820162006525565b6200663f6006820162006448565b01620065e0565b602482634e487b7160e01b81526011600452fd5b600160401b821162003f1a578054908281558183106200667957505050565b600792828402928484040362005b9157808402908482040362005b915760009182526020822092830192015b828110620066b35750505050565b8082859255826001820155620066cc6002820162005fed565b620066da6003820162006497565b620066e86004820162006525565b620066f66005820162006525565b620067046006820162006448565b01620066a5565b5160068110156200409c5790565b9060068110156200409c5760ff80198354169116179055565b906200673e8162004eaa565b60ff80198354169116179055565b90620067588162004091565b61ff0082549160081b169061ff001916179055565b90603d8110156200409c5762ff000082549160101b169062ff00001916179055565b9190601f81116200679f57505050565b620053a2926000526020600020906020601f840160051c83019310620067ce575b601f0160051c019062005f24565b9091508190620067c0565b91909182516001600160401b03811162003f1a576200680581620067fe845462005221565b846200678f565b602080601f83116001146200684457508192939460009262006838575b50508160011b916000199060031b1c1916179055565b01519050388062006822565b90601f198316958460005282600020926000905b888210620068935750508360019596971062006879575b505050811b019055565b015160001960f88460031b161c191690553880806200686f565b8060018596829496860151815501950193019062006858565b815160068110156200409c57620068c4908262006719565b602082015160018201556002810160408301516020815191620068e883856200665a565b01916000526020600020916000905b8282106200697c57505050509060e06005620053a293606084015160038201556200692a608085015160048301620067d9565b01916200694960a08201511515849060ff801983541691151516179055565b60c0810151835461ff00191690151560081b61ff00161783550151815462ff0000191690151560101b62ff000016179055565b80518051855560018501620069a160208301516200699a8162004eaa565b8262006732565b620069bc6040830151620069b58162004091565b826200674c565b6060820151603d8110156200409c57620069d6916200676d565b60808101518051906001600160401b03821162003f1a576020600288019162006a0084846200611d565b0190600052602060002060005b83811062006cab575050505060a0015180518051906020600388019162006a358484620064d6565b01906000526020600020906000905b83821062006c8b5750505050600485016020820151602081519162006a6a838562006564565b019160005260206000206000925b82841062006c275750505050600585016040820151602081519162006a9e838562006564565b019160005260206000206000925b82841062006bba5750505050606001518051906001600160401b03821162003f1a5762006aec8262006ae2600689015462005221565b600689016200678f565b602090601f831160011462006b3f57928260079360209360019660009262006b33575b5050600019600383901b1c191690851b1760068801555b01940191019092620068f7565b01519050388062006b0f565b906006870160005260206000209160005b601f198516811062006ba1575083602093600196938793600797601f1981161062006b87575b505050811b01600688015562006b26565b015160001960f88460031b161c1916905538808062006b76565b9192602060018192868501518155019401920162006b50565b80518051906001600160401b03821162003f1a5760209062006bdd83866200611d565b0183600052602060002060005b83811062006c0957505050506001602081920192019301929062006aac565b60019060206001600160a01b03855116940193818401550162006bea565b80518051906001600160401b03821162003f1a5760209062006c4a83866200611d565b0183600052602060002060005b83811062006c7657505050506001602081920192019301929062006a78565b60019060208451940193818401550162006c57565b600160208262006c9e83945187620067d9565b0193019101909162006a44565b60019060208451940193818401550162006a0d565b6201388390815481101562005bb557600691600052027f9e32270fdbb1cb37df0574dfc18a9a2c56583299a239108c9d137f746b82200a0190600090565b6202711690815481101562005bb557600691600052027f2a7aa4e7f2fefac7a07702701afb9c202f6f79fb2762c8e42b37a264307667fa0190600090565b6201388290815481101562005bb557600691600052027fe5dac618068543225ae1c2f585dbaa37d058ab507104bc7da3da5ab2e5666cc70190600090565b6202711590815481101562005bb557600691600052027f0f9b10e190177c3c56fc6ce7689c8130c567df57aa02c08e7a090a59992adf920190600090565b620138828054600160401b81101562003f1a5762006ddc9160018201905562006d3c565b91909162006def57620053a291620068ac565b634e487b7160e01b600052600060045260246000fd5b620138838054600160401b81101562003f1a5762006ddc9160018201905562006cc0565b620271168054600160401b81101562003f1a5762006ddc9160018201905562006cfe565b620271158054600160401b81101562003f1a5762006ddc9160018201905562006d7a565b1562006e7957565b608460405162461bcd60e51b815260206004820152603760248201527f73756d4469766964656e64576569676874466f72546f6b656e436c6173733a2060448201527f6469766964656e64576569676874206f766572666c6f770000000000000000006064820152fd5b61271081101562005bb557600390811b60028101549060009260049384830191825492829682849601935b85871062006f355750505050505050620056279162006f2d9162006fe1565b919062006e71565b98979091929394959862006f965762006f8a8962006f826001600160a01b0362006f656200054f9c9d8862005f0b565b905490891b1c169360009485528860205260408520549062007088565b9a9062007003565b95949392919062006f0e565b603282634e487b7160e01b6000525260246000fd5b90811562006fd857606462006fc481840293846200616f565b0362006fd05760019190565b600091508190565b60019150600090565b9190821562006ff95762006fc481840293846200616f565b5060019150600090565b156200700b57565b608460405162461bcd60e51b815260206004820152602e60248201527f746f74616c546f6b656e73506572546f6b656e436c6173733a20746f74616c5460448201527f6f6b656e73206f766572666c6f770000000000000000000000000000000000006064820152fd5b906001820191821062006fd05760019190565b9190820191821062006fd05760019190565b6201388b54620070e4620070ad6201733b565b91620070bf6127109384831062005b4e565b620070d96201388e546201388c54111562001929620173c2565b6201388d5462006fe1565b919050620070f162017423565b5060009081925b81841062007113575b6200710e93500462007159565b905090565b9160ff60078560031b015416156200715257836200713f6200714b9262003c786200054f969762006ee3565b94906200192962017423565b92620070f8565b9162007101565b90801562007171576200716c916200616f565b600191565b5050600090600090565b620138918054600160401b81101562003f1a576001810180835581101562005bb5576001600160a01b03916000527f8f332db73d3937798ea82422156d059730b0b3058606439b57b7ae623e9453660191166001600160a01b0319825416179055565b6201388f8054600160401b81101562003f1a576001810180835581101562005bb5576001600160a01b03916000527f846ab89c81ea9339188216a1864da1a19ebe28d411cbec99efa70ca6d389710d0191166001600160a01b0319825416179055565b6201388190815491600160401b83101562003f1a578262001f30916001620053a29501905562005dee565b604051906200727b8262003fa1565b601882527f5468652070726f6772616d2069732065786563757465642e00000000000000006020830152565b600091825b602080840190815180518710156200743f5781620072cf88620072d79362005bed565b510162007a5a565b602692838210156200409c57601a918203620073975787620072fa915162005bed565b519282840151908110156200409c570362007353575093620073446200734c926200733c6200733560a060406200054f9a0151015162005ba7565b5162005ba7565b519062007088565b959062007a68565b92620072ac565b6064906040519062461bcd60e51b82526004820152601b60248201527f546865206f70636f6465206973206e6f74205041595f434153482e00000000006044820152fd5b92919050620073b081620072cf89869a979a5162005bed565b828110156200409c57601403620073e957505090620073446200054f9562003c78620073e2846200734c965162005bed565b5162007ab4565b620073fb90620072cf85855162005bed565b908110156200409c5760151462007419575b506200734c9062005b81565b9062007344620074389562003c78620073e2846200734c965162005bed565b906200740d565b505050909250803410600014620074ba57608460405162461bcd60e51b815260206004820152603760248201527f546865207061796d656e74206973206e6f7420656e6f7567682e20546865207460448201527f6f74616c207061796d656e742073686f756c64206265200000000000000000006064820152fd5b803411620078cb575b5062027129805460ff8116620074d98162004091565b600181036200750f5750505080620074ff620074f9620075059362007b4b565b62007b60565b62007bac565b620056276200726c565b6200751a8162004091565b600281148080620078bd575b156200762057505050506200753b8162007b4b565b15620075dc576200754c8162007b4b565b1562007598576200755d9062007bac565b6040516200756b8162003fa1565b601581527f54686520766f74652069732065786563757465642e0000000000000000000000602082015290565b606460405162461bcd60e51b815260206004820152601460248201527f496e76616c696420766f74652070726f6772616d0000000000000000000000006044820152fd5b606460405162461bcd60e51b815260206004820152601760248201527f496e76616c696420766f74696e672070726f6772616d2e0000000000000000006044820152fd5b6200762b8262004091565b60038214918280620078af575b15620077335750505050506200764e8162007b4b565b15620076c95780620074ff620074f9620076689362007b4b565b604051620076768162003f69565b603a81527f5468652070656e64696e672070726f6772616d2069732065786563757465642060208201527f616674657220766f74696e6720616e6420617070726f76616c2e000000000000604082015290565b608460405162461bcd60e51b815260206004820152602260248201527f496e76616c696420657865637574696e672070656e64696e672070726f67726160448201527f6d2e0000000000000000000000000000000000000000000000000000000000006064820152fd5b6200773e8162004091565b8180620078a0575b8062007892575b15620077775750505050906200750591600360ff19825416179055620074ff620074f98262007b4b565b620077828162004091565b82156200787d575b5050806200786e575b620077d657505050604051620077a98162003fa1565b601381527f50726f6772616d207465726d696e617465642e00000000000000000000000000602082015290565b60ff19166001179055620077ea8162007b4b565b15620078045780620074ff620074f9620075059362007b4b565b608460405162461bcd60e51b815260206004820152603e60248201527f5b4572726f72203030335d5468652070726f6772616d206973206e6f7420612060448201527f76616c696420657865637574652070656e64696e672070726f6772616d2e00006064820152fd5b50620271285442101562007793565b6200788a91925062004091565b38806200778a565b50620271285442106200774d565b50620271275442101562007746565b506202712854421062007638565b506202712754421062007526565b6001600160a01b03908183511660005262013885908160205260406000205415620079c6575b620078fd903462006155565b901562007982576200792090838551166000528260205260406000205462007088565b9290156200793e5783511660005260205260406000205538620074c3565b606460405162461bcd60e51b815260206004820152601960248201527f546865206e65772062616c616e6365206f766572666c6f772e000000000000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f546865207061796d656e742072657475726e206f766572666c6f772e000000006044820152fd5b6000908162013886928354915b82811062007a1f575b5015620079ed575b509050620078f1565b84865116600160401b82101562003f1a5762001f3082620078fd95600162007a189501905562005db5565b38620079e4565b8662007a2b8262005db5565b919054818b51169260031b1c161462007a4f5762007a499062005b81565b620079d3565b5050600138620079dc565b5160268110156200409c5790565b1562007a7057565b606460405162461bcd60e51b815260206004820152601f60248201527f54686520746f74616c207061796d656e7420697320746f6f206c617267652e006044820152fd5b906000805b6040840160a062007ace818351015162005bcb565b515184101562007b4357926200734462007b3360409462007b2b8562007b238662007b118b62007b18836200054f9f9e62007b119062007b399e51015162005bcb565b5162005bed565b519451015162005bdc565b519062006fe1565b929062007a68565b62007088565b9192905062007ab9565b509093505050565b60200151511562007b5b57600190565b600090565b1562007b6857565b606460405162461bcd60e51b815260206004820152600f60248201527f496e76616c69642070726f6772616d00000000000000000000000000000000006044820152fd5b62007bb78162014448565b5162013ef45760068110156200409c576003811462013e8a578062007c1a57606460405162461bcd60e51b815260206004820152601660248201527f5468652070726f6772616d20697320696e76616c6964000000000000000000006044820152fd5b600481036200b5ba5750906000905b602083015180518310156200b5b4578262007c449162005bed565b51602081018051602690818110156200409c57156200b570578151818110156200409c5760010362007e9257505060408091019062007c8860c08351015162005ba7565b519262007caa60a062007c9f818651015162005ba7565b519451015162005bcb565b519562007cbb8551855114620160fd565b62007cca85518851146201616f565b60005b855181101562007e105762007ce3818662005bed565b51612710908181101562005bb557600160ff600762007d0b9360031b015416151514620161e1565b62007d17828a62005bed565b5162007d24838862005bed565b51908282101562005bb557600662007d429260031b01549062007088565b9062007d4f848962005bed565b51918383101562005bb557600662007d6c9360031b015562016238565b62007d78828a62005bed565b519062007d86838862005bed565b518181101562005bb5578392600362007dc6928b62007daf6001600160a01b0398899262005bed565b5116600052811b0160205287600020549062007088565b62007dd2848a62005bed565b519283101562005bb55760036200054f9362007e0a9662007df4878e62005bed565b5116600052811b016020528760002055620162aa565b62007ccd565b50939262007e2d9192965062007e26906201723d565b9262017121565b94519262007e3b8462003fbd565b60008452600036813760005b835181101562007e7557806200054f62007e6662007e6f938762005bed565b51878a62016d14565b62007e47565b509450926020925062007e89915062005b81565b91905062007c29565b8151818110156200409c5760020362008166575050604080910180519283519562007ed762007ec660a08097015162005ba7565b519562007b18818651015162005bcb565b51938751865103620080fd578751845103620080945787518551036200802b575060005b8551811015620080155762007f11818762005bed565b5190612710918281101562005bb55762007f3760ff6007809360031b015416156201631b565b62007f43828962005bed565b518381101562005bb55760031b01805460ff1916600117905562007f68818a62005bed565b5162007f75828962005bed565b51908382101562005bb557600562007f919260031b01620067d9565b62007f9d818662005bed565b5162007faa828962005bed565b518381101562005bb55760031b6001015562007fc7818762005bed565b5162007fd4828962005bed565b518381101562005bb55760031b6002015562007ff1818862005bed565b519182101562005bb557600060066200800f9360031b015562005b81565b62007efb565b5095509390506020925062007e89915062005b81565b6084905162461bcd60e51b815260206004820152603c60248201527f546865206c656e677468206f6620746f6b656e496e666f20616e6420746f6b6560448201527f6e4469766964656e64576569676874206973206e6f7420657175616c000000006064820152fd5b6084905162461bcd60e51b815260206004820152603960248201527f546865206c656e677468206f6620746f6b656e496e666f20616e6420746f6b6560448201527f6e566f74696e67506f776572206973206e6f7420657175616c000000000000006064820152fd5b6084905162461bcd60e51b815260206004820152603860248201527f546865206c656e677468206f6620746f6b656e496e666f20616e6420746f6b6560448201527f6e496e6465784172726179206973206e6f7420657175616c00000000000000006064820152fd5b81959394929551818110156200409c576003036200874557505060408401906200819560c08351015162005ba7565b5193620081ac60a062007c9f818651015162005ba7565b5193620081c1865185511462001929620174fa565b620081d4865186511462001929620174fa565b60005b86518110156200823e57620081ed818662005bed565b519061271082101562005bb557600362008238926001600160a01b038b5116600052811b016020526200054f6040600020546200822b838a62005bed565b5111156200192962017621565b620081d7565b50909493919460005b855181101562008373576200825d818662005bed565b51906127108083101562005bb55760036001600160a01b0393848c5116600052811b01602052620082a160406000205462008299848962005bed565b519062006155565b90620082ae848a62005bed565b51918383101562005bb5576003620082dd93878f5116600052811b016020526040600020556200192962017621565b620082e9828862005bed565b518181101562005bb5576003908462008303858c62005bed565b5116600052811b01602052620083246040600020546200733c848962005bed565b62008330848a62005bed565b519283101562005bb55760036200054f936200836d9662008352878e62005bed565b5116600052811b016020526040600020556200192962017697565b62008247565b5092620083919195969492506200838a906201723d565b9162017121565b926001600160a01b0360405191620083a98362003fa1565b60018352602036818501375116620083c18262005ba7565b526000905b82518210156200873157620083dc828462005bed565b5196620083ea865162005d44565b93600095620083fa845162005d44565b6104c0528698875b8951811015620084c357896200842f8d6001600160a01b0362008426858562005bed565b51169062017008565b158062008485575b6200844f575b50620084499062005b81565b62008402565b81996001600160a01b036200846d62008449946200847b9462005bed565b51166200200d828c62005bed565b989050896200843d565b50506127108c101562005bb5576001600160a01b03620084a6828c62005bed565b511660005260038c811b0160205289604060002054151562008437565b509098969498979291939760005b895181101562008561576127108c101562005bb5576001600160a01b03620084fa828c62005bed565b511660005260038c811b01602052896040600020541562008528575b50620085229062005b81565b620084d1565b81996001600160a01b03620085466200852294620085579462005bed565b51166200200d826104c05162005bed565b9890508962008516565b50989593929650966127108a1015610680526127108a101562005bb55760048a60031b0154966200859d62008597878a6201542e565b62005d44565b9860009a8b610240525b6106805162005bb557610240518a8110156200865757620085f56001600160a01b038f92620085e39060006106805260048560031b0162005f0b565b90549060031b1c166104c051620170cc565b1562008615575b506200860b6102405162005b81565b61024052620085a7565b9b8b6200200d826200864f949f620086406001600160a01b03916004610240519160031b0162005f0b565b90549060031b1c169262005bed565b9a8c620085fc565b509b9398509591969499909893996000915b838310620086f857505050506106805162005bb5578151916001600160401b03831162003f1a576020600491620086a685848660031b016200611d565b019160031b01600052602060002060005b838110620086da5750505050620086ce9062005b81565b909491959295620083c6565b60019060206001600160a01b038551169401938184015501620086b7565b620087236200872a916001600160a01b0362008715868662005bed565b51166200200d828a62005bed565b9262005b81565b9162008669565b50505091926020915062007e899062005b81565b81959394929551818110156200409c57600403620089d2575050604080920160c094620087866200877a878451015162005ba7565b51968351015162005bcb565b51946200879d60a062007c9f818651015162005ba7565b5193620087b2885188511462001929620174fa565b620087c5885185511462001929620174fa565b620087d8885186511462001929620174fa565b60005b88518110156200883f57620087f1818662005bed565b519061271082101562005bb557600362008839926001600160a01b0362008819848e62005bed565b5116600052811b016020526200054f88600020546200822b838a62005bed565b620087db565b50909691959294939660005b83518110156200897f5762008861818862005bed565b5190612710918281101562005bb55760036001600160a01b03918262008888858a62005bed565b5116600052811b01602052620088a98b62008299848b600020549262005bed565b90620088b6848c62005bed565b51918583101562005bb5576003620088ef9385620088d5888d62005bed565b5116600052811b016020528a600020556200192962017621565b620088fb828a62005bed565b518381101562005bb5576003908262008915858b62005bed565b5116600052811b01602052620089368b6200733c848b600020549262005bed565b91905062008945838b62005bed565b519384101562005bb557620089799360039162008963858b62005bed565b5116600052811b01602052876000205562005b81565b6200884b565b5094620089a9929750620089a2919394506200899b906201723d565b9362017121565b9562017121565b9260005b835181101562007e7557806200054f62007e66620089cc938762005bed565b620089ad565b81959493955190808210156200409c57600591820362008c02575050506040918285019062008a1660a062008a0b818551015162005ba7565b519351015162005bcb565b5192825184510362008b995760005b835181101562008a7e5762008a3b818562005bed565b519061271082101562005bb557600362008a78926001600160a01b038b5116600052811b016020526200054f87600020546200822b838962005bed565b62008a25565b509092919260005b845181101562008b1a5762008a9c818662005bed565b51906127108083101562005bb55760036001600160a01b0393848c5116600052811b0160205262008ad7886000205462008299848962005bed565b62008ae3848a62005bed565b519283101562005bb55760036200054f9362008b14968e5116600052811b0160205289600020556200192962017621565b62008a86565b5095939262008b2b9192506201723d565b916001600160a01b0381519462008b428662003fa1565b6001865260203681880137511662008b5a8562005ba7565b52519462008b688662003fbd565b60008652600036813760005b835181101562007e7557806200054f62007e6662008b93938762005bed565b62008b74565b6084855162461bcd60e51b815260206004820152603560248201527f546865206c656e677468206f6620746f6b656e436c61737320616e6420746f6b60448201527f656e416d6f756e74206973206e6f7420657175616c00000000000000000000006064820152fd5b829693949651818110156200409c5760060362008ea05750505090604080920162008c3260c08251015162005ba7565b519462008c4960a062008a0b818551015162005ba7565b5192865183510362008e3757865184510362008dce5760005b875181101562008cc65762008c78818562005bed565b519061271082101562005bb557600362008cc0926001600160a01b0362008ca0848d62005bed565b5116600052811b016020526200054f87600020546200822b838962005bed565b62008c62565b509092919260005b875181101562008d7a5762008ce4818662005bed565b516127108082101562005bb557600383928b62008d0b6001600160a01b0396879262005bed565b5116600052811b0160205262008d2b886000205462008299848962005bed565b62008d37848a62005bed565b519283101562005bb55760036200054f9362008d749662008d5a8f889062005bed565b5116600052811b0160205289600020556200192962017621565b62008cce565b50959262008d8f91925062007e26906201723d565b92519462008d9d8662003fbd565b60008652600036813760005b835181101562007e7557806200054f62007e6662008dc8938762005bed565b62008da9565b6084855162461bcd60e51b815260206004820152603060248201527f546865206c656e677468206f662061646472657373657320616e6420616d6f7560448201527f6e7473206973206e6f7420657175616c000000000000000000000000000000006064820152fd5b6084855162461bcd60e51b815260206004820152603560248201527f546865206c656e677468206f662061646472657373657320616e6420746f6b6560448201527f6e436c6173736573206973206e6f7420657175616c00000000000000000000006064820152fd5b8251818110156200409c57600703620090085750505060408091019362008ecc60c08651015162005ba7565b519262008ede60a08751015162005ba7565b519551519162008ef6855188511462001929620174fa565b60005b8551811015620080155762009002906200054f6001600160a01b038260028862008fea8e62008fdf8e62008fc88f8962008f348a8562005bed565b511660005262008f718962008f6981620138809a8b60205262008f6360ff8760002054161562001929620175e6565b62005bed565b519662005bed565b51968a62008fa783519b8c9662008f888862003efe565b600188526060602089019860008a528781019b8c52019b8c5262005bed565b511660005260205260002097511515889060ff801983541691151516179055565b51865461ff00191690151560081b61ff0016178655565b5160018501620067d9565b5191015562008ffa838a62005bed565b511662007241565b62008ef9565b8251959695939492818510156200409c57600894850362009100575050506200903a60c0604080950151015162005ba7565b519360005b8551811015620090eb57620090e5906001600160a01b038062009063838a62005bed565b5116600052620138809081602052620090ba60ff620090916001828c60002054161515146200192962017535565b826200909e868d62005bed565b5116600052836020528960002054891c161562001929620175ab565b620090c6838a62005bed565b51166000526020528560002061010061ff001982541617905562005b81565b6200903f565b50949093506020925062007e89915062005b81565b8051828110156200409c57600903620091d5575050506200912a60c0604080950151015162005ba7565b519360005b8551811015620090eb57620091cf90866001600160a01b038062009154848462005bed565b5116600052620091a8600189836200918a8762013880978860205262008f638660ff809760002054161515146200192962017535565b5116600052846020528a600020548a1c161515146200192962017570565b620091b4838a62005bed565b51166000526020528560002061ff0019815416905562005b81565b6200912f565b809796949293959751828110156200409c57600a03620092b457505050506040809401916200921a60a06200920f60c08651015162005ba7565b519451015162005ba7565b51916200922f845184511462001929620174fa565b60005b845181101562007e7557620092ae906001600160a01b038062009256838962005bed565b511660005262013880806020526200927e600160ff8c60002054161515146200192962017535565b6200928a838862005bed565b519162009298848a62005bed565b5116600052602052600289600020015562005b81565b62009232565b8097959751828110156200409c57600b03620093845750505050604080920193620092e460c08651015162005ba7565b5194515191620092fc865184511462001929620174fa565b60005b865181101562007e75576200937e906200054f6001600160a01b038062009327848c62005bed565b511660005262013880806020526200934f600160ff8b60002054161515146200192962017535565b6200935b848962005bed565b519162009369858d62005bed565b511660005260205260018860002001620067d9565b620092ff565b8097949593969751828110156200409c57600c03620094dd57505050604001606091828251015193620093b785620154d5565b60005b8551811015620094c75760e0620093d682878751015162005bed565b510151156200945e57620093fa620093f382878751015162005bed565b5162006db8565b62013882805460001992919083810190811162005b91576200941d8a9162006d3c565b5001805461ff0019166101001790555491820191821162005b91578762009448620094589362006d3c565b5001805460ff1916905562005b81565b620093ba565b620094796200947282878751015162005bed565b5162006e05565b62013882805460001992919083810190811162005b91576200949c8a9162006cc0565b5001805461ff0019166101001790555491820191821162005b91578762009448620094589362006cc0565b5095915093506020925062007e89915062005b81565b809796959392949751828110156200409c57600d03620096345750506040019460206200950f60a08851015162005ba7565b51965101519162009524875184511462015dd4565b60005b875181101562008015578080878a62009545620095d5958962005bed565b5115620095db57620095a66200958d8483620095786200956b620095b198889762005bed565b5162013882541162015e6c565b62008f638d620095946200958d858562005bed565b5162006d3c565b509060ff9889920154901c1662015ec3565b500154161562015f35565b86620095c26200958d838c62005bed565b5001805460ff1916600117905562005b81565b62009527565b620095a66200961c848362009607620095fa6200962398889762005bed565b5162013883541162015e6c565b62008f638d620095946200961c858562005bed565b5162006cc0565b86620095c26200961c838c62005bed565b809794939751828110156200409c57600e036200971b5750506040019160206200966360a08551015162005ba7565b51935101519562009678845188511462015dd4565b60005b845181101562008015578062009696620096a2928a62005bed565b51620096a85762005b81565b6200967b565b620096c5620096b8828862005bed565b5162013882541162015fa7565b6200970a87620096ef620096de6200958d858b62005bed565b5060ff9283910154891c1662016019565b88620097006200958d858b62005bed565b500154166201608b565b86620094486200958d838962005bed565b80919293509694959651828110156200409c57600f03620098415750506040016060918282510151936200974f85620154d5565b60005b8551811015620094c75760e06200976e82878751015162005bed565b51015115620097df576200978b620093f382878751015162005bed565b62013882805460001992919083810190811162005b9157620097ae8a9162006d3c565b5001805461ff0019166101001790555491820191821162005b915787620095c2620097d99362006d3c565b62009752565b620097f36200947282878751015162005bed565b62013882805460001992919083810190811162005b9157620098168a9162006cc0565b5001805461ff0019166101001790555491820191821162005b915787620095c2620097d99362006cc0565b809192939496955051828110156200409c57601003620098e657505060400151906200987660a0608084015193015162005ba7565b51936200988b835186511462001929620174fa565b60005b8351811015620098d357806200054f620098ad620098cd938762005bed565b51620098b98162004eaa565b620098c5838a62005bed565b51906201543c565b6200988e565b509350916020915062007e899062005b81565b8095929551828110156200409c5760110362009b96575050906040809401916200991b60a06200920f60c08651015162005ba7565b51916200992c8451845114620153e2565b60005b8451811015620099a5576200999f906200054f6001600160a01b038062009957848a62005bed565b51166000526201388580602052620099798b600020546200733c868b62005bed565b91909262009988868c62005bed565b51166000526020528a600020556200192962017499565b6200992f565b5093945091620099b6915062017121565b906201388692835494620099d0620085978551886201542e565b91600093845b88811062009b58575060005b865181101562009a96576000805b8a811062009a47575b501562009a12575b62009a0c9062005b81565b620099e2565b9462009a3e62009a0c916001600160a01b0362009a30898b62005bed565b51166200200d828962005bed565b95905062009a01565b62009a528162005db5565b906001600160a01b03918291549060031b1c169062009a72858c62005bed565b51161462009a8b5762009a859062005b81565b620099f0565b5050600138620099f9565b5096509490935062009aa88362005d44565b908151916001600160401b03831162003f1a5760209062009ac98462005f95565b019060005260005b82811062009b1a5750505060005b82811062009af75750505062007e8960209162005b81565b806200054f6001600160a01b0362001f2362009b14948662005bed565b62009adf565b60019060206001600160a01b03845116930192817f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa401550162009ad1565b9462009b8962009b90916001600160a01b0362009b758962005db5565b90549060031b1c166200200d828962005bed565b9562005b81565b620099d6565b8051828110156200409c5760120362009e2157505060408094019162009bc760a06200920f60c08651015162005ba7565b519162009bd88451845114620153e2565b60005b845181101562009c2b5762009c25906200054f6001600160a01b038062009c03848a62005bed565b51166000526201388580602052620099798b6000205462008299868b62005bed565b62009bdb565b50949150929162009c3c9062017121565b9062013886805462009c4e8162005d44565b9260009485925b80841062009d1c575050505062009c6c8362005d44565b908151916001600160401b03831162003f1a5760209062009c8d8462005f95565b019060005260005b82811062009cde5750505060005b82811062009cbb5750505062007e8960209162005b81565b806200054f6001600160a01b0362001f2362009cd8948662005bed565b62009ca3565b60019060206001600160a01b03845116930192817f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa401550162009c95565b9297600097929597949194998a5b865181101562009e0f5762009d3f8b62005db5565b906001600160a01b03918291549060031b1c169062009d5f838a62005bed565b51161462009d785762009d729062005b81565b62009d2a565b509950976001979592979491945b8062009ddd575b1562009da55762009d9e9062005b81565b9262009c55565b9562009dd662009d9e916001600160a01b0362009dc28a62005db5565b90549060031b1c166200200d828a62005bed565b9662005b81565b506001600160a01b0362009df18262005db5565b90549060031b1c166000526201388560205282600020541562009d8d565b50999890989795929794919462009d86565b8095929551828110156200409c5760130362009e8257505060408091015101519260005b845181101562009e7157806200054f62009e6462009e6b938862005bed565b5162016981565b62009e45565b5092509062007e8960209162005b81565b805191808310156200409c5760149283036200a0255750505060408091019062009eb160c08351015162005ba7565b519262009ec860a062007c9f818651015162005ba7565b519562009ed98551855114620160fd565b62009ee885518851146201616f565b60005b855181101562009fd05762009f01818962005bed565b5162009f0e828762005bed565b51612710918282101562005bb557600662009f2f9260031b01549062007088565b9062009f3c848962005bed565b51918383101562005bb557600662009f599360031b015562016238565b62009f65828a62005bed565b519062009f73838862005bed565b518181101562005bb5578392600362009f9c928b62007daf6001600160a01b0398899262005bed565b62009fa8848a62005bed565b519283101562005bb55760036200054f9362009fca9662007df4878e62005bed565b62009eeb565b50939262009fe69192965062007e26906201723d565b94519262009ff48462003fbd565b60008452600036813760005b835181101562007e7557806200054f62007e666200a01f938762005bed565b6200a000565b8196949593965190808210156200409c5760159182036200a57d575050505060408401906200a05960c08351015162005ba7565b51936200a07060a062007c9f818651015162005ba7565b51936200a085865185511462001929620174fa565b6200a098865186511462001929620174fa565b60005b86518110156200a0f5576200a0b1818662005bed565b519061271082101562005bb55760036200a0ef926001600160a01b038b5116600052811b016020526200054f6040600020546200822b838a62005bed565b6200a09b565b50909493919460005b85518110156200a207576200a114818662005bed565b51906127108083101562005bb55760036001600160a01b0393848c5116600052811b016020526200a15060406000205462008299848962005bed565b906200a15d848a62005bed565b51918383101562005bb55760036200a18c93878f5116600052811b016020526040600020556200192962017621565b6200a198828862005bed565b518181101562005bb557600390846200a1b2858c62005bed565b5116600052811b016020526200a1d36040600020546200733c848962005bed565b6200a1df848a62005bed565b519283101562005bb55760036200054f936200a2019662008352878e62005bed565b6200a0fe565b50926200a21e9195969492506200838a906201723d565b926001600160a01b03604051916200a2368362003fa1565b600183526020368185013751166200a24e8262005ba7565b526000905b825182101562008731576200a269828462005bed565b51966200a277865162005d44565b936000956200a287845162005d44565b610600528698875b89518110156200a33957896200a2b38d6001600160a01b0362008426858562005bed565b15806200a2fb575b6200a2d3575b506200a2cd9062005b81565b6200a28f565b81996001600160a01b036200846d6200a2cd946200a2f19462005bed565b989050896200a2c1565b50506127108c101562005bb5576001600160a01b036200a31c828c62005bed565b511660005260038c811b016020528960406000205415156200a2bb565b509098969498979291939760005b89518110156200a3d7576127108c101562005bb5576001600160a01b036200a370828c62005bed565b511660005260038c811b0160205289604060002054156200a39e575b506200a3989062005b81565b6200a347565b81996001600160a01b036200a3bc6200a398946200a3cd9462005bed565b51166200200d826106005162005bed565b989050896200a38c565b50989593929650966127108a1015610140526127108a101562005bb55760048a60031b0154966200a40d62008597878a6201542e565b9860009a8b6103c0525b6101405162005bb5576103c0518a8110156200a4b8576200a4656001600160a01b038f926200a4539060006101405260048560031b0162005f0b565b90549060031b1c1661060051620170cc565b156200a485575b506200a47b6103c05162005b81565b6103c0526200a417565b9b8b6200200d826200a4b0949f620086406001600160a01b039160046103c0519160031b0162005f0b565b9a8c6200a46c565b509b9398509591969499909893996000915b8383106200a55957505050506101405162005bb5578151916001600160401b03831162003f1a5760206004916200a50785848660031b016200611d565b019160031b01600052602060002060005b8381106200a53b57505050506200a52f9062005b81565b9094919592956200a253565b60019060206001600160a01b0385511694019381840155016200a518565b620087236200a576916001600160a01b0362008715868662005bed565b916200a4ca565b8297949695975192818410156200409c5760169384036200a5ea57505050505060c060406200a5b0920151015162005ba7565b519260005b845181101562009e7157806200054f6001600160a01b036200a5dc6200a5e4948962005bed565b5116620071de565b6200a5b5565b8051828110156200409c576017036200a65357608460405162461bcd60e51b815260206004820152602960248201527f5265736572766564206f70636f6465206964203233206973206e6f7420696d706044820152683632b6b2b73a32b21760b91b6064820152fd5b8051828110156200409c576018036200a6c757505050505060c060406200a67e920151015162005ba7565b5162013892805460ff191660011790559260005b845181101562009e7157806200054f6001600160a01b036200a6b96200a6c1948962005bed565b51166200717b565b6200a692565b8097969751828110156200409c576019036200a85057505050505060008080604080940160a0808251015180516200a817575b505051906001600160a01b036200a71e6200733560c060e086015195015162005ba7565b511690602083519301915af1903d156200a80e573d916200a73f83620041b8565b926200a74e8351948562003fd9565b83523d6000602085013e5b156200a76e57505062007e8960209162005b81565b62005b7d92506200a7ef8151927f5468652063616c6c20746f2074686520636f6e7472616374206973206e6f742060208501527f7375636365737366756c2e2052657475726e20646174613a2000000000000000838501528381516200a7de816059946020868601910162004106565b810103603981018552018362003fd9565b5191829162461bcd60e51b83526020600484015260248301906200412b565b6060916200a759565b6200a8229062005ba7565b51516200a831575b806200a6fa565b81925062007335906200a8479251015162005ba7565b5190386200a82a565b8051828110156200409c57601a036200a95b57505050506200a87b60a0604080940151015162005ba7565b51906200a88c6003835114620153e2565b6200a8978262005ba7565b51926200a8b06200a8a88462005bcb565b519362005bdc565b51926200a9185750509162007e89916001602094146000146200a911576200a8f0906200a8e36201388d91825462007088565b9091556200192962017423565b6200054f6201388e6200a904815462007075565b909155620019296201745e565b5062005b81565b60649250519062461bcd60e51b82526020600483015260248201527f496e76616c6964207061796d656e7420747970650000000000000000000000006044820152fd5b80919293945051828110156200409c57601b036200ade4575050505050906200a99b6201388b54620070bf6200a9906201733b565b612710831062005b4e565b50506200a9a762017423565b506000805b61271081106200ad7f575b50506200a9c36200709a565b6200a9d26202712a5462005d44565b9060009384905b6127108210156200ad73578160031b9460ff600787015416156200ab28576000976002870154156200ab1657889798975b62005bb55760048701548810156200aafc576200aa2b886004890162005f0b565b90549060031b1c6001600160a01b0316988960005260038801602052604099868b60002054906200aa5c9162006fe1565b9b906200aa6862017423565b6200aa739162005b4e565b60009b60028b01546200aa869162006fe1565b91906200aa9262017423565b6200aa9d9162005b4e565b828d52620138876020528c20908154906200aab89162007088565b9091556200aac562017423565b6200aad09162005b4e565b6200aadc828962005bed565b526200aae89062005b81565b976200aaf49062005b81565b97986200aa0a565b929095506200ab0d91965062005b81565b9095946200a9d9565b929095506200ab0d9196975062005b81565b959392509350505b6200ab3b8262005d44565b91600091825b8281106200acde5750505062013888908154926200ab646200859785846201542e565b9360009081905b8082106200aca557505060005b8381106200ac1057505050508151916001600160401b03831162003f1a576020906200aba48462005f3d565b019060005260005b8281106200abd25750505062007e8960209160006201388d5560006201388e5562005b81565b60019060206001600160a01b03845116930192817ff9ab3ee50aab7a7cf5b7d30204dd21b5da7cc33690a7aec17b3653a822a635df0155016200abac565b6000805b8381106200ac5d575b50156200ac36575b6200ac309062005b81565b6200ab78565b906200ac546200ac30916001600160a01b0362008715858762005bed565b9190506200ac25565b6001600160a01b03806200ac72858862005bed565b5116906200ac81838b62005bed565b5116146200ac9a576200ac949062005b81565b6200ac14565b50506001386200ac1d565b9091620087236200acd7916001600160a01b036200acc38662005d7c565b90549060031b1c166200200d828b62005bed565b906200ab6b565b6000805b8581106200ad2b575b50156200ad04575b6200acfe9062005b81565b6200ab41565b926200ad226200acfe916001600160a01b0362009a30878662005bed565b9390506200acf3565b6001600160a01b03806200ad40858762005bed565b5116906200ad4f838a62005bed565b5116146200ad68576200ad629062005b81565b6200ace2565b50506001386200aceb565b9394929150506200ab30565b8060031b9060ff600783015416156200addd576200adcb62007b336200054f946200adbf6200add79560026200adb58762006ee3565b9101549062006fe1565b92906200192962017423565b93906200192962017423565b6200a9ac565b506200a9b7565b8051828110156200409c57601c036200ae4d57608460405162461bcd60e51b815260206004820152602960248201527f5265736572766564206f70636f6465206964203238206973206e6f7420696d706044820152683632b6b2b73a32b21760b91b6064820152fd5b8051828110156200409c57601d036200ae73575b505050505062007e8960209162005b81565b8051828110156200409c57601e146200ae61578051828110156200409c57601f036200aec957505050506020916200aebf6200aeb8604062007e899401515162005ba7565b51620169b8565b913880806200ae61565b8051828110156200409c576020036200aeef575b505050505062007e896020916200aebf565b805190828210156200409c5760218092036200af0d575b506200aedd565b8051838110156200b55b576022036200af4e5750505050505062007e896020916201389260ff1981541690556200af43620060c4565b91388080806200af06565b8051838110156200b55b576023036200af75575b50505050505062007e896020916200af43565b8051838110156200b55b576024146200af62578051838110156200b55b576025146200af62579795949751918210156200b5475750036200b503575060408401906200afc660c08351015162005ba7565b51936200afdd60a062007c9f818651015162005ba7565b51936200aff2865185511462001929620174fa565b6200b005865186511462001929620174fa565b60005b86518110156200b062576200b01e818662005bed565b519061271082101562005bb55760036200b05c926001600160a01b038b5116600052811b016020526200054f6040600020546200822b838a62005bed565b6200b008565b50909493919460005b85518110156200b174576200b081818662005bed565b51906127108083101562005bb55760036001600160a01b0393848c5116600052811b016020526200b0bd60406000205462008299848962005bed565b906200b0ca848a62005bed565b51918383101562005bb55760036200b0f993878f5116600052811b016020526040600020556200192962017621565b6200b105828862005bed565b518181101562005bb557600390846200b11f858c62005bed565b5116600052811b016020526200b1406040600020546200733c848962005bed565b6200b14c848a62005bed565b519283101562005bb55760036200054f936200b16e9662008352878e62005bed565b6200b06b565b50926200b18b9195969492506200838a906201723d565b926001600160a01b03604051916200b1a38362003fa1565b600183526020368185013751166200b1bb8262005ba7565b526000905b82518210156200b4ea576200b1d6828462005bed565b51966200b1e4865162005d44565b936000956200b1f4845162005d44565b610420528698875b89518110156200b2a657896200b2208d6001600160a01b0362008426858562005bed565b15806200b268575b6200b240575b506200b23a9062005b81565b6200b1fc565b81996001600160a01b036200846d6200b23a946200b25e9462005bed565b989050896200b22e565b50506127108c101562005bb5576001600160a01b036200b289828c62005bed565b511660005260038c811b016020528960406000205415156200b228565b509098969498979291939760005b89518110156200b344576127108c101562005bb5576001600160a01b036200b2dd828c62005bed565b511660005260038c811b0160205289604060002054156200b30b575b506200b3059062005b81565b6200b2b4565b81996001600160a01b036200b3296200b305946200b33a9462005bed565b51166200200d826104205162005bed565b989050896200b2f9565b50989593929650966127108a1015610120526127108a101562005bb55760048a60031b0154966200b37a62008597878a6201542e565b9860009a8b610200525b6101205162005bb557610200518a8110156200b425576200b3d26001600160a01b038f926200b3c09060006101205260048560031b0162005f0b565b90549060031b1c1661042051620170cc565b156200b3f2575b506200b3e86102005162005b81565b610200526200b384565b9b8b6200200d826200b41d949f620086406001600160a01b03916004610200519160031b0162005f0b565b9a8c6200b3d9565b509b9398509591969499909893996000915b8383106200b4c657505050506101205162005bb5578151916001600160401b03831162003f1a5760206004916200b47485848660031b016200611d565b019160031b01600052602060002060005b8381106200b4a857505050506200b49c9062005b81565b9094919592956200b1c0565b60019060206001600160a01b0385511694019381840155016200b485565b620087236200b4e3916001600160a01b0362008715868662005bed565b916200b437565b50505091926020915062007e899091388080806200af62565b6064906040519062461bcd60e51b82526020600483015260248201527f496e76616c6964206f7065726174696f6e2074797065000000000000000000006044820152fd5b634e487b7160e01b60005260045260246000fd5b82634e487b7160e01b60005260045260246000fd5b606460405162461bcd60e51b815260206004820152601b60248201527f4f7065726174696f6e207479706520697320756e646566696e656400000000006044820152fd5b50915050565b600281036200b61b5760405162461bcd60e51b815260206004820152602a60248201527f5468652070726f6772616d2069732064656e6965642062792074686520706c7560448201526967696e2073797374656d60b01b6064820152608490fd5b6001146200b6265750565b906200b6366201388354620063b7565b805190600160401b821162003f1a57620271165482620271165580831062013df1575b50602001620271166000527f2a7aa4e7f2fefac7a07702701afb9c202f6f79fb2762c8e42b37a264307667fa6000915b83831062013dd0575050505060005b62013883548110156200b6d257806200054f6200b6b96200b6cc9362006cc0565b506200b6c58362006cfe565b9062014356565b6200b698565b506200b6e26201388254620063b7565b805190600160401b821162003f1a57620271155482620271155580831062013d33575b50602001620271156000527f0f9b10e190177c3c56fc6ce7689c8130c567df57aa02c08e7a090a59992adf926000915b83831062013d12575050505060005b62013882548110156200b77757806200054f6200b7656200b7719362006d3c565b506200b6c58362006d7a565b6200b744565b5060005b612710811015806200b94257600160ff6201389a8460031b0154161515146200b7b1575b506200b7ab9062005b81565b6200b77b565b916000835b62005bb557620138978360031b01548110156200b822576200b819929350600092816001600160a01b036200b7f58694620138978960031b0162005f0b565b90549060031b1c16600052620138968660031b016020526000604081205562005b81565b9093926200b7b6565b5091604051906200b8338262003fbd565b6000825262005bb5578051906001600160401b03821162003f1a576020906200b86583620138978660031b016200611d565b01620138978360031b01600052602060002060005b8381106200b9245750505050600381901b6201389a8101805460ff191690556000620138938201819055620138948201819055620138958201556201389801546200b7ab91906200b8cb9062005221565b601f908181116200b8f8575b50506000620138988260031b01556000620138998260031b0155906200b79f565b6200b91c91620138988460031b016000526020600020910160051c81019062005f24565b38806200b8d7565b60019060206001600160a01b0385511694019381840155016200b87a565b505060005b612710811062013c7d575060005b62013881548110156200b9b357806001600160a01b036200b97a6200b9ad9362005dee565b90549060031b1c166000526202711360205260006002604082208281556200b9a56001820162006448565b015562005b81565b6200b955565b506200b9c3620138815462005d44565b8051906001600160401b03821162003f1a57600160401b821162003f1a57602090620271145483620271145580841062013c44575b50016202711460005260005b82811062013c065750505060005b62013881548110156200ba93576001600160a01b036200ba328262005dee565b90549060031b1c1690620271145481101562005bb5576200ba8d9162027114600052817f8e71c125ecfe4aeed61c8cf4b09183dd0bf2a3230d826486f04e5f6f0de58e2c01906001600160a01b031982541617905562005b81565b6200ba12565b509060005b62013881548110156200bb7357806200bab56200bb0b9262005dee565b906001600160a01b03918291549060031b1c1660005262013880602052604080600020916200bae48462005dee565b90549060031b1c1660005262027113602052600020908082036200bb11575b505062005b81565b6200ba98565b600280916200bb5460ff6200bb3581845416879060ff801983541691151516179055565b825460081c16859061ff00825491151560081b169061ff001916179055565b6200bb66600182016001860162013fec565b015491015538806200bb03565b5060005b6202711d548110156200bbc857806001600160a01b036200bb9c6200bbc29362005e27565b90549060031b1c166000526202711c6020526200054f6040600020606481019062005f24565b6200bb77565b506200bbd86201388a5462005d44565b8051906001600160401b03821162003f1a57600160401b821162003f1a576020906202711d54836202711d5580841062013bcd575b50016202711d60005260005b82811062013b8f5750505060005b6201388a548110156200bc6957806200054f6001600160a01b036200bc506200bc639462005e60565b90549060031b1c1662001f308362005e27565b6200bc27565b5060005b6201388a548110156200bcf857806200bc8a6200bcdf9262005e60565b906001600160a01b03918291549060031b1c1660005262013889602052604080600020916200bcb98462005e60565b90549060031b1c166000526202711c602052600020908082036200bce557505062005b81565b6200bc6d565b6200bcf09162014411565b38806200bb03565b506201388b546202711e556201388c546202711f556201388d5462027120556201388e5462027121556201388f546001600160401b03811162003f1a57600160401b811162003f1a57620271225481620271225580821062013b56575b507f846ab89c81ea9339188216a1864da1a19ebe28d411cbec99efa70ca6d389710d8054906000915b83831062013b1657505050506201389054600160401b811162003f1a57620271235481620271235580821062013ac2575b507f7f73709277f72a9bc7b284375e83603a53394744e9fa86da811e86c2aa78e05e620271236000527f4ad859a97f543436e70c22b09d31fb4c7b9e987d7a008c98817c9b50a97b12246000915b83831062013aa4575050505062013891546001600160401b03811162003f1a57600160401b811162003f1a57620271245481620271245580821062013a6b575b506202712460009081527f8f332db73d3937798ea82422156d059730b0b3058606439b57b7ae623e94536680545b83831062013a2b575050505060ff620138925416151560ff8019620271255416911617620271255560005b62027119548110156200bee057806001600160a01b036200bebb6200beda9362005e99565b90549060031b1c16600052620271186020526000604081205562005b81565b6200be96565b506200bef0620138865462005d44565b8051906001600160401b03821162003f1a576020906200bf108362006014565b016202711960005260005b828110620139ed5750505060005b62013886548110156200bf6b57806200054f6001600160a01b036200bf526200bf659462005db5565b90549060031b1c1662001f308362005e99565b6200bf29565b5060005b62013886548110156200bfde57806200bf8c6200bfd89262005db5565b906001600160a01b03918291549060031b1c166000526201388560205260408060002054916200bfbc8462005db5565b90549060031b1c16600052620271186020526000205562005b81565b6200bf6f565b5060005b6202711b548110156200c02c57806001600160a01b036200c0076200c0269362005ed2565b90549060031b1c166000526202711a6020526000604081205562005b81565b6200bfe2565b506200c03c620138885462005d44565b8051906001600160401b03821162003f1a576020906200c05c836200606c565b016202711b60005260005b828110620139af5750505060005b62013888548110156200c0b757806200054f6001600160a01b036200c09e6200c0b19462005d7c565b90549060031b1c1662001f308362005ed2565b6200c075565b5060005b62013888548110156200c12a57806200c0d86200c1249262005d7c565b906001600160a01b03918291549060031b1c166000526201388760205260408060002054916200c1088462005d7c565b90549060031b1c166000526202711a6020526000205562005b81565b6200c0bb565b50906000905b6020830151805183101562010f5357826200c14b9162005bed565b51602081015160268110156200409c57156200b57057602081015160268110156200409c576001036200c72f57604001906200c18c60c08351015162005ba7565b51936200c1a360a062007c9f818651015162005ba7565b51916200c1b48651855114620160fd565b6200c1c386518451146201616f565b60005b86518110156200c324576200c1dc818662005bed565b5161271081101562005bb557600160ff6201389a6200c2049360031b015416151514620161e1565b6200c210818562005bed565b516200c21d828762005bed565b519061271082101562005bb557620138996200c23f9260031b01549062007088565b906200c24c838862005bed565b519161271083101562005bb557620138996200c26d9360031b015562016238565b6200c279818562005bed565b516200c286828762005bed565b519061271082101562005bb557620138966200c2c9926001600160a01b036200c2b0868d62005bed565b511660005260031b016020526040600020549062007088565b91906200c2d7828862005bed565b519061271082101562005bb5576200c31e93620138966200054f936001600160a01b036200c306878f62005bed565b511660005260031b01602052604060002055620162aa565b6200c1c6565b50926200c33b9192506200899b909594956201723d565b916040516200c34a8162003fbd565b6000815260003681376000945b80518610156200c715576200c36d868262005bed565b51610380526200c37e855162005d44565b966000946200c38e845162005d44565b6103005260009460005b88518110156200c46b578a896200c3c86001600160a01b036200c3bc858462005bed565b51166103805162017072565b15806200c422575b6200c3e9575b50506200c3e39062005b81565b6200c398565b986200c417916200200d826001600160a01b036200c40e879e976200c3e39862005bed565b51169262005bed565b9790508a896200c3d6565b50505061271061038051101562005bb5576001600160a01b036200c447828b62005bed565b5116600052620138966103805160031b016020528a8960406000205415156200c3d0565b50909895979498969291939660005b88518110156200c50a5761271061038051101562005bb5576001600160a01b03806200c4a7838c62005bed565b5116600052620138966103805160031b01602052604060002054156200c4da575b506200c4d49062005b81565b6200c47a565b819b6200c502916200c4f16200c4d4948d62005bed565b51166200200d826103005162005bed565b9a906200c4c8565b5098509695929190939661038051612710811015806102a05262005bb55760031b620138970154986200c54262008597898c6201542e565b6104a0526000610480526000610260525b6102a05162005bb557610260518a8110156200c61c576200c58a6200c5a89160006102a052620138976103805160031b0162005f0b565b91906001600160a01b03928391549060031b1c1661030051620170cc565b156200c5c8575b506200c5be6102605162005b81565b610260526200c553565b60006102a0526200c5e861026051620138976103805160031b0162005f0b565b90549060031b1c166200c602610480516104a05162005bed565b526200c6116104805162005b81565b61048052386200c5af565b50979294959093985095909560005b8281106200c6c9575050506102a05162005bb5576104a051516001600160401b03811162003f1a576200c66a81620138976103805160031b016200611d565b60206104a05101620138976103805160031b01600052602060002060005b8381106200c6ab57505050506200c69f9062005b81565b9492959091956200c357565b60019060206001600160a01b0385511694019381840155016200c688565b806001600160a01b036200c6e26200c70f938562005bed565b51166200c6f6610480516104a05162005bed565b526200c7056104805162005b81565b6104805262005b81565b6200c62b565b5050939092506200c727915062005b81565b90916200c130565b90602082949394015160268110156200409c576002036200c8ec576040809201908151938451916200c7866200c76a60a08098015162005ba7565b51966200c77b818751015162005bcb565b519551015162005bdc565b51948351875103620080fd578351855103620080945783518651036200802b575060005b86518110156200c8d9576200c7c0818862005bed565b5161271081101562005bb55760ff6201389a6200c7e49260031b015416156201631b565b6200c7f0818862005bed565b5161271081101562005bb55760031b6201389a01805460ff191660011790556200c81b818562005bed565b516200c828828962005bed565b519061271082101562005bb557620138986200c8489260031b01620067d9565b6200c854818662005bed565b516200c861828962005bed565b5161271081101562005bb55760031b6201389401556200c882818762005bed565b516200c88f828962005bed565b5161271081101562005bb55760031b6201389501556200c8b0818862005bed565b519061271082101562005bb5576000620138996200c8d39360031b015562005b81565b6200c7aa565b509592509350506200c727915062005b81565b909291602084015160268110156200409c576003036200ced45760408401906200c91b60c08351015162005ba7565b51906200c93260a062007c9f818651015162005ba7565b51936200c947835185511462001929620174fa565b6200c95a835186511462001929620174fa565b60005b83518110156200c9ba576200c973818662005bed565b519061271082101562005bb557620138966200c9b4926001600160a01b038b511660005260031b016020526200054f6040600020546200822b838a62005bed565b6200c95d565b509095919560005b87518110156200cb0f576200c9d8818662005bed565b5161271081101562005bb55762013896906001600160a01b0386511660005260031b016020526200ca1460406000205462008299838962005bed565b906200ca21838862005bed565b519161271083101562005bb557620138966200ca5c936001600160a01b0389511660005260031b016020526040600020556200192962017621565b6200ca68818662005bed565b5161271081101562005bb55762013896906001600160a01b036200ca8d848c62005bed565b511660005260031b016020526200caaf6040600020546200733c838962005bed565b91906200cabd828862005bed565b519061271082101562005bb5576200cb0993620138966200054f936001600160a01b036200caed8f889062005bed565b511660005260031b016020526040600020556200192962017697565b6200c9c2565b509194935091620089a26200cb24916201723d565b926001600160a01b03604051956200cb3c8762003fa1565b600187526020368189013751166200cb548662005ba7565b526000905b86518210156200cec2576200cb6f828862005bed565b516105a0526200cb80855162005d44565b966000946200cb90885162005d44565b6104e05260009460005b88518110156200cc64578a896200cbca6001600160a01b036200cbbe858462005bed565b51166105a05162017072565b15806200cc1b575b6200cbeb575b50506200cbe59062005b81565b6200cb9a565b986200cc10916200200d826001600160a01b036200c40e879e976200cbe59862005bed565b9790508a896200cbd8565b5050506127106105a051101562005bb5576001600160a01b036200cc40828b62005bed565b5116600052620138966105a05160031b016020528a8960406000205415156200cbd2565b509098949897969291939760005b88518110156200cd08576127106105a051101562005bb5576001600160a01b036200cc9e828b62005bed565b5116600052620138966105a05160031b01602052604060002054156200ccd0575b6200ccca9062005b81565b6200cc72565b996200ccff6200ccca916001600160a01b036200ccee8e8d62005bed565b51166200200d826104e05162005bed565b9a90506200ccbf565b5098509694939291956105a051612710811015806104605262005bb55760031b620138970154966200cd3f62008597878a6201542e565b996000996000610280525b6104605162005bb557610280518a8110156200cdf5576001600160a01b036200cd896200cd9b92600061046052620138976105a05160031b0162005f0b565b90549060031b1c166104e051620170cc565b156200cdba575b6200cdb06102805162005b81565b610280526200cd4a565b996200cdee906000610460528c6200200d826001600160a01b036200864061028051620138976105a05160031b0162005f0b565b996200cda2565b509a939794969299919850946000915b8383106200ce9e57505050506104605162005bb5578051906001600160401b03821162003f1a576020906200ce4683620138976105a05160031b016200611d565b01620138976105a05160031b01600052602060002060005b8381106200ce8057505050506200ce759062005b81565b90929591956200cb59565b60019060206001600160a01b0385511694019381840155016200ce5e565b620087236200cebb916001600160a01b0362009a30868662005bed565b916200ce05565b9295505092506200c727915062005b81565b9092602081015160268110156200409c576004036200d504576040016200cf0060c08251015162005ba7565b51936200cf1260c08351015162005bcb565b51906200cf2960a062007c9f818651015162005ba7565b51936200cf3e875184511462001929620174fa565b6200cf51875185511462001929620174fa565b6200cf64875186511462001929620174fa565b60005b87518110156200cfcf576200cf7d818662005bed565b519061271082101562005bb557620138966200cfc9926001600160a01b036200cfa7848d62005bed565b511660005260031b016020526200054f6040600020546200822b838a62005bed565b6200cf67565b509095919593929360005b83518110156200d134576200cff0818762005bed565b5161271081101562005bb55762013896906001600160a01b036200d015848862005bed565b511660005260031b016020526200d03760406000205462008299838862005bed565b906200d044838962005bed565b519161271083101562005bb557620138966200d08a936001600160a01b036200d06e878b62005bed565b511660005260031b016020526040600020556200192962017621565b6200d096818762005bed565b5161271081101562005bb55762013896906001600160a01b036200d0bb848c62005bed565b511660005260031b016020526200d0dd6040600020546200733c838862005bed565b9190506200d0ec818862005bed565b519161271083101562005bb557620138966200d12e936001600160a01b036200d116858e62005bed565b511660005260031b0160205260406000205562005b81565b6200cfda565b5091936200d150919350620089a26200899b919796976201723d565b6000945b80518610156200c715576200d16a868262005bed565b51610340526200d17b855162005d44565b966000946200d18b845162005d44565b6101a05260009460005b88518110156200d25f578a896200d1c56001600160a01b036200d1b9858462005bed565b51166103405162017072565b15806200d216575b6200d1e6575b50506200d1e09062005b81565b6200d195565b986200d20b916200200d826001600160a01b036200c40e879e976200d1e09862005bed565b9790508a896200d1d3565b50505061271061034051101562005bb5576001600160a01b036200d23b828b62005bed565b5116600052620138966103405160031b016020528a8960406000205415156200d1cd565b50909895979498969291939660005b88518110156200d2fe5761271061034051101562005bb5576001600160a01b03806200d29b838c62005bed565b5116600052620138966103405160031b01602052604060002054156200d2ce575b506200d2c89062005b81565b6200d26e565b819b6200d2f6916200d2e56200d2c8948d62005bed565b51166200200d826101a05162005bed565b9a906200d2bc565b5098509695929190939661034051612710811015806102c05262005bb55760031b620138970154986200d33662008597898c6201542e565b6105005260006103e052600060c0525b6102c05162005bb55760c0518a8110156200d40b576200d37c6200d39a9160006102c052620138976103405160031b0162005f0b565b91906001600160a01b03928391549060031b1c166101a051620170cc565b156200d3b8575b506200d3af60c05162005b81565b60c0526200d346565b60006102c0526200d3d760c051620138976103405160031b0162005f0b565b90549060031b1c166200d3f16103e0516105005162005bed565b526200d4006103e05162005b81565b6103e052386200d3a1565b50979294959093985095909560005b8281106200d4b8575050506102c05162005bb55761050051516001600160401b03811162003f1a576200d45981620138976103405160031b016200611d565b60206105005101620138976103405160031b01600052602060002060005b8381106200d49a57505050506200d48e9062005b81565b9492959091956200d154565b60019060206001600160a01b0385511694019381840155016200d477565b806001600160a01b036200d4d16200d4fe938562005bed565b51166200d4e56103e0516105005162005bed565b526200d4f46103e05162005b81565b6103e05262005b81565b6200d41a565b9290602084015160268110156200409c576005036200da7f5760408401906200d53760a062008a0b818551015162005ba7565b519282518451036200da155760005b83518110156200d5a3576200d55c818562005bed565b519061271082101562005bb557620138966200d59d926001600160a01b038a511660005260031b016020526200054f6040600020546200822b838962005bed565b6200d546565b509060005b83518110156200d64e576200d5be818562005bed565b5161271081101562005bb55762013896906001600160a01b0389511660005260031b016020526200d5fa60406000205462008299838862005bed565b91906200d608828762005bed565b519061271082101562005bb5576200d64893620138966200054f936001600160a01b038d511660005260031b016020526040600020556200192962017621565b6200d5a8565b5094939250906200d65f906201723d565b936001600160a01b03604051946200d6778662003fa1565b600186526020368188013751166200d68f8562005ba7565b52604051926200d69f8462003fbd565b6000845260003681376000905b86518210156200cec2576200d6c2828862005bed565b516102e0526200d6d3855162005d44565b966000946200d6e3885162005d44565b6101e05260009460005b88518110156200d7b7578a896200d71d6001600160a01b036200d711858462005bed565b51166102e05162017072565b15806200d76e575b6200d73e575b50506200d7389062005b81565b6200d6ed565b986200d763916200200d826001600160a01b036200c40e879e976200d7389862005bed565b9790508a896200d72b565b5050506127106102e051101562005bb5576001600160a01b036200d793828b62005bed565b5116600052620138966102e05160031b016020528a8960406000205415156200d725565b509098949897969291939760005b88518110156200d85b576127106102e051101562005bb5576001600160a01b036200d7f1828b62005bed565b5116600052620138966102e05160031b01602052604060002054156200d823575b6200d81d9062005b81565b6200d7c5565b996200d8526200d81d916001600160a01b036200d8418e8d62005bed565b51166200200d826101e05162005bed565b9a90506200d812565b5098509694939291956102e051612710811015806104405262005bb55760031b620138970154966200d89262008597878a6201542e565b9960009960006106a0525b6104405162005bb5576106a0518a8110156200d948576001600160a01b036200d8dc6200d8ee92600061044052620138976102e05160031b0162005f0b565b90549060031b1c166101e051620170cc565b156200d90d575b6200d9036106a05162005b81565b6106a0526200d89d565b996200d941906000610440528c6200200d826001600160a01b03620086406106a051620138976102e05160031b0162005f0b565b996200d8f5565b509a939794969299919850946000915b8383106200d9f157505050506104405162005bb5578051906001600160401b03821162003f1a576020906200d99983620138976102e05160031b016200611d565b01620138976102e05160031b01600052602060002060005b8381106200d9d357505050506200d9c89062005b81565b90929591956200d6ac565b60019060206001600160a01b0385511694019381840155016200d9b1565b620087236200da0e916001600160a01b0362009a30868662005bed565b916200d958565b608460405162461bcd60e51b815260206004820152603560248201527f546865206c656e677468206f6620746f6b656e436c61737320616e6420746f6b60448201527f656e416d6f756e74206973206e6f7420657175616c00000000000000000000006064820152fd5b92602081015160268110156200409c576006036200e09d576040016200daaa60c08251015162005ba7565b51936200dac160a062008a0b818551015162005ba7565b519285518351036200e0335785518451036200dfc95760005b86518110156200db42576200daf0818562005bed565b519061271082101562005bb557620138966200db3c926001600160a01b036200db1a848c62005bed565b511660005260031b016020526200054f6040600020546200822b838962005bed565b6200dada565b509060005b86518110156200dbe7576200db5d818562005bed565b5161271081101562005bb55762013896906001600160a01b036200db82848b62005bed565b511660005260031b016020526200dba460406000205462008299838862005bed565b91906200dbb2828762005bed565b519061271082101562005bb5576200dbe193620138966200054f936001600160a01b036200d06e878f62005bed565b6200db47565b50916200dbfe9193506200899b909594956201723d565b91604051926200dc0e8462003fbd565b6000845260003681376000945b80518610156200c715576200dc31868262005bed565b51610320526200dc42855162005d44565b966000946200dc52845162005d44565b6106c05260009460005b88518110156200dd26578a896200dc8c6001600160a01b036200dc80858462005bed565b51166103205162017072565b15806200dcdd575b6200dcad575b50506200dca79062005b81565b6200dc5c565b986200dcd2916200200d826001600160a01b036200c40e879e976200dca79862005bed565b9790508a896200dc9a565b50505061271061032051101562005bb5576001600160a01b036200dd02828b62005bed565b5116600052620138966103205160031b016020528a8960406000205415156200dc94565b50909895979498969291939660005b88518110156200ddc55761271061032051101562005bb5576001600160a01b03806200dd62838c62005bed565b5116600052620138966103205160031b01602052604060002054156200dd95575b506200dd8f9062005b81565b6200dd35565b819b6200ddbd916200ddac6200dd8f948d62005bed565b51166200200d826106c05162005bed565b9a906200dd83565b5098509695929190939661032051612710811015806107205262005bb55760031b620138970154986200ddfd62008597898c6201542e565b61064052600060e05260006103a0525b6107205162005bb5576103a0518a8110156200ded3576200de446200de6291600061072052620138976103205160031b0162005f0b565b91906001600160a01b03928391549060031b1c166106c051620170cc565b156200de82575b506200de786103a05162005b81565b6103a0526200de0d565b6000610720526200dea26103a051620138976103205160031b0162005f0b565b90549060031b1c166200debb60e0516106405162005bed565b526200dec960e05162005b81565b60e052386200de69565b50979294959093985095909560005b8281106200df80575050506107205162005bb55761064051516001600160401b03811162003f1a576200df2181620138976103205160031b016200611d565b60206106405101620138976103205160031b01600052602060002060005b8381106200df6257505050506200df569062005b81565b9492959091956200dc1b565b60019060206001600160a01b0385511694019381840155016200df3f565b806001600160a01b036200df996200dfc3938562005bed565b51166200dfac60e0516106405162005bed565b526200dfba60e05162005b81565b60e05262005b81565b6200dee2565b608460405162461bcd60e51b815260206004820152603060248201527f546865206c656e677468206f662061646472657373657320616e6420616d6f7560448201527f6e7473206973206e6f7420657175616c000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152603560248201527f546865206c656e677468206f662061646472657373657320616e6420746f6b6560448201527f6e436c6173736573206973206e6f7420657175616c00000000000000000000006064820152fd5b60208194929394015160268110156200409c576007036200e25457604001916200e0cc60c08451015162005ba7565b51916200e0de60a08551015162005ba7565b51935151916200e0f6845186511462001929620174fa565b60005b84518110156200e242576001600160a01b03806200e118838862005bed565b511660005262027113806020526200e13d60ff604060002054161562001929620175e6565b60026200e14b848862005bed565b516200e1c06200e15c868c62005bed565b519162008fdf8b604051966200e1728862003efe565b60018852886200e1998b60208b01946000865260408c0197885260608c01998a5262005bed565b511660005260205262008fc8604060002097511515889060ff801983541691151516179055565b519101556200e1d0828762005bed565b511690620271145491600160401b83101562003f1a576001830180620271145583101562005bb5576200e23c92620271146000527f8e71c125ecfe4aeed61c8cf4b09183dd0bf2a3230d826486f04e5f6f0de58e2c01906001600160a01b031982541617905562005b81565b6200e0f9565b5094915092506200c727915062005b81565b602081015160268110156200409c576008036200e3435760c060406200e27e920151015162005ba7565b519160005b83518110156200e334576200e32e906001600160a01b03806200e2a7838862005bed565b51166000526202711390816020526200e2d1600160ff604060002054161515146200192962017535565b806200e2de848962005bed565b5116600052816020526200e30260ff60406000205460081c161562001929620175ab565b6200e30e838862005bed565b5116600052602052604060002061010061ff001982541617905562005b81565b6200e283565b50926200c72791925062005b81565b602081015160268110156200409c576009036200e4235760c060406200e36d920151015162005ba7565b519160005b83518110156200e334576200e41d906001600160a01b03806200e396838862005bed565b51166000526202711390816020526200e3c0600160ff604060002054161515146200192962017535565b806200e3cd848962005bed565b5116600052816020526200e3f5600160ff60406000205460081c161515146200192962017570565b6200e401838862005bed565b5116600052602052604060002061ff0019815416905562005b81565b6200e372565b602081015160268110156200409c57600a036200e50c57604001906200e45f60a06200e45460c08551015162005ba7565b519351015162005ba7565b51926200e474835185511462001929620174fa565b60005b83518110156200e4fb576200e4f5906001600160a01b03806200e49b838862005bed565b511660005262027113806020526200e4c4600160ff604060002054161515146200192962017535565b6200e4d0838962005bed565b51916200e4de848962005bed565b511660005260205260026040600020015562005b81565b6200e477565b50939092506200c727915062005b81565b60208194939294015160268110156200409c57600b036200e5ed57604001926200e53b60c08551015162005ba7565b51935151916200e553855184511462001929620174fa565b60005b85518110156200e5dd576200e5d7906200054f6001600160a01b03806200e57e848b62005bed565b511660005262027113806020526200e5a7600160ff604060002054161515146200192962017535565b6200e5b3848962005bed565b51916200e5c1858c62005bed565b51166000526020526001604060002001620067d9565b6200e556565b509350916200c727915062005b81565b909192602082015160268110156200409c57600c036200e73c57606060408301510151926200e61c84620154d5565b60005b84518110156200e4fb5760e06200e63f8260606040880151015162005bed565b510151156200e6c5576200e6676200e6608260606040880151015162005bed565b5162006e4d565b62027115548060001981011162005b91576200e6896005916000190162006d7a565b5001805461ff0019166101001790556202711554906000198201821062005b91576005620094486200e6bf936000190162006d7a565b6200e61f565b6200e6e46200e6dd8260606040880151015162005bed565b5162006e29565b62027116548060001981011162005b91576200e7066005916000190162006cfe565b5001805461ff0019166101001790556202711654906000198201821062005b91576005620094486200e6bf936000190162006cfe565b929190602081015160268110156200409c57600d036200e885576040019260206200e76c60a08651015162005ba7565b5194510151916200e781855184511462015dd4565b60005b85518110156200e5dd57806200e79f6200e819928662005bed565b51156200e81f576200e7c36200e7b6828962005bed565b5162027115541162015e6c565b6200e7ef60ff60056200e7e26200e7db858c62005bed565b5162006d7a565b50015460081c1662015ec3565b6200e80760ff6005620095a66200e7db858c62005bed565b6005620095c26200e7db838a62005bed565b6200e784565b6200e83c6200e82f828962005bed565b5162027116541162015e6c565b6200e85b60ff60056200e7e26200e854858c62005bed565b5162006cfe565b6200e87360ff6005620095a66200e854858c62005bed565b6005620095c26200e854838a62005bed565b602081015160268110156200409c57600e036200e9bd576040019260206200e8b260a08651015162005ba7565b5194510151916200e8c7855184511462015dd4565b60005b85518110156200e5dd57806200e8e56200e958928662005bed565b51156200e95e576200e9096200e8fc828962005bed565b5162027115541162015fa7565b6200e92e60ff60056200e9216200e7db858c62005bed565b50015460081c1662016019565b6200e94660ff6005620097006200e7db858c62005bed565b6005620094486200e7db838a62005bed565b6200e8ca565b6200e97b6200e96e828962005bed565b5162027116541162015fa7565b6200e99360ff60056200e9216200e854858c62005bed565b6200e9ab60ff6005620097006200e854858c62005bed565b6005620094486200e854838a62005bed565b909192602082015160268110156200409c57600f036200eafe57606060408301510151926200e9ec84620154d5565b60005b84518110156200e4fb5760e06200ea0f8260606040880151015162005bed565b510151156200ea8e576200ea306200e6608260606040880151015162005bed565b62027115548060001981011162005b91576200ea526005916000190162006d7a565b5001805461ff0019166101001790556202711554906000198201821062005b91576005620095c26200ea88936000190162006d7a565b6200e9ef565b6200eaa66200e6dd8260606040880151015162005bed565b62027116548060001981011162005b91576200eac86005916000190162006cfe565b5001805461ff0019166101001790556202711654906000198201821062005b91576005620095c26200ea88936000190162006cfe565b929190602081015160268110156200409c576010036200ec475760400151926200eb3160a0608086015195015162005ba7565b51916200eb46855184511462001929620174fa565b60005b85518110156200e5dd57806200eb646200ebda928862005bed565b516200eb708162004eaa565b6200eb7c828762005bed565b51906200eb898162004eaa565b6200eba06200eb976201765c565b82151562005b4e565b6200ebab8162004eaa565b600181036200ebe057506200ebcf6200ebc36201765c565b61271083111562005b4e565b6202711e5562005b81565b6200eb49565b6200ebeb8162004eaa565b600281036200ec0057506202711f5562005b81565b6200ec0b8162004eaa565b600381036200ec205750620271205562005b81565b806200ec2e60049262004eaa565b146200ec3b575062005b81565b6202712155386200a911565b602081015160268110156200409c576011036200ef0457604001906200ec7860a06200e45460c08551015162005ba7565b51936200ec898351865114620153e2565b60005b83518110156200ed0a576200ed04906200ece46001600160a01b03806200ecb4848962005bed565b51166000526202711890816020526200ecd86040600020546200733c868d62005bed565b93906200192962017499565b6200ecf0848962005bed565b511660005260205260406000205562005b81565b6200ec8c565b509350906200ed199062017121565b906202711954936200ed31620085978451876201542e565b9060009260005b8781106200eec6575060005b85518110156200edf8576000805b8981106200eda9575b50156200ed74575b6200ed6e9062005b81565b6200ed44565b936200eda06200ed6e916001600160a01b036200ed92888a62005bed565b51166200200d828862005bed565b9490506200ed63565b6200edb48162005e99565b906001600160a01b03918291549060031b1c16906200edd4858b62005bed565b5116146200eded576200ede79062005b81565b6200ed52565b50506001386200ed5b565b5095509392506200ee098262005d44565b8051906001600160401b03821162003f1a576020906200ee298362006014565b016202711960005260005b8281106200ee885750505060005b8281106200ee58575050506200c7279062005b81565b806200054f6001600160a01b036200ee756200ee82948662005bed565b511662001f308362005e99565b6200ee42565b60019060206001600160a01b03845116930192817fe43a1016fd4ea9a9b882244b4d001d1f2d6b7fe146dc2643bb2c59db4a7bb0e10155016200ee34565b936200eef76200eefe916001600160a01b036200eee38862005e99565b90549060031b1c166200200d828862005bed565b9462005b81565b6200ed38565b602081949294015160268110156200409c576012036200f16f57604001906200ef3860a06200e45460c08551015162005ba7565b51936200ef498351865114620153e2565b60005b83518110156200ef9e576200ef98906200ece46001600160a01b03806200ef74848962005bed565b51166000526202711890816020526200ecd860406000205462008299868d62005bed565b6200ef4c565b50935091906200efae9062017121565b62027119546200efbe8162005d44565b906000926000915b8083106200f08c575050506200efdc8262005d44565b8051906001600160401b03821162003f1a576020906200effc8362006014565b016202711960005260005b8281106200f04e5750505060005b8281106200f02b575050506200c7279062005b81565b806200054f6001600160a01b036200ee756200f048948662005bed565b6200f015565b60019060206001600160a01b03845116930192817fe43a1016fd4ea9a9b882244b4d001d1f2d6b7fe146dc2643bb2c59db4a7bb0e10155016200f007565b91956000959193959760005b85518110156200f160576200f0ad8962005e99565b906001600160a01b03918291549060031b1c16906200f0cd838962005bed565b5116146200f0e6576200f0e09062005b81565b6200f098565b509750956001959391955b806200f12d575b156200f110576200f1099062005b81565b916200efc6565b936200eef76200f109916001600160a01b036200eee38862005e99565b506001600160a01b036200f1418262005e99565b90549060031b1c1660005262027118602052604060002054156200f0f8565b5097969096959391956200f0f1565b602081949394015160268110156200409c576013036200f2135760408091015101519160005b83518110156200e334576200f1ab818562005bed565b51906202711754600160401b81101562003f1a576001810180620271175581101562005bb5576200f20d9260076200054f9262027117600052027f08f37177f6a5732df494aeff73d589b534878a053b84dfe1e41c467868b7c9fd01620168c1565b6200f195565b60208194939294015160268110156200409c576014036200f75857604001906200f24260c08351015162005ba7565b51936200f25960a062007c9f818651015162005ba7565b51916200f26a8651855114620160fd565b6200f27986518451146201616f565b60005b86518110156200f375576200f292818562005bed565b516200f29f828762005bed565b519061271082101562005bb557620138996200f2c19260031b01549062007088565b906200f2ce838862005bed565b519161271083101562005bb557620138996200f2ef9360031b015562016238565b6200f2fb818562005bed565b516200f308828762005bed565b519061271082101562005bb557620138966200f332926001600160a01b036200c2b0868d62005bed565b91906200f340828862005bed565b519061271082101562005bb5576200f36f93620138966200054f936001600160a01b036200c306878f62005bed565b6200f27c565b50926200f38c9192506200899b909594956201723d565b916040516200f39b8162003fbd565b6000815260003681376000945b80518610156200c715576200f3be868262005bed565b51610360526200f3cf855162005d44565b966000946200f3df845162005d44565b6105805260009460005b88518110156200f4b3578a896200f4196001600160a01b036200f40d858462005bed565b51166103605162017072565b15806200f46a575b6200f43a575b50506200f4349062005b81565b6200f3e9565b986200f45f916200200d826001600160a01b036200c40e879e976200f4349862005bed565b9790508a896200f427565b50505061271061036051101562005bb5576001600160a01b036200f48f828b62005bed565b5116600052620138966103605160031b016020528a8960406000205415156200f421565b50909895979498969291939660005b88518110156200f5525761271061036051101562005bb5576001600160a01b03806200f4ef838c62005bed565b5116600052620138966103605160031b01602052604060002054156200f522575b506200f51c9062005b81565b6200f4c2565b819b6200f54a916200f5396200f51c948d62005bed565b51166200200d826105805162005bed565b9a906200f510565b5098509695929190939661036051612710811015806105205262005bb55760031b620138970154986200f58a62008597898c6201542e565b61022052600061056052600060a0525b6105205162005bb55760a0518a8110156200f65f576200f5d06200f5ee91600061052052620138976103605160031b0162005f0b565b91906001600160a01b03928391549060031b1c1661058051620170cc565b156200f60c575b506200f60360a05162005b81565b60a0526200f59a565b6000610520526200f62b60a051620138976103605160031b0162005f0b565b90549060031b1c166200f645610560516102205162005bed565b526200f6546105605162005b81565b61056052386200f5f5565b50979294959093985095909560005b8281106200f70c575050506105205162005bb55761022051516001600160401b03811162003f1a576200f6ad81620138976103605160031b016200611d565b60206102205101620138976103605160031b01600052602060002060005b8381106200f6ee57505050506200f6e29062005b81565b9492959091956200f3a8565b60019060206001600160a01b0385511694019381840155016200f6cb565b806001600160a01b036200f7256200f752938562005bed565b51166200f739610560516102205162005bed565b526200f7486105605162005b81565b6105605262005b81565b6200f66e565b92602084015160268110156200409c576015036200fd105760408401906200f78560c08351015162005ba7565b51906200f79c60a062007c9f818651015162005ba7565b51936200f7b1835185511462001929620174fa565b6200f7c4835186511462001929620174fa565b60005b83518110156200f824576200f7dd818662005bed565b519061271082101562005bb557620138966200f81e926001600160a01b038b511660005260031b016020526200054f6040600020546200822b838a62005bed565b6200f7c7565b509095919560005b87518110156200f95d576200f842818662005bed565b5161271081101562005bb55762013896906001600160a01b0386511660005260031b016020526200f87e60406000205462008299838962005bed565b906200f88b838862005bed565b519161271083101562005bb557620138966200f8c6936001600160a01b0389511660005260031b016020526040600020556200192962017621565b6200f8d2818662005bed565b5161271081101562005bb55762013896906001600160a01b036200f8f7848c62005bed565b511660005260031b016020526200f9196040600020546200733c838962005bed565b91906200f927828862005bed565b519061271082101562005bb5576200f95793620138966200054f936001600160a01b036200caed8f889062005bed565b6200f82c565b509194935091620089a26200f972916201723d565b926001600160a01b03604051956200f98a8762003fa1565b600187526020368189013751166200f9a28662005ba7565b526000905b86518210156200cec2576200f9bd828862005bed565b51610160526200f9ce855162005d44565b966000946200f9de885162005d44565b6101c05260009460005b88518110156200fab2578a896200fa186001600160a01b036200fa0c858462005bed565b51166101605162017072565b15806200fa69575b6200fa39575b50506200fa339062005b81565b6200f9e8565b986200fa5e916200200d826001600160a01b036200c40e879e976200fa339862005bed565b9790508a896200fa26565b50505061271061016051101562005bb5576001600160a01b036200fa8e828b62005bed565b5116600052620138966101605160031b016020528a8960406000205415156200fa20565b509098949897969291939760005b88518110156200fb565761271061016051101562005bb5576001600160a01b036200faec828b62005bed565b5116600052620138966101605160031b01602052604060002054156200fb1e575b6200fb189062005b81565b6200fac0565b996200fb4d6200fb18916001600160a01b036200fb3c8e8d62005bed565b51166200200d826101c05162005bed565b9a90506200fb0d565b50985096949392919561016051612710811015806106205262005bb55760031b620138970154966200fb8d62008597878a6201542e565b996000996000610700525b6106205162005bb557610700518a8110156200fc43576001600160a01b036200fbd76200fbe992600061062052620138976101605160031b0162005f0b565b90549060031b1c166101c051620170cc565b156200fc08575b6200fbfe6107005162005b81565b610700526200fb98565b996200fc3c906000610620528c6200200d826001600160a01b036200864061070051620138976101605160031b0162005f0b565b996200fbf0565b509a939794969299919850946000915b8383106200fcec57505050506106205162005bb5578051906001600160401b03821162003f1a576020906200fc9483620138976101605160031b016200611d565b01620138976101605160031b01600052602060002060005b8381106200fcce57505050506200fcc39062005b81565b90929591956200f9a7565b60019060206001600160a01b0385511694019381840155016200fcac565b620087236200fd09916001600160a01b0362009a30868662005bed565b916200fc53565b909192602081015160268110156200409c576016036200fdd25760c060406200fd3d920151015162005ba7565b519160005b83518110156200e334576001600160a01b036200fd60828662005bed565b511690620271225491600160401b83101562003f1a576001830180620271225583101562005bb5576200fdcc92620271226000527f1f4fe3ad533e3985b88710ce05a205152f02825e155777f3bcb8b3bbfcfb03a201906001600160a01b031982541617905562005b81565b6200fd42565b602081015160268110156200409c576017036200fe3f57608460405162461bcd60e51b815260206004820152602960248201527f5265736572766564206f70636f6465206964203233206973206e6f7420696d706044820152683632b6b2b73a32b21760b91b6064820152fd5b602081015160268110156200409c576018036200ff0f5760c060406200fe69920151015162005ba7565b5191600160ff1962027125541617620271255560005b83518110156200e334576001600160a01b036200fe9d828662005bed565b511690620271245491600160401b83101562003f1a576001830180620271245583101562005bb5576200ff0992620271246000527f18baa939e2e21be0e012ec26e9ec87e9e6faa065bd9f5835250457786300ece801906001600160a01b031982541617905562005b81565b6200fe7f565b60208194929394015160268110156200409c576019036200ff37575b506200c7279062005b81565b602081015160268110156200409c57601a03620100c85760a060406200ff61920151015162005ba7565b51906200ff726003835114620153e2565b6200ff7d8262005ba7565b516200ff8d6200a8a88462005bcb565b519262010084576200c727926001036201007d576200ffb56201001f91620271205462007088565b6202712055604051906200ffc98262003f69565b603282527f6469766964656e6461626c652062616c616e6365206f766572666c6f7720776860208301527f656e2070726f63657373696e6720636173680000000000000000000000000000604083015262005b4e565b6201007662010032620271215462007075565b620271215560405190620100468262003fa1565b601a82527f6469766964656e647320636f756e746572206f766572666c6f77000000000000602083015262005b4e565b906200ff2b565b5062010076565b606460405162461bcd60e51b815260206004820152601460248201527f496e76616c6964207061796d656e7420747970650000000000000000000000006044820152fd5b602081015160268110156200409c57601b03620106f0575091906202711e54620100f56200a9906201733b565b62027121546202711f541115620101166201010f620173c2565b8262005b4e565b62027120549062010128838362006fe1565b50506201013462017423565b506000805b61271082106201063c575b505090620101746201017a93926201016a6201015f6201733b565b612710861062005b4e565b62001929620173c2565b62006fe1565b90506201018662017423565b5060009060005b612710811062010564575b5090612710620101a9920462007159565b9050620101ba6202712a5462005d44565b906000946000905b61271082101562010557578160031b9460ff6201389a87015416156201031e5760009662013895870154156201030d57600098975b62005bb55762013897870154891015620102f3576201021c8962013897890162005f0b565b90549060031b1c6001600160a01b03169788600052620138968801602052604098868a60002054906201024f9162006fe1565b9a906201025b62017423565b620102669162005b4e565b60009a620138958b01546201027b9162006fe1565b91906201028762017423565b620102929162005b4e565b826000526202711a60205260002090815490620102af9162007088565b909155620102bc62017423565b620102c79162005b4e565b620102d3828962005bed565b52620102df9062005b81565b98620102eb9062005b81565b9897620101f7565b92909550620103059196975062005b81565b9094620101c2565b929095506201030591965062005b81565b95969392509350505b620103328262005d44565b9160009160005b828110620104c2575050506202711b54916201035a6200859784846201542e565b926000906000905b8082106201049d57505060005b8381106201040857505050508051906001600160401b03821162003f1a576020906201039b836200606c565b016202711b60005260005b828110620103ca575050506200c72790600062027120556000620271215562010076565b60019060206001600160a01b03845116930192817fc59860dc09a642b584039e685e1d1ef32a7f12bf29c382ee17f417fe2f31f399015501620103a6565b6000805b83811062010455575b50156201042e575b620104289062005b81565b6201036f565b906201044c62010428916001600160a01b0362009a30858762005bed565b9190506201041d565b6001600160a01b03806201046a858862005bed565b51169062010479838a62005bed565b51161462010492576201048c9062005b81565b6201040c565b505060013862010415565b909162008723620104bb916001600160a01b0362009dc28662005ed2565b9062010362565b6000805b8581106201050f575b5015620104e8575b620104e29062005b81565b62010339565b9262010506620104e2916001600160a01b0362009a30878662005bed565b939050620104d7565b6001600160a01b038062010524858762005bed565b51169062010533838a62005bed565b5116146201054c57620105469062005b81565b620104c6565b5050600138620104cf565b9394959291505062010327565b90918160039695961b60ff6201389a8201541615620106305762013895810154620138978201546000928391825b818410620105ce575050505062007b33620105c593620105bd6200054f9796946200713f9462006fe1565b929062006e71565b9493946201018d565b94929462005bb5576201062985620106216001600160a01b03620105fc6200054f9962013897880162005f0b565b90549060031b1c16956000966000526201389686016020526040600020549062007088565b979062007003565b9262010592565b50919094939462010198565b8160039897981b60ff6201389a8201541615620106e6576201389581015490600062013897820154916000926000925b818410620106a9575050505062007b336201069f936200adbf846201017462006f2d6200adcb966200054f9a9862006fe1565b9096959662010139565b93929362005bb557620106df84620106d76001600160a01b03620105fc6200054f9862013897880162005f0b565b969062007003565b926201066c565b5096959662010144565b602081015160268110156200409c57601c036201075d57608460405162461bcd60e51b815260206004820152602960248201527f5265736572766564206f70636f6465206964203238206973206e6f7420696d706044820152683632b6b2b73a32b21760b91b6064820152fd5b602081015160268110156200409c57601d0362010781575b506200c7279062010076565b602081015160268110156200409c57601e146201077557602081015160268110156200409c57601f0362010825576040620107bf9101515162005ba7565b51906202712354600160401b81101562003f1a576001810180620271235581101562005bb5576200c727926201081e91620271236000527f4ad859a97f543436e70c22b09d31fb4c7b9e987d7a008c98817c9b50a97b122401620067d9565b9062010775565b602081015160268110156200409c5760200362010849575b506200c727906201081e565b602081015160268110156200409c576021146201083d57602081015160268110156200409c57602203620108f0575060ff19620271255416620271255562027124546000620271245580620108a7575b506200c727905b906201083d565b620271246000527f18baa939e2e21be0e012ec26e9ec87e9e6faa065bd9f5835250457786300ece8908101905b818110620108e3575062010899565b60008155600101620108d4565b602081015160268110156200409c5760230362010914575b506200c72790620108a0565b602081015160268110156200409c576024146201090857602081015160268110156200409c576025146201090857929091602084015160268110156200409c5760150362010f0f5760408401906201097160c08351015162005ba7565b51906201098860a062007c9f818651015162005ba7565b51936201099d835185511462001929620174fa565b620109b0835186511462001929620174fa565b60005b835181101562010a1057620109c9818662005bed565b519061271082101562005bb5576201389662010a0a926001600160a01b038b511660005260031b016020526200054f6040600020546200822b838a62005bed565b620109b3565b509095919560005b875181101562010b495762010a2e818662005bed565b5161271081101562005bb55762013896906001600160a01b0386511660005260031b0160205262010a6a60406000205462008299838962005bed565b9062010a77838862005bed565b519161271083101562005bb5576201389662010ab2936001600160a01b0389511660005260031b016020526040600020556200192962017621565b62010abe818662005bed565b5161271081101562005bb55762013896906001600160a01b0362010ae3848c62005bed565b511660005260031b0160205262010b056040600020546200733c838962005bed565b919062010b13828862005bed565b519061271082101562005bb55762010b4393620138966200054f936001600160a01b036200caed8f889062005bed565b62010a18565b509194935091620089a262010b5e916201723d565b926001600160a01b036040519562010b768762003fa1565b6001875260203681890137511662010b8e8662005ba7565b526000905b865182101562010efc5762010ba9828862005bed565b516106605262010bba855162005d44565b9660009462010bca885162005d44565b6106e05260009460005b885181101562010c9e578a8962010c046001600160a01b0362010bf8858462005bed565b51166106605162017072565b158062010c55575b62010c25575b505062010c1f9062005b81565b62010bd4565b9862010c4a916200200d826001600160a01b036200c40e879e9762010c1f9862005bed565b9790508a8962010c12565b50505061271061066051101562005bb5576001600160a01b0362010c7a828b62005bed565b5116600052620138966106605160031b016020528a89604060002054151562010c0c565b509098949897969291939760005b885181101562010d425761271061066051101562005bb5576001600160a01b0362010cd8828b62005bed565b5116600052620138966106605160031b016020526040600020541562010d0a575b62010d049062005b81565b62010cac565b9962010d3962010d04916001600160a01b0362010d288e8d62005bed565b51166200200d826106e05162005bed565b9a905062010cf9565b50985096949392919561066051612710811015806104005262005bb55760031b6201389701549662010d7962008597878a6201542e565b9960009960006105c0525b6104005162005bb5576105c0518a81101562010e2f576001600160a01b0362010dc362010dd592600061040052620138976106605160031b0162005f0b565b90549060031b1c166106e051620170cc565b1562010df4575b62010dea6105c05162005b81565b6105c05262010d84565b9962010e28906000610400528c6200200d826001600160a01b03620086406105c051620138976106605160031b0162005f0b565b9962010ddc565b509a939794969299919850946000915b83831062010ed857505050506104005162005bb5578051906001600160401b03821162003f1a5760209062010e8083620138976106605160031b016200611d565b01620138976106605160031b01600052602060002060005b83811062010eba575050505062010eaf9062005b81565b909295919562010b93565b60019060206001600160a01b03855116940193818401550162010e98565b6200872362010ef5916001600160a01b0362009a30868662005bed565b9162010e3f565b9295505092506200c72791509062010908565b606460405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206f7065726174696f6e2074797065000000000000000000006044820152fd5b5091905062010f62816201486e565b9060068110156200409c576002810362010fce5760405162461bcd60e51b815260206004820152602a60248201527f5468652070726f6772616d2069732064656e6965642062792074686520706c7560448201526967696e2073797374656d60b01b6064820152608490fd5b600381036201109a5750303b1562003ee4579060405180927f74579b180000000000000000000000000000000000000000000000000000000082526044820160406004840152815180915260206064840192019060005b81811062011080575050506201104b8291600094600319848303016024850152620055c7565b038183305af180156201107457620110605750565b6001600160401b03811162003f1a57604052565b6040513d6000823e3d90fd5b825184528694506020938401939092019160010162011025565b6005915014620110a75750565b906000905b602083015180518310156200b5b45782620110c79162005bed565b51602081015160268110156200409c57156200b57057602081015160268110156200409c576001036201130657604001906201110860c08351015162005ba7565b51936201111f60a062007c9f818651015162005ba7565b5191620111308651855114620160fd565b6201113f86518451146201616f565b60005b8651811015620112945762011158818662005bed565b5161271081101562005bb557600160ff60076201117e9360031b015416151514620161e1565b6201118a818562005bed565b5162011197828762005bed565b519061271082101562005bb5576006620111b79260031b01549062007088565b90620111c4838862005bed565b519161271083101562005bb5576006620111e39360031b015562016238565b620111ef818562005bed565b51620111fc828762005bed565b519061271082101562005bb55760036201123c926001600160a01b0362011224868d62005bed565b5116600052811b016020526040600020549062007088565b91906201124a828862005bed565b519061271082101562005bb5576201128e9360036200054f936001600160a01b0362011277878f62005bed565b5116600052811b01602052604060002055620162aa565b62011142565b50949150916200838a620112a8916201723d565b9360405192620112b88462003fbd565b60008452600036813760005b8351811015620112e957806200054f62007e66620112e3938762005bed565b620112c4565b5094509260209250620112fd915062005b81565b919050620110ac565b909192602082015160268110156200409c576002036201149d57604080920190815193845191620113406200c76a60a08098015162005ba7565b51948351875103620080fd578351855103620080945783518651036200802b575060005b865181101562011487576201137a818862005bed565b5161271081101562005bb55760ff60076201139c9260031b015416156201631b565b620113a8818862005bed565b5161271081101562005bb55760031b600701805460ff19166001179055620113d1818562005bed565b51620113de828962005bed565b519061271082101562005bb5576005620113fc9260031b01620067d9565b62011408818662005bed565b5162011415828962005bed565b5161271081101562005bb55760031b6001015562011434818762005bed565b5162011441828962005bed565b5161271081101562005bb55760031b6002015562011460818862005bed565b519061271082101562005bb55760006006620114819360031b015562005b81565b62011364565b50959150935060209250620112fd915062005b81565b929190602081015160268110156200409c57600303620114ca57602091926200054f620112fd9262016367565b602081015160268110156200409c576004036201176f57620114f460c06040830151015162005ba7565b51936201150960c06040840151015162005bcb565b51906201153060a06040620115248282880151015162005ba7565b51950151015162005bcb565b519362011545875184511462001929620174fa565b62011558875185511462001929620174fa565b6201156b875186511462001929620174fa565b60005b8751811015620115d35762011584818662005bed565b519061271082101562005bb5576003620115cd926001600160a01b03620115ac848d62005bed565b5116600052811b016020526200054f6040600020546200822b838a62005bed565b6201156e565b509095919593929360005b83518110156201172c57620115f4818762005bed565b5161271081101562005bb5576003906001600160a01b0362011617848862005bed565b5116600052811b016020526201163860406000205462008299838862005bed565b9062011645838962005bed565b519161271083101562005bb557600362011688936001600160a01b036201166d878b62005bed565b5116600052811b016020526040600020556200192962017621565b62011694818762005bed565b5161271081101562005bb5576003906001600160a01b03620116b7848c62005bed565b5116600052811b01602052620116d86040600020546200733c838862005bed565b919050620116e7818862005bed565b519161271083101562005bb557600362011726936001600160a01b036201170f858e62005bed565b5116600052811b0160205260406000205562005b81565b620115de565b50936201174691929693506200899b620089a2916201723d565b9260005b8351811015620112e957806200054f62007e6662011769938762005bed565b6201174a565b92602084015160268110156200409c576005036201193e576201179a60a06040860151015162005ba7565b5190620117af60a06040870151015162005bcb565b519282518451036200da155760005b83518110156201181857620117d4818562005bed565b519061271082101562005bb557600362011812926001600160a01b038a5116600052811b016020526200054f6040600020546200822b838962005bed565b620117be565b509060005b8351811015620118bd5762011833818562005bed565b5161271081101562005bb5576003906001600160a01b03895116600052811b016020526201186c60406000205462008299838862005bed565b91906201187a828762005bed565b519061271082101562005bb557620118b79360036200054f936001600160a01b038d5116600052811b016020526040600020556200192962017621565b6201181d565b5094925090620118cd906201723d565b906001600160a01b0360405193620118e58562003fa1565b60018552602036818701375116620118fd8462005ba7565b52604051946201190d8662003fbd565b60008652600036813760005b8351811015620112e957806200054f62007e6662011938938762005bed565b62011919565b92602081015160268110156200409c5760060362011af4576040016201196960c08251015162005ba7565b51936201198060a062008a0b818551015162005ba7565b519285518351036200e0335785518451036200dfc95760005b8651811015620119fe57620119af818562005bed565b519061271082101562005bb5576003620119f8926001600160a01b03620119d7848c62005bed565b5116600052811b016020526200054f6040600020546200822b838962005bed565b62011999565b509060005b865181101562011a9e5762011a19818562005bed565b5161271081101562005bb5576003906001600160a01b0362011a3c848b62005bed565b5116600052811b0160205262011a5d60406000205462008299838862005bed565b919062011a6b828762005bed565b519061271082101562005bb55762011a989360036200054f936001600160a01b036201166d878f62005bed565b62011a03565b50949162011ab39193506200838a906201723d565b916040519462011ac38662003fbd565b60008652600036813760005b8351811015620112e957806200054f62007e6662011aee938762005bed565b62011acf565b602081015160268110156200409c5760070362011c07576040019262011b1f60c08551015162005ba7565b519162011b3160a08651015162005ba7565b519451519162011b49845187511462001929620174fa565b60005b8451811015620112e95762011c01906200054f6001600160a01b038062011b74848a62005bed565b51166000528660028b62011bf162011bb48762011bac8162013880978860205262008f6360ff604060002054161562001929620175e6565b519362005bed565b519162008fdf8d6040519662011bca8862003efe565b60018852886200e1998c60208b01946000865260408c0197885260608c01998a5262005bed565b5191015562008ffa838962005bed565b62011b4c565b602081949394015160268110156200409c5760080362011c9f5760c0604062011c34920151015162005ba7565b519160005b835181101562011c8d5762011c87906001600160a01b038062011c5d838862005bed565b51166000526201388090816020526200e2d1600160ff604060002054161515146200192962017535565b62011c39565b50926020919250620112fd9062005b81565b602081015160268110156200409c5760090362011d225760c0604062011cc9920151015162005ba7565b519160005b835181101562011c8d5762011d1c906001600160a01b038062011cf2838862005bed565b51166000526201388090816020526200e3c0600160ff604060002054161515146200192962017535565b62011cce565b602081015160268110156200409c57600a0362011dd1576040019062011d5360a06200e45460c08551015162005ba7565b519262011d68835185511462001929620174fa565b60005b835181101562011dbe5762011db8906001600160a01b038062011d8f838862005bed565b511660005262013880806020526200e4c4600160ff604060002054161515146200192962017535565b62011d6b565b5093620112fd9193506020925062005b81565b60208194939294015160268110156200409c57600b0362011e85576040019262011e0060c08551015162005ba7565b519351519162011e18855184511462001929620174fa565b60005b855181101562011e725762011e6c906200054f6001600160a01b038062011e43848b62005bed565b511660005262013880806020526200e5a7600160ff604060002054161515146200192962017535565b62011e1b565b5093509160209150620112fd9062005b81565b909192602082015160268110156200409c57600c0362011fc6576060604083015101519262011eb484620154d5565b60005b845181101562011dbe5760e062011ed78260606040880151015162005bed565b5101511562011f565762011ef8620093f38260606040880151015162005bed565b62013882548060001981011162005b915762011f1a6005916000190162006d3c565b5001805461ff0019166101001790556201388254906000198201821062005b915760056200944862011f50936000190162006d3c565b62011eb7565b62011f6e620094728260606040880151015162005bed565b62013882548060001981011162005b915762011f906005916000190162006cc0565b5001805461ff0019166101001790556201388254906000198201821062005b915760056200944862011f50936000190162006cc0565b929190602081015160268110156200409c57600d03620120da5760400192602062011ff660a08651015162005ba7565b5194510151916201200b855184511462015dd4565b60005b855181101562011e7257806201202962012082928662005bed565b51156201208857620120406200956b828962005bed565b6201205860ff60056200e7e26200958d858c62005bed565b6201207060ff6005620095a66200958d858c62005bed565b6005620095c26200958d838a62005bed565b6201200e565b62012098620095fa828962005bed565b620120b060ff60056200e7e26200961c858c62005bed565b620120c860ff6005620095a66200961c858c62005bed565b6005620095c26200961c838a62005bed565b602081949294015160268110156200409c57600e03620121a1576040019060206201210a60a08451015162005ba7565b5192510151936201211f835186511462015dd4565b60005b835181101562011e7257806201213d62012149928862005bed565b516201214f5762005b81565b62012122565b6201215f620096b8828762005bed565b6201217760ff60056200e9216200958d858a62005bed565b6201218f60ff6005620097006200958d858a62005bed565b6005620094486200958d838862005bed565b90602082949394015160268110156200409c57600f03620122e35760606040830151015192620121d184620154d5565b60005b845181101562011dbe5760e0620121f48260606040880151015162005bed565b51015115620122735762012215620093f38260606040880151015162005bed565b62013882548060001981011162005b9157620122376005916000190162006d3c565b5001805461ff0019166101001790556201388254906000198201821062005b91576005620095c26201226d936000190162006d3c565b620121d4565b6201228b620094728260606040880151015162005bed565b62013882548060001981011162005b9157620122ad6005916000190162006cc0565b5001805461ff0019166101001790556201388254906000198201821062005b91576005620095c26201226d936000190162006cc0565b90602081949394015160268110156200409c57601003620123545760400151906201231760a0608084015193015162005ba7565b51936201232c835186511462001929620174fa565b60005b835181101562011e7257806200054f620098ad6201234e938762005bed565b6201232f565b602081949294015160268110156200409c57601103620125da57604001906201238860a06200e45460c08551015162005ba7565b5193620123998351865114620153e2565b60005b835181101562012414576201240e906200054f6001600160a01b0380620123c4848962005bed565b51166000526201388580602052620123e76040600020546200733c868d62005bed565b919092620123f6868b62005bed565b51166000526020526040600020556200192962017499565b6201239c565b50935090620124239062017121565b906201388654936201243b620085978451876201542e565b9060009260005b878110620125b7575060005b8551811015620124f4576000805b898110620124a5575b50156201247e575b620124789062005b81565b6201244e565b936201249c62012478916001600160a01b036200ed92888a62005bed565b9490506201246d565b620124b08162005db5565b906001600160a01b03918291549060031b1c1690620124d0858b62005bed565b511614620124e957620124e39062005b81565b6201245c565b505060013862012465565b509550939250620125058262005d44565b8051906001600160401b03821162003f1a57602090620125258362005f95565b016201388660005260005b828110620125795750505060005b8281106201255657505050620112fd60209162005b81565b806200054f6001600160a01b0362001f2362012573948662005bed565b6201253e565b60019060206001600160a01b03845116930192817f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa401550162012530565b936200eef7620125d4916001600160a01b036200eee38862005db5565b62012442565b602081949294015160268110156200409c576012036201284657604001906201260e60a06200e45460c08551015162005ba7565b51936201261f8351865114620153e2565b60005b835181101562012673576201266d906200054f6001600160a01b03806201264a848962005bed565b51166000526201388580602052620123e760406000205462008299868d62005bed565b62012622565b5093509190620126839062017121565b6201388654620126938162005d44565b906000926000915b8083106201276357505050620126b18262005d44565b8051906001600160401b03821162003f1a57602090620126d18362005f95565b016201388660005260005b828110620127255750505060005b8281106201270257505050620112fd60209162005b81565b806200054f6001600160a01b0362001f236201271f948662005bed565b620126ea565b60019060206001600160a01b03845116930192817f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa4015501620126dc565b91956000959193959760005b85518110156201283757620127848962005db5565b906001600160a01b03918291549060031b1c1690620127a4838962005bed565b511614620127bd57620127b79062005b81565b6201276f565b509750956001959391955b8062012804575b15620127e757620127e09062005b81565b916201269b565b936200eef7620127e0916001600160a01b036200eee38862005db5565b506001600160a01b03620128188262005db5565b90549060031b1c166000526201388560205260406000205415620127cf565b509796909695939195620127c8565b602081015160268110156200409c576013036201289f5760408091015101519260005b84518110156201288e57806200054f62009e6462012888938862005bed565b62012869565b50925090620112fd60209162005b81565b602081015160268110156200409c5760140362012a4a5760400190620128ca60c08351015162005ba7565b5193620128e160a062007c9f818651015162005ba7565b5191620128f28651855114620160fd565b6201290186518451146201616f565b60005b8651811015620129f5576201291a818562005bed565b5162012927828762005bed565b519061271082101562005bb5576006620129479260031b01549062007088565b9062012954838862005bed565b519161271083101562005bb5576006620129739360031b015562016238565b6201297f818562005bed565b516201298c828762005bed565b519061271082101562005bb5576003620129b4926001600160a01b0362011224868d62005bed565b9190620129c2828862005bed565b519061271082101562005bb557620129ef9360036200054f936001600160a01b0362011277878f62005bed565b62012904565b50949150916200838a62012a09916201723d565b936040519262012a198462003fbd565b60008452600036813760005b8351811015620112e957806200054f62007e6662012a44938762005bed565b62012a25565b9290602084015160268110156200409c5760150362012ffa57604084019062012a7860c08351015162005ba7565b519062012a8f60a062007c9f818651015162005ba7565b519362012aa4835185511462001929620174fa565b62012ab7835186511462001929620174fa565b60005b835181101562012b145762012ad0818662005bed565b519061271082101562005bb557600362012b0e926001600160a01b038b5116600052811b016020526200054f6040600020546200822b838a62005bed565b62012aba565b509095919560005b875181101562012c425762012b32818662005bed565b5161271081101562005bb5576003906001600160a01b03865116600052811b0160205262012b6b60406000205462008299838962005bed565b9062012b78838862005bed565b519161271083101562005bb557600362012bb0936001600160a01b03895116600052811b016020526040600020556200192962017621565b62012bbc818662005bed565b5161271081101562005bb5576003906001600160a01b0362012bdf848c62005bed565b5116600052811b0160205262012c006040600020546200733c838962005bed565b919062012c0e828862005bed565b519061271082101562005bb55762012c3c9360036200054f936001600160a01b03620083528f889062005bed565b62012b1c565b509194935091620089a262012c57916201723d565b926001600160a01b036040519562012c6f8762003fa1565b6001875260203681890137511662012c878662005ba7565b526000905b865182101562012fe55762012ca2828862005bed565b516101005262012cb3855162005d44565b9660009462012cc3885162005d44565b6101805260009460005b885181101562012d94578a8962012cfd6001600160a01b0362012cf1858462005bed565b51166101005162017008565b158062012d4e575b62012d1e575b505062012d189062005b81565b62012ccd565b9862012d43916200200d826001600160a01b036200c40e879e9762012d189862005bed565b9790508a8962012d0b565b50505061271061010051101562005bb5576001600160a01b0362012d73828b62005bed565b5116600052600361010051811b016020528a89604060002054151562012d05565b509098949897969291939760005b885181101562012e355761271061010051101562005bb5576001600160a01b0362012dce828b62005bed565b5116600052600361010051811b016020526040600020541562012dfd575b62012df79062005b81565b62012da2565b9962012e2c62012df7916001600160a01b0362012e1b8e8d62005bed565b51166200200d826101805162005bed565b9a905062012dec565b50985096949392919561010051612710811015806105e05262005bb55760031b600401549662012e6a62008597878a6201542e565b996000996000610540525b6105e05162005bb557610540518a81101562012f1c576001600160a01b0362012eb262012ec49260006105e05260046101005160031b0162005f0b565b90549060031b1c1661018051620170cc565b1562012ee3575b62012ed96105405162005b81565b6105405262012e75565b9962012f159060006105e0528c6200200d826001600160a01b03620086406105405160046101005160031b0162005f0b565b9962012ecb565b509a939794969299919850946000915b83831062012fc157505050506105e05162005bb5578051906001600160401b03821162003f1a5760209062012f6b8360046101005160031b016200611d565b0160046101005160031b01600052602060002060005b83811062012fa3575050505062012f989062005b81565b909295919562012c8c565b60019060206001600160a01b03855116940193818401550162012f81565b6200872362012fde916001600160a01b0362009a30868662005bed565b9162012f2c565b91945050620112fd9194506020925062005b81565b9092602081015160268110156200409c57601603620130585760c0604062013026920151015162005ba7565b519260005b84518110156201288e57806200054f6001600160a01b036200a5dc62013052948962005bed565b6201302b565b602081015160268110156200409c57601703620130c557608460405162461bcd60e51b815260206004820152602960248201527f5265736572766564206f70636f6465206964203233206973206e6f7420696d706044820152683632b6b2b73a32b21760b91b6064820152fd5b602081015160268110156200409c57601803620131325760c06040620130ef920151015162005ba7565b5192600160ff1962013892541617620138925560005b84518110156201288e57806200054f6001600160a01b036200a6b96201312c948962005bed565b62013105565b602081939293015160268110156200409c57601903620132bc5760008091604082910160a08082510151805162013283575b505051906001600160a01b03620131886200733560c060e086015195015162005ba7565b511690602083519301915af13d156201327a573d90620131a882620041b8565b91620131b8604051938462003fd9565b82523d6000602084013e5b15620131d75750620112fd60209162005b81565b62005b7d9062013259604051917f5468652063616c6c20746f2074686520636f6e7472616374206973206e6f742060208401527f7375636365737366756c2e2052657475726e20646174613a2000000000000000604084015282815162013248816059946020868601910162004106565b810103603981018452018262003fd9565b60405191829162461bcd60e51b83526020600484015260248301906200412b565b606090620131c3565b6201328e9062005ba7565b51516201329d575b8062013164565b8192506200733590620132b39251015162005ba7565b51903862013296565b602081015160268110156200409c57601a03620133765760a06040620132e6920151015162005ba7565b51620132f66003825114620153e2565b620133018162005ba7565b51916201331a620133128362005bcb565b519262005bdc565b51916201008457602092620112fd926001036200a911576201334562013354916201388d5462007088565b6201388d556200192962017423565b6200054f620133676201388e5462007075565b6201388e55620019296201745e565b602081015160268110156200409c57601b03620137ca57509190620133a76201388b54620070bf6200a9906201733b565b5050620133b362017423565b506000805b61271081106201377e575b5050620133cf6200709a565b620133de6202712a5462005d44565b906000946000905b61271082101562013771578160031b9460ff6007870154161562013536576000966002870154156201352557600098975b62005bb55760048701548910156201350b5762013438896004890162005f0b565b90549060031b1c6001600160a01b0316978860005260038801602052604098868a6000205490620134699162006fe1565b9a906201347562017423565b620134809162005b4e565b60009a60028b0154620134939162006fe1565b91906201349f62017423565b620134aa9162005b4e565b826000526201388760205260002090815490620134c79162007088565b909155620134d462017423565b620134df9162005b4e565b620134eb828962005bed565b52620134f79062005b81565b98620135039062005b81565b989762013417565b929095506201351d9196975062005b81565b9094620133e6565b929095506201351d91965062005b81565b95969392509350505b6201354a8262005d44565b9160009160005b828110620136dc57505050620138885491620135726200859784846201542e565b926000906000905b808210620136b757505060005b8381106201362257505050508051906001600160401b03821162003f1a57602090620135b38362005f3d565b016201388860005260005b828110620135e457505050620112fd60209160006201388d5560006201388e5562005b81565b60019060206001600160a01b03845116930192817ff9ab3ee50aab7a7cf5b7d30204dd21b5da7cc33690a7aec17b3653a822a635df015501620135be565b6000805b8381106201366f575b501562013648575b620136429062005b81565b62013587565b906201366662013642916001600160a01b0362009a30858762005bed565b91905062013637565b6001600160a01b038062013684858862005bed565b51169062013693838a62005bed565b511614620136ac57620136a69062005b81565b62013626565b50506001386201362f565b909162008723620136d5916001600160a01b0362009dc28662005d7c565b906201357a565b6000805b85811062013729575b501562013702575b620136fc9062005b81565b62013551565b9262013720620136fc916001600160a01b0362009a30878662005bed565b939050620136f1565b6001600160a01b03806201373e858762005bed565b5116906201374d838a62005bed565b5116146201376657620137609062005b81565b620136e0565b5050600138620136e9565b939495929150506201353f565b8060039594951b9060ff60078301541615620137c0576200adcb62007b336200054f946200adbf620137b79560026200adb58762006ee3565b939293620133b8565b50939293620133c3565b602081015160268110156200409c57601c036201383757608460405162461bcd60e51b815260206004820152602960248201527f5265736572766564206f70636f6465206964203238206973206e6f7420696d706044820152683632b6b2b73a32b21760b91b6064820152fd5b602081015160268110156200409c57601d036201385d575b50620112fd60209162005b81565b602081015160268110156200409c57601e146201384f57602081015160268110156200409c57601f03620138ae57602091620138a66200aeb86040620112fd9401515162005ba7565b91506201384f565b602081015160268110156200409c57602003620138d4575b50620112fd602091620138a6565b602081015160268110156200409c57602114620138c657602081015160268110156200409c576022036201392a5750620112fd60209160ff19620138925416620138925562013922620060c4565b9150620138c6565b602081015160268110156200409c5760230362013950575b50620112fd60209162013922565b602081015160268110156200409c576024146201394257602081015160268110156200409c576025146201394257602081015160268110156200409c5760150362010f0f57602091620139a7620112fd9262016367565b915062013942565b60019060206001600160a01b03845116930192817fc59860dc09a642b584039e685e1d1ef32a7f12bf29c382ee17f417fe2f31f3990155016200c067565b60019060206001600160a01b03845116930192817fe43a1016fd4ea9a9b882244b4d001d1f2d6b7fe146dc2643bb2c59db4a7bb0e10155016200bf1b565b60016001600160a01b03819216920192835492817f18baa939e2e21be0e012ec26e9ec87e9e6faa065bd9f5835250457786300ece801550191906200be6b565b62013a9d90827f18baa939e2e21be0e012ec26e9ec87e9e6faa065bd9f5835250457786300ece8918201910162005f24565b386200be3d565b6001808262013ab582948662013fec565b019201920191906200bdfd565b620271236000527f4ad859a97f543436e70c22b09d31fb4c7b9e987d7a008c98817c9b50a97b1224908282015b818301811062013b015750506200bdaf565b8062013b0f60019262006448565b0162013aef565b60016001600160a01b03819216920192835492817f1f4fe3ad533e3985b88710ce05a205152f02825e155777f3bcb8b3bbfcfb03a201550191906200bd7e565b62013b8890827f1f4fe3ad533e3985b88710ce05a205152f02825e155777f3bcb8b3bbfcfb03a2918201910162005f24565b386200bd55565b60019060206001600160a01b03845116930192817f7f4320370b90cfd882bd4442421f8b4dbea0ca3aefc8d29d4787126914d53c5a0155016200bc19565b62013bff90847f7f4320370b90cfd882bd4442421f8b4dbea0ca3aefc8d29d4787126914d53c5a918201910162005f24565b386200bc0d565b60019060206001600160a01b03845116930192817f8e71c125ecfe4aeed61c8cf4b09183dd0bf2a3230d826486f04e5f6f0de58e2c0155016200ba04565b62013c7690847f8e71c125ecfe4aeed61c8cf4b09183dd0bf2a3230d826486f04e5f6f0de58e2c918201910162005f24565b386200b9f8565b8062013c9f9160031b600160ff60078301541615151462013ca5575062005b81565b6200b947565b62013cb96004820162013897830162014185565b6201389a8101600160ff1982541617905580548162013893015560018101546201389482015560028101546201389582015562013cff6005820162013898830162013fec565b620138996006820154910155386200a911565b600660208262013d266001945186620068ac565b019201920191906200b735565b600681810204810362005b9157600683810204830362005b9157620271156000527f0f9b10e190177c3c56fc6ce7689c8130c567df57aa02c08e7a090a59992adf928360060281015b826006028201811062013d915750506200b705565b806000600692556000600182015562013dad60028201620065b3565b6000600382015562013dc26004820162006448565b600060058201550162013d7c565b600660208262013de46001945186620068ac565b019201920191906200b689565b8060060290600682040362005b91578260060260068104840362005b91576000906202711682527f2a7aa4e7f2fefac7a07702701afb9c202f6f79fb2762c8e42b37a264307667fa92830192015b82811062013e4f5750506200b659565b80826006925582600182015562013e6960028201620065b3565b82600382015562013e7d6004820162006448565b8260058201550162013e3f565b608460405162461bcd60e51b815260206004820152604060248201527f546865206265666f7265206f7065726174696f6e20706c7567696e207379737460448201527f656d2073686f756c64206e6f742072657475726e20766f7465206e65656465646064820152fd5b60a460405162461bcd60e51b815260206004820152604760248201527f546865206265666f7265206f7065726174696f6e20706c7567696e207379737460448201527f656d2073686f756c64206e6f742072657475726e206120766f74696e6720727560648201527f6c65206c697374000000000000000000000000000000000000000000000000006084820152fd5b81811462013fe8578154916001600160401b03831162003f1a5762013faa83836200611d565b60005260206000209060005260206000208154916000925b84841062013fd1575050505050565b600180919201938454928185015501929062013fc2565b5050565b9080821462013fe85762014001815462005221565b906001600160401b03821162003f1a5781906201402b8262014024865462005221565b866200678f565b600090601f83116001146201406457600092620140585750508160011b916000199060031b1c1916179055565b01549050388062006822565b81526020808220858352818320935090601f1985169083905b828210620140b95750509084600195949392106201409f57505050811b019055565b015460001960f88460031b161c191690553880806200686f565b84958192958501548155600180910196019401906201407d565b81811462013fe857815491620140ea8383620064d6565b6000526020600020906000526020600020906000905b8382106201410e5750505050565b806201411d6001928562013fec565b92810192918101910162014100565b81811462013fe85781549162014143838362006564565b6000526020600020906000526020600020906000905b838210620141675750505050565b80620141766001928562013f84565b92810192918101910162014159565b81811462013fe8578154916001600160401b03831162003f1a57620141ab83836200611d565b60005260206000209060005260206000208154916000925b848410620141d2575050505050565b60016001600160a01b0381921692019384549281850155019290620141c3565b81811462013fe85781549162014209838362006564565b6000526020600020906000526020600020906000905b8382106201422d5750505050565b806201423c6001928562014185565b9281019291810191016201421f565b81811462013fe8578154916201426283836200665a565b6000526020600020906000526020600020906000905b838210620142865750505050565b806001918403620142a3575b600780910193019101909162014278565b80548455620142e28280860190830160ff90620142c4828254168462006732565b620142d682825460081c16846200674c565b5460101c16906200676d565b620142f4600280830190860162013f84565b60038085019082018082036201430d575b505062014292565b6201431891620140d3565b6201432a60048083019086016201412c565b6201433c6005808301908601620141f2565b6201434e600680830190860162013fec565b388062014305565b919062006def5780820362014369575050565b60ff600580620053a29462014382848654168262006719565b600185015460018201556201439e60028601600283016201424b565b60038501546003820155620143ba600486016004830162013fec565b019201620143d782825416849060ff801983541691151516179055565b8054835461ff001916600891821c8416151590911b61ff00161783555460101c1662ff0000825491151560101b169062ff00001916179055565b9080821462013fe857908154906000915b60648310620144315750505050565b600180919401928354948184015501919262014422565b9062013882546020600093019081515190620144648262003ffb565b9162014474604051938462003fd9565b80835262014485601f199162003ffb565b013660208401376201449a8351518262006fe1565b90156201480457620144ac9062005d44565b90859284515115620147fb57620144c38262005d44565b965b855151811015620146445760008080805b8681106201455b57509050620144f881620144f2858762005bed565b62005435565b60068110156200409c576003146201451d575b50620145179062005b81565b620144c5565b6000905b8082106201453057506201450b565b909562009dd6620145549162014547898d62005bed565b516200200d828a62005bed565b9062014521565b62014574816201456d878d5162005bed565b5162014c43565b9390948083118062014630575b15620145e7575050918385620145dd575b60068110156200409c5760038e9114620145bd575b5050620145b49062005b81565b919091620144d6565b94620145d4916200200d82620145b4959862005bed565b93908c620145a7565b6000955062014592565b80949295919514806201461c575b15620145a75760068110156200409c5760038e9114620145bd575050620145b49062005b81565b5060068110156200409c57801515620145f5565b5060068610156200409c5785151562014581565b5093505090929350600093845b83518610156201479657620146716201466b878662005bed565b6200670b565b906006808310156200409c5760029283036201469c57505062014695909562005b81565b9462014651565b620146ac6201466b898862005bed565b92818410156200409c5760018094148062014782575b15620146d75750505062014695909562005b81565b620146ec6201466b8a899b9694959b62005bed565b92808410156200409c576004809414928362014756575b50826201472b575b50506201471f575b50620146959062005b81565b95506201469562014713565b909150881015620147415787141538806201470b565b602182634e487b7160e01b6000525260246000fd5b908093508a10156201476d57891415913862014703565b602184634e487b7160e01b6000525260246000fd5b50818310156200409c5780831415620146c2565b92509290935060068210156200409c5760038203620147f2575b620147bb8162005d44565b9360005b828110620147ce575050509190565b80620147df620147ec928462005bed565b516200200d828962005bed565b620147bf565b506000620147b0565b50909392505050565b608460405162461bcd60e51b815260206004820152602a60248201527f546865206c656e677468206f6620766f74696e672072756c65206c697374206960448201527f73206f766572666c6f77000000000000000000000000000000000000000000006064820152fd5b90620138835460206000930190815151906201488a8262003ffb565b916201489a604051938462003fd9565b808352620148ab601f199162003ffb565b01366020840137620148c08351518262006fe1565b90156201480457620148d29062005d44565b90859284515115620147fb57620148e98262005d44565b965b85515181101562014a575760008080805b8681106201496e575090506201491881620144f2858762005bed565b60068110156200409c576003146201493d575b50620149379062005b81565b620148eb565b6000905b8082106201495057506201492b565b909562009dd6620149679162014547898d62005bed565b9062014941565b620149878162014980878d5162005bed565b5162014cdf565b9390948083118062014a43575b15620149fa575050918385620149f0575b60068110156200409c5760038e9114620149d0575b5050620149c79062005b81565b919091620148fc565b94620149e7916200200d82620149c7959862005bed565b93908c620149ba565b60009550620149a5565b809492959195148062014a2f575b15620149ba5760068110156200409c5760038e9114620149d0575050620149c79062005b81565b5060068110156200409c5780151562014a08565b5060068610156200409c5785151562014994565b5093505090929350600093845b835186101562014b795762014a7e6201466b878662005bed565b906006808310156200409c57600292830362014aa957505062014aa2909562005b81565b9462014a64565b62014ab96201466b898862005bed565b92818410156200409c5760038094148062014b65575b1562014ae45750505062014aa2909562005b81565b62014af96201466b8a899b9694959b62005bed565b92808410156200409c576005809414928362014b4e575b508262014b38575b505062014b2c575b5062014aa29062005b81565b955062014aa262014b20565b9091508810156200409c57871415388062014b18565b908093508a10156200409c57891415913862014b10565b50818310156200409c578083141562014acf565b92509290935060068210156200409c576003820362014bc8575b62014b9e8162005d44565b9360005b82811062014bb1575050509190565b80620147df62014bc2928462005bed565b62014ba2565b50600062014b93565b1562014bd957565b608460405162461bcd60e51b815260206004820152602860248201527f506c7567696e466163746f72793a20706c7567696e20696e646578206f75742060448201527f6f662072616e67650000000000000000000000000000000000000000000000006064820152fd5b909160008093819362014c5c6201388254831062014bd1565b60ff600562014c6b8462006d3c565b50015460081c161562014cd357828262014c8792600162014ea1565b62014c93575b50929190565b809450600192935062014ca7915062006d3c565b50015490600362014cc860ff62014cbe8662006d3c565b5054169462006d3c565b500154913862014c8d565b50509150915080918190565b909160008093819362014cf86201388354831062014bd1565b60ff600562014d078462006cc0565b50015460081c161562014cd357828262014d22928262014ea1565b62014d2d5750929190565b809450600192935062014d41915062006cc0565b50015490600362014cc860ff62014d588662006cc0565b5054169462006cc0565b1562014d6a57565b608460405162461bcd60e51b815260206004820152603160248201527f436865636b696e6720636f6e646974696f6e206578703a20706c7567696e206960448201527f6e646578206f7574206f662072616e67650000000000000000000000000000006064820152fd5b1562014ddc57565b608460405162461bcd60e51b815260206004820152602f60248201527f436865636b696e6720636f6e646974696f6e206578703a206e6f646520696e6460448201527f6578206f7574206f662072616e676500000000000000000000000000000000006064820152fd5b6201388490815481101562005bb557600791600052027f84d95adeb12a1259eb9eb7c14e7511a374a468bb7f8ac3d8ec617dbcd1336deb0190600090565b805482101562005bb5576000526007602060002091020190600090565b909291908015620152105762014ebd6201388254831062014d62565b62014ed9600262014ece8462006d3c565b500154841062014dd4565b8015620151f25762014f09600162014f0085600262014ef88762006d3c565b500162014e84565b50015460ff1690565b62014f148162004eaa565b8062014f24575050505050600090565b62014f2f8162004eaa565b6003810362014f42575050505050600190565b62014f4d8162004eaa565b6004810362014f60575050505050600090565b62014f6b8162004eaa565b60019080820362014f8457505092620056279362015238565b90929362014f928262004eaa565b600280921462014fa8575b505050505050600090565b8215620151d55762014fd18462014fc5838562014ef88a62006d3c565b50015460081c60ff1690565b925b60009586865b62015163575b5062014feb8762005d44565b9760005b88811062015106575050505050620150078262004091565b8183036201506657505091906000915b818310620150255750505090565b9091928062015043575b6201503b909362005b81565b919062015017565b506201503b6201505e62015058858462005bed565b51151590565b90506201502f565b909150620150748262004091565b8103620150cd57509060009182915b818310620150915750505090565b9091928015620150b0575b620150a8909362005b81565b919062015083565b50620150a8620150c562015058858462005bed565b90506201509c565b60039150620150dc8162004091565b14620150ef575038808080808062014f9d565b6201510262015058620056279262005ba7565b1590565b808a62015142620151396201512f848b620151278c8262014ef88d62006cc0565b500162005f0b565b90549060031b1c90565b86868962014ea1565b620151566201515d946200054f9362005bed565b9015159052565b62014fef565b8462015175858262014ef88662006cc0565b500154811015620151cf576201519b6201512f828762015127888262014ef88962006cc0565b620151b4575b620151ad879162005b81565b9062014fd9565b96620151ad620151c5889262005b81565b98915050620151a1565b62014fdf565b620151eb8462014fc5838562014ef88a62006cc0565b9262014fd3565b6201520a600162014f0085600262014ef88762006cc0565b62014f09565b620152216201388354831062014d62565b62015232600262014ece8462006cc0565b62014ed9565b90929160036201528a9183600014620153125760ff60016201526187600262014ef88662006d3c565b50015460101c16945b84156201530157600262014ef8620152829362006d3c565b500162005565565b91603d8110156200409c57602c8103620152d1575050620152b46200733560208093015162005ba7565b5191015160268110156200409c57620152cd90620176d2565b1490565b90929060018103620152e65750505050600090565b600314620152f657505050600090565b620056279262015382565b600262014ef8620152829362006cc0565b60ff60016201532887600262014ef88662006cc0565b50015460101c16946201526a565b156201533e57565b606460405162461bcd60e51b815260206004820152602060248201527f4f70657261746f722061646472657373206973206e6f742070726f76696465646044820152fd5b919060406200733592016201539c60018251511462015336565b620153b76001620153ae835162005ba7565b51511462015336565b620153cd6001600160a01b039384925162005ba7565b51169215620153dc5751161490565b51161490565b15620153ea57565b606460405162461bcd60e51b815260206004820152601c60248201527f496e76616c6964206e756d626572206f6620706172616d6574657273000000006044820152fd5b9190820180921162005b9157565b620154478162004eaa565b620154556200eb976201765c565b620154608162004eaa565b600181036201547f5750620154786200ebc36201765c565b6201388b55565b6201548a8162004eaa565b600281036201549b57506201388c55565b620154a68162004eaa565b60038103620154b757506201388d55565b80620154c560049262004eaa565b14620154ce5750565b6201388e55565b9060005b825181101562015dcf5760e0620154f1828562005bed565b51015115620159c557620155116201550a828562005bed565b516200670b565b6006808210156200409c576004918203620156a3575060209060016003836201553b868962005bed565b510151060362015558575050620155529062005b81565b620154d9565b62005b7d828462015688606362015589620155828562015579868e62005bed565b51015162006190565b9362006190565b92847f20697320776974682072657475726e2074797065205945535f414e445f534b496040958651978894620155f862005c528388016026907f496e76616c6964206265666f72652d6f7020706c7567696e206c6576656c2e2081526502632bb32b6160d51b60208201520190565b017201038363ab3b4b7103bb4ba341034b73232bc1606d1b81526201562882518093601396878501910162004106565b01918201527f505f53414e44424f582c2073686f756c64206265206f6e206c6576656c205b3160338201527f2c20342c20372c2031302c202e2e2e5d00000000000000000000000000000000605382015203604381018552018362003fd9565b5193849362461bcd60e51b855284015260248301906200412b565b620156b36201550a848762005bed565b81811015620159b0576001036201581057506020906002600383620156d9868962005bed565b5101510603620156f0575050620155529062005b81565b62005b7d828462015688605d62015711620155828562015579868e62005bed565b92847f20697320776974682072657475726e20747970652053414e44424f585f4e454560409586519788946201578062005c528388016026907f496e76616c6964206265666f72652d6f7020706c7567696e206c6576656c2e2081526502632bb32b6160d51b60208201520190565b017201038363ab3b4b7103bb4ba341034b73232bc1606d1b8152620157b082518093601396878501910162004106565b01918201527f4445442c2073686f756c64206265206f6e206c6576656c205b322c20352c203860338201527f2c2031312c202e2e2e5d00000000000000000000000000000000000000000000605382015203603d81018552018362003fd9565b620158206201550a848762005bed565b908110156201474157600203620159625760209060038262015843858862005bed565b5101510662015859575050620155529062005b81565b62005b7d8284620156886201587f620158788462015579858d62005bed565b9262006190565b91620159536040938451958693620158d062005c528387016026907f496e76616c6964206265666f72652d6f7020706c7567696e206c6576656c2e2081526502632bb32b6160d51b60208201520190565b017201038363ab3b4b7103bb4ba341034b73232bc1606d1b815281519062015901826013948d868501910162004106565b0101603e907f20697320776974682072657475726e2074797065204e4f2c2073686f756c642081527f6265206f6e206c6576656c205b332c20362c20392c2031322c202e2e2e5d000060208201520190565b03601f19810184528362003fd9565b62005b7d9060405191829162461bcd60e51b8352820160609060208152601e60208201527f496e76616c69642072657475726e20747970653a20554e444546494e4544000060408201520190565b602183634e487b7160e01b6000525260246000fd5b620159d56201550a828562005bed565b600690818110156200409c5760050362015b29575060206001600382620159fd858862005bed565b510151060362015a135750620155529062005b81565b62005b7d8262015b0c605262015a3462015582866201557981998c62005bed565b926040937f20697320776974682072657475726e2074797065205945532c2073686f756c64855198899362015aa162005c528387016025907f496e76616c69642061667465722d6f7020706c7567696e206c6576656c2e204c815264032bb32b6160dd1b60208201520190565b017201038363ab3b4b7103bb4ba341034b73232bc1606d1b815282519062015ad2826013958c878501910162004106565b01918201527f206265206f6e206c6576656c205b312c20342c20372c2031302c202e2e2e5d00603382015203603281018752018562003fd9565b5192839262461bcd60e51b8452600484015260248301906200412b565b62015b396201550a838662005bed565b90808210156200409c57600391820362015c95575060026020918262015b60858862005bed565b510151060362015b765750620155529062005b81565b62005b7d8262015b0c605c62015b9762015582866201557981998c62005bed565b926040937f20697320776974682072657475726e207479706520564f54494e475f4e454544855198899362015c0462005c528387016025907f496e76616c69642061667465722d6f7020706c7567696e206c6576656c2e204c815264032bb32b6160dd1b60208201520190565b017201038363ab3b4b7103bb4ba341034b73232bc1606d1b815282519062015c35826013958c878501910162004106565b01918201527f45442c2073686f756c64206265206f6e206c6576656c205b322c20352c20382c60338201527f2031312c202e2e2e5d0000000000000000000000000000000000000000000000605382015203603c81018752018562003fd9565b62015ca56201550a848762005bed565b908110156200409c5760020362015d8a576020908162015cc6848762005bed565b5101510662015cdb5750620155529062005b81565b62005b7d8262015b0c62015cfa62015878856201557981988b62005bed565b9162015d7b604093845197889362015d4a62005c528387016025907f496e76616c69642061667465722d6f7020706c7567696e206c6576656c2e204c815264032bb32b6160dd1b60208201520190565b017201038363ab3b4b7103bb4ba341034b73232bc1606d1b815281519062015901826013948b868501910162004106565b03601f19810186528562003fd9565b60405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642072657475726e20747970653a20554e444546494e454400006044820152606490fd5b509050565b1562015ddc57565b60a460405162461bcd60e51b815260206004820152604d60248201527f546865206c656e677468206f662074686520706c7567696e20696e646578657360448201527f20617272617920616e642074686520626f6f6c65616e206172726179206d757360648201527f74206265207468652073616d65000000000000000000000000000000000000006084820152fd5b1562015e7457565b608460405162461bcd60e51b815260206004820152602260248201527f496e76616c696420706c7567696e20696e64657820746f20626520656e61626c604482015261195960f21b6064820152fd5b1562015ecb57565b608460405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c6564206973206e6f742060448201527f696e697469616c697a65640000000000000000000000000000000000000000006064820152fd5b1562015f3d57565b608460405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c656420697320616c726560448201527f61647920656e61626c65640000000000000000000000000000000000000000006064820152fd5b1562015faf57565b608460405162461bcd60e51b815260206004820152602360248201527f496e76616c696420706c7567696e20696e64657820746f20626520646973616260448201527f6c656400000000000000000000000000000000000000000000000000000000006064820152fd5b156201602157565b608460405162461bcd60e51b815260206004820152602c60248201527f54686520706c7567696e20746f2062652064697361626c6564206973206e6f7460448201527f20696e697469616c697a656400000000000000000000000000000000000000006064820152fd5b156201609357565b608460405162461bcd60e51b815260206004820152602d60248201527f54686520706c7567696e20746f2062652064697361626c656420697320616c7260448201527f656164792064697361626c6564000000000000000000000000000000000000006064820152fd5b156201610557565b608460405162461bcd60e51b815260206004820152603060248201527f546865206c656e677468206f662074617267657420616e6420746f6b656e436c60448201527f617373206973206e6f7420657175616c000000000000000000000000000000006064820152fd5b156201617757565b608460405162461bcd60e51b815260206004820152602c60248201527f546865206c656e677468206f662074617267657420616e6420616d6f756e742060448201527f6973206e6f7420657175616c00000000000000000000000000000000000000006064820152fd5b15620161e957565b608460405162461bcd60e51b815260206004820152602260248201527f54686520746f6b656e20636c617373206973206e6f7420696e697469616c697a604482015261195960f21b6064820152fd5b156201624057565b608460405162461bcd60e51b815260206004820152602960248201527f54686520746f74616c20737570706c79206f662074686520746f6b656e20697360448201527f206f766572666c6f7700000000000000000000000000000000000000000000006064820152fd5b15620162b257565b608460405162461bcd60e51b8152602060048201526024808201527f5468652062616c616e6365206f662074686520746f6b656e206973206f76657260448201527f666c6f77000000000000000000000000000000000000000000000000000000006064820152fd5b156201632357565b606460405162461bcd60e51b815260206004820152602060248201527f54686520746f6b656e20697320616c726561647920696e697469616c697a65646044820152fd5b60408101906201637c60c08351015162005ba7565b51916201639e60a062016393818451015162005ba7565b519251015162005bcb565b5193620163b3845183511462001929620174fa565b620163c6845186511462001929620174fa565b60005b84518110156201642457620163df818462005bed565b519061271082101562005bb5576201641e916001600160a01b03865116600052600390811b016020526200054f6040600020546200822b838a62005bed565b620163c9565b5092919360005b8351811015620165505762016441818462005bed565b5190612710918281101562005bb5576001600160a01b03908189511660005260039081602091811b0181526201648260406000205462008299868962005bed565b906201648f868a62005bed565b51918783101562005bb55784620164bc93878f5116600052811b0184526040600020556200192962017621565b620164c8848862005bed565b518581101562005bb557829084620164e1878c62005bed565b5116600052811b018152620165016040600020546200733c868962005bed565b91909262016510868a62005bed565b519687101562005bb5576201654a966200054f9562016530888d62005bed565b5116600052811b0190526040600020556200192962017697565b6201642b565b50506200838a62016561916201723d565b9060405193620165718562003fa1565b60018552602036818701376001600160a01b0390816107c0525116620165978562005ba7565b526000935b8151851015620168ba57620165b2858362005bed565b5194620165c0845162005d44565b91600093620165d0825162005d44565b6107e0528496855b87518110156201667957620165ff6107c051620165f6838b62005bed565b51168b62017008565b158062016641575b6201661e575b620166189062005b81565b620165d8565b956201663862016618916107c051620087158a8c62005bed565b9690506201660d565b506127108a101562005bb5576107c0516201665d828a62005bed565b511660005260038a811b01602052604060002054151562016607565b509793929096949195976000986127108610159560031b9860038a019a5b895181101562016713578762005bb5576107c051620166b7828c62005bed565b51166000528b60205260406000205415620166de575b620166d89062005b81565b62016697565b976201670a620166d8918b620166f98c6107c0519262005bed565b51166200200d826107e05162005bed565b989050620166cd565b50949591939650985096909596806107805262005bb55760040180610760525495620167446200859786896201542e565b61074052600097886107a0525b6107805162005bb5576107a05188811015620167ef576201678062016796916000610780526107605162005f0b565b6107c05191549060031b1c166107e051620170cc565b15620167b5575b620167ab6107a05162005b81565b6107a05262016751565b97620167e890620167cd6107a0516107605162005f0b565b6107c05191549060031b1c166200200d826107405162005bed565b976201679d565b5095939096509690969391936000915b8383106201688957505050506107805162005bb55761074051516001600160401b03811162003f1a576201683781610760516200611d565b6020610740510161076051600052602060002060006107c051905b848110620168725750505050506201686a9062005b81565b93926201659c565b600190602083865116950194818501550162016852565b62008723620168b3916107c051620168a2868662005bed565b51166200200d826107405162005bed565b91620167ff565b5050509050565b90805180516001600160401b03811162003f1a57620168e181856200611d565b6020809201846000528260002060005b8381106201696e575050505060c082600692620053a295940151600185015560408101516002850155606081015160038501556201694460808201511515600486019060ff801983541691151516179055565b6201695760a082015160058601620067d9565b0151151591019060ff801983541691151516179055565b82518282015591840191600101620168f1565b620138848054600160401b81101562003f1a57620169a59160018201905562014e46565b91909162006def57620053a291620168c1565b62013890908154600160401b81101562003f1a576001810180845581101562005bb557620053a2926000527f7f73709277f72a9bc7b284375e83603a53394744e9fa86da811e86c2aa78e05e01620067d9565b908062016a16575050565b620053a291600052601f6020600020910160051c81019062005f24565b90600160401b811162003f1a57815481835580821062016a5257505050565b620053a292600052601f6020600020918180850160051c840194168062016a81575b500160051c019062005f24565b600019908186019182549160200360031b1c1690553862016a74565b60009262016ab762016ab0859462014e46565b50620053bf565b9380935b85515185101562016bbd575061271084101562005bb55760039380851b946001600160a01b0385166000526020908601815262016b05604096600188600020549101549062006fe1565b9384911562016b7a579062016b1a9162007088565b96901562016b3757505062016b2f9062005b81565b939062016abb565b60649250519062461bcd60e51b82526004820152601460248201527f746f74616c20706f776572206f766572666c6f770000000000000000000000006044820152fd5b60648389519062461bcd60e51b82526004820152600e60248201527f706f776572206f766572666c6f770000000000000000000000000000000000006044820152fd5b93505092505090565b1562016bce57565b606460405162461bcd60e51b815260206004820152601360248201527f63757272656e74596573206f766572666c6f77000000000000000000000000006044820152fd5b600162016c1f8262014e46565b5001546202712e546000928184526202712b908160205262016c48816004604088200162005f0b565b90549060031b1c918386528060205262016c69826005604089200162005f0b565b90549060031b1c93865260205260ff600662016c9d62016c8f848360408b200162005f0b565b90549060031b1c9362014e46565b5001541662016cf2575062016ce29262016cd362016ccd938362016cc562016cda9562006fab565b969062016bc6565b6201542e565b9062006fe1565b929062016bc6565b111562016cec5790565b50600190565b62010174925062016ce29362016d0c62016cda9362006fab565b949062016bc6565b9092919262016d24825162005d44565b60009162016d33815162005d44565b8390845b865181101562016dce576001600160a01b0362016d5a81620165f6848b62005bed565b158062016d99575b62016d7a575b5062016d749062005b81565b62016d37565b819662016d919162009a3062016d74948b62005bed565b959062016d68565b506127108a101562005bb5578062016db2838a62005bed565b511660005260038a811b01602052604060002054151562016d62565b509295919694509260005b875181101562016e4f5761271086101562005bb5576001600160a01b038062016e03838b62005bed565b5116600052600387811b016020526040600020541562016e30575b5062016e2a9062005b81565b62016dd9565b819562016e47916200ed9262016e2a948c62005bed565b949062016e1e565b509250945092612710831015938462005bb55760049586600395861b019687549462016e806200859782886201542e565b9460009689889a5b62016ff357818b101562016f2957506000998b62016ec362016eab838362005f0b565b90546001600160a01b0392918e1b1c82168a620170cc565b1562016ee6575b50509062016edb8b94939262005b81565b9a9091929362016e88565b91998c95949392909162016efc908c9062005f0b565b9054908d1b1c1662016f0f828b62005bed565b5262016f1b9062005b81565b9890919293508b3862016eca565b9697949a98505091975092506000915b83831062016fcf575050505062016fba578051926001600160401b03841162016fa5575062016f6983836200611d565b602080910191600052806000209060005b84811062016f89575050505050565b83516001600160a01b0316838201559281019260010162016f7a565b604190634e487b7160e01b6000525260246000fd5b603283634e487b7160e01b6000525260246000fd5b6200872362016fec916001600160a01b0362008715868662005bed565b9162016f39565b603285634e487b7160e01b6000525260246000fd5b9060005b61271083101562005bb5576003600484821b018054831015620170685782620170359162005f0b565b916001600160a01b0392839254911b1c169083161462017060576201705a9062005b81565b6201700c565b505050600190565b5050505050600090565b9060005b61271083101562005bb55760036201389784821b018054831015620170685782620170a19162005f0b565b916001600160a01b0392839254911b1c16908316146201706057620170c69062005b81565b62017076565b9060005b82518110156201710b576001600160a01b0380620170ef838662005bed565b5116908316146201706057620171059062005b81565b620170d0565b505050600090565b801562005b91576000190190565b9081519060005b60001983810184811162005b9157821015620171ef576001820180831162005b91575b84811062017166575050620171609062005b81565b62017128565b6001600160a01b03806201717b858962005bed565b5116816201718a848a62005bed565b511614620171a5575b506201719f9062005b81565b6201714b565b828692960182811162005b91576201719f92620171e892620171cc620171e1938b62005bed565b5116620171da898b62005bed565b5262017113565b9562017113565b9062017193565b505090620171fd8162005d44565b9060005b81811062017210575090925050565b806001600160a01b036201722962017237938862005bed565b51166200200d828662005bed565b62017201565b80519160005b60001984810185811162005b9157821015620172f5576001820180831162005b91575b858110620172815750506201727b9062005b81565b62017243565b6201728d838662005bed565b516201729a828762005bed565b5114620172b3575b620172ad9062005b81565b62017266565b948181019080821162005b9157620172e6620172ed91620172d9620172ad948962005bed565b51620171da8a8a62005bed565b9662017113565b9050620172a2565b50509091620173048162005d44565b9060005b81811062017317575090925050565b806201732862017335928762005bed565b516200200d828662005bed565b62017308565b604051620173498162003efe565b604481527f496e76616c6964206469766964656e64207065726d797269616420706572207460208201527f72616e73616374696f6e2e2053686f756c64206265206c657373207468616e2060408201527f3130303000000000000000000000000000000000000000000000000000000000606082015290565b604051620173d08162003f69565b603281527f4e6f20656e6f756768206e756d626572206f66207472616e73616374696f6e7360208201527f20666f72206469766964656e6473207965740000000000000000000000000000604082015290565b604051620174318162003fa1565b601c81527f6469766964656e6473206f7065726174696f6e206f766572666c6f7700000000602082015290565b6040516201746c8162003fa1565b600d81527f556e6b6e6f776e204572726f7200000000000000000000000000000000000000602082015290565b604051620174a78162003f69565b602681527f4572726f7220696e20776974686472617761626c6520636173682063616c637560208201527f6c6174696f6e0000000000000000000000000000000000000000000000000000604082015290565b604051620175088162003fa1565b601281527f496e76616c696420506172616d65746572730000000000000000000000000000602082015290565b604051620175438162003fa1565b601581527f4d656d62657220646f6573206e6f742065786973740000000000000000000000602082015290565b6040516201757e8162003fa1565b601781527f4d656d626572206973206e6f742073757370656e646564000000000000000000602082015290565b604051620175b98162003fa1565b601b81527f4d656d62657220697320616c72656164792073757370656e6465640000000000602082015290565b604051620175f48162003fa1565b601581527f4d656d62657220616c7265616479206578697374730000000000000000000000602082015290565b6040516201762f8162003fa1565b601181527f4e6f20656e6f7567682062616c616e6365000000000000000000000000000000602082015290565b6040516201766a8162003fa1565b601881527f496e76616c696420706172616d6574657220746f207365740000000000000000602082015290565b604051620176a58162003fa1565b601581527f546f6b656e20616d6f756e74206f766572666c6f770000000000000000000000602082015290565b60268110156200409c578015620178c0576001811462016cec5760028114620178ba5760038114620178b45760048114620178ae5760058114620178a85760068114620178a257600781146201789c57600881146201789657600981146201789057600a81146201788a57600b81146201788457600c81146201787e57600d81146201787857600e81146201787257600f81146201786c57601081146201786657601181146201786057601281146201785a57601381146201785457601481146201784e57601581146201784857601881146201784257601781146201783c57601981146201783657601a81146201783057601b81146201782a57601c81146201782457601d81146201781e57601e81146201781857601f81146201781257602081146201780c576021146201780757600090565b602190565b50602090565b50601f90565b50601e90565b50601d90565b50601c90565b50601b90565b50601a90565b50601990565b50601790565b50601690565b50601590565b50601490565b50601390565b50601290565b50601190565b50601090565b50600f90565b50600e90565b50600d90565b50600c90565b50600b90565b50600a90565b50600990565b50600890565b50600790565b50600690565b50600590565b50600490565b50600390565b50600290565b50600090565b90815181101562005bb5570160200190565b60405190620178e78262003f69565b60288252604036602084013760005b601481106201790457505090565b60139080820391821162005b91578160031b917f1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81160362005b915760ff80831162005b915762017963600180941b6001600160a01b0386166200616f565b60f081168282160391821162005b91577f0f00000000000000000000000000000000000000000000000000000000000000620179a39160f41b1662017a3f565b9082841b917f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416840362005b915762017a13917fff000000000000000000000000000000000000000000000000000000000000009160001a62017a08858a620178c6565b5360f81b1662017a3f565b92810180911162005b915762017a3262017a399360001a9186620178c6565b5362005b81565b620178f6565b60f81c600a81101562017a805760300160ff811162005b915760f81b7fff000000000000000000000000000000000000000000000000000000000000001690565b60570160ff811162005b915760f81b7fff00000000000000000000000000000000000000000000000000000000000000169056fea2646970667358221220a88b2310de1c810e72a47968a10611bf5aba2909acc6aaec5b26a486d5c735f764736f6c63430008130033", + "deployedBytecode": "0x6108008060405260043610156200001557600080fd5b600080608052803560e01c918263036ee8501462003eab575081630e5a3b291462003b2257816310ade3ea1462003af05781631797631d1462003a605781631c75255a1462003a0b57816323b65c78146200397b5781632514a6b4146200371f57816341d1a43814620036ec57816356424cf414620036cb5781635c00d98714620036a15781635d0b1849146200367d5781635f1231ea14620035885781635f5d5f0014620034f8578163681ece9d14620034b557816374579b18146200247457816379532bfe14620024505781637daa10ce14620024315781638129fc1c146200201d57816383e4cccf1462001d91578163864f9f7a1462001d4f57816386ad77e214620019d85781638c7a63ae146200195e5781639df9914514620018455781639f36145f1462000577578163a064c4f1146200042c57508063acf80bc414620003ea578063aefca42a14620003c6578063bba510301462000219578063d5a172f214620001ec5763d6a93c51146200018f57600080fd5b34620001e65760805180600319360112620001e3575b6127108110620001bb575b602090604051908152f35b60ff60078260031b01541615620001dd57620001d79062005b81565b620001a5565b620001b0565b80fd5b60805180fd5b34620001e65760805180600319360112620001e35760206001600160a01b03620271265416604051908152f35b34620001e65760805180600319360112620001e3576202712e548091526202712b906020828152600380604060805120015493620002746200025b8662003ffb565b956200026b604051978862003fd9565b80875262003ffb565b8584019190601f19013683376080515b85608051528185528360406080512001548110156200036f576040517f41d1a438000000000000000000000000000000000000000000000000000000008152816004820152602486828281305afa91821562000362576080519262000324575b50620002f1838a62005bed565b90868310156200030e575052620003089062005b81565b62000284565b634e487b7160e01b608051526021600452608051fd5b9091508681813d83116200035a575b6200033f818362003fd9565b81010312620001e6575185811015620001e6579089620002e4565b503d62000333565b6040513d608051823e3d90fd5b84878460405192839281840190828552518091526040840192916080515b8281106200039d57505050500390f35b9193839550908082620003b5600194839751620040f8565b01950191019185949391926200038d565b34620001e65760805180600319360112620001e35760206202712854604051908152f35b34620001e6576020366003190112620001e6576001600160a01b036200040f62003ecd565b166080515262013887602052602060406080512054604051908152f35b34620001e65760209081600319360112620001e6576004356127108110156200055f5790600391821b9060018201549091600481018054946080519481869401905b878510620004fc578862000483888862006fe1565b90156200049257604051908152f35b6084826040519062461bcd60e51b82526004820152603360248201527f73756d566f74696e67576569676874466f72546f6b656e436c6173733a20766f60448201527f74696e67576569676874206f766572666c6f77000000000000000000000000006064820152fd5b9590919293956200055f576200055586620005476001600160a01b03620005286200054f9a8962005f0b565b905490881b1c1693608051948552858c52604060805120549062007088565b989062007003565b62005b81565b939291906200046e565b634e487b7160e01b6080515260326004526024608051fd5b34620001e6576020366003190112620001e657600435608051526202712b602052604060805120604051620005ac8162003f69565b6001600160a01b03825416815260018201918254620005cb8162003ffb565b90620005db604051928362003fd9565b808252602082019460805152608051946020862095905b8282106200067d5762000652868686602083015260405162000625816200061d81600286016200525e565b038262003fd9565b604083015260ff600782015491600960088201549101549060405195869560a0875260a0870190620055c7565b93602086015260408501526200066e60608501838316620040f8565b60081c16151560808301520390f35b6040516200068b8162003f69565b87546001600160a01b0381168252602660ff8260a01c1610156200182d5760a01c60ff166020820152604051620006c28162003f4c565b620006d060018a01620052fc565b8152600289016040518082602082945493848152019060805152608051926020842093905b80601f8301106200165a576200082e94549181811062001643575b81811062001629575b8181106200160f575b818110620015f5575b818110620015dc575b818110620015c2575b818110620015a8575b8181106200158e575b81811062001574575b8181106200155a575b81811062001540575b81811062001526575b8181106200150c575b818110620014f2575b818110620014d8575b818110620014be575b818110620014a4575b8181106200148a575b81811062001470575b81811062001456575b8181106200143c575b81811062001422575b81811062001408575b818110620013ee575b818110620013d4575b818110620013ba575b818110620013a0575b81811062001386575b8181106200136c575b81811062001352575b81811062001338575b1062001327575b50038262003fd9565b6020820152600389018054620008448162003ffb565b9162000854604051938462003fd9565b818352602083019060805152608051906020822091905b83821062001306575050505060408201526004890180546200088d8162003ffb565b916200089d604051938462003fd9565b818352602083019060805152608051906020822091905b8382106200118f57505050506060820152600589016040519081602082549182815201916080515260805190602082205b81601f84011062000e9e5784600997946020979460019a979462000a2b94549181811062000e80575b81811062000e5f575b81811062000e3e575b81811062000e1d575b81811062000dfd575b81811062000ddc575b81811062000dbb575b81811062000d9a575b81811062000d79575b81811062000d58575b81811062000d37575b81811062000d16575b81811062000cf5575b81811062000cd4575b81811062000cb3575b81811062000c92575b81811062000c71575b81811062000c50575b81811062000c2f575b81811062000c0e575b81811062000bed575b81811062000bcc575b81811062000bab575b81811062000b8a575b81811062000b69575b81811062000b48575b81811062000b27575b81811062000b06575b81811062000ae5575b81811062000ac4575b81811062000aa3575b1062000a885750038262003fd9565b608082015262000a3e60068d016200544f565b60a082015262000a5160078d0162005508565b60c0820152600862000a6f8d6200061d60405180948193016200525e565b60e08201526040820152815201970191019095620005f2565b90889160f81c62000a998162004eaa565b8152013862000825565b928a8d9160ff8560f01c1662000ab98162004eaa565b815201930162000a1c565b928a8d9160ff8560e81c1662000ada8162004eaa565b815201930162000a13565b928a8d9160ff8560e01c1662000afb8162004eaa565b815201930162000a0a565b928a8d9160ff8560d81c1662000b1c8162004eaa565b815201930162000a01565b928a8d9160ff8560d01c1662000b3d8162004eaa565b8152019301620009f8565b928a8d9160ff8560c81c1662000b5e8162004eaa565b8152019301620009ef565b928a8d9160ff8560c01c1662000b7f8162004eaa565b8152019301620009e6565b928a8d9160ff8560b81c1662000ba08162004eaa565b8152019301620009dd565b928a8d9160ff8560b01c1662000bc18162004eaa565b8152019301620009d4565b928a8d9160ff8560a81c1662000be28162004eaa565b8152019301620009cb565b928a8d9160ff8560a01c1662000c038162004eaa565b8152019301620009c2565b928a8d9160ff8560981c1662000c248162004eaa565b8152019301620009b9565b928a8d9160ff8560901c1662000c458162004eaa565b8152019301620009b0565b928a8d9160ff8560881c1662000c668162004eaa565b8152019301620009a7565b928a8d9160ff8560801c1662000c878162004eaa565b81520193016200099e565b928a8d9160ff8560781c1662000ca88162004eaa565b815201930162000995565b928a8d9160ff8560701c1662000cc98162004eaa565b81520193016200098c565b928a8d9160ff8560681c1662000cea8162004eaa565b815201930162000983565b928a8d9160ff8560601c1662000d0b8162004eaa565b81520193016200097a565b928a8d9160ff8560581c1662000d2c8162004eaa565b815201930162000971565b928a8d9160ff8560501c1662000d4d8162004eaa565b815201930162000968565b928a8d9160ff8560481c1662000d6e8162004eaa565b81520193016200095f565b928a8d9160ff8560401c1662000d8f8162004eaa565b815201930162000956565b928a8d9160ff8560381c1662000db08162004eaa565b81520193016200094d565b928a8d9160ff8560301c1662000dd18162004eaa565b815201930162000944565b928a8d9160ff8560281c1662000df28162004eaa565b81520193016200093b565b928a8d9160ff85831c1662000e128162004eaa565b815201930162000932565b928a8d9160ff8560181c1662000e338162004eaa565b815201930162000929565b928a8d9160ff8560101c1662000e548162004eaa565b815201930162000920565b928a8d9160ff8560081c1662000e758162004eaa565b815201930162000917565b928a8d9160ff851662000e938162004eaa565b81520193016200090e565b926001610400602092865460ff811662000eb88162004eaa565b825260ff8160081c1662000ecc8162004eaa565b8583015260ff8160101c1662000ee28162004eaa565b604083015260ff8160181c1662000ef98162004eaa565b606083015260ff81861c1662000f0f8162004eaa565b608083015260ff8160281c1662000f268162004eaa565b60a083015260ff81818160301c1662000f3f8162004eaa565b60c09081860152828260381c1662000f578162004eaa565b60e0860152828260401c1662000f6d8162004eaa565b610100860152828260481c1662000f848162004eaa565b610120860152828260501c1662000f9b8162004eaa565b610140860152828260581c1662000fb28162004eaa565b610160860152828260601c1662000fc98162004eaa565b610180860152828260681c1662000fe08162004eaa565b6101a0860152828260701c1662000ff78162004eaa565b6101c0860152828260781c166200100e8162004eaa565b6101e0860152828260801c16620010258162004eaa565b610200860152828260881c166200103c8162004eaa565b610220860152828260901c16620010538162004eaa565b610240860152828260981c166200106a8162004eaa565b610260860152828260a01c16620010818162004eaa565b610280860152828260a81c16620010988162004eaa565b6102a0860152828260b01c16620010af8162004eaa565b6102c0860152828260b81c16620010c68162004eaa565b6102e08601521c16620010d98162004eaa565b61030083015260ff8160c81c16620010f18162004eaa565b61032083015260ff8160d01c16620011098162004eaa565b61034083015260ff8160d81c16620011218162004eaa565b61036083015260ff8160e01c16620011398162004eaa565b61038083015260ff8160e81c16620011518162004eaa565b6103a083015260ff8160f01c16620011698162004eaa565b6103c083015260f81c6200117d8162004eaa565b6103e0820152019401920191620008e5565b60409d9c9b9a999897969d51620011a68162003f4c565b620011b660ff8554168262005435565b60018401546020820152600284018054620011d18162003ffb565b91620011e1604051938462003fd9565b8183526020830190608051526080516020812090915b8383106200127857505050509d9e9798999a9b9c9d6001928260209260406006950152600387015460608201526040516200123b816200061d8160048c016200525e565b608082015260ff6005880154818116151560a0840152818160081c16151560c084015260101c16151560e0820152815201930191019091620008b4565b600760206001926040516200128d8162003f30565b85548152620012d160ff86880154818116620012a98162004eaa565b86850152818160081c16620012be8162004091565b604085015260101c166060830162005442565b620012df600287016200536a565b6080820152620012f26003870162005565565b60a0820152815201920192019190620011f7565b600760206001926200131886620053bf565b8152019301910190916200086b565b60f81c151581526020018d62000825565b92602060019160ff8560f01c16151581520193016200081e565b92602060019160ff8560e81c161515815201930162000815565b92602060019160ff8560e01c16151581520193016200080c565b92602060019160ff8560d81c161515815201930162000803565b92602060019160ff8560d01c1615158152019301620007fa565b92602060019160ff8560c81c1615158152019301620007f1565b92602060019160ff8560c01c1615158152019301620007e8565b92602060019160ff8560b81c1615158152019301620007df565b92602060019160ff8560b01c1615158152019301620007d6565b92602060019160ff8560a81c1615158152019301620007cd565b92602060019160ff8560a01c1615158152019301620007c4565b92602060019160ff8560981c1615158152019301620007bb565b92602060019160ff8560901c1615158152019301620007b2565b92602060019160ff8560881c1615158152019301620007a9565b92602060019160ff8560801c1615158152019301620007a0565b92602060019160ff8560781c161515815201930162000797565b92602060019160ff8560701c16151581520193016200078e565b92602060019160ff8560681c161515815201930162000785565b92602060019160ff8560601c16151581520193016200077c565b92602060019160ff8560581c161515815201930162000773565b92602060019160ff8560501c16151581520193016200076a565b92602060019160ff8560481c161515815201930162000761565b92602060019160ff8560401c161515815201930162000758565b92602060019160ff8560381c16151581520193016200074f565b92602060019160ff8560301c161515815201930162000746565b92602060019160ff8560281c16151581520193016200073d565b92602060019160ff85831c161515815201930162000734565b92602060019160ff8560181c16151581520193016200072b565b92602060019160ff8560101c161515815201930162000722565b92602060019160ff8560081c161515815201930162000719565b92602060019160ff85161515815201930162000710565b916020919350610400600191865460ff81161515825260ff8160081c1615158583015260ff8160101c161515604083015260ff816060828260181c161515818601528282891c1615156080860152828260281c16151560a0860152828260c092828260301c16151584890152828260381c16151560e0890152828260401c161515610100890152828260481c161515610120890152828260501c161515610140890152828260581c1615156101608901521c161515610180860152828260681c1615156101a0860152828260701c1615156101c0860152828260781c1615156101e0860152828260801c161515610200860152828260881c161515610220860152828260901c161515610240860152828260981c161515610260860152828260a01c161515610280860152828260a81c1615156102a0860152828260b01c1615156102c0860152828260b81c1615156102e08601521c16151561030083015260ff8160c81c16151561032083015260ff8160d01c16151561034083015260ff8160d81c16151561036083015260ff8160e01c16151561038083015260ff8160e81c1615156103a083015260ff8160f01c1615156103c083015260f81c15156103e0820152019401920184929391620006f5565b634e487b7160e01b6080515260216004526024608051fd5b6020366003190112620001e6576004356001600160401b038111620001e6576200187490369060040162004430565b6001600160a01b03620018c581835116620018bc6200189d6200189733620178d8565b62005a32565b620018b5620018af86885116620178d8565b62005ab0565b9062005b07565b90331462005b4e565b6080519060208301915b825180518210156200193657906200054f620019309284620018f384339362005bed565b51511614620019296200190a6200189733620178d8565b620018b5620018af8862001920888c5162005bed565b515116620178d8565b9062005b4e565b620018cf565b6200195a6200194586620072a7565b6040519182916020835260208301906200412b565b0390f35b34620001e6576020366003190112620001e6576004356127108110156200055f5760031b6001810154600282015491620019ce6005620019af6006840154936200061d60405180948193016200525e565b604051948594855260208501526080604085015260808401906200412b565b9060608301520390f35b34620001e65760805180600319360112620001e357620138828054620019fe8162003ffb565b9162001a0e604051938462003fd9565b8183526020830190608051527fe5dac618068543225ae1c2f585dbaa37d058ab507104bc7da3da5ab2e5666cc7608051915b83831062001c1157846201388390815462001a5b8162003ffb565b9262001a6b604051948562003fd9565b8184526020840190608051527f9e32270fdbb1cb37df0574dfc18a9a2c56583299a239108c9d137f746b82200a608051915b83831062001ad35762001ac4856200195a8860405193849360408552604085019062005044565b90838203602085015262005044565b60405162001ae18162003f4c565b62001af160ff8454168262005435565b6001830154602082015260028301805462001b0c8162003ffb565b9162001b1c604051938462003fd9565b818352602083019060805152608051906020822091905b83821062001bab575050505060019282602092604060069501526003860154606082015260405162001b6e816200061d8160048b016200525e565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e082015281520192019201919062001a9d565b6007602060019260405162001bc08162003f30565b8654815262001bdc60ff86890154818116620012a98162004eaa565b62001bea600288016200536a565b608082015262001bfd6003880162005565565b60a082015281520193019101909162001b33565b60405162001c1f8162003f4c565b62001c2f60ff8454168262005435565b6001830154602082015260028301805462001c4a8162003ffb565b9162001c5a604051938462003fd9565b818352602083019060805152608051906020822091905b83821062001ce9575050505060019282602092604060069501526003860154606082015260405162001cac816200061d8160048b016200525e565b608082015260ff6005870154818116151560a0840152818160081c16151560c084015260101c16151560e082015281520192019201919062001a40565b6007602060019260405162001cfe8162003f30565b8654815262001d1a60ff86890154818116620012a98162004eaa565b62001d28600288016200536a565b608082015262001d3b6003880162005565565b60a082015281520193019101909162001c71565b34620001e6576020366003190112620001e6576001600160a01b0362001d7462003ecd565b166080515262013885602052602060406080512054604051908152f35b34620001e657602080600319360112620001e6576004359062001dd2478311156200192962001dc08562006190565b62001dcb4762006190565b9062005c02565b336080515262001e4a6201388580835262001e1f604060805120548511156200192962001dff8762006190565b336080515284875262001e186040608051205462006190565b9062005caa565b336080515280835262001e39846040608051205462006155565b92906200192962001dff8762006190565b3360805152825280604060805120551562001e8c575b5060805180808381949382941562001e82575b3390f115620003625760805180f35b506108fc62001e73565b620138869081549162001e9f8362005d44565b9160805193845b81811062001faa57505062001ebb8462005d44565b918251926001600160401b03841162001f925791839262001edd829562005f95565b01906080515260805192835b83811062001f5657505050505b82811062001f0657505062001e60565b806200054f6001600160a01b0362001f2362001f50948662005bed565b511662001f308362005db5565b90919082549060031b916001600160a01b03809116831b921b1916179055565b62001ef6565b82516001600160a01b03167f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa48201559181019160010162001ee9565b634e487b7160e01b6080515260416004526024608051fd5b62001fb58162005db5565b6001600160a01b03915490826003923392841b1c160362001fe4575b505062001fde9062005b81565b62001ea6565b966200201491839862001ffb62001fde9562005db5565b9054911b1c166200200d828962005bed565b5262005b81565b95908862001fd1565b34620001e65760805180600319360112620001e3575062027126336001600160a01b0319825416179055600190620271298260ff19825416179055604051620020668162003fbd565b60805190526201388280548282558062002391575b50608051526040516200208e8162003fbd565b6080519052608051806200237b57506201388390815481835580620022dc575b5050608051526127106202712a55604051620020ca8162003fa1565b8181526080515b602080821015620021445760405160209291620020ee8262003f30565b60805182526080518183015260805160408301526080516060908184015280608084015260405190620021218262003efe565b80825280838301528060408301528082015260a0830152828501015201620020d1565b83620022c984604051620021588162003fbd565b60805181526040516200216b8162003fbd565b60805181526040516200217e8162003fbd565b6080518152604051620021918162003fbd565b608051815260405191620021a58362003fbd565b608051835260405193620021b98562003efe565b845260208401526040830152606082015260405191620021d98362003f30565b60805183526003602084015260805160408401526080516060840152608083015260a08201526200220a8262005ba7565b52620022168162005ba7565b5062002271604051620022298162003f4c565b6004815284602082015282604082015260805160608201526040516200224f8162003fbd565b608051815260808201528460a08201528460c08201528460e082015262006db8565b60405190620022808262003f4c565b6002825283602083015260408201526080516060820152604051620022a58162003fbd565b608051815260808201528260a08201528260c082015260805160e082015262006e05565b6113886201388b556201388c5560805180f35b60069181830291838304036200236757808491608052527f9e32270fdbb1cb37df0574dfc18a9a2c56583299a239108c9d137f746b82200a908101905b818110620023285750620020ae565b8290608051808255868201556200234260028201620065b3565b6080516003820155620023586004820162006448565b60805160058201550162002319565b80634e487b7160e01b602492526011600452fd5b634e487b7160e01b905260416004526024608051fd5b60069080820290828204036200241d57836080528284527fe5dac618068543225ae1c2f585dbaa37d058ab507104bc7da3da5ab2e5666cc7908101905b818110620023de5750506200207b565b829060805180825587820155620023f860028201620065b3565b60805160038201556200240e6004820162006448565b608051600582015501620023ce565b602484634e487b7160e01b81526011600452fd5b34620001e65760805180600319360112620001e3576020604051338152f35b34620001e65760805180600319360112620001e35760206202712d54604051908152f35b34620001e6576040366003190112620001e6576004356001600160401b038111620001e657620024a990369060040162004152565b6024356001600160401b038111620001e657620024cb90369060040162004430565b620271298054600260ff8216620024e28162004091565b14620034715760ff191660021790556202712e54600181019081106200311a57806202712e5560805190815b84518110156200257157826002620025326200252b848962005bed565b5162014e46565b500154106200254d575b620025479062005b81565b6200250e565b9150620025476002620025656200252b858862005bed565b5001549290506200253c565b50919060805191825b8551811015620025d757620025946200252b828862005bed565b508460038092015410620025b5575b50620025af9062005b81565b6200257a565b819450620025cc6200252b620025af938962005bed565b5001549390620025a3565b508493608051526202712b6020526080519060408220916001600160a01b038251166001600160a01b03198454161783556020820151805191600160401b83116200237b5750600184015482600186015580831062003296575b50608080516001860190525160208082209392015b82821062002bb657505050509060026040620026669301519101620067d9565b62002672835162005d44565b6202712e54608051526202712b6020526080519060056040832001908051926001600160401b0384116200237b5750602090620026b084846200611d565b01906080515260805160208120905b83811062002ba15750505050620026d7835162005d44565b6202712e54608051526202712b6020526080519060046040832001908051926001600160401b0384116200237b57506020906200271584846200611d565b01906080515260805160208120905b83811062002b8c57505050506200273c835162005d44565b906202712e54608051526202712b60205260805160066040822001928051916001600160401b0383116200237b57506020906200277a83866200611d565b0192608051526080519260208420845b83811062002b775750505050620027a2904262007088565b90916202712e5490526202712b602052600760406080512001551562002b33576202712e54608051526202712b6020526008620027ea60406080512092600784015462007088565b91909201551562002aef576202712e54608051526202712b602052600960406080512001600260ff1982541617905562002825815162005d44565b6202712e54608051526202712b60205260805160036040822001918051916001600160401b0383116200237b57506020906200286283856200611d565b0191608051526080519160208320835b83811062002ada5785855b8151811015620028e057806200054f6200289c620028da938562005bed565b516202712e54608051526202712b602052620028c18360036040608051200162005f0b565b90919082549060031b91821b91600019901b1916179055565b6200287d565b50608051905b805182101562002ad4576202712e549182608051526202712b602052620029276200291a8260036040608051200162005f0b565b90549060031b1c62014e46565b505490620029358262005d44565b916080515b81811062002a86575050608051805b835182101562002a51576200295f828562005bed565b5161271090818110156200055f5760031b6001015462002980848762005bed565b51918210156200055f5760066200299d9260031b01549062006fe1565b901562002a0d57620029af9162007088565b919015620029c957620029c29062005b81565b9062002949565b606460405162461bcd60e51b815260206004820152601960248201527f746f74616c566f74696e67506f776572206f766572666c6f77000000000000006044820152fd5b606460405162461bcd60e51b815260206004820152602060248201527f63757272656e74436c617373566f74696e67506f776572206f766572666c6f776044820152fd5b90506200054f91925062002a7f9394608051526202712b602052620028c18360066040608051200162005f0b565b90620028e6565b62002ace9086608051526202712b60205262002abb8162002ab46200291a8760036040608051200162005f0b565b5062005f0b565b90549060031b1c6200200d828762005bed565b6200293a565b60805180f35b60019060208451940193818401550162002872565b606460405162461bcd60e51b815260206004820152601b60248201527f657865637574696e6720656e642074696d65206f766572666c6f7700000000006044820152fd5b606460405162461bcd60e51b815260206004820152601860248201527f766f74696e6720656e642074696d65206f766572666c6f7700000000000000006044820152fd5b6001906020845194019381840155016200278a565b60019060208451940193818401550162002724565b600190602084519401938184015501620026bf565b80516001600160a01b03815116855490602083015160268110156200182d5774ff00000000000000000000000000000000000000007fffffffffffffffffffffff0000000000000000000000000000000000000000009160a01b1692161717855560406001860191015190815190602082519262002c358484620064d6565b019060805152608051906020822091905b83821062003276575050505060208101518051906001600160401b03821162001f92576020600288019162002c7c848462016a33565b019060805152608051916020832090835b8160051c81106200322d5750601f1981168103620031dc575b5050506040820151805191600160401b83116200237b5750600387015482600389015580831062003153575b506080805160038901905251602080822092015b8382106200313257505050506060810151805190600160401b821162001f9257600487015482600489015580831062003095575b506080805160048901905251602080822092015b838210620030745750505050608081015180516001600160401b03811162001f92576020600588019262002d63838562016a33565b0191608051526080519060208220915b8160051c8110620030345750601f198116810362002fd8575b5050506006850160a0820151602081519162002da9838562006564565b0191608051526080516020812090925b82841062002f7257505050506007850160c0820151602081519162002ddf838562006564565b0191608051526080516020812090925b82841062002f03575050505060e001518051906001600160401b03821162001f925762002e2f8262002e25600889015462005221565b600889016200678f565b60805190602091601f841160011462002e88575092826009936020936001966080519262002e7c575b5050600019600383901b1c191690851b1760088801555b0194019101909262002646565b015190508e8062002e58565b600888019052608051602081209291905b601f198516811062002eea575083602093600196938793600997601f1981161062002ed0575b505050811b01600888015562002e6f565b015160001960f88460031b161c191690558e808062002ebf565b9192602060018192868501518155019401920162002e99565b80518051906001600160401b03821162001f925760209062002f2683866200611d565b01836080515260805160208120905b83811062002f5457505050506001602081920192019301929062002def565b60019060206001600160a01b03855116940193818401550162002f35565b80518051906001600160401b03821162001f925760209062002f9583866200611d565b01836080515260805160208120905b83811062002fc357505050506001602081920192019301929062002db9565b60019060208451940193818401550162002fa4565b60805192835b601f1983168303811062002ffc57505060051c01558a808062002d8c565b909360206200302a60019284885191620030168362004eaa565b9060ff809160031b9316831b921b19161790565b9501910162002fde565b608051805b602081106200305057508382015560010162002d73565b949060206200306a60019288855191620030168362004eaa565b9201950162003039565b6006602082620030886001945187620068ac565b0193019101909162002d2e565b60068181020481036200311a5760068381020483036200311a5760048801608051526020608051208360060281015b8260060282018110620030d957505062002d1a565b6006906080518082556001820155620030f560028201620065b3565b60805160038201556200310b6004820162006448565b608051600582015501620030c4565b634e487b7160e01b6080515260116004526024608051fd5b6007602082620031466001945187620168c1565b0193019101909162002ce6565b60078181020481036200311a5760078381020483036200311a5760038801608051526020608051208360070281015b82600702820181106200319757505062002cd2565b80620031a560079262005fed565b6080518060018301558060028301558060038301556004820155620031cd6005820162006448565b60805160068201550162003182565b8392845b601f19831683038110620031fe57505060051c01558b808062002ca6565b90936020620032236001928488511515919060ff809160031b9316831b921b19161790565b95019101620031e0565b84855b602081106200324757508382015560010162002c8d565b949060206200326c6001928885511515919060ff809160031b9316831b921b19161790565b9201950162003230565b60016020826200328983945187620067d9565b0193019101909162002c46565b60098181020481036200311a5760098381020483036200311a5760018501608051526020608051208360090281015b8260090282018110620032da57505062002631565b6080518155620032ed6001820162006497565b6200330360028201805490608051815562016a0b565b600381015460805180600384015581620033ff575b50506004810154608051806004840155816200337b575b5050806200334a600560099301805490608051815562016a0b565b620033586006820162006525565b620033666007820162006525565b620033746008820162006448565b01620032c5565b6006828102048203620033e957506004820160805152602060805120906006028101905b818110156200332f576006906080518082556001820155620033c460028201620065b3565b6080516003820155620033da6004820162006448565b6080516005820155016200339f565b634e487b7160e01b905260116004526024608051fd5b6007828102048203620033e957506003820160805152602060805120906007028101905b818110156200331857806200343a60079262005fed565b6080518060018301558060028301558060038301556004820155620034626005820162006448565b60805160068201550162003423565b606460405162461bcd60e51b815260206004820152601d60248201527f766f74696e6720697320616c726561647920696e2070726f67726573730000006044820152fd5b34620001e6576020366003190112620001e6576004356127108110156200055f57620034eb60046200195a9260031b01620054ac565b60405191829182620040b2565b34620001e65760805180600319360112620001e3576040518062013881918254808252602080920193608051527fcd6f7cece5c70f73af31bb8ed8b80ae1c2a9e5eb261bd5ab2d9374b0c38719c891608051905b82821062003567576200195a85620034eb8189038262003fd9565b83546001600160a01b0316865294850194600193840193909101906200354c565b34620001e657602080600319360112620001e6576001600160a01b03620035ae62003ecd565b604051620035bc8162003efe565b608051815260805184820152606060408201526060608051910152166080515262013880815260406080512060405190620035f78262003efe565b6200367281549160ff83161515845260ff8585019360081c161515835260026040519162003636836200362e81600185016200525e565b038462003fd9565b6040860192835201549260608501938452604051958695818752511515908601525115156040850152516080606085015260a08401906200412b565b905160808301520390f35b34620001e65760805180600319360112620001e35760206202712e54604051908152f35b34620001e6576020366003190112620001e6576020620036c360043562006ee3565b604051908152f35b34620001e65760805180600319360112620001e3576020620036c36200709a565b34620001e6576020366003190112620001e65760206200370e60043562016c12565b6200371d6040518092620040f8565bf35b34620001e657602080600319360112620001e6576004356200374d478211156200192962001dc08462006190565b33608051526201388790818352620037976040608051205482111562001929620037778462006190565b3360805152858752620037906040608051205462006190565b906200631d565b3360805152818352620037df620037b5826040608051205462006155565b919062001929620037c68562006190565b3360805152868852620037906040608051205462006190565b33608051528284526080518080938193604083205581811562003971575b3390f1156200036257336080515281526040608051205415620038205760805180f35b62013888805490620038328262005d44565b9260805192835b818110620039055750506200384e8362005d44565b918251926001600160401b03841162001f925791839262003870829562005f3d565b01906080515260805192835b838110620038c957505050505b8181106200389957505062002ad4565b806200054f6001600160a01b03620038b6620038c3948762005bed565b511662001f308362005d7c565b62003889565b82516001600160a01b03167ff9ab3ee50aab7a7cf5b7d30204dd21b5da7cc33690a7aec17b3653a822a635df820155918101916001016200387c565b620039108162005d7c565b6001600160a01b03915490826003923392841b1c16036200393f575b5050620039399062005b81565b62003839565b956200396891839762003956620039399562005d7c565b9054911b1c166200200d828a62005bed565b9490876200392c565b506108fc620037fd565b34620001e65760805180600319360112620001e3576040518062013886918254808252602080920193608051527f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa491608051905b828210620039ea576200195a85620034eb8189038262003fd9565b83546001600160a01b031686529485019460019384019390910190620039cf565b34620001e6576040366003190112620001e657600435602435906001600160a01b038216809203620001e6576127108110156200055f5760039160805152811b01602052602060406080512054604051908152f35b34620001e65760805180600319360112620001e3576040518062013888918254808252602080920193608051527ff9ab3ee50aab7a7cf5b7d30204dd21b5da7cc33690a7aec17b3653a822a635df91608051905b82821062003acf576200195a85620034eb8189038262003fd9565b83546001600160a01b03168652948501946001938401939091019062003ab4565b34620001e65760805180600319360112620001e357602060ff6202712954166040519062003b1e8162004091565b8152f35b34620001e6576040366003190112620001e65762003b3f62003ecd565b60249081356001600160401b038111620001e65762003b6390369060040162004021565b91600260ff62027129541662003b798162004091565b0362003e67576202712d5442101562003e23576001600160a01b0382169182608051526202712c906020938285526080519560408720966202712e978854809252875260ff604060805120541662003de05781519481608051526202712b938489526003968760406080512001540362003d7757608051528752608051906040822091528652608051966040882060019889918260ff19825416179055905b62003c235760805180f35b825181101562003d715762003c39818462005bed565b511562003cf7578154806080515284895262003c9c62003c7f62003c668460046040608051200162005f0b565b9054908a1b1c62003c78858a62016a9d565b9062007088565b909260805152868b52620028c18460046040608051200162005f0b565b1562003cb45762003cad9062005b81565b8862003c18565b606488601c896040519262461bcd60e51b845260048401528201527f766f74696e6720666f7220706f776572596573206f766572666c6f77000000006044820152fd5b8154806080515284895262003d1d62003c7f62003c668460046040608051200162005f0b565b1562003d2e5762003cad9062005b81565b606488601b896040519262461bcd60e51b845260048401528201527f766f74696e6720666f7220706f7765724e6f206f766572666c6f7700000000006044820152fd5b62002ad4565b60848960398a6040519262461bcd60e51b845260048401528201527f746865206e756d626572206f6620766f74657320646f6573206e6f74206d617460448201527f636820746865206e756d626572206f6620706f6c6963696573000000000000006064820152fd5b6064876017886040519262461bcd60e51b845260048401528201527f766f7465722068617320616c726561647920766f7465640000000000000000006044820152fd5b60649060176040519162461bcd60e51b8352602060048401528201527f766f74696e6720706572696f642068617320656e6465640000000000000000006044820152fd5b60649060196040519162461bcd60e51b8352602060048401528201527f766f74696e67206973206e6f7420696e2070726f6772657373000000000000006044820152fd5b3462003ec9578160031936011262003ec95760209062027127548152f35b5080fd5b600435906001600160a01b038216820362003ee457565b600080fd5b35906001600160a01b038216820362003ee457565b608081019081106001600160401b0382111762003f1a57604052565b634e487b7160e01b600052604160045260246000fd5b60c081019081106001600160401b0382111762003f1a57604052565b61010081019081106001600160401b0382111762003f1a57604052565b606081019081106001600160401b0382111762003f1a57604052565b60e081019081106001600160401b0382111762003f1a57604052565b604081019081106001600160401b0382111762003f1a57604052565b602081019081106001600160401b0382111762003f1a57604052565b90601f801991011681019081106001600160401b0382111762003f1a57604052565b6001600160401b03811162003f1a5760051b60200190565b3590811515820362003ee457565b81601f8201121562003ee4578035916200403b8362003ffb565b926200404b604051948562003fd9565b808452602092838086019260051b82010192831162003ee4578301905b82821062004077575050505090565b838091620040858462004013565b81520191019062004068565b600411156200409c57565b634e487b7160e01b600052602160045260246000fd5b6020908160408183019282815285518094520193019160005b828110620040da575050505090565b83516001600160a01b031685529381019392810192600101620040cb565b9060038210156200409c5752565b60005b8381106200411a5750506000910152565b818101518382015260200162004109565b90602091620041468151809281855285808601910162004106565b601f01601f1916010190565b81601f8201121562003ee4578035916200416c8362003ffb565b926200417c604051948562003fd9565b808452602092838086019260051b82010192831162003ee4578301905b828210620041a8575050505090565b8135815290830190830162004199565b6001600160401b03811162003f1a57601f01601f191660200190565b81601f8201121562003ee457803590620041ee82620041b8565b92620041fe604051948562003fd9565b8284526020838301011162003ee457816000926020809301838601378301015290565b9080601f8301121562003ee4578135906200423c8262003ffb565b926200424c604051948562003fd9565b828452602092838086019160051b8301019280841162003ee457848301915b8483106200427c5750505050505090565b82356001600160401b03811162003ee4578691620042a084848094890101620041d4565b8152019201916200426b565b9080601f8301121562003ee457813590620042c78262003ffb565b92620042d7604051948562003fd9565b828452602092838086019160051b8301019280841162003ee457848301915b848310620043075750505050505090565b82356001600160401b03811162003ee45786916200432b8484809489010162004152565b815201920191620042f6565b9080601f8301121562003ee457813591620043528362003ffb565b92604092620043648451958662003fd9565b8185526020938486019185600594851b8601019481861162003ee457868101935b8685106200439857505050505050505090565b84356001600160401b03811162003ee457820183603f8201121562003ee4578881013590620043c78262003ffb565b91620043d68751938462003fd9565b808352868b8401918a1b8301019186831162003ee45791878c94929593015b8181106200440e57505082935081520194019362004385565b9193809193956200441f8462003ee9565b8152019101918b93919492620043f5565b6060918161070052806107c052031262003ee457604051620044528162003f69565b8091620044626107005162003ee9565b8252610700516020810135806107e0526001600160401b03811162003ee4576107c051910190601f8201121562003ee457620044a8620044b69135806106e05262003ffb565b604051806106c05262003fd9565b6106c0516106e051905260206106c05101926107c0516106e0519060206107e05161070051019260051b8301011162003ee4576020016106a05290925b6106e05160051b6107e05161070051019060206106a0519183010181101562004e6c57356001600160401b03811162003ee457606091018061074052601f19906107c05103011262003ee4576040516200454d8162003f69565b6200455e6020610740510162003ee9565b81526040610740510135602681101562003ee45760208201526107405160608101356107208190526001600160401b031062003ee45761010090601f19906060810135016107c05103011262003ee457620045c0604051806107a05262003f4c565b6107205161074051016020810135906001600160401b03821162003ee4576020620045f2926107c05192010162004221565b6107a051526107205161074051016040810135906001600160401b03821162003ee457602062004629926107c05192010162004021565b60206107a0510152610720516107405101926001600160401b0360608501351162003ee4576107c051603f6060860135860101121562003ee45762004678602060608601358601013562003ffb565b9462004688604051968762003fd9565b60608501358086016020908101358089526107c0516107205161074051938b01969493019092019160059190911b82016040011162003ee457604001925b61072051610740510160608801359081019088016020013560051b8101604001851015620047d2578435906001600160401b03821162003ee4570160e09182603f19836107c05103011262003ee457604051620047238162003f85565b60408301356001600160401b03811162003ee4576107c0516200474b91850160400162004152565b815260608301356020820152608080840135604083015260a09485850135606084015260c0916200477e83870162004013565b90840152840135946001600160401b03861162003ee45761010060209695620047c292620047b7899860406107c05191850101620041d4565b908601520162004013565b90820152815201930192620046c6565b505095915091935094919460406107a0510152610720516107405101946080860135610780526001600160401b0360808701351162003ee4576107c0519560808101350195603f8701121562003ee45762004831602087013562003ffb565b9462004841604051968762003fd9565b6020878101358088526107c051610780516107205161074051948b01989401019160051b82016040011162003ee4576040909893929897949701935b61078051610720516107405101016040602086013560051b82010186101562004caf578535610760526001600160401b0386351162003ee45761010090603f19908735016107c05103011262003ee45760405193620048dc8562003f4c565b6040610760516107805161072051610740510101010135600681101562003ee45785526060610760516107805161072051610740510101010135602086015261076051610780516107205161074051010101996001600160401b0360808c01351162003ee4576107c051605f60808d01358d0101121562003ee4578a906200496e604060808401358401013562003ffb565b9a6200497e6040519c8d62003fd9565b608083013592830160400135808d526107c051610760516107805161072051610740510101019094019360208e01939160051b85016060011162003ee4579192606001915b6107605161078051610720516107405101010160808f0135908101908f016040013560051b810160600184101562004bb5578335906001600160401b03821162003ee45760c0605f198383016107c05103011262003ee4576040519162004a2a8362003f30565b8181016060810135845260800135600581101562003ee457602084015260a08183010135600481101562003ee4576040840152603d60c08284010135101562003ee45760c0818301013560608401526001600160401b0360e082840101351162003ee4576107c05162004aa99083830160e08101350160600162004152565b60808401526101008183010135916001600160401b03831162003ee45701016080605f19826107c05103011262003ee4578f956040519262004aeb8462003efe565b60608301356001600160401b03811162003ee4576107c05162004b1391850160600162004221565b845260808301356001600160401b03811162003ee4576107c05162004b3d918501606001620042ac565b602085015260a08301356001600160401b03811162003ee4576107c05162004b6a91850160600162004337565b604085015260c0830135936001600160401b03851162003ee45762004b9d60209594606087966107c051920101620041d4565b606082015260a08201528152019301929350620049c3565b509697939c509798939a915050604082015260a091826107605161078051610720516107405101010101356060830152610760516107805161072051610740510101019160c09384840135946001600160401b03861162003ee45762004c2960209695604088976107c051920101620041d4565b608084015260e09162004c5083610760516107805161072051610740510101010162004013565b9084015262004c75610100610760516107805161072051610740510101010162004013565b9083015262004c9a610120610760516107805161072051610740510101010162004013565b9082015281520195019396979291976200487d565b509250969250925060606107a0510152610720516107405101936001600160401b0360a08601351162003ee4576107c0519460a0810135810195603f8701121562003ee45762004d03602087013562003ffb565b9262004d13604051948562003fd9565b6020878101358086526107c051610720516107405193880196930160a0860135019160051b82016040011162003ee457604001935b604060208a013560051b60a086013561072051610740510101010185101562004d86578435600581101562003ee45781526020948501940162004d48565b5096509694939291505060806107a05101526107205161074051019160c09283810135906001600160401b03821162003ee457602062004dcd926107c051920101620042ac565b60a06107a05101526107205161074051019260e09384810135906001600160401b03821162003ee457602062004e0a926107c05192010162004337565b906107a0510152610720516107405101926101008401356001600160401b03811162003ee4576107c05160209562004e4592018601620041d4565b906107a05101526107a05160408201528152019260206106a051016106a0529092620044f3565b50505091906106c05160208201526107005160408101356001600160401b03811162003ee4576107c05160409262004ea59201620041d4565b910152565b600511156200409c57565b90815180825260208080930193019160005b82811062004ed6575050505090565b83518552938101939281019260010162004ec7565b908082519081815260208091019281808460051b8301019501936000915b84831062004f1a5750505050505090565b909192939495848062004f3a600193601f198682030187528a516200412b565b980193019301919493929062004f09565b908082519081815260208091019281808460051b8301019501936000915b84831062004f7a5750505050505090565b909192939495848062004f9a600193601f198682030187528a5162004eb5565b980193019301919493929062004f69565b908082519081815260208091019281808460051b830101950193600080925b85841062004fdc575050505050505090565b9091929380959697601f1983820301855288519082808351928381520192019085905b8082106200502157505050908060019299019401940192959493919062004fca565b919380600192946001600160a01b03875116815201940192018893929162004fff565b90808251808352602080930192600592818084861b8301019601946000915b84831062005075575050505050505090565b90919293949596601f19828203018352875190610100808201835160068110156200409c579083929189945283850151848401528a60409182870151938386015283518091528561012082818801941b8701019401926000905b8282106200513a575050505050928291620051046001956060808501519084015260808085015190848303908501526200412b565b9160a08082015115159083015260c08082015115159083015260e080910151151591015299019301930191959493929062005063565b9193959650919361011f19878203018552855190815181528c820151620051618162004eaa565b8d82015282820151620051748162004091565b8382015260609081830151603d8110156200409c576001938f93836200520f93828796015281620051ff620051ee620051dd6080620051c08189015160c080848a015288019062004eb5565b9560a0809901519881880391015287519080875286019062004eeb565b888701518582038a87015262004f4b565b8a8601518482038c86015262004fab565b930151918184039101526200412b565b9701950192018b9695949391620050cf565b90600182811c9216801562005253575b60208310146200523d57565b634e487b7160e01b600052602260045260246000fd5b91607f169162005231565b9060009291805491620052718362005221565b918282526001938481169081600014620052d8575060011462005295575b50505050565b90919394506000526020928360002092846000945b838610620052c35750505050010190388080806200528f565b805485870183015294019385908201620052aa565b9294505050602093945060ff191683830152151560051b010190388080806200528f565b9081546200530a8162003ffb565b926040936200531c8551918262003fd9565b828152809460208092019260005281600020906000935b8585106200534357505050505050565b600184819284516200535b816200061d818a6200525e565b81520193019401939162005333565b9060405191828154918282526020928383019160005283600020936000905b828210620053a457505050620053a29250038362003fd9565b565b85548452600195860195889550938101939091019062005389565b90604051620053ce8162003f85565b60c060ff60068395620053e1816200536a565b8552600181015460208601526002810154604086015260038101546060860152826004820154161515608086015260405162005426816200061d81600586016200525e565b60a08601520154161515910152565b60068210156200409c5752565b603d8210156200409c5752565b9081546200545d8162003ffb565b926200546d604051948562003fd9565b818452600090815260208082208186015b8484106200548d575050505050565b60018381926200549d856200536a565b8152019201930192906200547e565b9060405191828154918282526020928383019160005283600020936000905b828210620054e457505050620053a29250038362003fd9565b85546001600160a01b031684526001958601958895509381019390910190620054cb565b908154620055168162003ffb565b9262005526604051948562003fd9565b818452600090815260208082208186015b84841062005546575050505050565b60018381926200555685620054ac565b81520192019301929062005537565b9060036060604051620055788162003efe565b620055c381956200558981620052fc565b835262005599600182016200544f565b6020840152620055ac6002820162005508565b60408401526200362e60405180968193016200525e565b0152565b919060608101906001600160a01b03845116815260208401519160606020830152825180915260808201602060808360051b85010194019160005b8181106200562a5750505050604062005627939401519060408184039101526200412b565b90565b90919294607f1985820301845285516001600160a01b03815116825260208101519060268210156200409c57604091602084015201519060606040820152620056828251610100606084015261016083019062004eeb565b602083810151838303605f190160808501528051808452928201929101906000905b80821062005a1757505050604083015190605f198382030160a0840152815180825260208201906020808260051b85010194019260005b82811062005992575050505050606083015190605f198382030160c0840152815190818152602081016020808460051b8401019401926000925b818410620057de575050505050608083015190605f198382030160e0840152602080835192838152019201906000905b808210620057ba57505050620057ad8360209360e0620057966200577e879660a060019a0151605f198683030161010087015262004f4b565b60c0850151848203605f190161012086015262004fab565b92015190610140605f19828503019101526200412b565b9701940192910162005602565b9091926020806001928651620057d08162004eaa565b815201940192019062005745565b9091929394601f9e9d9c9e19828203018452855190815160068110156200409c5781526020820151602082015260408201516101006040830152610100820181518091526101206020818501918360051b8601019301916000905b808210620058a657505050509e9f9d9e82602092620058728493606060019701516060840152608084015183820360808501526200412b565b9160a0810151151560a083015260c0810151151560c083015260e08091015115159101529701940194019293919062005715565b9091929361011f19868203018452845190815181526020820151620058cb8162004eaa565b60208201526040820151620058e08162004091565b6040820152606082015191603d8310156200409c5762005985826020939260019560608695015260a062005924608083015160c0608086015260c085019062004eb5565b9101519160a0818303910152606062005973620059606200594f855160808652608086019062004eeb565b878601518582038987015262004f4b565b6040850151848203604086015262004fab565b9201519060608184039101526200412b565b9601940192019062005839565b9091929394602080600192601f19868203018852885190620059fc620059c1835160e080855284019062004eb5565b8484015185840152604084015160408401526060840151606084015260808401511515608084015260a084015183820360a08501526200412b565b60c092830151151591909201529701950193929101620056db565b909192602080600192865115158152019401920190620056a4565b90620053a2604560405180947f496e76616c69642070726f6772616d20616464726573732e204d73672e73656e60208301527f6465723a20000000000000000000000000000000000000000000000000000000604083015262005a9f815180926020868601910162004106565b810103602581018552018362003fd9565b90620053a26040805180947f2c20616e642070726f6772616d206f70657261746f7220616464726573733a20602083015262005af6815180926020868601910162004106565b810103602081018552018362003fd9565b6020620053a291939293604051948162005b2b879351809286808701910162004106565b820162005b418251809386808501910162004106565b0103808552018362003fd9565b1562005b575750565b62005b7d9060405191829162461bcd60e51b83526020600484015260248301906200412b565b0390fd5b600019811462005b915760010190565b634e487b7160e01b600052601160045260246000fd5b80511562005bb55760200190565b634e487b7160e01b600052603260045260246000fd5b80516001101562005bb55760400190565b80516002101562005bb55760600190565b805182101562005bb55760209160051b010190565b600f620053a2916020949360405195869262005c6062005c528386016021907f496e76616c696420776974686472617720616d6f756e742e20416d6f756e743a8152600160fd1b60208201520190565b918281519485920162004106565b017f2c20616e642062616c616e63653a200000000000000000000000000000000000815262005c99825180936020878501910162004106565b010360101981018552018362003fd9565b6019620053a2916020949360405195869262005cfa62005c528386016021907f496e76616c696420776974686472617720616d6f756e742e20416d6f756e743a8152600160fd1b60208201520190565b017f2c20616e6420776974686472617761626c6520636173683a2000000000000000815262005d33825180936020878501910162004106565b010360061981018552018362003fd9565b9062005d508262003ffb565b62005d5f604051918262003fd9565b828152809262005d72601f199162003ffb565b0190602036910137565b62013888805482101562005bb5576000527ff9ab3ee50aab7a7cf5b7d30204dd21b5da7cc33690a7aec17b3653a822a635df0190600090565b62013886805482101562005bb5576000527f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa40190600090565b62013881805482101562005bb5576000527fcd6f7cece5c70f73af31bb8ed8b80ae1c2a9e5eb261bd5ab2d9374b0c38719c80190600090565b6202711d805482101562005bb5576000527f7f4320370b90cfd882bd4442421f8b4dbea0ca3aefc8d29d4787126914d53c5a0190600090565b6201388a805482101562005bb5576000527f3fb2ace5abc3439263a869a5230f0e568826a389e5a73118798eab8fd0f728590190600090565b62027119805482101562005bb5576000527fe43a1016fd4ea9a9b882244b4d001d1f2d6b7fe146dc2643bb2c59db4a7bb0e10190600090565b6202711b805482101562005bb5576000527fc59860dc09a642b584039e685e1d1ef32a7f12bf29c382ee17f417fe2f31f3990190600090565b805482101562005bb55760005260206000200190600090565b81811062005f30575050565b6000815560010162005f24565b600160401b811162003f1a57620138889081549080835581811062005f6157505050565b620053a2926000527ff9ab3ee50aab7a7cf5b7d30204dd21b5da7cc33690a7aec17b3653a822a635df918201910162005f24565b600160401b811162003f1a57620138869081549080835581811062005fb957505050565b620053a2926000527f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa4918201910162005f24565b8054600082558062005ffd575050565b620053a29160005260206000209081019062005f24565b600160401b811162003f1a5762027119908154908083558181106200603857505050565b620053a2926000527fe43a1016fd4ea9a9b882244b4d001d1f2d6b7fe146dc2643bb2c59db4a7bb0e1918201910162005f24565b600160401b811162003f1a576202711b908154908083558181106200609057505050565b620053a2926000527fc59860dc09a642b584039e685e1d1ef32a7f12bf29c382ee17f417fe2f31f399918201910162005f24565b6201389180549060009081815582620060dc57505050565b81527f8f332db73d3937798ea82422156d059730b0b3058606439b57b7ae623e945366918201915b8281106200611157505050565b81815560010162006104565b90600160401b811162003f1a578154908083558181106200613d57505050565b620053a2926000526020600020918201910162005f24565b919082811162006166576001920390565b50600091508190565b81156200617a570490565b634e487b7160e01b600052601260045260246000fd5b806000917a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000808210156200630e575b506d04ee2d6d415b85acef810000000080831015620062fe575b50662386f26fc1000080831015620062ee575b506305f5e10080831015620062de575b5061271080831015620062ce575b506064821015620062bd575b600a80921015620062b2575b600190816021818601956200623287620041b8565b9662006242604051988962003fd9565b80885262006253601f1991620041b8565b01366020890137860101905b6200626c575b5050505090565b600019019083907f30313233343536373839616263646566000000000000000000000000000000008282061a835304918215620062ac579190826200625f565b62006265565b91600101916200621d565b919060646002910491019162006211565b6004919392049101913862006205565b60089193920491019138620061f7565b60109193920491019138620061e7565b60209193920491019138620061d4565b604093508104915038620061ba565b601e620053a291602094936040519586926200636d62005c528386016021907f496e76616c696420776974686472617720616d6f756e742e20416d6f756e743a8152600160fd1b60208201520190565b017f2c20616e6420776974686472617761626c65206469766964656e64733a2000008152620063a6825180936020878501910162004106565b010360011981018552018362003fd9565b90620063c38262003ffb565b604090620063d48251918262003fd9565b8381528093620063e7601f199162003ffb565b019160005b838110620063fa5750505050565b60209082516200640a8162003f4c565b6000815282600081830152606080868401526000818401526080830152600060a0830152600060c0830152600060e0830152828601015201620063ec565b62006454815462005221565b90816200645f575050565b81601f6000931160011462006472575055565b90808391825262006493601f60208420940160051c84016001850162005f24565b5555565b8054906000815581620064a8575050565b6000526020600020908101905b818110620064c1575050565b80620064cf60019262006448565b01620064b5565b90600160401b811162003f1a57815491818155828210620064f657505050565b600052602060002091820191015b81811062006510575050565b806200651e60019262006448565b0162006504565b805490600081558162006536575050565b6000526020600020908101905b8181106200654f575050565b806200655d60019262005fed565b0162006543565b90600160401b811162003f1a578154918181558282106200658457505050565b600052602060002091820191015b8181106200659e575050565b80620065ac60019262005fed565b0162006592565b8054600080835581620065c557505050565b60079282840292848404036200664657815260208120918201915b828110620065ee5750505050565b8082859255826001820155620066076002820162005fed565b620066156003820162006497565b620066236004820162006525565b620066316005820162006525565b6200663f6006820162006448565b01620065e0565b602482634e487b7160e01b81526011600452fd5b600160401b821162003f1a578054908281558183106200667957505050565b600792828402928484040362005b9157808402908482040362005b915760009182526020822092830192015b828110620066b35750505050565b8082859255826001820155620066cc6002820162005fed565b620066da6003820162006497565b620066e86004820162006525565b620066f66005820162006525565b620067046006820162006448565b01620066a5565b5160068110156200409c5790565b9060068110156200409c5760ff80198354169116179055565b906200673e8162004eaa565b60ff80198354169116179055565b90620067588162004091565b61ff0082549160081b169061ff001916179055565b90603d8110156200409c5762ff000082549160101b169062ff00001916179055565b9190601f81116200679f57505050565b620053a2926000526020600020906020601f840160051c83019310620067ce575b601f0160051c019062005f24565b9091508190620067c0565b91909182516001600160401b03811162003f1a576200680581620067fe845462005221565b846200678f565b602080601f83116001146200684457508192939460009262006838575b50508160011b916000199060031b1c1916179055565b01519050388062006822565b90601f198316958460005282600020926000905b888210620068935750508360019596971062006879575b505050811b019055565b015160001960f88460031b161c191690553880806200686f565b8060018596829496860151815501950193019062006858565b815160068110156200409c57620068c4908262006719565b602082015160018201556002810160408301516020815191620068e883856200665a565b01916000526020600020916000905b8282106200697c57505050509060e06005620053a293606084015160038201556200692a608085015160048301620067d9565b01916200694960a08201511515849060ff801983541691151516179055565b60c0810151835461ff00191690151560081b61ff00161783550151815462ff0000191690151560101b62ff000016179055565b80518051855560018501620069a160208301516200699a8162004eaa565b8262006732565b620069bc6040830151620069b58162004091565b826200674c565b6060820151603d8110156200409c57620069d6916200676d565b60808101518051906001600160401b03821162003f1a576020600288019162006a0084846200611d565b0190600052602060002060005b83811062006cab575050505060a0015180518051906020600388019162006a358484620064d6565b01906000526020600020906000905b83821062006c8b5750505050600485016020820151602081519162006a6a838562006564565b019160005260206000206000925b82841062006c275750505050600585016040820151602081519162006a9e838562006564565b019160005260206000206000925b82841062006bba5750505050606001518051906001600160401b03821162003f1a5762006aec8262006ae2600689015462005221565b600689016200678f565b602090601f831160011462006b3f57928260079360209360019660009262006b33575b5050600019600383901b1c191690851b1760068801555b01940191019092620068f7565b01519050388062006b0f565b906006870160005260206000209160005b601f198516811062006ba1575083602093600196938793600797601f1981161062006b87575b505050811b01600688015562006b26565b015160001960f88460031b161c1916905538808062006b76565b9192602060018192868501518155019401920162006b50565b80518051906001600160401b03821162003f1a5760209062006bdd83866200611d565b0183600052602060002060005b83811062006c0957505050506001602081920192019301929062006aac565b60019060206001600160a01b03855116940193818401550162006bea565b80518051906001600160401b03821162003f1a5760209062006c4a83866200611d565b0183600052602060002060005b83811062006c7657505050506001602081920192019301929062006a78565b60019060208451940193818401550162006c57565b600160208262006c9e83945187620067d9565b0193019101909162006a44565b60019060208451940193818401550162006a0d565b6201388390815481101562005bb557600691600052027f9e32270fdbb1cb37df0574dfc18a9a2c56583299a239108c9d137f746b82200a0190600090565b6202711690815481101562005bb557600691600052027f2a7aa4e7f2fefac7a07702701afb9c202f6f79fb2762c8e42b37a264307667fa0190600090565b6201388290815481101562005bb557600691600052027fe5dac618068543225ae1c2f585dbaa37d058ab507104bc7da3da5ab2e5666cc70190600090565b6202711590815481101562005bb557600691600052027f0f9b10e190177c3c56fc6ce7689c8130c567df57aa02c08e7a090a59992adf920190600090565b620138828054600160401b81101562003f1a5762006ddc9160018201905562006d3c565b91909162006def57620053a291620068ac565b634e487b7160e01b600052600060045260246000fd5b620138838054600160401b81101562003f1a5762006ddc9160018201905562006cc0565b620271168054600160401b81101562003f1a5762006ddc9160018201905562006cfe565b620271158054600160401b81101562003f1a5762006ddc9160018201905562006d7a565b1562006e7957565b608460405162461bcd60e51b815260206004820152603760248201527f73756d4469766964656e64576569676874466f72546f6b656e436c6173733a2060448201527f6469766964656e64576569676874206f766572666c6f770000000000000000006064820152fd5b61271081101562005bb557600390811b60028101549060009260049384830191825492829682849601935b85871062006f355750505050505050620056279162006f2d9162006fe1565b919062006e71565b98979091929394959862006f965762006f8a8962006f826001600160a01b0362006f656200054f9c9d8862005f0b565b905490891b1c169360009485528860205260408520549062007088565b9a9062007003565b95949392919062006f0e565b603282634e487b7160e01b6000525260246000fd5b90811562006fd857606462006fc481840293846200616f565b0362006fd05760019190565b600091508190565b60019150600090565b9190821562006ff95762006fc481840293846200616f565b5060019150600090565b156200700b57565b608460405162461bcd60e51b815260206004820152602e60248201527f746f74616c546f6b656e73506572546f6b656e436c6173733a20746f74616c5460448201527f6f6b656e73206f766572666c6f770000000000000000000000000000000000006064820152fd5b906001820191821062006fd05760019190565b9190820191821062006fd05760019190565b6201388b54620070e4620070ad6201733b565b91620070bf6127109384831062005b4e565b620070d96201388e546201388c54111562001929620173c2565b6201388d5462006fe1565b919050620070f162017423565b5060009081925b81841062007113575b6200710e93500462007159565b905090565b9160ff60078560031b015416156200715257836200713f6200714b9262003c786200054f969762006ee3565b94906200192962017423565b92620070f8565b9162007101565b90801562007171576200716c916200616f565b600191565b5050600090600090565b620138918054600160401b81101562003f1a576001810180835581101562005bb5576001600160a01b03916000527f8f332db73d3937798ea82422156d059730b0b3058606439b57b7ae623e9453660191166001600160a01b0319825416179055565b6201388f8054600160401b81101562003f1a576001810180835581101562005bb5576001600160a01b03916000527f846ab89c81ea9339188216a1864da1a19ebe28d411cbec99efa70ca6d389710d0191166001600160a01b0319825416179055565b6201388190815491600160401b83101562003f1a578262001f30916001620053a29501905562005dee565b604051906200727b8262003fa1565b601882527f5468652070726f6772616d2069732065786563757465642e00000000000000006020830152565b600091825b602080840190815180518710156200743f5781620072cf88620072d79362005bed565b510162007a5a565b602692838210156200409c57601a918203620073975787620072fa915162005bed565b519282840151908110156200409c570362007353575093620073446200734c926200733c6200733560a060406200054f9a0151015162005ba7565b5162005ba7565b519062007088565b959062007a68565b92620072ac565b6064906040519062461bcd60e51b82526004820152601b60248201527f546865206f70636f6465206973206e6f74205041595f434153482e00000000006044820152fd5b92919050620073b081620072cf89869a979a5162005bed565b828110156200409c57601403620073e957505090620073446200054f9562003c78620073e2846200734c965162005bed565b5162007ab4565b620073fb90620072cf85855162005bed565b908110156200409c5760151462007419575b506200734c9062005b81565b9062007344620074389562003c78620073e2846200734c965162005bed565b906200740d565b505050909250803410600014620074ba57608460405162461bcd60e51b815260206004820152603760248201527f546865207061796d656e74206973206e6f7420656e6f7567682e20546865207460448201527f6f74616c207061796d656e742073686f756c64206265200000000000000000006064820152fd5b803411620078cb575b5062027129805460ff8116620074d98162004091565b600181036200750f5750505080620074ff620074f9620075059362007b4b565b62007b60565b62007bac565b620056276200726c565b6200751a8162004091565b600281148080620078bd575b156200762057505050506200753b8162007b4b565b15620075dc576200754c8162007b4b565b1562007598576200755d9062007bac565b6040516200756b8162003fa1565b601581527f54686520766f74652069732065786563757465642e0000000000000000000000602082015290565b606460405162461bcd60e51b815260206004820152601460248201527f496e76616c696420766f74652070726f6772616d0000000000000000000000006044820152fd5b606460405162461bcd60e51b815260206004820152601760248201527f496e76616c696420766f74696e672070726f6772616d2e0000000000000000006044820152fd5b6200762b8262004091565b60038214918280620078af575b15620077335750505050506200764e8162007b4b565b15620076c95780620074ff620074f9620076689362007b4b565b604051620076768162003f69565b603a81527f5468652070656e64696e672070726f6772616d2069732065786563757465642060208201527f616674657220766f74696e6720616e6420617070726f76616c2e000000000000604082015290565b608460405162461bcd60e51b815260206004820152602260248201527f496e76616c696420657865637574696e672070656e64696e672070726f67726160448201527f6d2e0000000000000000000000000000000000000000000000000000000000006064820152fd5b6200773e8162004091565b8180620078a0575b8062007892575b15620077775750505050906200750591600360ff19825416179055620074ff620074f98262007b4b565b620077828162004091565b82156200787d575b5050806200786e575b620077d657505050604051620077a98162003fa1565b601381527f50726f6772616d207465726d696e617465642e00000000000000000000000000602082015290565b60ff19166001179055620077ea8162007b4b565b15620078045780620074ff620074f9620075059362007b4b565b608460405162461bcd60e51b815260206004820152603e60248201527f5b4572726f72203030335d5468652070726f6772616d206973206e6f7420612060448201527f76616c696420657865637574652070656e64696e672070726f6772616d2e00006064820152fd5b50620271285442101562007793565b6200788a91925062004091565b38806200778a565b50620271285442106200774d565b50620271275442101562007746565b506202712854421062007638565b506202712754421062007526565b6001600160a01b03908183511660005262013885908160205260406000205415620079c6575b620078fd903462006155565b901562007982576200792090838551166000528260205260406000205462007088565b9290156200793e5783511660005260205260406000205538620074c3565b606460405162461bcd60e51b815260206004820152601960248201527f546865206e65772062616c616e6365206f766572666c6f772e000000000000006044820152fd5b606460405162461bcd60e51b815260206004820152601c60248201527f546865207061796d656e742072657475726e206f766572666c6f772e000000006044820152fd5b6000908162013886928354915b82811062007a1f575b5015620079ed575b509050620078f1565b84865116600160401b82101562003f1a5762001f3082620078fd95600162007a189501905562005db5565b38620079e4565b8662007a2b8262005db5565b919054818b51169260031b1c161462007a4f5762007a499062005b81565b620079d3565b5050600138620079dc565b5160268110156200409c5790565b1562007a7057565b606460405162461bcd60e51b815260206004820152601f60248201527f54686520746f74616c207061796d656e7420697320746f6f206c617267652e006044820152fd5b906000805b6040840160a062007ace818351015162005bcb565b515184101562007b4357926200734462007b3360409462007b2b8562007b238662007b118b62007b18836200054f9f9e62007b119062007b399e51015162005bcb565b5162005bed565b519451015162005bdc565b519062006fe1565b929062007a68565b62007088565b9192905062007ab9565b509093505050565b60200151511562007b5b57600190565b600090565b1562007b6857565b606460405162461bcd60e51b815260206004820152600f60248201527f496e76616c69642070726f6772616d00000000000000000000000000000000006044820152fd5b62007bb78162014448565b5162013ef45760068110156200409c576003811462013e8a578062007c1a57606460405162461bcd60e51b815260206004820152601660248201527f5468652070726f6772616d20697320696e76616c6964000000000000000000006044820152fd5b600481036200b5ba5750906000905b602083015180518310156200b5b4578262007c449162005bed565b51602081018051602690818110156200409c57156200b570578151818110156200409c5760010362007e9257505060408091019062007c8860c08351015162005ba7565b519262007caa60a062007c9f818651015162005ba7565b519451015162005bcb565b519562007cbb8551855114620160fd565b62007cca85518851146201616f565b60005b855181101562007e105762007ce3818662005bed565b51612710908181101562005bb557600160ff600762007d0b9360031b015416151514620161e1565b62007d17828a62005bed565b5162007d24838862005bed565b51908282101562005bb557600662007d429260031b01549062007088565b9062007d4f848962005bed565b51918383101562005bb557600662007d6c9360031b015562016238565b62007d78828a62005bed565b519062007d86838862005bed565b518181101562005bb5578392600362007dc6928b62007daf6001600160a01b0398899262005bed565b5116600052811b0160205287600020549062007088565b62007dd2848a62005bed565b519283101562005bb55760036200054f9362007e0a9662007df4878e62005bed565b5116600052811b016020528760002055620162aa565b62007ccd565b50939262007e2d9192965062007e26906201723d565b9262017121565b94519262007e3b8462003fbd565b60008452600036813760005b835181101562007e7557806200054f62007e6662007e6f938762005bed565b51878a62016d14565b62007e47565b509450926020925062007e89915062005b81565b91905062007c29565b8151818110156200409c5760020362008166575050604080910180519283519562007ed762007ec660a08097015162005ba7565b519562007b18818651015162005bcb565b51938751865103620080fd578751845103620080945787518551036200802b575060005b8551811015620080155762007f11818762005bed565b5190612710918281101562005bb55762007f3760ff6007809360031b015416156201631b565b62007f43828962005bed565b518381101562005bb55760031b01805460ff1916600117905562007f68818a62005bed565b5162007f75828962005bed565b51908382101562005bb557600562007f919260031b01620067d9565b62007f9d818662005bed565b5162007faa828962005bed565b518381101562005bb55760031b6001015562007fc7818762005bed565b5162007fd4828962005bed565b518381101562005bb55760031b6002015562007ff1818862005bed565b519182101562005bb557600060066200800f9360031b015562005b81565b62007efb565b5095509390506020925062007e89915062005b81565b6084905162461bcd60e51b815260206004820152603c60248201527f546865206c656e677468206f6620746f6b656e496e666f20616e6420746f6b6560448201527f6e4469766964656e64576569676874206973206e6f7420657175616c000000006064820152fd5b6084905162461bcd60e51b815260206004820152603960248201527f546865206c656e677468206f6620746f6b656e496e666f20616e6420746f6b6560448201527f6e566f74696e67506f776572206973206e6f7420657175616c000000000000006064820152fd5b6084905162461bcd60e51b815260206004820152603860248201527f546865206c656e677468206f6620746f6b656e496e666f20616e6420746f6b6560448201527f6e496e6465784172726179206973206e6f7420657175616c00000000000000006064820152fd5b81959394929551818110156200409c576003036200874557505060408401906200819560c08351015162005ba7565b5193620081ac60a062007c9f818651015162005ba7565b5193620081c1865185511462001929620174fa565b620081d4865186511462001929620174fa565b60005b86518110156200823e57620081ed818662005bed565b519061271082101562005bb557600362008238926001600160a01b038b5116600052811b016020526200054f6040600020546200822b838a62005bed565b5111156200192962017621565b620081d7565b50909493919460005b855181101562008373576200825d818662005bed565b51906127108083101562005bb55760036001600160a01b0393848c5116600052811b01602052620082a160406000205462008299848962005bed565b519062006155565b90620082ae848a62005bed565b51918383101562005bb5576003620082dd93878f5116600052811b016020526040600020556200192962017621565b620082e9828862005bed565b518181101562005bb5576003908462008303858c62005bed565b5116600052811b01602052620083246040600020546200733c848962005bed565b62008330848a62005bed565b519283101562005bb55760036200054f936200836d9662008352878e62005bed565b5116600052811b016020526040600020556200192962017697565b62008247565b5092620083919195969492506200838a906201723d565b9162017121565b926001600160a01b0360405191620083a98362003fa1565b60018352602036818501375116620083c18262005ba7565b526000905b82518210156200873157620083dc828462005bed565b5196620083ea865162005d44565b93600095620083fa845162005d44565b6104c0528698875b8951811015620084c357896200842f8d6001600160a01b0362008426858562005bed565b51169062017008565b158062008485575b6200844f575b50620084499062005b81565b62008402565b81996001600160a01b036200846d62008449946200847b9462005bed565b51166200200d828c62005bed565b989050896200843d565b50506127108c101562005bb5576001600160a01b03620084a6828c62005bed565b511660005260038c811b0160205289604060002054151562008437565b509098969498979291939760005b895181101562008561576127108c101562005bb5576001600160a01b03620084fa828c62005bed565b511660005260038c811b01602052896040600020541562008528575b50620085229062005b81565b620084d1565b81996001600160a01b03620085466200852294620085579462005bed565b51166200200d826104c05162005bed565b9890508962008516565b50989593929650966127108a1015610680526127108a101562005bb55760048a60031b0154966200859d62008597878a6201542e565b62005d44565b9860009a8b610240525b6106805162005bb557610240518a8110156200865757620085f56001600160a01b038f92620085e39060006106805260048560031b0162005f0b565b90549060031b1c166104c051620170cc565b1562008615575b506200860b6102405162005b81565b61024052620085a7565b9b8b6200200d826200864f949f620086406001600160a01b03916004610240519160031b0162005f0b565b90549060031b1c169262005bed565b9a8c620085fc565b509b9398509591969499909893996000915b838310620086f857505050506106805162005bb5578151916001600160401b03831162003f1a576020600491620086a685848660031b016200611d565b019160031b01600052602060002060005b838110620086da5750505050620086ce9062005b81565b909491959295620083c6565b60019060206001600160a01b038551169401938184015501620086b7565b620087236200872a916001600160a01b0362008715868662005bed565b51166200200d828a62005bed565b9262005b81565b9162008669565b50505091926020915062007e899062005b81565b81959394929551818110156200409c57600403620089d2575050604080920160c094620087866200877a878451015162005ba7565b51968351015162005bcb565b51946200879d60a062007c9f818651015162005ba7565b5193620087b2885188511462001929620174fa565b620087c5885185511462001929620174fa565b620087d8885186511462001929620174fa565b60005b88518110156200883f57620087f1818662005bed565b519061271082101562005bb557600362008839926001600160a01b0362008819848e62005bed565b5116600052811b016020526200054f88600020546200822b838a62005bed565b620087db565b50909691959294939660005b83518110156200897f5762008861818862005bed565b5190612710918281101562005bb55760036001600160a01b03918262008888858a62005bed565b5116600052811b01602052620088a98b62008299848b600020549262005bed565b90620088b6848c62005bed565b51918583101562005bb5576003620088ef9385620088d5888d62005bed565b5116600052811b016020528a600020556200192962017621565b620088fb828a62005bed565b518381101562005bb5576003908262008915858b62005bed565b5116600052811b01602052620089368b6200733c848b600020549262005bed565b91905062008945838b62005bed565b519384101562005bb557620089799360039162008963858b62005bed565b5116600052811b01602052876000205562005b81565b6200884b565b5094620089a9929750620089a2919394506200899b906201723d565b9362017121565b9562017121565b9260005b835181101562007e7557806200054f62007e66620089cc938762005bed565b620089ad565b81959493955190808210156200409c57600591820362008c02575050506040918285019062008a1660a062008a0b818551015162005ba7565b519351015162005bcb565b5192825184510362008b995760005b835181101562008a7e5762008a3b818562005bed565b519061271082101562005bb557600362008a78926001600160a01b038b5116600052811b016020526200054f87600020546200822b838962005bed565b62008a25565b509092919260005b845181101562008b1a5762008a9c818662005bed565b51906127108083101562005bb55760036001600160a01b0393848c5116600052811b0160205262008ad7886000205462008299848962005bed565b62008ae3848a62005bed565b519283101562005bb55760036200054f9362008b14968e5116600052811b0160205289600020556200192962017621565b62008a86565b5095939262008b2b9192506201723d565b916001600160a01b0381519462008b428662003fa1565b6001865260203681880137511662008b5a8562005ba7565b52519462008b688662003fbd565b60008652600036813760005b835181101562007e7557806200054f62007e6662008b93938762005bed565b62008b74565b6084855162461bcd60e51b815260206004820152603560248201527f546865206c656e677468206f6620746f6b656e436c61737320616e6420746f6b60448201527f656e416d6f756e74206973206e6f7420657175616c00000000000000000000006064820152fd5b829693949651818110156200409c5760060362008ea05750505090604080920162008c3260c08251015162005ba7565b519462008c4960a062008a0b818551015162005ba7565b5192865183510362008e3757865184510362008dce5760005b875181101562008cc65762008c78818562005bed565b519061271082101562005bb557600362008cc0926001600160a01b0362008ca0848d62005bed565b5116600052811b016020526200054f87600020546200822b838962005bed565b62008c62565b509092919260005b875181101562008d7a5762008ce4818662005bed565b516127108082101562005bb557600383928b62008d0b6001600160a01b0396879262005bed565b5116600052811b0160205262008d2b886000205462008299848962005bed565b62008d37848a62005bed565b519283101562005bb55760036200054f9362008d749662008d5a8f889062005bed565b5116600052811b0160205289600020556200192962017621565b62008cce565b50959262008d8f91925062007e26906201723d565b92519462008d9d8662003fbd565b60008652600036813760005b835181101562007e7557806200054f62007e6662008dc8938762005bed565b62008da9565b6084855162461bcd60e51b815260206004820152603060248201527f546865206c656e677468206f662061646472657373657320616e6420616d6f7560448201527f6e7473206973206e6f7420657175616c000000000000000000000000000000006064820152fd5b6084855162461bcd60e51b815260206004820152603560248201527f546865206c656e677468206f662061646472657373657320616e6420746f6b6560448201527f6e436c6173736573206973206e6f7420657175616c00000000000000000000006064820152fd5b8251818110156200409c57600703620090085750505060408091019362008ecc60c08651015162005ba7565b519262008ede60a08751015162005ba7565b519551519162008ef6855188511462001929620174fa565b60005b8551811015620080155762009002906200054f6001600160a01b038260028862008fea8e62008fdf8e62008fc88f8962008f348a8562005bed565b511660005262008f718962008f6981620138809a8b60205262008f6360ff8760002054161562001929620175e6565b62005bed565b519662005bed565b51968a62008fa783519b8c9662008f888862003efe565b600188526060602089019860008a528781019b8c52019b8c5262005bed565b511660005260205260002097511515889060ff801983541691151516179055565b51865461ff00191690151560081b61ff0016178655565b5160018501620067d9565b5191015562008ffa838a62005bed565b511662007241565b62008ef9565b8251959695939492818510156200409c57600894850362009100575050506200903a60c0604080950151015162005ba7565b519360005b8551811015620090eb57620090e5906001600160a01b038062009063838a62005bed565b5116600052620138809081602052620090ba60ff620090916001828c60002054161515146200192962017535565b826200909e868d62005bed565b5116600052836020528960002054891c161562001929620175ab565b620090c6838a62005bed565b51166000526020528560002061010061ff001982541617905562005b81565b6200903f565b50949093506020925062007e89915062005b81565b8051828110156200409c57600903620091d5575050506200912a60c0604080950151015162005ba7565b519360005b8551811015620090eb57620091cf90866001600160a01b038062009154848462005bed565b5116600052620091a8600189836200918a8762013880978860205262008f638660ff809760002054161515146200192962017535565b5116600052846020528a600020548a1c161515146200192962017570565b620091b4838a62005bed565b51166000526020528560002061ff0019815416905562005b81565b6200912f565b809796949293959751828110156200409c57600a03620092b457505050506040809401916200921a60a06200920f60c08651015162005ba7565b519451015162005ba7565b51916200922f845184511462001929620174fa565b60005b845181101562007e7557620092ae906001600160a01b038062009256838962005bed565b511660005262013880806020526200927e600160ff8c60002054161515146200192962017535565b6200928a838862005bed565b519162009298848a62005bed565b5116600052602052600289600020015562005b81565b62009232565b8097959751828110156200409c57600b03620093845750505050604080920193620092e460c08651015162005ba7565b5194515191620092fc865184511462001929620174fa565b60005b865181101562007e75576200937e906200054f6001600160a01b038062009327848c62005bed565b511660005262013880806020526200934f600160ff8b60002054161515146200192962017535565b6200935b848962005bed565b519162009369858d62005bed565b511660005260205260018860002001620067d9565b620092ff565b8097949593969751828110156200409c57600c03620094dd57505050604001606091828251015193620093b785620154d5565b60005b8551811015620094c75760e0620093d682878751015162005bed565b510151156200945e57620093fa620093f382878751015162005bed565b5162006db8565b62013882805460001992919083810190811162005b91576200941d8a9162006d3c565b5001805461ff0019166101001790555491820191821162005b91578762009448620094589362006d3c565b5001805460ff1916905562005b81565b620093ba565b620094796200947282878751015162005bed565b5162006e05565b62013882805460001992919083810190811162005b91576200949c8a9162006cc0565b5001805461ff0019166101001790555491820191821162005b91578762009448620094589362006cc0565b5095915093506020925062007e89915062005b81565b809796959392949751828110156200409c57600d03620096345750506040019460206200950f60a08851015162005ba7565b51965101519162009524875184511462015dd4565b60005b875181101562008015578080878a62009545620095d5958962005bed565b5115620095db57620095a66200958d8483620095786200956b620095b198889762005bed565b5162013882541162015e6c565b62008f638d620095946200958d858562005bed565b5162006d3c565b509060ff9889920154901c1662015ec3565b500154161562015f35565b86620095c26200958d838c62005bed565b5001805460ff1916600117905562005b81565b62009527565b620095a66200961c848362009607620095fa6200962398889762005bed565b5162013883541162015e6c565b62008f638d620095946200961c858562005bed565b5162006cc0565b86620095c26200961c838c62005bed565b809794939751828110156200409c57600e036200971b5750506040019160206200966360a08551015162005ba7565b51935101519562009678845188511462015dd4565b60005b845181101562008015578062009696620096a2928a62005bed565b51620096a85762005b81565b6200967b565b620096c5620096b8828862005bed565b5162013882541162015fa7565b6200970a87620096ef620096de6200958d858b62005bed565b5060ff9283910154891c1662016019565b88620097006200958d858b62005bed565b500154166201608b565b86620094486200958d838962005bed565b80919293509694959651828110156200409c57600f03620098415750506040016060918282510151936200974f85620154d5565b60005b8551811015620094c75760e06200976e82878751015162005bed565b51015115620097df576200978b620093f382878751015162005bed565b62013882805460001992919083810190811162005b9157620097ae8a9162006d3c565b5001805461ff0019166101001790555491820191821162005b915787620095c2620097d99362006d3c565b62009752565b620097f36200947282878751015162005bed565b62013882805460001992919083810190811162005b9157620098168a9162006cc0565b5001805461ff0019166101001790555491820191821162005b915787620095c2620097d99362006cc0565b809192939496955051828110156200409c57601003620098e657505060400151906200987660a0608084015193015162005ba7565b51936200988b835186511462001929620174fa565b60005b8351811015620098d357806200054f620098ad620098cd938762005bed565b51620098b98162004eaa565b620098c5838a62005bed565b51906201543c565b6200988e565b509350916020915062007e899062005b81565b8095929551828110156200409c5760110362009b96575050906040809401916200991b60a06200920f60c08651015162005ba7565b51916200992c8451845114620153e2565b60005b8451811015620099a5576200999f906200054f6001600160a01b038062009957848a62005bed565b51166000526201388580602052620099798b600020546200733c868b62005bed565b91909262009988868c62005bed565b51166000526020528a600020556200192962017499565b6200992f565b5093945091620099b6915062017121565b906201388692835494620099d0620085978551886201542e565b91600093845b88811062009b58575060005b865181101562009a96576000805b8a811062009a47575b501562009a12575b62009a0c9062005b81565b620099e2565b9462009a3e62009a0c916001600160a01b0362009a30898b62005bed565b51166200200d828962005bed565b95905062009a01565b62009a528162005db5565b906001600160a01b03918291549060031b1c169062009a72858c62005bed565b51161462009a8b5762009a859062005b81565b620099f0565b5050600138620099f9565b5096509490935062009aa88362005d44565b908151916001600160401b03831162003f1a5760209062009ac98462005f95565b019060005260005b82811062009b1a5750505060005b82811062009af75750505062007e8960209162005b81565b806200054f6001600160a01b0362001f2362009b14948662005bed565b62009adf565b60019060206001600160a01b03845116930192817f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa401550162009ad1565b9462009b8962009b90916001600160a01b0362009b758962005db5565b90549060031b1c166200200d828962005bed565b9562005b81565b620099d6565b8051828110156200409c5760120362009e2157505060408094019162009bc760a06200920f60c08651015162005ba7565b519162009bd88451845114620153e2565b60005b845181101562009c2b5762009c25906200054f6001600160a01b038062009c03848a62005bed565b51166000526201388580602052620099798b6000205462008299868b62005bed565b62009bdb565b50949150929162009c3c9062017121565b9062013886805462009c4e8162005d44565b9260009485925b80841062009d1c575050505062009c6c8362005d44565b908151916001600160401b03831162003f1a5760209062009c8d8462005f95565b019060005260005b82811062009cde5750505060005b82811062009cbb5750505062007e8960209162005b81565b806200054f6001600160a01b0362001f2362009cd8948662005bed565b62009ca3565b60019060206001600160a01b03845116930192817f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa401550162009c95565b9297600097929597949194998a5b865181101562009e0f5762009d3f8b62005db5565b906001600160a01b03918291549060031b1c169062009d5f838a62005bed565b51161462009d785762009d729062005b81565b62009d2a565b509950976001979592979491945b8062009ddd575b1562009da55762009d9e9062005b81565b9262009c55565b9562009dd662009d9e916001600160a01b0362009dc28a62005db5565b90549060031b1c166200200d828a62005bed565b9662005b81565b506001600160a01b0362009df18262005db5565b90549060031b1c166000526201388560205282600020541562009d8d565b50999890989795929794919462009d86565b8095929551828110156200409c5760130362009e8257505060408091015101519260005b845181101562009e7157806200054f62009e6462009e6b938862005bed565b5162016981565b62009e45565b5092509062007e8960209162005b81565b805191808310156200409c5760149283036200a0255750505060408091019062009eb160c08351015162005ba7565b519262009ec860a062007c9f818651015162005ba7565b519562009ed98551855114620160fd565b62009ee885518851146201616f565b60005b855181101562009fd05762009f01818962005bed565b5162009f0e828762005bed565b51612710918282101562005bb557600662009f2f9260031b01549062007088565b9062009f3c848962005bed565b51918383101562005bb557600662009f599360031b015562016238565b62009f65828a62005bed565b519062009f73838862005bed565b518181101562005bb5578392600362009f9c928b62007daf6001600160a01b0398899262005bed565b62009fa8848a62005bed565b519283101562005bb55760036200054f9362009fca9662007df4878e62005bed565b62009eeb565b50939262009fe69192965062007e26906201723d565b94519262009ff48462003fbd565b60008452600036813760005b835181101562007e7557806200054f62007e666200a01f938762005bed565b6200a000565b8196949593965190808210156200409c5760159182036200a57d575050505060408401906200a05960c08351015162005ba7565b51936200a07060a062007c9f818651015162005ba7565b51936200a085865185511462001929620174fa565b6200a098865186511462001929620174fa565b60005b86518110156200a0f5576200a0b1818662005bed565b519061271082101562005bb55760036200a0ef926001600160a01b038b5116600052811b016020526200054f6040600020546200822b838a62005bed565b6200a09b565b50909493919460005b85518110156200a207576200a114818662005bed565b51906127108083101562005bb55760036001600160a01b0393848c5116600052811b016020526200a15060406000205462008299848962005bed565b906200a15d848a62005bed565b51918383101562005bb55760036200a18c93878f5116600052811b016020526040600020556200192962017621565b6200a198828862005bed565b518181101562005bb557600390846200a1b2858c62005bed565b5116600052811b016020526200a1d36040600020546200733c848962005bed565b6200a1df848a62005bed565b519283101562005bb55760036200054f936200a2019662008352878e62005bed565b6200a0fe565b50926200a21e9195969492506200838a906201723d565b926001600160a01b03604051916200a2368362003fa1565b600183526020368185013751166200a24e8262005ba7565b526000905b825182101562008731576200a269828462005bed565b51966200a277865162005d44565b936000956200a287845162005d44565b610600528698875b89518110156200a33957896200a2b38d6001600160a01b0362008426858562005bed565b15806200a2fb575b6200a2d3575b506200a2cd9062005b81565b6200a28f565b81996001600160a01b036200846d6200a2cd946200a2f19462005bed565b989050896200a2c1565b50506127108c101562005bb5576001600160a01b036200a31c828c62005bed565b511660005260038c811b016020528960406000205415156200a2bb565b509098969498979291939760005b89518110156200a3d7576127108c101562005bb5576001600160a01b036200a370828c62005bed565b511660005260038c811b0160205289604060002054156200a39e575b506200a3989062005b81565b6200a347565b81996001600160a01b036200a3bc6200a398946200a3cd9462005bed565b51166200200d826106005162005bed565b989050896200a38c565b50989593929650966127108a1015610140526127108a101562005bb55760048a60031b0154966200a40d62008597878a6201542e565b9860009a8b6103c0525b6101405162005bb5576103c0518a8110156200a4b8576200a4656001600160a01b038f926200a4539060006101405260048560031b0162005f0b565b90549060031b1c1661060051620170cc565b156200a485575b506200a47b6103c05162005b81565b6103c0526200a417565b9b8b6200200d826200a4b0949f620086406001600160a01b039160046103c0519160031b0162005f0b565b9a8c6200a46c565b509b9398509591969499909893996000915b8383106200a55957505050506101405162005bb5578151916001600160401b03831162003f1a5760206004916200a50785848660031b016200611d565b019160031b01600052602060002060005b8381106200a53b57505050506200a52f9062005b81565b9094919592956200a253565b60019060206001600160a01b0385511694019381840155016200a518565b620087236200a576916001600160a01b0362008715868662005bed565b916200a4ca565b8297949695975192818410156200409c5760169384036200a5ea57505050505060c060406200a5b0920151015162005ba7565b519260005b845181101562009e7157806200054f6001600160a01b036200a5dc6200a5e4948962005bed565b5116620071de565b6200a5b5565b8051828110156200409c576017036200a65357608460405162461bcd60e51b815260206004820152602960248201527f5265736572766564206f70636f6465206964203233206973206e6f7420696d706044820152683632b6b2b73a32b21760b91b6064820152fd5b8051828110156200409c576018036200a6c757505050505060c060406200a67e920151015162005ba7565b5162013892805460ff191660011790559260005b845181101562009e7157806200054f6001600160a01b036200a6b96200a6c1948962005bed565b51166200717b565b6200a692565b8097969751828110156200409c576019036200a85057505050505060008080604080940160a0808251015180516200a817575b505051906001600160a01b036200a71e6200733560c060e086015195015162005ba7565b511690602083519301915af1903d156200a80e573d916200a73f83620041b8565b926200a74e8351948562003fd9565b83523d6000602085013e5b156200a76e57505062007e8960209162005b81565b62005b7d92506200a7ef8151927f5468652063616c6c20746f2074686520636f6e7472616374206973206e6f742060208501527f7375636365737366756c2e2052657475726e20646174613a2000000000000000838501528381516200a7de816059946020868601910162004106565b810103603981018552018362003fd9565b5191829162461bcd60e51b83526020600484015260248301906200412b565b6060916200a759565b6200a8229062005ba7565b51516200a831575b806200a6fa565b81925062007335906200a8479251015162005ba7565b5190386200a82a565b8051828110156200409c57601a036200a95b57505050506200a87b60a0604080940151015162005ba7565b51906200a88c6003835114620153e2565b6200a8978262005ba7565b51926200a8b06200a8a88462005bcb565b519362005bdc565b51926200a9185750509162007e89916001602094146000146200a911576200a8f0906200a8e36201388d91825462007088565b9091556200192962017423565b6200054f6201388e6200a904815462007075565b909155620019296201745e565b5062005b81565b60649250519062461bcd60e51b82526020600483015260248201527f496e76616c6964207061796d656e7420747970650000000000000000000000006044820152fd5b80919293945051828110156200409c57601b036200ade4575050505050906200a99b6201388b54620070bf6200a9906201733b565b612710831062005b4e565b50506200a9a762017423565b506000805b61271081106200ad7f575b50506200a9c36200709a565b6200a9d26202712a5462005d44565b9060009384905b6127108210156200ad73578160031b9460ff600787015416156200ab28576000976002870154156200ab1657889798975b62005bb55760048701548810156200aafc576200aa2b886004890162005f0b565b90549060031b1c6001600160a01b0316988960005260038801602052604099868b60002054906200aa5c9162006fe1565b9b906200aa6862017423565b6200aa739162005b4e565b60009b60028b01546200aa869162006fe1565b91906200aa9262017423565b6200aa9d9162005b4e565b828d52620138876020528c20908154906200aab89162007088565b9091556200aac562017423565b6200aad09162005b4e565b6200aadc828962005bed565b526200aae89062005b81565b976200aaf49062005b81565b97986200aa0a565b929095506200ab0d91965062005b81565b9095946200a9d9565b929095506200ab0d9196975062005b81565b959392509350505b6200ab3b8262005d44565b91600091825b8281106200acde5750505062013888908154926200ab646200859785846201542e565b9360009081905b8082106200aca557505060005b8381106200ac1057505050508151916001600160401b03831162003f1a576020906200aba48462005f3d565b019060005260005b8281106200abd25750505062007e8960209160006201388d5560006201388e5562005b81565b60019060206001600160a01b03845116930192817ff9ab3ee50aab7a7cf5b7d30204dd21b5da7cc33690a7aec17b3653a822a635df0155016200abac565b6000805b8381106200ac5d575b50156200ac36575b6200ac309062005b81565b6200ab78565b906200ac546200ac30916001600160a01b0362008715858762005bed565b9190506200ac25565b6001600160a01b03806200ac72858862005bed565b5116906200ac81838b62005bed565b5116146200ac9a576200ac949062005b81565b6200ac14565b50506001386200ac1d565b9091620087236200acd7916001600160a01b036200acc38662005d7c565b90549060031b1c166200200d828b62005bed565b906200ab6b565b6000805b8581106200ad2b575b50156200ad04575b6200acfe9062005b81565b6200ab41565b926200ad226200acfe916001600160a01b0362009a30878662005bed565b9390506200acf3565b6001600160a01b03806200ad40858762005bed565b5116906200ad4f838a62005bed565b5116146200ad68576200ad629062005b81565b6200ace2565b50506001386200aceb565b9394929150506200ab30565b8060031b9060ff600783015416156200addd576200adcb62007b336200054f946200adbf6200add79560026200adb58762006ee3565b9101549062006fe1565b92906200192962017423565b93906200192962017423565b6200a9ac565b506200a9b7565b8051828110156200409c57601c036200ae4d57608460405162461bcd60e51b815260206004820152602960248201527f5265736572766564206f70636f6465206964203238206973206e6f7420696d706044820152683632b6b2b73a32b21760b91b6064820152fd5b8051828110156200409c57601d036200ae73575b505050505062007e8960209162005b81565b8051828110156200409c57601e146200ae61578051828110156200409c57601f036200aec957505050506020916200aebf6200aeb8604062007e899401515162005ba7565b51620169b8565b913880806200ae61565b8051828110156200409c576020036200aeef575b505050505062007e896020916200aebf565b805190828210156200409c5760218092036200af0d575b506200aedd565b8051838110156200b55b576022036200af4e5750505050505062007e896020916201389260ff1981541690556200af43620060c4565b91388080806200af06565b8051838110156200b55b576023036200af75575b50505050505062007e896020916200af43565b8051838110156200b55b576024146200af62578051838110156200b55b576025146200af62579795949751918210156200b5475750036200b503575060408401906200afc660c08351015162005ba7565b51936200afdd60a062007c9f818651015162005ba7565b51936200aff2865185511462001929620174fa565b6200b005865186511462001929620174fa565b60005b86518110156200b062576200b01e818662005bed565b519061271082101562005bb55760036200b05c926001600160a01b038b5116600052811b016020526200054f6040600020546200822b838a62005bed565b6200b008565b50909493919460005b85518110156200b174576200b081818662005bed565b51906127108083101562005bb55760036001600160a01b0393848c5116600052811b016020526200b0bd60406000205462008299848962005bed565b906200b0ca848a62005bed565b51918383101562005bb55760036200b0f993878f5116600052811b016020526040600020556200192962017621565b6200b105828862005bed565b518181101562005bb557600390846200b11f858c62005bed565b5116600052811b016020526200b1406040600020546200733c848962005bed565b6200b14c848a62005bed565b519283101562005bb55760036200054f936200b16e9662008352878e62005bed565b6200b06b565b50926200b18b9195969492506200838a906201723d565b926001600160a01b03604051916200b1a38362003fa1565b600183526020368185013751166200b1bb8262005ba7565b526000905b82518210156200b4ea576200b1d6828462005bed565b51966200b1e4865162005d44565b936000956200b1f4845162005d44565b610420528698875b89518110156200b2a657896200b2208d6001600160a01b0362008426858562005bed565b15806200b268575b6200b240575b506200b23a9062005b81565b6200b1fc565b81996001600160a01b036200846d6200b23a946200b25e9462005bed565b989050896200b22e565b50506127108c101562005bb5576001600160a01b036200b289828c62005bed565b511660005260038c811b016020528960406000205415156200b228565b509098969498979291939760005b89518110156200b344576127108c101562005bb5576001600160a01b036200b2dd828c62005bed565b511660005260038c811b0160205289604060002054156200b30b575b506200b3059062005b81565b6200b2b4565b81996001600160a01b036200b3296200b305946200b33a9462005bed565b51166200200d826104205162005bed565b989050896200b2f9565b50989593929650966127108a1015610120526127108a101562005bb55760048a60031b0154966200b37a62008597878a6201542e565b9860009a8b610200525b6101205162005bb557610200518a8110156200b425576200b3d26001600160a01b038f926200b3c09060006101205260048560031b0162005f0b565b90549060031b1c1661042051620170cc565b156200b3f2575b506200b3e86102005162005b81565b610200526200b384565b9b8b6200200d826200b41d949f620086406001600160a01b03916004610200519160031b0162005f0b565b9a8c6200b3d9565b509b9398509591969499909893996000915b8383106200b4c657505050506101205162005bb5578151916001600160401b03831162003f1a5760206004916200b47485848660031b016200611d565b019160031b01600052602060002060005b8381106200b4a857505050506200b49c9062005b81565b9094919592956200b1c0565b60019060206001600160a01b0385511694019381840155016200b485565b620087236200b4e3916001600160a01b0362008715868662005bed565b916200b437565b50505091926020915062007e899091388080806200af62565b6064906040519062461bcd60e51b82526020600483015260248201527f496e76616c6964206f7065726174696f6e2074797065000000000000000000006044820152fd5b634e487b7160e01b60005260045260246000fd5b82634e487b7160e01b60005260045260246000fd5b606460405162461bcd60e51b815260206004820152601b60248201527f4f7065726174696f6e207479706520697320756e646566696e656400000000006044820152fd5b50915050565b600281036200b61b5760405162461bcd60e51b815260206004820152602a60248201527f5468652070726f6772616d2069732064656e6965642062792074686520706c7560448201526967696e2073797374656d60b01b6064820152608490fd5b6001146200b6265750565b906200b6366201388354620063b7565b805190600160401b821162003f1a57620271165482620271165580831062013df1575b50602001620271166000527f2a7aa4e7f2fefac7a07702701afb9c202f6f79fb2762c8e42b37a264307667fa6000915b83831062013dd0575050505060005b62013883548110156200b6d257806200054f6200b6b96200b6cc9362006cc0565b506200b6c58362006cfe565b9062014356565b6200b698565b506200b6e26201388254620063b7565b805190600160401b821162003f1a57620271155482620271155580831062013d33575b50602001620271156000527f0f9b10e190177c3c56fc6ce7689c8130c567df57aa02c08e7a090a59992adf926000915b83831062013d12575050505060005b62013882548110156200b77757806200054f6200b7656200b7719362006d3c565b506200b6c58362006d7a565b6200b744565b5060005b612710811015806200b94257600160ff6201389a8460031b0154161515146200b7b1575b506200b7ab9062005b81565b6200b77b565b916000835b62005bb557620138978360031b01548110156200b822576200b819929350600092816001600160a01b036200b7f58694620138978960031b0162005f0b565b90549060031b1c16600052620138968660031b016020526000604081205562005b81565b9093926200b7b6565b5091604051906200b8338262003fbd565b6000825262005bb5578051906001600160401b03821162003f1a576020906200b86583620138978660031b016200611d565b01620138978360031b01600052602060002060005b8381106200b9245750505050600381901b6201389a8101805460ff191690556000620138938201819055620138948201819055620138958201556201389801546200b7ab91906200b8cb9062005221565b601f908181116200b8f8575b50506000620138988260031b01556000620138998260031b0155906200b79f565b6200b91c91620138988460031b016000526020600020910160051c81019062005f24565b38806200b8d7565b60019060206001600160a01b0385511694019381840155016200b87a565b505060005b612710811062013c7d575060005b62013881548110156200b9b357806001600160a01b036200b97a6200b9ad9362005dee565b90549060031b1c166000526202711360205260006002604082208281556200b9a56001820162006448565b015562005b81565b6200b955565b506200b9c3620138815462005d44565b8051906001600160401b03821162003f1a57600160401b821162003f1a57602090620271145483620271145580841062013c44575b50016202711460005260005b82811062013c065750505060005b62013881548110156200ba93576001600160a01b036200ba328262005dee565b90549060031b1c1690620271145481101562005bb5576200ba8d9162027114600052817f8e71c125ecfe4aeed61c8cf4b09183dd0bf2a3230d826486f04e5f6f0de58e2c01906001600160a01b031982541617905562005b81565b6200ba12565b509060005b62013881548110156200bb7357806200bab56200bb0b9262005dee565b906001600160a01b03918291549060031b1c1660005262013880602052604080600020916200bae48462005dee565b90549060031b1c1660005262027113602052600020908082036200bb11575b505062005b81565b6200ba98565b600280916200bb5460ff6200bb3581845416879060ff801983541691151516179055565b825460081c16859061ff00825491151560081b169061ff001916179055565b6200bb66600182016001860162013fec565b015491015538806200bb03565b5060005b6202711d548110156200bbc857806001600160a01b036200bb9c6200bbc29362005e27565b90549060031b1c166000526202711c6020526200054f6040600020606481019062005f24565b6200bb77565b506200bbd86201388a5462005d44565b8051906001600160401b03821162003f1a57600160401b821162003f1a576020906202711d54836202711d5580841062013bcd575b50016202711d60005260005b82811062013b8f5750505060005b6201388a548110156200bc6957806200054f6001600160a01b036200bc506200bc639462005e60565b90549060031b1c1662001f308362005e27565b6200bc27565b5060005b6201388a548110156200bcf857806200bc8a6200bcdf9262005e60565b906001600160a01b03918291549060031b1c1660005262013889602052604080600020916200bcb98462005e60565b90549060031b1c166000526202711c602052600020908082036200bce557505062005b81565b6200bc6d565b6200bcf09162014411565b38806200bb03565b506201388b546202711e556201388c546202711f556201388d5462027120556201388e5462027121556201388f546001600160401b03811162003f1a57600160401b811162003f1a57620271225481620271225580821062013b56575b507f846ab89c81ea9339188216a1864da1a19ebe28d411cbec99efa70ca6d389710d8054906000915b83831062013b1657505050506201389054600160401b811162003f1a57620271235481620271235580821062013ac2575b507f7f73709277f72a9bc7b284375e83603a53394744e9fa86da811e86c2aa78e05e620271236000527f4ad859a97f543436e70c22b09d31fb4c7b9e987d7a008c98817c9b50a97b12246000915b83831062013aa4575050505062013891546001600160401b03811162003f1a57600160401b811162003f1a57620271245481620271245580821062013a6b575b506202712460009081527f8f332db73d3937798ea82422156d059730b0b3058606439b57b7ae623e94536680545b83831062013a2b575050505060ff620138925416151560ff8019620271255416911617620271255560005b62027119548110156200bee057806001600160a01b036200bebb6200beda9362005e99565b90549060031b1c16600052620271186020526000604081205562005b81565b6200be96565b506200bef0620138865462005d44565b8051906001600160401b03821162003f1a576020906200bf108362006014565b016202711960005260005b828110620139ed5750505060005b62013886548110156200bf6b57806200054f6001600160a01b036200bf526200bf659462005db5565b90549060031b1c1662001f308362005e99565b6200bf29565b5060005b62013886548110156200bfde57806200bf8c6200bfd89262005db5565b906001600160a01b03918291549060031b1c166000526201388560205260408060002054916200bfbc8462005db5565b90549060031b1c16600052620271186020526000205562005b81565b6200bf6f565b5060005b6202711b548110156200c02c57806001600160a01b036200c0076200c0269362005ed2565b90549060031b1c166000526202711a6020526000604081205562005b81565b6200bfe2565b506200c03c620138885462005d44565b8051906001600160401b03821162003f1a576020906200c05c836200606c565b016202711b60005260005b828110620139af5750505060005b62013888548110156200c0b757806200054f6001600160a01b036200c09e6200c0b19462005d7c565b90549060031b1c1662001f308362005ed2565b6200c075565b5060005b62013888548110156200c12a57806200c0d86200c1249262005d7c565b906001600160a01b03918291549060031b1c166000526201388760205260408060002054916200c1088462005d7c565b90549060031b1c166000526202711a6020526000205562005b81565b6200c0bb565b50906000905b6020830151805183101562010f5357826200c14b9162005bed565b51602081015160268110156200409c57156200b57057602081015160268110156200409c576001036200c72f57604001906200c18c60c08351015162005ba7565b51936200c1a360a062007c9f818651015162005ba7565b51916200c1b48651855114620160fd565b6200c1c386518451146201616f565b60005b86518110156200c324576200c1dc818662005bed565b5161271081101562005bb557600160ff6201389a6200c2049360031b015416151514620161e1565b6200c210818562005bed565b516200c21d828762005bed565b519061271082101562005bb557620138996200c23f9260031b01549062007088565b906200c24c838862005bed565b519161271083101562005bb557620138996200c26d9360031b015562016238565b6200c279818562005bed565b516200c286828762005bed565b519061271082101562005bb557620138966200c2c9926001600160a01b036200c2b0868d62005bed565b511660005260031b016020526040600020549062007088565b91906200c2d7828862005bed565b519061271082101562005bb5576200c31e93620138966200054f936001600160a01b036200c306878f62005bed565b511660005260031b01602052604060002055620162aa565b6200c1c6565b50926200c33b9192506200899b909594956201723d565b916040516200c34a8162003fbd565b6000815260003681376000945b80518610156200c715576200c36d868262005bed565b51610380526200c37e855162005d44565b966000946200c38e845162005d44565b6103005260009460005b88518110156200c46b578a896200c3c86001600160a01b036200c3bc858462005bed565b51166103805162017072565b15806200c422575b6200c3e9575b50506200c3e39062005b81565b6200c398565b986200c417916200200d826001600160a01b036200c40e879e976200c3e39862005bed565b51169262005bed565b9790508a896200c3d6565b50505061271061038051101562005bb5576001600160a01b036200c447828b62005bed565b5116600052620138966103805160031b016020528a8960406000205415156200c3d0565b50909895979498969291939660005b88518110156200c50a5761271061038051101562005bb5576001600160a01b03806200c4a7838c62005bed565b5116600052620138966103805160031b01602052604060002054156200c4da575b506200c4d49062005b81565b6200c47a565b819b6200c502916200c4f16200c4d4948d62005bed565b51166200200d826103005162005bed565b9a906200c4c8565b5098509695929190939661038051612710811015806102a05262005bb55760031b620138970154986200c54262008597898c6201542e565b6104a0526000610480526000610260525b6102a05162005bb557610260518a8110156200c61c576200c58a6200c5a89160006102a052620138976103805160031b0162005f0b565b91906001600160a01b03928391549060031b1c1661030051620170cc565b156200c5c8575b506200c5be6102605162005b81565b610260526200c553565b60006102a0526200c5e861026051620138976103805160031b0162005f0b565b90549060031b1c166200c602610480516104a05162005bed565b526200c6116104805162005b81565b61048052386200c5af565b50979294959093985095909560005b8281106200c6c9575050506102a05162005bb5576104a051516001600160401b03811162003f1a576200c66a81620138976103805160031b016200611d565b60206104a05101620138976103805160031b01600052602060002060005b8381106200c6ab57505050506200c69f9062005b81565b9492959091956200c357565b60019060206001600160a01b0385511694019381840155016200c688565b806001600160a01b036200c6e26200c70f938562005bed565b51166200c6f6610480516104a05162005bed565b526200c7056104805162005b81565b6104805262005b81565b6200c62b565b5050939092506200c727915062005b81565b90916200c130565b90602082949394015160268110156200409c576002036200c8ec576040809201908151938451916200c7866200c76a60a08098015162005ba7565b51966200c77b818751015162005bcb565b519551015162005bdc565b51948351875103620080fd578351855103620080945783518651036200802b575060005b86518110156200c8d9576200c7c0818862005bed565b5161271081101562005bb55760ff6201389a6200c7e49260031b015416156201631b565b6200c7f0818862005bed565b5161271081101562005bb55760031b6201389a01805460ff191660011790556200c81b818562005bed565b516200c828828962005bed565b519061271082101562005bb557620138986200c8489260031b01620067d9565b6200c854818662005bed565b516200c861828962005bed565b5161271081101562005bb55760031b6201389401556200c882818762005bed565b516200c88f828962005bed565b5161271081101562005bb55760031b6201389501556200c8b0818862005bed565b519061271082101562005bb5576000620138996200c8d39360031b015562005b81565b6200c7aa565b509592509350506200c727915062005b81565b909291602084015160268110156200409c576003036200ced45760408401906200c91b60c08351015162005ba7565b51906200c93260a062007c9f818651015162005ba7565b51936200c947835185511462001929620174fa565b6200c95a835186511462001929620174fa565b60005b83518110156200c9ba576200c973818662005bed565b519061271082101562005bb557620138966200c9b4926001600160a01b038b511660005260031b016020526200054f6040600020546200822b838a62005bed565b6200c95d565b509095919560005b87518110156200cb0f576200c9d8818662005bed565b5161271081101562005bb55762013896906001600160a01b0386511660005260031b016020526200ca1460406000205462008299838962005bed565b906200ca21838862005bed565b519161271083101562005bb557620138966200ca5c936001600160a01b0389511660005260031b016020526040600020556200192962017621565b6200ca68818662005bed565b5161271081101562005bb55762013896906001600160a01b036200ca8d848c62005bed565b511660005260031b016020526200caaf6040600020546200733c838962005bed565b91906200cabd828862005bed565b519061271082101562005bb5576200cb0993620138966200054f936001600160a01b036200caed8f889062005bed565b511660005260031b016020526040600020556200192962017697565b6200c9c2565b509194935091620089a26200cb24916201723d565b926001600160a01b03604051956200cb3c8762003fa1565b600187526020368189013751166200cb548662005ba7565b526000905b86518210156200cec2576200cb6f828862005bed565b516105a0526200cb80855162005d44565b966000946200cb90885162005d44565b6104e05260009460005b88518110156200cc64578a896200cbca6001600160a01b036200cbbe858462005bed565b51166105a05162017072565b15806200cc1b575b6200cbeb575b50506200cbe59062005b81565b6200cb9a565b986200cc10916200200d826001600160a01b036200c40e879e976200cbe59862005bed565b9790508a896200cbd8565b5050506127106105a051101562005bb5576001600160a01b036200cc40828b62005bed565b5116600052620138966105a05160031b016020528a8960406000205415156200cbd2565b509098949897969291939760005b88518110156200cd08576127106105a051101562005bb5576001600160a01b036200cc9e828b62005bed565b5116600052620138966105a05160031b01602052604060002054156200ccd0575b6200ccca9062005b81565b6200cc72565b996200ccff6200ccca916001600160a01b036200ccee8e8d62005bed565b51166200200d826104e05162005bed565b9a90506200ccbf565b5098509694939291956105a051612710811015806104605262005bb55760031b620138970154966200cd3f62008597878a6201542e565b996000996000610280525b6104605162005bb557610280518a8110156200cdf5576001600160a01b036200cd896200cd9b92600061046052620138976105a05160031b0162005f0b565b90549060031b1c166104e051620170cc565b156200cdba575b6200cdb06102805162005b81565b610280526200cd4a565b996200cdee906000610460528c6200200d826001600160a01b036200864061028051620138976105a05160031b0162005f0b565b996200cda2565b509a939794969299919850946000915b8383106200ce9e57505050506104605162005bb5578051906001600160401b03821162003f1a576020906200ce4683620138976105a05160031b016200611d565b01620138976105a05160031b01600052602060002060005b8381106200ce8057505050506200ce759062005b81565b90929591956200cb59565b60019060206001600160a01b0385511694019381840155016200ce5e565b620087236200cebb916001600160a01b0362009a30868662005bed565b916200ce05565b9295505092506200c727915062005b81565b9092602081015160268110156200409c576004036200d504576040016200cf0060c08251015162005ba7565b51936200cf1260c08351015162005bcb565b51906200cf2960a062007c9f818651015162005ba7565b51936200cf3e875184511462001929620174fa565b6200cf51875185511462001929620174fa565b6200cf64875186511462001929620174fa565b60005b87518110156200cfcf576200cf7d818662005bed565b519061271082101562005bb557620138966200cfc9926001600160a01b036200cfa7848d62005bed565b511660005260031b016020526200054f6040600020546200822b838a62005bed565b6200cf67565b509095919593929360005b83518110156200d134576200cff0818762005bed565b5161271081101562005bb55762013896906001600160a01b036200d015848862005bed565b511660005260031b016020526200d03760406000205462008299838862005bed565b906200d044838962005bed565b519161271083101562005bb557620138966200d08a936001600160a01b036200d06e878b62005bed565b511660005260031b016020526040600020556200192962017621565b6200d096818762005bed565b5161271081101562005bb55762013896906001600160a01b036200d0bb848c62005bed565b511660005260031b016020526200d0dd6040600020546200733c838862005bed565b9190506200d0ec818862005bed565b519161271083101562005bb557620138966200d12e936001600160a01b036200d116858e62005bed565b511660005260031b0160205260406000205562005b81565b6200cfda565b5091936200d150919350620089a26200899b919796976201723d565b6000945b80518610156200c715576200d16a868262005bed565b51610340526200d17b855162005d44565b966000946200d18b845162005d44565b6101a05260009460005b88518110156200d25f578a896200d1c56001600160a01b036200d1b9858462005bed565b51166103405162017072565b15806200d216575b6200d1e6575b50506200d1e09062005b81565b6200d195565b986200d20b916200200d826001600160a01b036200c40e879e976200d1e09862005bed565b9790508a896200d1d3565b50505061271061034051101562005bb5576001600160a01b036200d23b828b62005bed565b5116600052620138966103405160031b016020528a8960406000205415156200d1cd565b50909895979498969291939660005b88518110156200d2fe5761271061034051101562005bb5576001600160a01b03806200d29b838c62005bed565b5116600052620138966103405160031b01602052604060002054156200d2ce575b506200d2c89062005b81565b6200d26e565b819b6200d2f6916200d2e56200d2c8948d62005bed565b51166200200d826101a05162005bed565b9a906200d2bc565b5098509695929190939661034051612710811015806102c05262005bb55760031b620138970154986200d33662008597898c6201542e565b6105005260006103e052600060c0525b6102c05162005bb55760c0518a8110156200d40b576200d37c6200d39a9160006102c052620138976103405160031b0162005f0b565b91906001600160a01b03928391549060031b1c166101a051620170cc565b156200d3b8575b506200d3af60c05162005b81565b60c0526200d346565b60006102c0526200d3d760c051620138976103405160031b0162005f0b565b90549060031b1c166200d3f16103e0516105005162005bed565b526200d4006103e05162005b81565b6103e052386200d3a1565b50979294959093985095909560005b8281106200d4b8575050506102c05162005bb55761050051516001600160401b03811162003f1a576200d45981620138976103405160031b016200611d565b60206105005101620138976103405160031b01600052602060002060005b8381106200d49a57505050506200d48e9062005b81565b9492959091956200d154565b60019060206001600160a01b0385511694019381840155016200d477565b806001600160a01b036200d4d16200d4fe938562005bed565b51166200d4e56103e0516105005162005bed565b526200d4f46103e05162005b81565b6103e05262005b81565b6200d41a565b9290602084015160268110156200409c576005036200da7f5760408401906200d53760a062008a0b818551015162005ba7565b519282518451036200da155760005b83518110156200d5a3576200d55c818562005bed565b519061271082101562005bb557620138966200d59d926001600160a01b038a511660005260031b016020526200054f6040600020546200822b838962005bed565b6200d546565b509060005b83518110156200d64e576200d5be818562005bed565b5161271081101562005bb55762013896906001600160a01b0389511660005260031b016020526200d5fa60406000205462008299838862005bed565b91906200d608828762005bed565b519061271082101562005bb5576200d64893620138966200054f936001600160a01b038d511660005260031b016020526040600020556200192962017621565b6200d5a8565b5094939250906200d65f906201723d565b936001600160a01b03604051946200d6778662003fa1565b600186526020368188013751166200d68f8562005ba7565b52604051926200d69f8462003fbd565b6000845260003681376000905b86518210156200cec2576200d6c2828862005bed565b516102e0526200d6d3855162005d44565b966000946200d6e3885162005d44565b6101e05260009460005b88518110156200d7b7578a896200d71d6001600160a01b036200d711858462005bed565b51166102e05162017072565b15806200d76e575b6200d73e575b50506200d7389062005b81565b6200d6ed565b986200d763916200200d826001600160a01b036200c40e879e976200d7389862005bed565b9790508a896200d72b565b5050506127106102e051101562005bb5576001600160a01b036200d793828b62005bed565b5116600052620138966102e05160031b016020528a8960406000205415156200d725565b509098949897969291939760005b88518110156200d85b576127106102e051101562005bb5576001600160a01b036200d7f1828b62005bed565b5116600052620138966102e05160031b01602052604060002054156200d823575b6200d81d9062005b81565b6200d7c5565b996200d8526200d81d916001600160a01b036200d8418e8d62005bed565b51166200200d826101e05162005bed565b9a90506200d812565b5098509694939291956102e051612710811015806104405262005bb55760031b620138970154966200d89262008597878a6201542e565b9960009960006106a0525b6104405162005bb5576106a0518a8110156200d948576001600160a01b036200d8dc6200d8ee92600061044052620138976102e05160031b0162005f0b565b90549060031b1c166101e051620170cc565b156200d90d575b6200d9036106a05162005b81565b6106a0526200d89d565b996200d941906000610440528c6200200d826001600160a01b03620086406106a051620138976102e05160031b0162005f0b565b996200d8f5565b509a939794969299919850946000915b8383106200d9f157505050506104405162005bb5578051906001600160401b03821162003f1a576020906200d99983620138976102e05160031b016200611d565b01620138976102e05160031b01600052602060002060005b8381106200d9d357505050506200d9c89062005b81565b90929591956200d6ac565b60019060206001600160a01b0385511694019381840155016200d9b1565b620087236200da0e916001600160a01b0362009a30868662005bed565b916200d958565b608460405162461bcd60e51b815260206004820152603560248201527f546865206c656e677468206f6620746f6b656e436c61737320616e6420746f6b60448201527f656e416d6f756e74206973206e6f7420657175616c00000000000000000000006064820152fd5b92602081015160268110156200409c576006036200e09d576040016200daaa60c08251015162005ba7565b51936200dac160a062008a0b818551015162005ba7565b519285518351036200e0335785518451036200dfc95760005b86518110156200db42576200daf0818562005bed565b519061271082101562005bb557620138966200db3c926001600160a01b036200db1a848c62005bed565b511660005260031b016020526200054f6040600020546200822b838962005bed565b6200dada565b509060005b86518110156200dbe7576200db5d818562005bed565b5161271081101562005bb55762013896906001600160a01b036200db82848b62005bed565b511660005260031b016020526200dba460406000205462008299838862005bed565b91906200dbb2828762005bed565b519061271082101562005bb5576200dbe193620138966200054f936001600160a01b036200d06e878f62005bed565b6200db47565b50916200dbfe9193506200899b909594956201723d565b91604051926200dc0e8462003fbd565b6000845260003681376000945b80518610156200c715576200dc31868262005bed565b51610320526200dc42855162005d44565b966000946200dc52845162005d44565b6106c05260009460005b88518110156200dd26578a896200dc8c6001600160a01b036200dc80858462005bed565b51166103205162017072565b15806200dcdd575b6200dcad575b50506200dca79062005b81565b6200dc5c565b986200dcd2916200200d826001600160a01b036200c40e879e976200dca79862005bed565b9790508a896200dc9a565b50505061271061032051101562005bb5576001600160a01b036200dd02828b62005bed565b5116600052620138966103205160031b016020528a8960406000205415156200dc94565b50909895979498969291939660005b88518110156200ddc55761271061032051101562005bb5576001600160a01b03806200dd62838c62005bed565b5116600052620138966103205160031b01602052604060002054156200dd95575b506200dd8f9062005b81565b6200dd35565b819b6200ddbd916200ddac6200dd8f948d62005bed565b51166200200d826106c05162005bed565b9a906200dd83565b5098509695929190939661032051612710811015806107205262005bb55760031b620138970154986200ddfd62008597898c6201542e565b61064052600060e05260006103a0525b6107205162005bb5576103a0518a8110156200ded3576200de446200de6291600061072052620138976103205160031b0162005f0b565b91906001600160a01b03928391549060031b1c166106c051620170cc565b156200de82575b506200de786103a05162005b81565b6103a0526200de0d565b6000610720526200dea26103a051620138976103205160031b0162005f0b565b90549060031b1c166200debb60e0516106405162005bed565b526200dec960e05162005b81565b60e052386200de69565b50979294959093985095909560005b8281106200df80575050506107205162005bb55761064051516001600160401b03811162003f1a576200df2181620138976103205160031b016200611d565b60206106405101620138976103205160031b01600052602060002060005b8381106200df6257505050506200df569062005b81565b9492959091956200dc1b565b60019060206001600160a01b0385511694019381840155016200df3f565b806001600160a01b036200df996200dfc3938562005bed565b51166200dfac60e0516106405162005bed565b526200dfba60e05162005b81565b60e05262005b81565b6200dee2565b608460405162461bcd60e51b815260206004820152603060248201527f546865206c656e677468206f662061646472657373657320616e6420616d6f7560448201527f6e7473206973206e6f7420657175616c000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152603560248201527f546865206c656e677468206f662061646472657373657320616e6420746f6b6560448201527f6e436c6173736573206973206e6f7420657175616c00000000000000000000006064820152fd5b60208194929394015160268110156200409c576007036200e25457604001916200e0cc60c08451015162005ba7565b51916200e0de60a08551015162005ba7565b51935151916200e0f6845186511462001929620174fa565b60005b84518110156200e242576001600160a01b03806200e118838862005bed565b511660005262027113806020526200e13d60ff604060002054161562001929620175e6565b60026200e14b848862005bed565b516200e1c06200e15c868c62005bed565b519162008fdf8b604051966200e1728862003efe565b60018852886200e1998b60208b01946000865260408c0197885260608c01998a5262005bed565b511660005260205262008fc8604060002097511515889060ff801983541691151516179055565b519101556200e1d0828762005bed565b511690620271145491600160401b83101562003f1a576001830180620271145583101562005bb5576200e23c92620271146000527f8e71c125ecfe4aeed61c8cf4b09183dd0bf2a3230d826486f04e5f6f0de58e2c01906001600160a01b031982541617905562005b81565b6200e0f9565b5094915092506200c727915062005b81565b602081015160268110156200409c576008036200e3435760c060406200e27e920151015162005ba7565b519160005b83518110156200e334576200e32e906001600160a01b03806200e2a7838862005bed565b51166000526202711390816020526200e2d1600160ff604060002054161515146200192962017535565b806200e2de848962005bed565b5116600052816020526200e30260ff60406000205460081c161562001929620175ab565b6200e30e838862005bed565b5116600052602052604060002061010061ff001982541617905562005b81565b6200e283565b50926200c72791925062005b81565b602081015160268110156200409c576009036200e4235760c060406200e36d920151015162005ba7565b519160005b83518110156200e334576200e41d906001600160a01b03806200e396838862005bed565b51166000526202711390816020526200e3c0600160ff604060002054161515146200192962017535565b806200e3cd848962005bed565b5116600052816020526200e3f5600160ff60406000205460081c161515146200192962017570565b6200e401838862005bed565b5116600052602052604060002061ff0019815416905562005b81565b6200e372565b602081015160268110156200409c57600a036200e50c57604001906200e45f60a06200e45460c08551015162005ba7565b519351015162005ba7565b51926200e474835185511462001929620174fa565b60005b83518110156200e4fb576200e4f5906001600160a01b03806200e49b838862005bed565b511660005262027113806020526200e4c4600160ff604060002054161515146200192962017535565b6200e4d0838962005bed565b51916200e4de848962005bed565b511660005260205260026040600020015562005b81565b6200e477565b50939092506200c727915062005b81565b60208194939294015160268110156200409c57600b036200e5ed57604001926200e53b60c08551015162005ba7565b51935151916200e553855184511462001929620174fa565b60005b85518110156200e5dd576200e5d7906200054f6001600160a01b03806200e57e848b62005bed565b511660005262027113806020526200e5a7600160ff604060002054161515146200192962017535565b6200e5b3848962005bed565b51916200e5c1858c62005bed565b51166000526020526001604060002001620067d9565b6200e556565b509350916200c727915062005b81565b909192602082015160268110156200409c57600c036200e73c57606060408301510151926200e61c84620154d5565b60005b84518110156200e4fb5760e06200e63f8260606040880151015162005bed565b510151156200e6c5576200e6676200e6608260606040880151015162005bed565b5162006e4d565b62027115548060001981011162005b91576200e6896005916000190162006d7a565b5001805461ff0019166101001790556202711554906000198201821062005b91576005620094486200e6bf936000190162006d7a565b6200e61f565b6200e6e46200e6dd8260606040880151015162005bed565b5162006e29565b62027116548060001981011162005b91576200e7066005916000190162006cfe565b5001805461ff0019166101001790556202711654906000198201821062005b91576005620094486200e6bf936000190162006cfe565b929190602081015160268110156200409c57600d036200e885576040019260206200e76c60a08651015162005ba7565b5194510151916200e781855184511462015dd4565b60005b85518110156200e5dd57806200e79f6200e819928662005bed565b51156200e81f576200e7c36200e7b6828962005bed565b5162027115541162015e6c565b6200e7ef60ff60056200e7e26200e7db858c62005bed565b5162006d7a565b50015460081c1662015ec3565b6200e80760ff6005620095a66200e7db858c62005bed565b6005620095c26200e7db838a62005bed565b6200e784565b6200e83c6200e82f828962005bed565b5162027116541162015e6c565b6200e85b60ff60056200e7e26200e854858c62005bed565b5162006cfe565b6200e87360ff6005620095a66200e854858c62005bed565b6005620095c26200e854838a62005bed565b602081015160268110156200409c57600e036200e9bd576040019260206200e8b260a08651015162005ba7565b5194510151916200e8c7855184511462015dd4565b60005b85518110156200e5dd57806200e8e56200e958928662005bed565b51156200e95e576200e9096200e8fc828962005bed565b5162027115541162015fa7565b6200e92e60ff60056200e9216200e7db858c62005bed565b50015460081c1662016019565b6200e94660ff6005620097006200e7db858c62005bed565b6005620094486200e7db838a62005bed565b6200e8ca565b6200e97b6200e96e828962005bed565b5162027116541162015fa7565b6200e99360ff60056200e9216200e854858c62005bed565b6200e9ab60ff6005620097006200e854858c62005bed565b6005620094486200e854838a62005bed565b909192602082015160268110156200409c57600f036200eafe57606060408301510151926200e9ec84620154d5565b60005b84518110156200e4fb5760e06200ea0f8260606040880151015162005bed565b510151156200ea8e576200ea306200e6608260606040880151015162005bed565b62027115548060001981011162005b91576200ea526005916000190162006d7a565b5001805461ff0019166101001790556202711554906000198201821062005b91576005620095c26200ea88936000190162006d7a565b6200e9ef565b6200eaa66200e6dd8260606040880151015162005bed565b62027116548060001981011162005b91576200eac86005916000190162006cfe565b5001805461ff0019166101001790556202711654906000198201821062005b91576005620095c26200ea88936000190162006cfe565b929190602081015160268110156200409c576010036200ec475760400151926200eb3160a0608086015195015162005ba7565b51916200eb46855184511462001929620174fa565b60005b85518110156200e5dd57806200eb646200ebda928862005bed565b516200eb708162004eaa565b6200eb7c828762005bed565b51906200eb898162004eaa565b6200eba06200eb976201765c565b82151562005b4e565b6200ebab8162004eaa565b600181036200ebe057506200ebcf6200ebc36201765c565b61271083111562005b4e565b6202711e5562005b81565b6200eb49565b6200ebeb8162004eaa565b600281036200ec0057506202711f5562005b81565b6200ec0b8162004eaa565b600381036200ec205750620271205562005b81565b806200ec2e60049262004eaa565b146200ec3b575062005b81565b6202712155386200a911565b602081015160268110156200409c576011036200ef0457604001906200ec7860a06200e45460c08551015162005ba7565b51936200ec898351865114620153e2565b60005b83518110156200ed0a576200ed04906200ece46001600160a01b03806200ecb4848962005bed565b51166000526202711890816020526200ecd86040600020546200733c868d62005bed565b93906200192962017499565b6200ecf0848962005bed565b511660005260205260406000205562005b81565b6200ec8c565b509350906200ed199062017121565b906202711954936200ed31620085978451876201542e565b9060009260005b8781106200eec6575060005b85518110156200edf8576000805b8981106200eda9575b50156200ed74575b6200ed6e9062005b81565b6200ed44565b936200eda06200ed6e916001600160a01b036200ed92888a62005bed565b51166200200d828862005bed565b9490506200ed63565b6200edb48162005e99565b906001600160a01b03918291549060031b1c16906200edd4858b62005bed565b5116146200eded576200ede79062005b81565b6200ed52565b50506001386200ed5b565b5095509392506200ee098262005d44565b8051906001600160401b03821162003f1a576020906200ee298362006014565b016202711960005260005b8281106200ee885750505060005b8281106200ee58575050506200c7279062005b81565b806200054f6001600160a01b036200ee756200ee82948662005bed565b511662001f308362005e99565b6200ee42565b60019060206001600160a01b03845116930192817fe43a1016fd4ea9a9b882244b4d001d1f2d6b7fe146dc2643bb2c59db4a7bb0e10155016200ee34565b936200eef76200eefe916001600160a01b036200eee38862005e99565b90549060031b1c166200200d828862005bed565b9462005b81565b6200ed38565b602081949294015160268110156200409c576012036200f16f57604001906200ef3860a06200e45460c08551015162005ba7565b51936200ef498351865114620153e2565b60005b83518110156200ef9e576200ef98906200ece46001600160a01b03806200ef74848962005bed565b51166000526202711890816020526200ecd860406000205462008299868d62005bed565b6200ef4c565b50935091906200efae9062017121565b62027119546200efbe8162005d44565b906000926000915b8083106200f08c575050506200efdc8262005d44565b8051906001600160401b03821162003f1a576020906200effc8362006014565b016202711960005260005b8281106200f04e5750505060005b8281106200f02b575050506200c7279062005b81565b806200054f6001600160a01b036200ee756200f048948662005bed565b6200f015565b60019060206001600160a01b03845116930192817fe43a1016fd4ea9a9b882244b4d001d1f2d6b7fe146dc2643bb2c59db4a7bb0e10155016200f007565b91956000959193959760005b85518110156200f160576200f0ad8962005e99565b906001600160a01b03918291549060031b1c16906200f0cd838962005bed565b5116146200f0e6576200f0e09062005b81565b6200f098565b509750956001959391955b806200f12d575b156200f110576200f1099062005b81565b916200efc6565b936200eef76200f109916001600160a01b036200eee38862005e99565b506001600160a01b036200f1418262005e99565b90549060031b1c1660005262027118602052604060002054156200f0f8565b5097969096959391956200f0f1565b602081949394015160268110156200409c576013036200f2135760408091015101519160005b83518110156200e334576200f1ab818562005bed565b51906202711754600160401b81101562003f1a576001810180620271175581101562005bb5576200f20d9260076200054f9262027117600052027f08f37177f6a5732df494aeff73d589b534878a053b84dfe1e41c467868b7c9fd01620168c1565b6200f195565b60208194939294015160268110156200409c576014036200f75857604001906200f24260c08351015162005ba7565b51936200f25960a062007c9f818651015162005ba7565b51916200f26a8651855114620160fd565b6200f27986518451146201616f565b60005b86518110156200f375576200f292818562005bed565b516200f29f828762005bed565b519061271082101562005bb557620138996200f2c19260031b01549062007088565b906200f2ce838862005bed565b519161271083101562005bb557620138996200f2ef9360031b015562016238565b6200f2fb818562005bed565b516200f308828762005bed565b519061271082101562005bb557620138966200f332926001600160a01b036200c2b0868d62005bed565b91906200f340828862005bed565b519061271082101562005bb5576200f36f93620138966200054f936001600160a01b036200c306878f62005bed565b6200f27c565b50926200f38c9192506200899b909594956201723d565b916040516200f39b8162003fbd565b6000815260003681376000945b80518610156200c715576200f3be868262005bed565b51610360526200f3cf855162005d44565b966000946200f3df845162005d44565b6105805260009460005b88518110156200f4b3578a896200f4196001600160a01b036200f40d858462005bed565b51166103605162017072565b15806200f46a575b6200f43a575b50506200f4349062005b81565b6200f3e9565b986200f45f916200200d826001600160a01b036200c40e879e976200f4349862005bed565b9790508a896200f427565b50505061271061036051101562005bb5576001600160a01b036200f48f828b62005bed565b5116600052620138966103605160031b016020528a8960406000205415156200f421565b50909895979498969291939660005b88518110156200f5525761271061036051101562005bb5576001600160a01b03806200f4ef838c62005bed565b5116600052620138966103605160031b01602052604060002054156200f522575b506200f51c9062005b81565b6200f4c2565b819b6200f54a916200f5396200f51c948d62005bed565b51166200200d826105805162005bed565b9a906200f510565b5098509695929190939661036051612710811015806105205262005bb55760031b620138970154986200f58a62008597898c6201542e565b61022052600061056052600060a0525b6105205162005bb55760a0518a8110156200f65f576200f5d06200f5ee91600061052052620138976103605160031b0162005f0b565b91906001600160a01b03928391549060031b1c1661058051620170cc565b156200f60c575b506200f60360a05162005b81565b60a0526200f59a565b6000610520526200f62b60a051620138976103605160031b0162005f0b565b90549060031b1c166200f645610560516102205162005bed565b526200f6546105605162005b81565b61056052386200f5f5565b50979294959093985095909560005b8281106200f70c575050506105205162005bb55761022051516001600160401b03811162003f1a576200f6ad81620138976103605160031b016200611d565b60206102205101620138976103605160031b01600052602060002060005b8381106200f6ee57505050506200f6e29062005b81565b9492959091956200f3a8565b60019060206001600160a01b0385511694019381840155016200f6cb565b806001600160a01b036200f7256200f752938562005bed565b51166200f739610560516102205162005bed565b526200f7486105605162005b81565b6105605262005b81565b6200f66e565b92602084015160268110156200409c576015036200fd105760408401906200f78560c08351015162005ba7565b51906200f79c60a062007c9f818651015162005ba7565b51936200f7b1835185511462001929620174fa565b6200f7c4835186511462001929620174fa565b60005b83518110156200f824576200f7dd818662005bed565b519061271082101562005bb557620138966200f81e926001600160a01b038b511660005260031b016020526200054f6040600020546200822b838a62005bed565b6200f7c7565b509095919560005b87518110156200f95d576200f842818662005bed565b5161271081101562005bb55762013896906001600160a01b0386511660005260031b016020526200f87e60406000205462008299838962005bed565b906200f88b838862005bed565b519161271083101562005bb557620138966200f8c6936001600160a01b0389511660005260031b016020526040600020556200192962017621565b6200f8d2818662005bed565b5161271081101562005bb55762013896906001600160a01b036200f8f7848c62005bed565b511660005260031b016020526200f9196040600020546200733c838962005bed565b91906200f927828862005bed565b519061271082101562005bb5576200f95793620138966200054f936001600160a01b036200caed8f889062005bed565b6200f82c565b509194935091620089a26200f972916201723d565b926001600160a01b03604051956200f98a8762003fa1565b600187526020368189013751166200f9a28662005ba7565b526000905b86518210156200cec2576200f9bd828862005bed565b51610160526200f9ce855162005d44565b966000946200f9de885162005d44565b6101c05260009460005b88518110156200fab2578a896200fa186001600160a01b036200fa0c858462005bed565b51166101605162017072565b15806200fa69575b6200fa39575b50506200fa339062005b81565b6200f9e8565b986200fa5e916200200d826001600160a01b036200c40e879e976200fa339862005bed565b9790508a896200fa26565b50505061271061016051101562005bb5576001600160a01b036200fa8e828b62005bed565b5116600052620138966101605160031b016020528a8960406000205415156200fa20565b509098949897969291939760005b88518110156200fb565761271061016051101562005bb5576001600160a01b036200faec828b62005bed565b5116600052620138966101605160031b01602052604060002054156200fb1e575b6200fb189062005b81565b6200fac0565b996200fb4d6200fb18916001600160a01b036200fb3c8e8d62005bed565b51166200200d826101c05162005bed565b9a90506200fb0d565b50985096949392919561016051612710811015806106205262005bb55760031b620138970154966200fb8d62008597878a6201542e565b996000996000610700525b6106205162005bb557610700518a8110156200fc43576001600160a01b036200fbd76200fbe992600061062052620138976101605160031b0162005f0b565b90549060031b1c166101c051620170cc565b156200fc08575b6200fbfe6107005162005b81565b610700526200fb98565b996200fc3c906000610620528c6200200d826001600160a01b036200864061070051620138976101605160031b0162005f0b565b996200fbf0565b509a939794969299919850946000915b8383106200fcec57505050506106205162005bb5578051906001600160401b03821162003f1a576020906200fc9483620138976101605160031b016200611d565b01620138976101605160031b01600052602060002060005b8381106200fcce57505050506200fcc39062005b81565b90929591956200f9a7565b60019060206001600160a01b0385511694019381840155016200fcac565b620087236200fd09916001600160a01b0362009a30868662005bed565b916200fc53565b909192602081015160268110156200409c576016036200fdd25760c060406200fd3d920151015162005ba7565b519160005b83518110156200e334576001600160a01b036200fd60828662005bed565b511690620271225491600160401b83101562003f1a576001830180620271225583101562005bb5576200fdcc92620271226000527f1f4fe3ad533e3985b88710ce05a205152f02825e155777f3bcb8b3bbfcfb03a201906001600160a01b031982541617905562005b81565b6200fd42565b602081015160268110156200409c576017036200fe3f57608460405162461bcd60e51b815260206004820152602960248201527f5265736572766564206f70636f6465206964203233206973206e6f7420696d706044820152683632b6b2b73a32b21760b91b6064820152fd5b602081015160268110156200409c576018036200ff0f5760c060406200fe69920151015162005ba7565b5191600160ff1962027125541617620271255560005b83518110156200e334576001600160a01b036200fe9d828662005bed565b511690620271245491600160401b83101562003f1a576001830180620271245583101562005bb5576200ff0992620271246000527f18baa939e2e21be0e012ec26e9ec87e9e6faa065bd9f5835250457786300ece801906001600160a01b031982541617905562005b81565b6200fe7f565b60208194929394015160268110156200409c576019036200ff37575b506200c7279062005b81565b602081015160268110156200409c57601a03620100c85760a060406200ff61920151015162005ba7565b51906200ff726003835114620153e2565b6200ff7d8262005ba7565b516200ff8d6200a8a88462005bcb565b519262010084576200c727926001036201007d576200ffb56201001f91620271205462007088565b6202712055604051906200ffc98262003f69565b603282527f6469766964656e6461626c652062616c616e6365206f766572666c6f7720776860208301527f656e2070726f63657373696e6720636173680000000000000000000000000000604083015262005b4e565b6201007662010032620271215462007075565b620271215560405190620100468262003fa1565b601a82527f6469766964656e647320636f756e746572206f766572666c6f77000000000000602083015262005b4e565b906200ff2b565b5062010076565b606460405162461bcd60e51b815260206004820152601460248201527f496e76616c6964207061796d656e7420747970650000000000000000000000006044820152fd5b602081015160268110156200409c57601b03620106f0575091906202711e54620100f56200a9906201733b565b62027121546202711f541115620101166201010f620173c2565b8262005b4e565b62027120549062010128838362006fe1565b50506201013462017423565b506000805b61271082106201063c575b505090620101746201017a93926201016a6201015f6201733b565b612710861062005b4e565b62001929620173c2565b62006fe1565b90506201018662017423565b5060009060005b612710811062010564575b5090612710620101a9920462007159565b9050620101ba6202712a5462005d44565b906000946000905b61271082101562010557578160031b9460ff6201389a87015416156201031e5760009662013895870154156201030d57600098975b62005bb55762013897870154891015620102f3576201021c8962013897890162005f0b565b90549060031b1c6001600160a01b03169788600052620138968801602052604098868a60002054906201024f9162006fe1565b9a906201025b62017423565b620102669162005b4e565b60009a620138958b01546201027b9162006fe1565b91906201028762017423565b620102929162005b4e565b826000526202711a60205260002090815490620102af9162007088565b909155620102bc62017423565b620102c79162005b4e565b620102d3828962005bed565b52620102df9062005b81565b98620102eb9062005b81565b9897620101f7565b92909550620103059196975062005b81565b9094620101c2565b929095506201030591965062005b81565b95969392509350505b620103328262005d44565b9160009160005b828110620104c2575050506202711b54916201035a6200859784846201542e565b926000906000905b8082106201049d57505060005b8381106201040857505050508051906001600160401b03821162003f1a576020906201039b836200606c565b016202711b60005260005b828110620103ca575050506200c72790600062027120556000620271215562010076565b60019060206001600160a01b03845116930192817fc59860dc09a642b584039e685e1d1ef32a7f12bf29c382ee17f417fe2f31f399015501620103a6565b6000805b83811062010455575b50156201042e575b620104289062005b81565b6201036f565b906201044c62010428916001600160a01b0362009a30858762005bed565b9190506201041d565b6001600160a01b03806201046a858862005bed565b51169062010479838a62005bed565b51161462010492576201048c9062005b81565b6201040c565b505060013862010415565b909162008723620104bb916001600160a01b0362009dc28662005ed2565b9062010362565b6000805b8581106201050f575b5015620104e8575b620104e29062005b81565b62010339565b9262010506620104e2916001600160a01b0362009a30878662005bed565b939050620104d7565b6001600160a01b038062010524858762005bed565b51169062010533838a62005bed565b5116146201054c57620105469062005b81565b620104c6565b5050600138620104cf565b9394959291505062010327565b90918160039695961b60ff6201389a8201541615620106305762013895810154620138978201546000928391825b818410620105ce575050505062007b33620105c593620105bd6200054f9796946200713f9462006fe1565b929062006e71565b9493946201018d565b94929462005bb5576201062985620106216001600160a01b03620105fc6200054f9962013897880162005f0b565b90549060031b1c16956000966000526201389686016020526040600020549062007088565b979062007003565b9262010592565b50919094939462010198565b8160039897981b60ff6201389a8201541615620106e6576201389581015490600062013897820154916000926000925b818410620106a9575050505062007b336201069f936200adbf846201017462006f2d6200adcb966200054f9a9862006fe1565b9096959662010139565b93929362005bb557620106df84620106d76001600160a01b03620105fc6200054f9862013897880162005f0b565b969062007003565b926201066c565b5096959662010144565b602081015160268110156200409c57601c036201075d57608460405162461bcd60e51b815260206004820152602960248201527f5265736572766564206f70636f6465206964203238206973206e6f7420696d706044820152683632b6b2b73a32b21760b91b6064820152fd5b602081015160268110156200409c57601d0362010781575b506200c7279062010076565b602081015160268110156200409c57601e146201077557602081015160268110156200409c57601f0362010825576040620107bf9101515162005ba7565b51906202712354600160401b81101562003f1a576001810180620271235581101562005bb5576200c727926201081e91620271236000527f4ad859a97f543436e70c22b09d31fb4c7b9e987d7a008c98817c9b50a97b122401620067d9565b9062010775565b602081015160268110156200409c5760200362010849575b506200c727906201081e565b602081015160268110156200409c576021146201083d57602081015160268110156200409c57602203620108f0575060ff19620271255416620271255562027124546000620271245580620108a7575b506200c727905b906201083d565b620271246000527f18baa939e2e21be0e012ec26e9ec87e9e6faa065bd9f5835250457786300ece8908101905b818110620108e3575062010899565b60008155600101620108d4565b602081015160268110156200409c5760230362010914575b506200c72790620108a0565b602081015160268110156200409c576024146201090857602081015160268110156200409c576025146201090857929091602084015160268110156200409c5760150362010f0f5760408401906201097160c08351015162005ba7565b51906201098860a062007c9f818651015162005ba7565b51936201099d835185511462001929620174fa565b620109b0835186511462001929620174fa565b60005b835181101562010a1057620109c9818662005bed565b519061271082101562005bb5576201389662010a0a926001600160a01b038b511660005260031b016020526200054f6040600020546200822b838a62005bed565b620109b3565b509095919560005b875181101562010b495762010a2e818662005bed565b5161271081101562005bb55762013896906001600160a01b0386511660005260031b0160205262010a6a60406000205462008299838962005bed565b9062010a77838862005bed565b519161271083101562005bb5576201389662010ab2936001600160a01b0389511660005260031b016020526040600020556200192962017621565b62010abe818662005bed565b5161271081101562005bb55762013896906001600160a01b0362010ae3848c62005bed565b511660005260031b0160205262010b056040600020546200733c838962005bed565b919062010b13828862005bed565b519061271082101562005bb55762010b4393620138966200054f936001600160a01b036200caed8f889062005bed565b62010a18565b509194935091620089a262010b5e916201723d565b926001600160a01b036040519562010b768762003fa1565b6001875260203681890137511662010b8e8662005ba7565b526000905b865182101562010efc5762010ba9828862005bed565b516106605262010bba855162005d44565b9660009462010bca885162005d44565b6106e05260009460005b885181101562010c9e578a8962010c046001600160a01b0362010bf8858462005bed565b51166106605162017072565b158062010c55575b62010c25575b505062010c1f9062005b81565b62010bd4565b9862010c4a916200200d826001600160a01b036200c40e879e9762010c1f9862005bed565b9790508a8962010c12565b50505061271061066051101562005bb5576001600160a01b0362010c7a828b62005bed565b5116600052620138966106605160031b016020528a89604060002054151562010c0c565b509098949897969291939760005b885181101562010d425761271061066051101562005bb5576001600160a01b0362010cd8828b62005bed565b5116600052620138966106605160031b016020526040600020541562010d0a575b62010d049062005b81565b62010cac565b9962010d3962010d04916001600160a01b0362010d288e8d62005bed565b51166200200d826106e05162005bed565b9a905062010cf9565b50985096949392919561066051612710811015806104005262005bb55760031b6201389701549662010d7962008597878a6201542e565b9960009960006105c0525b6104005162005bb5576105c0518a81101562010e2f576001600160a01b0362010dc362010dd592600061040052620138976106605160031b0162005f0b565b90549060031b1c166106e051620170cc565b1562010df4575b62010dea6105c05162005b81565b6105c05262010d84565b9962010e28906000610400528c6200200d826001600160a01b03620086406105c051620138976106605160031b0162005f0b565b9962010ddc565b509a939794969299919850946000915b83831062010ed857505050506104005162005bb5578051906001600160401b03821162003f1a5760209062010e8083620138976106605160031b016200611d565b01620138976106605160031b01600052602060002060005b83811062010eba575050505062010eaf9062005b81565b909295919562010b93565b60019060206001600160a01b03855116940193818401550162010e98565b6200872362010ef5916001600160a01b0362009a30868662005bed565b9162010e3f565b9295505092506200c72791509062010908565b606460405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206f7065726174696f6e2074797065000000000000000000006044820152fd5b5091905062010f62816201486e565b9060068110156200409c576002810362010fce5760405162461bcd60e51b815260206004820152602a60248201527f5468652070726f6772616d2069732064656e6965642062792074686520706c7560448201526967696e2073797374656d60b01b6064820152608490fd5b600381036201109a5750303b1562003ee4579060405180927f74579b180000000000000000000000000000000000000000000000000000000082526044820160406004840152815180915260206064840192019060005b81811062011080575050506201104b8291600094600319848303016024850152620055c7565b038183305af180156201107457620110605750565b6001600160401b03811162003f1a57604052565b6040513d6000823e3d90fd5b825184528694506020938401939092019160010162011025565b6005915014620110a75750565b906000905b602083015180518310156200b5b45782620110c79162005bed565b51602081015160268110156200409c57156200b57057602081015160268110156200409c576001036201130657604001906201110860c08351015162005ba7565b51936201111f60a062007c9f818651015162005ba7565b5191620111308651855114620160fd565b6201113f86518451146201616f565b60005b8651811015620112945762011158818662005bed565b5161271081101562005bb557600160ff60076201117e9360031b015416151514620161e1565b6201118a818562005bed565b5162011197828762005bed565b519061271082101562005bb5576006620111b79260031b01549062007088565b90620111c4838862005bed565b519161271083101562005bb5576006620111e39360031b015562016238565b620111ef818562005bed565b51620111fc828762005bed565b519061271082101562005bb55760036201123c926001600160a01b0362011224868d62005bed565b5116600052811b016020526040600020549062007088565b91906201124a828862005bed565b519061271082101562005bb5576201128e9360036200054f936001600160a01b0362011277878f62005bed565b5116600052811b01602052604060002055620162aa565b62011142565b50949150916200838a620112a8916201723d565b9360405192620112b88462003fbd565b60008452600036813760005b8351811015620112e957806200054f62007e66620112e3938762005bed565b620112c4565b5094509260209250620112fd915062005b81565b919050620110ac565b909192602082015160268110156200409c576002036201149d57604080920190815193845191620113406200c76a60a08098015162005ba7565b51948351875103620080fd578351855103620080945783518651036200802b575060005b865181101562011487576201137a818862005bed565b5161271081101562005bb55760ff60076201139c9260031b015416156201631b565b620113a8818862005bed565b5161271081101562005bb55760031b600701805460ff19166001179055620113d1818562005bed565b51620113de828962005bed565b519061271082101562005bb5576005620113fc9260031b01620067d9565b62011408818662005bed565b5162011415828962005bed565b5161271081101562005bb55760031b6001015562011434818762005bed565b5162011441828962005bed565b5161271081101562005bb55760031b6002015562011460818862005bed565b519061271082101562005bb55760006006620114819360031b015562005b81565b62011364565b50959150935060209250620112fd915062005b81565b929190602081015160268110156200409c57600303620114ca57602091926200054f620112fd9262016367565b602081015160268110156200409c576004036201176f57620114f460c06040830151015162005ba7565b51936201150960c06040840151015162005bcb565b51906201153060a06040620115248282880151015162005ba7565b51950151015162005bcb565b519362011545875184511462001929620174fa565b62011558875185511462001929620174fa565b6201156b875186511462001929620174fa565b60005b8751811015620115d35762011584818662005bed565b519061271082101562005bb5576003620115cd926001600160a01b03620115ac848d62005bed565b5116600052811b016020526200054f6040600020546200822b838a62005bed565b6201156e565b509095919593929360005b83518110156201172c57620115f4818762005bed565b5161271081101562005bb5576003906001600160a01b0362011617848862005bed565b5116600052811b016020526201163860406000205462008299838862005bed565b9062011645838962005bed565b519161271083101562005bb557600362011688936001600160a01b036201166d878b62005bed565b5116600052811b016020526040600020556200192962017621565b62011694818762005bed565b5161271081101562005bb5576003906001600160a01b03620116b7848c62005bed565b5116600052811b01602052620116d86040600020546200733c838862005bed565b919050620116e7818862005bed565b519161271083101562005bb557600362011726936001600160a01b036201170f858e62005bed565b5116600052811b0160205260406000205562005b81565b620115de565b50936201174691929693506200899b620089a2916201723d565b9260005b8351811015620112e957806200054f62007e6662011769938762005bed565b6201174a565b92602084015160268110156200409c576005036201193e576201179a60a06040860151015162005ba7565b5190620117af60a06040870151015162005bcb565b519282518451036200da155760005b83518110156201181857620117d4818562005bed565b519061271082101562005bb557600362011812926001600160a01b038a5116600052811b016020526200054f6040600020546200822b838962005bed565b620117be565b509060005b8351811015620118bd5762011833818562005bed565b5161271081101562005bb5576003906001600160a01b03895116600052811b016020526201186c60406000205462008299838862005bed565b91906201187a828762005bed565b519061271082101562005bb557620118b79360036200054f936001600160a01b038d5116600052811b016020526040600020556200192962017621565b6201181d565b5094925090620118cd906201723d565b906001600160a01b0360405193620118e58562003fa1565b60018552602036818701375116620118fd8462005ba7565b52604051946201190d8662003fbd565b60008652600036813760005b8351811015620112e957806200054f62007e6662011938938762005bed565b62011919565b92602081015160268110156200409c5760060362011af4576040016201196960c08251015162005ba7565b51936201198060a062008a0b818551015162005ba7565b519285518351036200e0335785518451036200dfc95760005b8651811015620119fe57620119af818562005bed565b519061271082101562005bb5576003620119f8926001600160a01b03620119d7848c62005bed565b5116600052811b016020526200054f6040600020546200822b838962005bed565b62011999565b509060005b865181101562011a9e5762011a19818562005bed565b5161271081101562005bb5576003906001600160a01b0362011a3c848b62005bed565b5116600052811b0160205262011a5d60406000205462008299838862005bed565b919062011a6b828762005bed565b519061271082101562005bb55762011a989360036200054f936001600160a01b036201166d878f62005bed565b62011a03565b50949162011ab39193506200838a906201723d565b916040519462011ac38662003fbd565b60008652600036813760005b8351811015620112e957806200054f62007e6662011aee938762005bed565b62011acf565b602081015160268110156200409c5760070362011c07576040019262011b1f60c08551015162005ba7565b519162011b3160a08651015162005ba7565b519451519162011b49845187511462001929620174fa565b60005b8451811015620112e95762011c01906200054f6001600160a01b038062011b74848a62005bed565b51166000528660028b62011bf162011bb48762011bac8162013880978860205262008f6360ff604060002054161562001929620175e6565b519362005bed565b519162008fdf8d6040519662011bca8862003efe565b60018852886200e1998c60208b01946000865260408c0197885260608c01998a5262005bed565b5191015562008ffa838962005bed565b62011b4c565b602081949394015160268110156200409c5760080362011c9f5760c0604062011c34920151015162005ba7565b519160005b835181101562011c8d5762011c87906001600160a01b038062011c5d838862005bed565b51166000526201388090816020526200e2d1600160ff604060002054161515146200192962017535565b62011c39565b50926020919250620112fd9062005b81565b602081015160268110156200409c5760090362011d225760c0604062011cc9920151015162005ba7565b519160005b835181101562011c8d5762011d1c906001600160a01b038062011cf2838862005bed565b51166000526201388090816020526200e3c0600160ff604060002054161515146200192962017535565b62011cce565b602081015160268110156200409c57600a0362011dd1576040019062011d5360a06200e45460c08551015162005ba7565b519262011d68835185511462001929620174fa565b60005b835181101562011dbe5762011db8906001600160a01b038062011d8f838862005bed565b511660005262013880806020526200e4c4600160ff604060002054161515146200192962017535565b62011d6b565b5093620112fd9193506020925062005b81565b60208194939294015160268110156200409c57600b0362011e85576040019262011e0060c08551015162005ba7565b519351519162011e18855184511462001929620174fa565b60005b855181101562011e725762011e6c906200054f6001600160a01b038062011e43848b62005bed565b511660005262013880806020526200e5a7600160ff604060002054161515146200192962017535565b62011e1b565b5093509160209150620112fd9062005b81565b909192602082015160268110156200409c57600c0362011fc6576060604083015101519262011eb484620154d5565b60005b845181101562011dbe5760e062011ed78260606040880151015162005bed565b5101511562011f565762011ef8620093f38260606040880151015162005bed565b62013882548060001981011162005b915762011f1a6005916000190162006d3c565b5001805461ff0019166101001790556201388254906000198201821062005b915760056200944862011f50936000190162006d3c565b62011eb7565b62011f6e620094728260606040880151015162005bed565b62013882548060001981011162005b915762011f906005916000190162006cc0565b5001805461ff0019166101001790556201388254906000198201821062005b915760056200944862011f50936000190162006cc0565b929190602081015160268110156200409c57600d03620120da5760400192602062011ff660a08651015162005ba7565b5194510151916201200b855184511462015dd4565b60005b855181101562011e7257806201202962012082928662005bed565b51156201208857620120406200956b828962005bed565b6201205860ff60056200e7e26200958d858c62005bed565b6201207060ff6005620095a66200958d858c62005bed565b6005620095c26200958d838a62005bed565b6201200e565b62012098620095fa828962005bed565b620120b060ff60056200e7e26200961c858c62005bed565b620120c860ff6005620095a66200961c858c62005bed565b6005620095c26200961c838a62005bed565b602081949294015160268110156200409c57600e03620121a1576040019060206201210a60a08451015162005ba7565b5192510151936201211f835186511462015dd4565b60005b835181101562011e7257806201213d62012149928862005bed565b516201214f5762005b81565b62012122565b6201215f620096b8828762005bed565b6201217760ff60056200e9216200958d858a62005bed565b6201218f60ff6005620097006200958d858a62005bed565b6005620094486200958d838862005bed565b90602082949394015160268110156200409c57600f03620122e35760606040830151015192620121d184620154d5565b60005b845181101562011dbe5760e0620121f48260606040880151015162005bed565b51015115620122735762012215620093f38260606040880151015162005bed565b62013882548060001981011162005b9157620122376005916000190162006d3c565b5001805461ff0019166101001790556201388254906000198201821062005b91576005620095c26201226d936000190162006d3c565b620121d4565b6201228b620094728260606040880151015162005bed565b62013882548060001981011162005b9157620122ad6005916000190162006cc0565b5001805461ff0019166101001790556201388254906000198201821062005b91576005620095c26201226d936000190162006cc0565b90602081949394015160268110156200409c57601003620123545760400151906201231760a0608084015193015162005ba7565b51936201232c835186511462001929620174fa565b60005b835181101562011e7257806200054f620098ad6201234e938762005bed565b6201232f565b602081949294015160268110156200409c57601103620125da57604001906201238860a06200e45460c08551015162005ba7565b5193620123998351865114620153e2565b60005b835181101562012414576201240e906200054f6001600160a01b0380620123c4848962005bed565b51166000526201388580602052620123e76040600020546200733c868d62005bed565b919092620123f6868b62005bed565b51166000526020526040600020556200192962017499565b6201239c565b50935090620124239062017121565b906201388654936201243b620085978451876201542e565b9060009260005b878110620125b7575060005b8551811015620124f4576000805b898110620124a5575b50156201247e575b620124789062005b81565b6201244e565b936201249c62012478916001600160a01b036200ed92888a62005bed565b9490506201246d565b620124b08162005db5565b906001600160a01b03918291549060031b1c1690620124d0858b62005bed565b511614620124e957620124e39062005b81565b6201245c565b505060013862012465565b509550939250620125058262005d44565b8051906001600160401b03821162003f1a57602090620125258362005f95565b016201388660005260005b828110620125795750505060005b8281106201255657505050620112fd60209162005b81565b806200054f6001600160a01b0362001f2362012573948662005bed565b6201253e565b60019060206001600160a01b03845116930192817f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa401550162012530565b936200eef7620125d4916001600160a01b036200eee38862005db5565b62012442565b602081949294015160268110156200409c576012036201284657604001906201260e60a06200e45460c08551015162005ba7565b51936201261f8351865114620153e2565b60005b835181101562012673576201266d906200054f6001600160a01b03806201264a848962005bed565b51166000526201388580602052620123e760406000205462008299868d62005bed565b62012622565b5093509190620126839062017121565b6201388654620126938162005d44565b906000926000915b8083106201276357505050620126b18262005d44565b8051906001600160401b03821162003f1a57602090620126d18362005f95565b016201388660005260005b828110620127255750505060005b8281106201270257505050620112fd60209162005b81565b806200054f6001600160a01b0362001f236201271f948662005bed565b620126ea565b60019060206001600160a01b03845116930192817f4b58a51c867b7b693aaefb0acd6b55f4e7286e8436d34ab3cc63a1f2bfa35aa4015501620126dc565b91956000959193959760005b85518110156201283757620127848962005db5565b906001600160a01b03918291549060031b1c1690620127a4838962005bed565b511614620127bd57620127b79062005b81565b6201276f565b509750956001959391955b8062012804575b15620127e757620127e09062005b81565b916201269b565b936200eef7620127e0916001600160a01b036200eee38862005db5565b506001600160a01b03620128188262005db5565b90549060031b1c166000526201388560205260406000205415620127cf565b509796909695939195620127c8565b602081015160268110156200409c576013036201289f5760408091015101519260005b84518110156201288e57806200054f62009e6462012888938862005bed565b62012869565b50925090620112fd60209162005b81565b602081015160268110156200409c5760140362012a4a5760400190620128ca60c08351015162005ba7565b5193620128e160a062007c9f818651015162005ba7565b5191620128f28651855114620160fd565b6201290186518451146201616f565b60005b8651811015620129f5576201291a818562005bed565b5162012927828762005bed565b519061271082101562005bb5576006620129479260031b01549062007088565b9062012954838862005bed565b519161271083101562005bb5576006620129739360031b015562016238565b6201297f818562005bed565b516201298c828762005bed565b519061271082101562005bb5576003620129b4926001600160a01b0362011224868d62005bed565b9190620129c2828862005bed565b519061271082101562005bb557620129ef9360036200054f936001600160a01b0362011277878f62005bed565b62012904565b50949150916200838a62012a09916201723d565b936040519262012a198462003fbd565b60008452600036813760005b8351811015620112e957806200054f62007e6662012a44938762005bed565b62012a25565b9290602084015160268110156200409c5760150362012ffa57604084019062012a7860c08351015162005ba7565b519062012a8f60a062007c9f818651015162005ba7565b519362012aa4835185511462001929620174fa565b62012ab7835186511462001929620174fa565b60005b835181101562012b145762012ad0818662005bed565b519061271082101562005bb557600362012b0e926001600160a01b038b5116600052811b016020526200054f6040600020546200822b838a62005bed565b62012aba565b509095919560005b875181101562012c425762012b32818662005bed565b5161271081101562005bb5576003906001600160a01b03865116600052811b0160205262012b6b60406000205462008299838962005bed565b9062012b78838862005bed565b519161271083101562005bb557600362012bb0936001600160a01b03895116600052811b016020526040600020556200192962017621565b62012bbc818662005bed565b5161271081101562005bb5576003906001600160a01b0362012bdf848c62005bed565b5116600052811b0160205262012c006040600020546200733c838962005bed565b919062012c0e828862005bed565b519061271082101562005bb55762012c3c9360036200054f936001600160a01b03620083528f889062005bed565b62012b1c565b509194935091620089a262012c57916201723d565b926001600160a01b036040519562012c6f8762003fa1565b6001875260203681890137511662012c878662005ba7565b526000905b865182101562012fe55762012ca2828862005bed565b516101005262012cb3855162005d44565b9660009462012cc3885162005d44565b6101805260009460005b885181101562012d94578a8962012cfd6001600160a01b0362012cf1858462005bed565b51166101005162017008565b158062012d4e575b62012d1e575b505062012d189062005b81565b62012ccd565b9862012d43916200200d826001600160a01b036200c40e879e9762012d189862005bed565b9790508a8962012d0b565b50505061271061010051101562005bb5576001600160a01b0362012d73828b62005bed565b5116600052600361010051811b016020528a89604060002054151562012d05565b509098949897969291939760005b885181101562012e355761271061010051101562005bb5576001600160a01b0362012dce828b62005bed565b5116600052600361010051811b016020526040600020541562012dfd575b62012df79062005b81565b62012da2565b9962012e2c62012df7916001600160a01b0362012e1b8e8d62005bed565b51166200200d826101805162005bed565b9a905062012dec565b50985096949392919561010051612710811015806105e05262005bb55760031b600401549662012e6a62008597878a6201542e565b996000996000610540525b6105e05162005bb557610540518a81101562012f1c576001600160a01b0362012eb262012ec49260006105e05260046101005160031b0162005f0b565b90549060031b1c1661018051620170cc565b1562012ee3575b62012ed96105405162005b81565b6105405262012e75565b9962012f159060006105e0528c6200200d826001600160a01b03620086406105405160046101005160031b0162005f0b565b9962012ecb565b509a939794969299919850946000915b83831062012fc157505050506105e05162005bb5578051906001600160401b03821162003f1a5760209062012f6b8360046101005160031b016200611d565b0160046101005160031b01600052602060002060005b83811062012fa3575050505062012f989062005b81565b909295919562012c8c565b60019060206001600160a01b03855116940193818401550162012f81565b6200872362012fde916001600160a01b0362009a30868662005bed565b9162012f2c565b91945050620112fd9194506020925062005b81565b9092602081015160268110156200409c57601603620130585760c0604062013026920151015162005ba7565b519260005b84518110156201288e57806200054f6001600160a01b036200a5dc62013052948962005bed565b6201302b565b602081015160268110156200409c57601703620130c557608460405162461bcd60e51b815260206004820152602960248201527f5265736572766564206f70636f6465206964203233206973206e6f7420696d706044820152683632b6b2b73a32b21760b91b6064820152fd5b602081015160268110156200409c57601803620131325760c06040620130ef920151015162005ba7565b5192600160ff1962013892541617620138925560005b84518110156201288e57806200054f6001600160a01b036200a6b96201312c948962005bed565b62013105565b602081939293015160268110156200409c57601903620132bc5760008091604082910160a08082510151805162013283575b505051906001600160a01b03620131886200733560c060e086015195015162005ba7565b511690602083519301915af13d156201327a573d90620131a882620041b8565b91620131b8604051938462003fd9565b82523d6000602084013e5b15620131d75750620112fd60209162005b81565b62005b7d9062013259604051917f5468652063616c6c20746f2074686520636f6e7472616374206973206e6f742060208401527f7375636365737366756c2e2052657475726e20646174613a2000000000000000604084015282815162013248816059946020868601910162004106565b810103603981018452018262003fd9565b60405191829162461bcd60e51b83526020600484015260248301906200412b565b606090620131c3565b6201328e9062005ba7565b51516201329d575b8062013164565b8192506200733590620132b39251015162005ba7565b51903862013296565b602081015160268110156200409c57601a03620133765760a06040620132e6920151015162005ba7565b51620132f66003825114620153e2565b620133018162005ba7565b51916201331a620133128362005bcb565b519262005bdc565b51916201008457602092620112fd926001036200a911576201334562013354916201388d5462007088565b6201388d556200192962017423565b6200054f620133676201388e5462007075565b6201388e55620019296201745e565b602081015160268110156200409c57601b03620137ca57509190620133a76201388b54620070bf6200a9906201733b565b5050620133b362017423565b506000805b61271081106201377e575b5050620133cf6200709a565b620133de6202712a5462005d44565b906000946000905b61271082101562013771578160031b9460ff6007870154161562013536576000966002870154156201352557600098975b62005bb55760048701548910156201350b5762013438896004890162005f0b565b90549060031b1c6001600160a01b0316978860005260038801602052604098868a6000205490620134699162006fe1565b9a906201347562017423565b620134809162005b4e565b60009a60028b0154620134939162006fe1565b91906201349f62017423565b620134aa9162005b4e565b826000526201388760205260002090815490620134c79162007088565b909155620134d462017423565b620134df9162005b4e565b620134eb828962005bed565b52620134f79062005b81565b98620135039062005b81565b989762013417565b929095506201351d9196975062005b81565b9094620133e6565b929095506201351d91965062005b81565b95969392509350505b6201354a8262005d44565b9160009160005b828110620136dc57505050620138885491620135726200859784846201542e565b926000906000905b808210620136b757505060005b8381106201362257505050508051906001600160401b03821162003f1a57602090620135b38362005f3d565b016201388860005260005b828110620135e457505050620112fd60209160006201388d5560006201388e5562005b81565b60019060206001600160a01b03845116930192817ff9ab3ee50aab7a7cf5b7d30204dd21b5da7cc33690a7aec17b3653a822a635df015501620135be565b6000805b8381106201366f575b501562013648575b620136429062005b81565b62013587565b906201366662013642916001600160a01b0362009a30858762005bed565b91905062013637565b6001600160a01b038062013684858862005bed565b51169062013693838a62005bed565b511614620136ac57620136a69062005b81565b62013626565b50506001386201362f565b909162008723620136d5916001600160a01b0362009dc28662005d7c565b906201357a565b6000805b85811062013729575b501562013702575b620136fc9062005b81565b62013551565b9262013720620136fc916001600160a01b0362009a30878662005bed565b939050620136f1565b6001600160a01b03806201373e858762005bed565b5116906201374d838a62005bed565b5116146201376657620137609062005b81565b620136e0565b5050600138620136e9565b939495929150506201353f565b8060039594951b9060ff60078301541615620137c0576200adcb62007b336200054f946200adbf620137b79560026200adb58762006ee3565b939293620133b8565b50939293620133c3565b602081015160268110156200409c57601c036201383757608460405162461bcd60e51b815260206004820152602960248201527f5265736572766564206f70636f6465206964203238206973206e6f7420696d706044820152683632b6b2b73a32b21760b91b6064820152fd5b602081015160268110156200409c57601d036201385d575b50620112fd60209162005b81565b602081015160268110156200409c57601e146201384f57602081015160268110156200409c57601f03620138ae57602091620138a66200aeb86040620112fd9401515162005ba7565b91506201384f565b602081015160268110156200409c57602003620138d4575b50620112fd602091620138a6565b602081015160268110156200409c57602114620138c657602081015160268110156200409c576022036201392a5750620112fd60209160ff19620138925416620138925562013922620060c4565b9150620138c6565b602081015160268110156200409c5760230362013950575b50620112fd60209162013922565b602081015160268110156200409c576024146201394257602081015160268110156200409c576025146201394257602081015160268110156200409c5760150362010f0f57602091620139a7620112fd9262016367565b915062013942565b60019060206001600160a01b03845116930192817fc59860dc09a642b584039e685e1d1ef32a7f12bf29c382ee17f417fe2f31f3990155016200c067565b60019060206001600160a01b03845116930192817fe43a1016fd4ea9a9b882244b4d001d1f2d6b7fe146dc2643bb2c59db4a7bb0e10155016200bf1b565b60016001600160a01b03819216920192835492817f18baa939e2e21be0e012ec26e9ec87e9e6faa065bd9f5835250457786300ece801550191906200be6b565b62013a9d90827f18baa939e2e21be0e012ec26e9ec87e9e6faa065bd9f5835250457786300ece8918201910162005f24565b386200be3d565b6001808262013ab582948662013fec565b019201920191906200bdfd565b620271236000527f4ad859a97f543436e70c22b09d31fb4c7b9e987d7a008c98817c9b50a97b1224908282015b818301811062013b015750506200bdaf565b8062013b0f60019262006448565b0162013aef565b60016001600160a01b03819216920192835492817f1f4fe3ad533e3985b88710ce05a205152f02825e155777f3bcb8b3bbfcfb03a201550191906200bd7e565b62013b8890827f1f4fe3ad533e3985b88710ce05a205152f02825e155777f3bcb8b3bbfcfb03a2918201910162005f24565b386200bd55565b60019060206001600160a01b03845116930192817f7f4320370b90cfd882bd4442421f8b4dbea0ca3aefc8d29d4787126914d53c5a0155016200bc19565b62013bff90847f7f4320370b90cfd882bd4442421f8b4dbea0ca3aefc8d29d4787126914d53c5a918201910162005f24565b386200bc0d565b60019060206001600160a01b03845116930192817f8e71c125ecfe4aeed61c8cf4b09183dd0bf2a3230d826486f04e5f6f0de58e2c0155016200ba04565b62013c7690847f8e71c125ecfe4aeed61c8cf4b09183dd0bf2a3230d826486f04e5f6f0de58e2c918201910162005f24565b386200b9f8565b8062013c9f9160031b600160ff60078301541615151462013ca5575062005b81565b6200b947565b62013cb96004820162013897830162014185565b6201389a8101600160ff1982541617905580548162013893015560018101546201389482015560028101546201389582015562013cff6005820162013898830162013fec565b620138996006820154910155386200a911565b600660208262013d266001945186620068ac565b019201920191906200b735565b600681810204810362005b9157600683810204830362005b9157620271156000527f0f9b10e190177c3c56fc6ce7689c8130c567df57aa02c08e7a090a59992adf928360060281015b826006028201811062013d915750506200b705565b806000600692556000600182015562013dad60028201620065b3565b6000600382015562013dc26004820162006448565b600060058201550162013d7c565b600660208262013de46001945186620068ac565b019201920191906200b689565b8060060290600682040362005b91578260060260068104840362005b91576000906202711682527f2a7aa4e7f2fefac7a07702701afb9c202f6f79fb2762c8e42b37a264307667fa92830192015b82811062013e4f5750506200b659565b80826006925582600182015562013e6960028201620065b3565b82600382015562013e7d6004820162006448565b8260058201550162013e3f565b608460405162461bcd60e51b815260206004820152604060248201527f546865206265666f7265206f7065726174696f6e20706c7567696e207379737460448201527f656d2073686f756c64206e6f742072657475726e20766f7465206e65656465646064820152fd5b60a460405162461bcd60e51b815260206004820152604760248201527f546865206265666f7265206f7065726174696f6e20706c7567696e207379737460448201527f656d2073686f756c64206e6f742072657475726e206120766f74696e6720727560648201527f6c65206c697374000000000000000000000000000000000000000000000000006084820152fd5b81811462013fe8578154916001600160401b03831162003f1a5762013faa83836200611d565b60005260206000209060005260206000208154916000925b84841062013fd1575050505050565b600180919201938454928185015501929062013fc2565b5050565b9080821462013fe85762014001815462005221565b906001600160401b03821162003f1a5781906201402b8262014024865462005221565b866200678f565b600090601f83116001146201406457600092620140585750508160011b916000199060031b1c1916179055565b01549050388062006822565b81526020808220858352818320935090601f1985169083905b828210620140b95750509084600195949392106201409f57505050811b019055565b015460001960f88460031b161c191690553880806200686f565b84958192958501548155600180910196019401906201407d565b81811462013fe857815491620140ea8383620064d6565b6000526020600020906000526020600020906000905b8382106201410e5750505050565b806201411d6001928562013fec565b92810192918101910162014100565b81811462013fe85781549162014143838362006564565b6000526020600020906000526020600020906000905b838210620141675750505050565b80620141766001928562013f84565b92810192918101910162014159565b81811462013fe8578154916001600160401b03831162003f1a57620141ab83836200611d565b60005260206000209060005260206000208154916000925b848410620141d2575050505050565b60016001600160a01b0381921692019384549281850155019290620141c3565b81811462013fe85781549162014209838362006564565b6000526020600020906000526020600020906000905b8382106201422d5750505050565b806201423c6001928562014185565b9281019291810191016201421f565b81811462013fe8578154916201426283836200665a565b6000526020600020906000526020600020906000905b838210620142865750505050565b806001918403620142a3575b600780910193019101909162014278565b80548455620142e28280860190830160ff90620142c4828254168462006732565b620142d682825460081c16846200674c565b5460101c16906200676d565b620142f4600280830190860162013f84565b60038085019082018082036201430d575b505062014292565b6201431891620140d3565b6201432a60048083019086016201412c565b6201433c6005808301908601620141f2565b6201434e600680830190860162013fec565b388062014305565b919062006def5780820362014369575050565b60ff600580620053a29462014382848654168262006719565b600185015460018201556201439e60028601600283016201424b565b60038501546003820155620143ba600486016004830162013fec565b019201620143d782825416849060ff801983541691151516179055565b8054835461ff001916600891821c8416151590911b61ff00161783555460101c1662ff0000825491151560101b169062ff00001916179055565b9080821462013fe857908154906000915b60648310620144315750505050565b600180919401928354948184015501919262014422565b9062013882546020600093019081515190620144648262003ffb565b9162014474604051938462003fd9565b80835262014485601f199162003ffb565b013660208401376201449a8351518262006fe1565b90156201480457620144ac9062005d44565b90859284515115620147fb57620144c38262005d44565b965b855151811015620146445760008080805b8681106201455b57509050620144f881620144f2858762005bed565b62005435565b60068110156200409c576003146201451d575b50620145179062005b81565b620144c5565b6000905b8082106201453057506201450b565b909562009dd6620145549162014547898d62005bed565b516200200d828a62005bed565b9062014521565b62014574816201456d878d5162005bed565b5162014c43565b9390948083118062014630575b15620145e7575050918385620145dd575b60068110156200409c5760038e9114620145bd575b5050620145b49062005b81565b919091620144d6565b94620145d4916200200d82620145b4959862005bed565b93908c620145a7565b6000955062014592565b80949295919514806201461c575b15620145a75760068110156200409c5760038e9114620145bd575050620145b49062005b81565b5060068110156200409c57801515620145f5565b5060068610156200409c5785151562014581565b5093505090929350600093845b83518610156201479657620146716201466b878662005bed565b6200670b565b906006808310156200409c5760029283036201469c57505062014695909562005b81565b9462014651565b620146ac6201466b898862005bed565b92818410156200409c5760018094148062014782575b15620146d75750505062014695909562005b81565b620146ec6201466b8a899b9694959b62005bed565b92808410156200409c576004809414928362014756575b50826201472b575b50506201471f575b50620146959062005b81565b95506201469562014713565b909150881015620147415787141538806201470b565b602182634e487b7160e01b6000525260246000fd5b908093508a10156201476d57891415913862014703565b602184634e487b7160e01b6000525260246000fd5b50818310156200409c5780831415620146c2565b92509290935060068210156200409c5760038203620147f2575b620147bb8162005d44565b9360005b828110620147ce575050509190565b80620147df620147ec928462005bed565b516200200d828962005bed565b620147bf565b506000620147b0565b50909392505050565b608460405162461bcd60e51b815260206004820152602a60248201527f546865206c656e677468206f6620766f74696e672072756c65206c697374206960448201527f73206f766572666c6f77000000000000000000000000000000000000000000006064820152fd5b90620138835460206000930190815151906201488a8262003ffb565b916201489a604051938462003fd9565b808352620148ab601f199162003ffb565b01366020840137620148c08351518262006fe1565b90156201480457620148d29062005d44565b90859284515115620147fb57620148e98262005d44565b965b85515181101562014a575760008080805b8681106201496e575090506201491881620144f2858762005bed565b60068110156200409c576003146201493d575b50620149379062005b81565b620148eb565b6000905b8082106201495057506201492b565b909562009dd6620149679162014547898d62005bed565b9062014941565b620149878162014980878d5162005bed565b5162014cdf565b9390948083118062014a43575b15620149fa575050918385620149f0575b60068110156200409c5760038e9114620149d0575b5050620149c79062005b81565b919091620148fc565b94620149e7916200200d82620149c7959862005bed565b93908c620149ba565b60009550620149a5565b809492959195148062014a2f575b15620149ba5760068110156200409c5760038e9114620149d0575050620149c79062005b81565b5060068110156200409c5780151562014a08565b5060068610156200409c5785151562014994565b5093505090929350600093845b835186101562014b795762014a7e6201466b878662005bed565b906006808310156200409c57600292830362014aa957505062014aa2909562005b81565b9462014a64565b62014ab96201466b898862005bed565b92818410156200409c5760038094148062014b65575b1562014ae45750505062014aa2909562005b81565b62014af96201466b8a899b9694959b62005bed565b92808410156200409c576005809414928362014b4e575b508262014b38575b505062014b2c575b5062014aa29062005b81565b955062014aa262014b20565b9091508810156200409c57871415388062014b18565b908093508a10156200409c57891415913862014b10565b50818310156200409c578083141562014acf565b92509290935060068210156200409c576003820362014bc8575b62014b9e8162005d44565b9360005b82811062014bb1575050509190565b80620147df62014bc2928462005bed565b62014ba2565b50600062014b93565b1562014bd957565b608460405162461bcd60e51b815260206004820152602860248201527f506c7567696e466163746f72793a20706c7567696e20696e646578206f75742060448201527f6f662072616e67650000000000000000000000000000000000000000000000006064820152fd5b909160008093819362014c5c6201388254831062014bd1565b60ff600562014c6b8462006d3c565b50015460081c161562014cd357828262014c8792600162014ea1565b62014c93575b50929190565b809450600192935062014ca7915062006d3c565b50015490600362014cc860ff62014cbe8662006d3c565b5054169462006d3c565b500154913862014c8d565b50509150915080918190565b909160008093819362014cf86201388354831062014bd1565b60ff600562014d078462006cc0565b50015460081c161562014cd357828262014d22928262014ea1565b62014d2d5750929190565b809450600192935062014d41915062006cc0565b50015490600362014cc860ff62014d588662006cc0565b5054169462006cc0565b1562014d6a57565b608460405162461bcd60e51b815260206004820152603160248201527f436865636b696e6720636f6e646974696f6e206578703a20706c7567696e206960448201527f6e646578206f7574206f662072616e67650000000000000000000000000000006064820152fd5b1562014ddc57565b608460405162461bcd60e51b815260206004820152602f60248201527f436865636b696e6720636f6e646974696f6e206578703a206e6f646520696e6460448201527f6578206f7574206f662072616e676500000000000000000000000000000000006064820152fd5b6201388490815481101562005bb557600791600052027f84d95adeb12a1259eb9eb7c14e7511a374a468bb7f8ac3d8ec617dbcd1336deb0190600090565b805482101562005bb5576000526007602060002091020190600090565b909291908015620152105762014ebd6201388254831062014d62565b62014ed9600262014ece8462006d3c565b500154841062014dd4565b8015620151f25762014f09600162014f0085600262014ef88762006d3c565b500162014e84565b50015460ff1690565b62014f148162004eaa565b8062014f24575050505050600090565b62014f2f8162004eaa565b6003810362014f42575050505050600190565b62014f4d8162004eaa565b6004810362014f60575050505050600090565b62014f6b8162004eaa565b60019080820362014f8457505092620056279362015238565b90929362014f928262004eaa565b600280921462014fa8575b505050505050600090565b8215620151d55762014fd18462014fc5838562014ef88a62006d3c565b50015460081c60ff1690565b925b60009586865b62015163575b5062014feb8762005d44565b9760005b88811062015106575050505050620150078262004091565b8183036201506657505091906000915b818310620150255750505090565b9091928062015043575b6201503b909362005b81565b919062015017565b506201503b6201505e62015058858462005bed565b51151590565b90506201502f565b909150620150748262004091565b8103620150cd57509060009182915b818310620150915750505090565b9091928015620150b0575b620150a8909362005b81565b919062015083565b50620150a8620150c562015058858462005bed565b90506201509c565b60039150620150dc8162004091565b14620150ef575038808080808062014f9d565b6201510262015058620056279262005ba7565b1590565b808a62015142620151396201512f848b620151278c8262014ef88d62006cc0565b500162005f0b565b90549060031b1c90565b86868962014ea1565b620151566201515d946200054f9362005bed565b9015159052565b62014fef565b8462015175858262014ef88662006cc0565b500154811015620151cf576201519b6201512f828762015127888262014ef88962006cc0565b620151b4575b620151ad879162005b81565b9062014fd9565b96620151ad620151c5889262005b81565b98915050620151a1565b62014fdf565b620151eb8462014fc5838562014ef88a62006cc0565b9262014fd3565b6201520a600162014f0085600262014ef88762006cc0565b62014f09565b620152216201388354831062014d62565b62015232600262014ece8462006cc0565b62014ed9565b90929160036201528a9183600014620153125760ff60016201526187600262014ef88662006d3c565b50015460101c16945b84156201530157600262014ef8620152829362006d3c565b500162005565565b91603d8110156200409c57602c8103620152d1575050620152b46200733560208093015162005ba7565b5191015160268110156200409c57620152cd90620176d2565b1490565b90929060018103620152e65750505050600090565b600314620152f657505050600090565b620056279262015382565b600262014ef8620152829362006cc0565b60ff60016201532887600262014ef88662006cc0565b50015460101c16946201526a565b156201533e57565b606460405162461bcd60e51b815260206004820152602060248201527f4f70657261746f722061646472657373206973206e6f742070726f76696465646044820152fd5b919060406200733592016201539c60018251511462015336565b620153b76001620153ae835162005ba7565b51511462015336565b620153cd6001600160a01b039384925162005ba7565b51169215620153dc5751161490565b51161490565b15620153ea57565b606460405162461bcd60e51b815260206004820152601c60248201527f496e76616c6964206e756d626572206f6620706172616d6574657273000000006044820152fd5b9190820180921162005b9157565b620154478162004eaa565b620154556200eb976201765c565b620154608162004eaa565b600181036201547f5750620154786200ebc36201765c565b6201388b55565b6201548a8162004eaa565b600281036201549b57506201388c55565b620154a68162004eaa565b60038103620154b757506201388d55565b80620154c560049262004eaa565b14620154ce5750565b6201388e55565b9060005b825181101562015dcf5760e0620154f1828562005bed565b51015115620159c557620155116201550a828562005bed565b516200670b565b6006808210156200409c576004918203620156a3575060209060016003836201553b868962005bed565b510151060362015558575050620155529062005b81565b620154d9565b62005b7d828462015688606362015589620155828562015579868e62005bed565b51015162006190565b9362006190565b92847f20697320776974682072657475726e2074797065205945535f414e445f534b496040958651978894620155f862005c528388016026907f496e76616c6964206265666f72652d6f7020706c7567696e206c6576656c2e2081526502632bb32b6160d51b60208201520190565b017201038363ab3b4b7103bb4ba341034b73232bc1606d1b81526201562882518093601396878501910162004106565b01918201527f505f53414e44424f582c2073686f756c64206265206f6e206c6576656c205b3160338201527f2c20342c20372c2031302c202e2e2e5d00000000000000000000000000000000605382015203604381018552018362003fd9565b5193849362461bcd60e51b855284015260248301906200412b565b620156b36201550a848762005bed565b81811015620159b0576001036201581057506020906002600383620156d9868962005bed565b5101510603620156f0575050620155529062005b81565b62005b7d828462015688605d62015711620155828562015579868e62005bed565b92847f20697320776974682072657475726e20747970652053414e44424f585f4e454560409586519788946201578062005c528388016026907f496e76616c6964206265666f72652d6f7020706c7567696e206c6576656c2e2081526502632bb32b6160d51b60208201520190565b017201038363ab3b4b7103bb4ba341034b73232bc1606d1b8152620157b082518093601396878501910162004106565b01918201527f4445442c2073686f756c64206265206f6e206c6576656c205b322c20352c203860338201527f2c2031312c202e2e2e5d00000000000000000000000000000000000000000000605382015203603d81018552018362003fd9565b620158206201550a848762005bed565b908110156201474157600203620159625760209060038262015843858862005bed565b5101510662015859575050620155529062005b81565b62005b7d8284620156886201587f620158788462015579858d62005bed565b9262006190565b91620159536040938451958693620158d062005c528387016026907f496e76616c6964206265666f72652d6f7020706c7567696e206c6576656c2e2081526502632bb32b6160d51b60208201520190565b017201038363ab3b4b7103bb4ba341034b73232bc1606d1b815281519062015901826013948d868501910162004106565b0101603e907f20697320776974682072657475726e2074797065204e4f2c2073686f756c642081527f6265206f6e206c6576656c205b332c20362c20392c2031322c202e2e2e5d000060208201520190565b03601f19810184528362003fd9565b62005b7d9060405191829162461bcd60e51b8352820160609060208152601e60208201527f496e76616c69642072657475726e20747970653a20554e444546494e4544000060408201520190565b602183634e487b7160e01b6000525260246000fd5b620159d56201550a828562005bed565b600690818110156200409c5760050362015b29575060206001600382620159fd858862005bed565b510151060362015a135750620155529062005b81565b62005b7d8262015b0c605262015a3462015582866201557981998c62005bed565b926040937f20697320776974682072657475726e2074797065205945532c2073686f756c64855198899362015aa162005c528387016025907f496e76616c69642061667465722d6f7020706c7567696e206c6576656c2e204c815264032bb32b6160dd1b60208201520190565b017201038363ab3b4b7103bb4ba341034b73232bc1606d1b815282519062015ad2826013958c878501910162004106565b01918201527f206265206f6e206c6576656c205b312c20342c20372c2031302c202e2e2e5d00603382015203603281018752018562003fd9565b5192839262461bcd60e51b8452600484015260248301906200412b565b62015b396201550a838662005bed565b90808210156200409c57600391820362015c95575060026020918262015b60858862005bed565b510151060362015b765750620155529062005b81565b62005b7d8262015b0c605c62015b9762015582866201557981998c62005bed565b926040937f20697320776974682072657475726e207479706520564f54494e475f4e454544855198899362015c0462005c528387016025907f496e76616c69642061667465722d6f7020706c7567696e206c6576656c2e204c815264032bb32b6160dd1b60208201520190565b017201038363ab3b4b7103bb4ba341034b73232bc1606d1b815282519062015c35826013958c878501910162004106565b01918201527f45442c2073686f756c64206265206f6e206c6576656c205b322c20352c20382c60338201527f2031312c202e2e2e5d0000000000000000000000000000000000000000000000605382015203603c81018752018562003fd9565b62015ca56201550a848762005bed565b908110156200409c5760020362015d8a576020908162015cc6848762005bed565b5101510662015cdb5750620155529062005b81565b62005b7d8262015b0c62015cfa62015878856201557981988b62005bed565b9162015d7b604093845197889362015d4a62005c528387016025907f496e76616c69642061667465722d6f7020706c7567696e206c6576656c2e204c815264032bb32b6160dd1b60208201520190565b017201038363ab3b4b7103bb4ba341034b73232bc1606d1b815281519062015901826013948b868501910162004106565b03601f19810186528562003fd9565b60405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642072657475726e20747970653a20554e444546494e454400006044820152606490fd5b509050565b1562015ddc57565b60a460405162461bcd60e51b815260206004820152604d60248201527f546865206c656e677468206f662074686520706c7567696e20696e646578657360448201527f20617272617920616e642074686520626f6f6c65616e206172726179206d757360648201527f74206265207468652073616d65000000000000000000000000000000000000006084820152fd5b1562015e7457565b608460405162461bcd60e51b815260206004820152602260248201527f496e76616c696420706c7567696e20696e64657820746f20626520656e61626c604482015261195960f21b6064820152fd5b1562015ecb57565b608460405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c6564206973206e6f742060448201527f696e697469616c697a65640000000000000000000000000000000000000000006064820152fd5b1562015f3d57565b608460405162461bcd60e51b815260206004820152602b60248201527f54686520706c7567696e20746f20626520656e61626c656420697320616c726560448201527f61647920656e61626c65640000000000000000000000000000000000000000006064820152fd5b1562015faf57565b608460405162461bcd60e51b815260206004820152602360248201527f496e76616c696420706c7567696e20696e64657820746f20626520646973616260448201527f6c656400000000000000000000000000000000000000000000000000000000006064820152fd5b156201602157565b608460405162461bcd60e51b815260206004820152602c60248201527f54686520706c7567696e20746f2062652064697361626c6564206973206e6f7460448201527f20696e697469616c697a656400000000000000000000000000000000000000006064820152fd5b156201609357565b608460405162461bcd60e51b815260206004820152602d60248201527f54686520706c7567696e20746f2062652064697361626c656420697320616c7260448201527f656164792064697361626c6564000000000000000000000000000000000000006064820152fd5b156201610557565b608460405162461bcd60e51b815260206004820152603060248201527f546865206c656e677468206f662074617267657420616e6420746f6b656e436c60448201527f617373206973206e6f7420657175616c000000000000000000000000000000006064820152fd5b156201617757565b608460405162461bcd60e51b815260206004820152602c60248201527f546865206c656e677468206f662074617267657420616e6420616d6f756e742060448201527f6973206e6f7420657175616c00000000000000000000000000000000000000006064820152fd5b15620161e957565b608460405162461bcd60e51b815260206004820152602260248201527f54686520746f6b656e20636c617373206973206e6f7420696e697469616c697a604482015261195960f21b6064820152fd5b156201624057565b608460405162461bcd60e51b815260206004820152602960248201527f54686520746f74616c20737570706c79206f662074686520746f6b656e20697360448201527f206f766572666c6f7700000000000000000000000000000000000000000000006064820152fd5b15620162b257565b608460405162461bcd60e51b8152602060048201526024808201527f5468652062616c616e6365206f662074686520746f6b656e206973206f76657260448201527f666c6f77000000000000000000000000000000000000000000000000000000006064820152fd5b156201632357565b606460405162461bcd60e51b815260206004820152602060248201527f54686520746f6b656e20697320616c726561647920696e697469616c697a65646044820152fd5b60408101906201637c60c08351015162005ba7565b51916201639e60a062016393818451015162005ba7565b519251015162005bcb565b5193620163b3845183511462001929620174fa565b620163c6845186511462001929620174fa565b60005b84518110156201642457620163df818462005bed565b519061271082101562005bb5576201641e916001600160a01b03865116600052600390811b016020526200054f6040600020546200822b838a62005bed565b620163c9565b5092919360005b8351811015620165505762016441818462005bed565b5190612710918281101562005bb5576001600160a01b03908189511660005260039081602091811b0181526201648260406000205462008299868962005bed565b906201648f868a62005bed565b51918783101562005bb55784620164bc93878f5116600052811b0184526040600020556200192962017621565b620164c8848862005bed565b518581101562005bb557829084620164e1878c62005bed565b5116600052811b018152620165016040600020546200733c868962005bed565b91909262016510868a62005bed565b519687101562005bb5576201654a966200054f9562016530888d62005bed565b5116600052811b0190526040600020556200192962017697565b6201642b565b50506200838a62016561916201723d565b9060405193620165718562003fa1565b60018552602036818701376001600160a01b0390816107c0525116620165978562005ba7565b526000935b8151851015620168ba57620165b2858362005bed565b5194620165c0845162005d44565b91600093620165d0825162005d44565b6107e0528496855b87518110156201667957620165ff6107c051620165f6838b62005bed565b51168b62017008565b158062016641575b6201661e575b620166189062005b81565b620165d8565b956201663862016618916107c051620087158a8c62005bed565b9690506201660d565b506127108a101562005bb5576107c0516201665d828a62005bed565b511660005260038a811b01602052604060002054151562016607565b509793929096949195976000986127108610159560031b9860038a019a5b895181101562016713578762005bb5576107c051620166b7828c62005bed565b51166000528b60205260406000205415620166de575b620166d89062005b81565b62016697565b976201670a620166d8918b620166f98c6107c0519262005bed565b51166200200d826107e05162005bed565b989050620166cd565b50949591939650985096909596806107805262005bb55760040180610760525495620167446200859786896201542e565b61074052600097886107a0525b6107805162005bb5576107a05188811015620167ef576201678062016796916000610780526107605162005f0b565b6107c05191549060031b1c166107e051620170cc565b15620167b5575b620167ab6107a05162005b81565b6107a05262016751565b97620167e890620167cd6107a0516107605162005f0b565b6107c05191549060031b1c166200200d826107405162005bed565b976201679d565b5095939096509690969391936000915b8383106201688957505050506107805162005bb55761074051516001600160401b03811162003f1a576201683781610760516200611d565b6020610740510161076051600052602060002060006107c051905b848110620168725750505050506201686a9062005b81565b93926201659c565b600190602083865116950194818501550162016852565b62008723620168b3916107c051620168a2868662005bed565b51166200200d826107405162005bed565b91620167ff565b5050509050565b90805180516001600160401b03811162003f1a57620168e181856200611d565b6020809201846000528260002060005b8381106201696e575050505060c082600692620053a295940151600185015560408101516002850155606081015160038501556201694460808201511515600486019060ff801983541691151516179055565b6201695760a082015160058601620067d9565b0151151591019060ff801983541691151516179055565b82518282015591840191600101620168f1565b620138848054600160401b81101562003f1a57620169a59160018201905562014e46565b91909162006def57620053a291620168c1565b62013890908154600160401b81101562003f1a576001810180845581101562005bb557620053a2926000527f7f73709277f72a9bc7b284375e83603a53394744e9fa86da811e86c2aa78e05e01620067d9565b908062016a16575050565b620053a291600052601f6020600020910160051c81019062005f24565b90600160401b811162003f1a57815481835580821062016a5257505050565b620053a292600052601f6020600020918180850160051c840194168062016a81575b500160051c019062005f24565b600019908186019182549160200360031b1c1690553862016a74565b60009262016ab762016ab0859462014e46565b50620053bf565b9380935b85515185101562016bbd575061271084101562005bb55760039380851b946001600160a01b0385166000526020908601815262016b05604096600188600020549101549062006fe1565b9384911562016b7a579062016b1a9162007088565b96901562016b3757505062016b2f9062005b81565b939062016abb565b60649250519062461bcd60e51b82526004820152601460248201527f746f74616c20706f776572206f766572666c6f770000000000000000000000006044820152fd5b60648389519062461bcd60e51b82526004820152600e60248201527f706f776572206f766572666c6f770000000000000000000000000000000000006044820152fd5b93505092505090565b1562016bce57565b606460405162461bcd60e51b815260206004820152601360248201527f63757272656e74596573206f766572666c6f77000000000000000000000000006044820152fd5b600162016c1f8262014e46565b5001546202712e546000928184526202712b908160205262016c48816004604088200162005f0b565b90549060031b1c918386528060205262016c69826005604089200162005f0b565b90549060031b1c93865260205260ff600662016c9d62016c8f848360408b200162005f0b565b90549060031b1c9362014e46565b5001541662016cf2575062016ce29262016cd362016ccd938362016cc562016cda9562006fab565b969062016bc6565b6201542e565b9062006fe1565b929062016bc6565b111562016cec5790565b50600190565b62010174925062016ce29362016d0c62016cda9362006fab565b949062016bc6565b9092919262016d24825162005d44565b60009162016d33815162005d44565b8390845b865181101562016dce576001600160a01b0362016d5a81620165f6848b62005bed565b158062016d99575b62016d7a575b5062016d749062005b81565b62016d37565b819662016d919162009a3062016d74948b62005bed565b959062016d68565b506127108a101562005bb5578062016db2838a62005bed565b511660005260038a811b01602052604060002054151562016d62565b509295919694509260005b875181101562016e4f5761271086101562005bb5576001600160a01b038062016e03838b62005bed565b5116600052600387811b016020526040600020541562016e30575b5062016e2a9062005b81565b62016dd9565b819562016e47916200ed9262016e2a948c62005bed565b949062016e1e565b509250945092612710831015938462005bb55760049586600395861b019687549462016e806200859782886201542e565b9460009689889a5b62016ff357818b101562016f2957506000998b62016ec362016eab838362005f0b565b90546001600160a01b0392918e1b1c82168a620170cc565b1562016ee6575b50509062016edb8b94939262005b81565b9a9091929362016e88565b91998c95949392909162016efc908c9062005f0b565b9054908d1b1c1662016f0f828b62005bed565b5262016f1b9062005b81565b9890919293508b3862016eca565b9697949a98505091975092506000915b83831062016fcf575050505062016fba578051926001600160401b03841162016fa5575062016f6983836200611d565b602080910191600052806000209060005b84811062016f89575050505050565b83516001600160a01b0316838201559281019260010162016f7a565b604190634e487b7160e01b6000525260246000fd5b603283634e487b7160e01b6000525260246000fd5b6200872362016fec916001600160a01b0362008715868662005bed565b9162016f39565b603285634e487b7160e01b6000525260246000fd5b9060005b61271083101562005bb5576003600484821b018054831015620170685782620170359162005f0b565b916001600160a01b0392839254911b1c169083161462017060576201705a9062005b81565b6201700c565b505050600190565b5050505050600090565b9060005b61271083101562005bb55760036201389784821b018054831015620170685782620170a19162005f0b565b916001600160a01b0392839254911b1c16908316146201706057620170c69062005b81565b62017076565b9060005b82518110156201710b576001600160a01b0380620170ef838662005bed565b5116908316146201706057620171059062005b81565b620170d0565b505050600090565b801562005b91576000190190565b9081519060005b60001983810184811162005b9157821015620171ef576001820180831162005b91575b84811062017166575050620171609062005b81565b62017128565b6001600160a01b03806201717b858962005bed565b5116816201718a848a62005bed565b511614620171a5575b506201719f9062005b81565b6201714b565b828692960182811162005b91576201719f92620171e892620171cc620171e1938b62005bed565b5116620171da898b62005bed565b5262017113565b9562017113565b9062017193565b505090620171fd8162005d44565b9060005b81811062017210575090925050565b806001600160a01b036201722962017237938862005bed565b51166200200d828662005bed565b62017201565b80519160005b60001984810185811162005b9157821015620172f5576001820180831162005b91575b858110620172815750506201727b9062005b81565b62017243565b6201728d838662005bed565b516201729a828762005bed565b5114620172b3575b620172ad9062005b81565b62017266565b948181019080821162005b9157620172e6620172ed91620172d9620172ad948962005bed565b51620171da8a8a62005bed565b9662017113565b9050620172a2565b50509091620173048162005d44565b9060005b81811062017317575090925050565b806201732862017335928762005bed565b516200200d828662005bed565b62017308565b604051620173498162003efe565b604481527f496e76616c6964206469766964656e64207065726d797269616420706572207460208201527f72616e73616374696f6e2e2053686f756c64206265206c657373207468616e2060408201527f3130303000000000000000000000000000000000000000000000000000000000606082015290565b604051620173d08162003f69565b603281527f4e6f20656e6f756768206e756d626572206f66207472616e73616374696f6e7360208201527f20666f72206469766964656e6473207965740000000000000000000000000000604082015290565b604051620174318162003fa1565b601c81527f6469766964656e6473206f7065726174696f6e206f766572666c6f7700000000602082015290565b6040516201746c8162003fa1565b600d81527f556e6b6e6f776e204572726f7200000000000000000000000000000000000000602082015290565b604051620174a78162003f69565b602681527f4572726f7220696e20776974686472617761626c6520636173682063616c637560208201527f6c6174696f6e0000000000000000000000000000000000000000000000000000604082015290565b604051620175088162003fa1565b601281527f496e76616c696420506172616d65746572730000000000000000000000000000602082015290565b604051620175438162003fa1565b601581527f4d656d62657220646f6573206e6f742065786973740000000000000000000000602082015290565b6040516201757e8162003fa1565b601781527f4d656d626572206973206e6f742073757370656e646564000000000000000000602082015290565b604051620175b98162003fa1565b601b81527f4d656d62657220697320616c72656164792073757370656e6465640000000000602082015290565b604051620175f48162003fa1565b601581527f4d656d62657220616c7265616479206578697374730000000000000000000000602082015290565b6040516201762f8162003fa1565b601181527f4e6f20656e6f7567682062616c616e6365000000000000000000000000000000602082015290565b6040516201766a8162003fa1565b601881527f496e76616c696420706172616d6574657220746f207365740000000000000000602082015290565b604051620176a58162003fa1565b601581527f546f6b656e20616d6f756e74206f766572666c6f770000000000000000000000602082015290565b60268110156200409c578015620178c0576001811462016cec5760028114620178ba5760038114620178b45760048114620178ae5760058114620178a85760068114620178a257600781146201789c57600881146201789657600981146201789057600a81146201788a57600b81146201788457600c81146201787e57600d81146201787857600e81146201787257600f81146201786c57601081146201786657601181146201786057601281146201785a57601381146201785457601481146201784e57601581146201784857601881146201784257601781146201783c57601981146201783657601a81146201783057601b81146201782a57601c81146201782457601d81146201781e57601e81146201781857601f81146201781257602081146201780c576021146201780757600090565b602190565b50602090565b50601f90565b50601e90565b50601d90565b50601c90565b50601b90565b50601a90565b50601990565b50601790565b50601690565b50601590565b50601490565b50601390565b50601290565b50601190565b50601090565b50600f90565b50600e90565b50600d90565b50600c90565b50600b90565b50600a90565b50600990565b50600890565b50600790565b50600690565b50600590565b50600490565b50600390565b50600290565b50600090565b90815181101562005bb5570160200190565b60405190620178e78262003f69565b60288252604036602084013760005b601481106201790457505090565b60139080820391821162005b91578160031b917f1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81160362005b915760ff80831162005b915762017963600180941b6001600160a01b0386166200616f565b60f081168282160391821162005b91577f0f00000000000000000000000000000000000000000000000000000000000000620179a39160f41b1662017a3f565b9082841b917f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8416840362005b915762017a13917fff000000000000000000000000000000000000000000000000000000000000009160001a62017a08858a620178c6565b5360f81b1662017a3f565b92810180911162005b915762017a3262017a399360001a9186620178c6565b5362005b81565b620178f6565b60f81c600a81101562017a805760300160ff811162005b915760f81b7fff000000000000000000000000000000000000000000000000000000000000001690565b60570160ff811162005b915760f81b7fff00000000000000000000000000000000000000000000000000000000000000169056fea2646970667358221220a88b2310de1c810e72a47968a10611bf5aba2909acc6aaec5b26a486d5c735f764736f6c63430008130033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/darc-js/src/types/basicTypes.ts b/darc-js/src/types/basicTypes.ts index a459324..f3372c3 100644 --- a/darc-js/src/types/basicTypes.ts +++ b/darc-js/src/types/basicTypes.ts @@ -93,7 +93,7 @@ export type PluginStruct = { level: PromiseOrValue; conditionNodes: ConditionNodeStruct[]; votingRuleIndex: PromiseOrValue; - note: PromiseOrValue; + notes: PromiseOrValue; bIsEnabled: PromiseOrValue; bIsInitialized: PromiseOrValue; bIsBeforeOperation: PromiseOrValue; @@ -113,7 +113,7 @@ export type PluginStructOutput = [ level: BigNumber; conditionNodes: ConditionNodeStructOutput[]; votingRuleIndex: BigNumber; - note: string; + notes: string; bIsEnabled: boolean; bIsInitialized: boolean; bIsBeforeOperation: boolean; diff --git a/darc-protocol/contracts/protocol/DARC.sol b/darc-protocol/contracts/protocol/DARC.sol index 1d6f14a..8581a49 100644 --- a/darc-protocol/contracts/protocol/DARC.sol +++ b/darc-protocol/contracts/protocol/DARC.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import "./Runtime/Runtime.sol"; import "./Program.sol"; diff --git a/darc-protocol/contracts/protocol/Dashboard/Dashboard.sol b/darc-protocol/contracts/protocol/Dashboard/Dashboard.sol index f06ab32..ad4f239 100644 --- a/darc-protocol/contracts/protocol/Dashboard/Dashboard.sol +++ b/darc-protocol/contracts/protocol/Dashboard/Dashboard.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import "../Runtime/Runtime.sol"; diff --git a/darc-protocol/contracts/protocol/MachineState.sol b/darc-protocol/contracts/protocol/MachineState.sol index 46a8c45..9797315 100644 --- a/darc-protocol/contracts/protocol/MachineState.sol +++ b/darc-protocol/contracts/protocol/MachineState.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import "./Program.sol"; import "./Plugin/Plugin.sol"; /** diff --git a/darc-protocol/contracts/protocol/MachineStateManager.sol b/darc-protocol/contracts/protocol/MachineStateManager.sol index 5078cc8..8253d68 100644 --- a/darc-protocol/contracts/protocol/MachineStateManager.sol +++ b/darc-protocol/contracts/protocol/MachineStateManager.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "./MachineState.sol"; import "./Plugin/Plugin.sol"; diff --git a/darc-protocol/contracts/protocol/Opcodes.sol b/darc-protocol/contracts/protocol/Opcodes.sol index a8466f8..5d76a45 100644 --- a/darc-protocol/contracts/protocol/Opcodes.sol +++ b/darc-protocol/contracts/protocol/Opcodes.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; /* diff --git a/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol b/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol index 3e52240..798e532 100644 --- a/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol +++ b/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import "../MachineState.sol"; diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/MachineState/TimeStateFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/MachineState/TimeStateFunction.sol index 5039043..31c6a1a 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/MachineState/TimeStateFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/MachineState/TimeStateFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/MachineStateExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/MachineStateExpressionFunction.sol index 30a10a7..d56a1b5 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/MachineStateExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/MachineStateExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/MintTokensExpressionFunction.sol_ b/darc-protocol/contracts/protocol/Plugin/Conditions/MintTokensExpressionFunction.sol_ index 828355d..54a3a93 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/MintTokensExpressionFunction.sol_ +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/MintTokensExpressionFunction.sol_ @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; /** * @title MintTokensExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchCreateTokenClass/BatchCreateTokenClassExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchCreateTokenClass/BatchCreateTokenClassExpressionFunction.sol index 3ae48fb..d19cf36 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchCreateTokenClass/BatchCreateTokenClassExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchCreateTokenClass/BatchCreateTokenClassExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchMintTokens/BatchMintTokensExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchMintTokens/BatchMintTokensExpressionFunction.sol index 31f7fc4..4e50037 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchMintTokens/BatchMintTokensExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/BatchMintTokens/BatchMintTokensExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/GeneralOperationExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/GeneralOperationExpressionFunction.sol index ce854c4..522a676 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/GeneralOperationExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/Operations/GeneralOperationExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/OperatorExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/OperatorExpressionFunction.sol index 022ff63..e7f827a 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/OperatorExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/OperatorExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenNumberExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenNumberExpressionFunction.sol index 60ef8e9..d3950a2 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenNumberExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenNumberExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenPermyriadExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenPermyriadExpressionFunction.sol index 9004537..c8db05d 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenPermyriadExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/CertainTokenPermyriadExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenNumberExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenNumberExpressionFunction.sol index 22b3209..a40d152 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenNumberExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenNumberExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenPermyriadExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenPermyriadExpressionFunction.sol index 3aa45a2..a01a300 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenPermyriadExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/TokenState/TotalTokenPermyriadExpressionFunction.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; /** * @title ConditionExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/TransferTokensExpressionFunction.sol_ b/darc-protocol/contracts/protocol/Plugin/Conditions/TransferTokensExpressionFunction.sol_ index a361796..6cc8771 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/TransferTokensExpressionFunction.sol_ +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/TransferTokensExpressionFunction.sol_ @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; /** * @title TransferTokenExpressionFunctions * @author DARC Team diff --git a/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol b/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol index faf59cd..73aa33b 100644 --- a/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol +++ b/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; /** * @notice EnumConditionExpression is the enum of the condition expression command, with parameters and types diff --git a/darc-protocol/contracts/protocol/Plugin/Plugin.sol b/darc-protocol/contracts/protocol/Plugin/Plugin.sol index dc9348e..af93aa3 100644 --- a/darc-protocol/contracts/protocol/Plugin/Plugin.sol +++ b/darc-protocol/contracts/protocol/Plugin/Plugin.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import './EnumConditionExpression.sol'; @@ -230,7 +230,7 @@ struct Plugin { /** * the plugin note */ - string note; + string notes; /** * the boolean that indicates whether the plugin is enabled or not diff --git a/darc-protocol/contracts/protocol/Plugin/PluginFactory.sol b/darc-protocol/contracts/protocol/Plugin/PluginFactory.sol index 6a4a3b2..5e7cabb 100644 --- a/darc-protocol/contracts/protocol/Plugin/PluginFactory.sol +++ b/darc-protocol/contracts/protocol/Plugin/PluginFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import './Plugin.sol'; import '../MachineStateManager.sol'; diff --git a/darc-protocol/contracts/protocol/Plugin/PluginSystem.sol b/darc-protocol/contracts/protocol/Plugin/PluginSystem.sol index f64a902..59ab38c 100644 --- a/darc-protocol/contracts/protocol/Plugin/PluginSystem.sol +++ b/darc-protocol/contracts/protocol/Plugin/PluginSystem.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "../MachineState.sol"; import "../MachineStateManager.sol"; diff --git a/darc-protocol/contracts/protocol/Program.sol b/darc-protocol/contracts/protocol/Program.sol index 5e663c3..280df91 100644 --- a/darc-protocol/contracts/protocol/Program.sol +++ b/darc-protocol/contracts/protocol/Program.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import "./Opcodes.sol"; import "./Plugin/Plugin.sol"; diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/Executable.sol b/darc-protocol/contracts/protocol/Runtime/Executable/Executable.sol index 9cdd8be..8f123ec 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/Executable.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/Executable.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "../../MachineState.sol"; import "../../MachineStateManager.sol"; diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/InstructionMachine.sol b/darc-protocol/contracts/protocol/Runtime/Executable/InstructionMachine.sol index a63e31b..1be9358 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/InstructionMachine.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/InstructionMachine.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "../../MachineState.sol"; import "../../MachineStateManager.sol"; diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MembershipInstructions.sol b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MembershipInstructions.sol index 3a68a1a..3ac2318 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MembershipInstructions.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MembershipInstructions.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "../../../MachineState.sol"; import "../../../MachineStateManager.sol"; diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MoneyInstructions.sol b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MoneyInstructions.sol index b22e645..4440dc5 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MoneyInstructions.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/MoneyInstructions.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import "../../../MachineState.sol"; import "../../../MachineStateManager.sol"; import "../../../Plugin/PluginSystem.sol"; diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/OfferDividendsInstructions.sol b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/OfferDividendsInstructions.sol index 49dd37b..346a89b 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/OfferDividendsInstructions.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/OfferDividendsInstructions.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "../../../MachineState.sol"; import "../../../MachineStateManager.sol"; diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/ParameterInstructions.sol b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/ParameterInstructions.sol index 62ec0d3..d284cd8 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/ParameterInstructions.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/ParameterInstructions.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "../../../MachineState.sol"; import "../../../MachineStateManager.sol"; diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol index 86d5b36..24b8d17 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.17; +pragma solidity ^0.8.19; import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import "../../../MachineState.sol"; import "../../../MachineStateManager.sol"; @@ -138,7 +138,7 @@ contract PluginInstructions is MachineStateManager{ // check if all the plugins are on the right level pluginCheck(plugins); - + for (uint256 i=0;i Date: Mon, 25 Dec 2023 00:17:42 -0600 Subject: [PATCH 09/14] update --- .../test/pluginTest/boolean_OR_test.ts | 176 +++++++++++++++++- .../pluginTest/pluginJudgementContractTest.ts | 38 ---- 2 files changed, 168 insertions(+), 46 deletions(-) delete mode 100644 darc-protocol/test/pluginTest/pluginJudgementContractTest.ts diff --git a/darc-protocol/test/pluginTest/boolean_OR_test.ts b/darc-protocol/test/pluginTest/boolean_OR_test.ts index e5d5721..3fa96ca 100644 --- a/darc-protocol/test/pluginTest/boolean_OR_test.ts +++ b/darc-protocol/test/pluginTest/boolean_OR_test.ts @@ -12,9 +12,9 @@ const target1 = '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC'; const target2 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; -const target3 = '0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65'; +const target3 = '0x870526b7973b56163a6997bb7c886f5e4ea53638'; -describe.skip("plugin judgement contract test", function () { +describe.only("plugin judgement contract test", function () { it ("should pass all plugin judgement test in PluginTest.sol", async function () { @@ -26,13 +26,173 @@ describe.skip("plugin judgement contract test", function () { // add a plugin operatorAddress == target1 | operatorAddress == target2 // level == 4 // return type: yes and skip sandbox - // pluginTest.addBeforeOpPlugin({ - // returnType: 4, // yes and skip sandbox - // level: BigNumber.from(4), - // votingRuleIndex: BigNumber.from(0), - // notes: "", + await pluginTest.addBeforeOpPlugin({ + returnType: BigNumber.from(4), // yes and skip sandbox + level: BigNumber.from(103), + votingRuleIndex: BigNumber.from(0), + notes: "", + bIsEnabled: true, + bIsInitialized: true, + bIsBeforeOperation: true, + conditionNodes:[ + // node 0: boolean operator OR + { + id: BigNumber.from(0), + nodeType: BigNumber.from(2), // logical operator + logicalOperator: BigNumber.from(2), // OR + conditionExpression: 0, // no expression + childList: [BigNumber.from(1), BigNumber.from(2)], + param: { + STRING_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [], + BYTES: [] + } + }, + + // node 1: operatorAddress == target1 + { + id : BigNumber.from(0), + nodeType: BigNumber.from(1), // expression + logicalOperator: BigNumber.from(0), // no operator + conditionExpression: BigNumber.from(3), // OPERATOR_ADDRESS_EQUALS + childList: [], + param: { + STRING_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [[target1]], + BYTES: [] + } + }, + + // node 2: operatorAddress == target2 + { + id : BigNumber.from(2), + nodeType: BigNumber.from(1), // expression + logicalOperator: BigNumber.from(0), // no operator + conditionExpression: BigNumber.from(3), // OPERATOR_ADDRESS_EQUALS + childList: [], + param: { + STRING_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [[target2]], + BYTES: [] + } + } + ] + + }); + + const r1 = await pluginTest.checkProgram_beforeOp({ + programOperatorAddress: programOperatorAddress, + operations: [{ + operatorAddress: programOperatorAddress, + opcode: 2, // create token class + param: { + + + STRING_ARRAY: ["Class1", "Class2"], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [ + [BigNumber.from(0), BigNumber.from(1)], + [BigNumber.from(10), BigNumber.from(1)], + [BigNumber.from(10), BigNumber.from(1)], + ], + ADDRESS_2DARRAY: [], + BYTES: [] + } + }], + notes: "create token class" + } + ); + + return; + // next check if program with operator address == target1 can be aprove by the plugin + const returnType = await pluginTest.checkProgram_beforeOp( + { + programOperatorAddress: target1, + notes: "", + operations: [ + { + operatorAddress: target1, + opcode: 1, // mint token + param: { + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [], + BYTES: [] + } + } + ] + } + + ); + + return; + // it should return "YES and skip sandbox" (4) + console.log(returnType.toString()); + + // next check if program with operator address == target2 can be aprove by the plugin + const returnType2 = await pluginTest.checkProgram_beforeOp( + { + programOperatorAddress: target2, + notes: "", + operations: [ + { + operatorAddress: target2, + opcode: 0, // mint token + param: { + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [], + BYTES: [] + } + } + ] + } + + ); + + // it should return "YES and skip sandbox" (4) + console.log(returnType2.toString()); + //return; + const returnType3 = await pluginTest.checkProgram_beforeOp( + { + programOperatorAddress: target3, + notes: "", + operations: [ + { + operatorAddress: target3, + opcode: 0, // mint token + param: { + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [], + BYTES: [] + } + } + ] + } + + ); + + console.log(returnType3.toString()); - // }); }); diff --git a/darc-protocol/test/pluginTest/pluginJudgementContractTest.ts b/darc-protocol/test/pluginTest/pluginJudgementContractTest.ts deleted file mode 100644 index f4a7673..0000000 --- a/darc-protocol/test/pluginTest/pluginJudgementContractTest.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { time, loadFixture } from "@nomicfoundation/hardhat-network-helpers"; -import { anyValue } from "@nomicfoundation/hardhat-chai-matchers/withArgs"; -import { expect } from "chai"; -import { ethers } from "hardhat"; -import { BigNumber } from "ethers"; -import { ConditionNodeStruct } from "../../typechain-types/contracts/protocol/DARC" - - -const programOperatorAddress = "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"; - -const target1 = '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC'; - -const target2 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; - -const target3 = '0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65'; - -describe("plugin judgement contract test", function () { - it ("should pass all plugin judgement test in PluginTest.sol", async function () { - - - // const PluginJudgementTestFactory = await ethers.getContractFactory("PluginTest"); - // const pluginJudgementTest = await PluginJudgementTestFactory.deploy(); - // await pluginJudgementTest.deployed(); - // await pluginJudgementTest.initialize(); - // let bIsSuccess = true; - // try{ - // await pluginJudgementTest.test(); - // } - // catch (error) { - // console.log("error: ", error); - // bIsSuccess = false; - // } - - //expect(true).to.equal(true); - }); - - -}); \ No newline at end of file From 97ec60b16261b1061afcf607e33d653d3796ba70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AB=8B=E5=85=9A=20Lidang?= Date: Mon, 25 Dec 2023 15:15:52 -0600 Subject: [PATCH 10/14] update --- .../protocol/MachineStateManager.sol | 46 +++++++++++--- .../protocol/Plugin/PluginFactory.sol | 24 ++++---- .../Instructions/PluginInstructions.sol | 2 +- .../test-contracts/test-plugin/PluginTest.sol | 23 +++++++ .../test/pluginTest/boolean_OR_test.ts | 60 +++++++++++++++++-- 5 files changed, 129 insertions(+), 26 deletions(-) diff --git a/darc-protocol/contracts/protocol/MachineStateManager.sol b/darc-protocol/contracts/protocol/MachineStateManager.sol index 8253d68..76a96a8 100644 --- a/darc-protocol/contracts/protocol/MachineStateManager.sol +++ b/darc-protocol/contracts/protocol/MachineStateManager.sol @@ -83,27 +83,37 @@ contract MachineStateManager { dividendBufferSize = 10000; /** - * Todo: - * 1. create a plugin that allows all the operation by the initial owner address + * We need to initialze the first plugin for both before operation + * plugin system and after operation plugin system. + * + * Before-op Rule: If the operation is executed by the initial owner, then skip the plugin system + * After-op Rule: If the operation is executed by the initial owner, then approve the operation + * + * Level: both before-op and after-op plugin system, level 1, the lowest level */ ConditionNode[] memory conditionNodes = new ConditionNode[](1); conditionNodes[0] = ConditionNode( 0, - EnumConditionNodeType.BOOLEAN_TRUE, //todo: change to "operator==tx.origin" + EnumConditionNodeType.BOOLEAN_TRUE, EnumLogicalOperatorType.UNDEFINED, + + // expression: operation == initialOwnerAddress EnumConditionExpression.UNDEFINED, new uint256[](0), NodeParam( new string[](0), new uint256[][](0), + + // leave the address 2d array as 1x1 new address[][](0), - //new string[][](0), new bytes(0) ) ); + + currentMachineState.beforeOpPlugins.push(Plugin( EnumReturnType.YES_AND_SKIP_SANDBOX, - 1, //todo: change it back to 1 + 1, //YES_AND_SKIP_SANDBOX can be set to level%3 == 1 conditionNodes, 0, "", @@ -111,10 +121,30 @@ contract MachineStateManager { true, true )); + + ConditionNode[] memory conditionNodes_afterOp = new ConditionNode[](1); + conditionNodes_afterOp[0] = ConditionNode( + 0, + EnumConditionNodeType.BOOLEAN_TRUE, + EnumLogicalOperatorType.UNDEFINED, + + // expression: operation == initialOwnerAddress + EnumConditionExpression.UNDEFINED, + new uint256[](0), + NodeParam( + new string[](0), + new uint256[][](0), + + // leave the address 2d array as 1x1 + new address[][](0), + //new string[][](0), + new bytes(0) + ) + ); currentMachineState.afterOpPlugins.push(Plugin( - EnumReturnType.NO, - 1, // todo: change it back to 1 - conditionNodes, + EnumReturnType.YES, // + 1, // YES can be set to level%3 == 1 + conditionNodes_afterOp, 0, "", true, diff --git a/darc-protocol/contracts/protocol/Plugin/PluginFactory.sol b/darc-protocol/contracts/protocol/Plugin/PluginFactory.sol index 5e7cabb..1b8887a 100644 --- a/darc-protocol/contracts/protocol/Plugin/PluginFactory.sol +++ b/darc-protocol/contracts/protocol/Plugin/PluginFactory.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.19; import './Plugin.sol'; import '../MachineStateManager.sol'; import './ConditionExpressionFactory.sol'; - +import "@openzeppelin/contracts/utils/Strings.sol"; /** * @title The plugin factory contract of DARC * @author DARC Team @@ -77,12 +77,12 @@ contract PluginFactory is ConditionExpressionFactory{ */ function checkConditionExpressionNode(bool bIsBeforeOperation, Operation memory operation, uint256 pluginIndex, uint256 nodeIndex) internal view returns (bool) { if (bIsBeforeOperation) { - require(pluginIndex < currentMachineState.beforeOpPlugins.length, "Checking condition exp: plugin index out of range"); - require(nodeIndex < currentMachineState.beforeOpPlugins[pluginIndex].conditionNodes.length, "Checking condition exp: node index out of range"); + require(pluginIndex < currentMachineState.beforeOpPlugins.length, string.concat("Checking condition exp: plugin index out of range, plugin index: ", Strings.toString(pluginIndex))); + require(nodeIndex < currentMachineState.beforeOpPlugins[pluginIndex].conditionNodes.length, string.concat("Checking condition exp: node index out of range, plugin index: ", Strings.toString(pluginIndex), ", node index: ", Strings.toString(nodeIndex))); } else { - require(pluginIndex < currentMachineState.afterOpPlugins.length, "Checking condition exp: plugin index out of range"); - require(nodeIndex < currentMachineState.afterOpPlugins[pluginIndex].conditionNodes.length, "Checking condition exp: node index out of range"); + require(pluginIndex < currentMachineState.afterOpPlugins.length, string.concat("Checking condition exp: plugin index out of range, plugin index: ", Strings.toString(pluginIndex))); + require(nodeIndex < currentMachineState.afterOpPlugins[pluginIndex].conditionNodes.length, string.concat("Checking condition exp: node index out of range, plugin index: ", Strings.toString(pluginIndex), ", node index: ", Strings.toString(nodeIndex))); } // check the type of current node EnumConditionNodeType nodeType = bIsBeforeOperation? @@ -117,19 +117,19 @@ contract PluginFactory is ConditionExpressionFactory{ // get the valid length of the childList: // For a logical operator, if the value of childList[i] is 0, // it means the nodes with index >= i are not initialized - uint256 validLength = 0; - for (uint256 i = 0; i < currentMachineState.afterOpPlugins[pluginIndex].conditionNodes[nodeIndex].childList.length; i++) { - if (currentMachineState.afterOpPlugins[pluginIndex].conditionNodes[nodeIndex].childList[i] != 0) { - validLength++; - } - } + uint256 validLength = bIsBeforeOperation? + currentMachineState.beforeOpPlugins[pluginIndex].conditionNodes[nodeIndex].childList.length : + currentMachineState.afterOpPlugins[pluginIndex].conditionNodes[nodeIndex].childList.length; + // get the boolean value of each node in the list bool[] memory bResultList = new bool[](validLength); // traverse the list of nodes and save the result into the bResultList for (uint256 i = 0; i < validLength; i++) { - uint256 val = currentMachineState.afterOpPlugins[pluginIndex].conditionNodes[nodeIndex].childList[i]; + uint256 val = bIsBeforeOperation? + currentMachineState.beforeOpPlugins[pluginIndex].conditionNodes[nodeIndex].childList[i]: + currentMachineState.afterOpPlugins[pluginIndex].conditionNodes[nodeIndex].childList[i]; bResultList[i] = checkConditionExpressionNode(bIsBeforeOperation, operation, pluginIndex, val); } diff --git a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol index 24b8d17..e5547d9 100644 --- a/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol +++ b/darc-protocol/contracts/protocol/Runtime/Executable/Instructions/PluginInstructions.sol @@ -44,7 +44,7 @@ contract PluginInstructions is MachineStateManager{ * * @param pluginList The list of plugins to be checked */ - function pluginCheck(Plugin[] memory pluginList) internal view { + function pluginCheck(Plugin[] memory pluginList) internal pure { for (uint256 i = 0; i < pluginList.length; i++) { if (pluginList[i].bIsBeforeOperation) { if (pluginList[i].returnType == EnumReturnType.YES_AND_SKIP_SANDBOX) { diff --git a/darc-protocol/contracts/test-contracts/test-plugin/PluginTest.sol b/darc-protocol/contracts/test-contracts/test-plugin/PluginTest.sol index 1493a35..a02ea4a 100644 --- a/darc-protocol/contracts/test-contracts/test-plugin/PluginTest.sol +++ b/darc-protocol/contracts/test-contracts/test-plugin/PluginTest.sol @@ -55,4 +55,27 @@ contract PluginTest is Executable { function executeProgram(Program memory currentProgram, bool bIsSandbox) public { executeProgram_Executable(currentProgram, bIsSandbox); } + + function getBeforeOpPlugins() public view returns (Plugin[] memory) { + return currentMachineState.beforeOpPlugins; + } + + function getAfterOpPlugins() public view returns (Plugin[] memory) { + return currentMachineState.afterOpPlugins; + } + + function checkConditionExpressionNodeResult(bool bIsBeforeOperation, Operation memory operation, uint256 pluginIndex, uint256 nodeIndex) public view returns (bool) { + return checkConditionExpressionNode(bIsBeforeOperation, operation, pluginIndex, nodeIndex); + } + + /** + * Test for pluginSystemJudgment from PluginSystem.sol + * @param bIsBeforeOperation The flag to indicate if the plugin is before operation plugin + * @param currentProgram The program to be executed + * @return EnumReturnType The return type of the program + * @return uint256[] The voting rule index list of the program, if the return type is VOTING_NEEDED + */ + function pluginSystemJudgmentTest(bool bIsBeforeOperation, Program memory currentProgram) public view returns (EnumReturnType, uint256[] memory) { + return pluginSystemJudgment(bIsBeforeOperation, currentProgram); + } } \ No newline at end of file diff --git a/darc-protocol/test/pluginTest/boolean_OR_test.ts b/darc-protocol/test/pluginTest/boolean_OR_test.ts index 3fa96ca..2fbebfe 100644 --- a/darc-protocol/test/pluginTest/boolean_OR_test.ts +++ b/darc-protocol/test/pluginTest/boolean_OR_test.ts @@ -23,6 +23,30 @@ describe.only("plugin judgement contract test", function () { await pluginTest.deployed(); await pluginTest.initialize(); + // add a plugin to disable all program + await pluginTest.addBeforeOpPlugin({ + returnType: BigNumber.from(2), // no + level: BigNumber.from(3), + votingRuleIndex: BigNumber.from(0), + notes: "disable all program", + bIsEnabled: true, + bIsInitialized: true, + bIsBeforeOperation: true, + conditionNodes:[{ + id: BigNumber.from(0), + nodeType: BigNumber.from(3), // expression + logicalOperator: BigNumber.from(0), // no operator + conditionExpression: BigNumber.from(0), // always true + childList: [], + param: { + STRING_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [], + BYTES: [] + } + }] + }); + // add a plugin operatorAddress == target1 | operatorAddress == target2 // level == 4 // return type: yes and skip sandbox @@ -30,7 +54,7 @@ describe.only("plugin judgement contract test", function () { returnType: BigNumber.from(4), // yes and skip sandbox level: BigNumber.from(103), votingRuleIndex: BigNumber.from(0), - notes: "", + notes: "allow operatorAddress == target1 | operatorAddress == target2", bIsEnabled: true, bIsInitialized: true, bIsBeforeOperation: true, @@ -52,7 +76,7 @@ describe.only("plugin judgement contract test", function () { // node 1: operatorAddress == target1 { - id : BigNumber.from(0), + id : BigNumber.from(1), nodeType: BigNumber.from(1), // expression logicalOperator: BigNumber.from(0), // no operator conditionExpression: BigNumber.from(3), // OPERATOR_ADDRESS_EQUALS @@ -83,6 +107,26 @@ describe.only("plugin judgement contract test", function () { }); + //console.log(await pluginTest.getBeforeOpPlugins()); + + // console.log(await pluginTest.checkConditionExpressionNodeResult(true, + // { + // operatorAddress: target3, + // opcode: 1, // mint token + // param: { + // STRING_ARRAY: [], + // BOOL_ARRAY: [], + // VOTING_RULE_ARRAY: [], + // PARAMETER_ARRAY: [], + // PLUGIN_ARRAY: [], + // UINT256_2DARRAY: [], + // ADDRESS_2DARRAY: [], + // BYTES: [] + // } + // }, 1, 0 )); + + + const r1 = await pluginTest.checkProgram_beforeOp({ programOperatorAddress: programOperatorAddress, operations: [{ @@ -108,8 +152,12 @@ describe.only("plugin judgement contract test", function () { notes: "create token class" } ); - - return; + + + console.log(r1.toString()); + + console.log(await pluginTest.getBeforeOpPlugins()); + // next check if program with operator address == target1 can be aprove by the plugin const returnType = await pluginTest.checkProgram_beforeOp( { @@ -135,7 +183,7 @@ describe.only("plugin judgement contract test", function () { ); - return; + //return; // it should return "YES and skip sandbox" (4) console.log(returnType.toString()); @@ -167,6 +215,8 @@ describe.only("plugin judgement contract test", function () { // it should return "YES and skip sandbox" (4) console.log(returnType2.toString()); //return; + + console.log("final test"); const returnType3 = await pluginTest.checkProgram_beforeOp( { programOperatorAddress: target3, From fac23c519df17e453fac1ab15ea9ba2d1a07f51f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AB=8B=E5=85=9A=20Lidang?= Date: Mon, 25 Dec 2023 17:36:53 -0600 Subject: [PATCH 11/14] update --- darc-protocol/test/pluginTest/boolean_OR_test.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/darc-protocol/test/pluginTest/boolean_OR_test.ts b/darc-protocol/test/pluginTest/boolean_OR_test.ts index 2fbebfe..e5cf341 100644 --- a/darc-protocol/test/pluginTest/boolean_OR_test.ts +++ b/darc-protocol/test/pluginTest/boolean_OR_test.ts @@ -46,7 +46,7 @@ describe.only("plugin judgement contract test", function () { } }] }); - + //return; // add a plugin operatorAddress == target1 | operatorAddress == target2 // level == 4 // return type: yes and skip sandbox @@ -154,9 +154,8 @@ describe.only("plugin judgement contract test", function () { ); - console.log(r1.toString()); - - console.log(await pluginTest.getBeforeOpPlugins()); + expect(r1.toString()).to.equal("2"); + //console.log(await pluginTest.getBeforeOpPlugins()); // next check if program with operator address == target1 can be aprove by the plugin const returnType = await pluginTest.checkProgram_beforeOp( @@ -185,7 +184,7 @@ describe.only("plugin judgement contract test", function () { //return; // it should return "YES and skip sandbox" (4) - console.log(returnType.toString()); + expect(returnType.toString()).to.equal("4"); // next check if program with operator address == target2 can be aprove by the plugin const returnType2 = await pluginTest.checkProgram_beforeOp( @@ -213,8 +212,7 @@ describe.only("plugin judgement contract test", function () { ); // it should return "YES and skip sandbox" (4) - console.log(returnType2.toString()); - //return; + expect(returnType2.toString()).to.equal("4"); console.log("final test"); const returnType3 = await pluginTest.checkProgram_beforeOp( @@ -241,7 +239,7 @@ describe.only("plugin judgement contract test", function () { ); - console.log(returnType3.toString()); + expect(returnType3.toString()).to.equal("2"); }); From 66a05628c4e4a5996c4bda1bfaf01bdc986f2157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AB=8B=E5=85=9A=20Lidang?= Date: Tue, 26 Dec 2023 13:41:38 -0600 Subject: [PATCH 12/14] update --- .../Plugin/ConditionExpressionFactory.sol | 4 +- .../Conditions/OperatorExpressionFunction.sol | 2 +- .../Plugin/EnumConditionExpression.sol | 115 ++++++-- .../test/pluginTest/operator_AND_test.ts | 249 ++++++++++++++++++ ...boolean_OR_test.ts => operator_OR_test.ts} | 4 +- 5 files changed, 352 insertions(+), 22 deletions(-) create mode 100644 darc-protocol/test/pluginTest/operator_AND_test.ts rename darc-protocol/test/pluginTest/{boolean_OR_test.ts => operator_OR_test.ts} (97%) diff --git a/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol b/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol index 798e532..ca73673 100644 --- a/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol +++ b/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol @@ -52,8 +52,8 @@ contract ConditionExpressionFactory is currentMachineState.afterOpPlugins[pluginIndex].conditionNodes[nodeIndex].param; // check the condition expression node - if (exp == EnumConditionExpression.OPERATION_NAME_EQUALS) { - return exp_OPERATION_NAME_EQUALS(operation, param); + if (exp == EnumConditionExpression.OPERATION_EQUALS) { + return exp_OPERATION_EQUALS(operation, param); } else if (exp == EnumConditionExpression.OPERATOR_NAME_EQUALS) { return false;//exp_OPERATOR_NAME_EQUALS(bIsBeforeOperation, operation, paramList); diff --git a/darc-protocol/contracts/protocol/Plugin/Conditions/OperatorExpressionFunction.sol b/darc-protocol/contracts/protocol/Plugin/Conditions/OperatorExpressionFunction.sol index e7f827a..e402df6 100644 --- a/darc-protocol/contracts/protocol/Plugin/Conditions/OperatorExpressionFunction.sol +++ b/darc-protocol/contracts/protocol/Plugin/Conditions/OperatorExpressionFunction.sol @@ -38,7 +38,7 @@ contract OperatorExpressionFunctions is MachineStateManager { * The first parameter is the opcode ID (in uint256) of the condition node * This is function to check if the opcode of the current/sandbox machine state is equal to the opcode of the condition node */ - function exp_OPERATION_NAME_EQUALS(Operation memory operation, NodeParam memory param) internal pure returns (bool) { + function exp_OPERATION_EQUALS(Operation memory operation, NodeParam memory param) internal pure returns (bool) { //get the uint256 value of the UINT256_2DARRAY[0][0] uint256 paramOpcodeID = param.UINT256_2DARRAY[0][0]; // compare diff --git a/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol b/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol index 73aa33b..e504c5d 100644 --- a/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol +++ b/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol @@ -35,10 +35,31 @@ enum EnumConditionExpression{ OPERATOR_DIVIDEND_WITHDRAWABLE_LARGER_THAN, // params: uint256 amount OPERATOR_DIVIDEND_WITHDRAWABLE_LESS_THAN, // params: uint256 amount OPERATOR_DIVIDEND_WITHDRAWABLE_IN_RANGE, // params: uint256 amount - OPERATOR_CASH_LARGER_THAN, // params: uint256 amount - OPERATOR_CASH_LESS_THAN, // params: uint256 amount - OPERATOR_CASH_IN_RANGE, // params: uint256 amount - OPERATOR_ADDRESS_IN_LIST, // params: address[] the list of addresses + OPERATOR_WITHDRAWABLE_CASH_LARGER_THAN, // params: uint256 amount + OPERATOR_WITHDRAWABLE_CASH_LESS_THAN, // params: uint256 amount + OPERATOR_WITHDRAWABLE_CASH_IN_RANGE, // params: uint256 amount + OPERATOR_ADDRESS_IN_LIST, // params: address[] the list of addresses、 + OPERATOR_NAME_IN_LIST, // params: string[] the list of names + PlaceHolder1, + PlaceHolder2, + PlaceHolder3, + PlaceHolder4, + PlaceHolder5, + PlaceHolder6, + PlaceHolder7, + PlaceHolder8, + PlaceHolder9, + PlaceHolder10, + PlaceHolder11, + PlaceHolder12, + PlaceHolder13, + PlaceHolder14, + PlaceHolder15, + PlaceHolder16, + PlaceHolder17, + PlaceHolder18, + PlaceHolder19, + PlaceHolder20, // ---------------------------------------------------------- /** @@ -56,22 +77,65 @@ enum EnumConditionExpression{ MEMBER_TOKEN_X_LARGER_THAN, MEMBER_TOKEN_X_LESS_THAN, MEMBER_TOKEN_X_IN_RANGE, - DARC_TOTAL_VOTING_WEIGHT_LARGER_THAN, - DARC_TOTAL_VOTING_WEIGHT_LESS_THAN, - DARC_TOTAL_VOTING_WEIGHT_IN_RANGE, - DARC_TOTAL_DIVIDEND_WEIGHT_LARGER_THAN, - DARC_TOTAL_DIVIDEND_WEIGHT_LESS_THAN, - DARC_TOTAL_DIVIDEND_WEIGHT_IN_RANGE, - DARC_TOTAL_CASH_LARGER_THAN, - DARC_TOTAL_CASH_LESS_THAN, - DARC_TOTAL_CASH_IN_RANGE, + TOTAL_VOTING_WEIGHT_LARGER_THAN, + TOTAL_VOTING_WEIGHT_LESS_THAN, + TOTAL_VOTING_WEIGHT_IN_RANGE, + TOTAL_DIVIDEND_WEIGHT_LARGER_THAN, + TOTAL_DIVIDEND_WEIGHT_LESS_THAN, + TOTAL_DIVIDEND_WEIGHT_IN_RANGE, + TOTAL_CASH_LARGER_THAN, + TOTAL_CASH_LESS_THAN, + TOTAL_CASH_IN_RANGE, + TOTAL_CASH_EQUALS, + PlaceHolder21, + PlaceHolder22, + PlaceHolder23, + PlaceHolder24, + PlaceHolder25, + PlaceHolder26, + PlaceHolder27, + PlaceHolder28, + PlaceHolder29, + PlaceHolder30, + PlaceHolder31, + PlaceHolder32, + PlaceHolder33, + PlaceHolder34, + PlaceHolder35, + PlaceHolder36, + PlaceHolder37, + PlaceHolder38, + PlaceHolder39, + PlaceHolder40, + PlaceHolder41, + PlaceHolder42, + PlaceHolder43, + PlaceHolder44, + PlaceHolder45, + PlaceHolder46, + PlaceHolder47, + PlaceHolder48, + PlaceHolder49, + PlaceHolder50, + PlaceHolder51, + PlaceHolder52, + PlaceHolder53, + PlaceHolder54, + PlaceHolder55, + PlaceHolder56, + PlaceHolder57, + PlaceHolder58, + PlaceHolder59, + PlaceHolder60, + // ---------------------------------------------------------- - // General Operation related expressions - OPERATION_NAME_EQUALS, + // General Operation and Operation Log related expressions + OPERATION_EQUALS, + OPERATION_IN_LIST, OPERATION_BY_OPERATOR_SINCE_LAST_TIME_LARGER_THAN, OPERATION_BY_OPERATOR_SINCE_LAST_TIME_LESS_THAN, OPERATION_BY_OPERATOR_SINCE_LAST_TIME_IN_RANGE, @@ -82,9 +146,26 @@ enum EnumConditionExpression{ OPEARTION_BY_GROUP_SINCE_LAST_TIME_LESS_THAN, OPEARTION_BY_GROUP_SINCE_LAST_TIME_IN_RANGE, + // ---------------------------------------------------------- // Oracle and remote call related expressions - + ORACLE_CALL_RESULT_EQUALS, + ORACLE_CALL_RESULT_LARGER_THAN, + ORACLE_CALL_RESULT_LESS_THAN, + ORACLE_CALL_RESULT_IN_RANGE, + ORACLE_CALL_1_LESS_THAN_2, + ORACLE_CALL_1_LARGER_THAN_2, + ORACLE_CALL_1_EQUALS_2, + PlaceHolder141, + PlaceHolder142, + PlaceHolder143, + PlaceHolder144, + PlaceHolder145, + PlaceHolder146, + PlaceHolder147, + PlaceHolder148, + PlaceHolder149, + PlaceHolder150, // ---------------------------------------------------------- @@ -100,7 +181,7 @@ enum EnumConditionExpression{ * * params: address[] toAddressArray, uint256[] tokenClassIndexArray, uint256 amount * */ - MINT_TOKEN_MORE_THAN, + MINT_TOKEN_MORE_THAN, /** * This condition expression will be ture if the current operation is diff --git a/darc-protocol/test/pluginTest/operator_AND_test.ts b/darc-protocol/test/pluginTest/operator_AND_test.ts new file mode 100644 index 0000000..2e92ce9 --- /dev/null +++ b/darc-protocol/test/pluginTest/operator_AND_test.ts @@ -0,0 +1,249 @@ +import { time, loadFixture } from "@nomicfoundation/hardhat-network-helpers"; +import { anyValue } from "@nomicfoundation/hardhat-chai-matchers/withArgs"; +import { expect } from "chai"; +import { ethers } from "hardhat"; +import { BigNumber } from "ethers"; +import { ConditionNodeStruct } from "../../typechain-types/contracts/protocol/DARC" + + +const programOperatorAddress = "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"; + +const target1 = '0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC'; + +const target2 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; + +const target3 = '0x870526b7973b56163a6997bb7c886f5e4ea53638'; + +describe.only("operator OR test", function () { + it ("should pass operator OR test", async function () { + + + const PluginTestFactory = await ethers.getContractFactory("PluginTest"); + const pluginTest = await PluginTestFactory.deploy(); + await pluginTest.deployed(); + await pluginTest.initialize(); + + // first set role of operator target 1 as level-1 operator + + // add a plugin to disable all program + await pluginTest.addBeforeOpPlugin({ + returnType: BigNumber.from(2), // no + level: BigNumber.from(3), + votingRuleIndex: BigNumber.from(0), + notes: "disable all program", + bIsEnabled: true, + bIsInitialized: true, + bIsBeforeOperation: true, + conditionNodes:[{ + id: BigNumber.from(0), + nodeType: BigNumber.from(3), // expression + logicalOperator: BigNumber.from(0), // no operator + conditionExpression: BigNumber.from(0), // always true + childList: [], + param: { + STRING_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [], + BYTES: [] + } + }] + }); + //return; + // add a plugin operatorAddress == target1 | operatorAddress == target2 + // level == 4 + // return type: yes and skip sandbox + await pluginTest.addBeforeOpPlugin({ + returnType: BigNumber.from(4), // yes and skip sandbox + level: BigNumber.from(103), + votingRuleIndex: BigNumber.from(0), + notes: "allow operatorAddress == target1 | operatorAddress == target2", + bIsEnabled: true, + bIsInitialized: true, + bIsBeforeOperation: true, + conditionNodes:[ + // node 0: boolean operator OR + { + id: BigNumber.from(0), + nodeType: BigNumber.from(2), // logical operator + logicalOperator: BigNumber.from(2), // OR + conditionExpression: 0, // no expression + childList: [BigNumber.from(1), BigNumber.from(2)], + param: { + STRING_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [], + BYTES: [] + } + }, + + // node 1: operatorAddress == target1 + { + id : BigNumber.from(1), + nodeType: BigNumber.from(1), // expression + logicalOperator: BigNumber.from(0), // no operator + conditionExpression: BigNumber.from(3), // OPERATOR_ADDRESS_EQUALS + childList: [], + param: { + STRING_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [[target1]], + BYTES: [] + } + }, + + // node 2: operatorAddress == target2 + { + id : BigNumber.from(2), + nodeType: BigNumber.from(1), // expression + logicalOperator: BigNumber.from(0), // no operator + conditionExpression: BigNumber.from(3), // OPERATOR_ADDRESS_EQUALS + childList: [], + param: { + STRING_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [[target2]], + BYTES: [] + } + } + ] + + }); + + //console.log(await pluginTest.getBeforeOpPlugins()); + + // console.log(await pluginTest.checkConditionExpressionNodeResult(true, + // { + // operatorAddress: target3, + // opcode: 1, // mint token + // param: { + // STRING_ARRAY: [], + // BOOL_ARRAY: [], + // VOTING_RULE_ARRAY: [], + // PARAMETER_ARRAY: [], + // PLUGIN_ARRAY: [], + // UINT256_2DARRAY: [], + // ADDRESS_2DARRAY: [], + // BYTES: [] + // } + // }, 1, 0 )); + + + + const r1 = await pluginTest.checkProgram_beforeOp({ + programOperatorAddress: programOperatorAddress, + operations: [{ + operatorAddress: programOperatorAddress, + opcode: 2, // create token class + param: { + + + STRING_ARRAY: ["Class1", "Class2"], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [ + [BigNumber.from(0), BigNumber.from(1)], + [BigNumber.from(10), BigNumber.from(1)], + [BigNumber.from(10), BigNumber.from(1)], + ], + ADDRESS_2DARRAY: [], + BYTES: [] + } + }], + notes: "create token class" + } + ); + + + expect(r1.toString()).to.equal("2"); + //console.log(await pluginTest.getBeforeOpPlugins()); + + // next check if program with operator address == target1 can be aprove by the plugin + const returnType = await pluginTest.checkProgram_beforeOp( + { + programOperatorAddress: target1, + notes: "", + operations: [ + { + operatorAddress: target1, + opcode: 1, // mint token + param: { + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [], + BYTES: [] + } + } + ] + } + + ); + + //return; + // it should return "YES and skip sandbox" (4) + expect(returnType.toString()).to.equal("4"); + + // next check if program with operator address == target2 can be aprove by the plugin + const returnType2 = await pluginTest.checkProgram_beforeOp( + { + programOperatorAddress: target2, + notes: "", + operations: [ + { + operatorAddress: target2, + opcode: 0, // mint token + param: { + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [], + BYTES: [] + } + } + ] + } + + ); + + // it should return "YES and skip sandbox" (4) + expect(returnType2.toString()).to.equal("4"); + + console.log("final test"); + const returnType3 = await pluginTest.checkProgram_beforeOp( + { + programOperatorAddress: target3, + notes: "", + operations: [ + { + operatorAddress: target3, + opcode: 0, // mint token + param: { + STRING_ARRAY: [], + BOOL_ARRAY: [], + VOTING_RULE_ARRAY: [], + PARAMETER_ARRAY: [], + PLUGIN_ARRAY: [], + UINT256_2DARRAY: [], + ADDRESS_2DARRAY: [], + BYTES: [] + } + } + ] + } + + ); + + expect(returnType3.toString()).to.equal("2"); + + }); + + +}); \ No newline at end of file diff --git a/darc-protocol/test/pluginTest/boolean_OR_test.ts b/darc-protocol/test/pluginTest/operator_OR_test.ts similarity index 97% rename from darc-protocol/test/pluginTest/boolean_OR_test.ts rename to darc-protocol/test/pluginTest/operator_OR_test.ts index e5cf341..7b4db86 100644 --- a/darc-protocol/test/pluginTest/boolean_OR_test.ts +++ b/darc-protocol/test/pluginTest/operator_OR_test.ts @@ -14,8 +14,8 @@ const target2 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; const target3 = '0x870526b7973b56163a6997bb7c886f5e4ea53638'; -describe.only("plugin judgement contract test", function () { - it ("should pass all plugin judgement test in PluginTest.sol", async function () { +describe.only("operator OR test", function () { + it ("should pass operator OR test", async function () { const PluginTestFactory = await ethers.getContractFactory("PluginTest"); From ed757a989fe0c5f4a6d4bdf4c13559aec25fe57e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AB=8B=E5=85=9A=20Lidang?= Date: Tue, 26 Dec 2023 23:53:35 -0600 Subject: [PATCH 13/14] update --- .../Plugin/ConditionExpressionFactory.sol | 4 -- .../Plugin/EnumConditionExpression.sol | 44 +++++++++++-------- 2 files changed, 26 insertions(+), 22 deletions(-) diff --git a/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol b/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol index ca73673..db9e0d1 100644 --- a/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol +++ b/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol @@ -1,9 +1,5 @@ // SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.19; - - -import "../MachineState.sol"; - import "../MachineState.sol"; import "../MachineStateManager.sol"; import "../Utilities/StringUtils.sol"; diff --git a/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol b/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol index e504c5d..05d0c0f 100644 --- a/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol +++ b/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol @@ -23,9 +23,16 @@ enum EnumConditionExpression{ OPERATOR_ROLE_LARGER_THAN, // params: uint256 operatorRoleIndex OPERATOR_ROLE_LESS_THAN, // params: uint256 operatorRoleIndex OPERATOR_ROLE_IN_RANGE, // params: uint256 operatorRoleIndex + OPERATOR_ROLE_IN_LIST, // params: uint256[] operatorRoleIndexArray + OPERATOR_TOKEN_X_LARGER_THAN, // params: uint256 token class, uint256 amount OPERATOR_TOKEN_X_LESS_THAN, // params: uint256 token class, uint256 amount OPERATOR_TOKEN_X_IN_RANGE, // params: uint256 token class, uint256 amount + OPERATOR_TOKEN_X_PERCENTAGE_LARGER_THAN, // params: uint256 token class, uint256 percentage + OPERATOR_TOKEN_X_PERCENTAGE_LESS_THAN, // params: uint256 token class, uint256 percentage + OPERATOR_TOKEN_X_PERCENTAGE_IN_RANGE, // params: uint256 token class, uint256 percentage + OPERATOR_TOKEN_X_PERCENTAGE_EQUALS, // params: uint256 token class, uint256 percentage + OPERATOR_VOTING_WEIGHT_LARGER_THAN, // params: uint256 amount OPERATOR_VOTING_WEIGHT_LESS_THAN, // params: uint256 amount OPERATOR_VOTING_WEIGHT_IN_RANGE, // params: uint256 amount @@ -35,11 +42,14 @@ enum EnumConditionExpression{ OPERATOR_DIVIDEND_WITHDRAWABLE_LARGER_THAN, // params: uint256 amount OPERATOR_DIVIDEND_WITHDRAWABLE_LESS_THAN, // params: uint256 amount OPERATOR_DIVIDEND_WITHDRAWABLE_IN_RANGE, // params: uint256 amount + OPERATOR_WITHDRAWABLE_CASH_LARGER_THAN, // params: uint256 amount OPERATOR_WITHDRAWABLE_CASH_LESS_THAN, // params: uint256 amount OPERATOR_WITHDRAWABLE_CASH_IN_RANGE, // params: uint256 amount + OPERATOR_ADDRESS_IN_LIST, // params: address[] the list of addresses、 OPERATOR_NAME_IN_LIST, // params: string[] the list of names + PlaceHolder1, PlaceHolder2, PlaceHolder3, @@ -169,19 +179,18 @@ enum EnumConditionExpression{ // ---------------------------------------------------------- - /** - * @notice mint new token related expressions - */ + // Mint token operation related expressions + MINT_TOKENS_TOTAL_AMOUNT_MORE_THAN, + MINT_TOKENS_TOTAL_AMOUNT_LESS_THAN, + MINT_TOKENS_TOTAL_AMOUNT_IN_RANGE, + MINT_TOKENS_TOTAL_AMOUNT_EQUALS, + MINT_TOKENS_TARGET_ADDRESS_IN_LIST, + MINT_TOKENS_TOTAL_AMOUNT_LEVEL_X_MORE_THAN, + MINT_TOKENS_TOTAL_AMOUNT_LEVEL_X_LESS_THAN, + MINT_TOKENS_TOTAL_AMOUNT_LEVEL_X_IN_RANGE, + MINT_TOKENS_TOTAL_AMOUNT_LEVEL_X_EQUALS, + - /** - * This condition expression will be ture if - * 1. the current operation is minting new tokens - * 2. the token mint now is in token class array - * 3. the amount larger than the amount X in the condition node. - * - * params: address[] toAddressArray, uint256[] tokenClassIndexArray, uint256 amount - * */ - MINT_TOKEN_MORE_THAN, /** * This condition expression will be ture if the current operation is @@ -248,9 +257,6 @@ enum EnumConditionExpression{ // Token state related expressions - // ---------------------------------------------------------- - // Time related expressions - // ---------------------------------------------------------- // Cash related expressions @@ -258,14 +264,16 @@ enum EnumConditionExpression{ // Dividend related expressions // ---------------------------------------------------------- - // Emergency related expressions + // Emergency operations related expressions // ---------------------------------------------------------- - // member list related expressions + // member list operations related expressions // ---------------------------------------------------------- - // parameter setup related expressions + // parameter setup operations related expressions // ---------------------------------------------------------- + // plugin operations related expressions + // } \ No newline at end of file From 037110a8abc17afd58ab9b3956ae0ae9a94498c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AB=8B=E5=85=9A=20Lidang?= Date: Wed, 27 Dec 2023 20:30:30 -0600 Subject: [PATCH 14/14] update --- .../protocol/MachineStateManager.sol | 4 +- darc-protocol/contracts/protocol/Opcodes.sol | 1 + .../Plugin/ConditionExpressionFactory.sol | 10 +- ...on.sol => EnumConditionExpression.sol.old} | 235 +++++++++--- .../contracts/protocol/Plugin/Plugin.sol | 4 +- .../MultiDARCTest/Multi_DARC_call_test.ts | 4 +- .../test/pluginTest/operator_AND_test.ts | 2 +- .../test/pluginTest/operator_OR_test.ts | 2 +- darc-specs/opcode.md | 41 +++ darc-specs/plugin.md | 338 ++++++++++++++++++ 10 files changed, 569 insertions(+), 72 deletions(-) rename darc-protocol/contracts/protocol/Plugin/{EnumConditionExpression.sol => EnumConditionExpression.sol.old} (54%) create mode 100644 darc-specs/opcode.md create mode 100644 darc-specs/plugin.md diff --git a/darc-protocol/contracts/protocol/MachineStateManager.sol b/darc-protocol/contracts/protocol/MachineStateManager.sol index 76a96a8..1f01601 100644 --- a/darc-protocol/contracts/protocol/MachineStateManager.sol +++ b/darc-protocol/contracts/protocol/MachineStateManager.sol @@ -98,7 +98,7 @@ contract MachineStateManager { EnumLogicalOperatorType.UNDEFINED, // expression: operation == initialOwnerAddress - EnumConditionExpression.UNDEFINED, + 0, new uint256[](0), NodeParam( new string[](0), @@ -129,7 +129,7 @@ contract MachineStateManager { EnumLogicalOperatorType.UNDEFINED, // expression: operation == initialOwnerAddress - EnumConditionExpression.UNDEFINED, + 0, new uint256[](0), NodeParam( new string[](0), diff --git a/darc-protocol/contracts/protocol/Opcodes.sol b/darc-protocol/contracts/protocol/Opcodes.sol index 5d76a45..1f5967c 100644 --- a/darc-protocol/contracts/protocol/Opcodes.sol +++ b/darc-protocol/contracts/protocol/Opcodes.sol @@ -262,6 +262,7 @@ enum EnumOpcode { /** * @notice Set the approval for all transfer operations by address * @paran address: the address to set approval for all transfer operations + * ADDRESS_2DARRAY[0][0] targetAddress * ID:29 */ SET_APPROVAL_FOR_ALL_OPERATIONS, diff --git a/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol b/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol index db9e0d1..52999cd 100644 --- a/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol +++ b/darc-protocol/contracts/protocol/Plugin/ConditionExpressionFactory.sol @@ -6,7 +6,7 @@ import "../Utilities/StringUtils.sol"; import "../Program.sol"; // import all the condition expression big list -import "./EnumConditionExpression.sol"; +//import "./EnumConditionExpression.sol"; // import each implementation of the condition expression function import "./Conditions/OperatorExpressionFunction.sol"; @@ -38,7 +38,7 @@ contract ConditionExpressionFactory is */ function conditionExpressionCheck(bool bIsBeforeOperation, Operation memory operation, uint256 pluginIndex, uint256 nodeIndex) internal view returns (bool) { // get current condition expression node - EnumConditionExpression exp = bIsBeforeOperation ? + uint256 exp = bIsBeforeOperation ? currentMachineState.beforeOpPlugins[pluginIndex].conditionNodes[nodeIndex].conditionExpression : currentMachineState.afterOpPlugins[pluginIndex].conditionNodes[nodeIndex].conditionExpression; @@ -48,13 +48,13 @@ contract ConditionExpressionFactory is currentMachineState.afterOpPlugins[pluginIndex].conditionNodes[nodeIndex].param; // check the condition expression node - if (exp == EnumConditionExpression.OPERATION_EQUALS) { + if (exp == 151) { return exp_OPERATION_EQUALS(operation, param); } - else if (exp == EnumConditionExpression.OPERATOR_NAME_EQUALS) { + else if (exp == 1) { return false;//exp_OPERATOR_NAME_EQUALS(bIsBeforeOperation, operation, paramList); } - else if (exp == EnumConditionExpression.OPERATOR_ADDRESS_EQUALS) { + else if (exp == 3) { return exp_OPERATOR_ADDRESS_EQUALS(bIsBeforeOperation, operation, param); } diff --git a/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol b/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol.old similarity index 54% rename from darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol rename to darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol.old index 05d0c0f..a88eb56 100644 --- a/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol +++ b/darc-protocol/contracts/protocol/Plugin/EnumConditionExpression.sol.old @@ -25,9 +25,10 @@ enum EnumConditionExpression{ OPERATOR_ROLE_IN_RANGE, // params: uint256 operatorRoleIndex OPERATOR_ROLE_IN_LIST, // params: uint256[] operatorRoleIndexArray - OPERATOR_TOKEN_X_LARGER_THAN, // params: uint256 token class, uint256 amount - OPERATOR_TOKEN_X_LESS_THAN, // params: uint256 token class, uint256 amount - OPERATOR_TOKEN_X_IN_RANGE, // params: uint256 token class, uint256 amount + OPERATOR_TOKEN_X_AMOUNT_LARGER_THAN, // params: uint256 token class, uint256 amount + OPERATOR_TOKEN_X_AMOUNT_LESS_THAN, // params: uint256 token class, uint256 amount + OPERATOR_TOKEN_X_AMOUNT_IN_RANGE, // params: uint256 token class, uint256 amount + OPERATOR_TOKEN_X_AMOUNT_EQUALS, // params: uint256 token class, uint256 amount OPERATOR_TOKEN_X_PERCENTAGE_LARGER_THAN, // params: uint256 token class, uint256 percentage OPERATOR_TOKEN_X_PERCENTAGE_LESS_THAN, // params: uint256 token class, uint256 percentage OPERATOR_TOKEN_X_PERCENTAGE_IN_RANGE, // params: uint256 token class, uint256 percentage @@ -46,10 +47,12 @@ enum EnumConditionExpression{ OPERATOR_WITHDRAWABLE_CASH_LARGER_THAN, // params: uint256 amount OPERATOR_WITHDRAWABLE_CASH_LESS_THAN, // params: uint256 amount OPERATOR_WITHDRAWABLE_CASH_IN_RANGE, // params: uint256 amount + OPERATOR_WITHDRAWABLE_DIVIDENDS_LARGER_THAN, // params: uint256 amount + OPERATOR_WITHDRAWABLE_DIVIDENDS_LESS_THAN, // params: uint256 amount + OPERATOR_WITHDRAWABLE_DIVIDENDS_IN_RANGE, // params: uint256 amount + + OPERATOR_ADDRESS_IN_LIST, // params: address[] the list of addresses - OPERATOR_ADDRESS_IN_LIST, // params: address[] the list of addresses、 - OPERATOR_NAME_IN_LIST, // params: string[] the list of names - PlaceHolder1, PlaceHolder2, PlaceHolder3, @@ -78,15 +81,30 @@ enum EnumConditionExpression{ TIMESTAMP_LARGER_THAN, TIMESTAMP_LESS_THAN, TIMESTAMP_IN_RANGE, - MEMBER_VOTING_WEIGHT_LARGER_THAN, - MEMBER_VOTING_WEIGHT_LESS_THAN, - MEMBER_VOTING_WEIGHT_IN_RANGE, - MEMBER_DIVIDEND_WEIGHT_LARGER_THAN, - MEMBER_DIVIDEND_WEIGHT_LESS_THAN, - MEMBER_DIVIDEND_WEIGHT_IN_RANGE, - MEMBER_TOKEN_X_LARGER_THAN, - MEMBER_TOKEN_X_LESS_THAN, - MEMBER_TOKEN_X_IN_RANGE, + + DATE_YEAR_LARGER_THAN, + DATE_YEAR_LESS_THAN, + DATE_YEAR_IN_RANGE, + DATE_MONTH_LARGER_THAN, + DATE_MONTH_LESS_THAN, + DATE_MONTH_IN_RANGE, + DATE_DAY_LARGER_THAN, + DATE_DAY_LESS_THAN, + DATE_DAY_IN_RANGE, + DATE_HOUR_LARGER_THAN, + DATE_HOUR_LESS_THAN, + DATE_HOUR_IN_RANGE, + + ADDRESS_VOTING_WEIGHT_LARGER_THAN, + ADDRESS_VOTING_WEIGHT_LESS_THAN, + ADDRESS_VOTING_WEIGHT_IN_RANGE, + ADDRESS_DIVIDEND_WEIGHT_LARGER_THAN, + ADDRESS_DIVIDEND_WEIGHT_LESS_THAN, + ADDRESS_DIVIDEND_WEIGHT_IN_RANGE, + ADDRESS_TOKEN_X_LARGER_THAN, + ADDRESS_TOKEN_X_LESS_THAN, + ADDRESS_TOKEN_X_IN_RANGE, + TOTAL_VOTING_WEIGHT_LARGER_THAN, TOTAL_VOTING_WEIGHT_LESS_THAN, TOTAL_VOTING_WEIGHT_IN_RANGE, @@ -97,6 +115,19 @@ enum EnumConditionExpression{ TOTAL_CASH_LESS_THAN, TOTAL_CASH_IN_RANGE, TOTAL_CASH_EQUALS, + + TOKEN_IN_list_VOTING_WEIGHT_LARGER_THAN, + TOKEN_IN_list_VOTING_WEIGHT_LESS_THAN, + TOKEN_IN_list_VOTING_WEIGHT_IN_RANGE, + TOKEN_IN_list_DIVIDEND_WEIGHT_LARGER_THAN, + TOKEN_IN_list_DIVIDEND_WEIGHT_LESS_THAN, + TOKEN_IN_list_DIVIDEND_WEIGHT_IN_RANGE, + TOKEN_IN_list_AMOUNT_LARGER_THAN, + TOKEN_IN_list_AMOUNT_LESS_THAN, + TOKEN_IN_list_AMOUNT_IN_RANGE, + TOKEN_IN_list_AMOUNT_EQUALS, + + PlaceHolder21, PlaceHolder22, PlaceHolder23, @@ -152,30 +183,62 @@ enum EnumConditionExpression{ OPERATION_EVERYONE_SINCE_LAST_TIME_LARGER_THAN, OPERATION_EVERYONE_SINCE_LAST_TIME_LESS_THAN, OPERATION_EVERYONE_SINCE_LAST_TIME_IN_RANGE, - OPEARTION_BY_GROUP_SINCE_LAST_TIME_LARGER_THAN, - OPEARTION_BY_GROUP_SINCE_LAST_TIME_LESS_THAN, - OPEARTION_BY_GROUP_SINCE_LAST_TIME_IN_RANGE, - + OPERATION_BATCH_SIZE_LARGER_THAN, + OPERATION_BATCH_SIZE_LESS_THAN, + OPERATION_BATCH_SIZE_IN_RANGE, + OPERATION_BATCH_SIZE_EQUALS, + PlaceHolder61, + PlaceHolder62, + PlaceHolder63, + PlaceHolder64, + PlaceHolder65, + PlaceHolder66, + PlaceHolder67, + PlaceHolder68, + PlaceHolder69, + PlaceHolder70, + PlaceHolder71, + PlaceHolder72, + PlaceHolder73, + PlaceHolder74, + PlaceHolder75, + PlaceHolder76, + PlaceHolder77, + PlaceHolder78, + PlaceHolder79, + PlaceHolder80, // ---------------------------------------------------------- // Oracle and remote call related expressions - ORACLE_CALL_RESULT_EQUALS, - ORACLE_CALL_RESULT_LARGER_THAN, - ORACLE_CALL_RESULT_LESS_THAN, - ORACLE_CALL_RESULT_IN_RANGE, - ORACLE_CALL_1_LESS_THAN_2, - ORACLE_CALL_1_LARGER_THAN_2, - ORACLE_CALL_1_EQUALS_2, - PlaceHolder141, - PlaceHolder142, - PlaceHolder143, - PlaceHolder144, - PlaceHolder145, - PlaceHolder146, - PlaceHolder147, - PlaceHolder148, - PlaceHolder149, - PlaceHolder150, + ORACLE_CALL_UINT256_RESULT_EQUALS, + ORACLE_CALL_UINT256_RESULT_LARGER_THAN, + ORACLE_CALL_UINT256_RESULT_LESS_THAN, + ORACLE_CALL_UINT256_RESULT_IN_RANGE, + ORACLE_CALL_UINT256_1_LESS_THAN_2, + ORACLE_CALL_UINT256_1_LARGER_THAN_2, + ORACLE_CALL_UINT256_1_EQUALS_2, + ORACLE_CALL_STRING_RESULT_EQUALS, + ORACLE_CALL_STRING_1_EQUALS_2, + PlaceHolder81, + PlaceHolder82, + PlaceHolder83, + PlaceHolder84, + PlaceHolder85, + PlaceHolder86, + PlaceHolder87, + PlaceHolder88, + PlaceHolder89, + PlaceHolder90, + PlaceHolder91, + PlaceHolder92, + PlaceHolder93, + PlaceHolder94, + PlaceHolder95, + PlaceHolder96, + PlaceHolder97, + PlaceHolder98, + PlaceHolder99, + PlaceHolder100, // ---------------------------------------------------------- @@ -184,33 +247,82 @@ enum EnumConditionExpression{ MINT_TOKENS_TOTAL_AMOUNT_LESS_THAN, MINT_TOKENS_TOTAL_AMOUNT_IN_RANGE, MINT_TOKENS_TOTAL_AMOUNT_EQUALS, - MINT_TOKENS_TARGET_ADDRESS_IN_LIST, + + MINT_TOKENS_ALL_TARGETS_ADDRESS_IN_LIST, + MINT_TOKENS_ALL_TARGETS_ADDRESS_TO_ITSELF, + MINT_TOKENS_ALL_TARGETS_ADDRESS_TO_ROLE_INDEX_IN_LIST, MINT_TOKENS_TOTAL_AMOUNT_LEVEL_X_MORE_THAN, MINT_TOKENS_TOTAL_AMOUNT_LEVEL_X_LESS_THAN, MINT_TOKENS_TOTAL_AMOUNT_LEVEL_X_IN_RANGE, MINT_TOKENS_TOTAL_AMOUNT_LEVEL_X_EQUALS, + MINT_TOKENS_TOTAL_VOTING_WEIGHT_LARGER_THAN, + MINT_TOKENS_TOTAL_VOTING_WEIGHT_LESS_THAN, + MINT_TOKENS_TOTAL_VOTING_WEIGHT_IN_RANGE, + MINT_TOKENS_TOTAL_DIVIDEND_WEIGHT_LARGER_THAN, + MINT_TOKENS_TOTAL_DIVIDEND_WEIGHT_LESS_THAN, + MINT_TOKENS_TOTAL_DIVIDEND_WEIGHT_IN_RANGE, + MINT_TOKEN_EACH_BATCH_AMOUNT_MORE_THAN, + MINT_TOKEN_EACH_BATCH_AMOUNT_LESS_THAN, + MINT_TOKEN_EACH_BATCH_AMOUNT_IN_RANGE, + MINT_TOKEN_EACH_BATCH_AMOUNT_EQUALS, + MINT_TOKEN_EACH_BATCH_AMOUNT_LEVEL_X_MORE_THAN, + MINT_TOKEN_EACH_BATCH_AMOUNT_LEVEL_X_LESS_THAN, + MINT_TOKEN_EACH_BATCH_AMOUNT_LEVEL_X_IN_RANGE, + MINT_TOKEN_EACH_BATCH_AMOUNT_LEVEL_X_EQUALS, + MINT_TOKEN_EACH_BATCH_TARGET_ADDRESS_IN_LIST, + MINT_TOKEN_EACH_BATCH_TARGET_ADDRESS_TO_ROLE_INDEX_IN_LIST, + + PlaceHolder101, + PlaceHolder102, + PlaceHolder103, + PlaceHolder104, + PlaceHolder105, + PlaceHolder106, + PlaceHolder107, + PlaceHolder108, + PlaceHolder109, + PlaceHolder110, + PlaceHolder111, + PlaceHolder112, + PlaceHolder113, + PlaceHolder114, + PlaceHolder115, + PlaceHolder116, + PlaceHolder117, + PlaceHolder118, + PlaceHolder119, + PlaceHolder120, - - - /** - * This condition expression will be ture if the current operation is - * minting new tokens in token class array to any addresses with - * the total voting weight larger than the amount X in the condition node. - * params: uint256 totalVotingWeight - */ - MINT_TOKEN_VOTING_WEIGHT_MORE_THAN, - - /** - * This condition expression will be ture if the current operation is - * minting new tokens in token class array to any addresses with - * the total dividend weight larger than the amount X in the condition node. - * params: uint256 totalDividendWeight - */ - MINT_TOKEN_DIVIDEND_WEIGHT_MORE_THAN, - - - //----------------------------------------------------------- - // burn token related expressions + // ---------------------------------------------------------- + // BURN token operation related expressions + BURN_TOKENS_TOTAL_AMOUNT_MORE_THAN, + BURN_TOKENS_TOTAL_AMOUNT_LESS_THAN, + BURN_TOKENS_TOTAL_AMOUNT_IN_RANGE, + BURN_TOKENS_TOTAL_AMOUNT_EQUALS, + + BURN_TOKENS_ALL_TARGETS_ADDRESS_IN_LIST, + BURN_TOKENS_ALL_TARGETS_ADDRESS_TO_ITSELF, + BURN_TOKENS_ALL_TARGETS_ADDRESS_TO_ROLE_INDEX_IN_LIST, + BURN_TOKENS_TOTAL_AMOUNT_LEVEL_X_MORE_THAN, + BURN_TOKENS_TOTAL_AMOUNT_LEVEL_X_LESS_THAN, + BURN_TOKENS_TOTAL_AMOUNT_LEVEL_X_IN_RANGE, + BURN_TOKENS_TOTAL_AMOUNT_LEVEL_X_EQUALS, + BURN_TOKENS_TOTAL_VOTING_WEIGHT_LARGER_THAN, + BURN_TOKENS_TOTAL_VOTING_WEIGHT_LESS_THAN, + BURN_TOKENS_TOTAL_VOTING_WEIGHT_IN_RANGE, + BURN_TOKENS_TOTAL_DIVIDEND_WEIGHT_LARGER_THAN, + BURN_TOKENS_TOTAL_DIVIDEND_WEIGHT_LESS_THAN, + BURN_TOKENS_TOTAL_DIVIDEND_WEIGHT_IN_RANGE, + BURN_TOKEN_EACH_BATCH_AMOUNT_MORE_THAN, + BURN_TOKEN_EACH_BATCH_AMOUNT_LESS_THAN, + BURN_TOKEN_EACH_BATCH_AMOUNT_IN_RANGE, + BURN_TOKEN_EACH_BATCH_AMOUNT_EQUALS, + BURN_TOKEN_EACH_BATCH_AMOUNT_LEVEL_X_MORE_THAN, + BURN_TOKEN_EACH_BATCH_AMOUNT_LEVEL_X_LESS_THAN, + BURN_TOKEN_EACH_BATCH_AMOUNT_LEVEL_X_IN_RANGE, + BURN_TOKEN_EACH_BATCH_AMOUNT_LEVEL_X_EQUALS, + BURN_TOKEN_EACH_BATCH_TARGET_ADDRESS_IN_LIST, + BURN_TOKEN_EACH_BATCH_TARGET_ADDRESS_TO_ROLE_INDEX_IN_LIST, // ---------------------------------------------------------- /** @@ -226,6 +338,13 @@ enum EnumConditionExpression{ */ TRANSFER_TOKEN_MORE_THAN, + /** + * This condition expression will be ture if: + * 1. the current operation is + * 2. transfering tokens to address is in address array + + + /** * This condition expression will be ture if: * 1. the current operation is diff --git a/darc-protocol/contracts/protocol/Plugin/Plugin.sol b/darc-protocol/contracts/protocol/Plugin/Plugin.sol index af93aa3..89d4249 100644 --- a/darc-protocol/contracts/protocol/Plugin/Plugin.sol +++ b/darc-protocol/contracts/protocol/Plugin/Plugin.sol @@ -1,8 +1,6 @@ // SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.19; -import './EnumConditionExpression.sol'; - /** * @notice condition node types */ @@ -128,7 +126,7 @@ struct ConditionNode { /** * the condition expression of the current condition node */ - EnumConditionExpression conditionExpression; + uint256 conditionExpression; /** * a list of the child nodes of the current condition node diff --git a/darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts b/darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts index a855f32..37ee7dd 100644 --- a/darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts +++ b/darc-protocol/test/MultiDARCTest/Multi_DARC_call_test.ts @@ -78,7 +78,7 @@ describe("test for multi DARC call test", function () { node_allow_signer1_target1 ], votingRuleIndex: 0, - note: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8 should operate", + notes: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8 should operate", bIsEnabled: true, bIsInitialized: true, bIsBeforeOperation: true, @@ -91,7 +91,7 @@ describe("test for multi DARC call test", function () { }], } ) - + // next get the ABI of the darc2 contract entrance, and encode it //const abiDARC2 = darc2.interface.getFunction("entrance").format(); diff --git a/darc-protocol/test/pluginTest/operator_AND_test.ts b/darc-protocol/test/pluginTest/operator_AND_test.ts index 2e92ce9..c0eab91 100644 --- a/darc-protocol/test/pluginTest/operator_AND_test.ts +++ b/darc-protocol/test/pluginTest/operator_AND_test.ts @@ -14,7 +14,7 @@ const target2 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; const target3 = '0x870526b7973b56163a6997bb7c886f5e4ea53638'; -describe.only("operator OR test", function () { +describe("operator AND test", function () { it ("should pass operator OR test", async function () { diff --git a/darc-protocol/test/pluginTest/operator_OR_test.ts b/darc-protocol/test/pluginTest/operator_OR_test.ts index 7b4db86..4d17974 100644 --- a/darc-protocol/test/pluginTest/operator_OR_test.ts +++ b/darc-protocol/test/pluginTest/operator_OR_test.ts @@ -14,7 +14,7 @@ const target2 = '0x90F79bf6EB2c4f870365E785982E1f101E93b906'; const target3 = '0x870526b7973b56163a6997bb7c886f5e4ea53638'; -describe.only("operator OR test", function () { +describe("operator OR test", function () { it ("should pass operator OR test", async function () { diff --git a/darc-specs/opcode.md b/darc-specs/opcode.md new file mode 100644 index 0000000..0c5a1f5 --- /dev/null +++ b/darc-specs/opcode.md @@ -0,0 +1,41 @@ +DARC Instruction Set Opcode Table + +| Opcode ID | Opcode Name | Opcode Parameter | Opcode Notes | +|-----------|----------------------------------------------|----------------------------------------------------------|------------------------------------------------------------| +| 0 | UNDEFINED | | Invalid Operation | +| 1 | BATCH_MINT_TOKENS | ADDRESS_2DARRAY[0] toAddressArray, UINT256_2DARRAY[0] tokenClassArray, UINT256_2DARRAY[1] amountArray | Batch Mint Token Operation | +| 2 | BATCH_CREATE_TOKEN_CLASSES | STRING_ARRAY[] nameArray, UINT256_2DARRAY[0] tokenIndexArray, UINT256_2DARRAY[1] votingWeightArray, UINT256_2DARRAY[2] dividendWeightArray | Batch Create Token Class Operation | +| 3 | BATCH_TRANSFER_TOKENS | ADDRESS_2DARRAY[0] toAddressArray, UINT256_2DARRAY[0] tokenClassArray, UINT256_2DARRAY[1] amountArray | Batch Transfer Token Operation | +| 4 | BATCH_TRANSFER_TOKENS_FROM_TO | ADDRESS_2DARRAY[0] fromAddressArray, ADDRESS_2DARRAY[1] toAddressArray, UINT256_2DARRAY[0] tokenClassArray, UINT256_2DARRAY[1] amountArray | Batch Transfer Token From Addr A to Addr B Operation | +| 5 | BATCH_BURN_TOKENS | UINT256_2DARRAY[0] tokenClassArray, UINT256_2DARRAY[1] amountArray | Batch Burn Token Operation | +| 6 | BATCH_BURN_TOKENS_FROM | ADDRESS_2DARRAY[0] fromAddressArray, UINT256_2DARRAY[0] tokenClassArray, UINT256_2DARRAY[1] amountArray | Batch Burn Token From Addr A Operation | +| 7 | BATCH_ADD_MEMBERSHIP | ADDRESS_2DARRAY[0] memberAddressArray, UINT256_2DARRAY[0] memberRoleArray, STRING_ARRAY memberNameArray | Batch Add Member Operation | +| 8 | BATCH_SUSPEND_MEMBERSHIP | ADDRESS_2DARRAY[0] memberAddressArray | Batch Suspend Member Operation | +| 9 | BATCH_RESUME_MEMBERSHIP | ADDRESS_2DARRAY[0] memberAddressArray | Batch Resume Member Operation | +| 10 | BATCH_CHANGE_MEMBER_ROLES | ADDRESS_2DARRAY[0] memberAddressArray, UINT256_2DARRAY[0] memberRoleArray | Batch Change Member Role Operation | +| 11 | BATCH_CHANGE_MEMBER_NAMES | ADDRESS_2DARRAY[0] memberAddressArray, STRING_ARRAY memberNameArray | Batch Change Member Name Operation | +| 12 | BATCH_ADD_PLUGINS | Plugin[] pluginList | Batch Add Emergency Agent Operation | +| 13 | BATCH_ENABLE_PLUGINS | UINT256_ARRAY[0] pluginIndexArray, BOOL_ARRAY isBeforeOperationArray | Batch Enable Plugin Operation | +| 14 | BATCH_DISABLE_PLUGINS | UINT256_ARRAY[0] pluginIndexArray, BOOL_ARRAY isBeforeOperationArray | Batch Disable Plugin Operation | +| 15 | BATCH_ADD_AND_ENABLE_PLUGINS | Plugin[] pluginList | Batch Add and Enable Plugin Operation | +| 16 | BATCH_SET_PARAMETERS | MachineParameter[] parameterNameArray, UINT256_2DARRAY[0] parameterValueArray | Batch Set Parameter Operation | +| 17 | BATCH_ADD_WITHDRAWABLE_BALANCES | ADDRESS_2DARRAY[0] addressArray, UINT256_2DARRAY[0] amountArray | Batch Add Withdrawable Balance Operation | +| 18 | BATCH_REDUCE_WITHDRAWABLE_BALANCES | ADDRESS_2DARRAY[0] addressArray, UINT256_2DARRAY[0] amountArray | Batch Reduce Withdrawable Balance Operation | +| 19 | BATCH_ADD_VOTING_RULES | VotingRule[] votingRuleList | Batch Add Voting Rules Operation | +| 20 | BATCH_PAY_TO_MINT_TOKENS | ADDRESS_2DARRAY[0] addressArray, UINT256_2DARRAY[0] tokenClassArray, UINT256_2DARRAY[1] amountArray, UINT256_2DARRAY[2] priceArray, UINT256_2DARRAY[3] dividendableFlag | Batch Pay to Mint Tokens Operation | +| 21 | BATCH_PAY_TO_TRANSFER_TOKENS | ADDRESS_2DARRAY[0] toAddressArray, UINT256_2DARRAY[0] tokenClassArray, UINT256_2DARRAY[1] amountArray, UINT256_2DARRAY[2] priceArray, UINT256_2DARRAY[3] dividendableFlag | Pay some cash to transfer tokens Operation (product coins) | +| 22 | ADD_EMERGENCY | ADDRESS_2DARRAY[0] addressArray | Add an array of address as emergency agents Operation | +| 23 | RESERVED_ID_23 | | Reserved ID 23 DO NOT USE | +| 24 | CALL_EMERGENCY | UINT256_2DARRAY[0] addressArray | Call emergency agents to handle emergency situations | +| 25 | CALL_CONTRACT_ABI | ADDRESS_2D[0][0] contractAddress, bytes abi, UINT256_2DARRAY[0][0] value | Call a contract with the given abi Operation | +| 26 | PAY_CASH | uint256 amount, uint256 paymentType, uint256 dividendable | Pay some cash Operation | +| 27 | OFFER_DIVIDENDS | | Calculate the dividends and offer to token holders Operation| +| 28 | RESERVED_ID_28 | | Reserved ID 28 DO NOT USE | +| 29 | SET_APPROVAL_FOR_ALL_OPERATIONS | ADDRESS_2DARRAY[0][0] targetAddress | Set the approval for all transfer operations by address Operation | +| 30 | BATCH_BURN_TOKENS_AND_REFUND | UINT256_2D[0] tokenClassArray, UINT256_2D[1] amountArray, UINT256_2D[2] priceArray | Batch Burn tokens and Refund Operation | +| 31 | ADD_STORAGE_IPFS_HASH | STRING_ARRAY[0][0] IFPSHash | Add storage IPFS hash to the storage list permanently Operation | +| 32 | VOTE | bool[] voteArray | Vote for a voting pending program Operation | +| 33 | EXECUTE_PROGRAM | | Execute a program that has been voted and approved Operation | +| 34 | END_EMERGENCY | | Emergency mode termination Operation | +| 35 | UPGRADE_TO_ADDRESS | ADDRESS_2DARRAY[0][0] targetAddress | Upgrade the contract to a new contract address Operation | +| 36 | CONFIRM_UPGRAED_FROM_ADDRESS | ADDRESS_2DARRAY[0][0] fromAddress | Accepting current DARCs to be upgraded from the old contract address Operation | diff --git a/darc-specs/plugin.md b/darc-specs/plugin.md new file mode 100644 index 0000000..578c7de --- /dev/null +++ b/darc-specs/plugin.md @@ -0,0 +1,338 @@ +| ID | Plugin Name | Plugin Parameter| Plugin Notes| +|------------|------|------|-------| +| 0 | UNDEFINED | | Invalid Operation | +| 1 | OPERATOR_NAME_EQUALS| STRING_ARRAY[0] operatorName | The operator name is exactly the same as the given string | +| 2 | OPERATOR_ROLE_INDEX_EQUALS| UINT256_2DARRAY[0][0] operatorRoleIndex | The operator role index is exactly the same as operatorRoleIndex | +| 3 | OPERATOR_ADDRESS_EQUALS | address operatorAddress | The operator address equals operatorAddress| +| 4 | OPERATOR_ROLE_GREATER_THAN | UINT256_2DARRAY[0][0] operatorRoleIndex | The operator role index is greater than operatorRoleIndex| +| 5 | OPERATOR_ROLE_LESS_THAN | UINT256_2DARRAY[0][0] operatorRoleIndex | The operator role index is less than operatorRoleIndex| +| 6 | OPERATOR_ROLE_IN_RANGE| UINT256_2DARRAY[0][0] operatorRoleIndex || +| 7 | OPERATOR_ROLE_IN_LIST | UINT256_2DARRAY[0][0]_2DARRAY[0] operatorRoleIndexArray|| +| 8 | OPERATOR_TOKEN_X_AMOUNT_GREATER_THAN | UINT256_2DARRAY[0][0] tokenClass, UINT256_2DARRAY[0][0] amount || +| 9 | OPERATOR_TOKEN_X_AMOUNT_LESS_THAN | UINT256_2DARRAY[0][0] tokenClass, UINT256_2DARRAY[0][0] amount || +| 10 | OPERATOR_TOKEN_X_AMOUNT_IN_RANGE | UINT256_2DARRAY[0][0] tokenClass, UINT256_2DARRAY[0][0] amount || +| 11 | OPERATOR_TOKEN_X_AMOUNT_EQUALS| UINT256_2DARRAY[0][0] tokenClass, UINT256_2DARRAY[0][0] amount || +| 12 | OPERATOR_TOKEN_X_PERCENTAGE_GREATER_THAN | UINT256_2DARRAY[0][0] tokenClass, UINT256_2DARRAY[0][0] percentage || +| 13 | OPERATOR_TOKEN_X_PERCENTAGE_LESS_THAN | UINT256_2DARRAY[0][0] tokenClass, UINT256_2DARRAY[0][0] percentage || +| 14 | OPERATOR_TOKEN_X_PERCENTAGE_IN_RANGE | UINT256_2DARRAY[0][0] tokenClass, UINT256_2DARRAY[0][0] percentage || +| 15 | OPERATOR_TOKEN_X_PERCENTAGE_EQUALS| UINT256_2DARRAY[0][0] tokenClass, UINT256_2DARRAY[0][0] percentage || +| 16 | OPERATOR_VOTING_WEIGHT_GREATER_THAN| UINT256_2DARRAY[0][0] amount || +| 17 | OPERATOR_VOTING_WEIGHT_LESS_THAN | UINT256_2DARRAY[0][0] amount || +| 18 | OPERATOR_VOTING_WEIGHT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 19 | OPERATOR_DIVIDEND_WEIGHT_GREATER_THAN | UINT256_2DARRAY[0][0] amount || +| 20 | OPERATOR_DIVIDEND_WEIGHT_LESS_THAN| UINT256_2DARRAY[0][0] amount || +| 21 | OPERATOR_DIVIDEND_WEIGHT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 22 | OPERATOR_DIVIDEND_WITHDRAWABLE_GREATER_THAN | UINT256_2DARRAY[0][0] amount || +| 23 | OPERATOR_DIVIDEND_WITHDRAWABLE_LESS_THAN | UINT256_2DARRAY[0][0] amount || +| 24 | OPERATOR_DIVIDEND_WITHDRAWABLE_IN_RANGE| UINT256_2DARRAY[0][0] amount || +| 25 | OPERATOR_WITHDRAWABLE_CASH_GREATER_THAN | UINT256_2DARRAY[0][0] amount || +| 26 | OPERATOR_WITHDRAWABLE_CASH_LESS_THAN | UINT256_2DARRAY[0][0] amount || +| 27 | OPERATOR_WITHDRAWABLE_CASH_IN_RANGE| UINT256_2DARRAY[0][0] amount || +| 28 | OPERATOR_WITHDRAWABLE_DIVIDENDS_GREATER_THAN| UINT256_2DARRAY[0][0] amount || +| 29 | OPERATOR_WITHDRAWABLE_DIVIDENDS_LESS_THAN | UINT256_2DARRAY[0][0] amount || +| 30 | OPERATOR_WITHDRAWABLE_DIVIDENDS_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 31 | OPERATOR_ADDRESS_IN_LIST | address[] the list of addresses || +| 32 | Placeholder32 | | | +| 33 | Placeholder33 | | | +| 34 | Placeholder34 | | | +| 35 | Placeholder35 | | | +| 36 | Placeholder36 | | | +| 37 | Placeholder37 | | | +| 38 | Placeholder38 | | | +| 39 | Placeholder39 | | | +| 40 | Placeholder40 | | | +| 41 | Placeholder41 | | | +| 42 | Placeholder42 | | | +| 43 | Placeholder43 | | | +| 44 | Placeholder44 | | | +| 45 | Placeholder45 | | | +| 46 | Placeholder46 | | | +| 47 | Placeholder47 | | | +| 48 | Placeholder48 | | | +| 49 | Placeholder49 | | | +| 50 | Placeholder50 | | | +| 51 | TIMESTAMP_GREATER_THAN | uint256 timestamp || +| 52 | TIMESTAMP_LESS_THAN | uint256 timestamp || +| 53 | TIMESTAMP_IN_RANGE | uint256 timestamp, uint256 timestamp || +| 54 | DATE_YEAR_GREATER_THAN | uint256 year || +| 55 | DATE_YEAR_LESS_THAN | uint256 year || +| 56 | DATE_YEAR_IN_RANGE | uint256 year, uint256 year || +| 57 | DATE_MONTH_GREATER_THAN | uint256 month || +| 58 | DATE_MONTH_LESS_THAN | uint256 month || +| 59 | DATE_MONTH_IN_RANGE | uint256 month, uint256 month || +| 60 | DATE_DAY_GREATER_THAN | uint256 day || +| 61 | DATE_DAY_LESS_THAN | uint256 day || +| 62 | DATE_DAY_IN_RANGE | uint256 day, uint256 day || +| 63 | DATE_HOUR_GREATER_THAN | uint256 hour || +| 64 | DATE_HOUR_LESS_THAN | uint256 hour || +| 65 | DATE_HOUR_IN_RANGE | uint256 hour, uint256 hour || +| 66 | ADDRESS_VOTING_WEIGHT_GREATER_THAN | UINT256_2DARRAY[0][0] amount || +| 67 | ADDRESS_VOTING_WEIGHT_LESS_THAN | UINT256_2DARRAY[0][0] amount || +| 68 | ADDRESS_VOTING_WEIGHT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 69 | ADDRESS_DIVIDEND_WEIGHT_GREATER_THAN | UINT256_2DARRAY[0][0] amount || +| 70 | ADDRESS_DIVIDEND_WEIGHT_LESS_THAN| UINT256_2DARRAY[0][0] amount || +| 71 | ADDRESS_DIVIDEND_WEIGHT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 72 | ADDRESS_TOKEN_X_GREATER_THAN | UINT256_2DARRAY[0][0] tokenClass, UINT256_2DARRAY[0][0] amount || +| 73 | ADDRESS_TOKEN_X_LESS_THAN | UINT256_2DARRAY[0][0] tokenClass, UINT256_2DARRAY[0][0] amount || +| 74 | ADDRESS_TOKEN_X_IN_RANGE | UINT256_2DARRAY[0][0] tokenClass, UINT256_2DARRAY[0][0] amount || +| 75 | TOTAL_VOTING_WEIGHT_GREATER_THAN| UINT256_2DARRAY[0][0] amount || +| 76 | TOTAL_VOTING_WEIGHT_LESS_THAN | UINT256_2DARRAY[0][0] amount || +| 77 | TOTAL_VOTING_WEIGHT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 78 | TOTAL_DIVIDEND_WEIGHT_GREATER_THAN | UINT256_2DARRAY[0][0] amount || +| 79 | TOTAL_DIVIDEND_WEIGHT_LESS_THAN| UINT256_2DARRAY[0][0] amount || +| 80 | TOTAL_DIVIDEND_WEIGHT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 81 | TOTAL_CASH_GREATER_THAN | UINT256_2DARRAY[0][0] amount || +| 82 | TOTAL_CASH_LESS_THAN | UINT256_2DARRAY[0][0] amount || +| 83 | TOTAL_CASH_IN_RANGE| UINT256_2DARRAY[0][0] amount || +| 84 | TOTAL_CASH_EQUALS| UINT256_2DARRAY[0][0] amount || +| 85 | TOKEN_IN_LIST_VOTING_WEIGHT_GREATER_THAN| UINT256_2DARRAY[0][0] amount || +| 86 | TOKEN_IN_LIST_VOTING_WEIGHT_LESS_THAN | UINT256_2DARRAY[0][0] amount || +| 87 | TOKEN_IN_LIST_VOTING_WEIGHT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 88 | TOKEN_IN_LIST_DIVIDEND_WEIGHT_GREATER_THAN | UINT256_2DARRAY[0][0] amount || +| 89 | TOKEN_IN_LIST_DIVIDEND_WEIGHT_LESS_THAN| UINT256_2DARRAY[0][0] amount || +| 90 | TOKEN_IN_LIST_DIVIDEND_WEIGHT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 91 | TOKEN_IN_LIST_AMOUNT_GREATER_THAN | UINT256_2DARRAY[0][0] amount || +| 92 | TOKEN_IN_LIST_AMOUNT_LESS_THAN | UINT256_2DARRAY[0][0] amount || +| 93 | TOKEN_IN_LIST_AMOUNT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 94 | TOKEN_IN_LIST_AMOUNT_EQUALS| UINT256_2DARRAY[0][0] amount || +| 95 | Placeholder95 | | | +| 96 | Placeholder96 | | | +| 97 | Placeholder97 | | | +| 98 | Placeholder98 | | | +| 99 | Placeholder99 | | | +| 100 | Placeholder100 | | | +| 101 | Placeholder101 | | | +| 102 | Placeholder102 | | | +| 103 | Placeholder103 | | | +| 104 | Placeholder104 | | | +| 105 | Placeholder105 | | | +| 106 | Placeholder106 | | | +| 107 | Placeholder107 | | | +| 108 | Placeholder108 | | | +| 109 | Placeholder109 | | | +| 110 | Placeholder110 | | | +| 111 | Placeholder111 | | | +| 112 | Placeholder112 | | | +| 113 | Placeholder113 | | | +| 114 | Placeholder114 | | | +| 115 | Placeholder115 | | | +| 116 | Placeholder116 | | | +| 117 | Placeholder117 | | | +| 118 | Placeholder118 | | | +| 119 | Placeholder119 | | | +| 120 | Placeholder120 | | | +| 121 | Placeholder121 | | | +| 122 | Placeholder122 | | | +| 123 | Placeholder123 | | | +| 124 | Placeholder124 | | | +| 125 | Placeholder125 | | | +| 126 | Placeholder126 | | | +| 127 | Placeholder127 | | | +| 128 | Placeholder128 | | | +| 129 | Placeholder129 | | | +| 130 | Placeholder130 | | | +| 131 | Placeholder131 | | | +| 132 | Placeholder132 | | | +| 133 | Placeholder133 | | | +| 134 | Placeholder134 | | | +| 135 | Placeholder135 | | | +| 136 | Placeholder136 | | | +| 137 | Placeholder137 | | | +| 138 | Placeholder138 | | | +| 139 | Placeholder139 | | | +| 140 | Placeholder140 | | | +| 141 | Placeholder141 | | | +| 142 | Placeholder142 | | | +| 143 | Placeholder143 | | | +| 144 | Placeholder144 | | | +| 145 | Placeholder145 | | | +| 146 | Placeholder146 | | | +| 147 | Placeholder147 | | | +| 148 | Placeholder148 | | | +| 149 | Placeholder149 | | | +| 150 | Placeholder150 | | | +| 53 | TIMESTAMP_IN_RANGE | uint256 timestamp, uint256 timestamp || +| 54 | DATE_YEAR_GREATER_THAN | uint256 year || +| 55 | DATE_YEAR_LESS_THAN | uint256 year || +| 56 | DATE_YEAR_IN_RANGE | uint256 year, uint256 year || +| 57 | DATE_MONTH_GREATER_THAN | uint256 month || +| 58 | DATE_MONTH_LESS_THAN | uint256 month || +| 59 | DATE_MONTH_IN_RANGE | uint256 month, uint256 month || +| 60 | DATE_DAY_GREATER_THAN | uint256 day || +| 61 | DATE_DAY_LESS_THAN | uint256 day || +| 62 | DATE_DAY_IN_RANGE | uint256 day, uint256 day || +| 63 | DATE_HOUR_GREATER_THAN | uint256 hour || +| 64 | DATE_HOUR_LESS_THAN | uint256 hour || +| 65 | DATE_HOUR_IN_RANGE | uint256 hour, uint256 hour || +| 66 | ADDRESS_VOTING_WEIGHT_GREATER_THAN | UINT256_2DARRAY[0][0] amount || +| 67 | ADDRESS_VOTING_WEIGHT_LESS_THAN | UINT256_2DARRAY[0][0] amount || +| 68 | ADDRESS_VOTING_WEIGHT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 69 | ADDRESS_DIVIDEND_WEIGHT_GREATER_THAN | UINT256_2DARRAY[0][0] amount || +| 70 | ADDRESS_DIVIDEND_WEIGHT_LESS_THAN| UINT256_2DARRAY[0][0] amount || +| 71 | ADDRESS_DIVIDEND_WEIGHT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 72 | ADDRESS_TOKEN_X_GREATER_THAN | UINT256_2DARRAY[0][0] tokenClass, UINT256_2DARRAY[0][0] amount || +| 73 | ADDRESS_TOKEN_X_LESS_THAN | UINT256_2DARRAY[0][0] tokenClass, UINT256_2DARRAY[0][0] amount || +| 74 | ADDRESS_TOKEN_X_IN_RANGE | UINT256_2DARRAY[0][0] tokenClass, UINT256_2DARRAY[0][0] amount || +| 75 | TOTAL_VOTING_WEIGHT_GREATER_THAN| UINT256_2DARRAY[0][0] amount || +| 76 | TOTAL_VOTING_WEIGHT_LESS_THAN | UINT256_2DARRAY[0][0] amount || +| 77 | TOTAL_VOTING_WEIGHT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 78 | TOTAL_DIVIDEND_WEIGHT_GREATER_THAN | UINT256_2DARRAY[0][0] amount || +| 79 | TOTAL_DIVIDEND_WEIGHT_LESS_THAN| UINT256_2DARRAY[0][0] amount || +| 80 | TOTAL_DIVIDEND_WEIGHT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 81 | TOTAL_CASH_GREATER_THAN | UINT256_2DARRAY[0][0] amount || +| 82 | TOTAL_CASH_LESS_THAN | UINT256_2DARRAY[0][0] amount || +| 83 | TOTAL_CASH_IN_RANGE| UINT256_2DARRAY[0][0] amount || +| 84 | TOTAL_CASH_EQUALS| UINT256_2DARRAY[0][0] amount || +| 85 | TOKEN_IN_LIST_VOTING_WEIGHT_GREATER_THAN| UINT256_2DARRAY[0][0] amount || +| 86 | TOKEN_IN_LIST_VOTING_WEIGHT_LESS_THAN | UINT256_2DARRAY[0][0] amount || +| 87 | TOKEN_IN_LIST_VOTING_WEIGHT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 88 | TOKEN_IN_LIST_DIVIDEND_WEIGHT_GREATER_THAN | UINT256_2DARRAY[0][0] amount || +| 89 | TOKEN_IN_LIST_DIVIDEND_WEIGHT_LESS_THAN| UINT256_2DARRAY[0][0] amount || +| 90 | TOKEN_IN_LIST_DIVIDEND_WEIGHT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 91 | TOKEN_IN_LIST_AMOUNT_GREATER_THAN | UINT256_2DARRAY[0][0] amount || +| 92 | TOKEN_IN_LIST_AMOUNT_LESS_THAN | UINT256_2DARRAY[0][0] amount || +| 93 | TOKEN_IN_LIST_AMOUNT_IN_RANGE | UINT256_2DARRAY[0][0] amount || +| 94 | TOKEN_IN_LIST_AMOUNT_EQUALS| UINT256_2DARRAY[0][0] amount || +| 95 | Placeholder95 | | | +| 96 | Placeholder96 | | | +| 97 | Placeholder97 | | | +| 98 | Placeholder98 | | | +| 99 | Placeholder99 | | | +| 100 | Placeholder100 | | | +| 101 | Placeholder101 | | | +| 102 | Placeholder102 | | | +| 103 | Placeholder103 | | | +| 104 | Placeholder104 | | | +| 105 | Placeholder105 | | | +| 106 | Placeholder106 | | | +| 107 | Placeholder107 | | | +| 108 | Placeholder108 | | | +| 109 | Placeholder109 | | | +| 110 | Placeholder110 | | | +| 111 | Placeholder111 | | | +| 112 | Placeholder112 | | | +| 113 | Placeholder113 | | | +| 114 | Placeholder114 | | | +| 115 | Placeholder115 | | | +| 116 | Placeholder116 | | | +| 117 | Placeholder117 | | | +| 118 | Placeholder118 | | | +| 119 | Placeholder119 | | | +| 120 | Placeholder120 | | | +| 121 | Placeholder121 | | | +| 122 | Placeholder122 | | | +| 123 | Placeholder123 | | | +| 124 | Placeholder124 | | | +| 125 | Placeholder125 | | | +| 126 | Placeholder126 | | | +| 127 | Placeholder127 | | | +| 128 | Placeholder128 | | | +| 129 | Placeholder129 | | | +| 130 | Placeholder130 | | | +| 131 | Placeholder131 | | | +| 132 | Placeholder132 | | | +| 133 | Placeholder133 | | | +| 134 | Placeholder134 | | | +| 135 | Placeholder135 | | | +| 136 | Placeholder136 | | | +| 137 | Placeholder137 | | | +| 138 | Placeholder138 | | | +| 139 | Placeholder139 | | | +| 140 | Placeholder140 | | | +| 141 | Placeholder141 | | | +| 142 | Placeholder142 | | | +| 143 | Placeholder143 | | | +| 144 | Placeholder144 | | | +| 145 | Placeholder145 | | | +| 146 | Placeholder146 | | | +| 147 | Placeholder147 | | | +| 148 | Placeholder148 | | | +| 149 | Placeholder149 | | | +| 150 | Placeholder150 | | | +| 151 | OPERATION_EQUALS | string operation, uint256 value || +| 152 | OPERATION_IN_LIST | string operation, uint256[] values || +| 153 | OPERATION_BY_OPERATOR_SINCE_LAST_TIME_LARGER_THAN | string operation, address operator, uint256 timestamp || +| 154 | OPERATION_BY_OPERATOR_SINCE_LAST_TIME_LESS_THAN | string operation, address operator, uint256 timestamp || +| 155 | OPERATION_BY_OPERATOR_SINCE_LAST_TIME_IN_RANGE | string operation, address operator, uint256 startTimestamp, uint256 endTimestamp || +| 156 | OPERATION_EVERYONE_SINCE_LAST_TIME_LARGER_THAN | string operation, uint256 timestamp || +| 157 | OPERATION_EVERYONE_SINCE_LAST_TIME_LESS_THAN | string operation, uint256 timestamp || +| 158 | OPERATION_EVERYONE_SINCE_LAST_TIME_IN_RANGE | string operation, uint256 startTimestamp, uint256 endTimestamp || +| 159 | OPERATION_BATCH_SIZE_LARGER_THAN | uint256 batchSize || +| 160 | OPERATION_BATCH_SIZE_LESS_THAN | uint256 batchSize || +| 161 | OPERATION_BATCH_SIZE_IN_RANGE | uint256 startBatchSize, uint256 endBatchSize || +| 162 | OPERATION_BATCH_SIZE_EQUALS | uint256 batchSize || +| 163 | Placeholder163 | | | +| 164 | Placeholder164 | | | +| 165 | Placeholder165 | | | +| 166 | Placeholder166 | | | +| 167 | Placeholder167 | | | +| 168 | Placeholder168 | | | +| 169 | Placeholder169 | | | +| 170 | Placeholder170 | | | +| 171 | Placeholder171 | | | +| 172 | Placeholder172 | | | +| 173 | Placeholder173 | | | +| 174 | Placeholder174 | | | +| 175 | Placeholder175 | | | +| 176 | Placeholder176 | | | +| 177 | Placeholder177 | | | +| 178 | Placeholder178 | | | +| 179 | Placeholder179 | | | +| 180 | Placeholder180 | | | +| 181 | ORACLE_CALL_UINT256_RESULT_EQUALS | string oracle, string method, uint256[] args, uint256 expectedValue || +| 182 | ORACLE_CALL_UINT256_RESULT_LARGER_THAN | string oracle, string method, uint256[] args, uint256 minValue || +| 183 | ORACLE_CALL_UINT256_RESULT_LESS_THAN | string oracle, string method, uint256[] args, uint256 maxValue || +| 184 | ORACLE_CALL_UINT256_RESULT_IN_RANGE | string oracle, string method, uint256[] args, uint256 minValue, uint256 maxValue || +| 185 | ORACLE_CALL_UINT256_1_LESS_THAN_2 | string oracle, string method, uint256[] args || +| 186 | ORACLE_CALL_UINT256_1_LARGER_THAN_2 | string oracle, string method, uint256[] args || +| 187 | ORACLE_CALL_UINT256_1_EQUALS_2 | string oracle, string method, uint256[] args || +| 188 | ORACLE_CALL_STRING_RESULT_EQUALS | string oracle, string method, string[] args, string expectedValue || +| 189 | ORACLE_CALL_STRING_1_EQUALS_2 | string oracle, string method, string[] args || +| 190 | ORACLE_CALL_STRING_RESULT_IN_LIST | string oracle, string method, string[] args, string[] expectedValues || +| 191 | Placeholder191 | | | +| 192 | Placeholder192 | | | +| 193 | Placeholder193 | | | +| 194 | Placeholder194 | | | +| 195 | Placeholder195 | | | +| 196 | Placeholder196 | | | +| 197 | Placeholder197 | | | +| 198 | Placeholder198 | | | +| 199 | Placeholder199 | | | +| 200 | Placeholder200 | | | +| 201 | Placeholder201 | | | +| 202 | Placeholder202 | | | +| 203 | Placeholder203 | | | +| 204 | Placeholder204 | | | +| 205 | Placeholder205 | | | +| 206 | Placeholder206 | | | +| 207 | Placeholder207 | | | +| 208 | Placeholder208 | | | +| 209 | Placeholder209 | | | +| 210 | Placeholder210 | | | +| 211 | MINT_TOKENS_TOTAL_AMOUNT_MORE_THAN | uint256 amount || +| 212 | MINT_TOKENS_TOTAL_AMOUNT_LESS_THAN | uint256 amount || +| 213 | MINT_TOKENS_TOTAL_AMOUNT_IN_RANGE | uint256 minAmount, uint256 maxAmount || +| 214 | MINT_TOKENS_TOTAL_AMOUNT_EQUALS | uint256 amount || +| 215 | MINT_TOKENS_ALL_TARGETS_ADDRESS_IN_LIST | address[] addresses || +| 216 | MINT_TOKENS_ALL_TARGETS_ADDRESS_TO_ITSELF | || +| 217 | MINT_TOKENS_ALL_TARGETS_ADDRESS_TO_ROLE_INDEX_IN_LIST | uint256[] roleIndexes || +| 218 | MINT_TOKENS_TOTAL_AMOUNT_LEVEL_X_MORE_THAN | uint256 level, uint256 amount || +| 219 | MINT_TOKENS_TOTAL_AMOUNT_LEVEL_X_LESS_THAN | uint256 level, uint256 amount || +| 220 | MINT_TOKENS_TOTAL_AMOUNT_LEVEL_X_IN_RANGE | uint256 level, uint256 minAmount, uint256 maxAmount || +| 221 | MINT_TOKENS_TOTAL_AMOUNT_LEVEL_X_EQUALS | uint256 level, uint256 amount || +| 222 | MINT_TOKENS_TOTAL_VOTING_WEIGHT_LARGER_THAN | uint256 weight || +| 223 | MINT_TOKENS_TOTAL_VOTING_WEIGHT_LESS_THAN | uint256 weight || +| 224 | MINT_TOKENS_TOTAL_VOTING_WEIGHT_IN_RANGE | uint256 minWeight, uint256 maxWeight || +| 225 | MINT_TOKENS_TOTAL_DIVIDEND_WEIGHT_LARGER_THAN | uint256 weight || +| 226 | MINT_TOKENS_TOTAL_DIVIDEND_WEIGHT_LESS_THAN | uint256 weight || +| 227 | MINT_TOKENS_TOTAL_DIVIDEND_WEIGHT_IN_RANGE | uint256 minWeight, uint256 maxWeight || +| 228 | MINT_TOKEN_EACH_BATCH_AMOUNT_MORE_THAN | uint256 amount || +| 229 | MINT_TOKEN_EACH_BATCH_AMOUNT_LESS_THAN | uint256 amount || +| 230 | MINT_TOKEN_EACH_BATCH_AMOUNT_IN_RANGE | uint256 minAmount, uint256 maxAmount || +| 231 | MINT_TOKEN_EACH_BATCH_AMOUNT_EQUALS | uint256 amount || +| 232 | MINT_TOKEN_EACH_BATCH_AMOUNT_LEVEL_X_MORE_THAN | uint256 level, uint256 amount || +| 233 | MINT_TOKEN_EACH_BATCH_AMOUNT_LEVEL_X_LESS_THAN | uint256 level, uint256 amount || +| 234 | MINT_TOKEN_EACH_BATCH_AMOUNT_LEVEL_X_IN_RANGE | uint256 level, uint256 minAmount, uint256 maxAmount || +| 235 | MINT_TOKEN_EACH_BATCH_AMOUNT_LEVEL_X_EQUALS | uint256 level, uint256 amount || +| 236 | MINT_TOKEN_EACH_BATCH_TARGET_ADDRESS_IN_LIST | address[] addresses || +| 237 | MINT_TOKEN_EACH_BATCH_TARGET_ADDRESS_TO_ROLE_INDEX_IN_LIST | uint256[] roleIndexes ||