/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { Contract, ContractFactory, Signer } from "ethers"; import { Provider } from "ethers/providers"; import { UnsignedTransaction } from "ethers/utils/transaction"; import { TransactionOverrides } from ".."; import { VotingReputation } from "../VotingReputation"; export class VotingReputation__factory extends ContractFactory { constructor(signer?: Signer) { super(_abi, _bytecode, signer); } deploy(overrides?: TransactionOverrides): Promise { return super.deploy(overrides) as Promise; } getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { return super.getDeployTransaction(overrides); } attach(address: string): VotingReputation { return super.attach(address) as VotingReputation; } connect(signer: Signer): VotingReputation__factory { return super.connect(signer) as VotingReputation__factory; } static connect( address: string, signerOrProvider: Signer | Provider ): VotingReputation { return new Contract(address, _abi, signerOrProvider) as VotingReputation; } } const _abi = [ { anonymous: false, inputs: [], name: "ExtensionInitialised", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "authority", type: "address", }, ], name: "LogSetAuthority", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "owner", type: "address", }, ], name: "LogSetOwner", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "motionId", type: "uint256", }, { indexed: false, internalType: "address", name: "creator", type: "address", }, { indexed: true, internalType: "uint256", name: "domainId", type: "uint256", }, ], name: "MotionCreated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "motionId", type: "uint256", }, { indexed: false, internalType: "address", name: "escalator", type: "address", }, { indexed: true, internalType: "uint256", name: "domainId", type: "uint256", }, { indexed: true, internalType: "uint256", name: "newDomainId", type: "uint256", }, ], name: "MotionEscalated", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "motionId", type: "uint256", }, { indexed: false, internalType: "uint256", name: "eventIndex", type: "uint256", }, ], name: "MotionEventSet", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "motionId", type: "uint256", }, { indexed: false, internalType: "bytes", name: "action", type: "bytes", }, { indexed: false, internalType: "bool", name: "executed", type: "bool", }, ], name: "MotionFinalized", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "motionId", type: "uint256", }, { indexed: true, internalType: "address", name: "staker", type: "address", }, { indexed: true, internalType: "uint256", name: "vote", type: "uint256", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "MotionRewardClaimed", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "motionId", type: "uint256", }, { indexed: true, internalType: "address", name: "staker", type: "address", }, { indexed: true, internalType: "uint256", name: "vote", type: "uint256", }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256", }, ], name: "MotionStaked", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "motionId", type: "uint256", }, { indexed: true, internalType: "address", name: "voter", type: "address", }, { indexed: true, internalType: "uint256", name: "vote", type: "uint256", }, ], name: "MotionVoteRevealed", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "motionId", type: "uint256", }, { indexed: true, internalType: "address", name: "voter", type: "address", }, ], name: "MotionVoteSubmitted", type: "event", }, { inputs: [], name: "authority", outputs: [ { internalType: "contract DSAuthority", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes4", name: "_sig", type: "bytes4", }, ], name: "getCapabilityRoles", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getColony", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getDeprecated", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "owner", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "contract DSAuthority", name: "authority_", type: "address", }, ], name: "setAuthority", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "owner_", type: "address", }, ], name: "setOwner", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "identifier", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "pure", type: "function", }, { inputs: [], name: "version", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "pure", type: "function", }, { inputs: [ { internalType: "address", name: "_colony", type: "address", }, ], name: "install", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "_totalStakeFraction", type: "uint256", }, { internalType: "uint256", name: "_voterRewardFraction", type: "uint256", }, { internalType: "uint256", name: "_userMinStakeFraction", type: "uint256", }, { internalType: "uint256", name: "_maxVoteFraction", type: "uint256", }, { internalType: "uint256", name: "_stakePeriod", type: "uint256", }, { internalType: "uint256", name: "_submitPeriod", type: "uint256", }, { internalType: "uint256", name: "_revealPeriod", type: "uint256", }, { internalType: "uint256", name: "_escalationPeriod", type: "uint256", }, ], name: "initialise", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "finishUpgrade", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bool", name: "_deprecated", type: "bool", }, ], name: "deprecate", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "uninstall", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "_domainId", type: "uint256", }, { internalType: "uint256", name: "_childSkillIndex", type: "uint256", }, { internalType: "address", name: "_altTarget", type: "address", }, { internalType: "bytes", name: "_action", type: "bytes", }, { internalType: "bytes", name: "_key", type: "bytes", }, { internalType: "bytes", name: "_value", type: "bytes", }, { internalType: "uint256", name: "_branchMask", type: "uint256", }, { internalType: "bytes32[]", name: "_siblings", type: "bytes32[]", }, ], name: "createMotion", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "_altTarget", type: "address", }, { internalType: "bytes", name: "_action", type: "bytes", }, { internalType: "bytes", name: "_key", type: "bytes", }, { internalType: "bytes", name: "_value", type: "bytes", }, { internalType: "uint256", name: "_branchMask", type: "uint256", }, { internalType: "bytes32[]", name: "_siblings", type: "bytes32[]", }, ], name: "createRootMotion", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "_domainId", type: "uint256", }, { internalType: "uint256", name: "_childSkillIndex", type: "uint256", }, { internalType: "bytes", name: "_action", type: "bytes", }, { internalType: "bytes", name: "_key", type: "bytes", }, { internalType: "bytes", name: "_value", type: "bytes", }, { internalType: "uint256", name: "_branchMask", type: "uint256", }, { internalType: "bytes32[]", name: "_siblings", type: "bytes32[]", }, ], name: "createDomainMotion", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "_motionId", type: "uint256", }, { internalType: "uint256", name: "_permissionDomainId", type: "uint256", }, { internalType: "uint256", name: "_childSkillIndex", type: "uint256", }, { internalType: "uint256", name: "_vote", type: "uint256", }, { internalType: "uint256", name: "_amount", type: "uint256", }, { internalType: "bytes", name: "_key", type: "bytes", }, { internalType: "bytes", name: "_value", type: "bytes", }, { internalType: "uint256", name: "_branchMask", type: "uint256", }, { internalType: "bytes32[]", name: "_siblings", type: "bytes32[]", }, ], name: "stakeMotion", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "_motionId", type: "uint256", }, { internalType: "bytes32", name: "_voteSecret", type: "bytes32", }, { internalType: "bytes", name: "_key", type: "bytes", }, { internalType: "bytes", name: "_value", type: "bytes", }, { internalType: "uint256", name: "_branchMask", type: "uint256", }, { internalType: "bytes32[]", name: "_siblings", type: "bytes32[]", }, ], name: "submitVote", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "_motionId", type: "uint256", }, { internalType: "bytes32", name: "_salt", type: "bytes32", }, { internalType: "uint256", name: "_vote", type: "uint256", }, { internalType: "bytes", name: "_key", type: "bytes", }, { internalType: "bytes", name: "_value", type: "bytes", }, { internalType: "uint256", name: "_branchMask", type: "uint256", }, { internalType: "bytes32[]", name: "_siblings", type: "bytes32[]", }, ], name: "revealVote", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "_motionId", type: "uint256", }, { internalType: "uint256", name: "_newDomainId", type: "uint256", }, { internalType: "uint256", name: "_childSkillIndex", type: "uint256", }, { internalType: "bytes", name: "_key", type: "bytes", }, { internalType: "bytes", name: "_value", type: "bytes", }, { internalType: "uint256", name: "_branchMask", type: "uint256", }, { internalType: "bytes32[]", name: "_siblings", type: "bytes32[]", }, ], name: "escalateMotion", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "_motionId", type: "uint256", }, ], name: "finalizeMotion", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "_motionId", type: "uint256", }, { internalType: "uint256", name: "_permissionDomainId", type: "uint256", }, { internalType: "uint256", name: "_childSkillIndex", type: "uint256", }, { internalType: "address", name: "_staker", type: "address", }, { internalType: "uint256", name: "_vote", type: "uint256", }, ], name: "claimReward", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "getTotalStakeFraction", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getVoterRewardFraction", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getUserMinStakeFraction", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getMaxVoteFraction", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getStakePeriod", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getSubmitPeriod", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getRevealPeriod", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getEscalationPeriod", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getMotionCount", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "_motionId", type: "uint256", }, ], name: "getMotion", outputs: [ { components: [ { internalType: "uint64[3]", name: "events", type: "uint64[3]", }, { internalType: "bytes32", name: "rootHash", type: "bytes32", }, { internalType: "uint256", name: "domainId", type: "uint256", }, { internalType: "uint256", name: "skillId", type: "uint256", }, { internalType: "uint256", name: "skillRep", type: "uint256", }, { internalType: "uint256", name: "repSubmitted", type: "uint256", }, { internalType: "uint256", name: "paidVoterComp", type: "uint256", }, { internalType: "uint256[2]", name: "pastVoterComp", type: "uint256[2]", }, { internalType: "uint256[2]", name: "stakes", type: "uint256[2]", }, { internalType: "uint256[2]", name: "votes", type: "uint256[2]", }, { internalType: "bool", name: "escalated", type: "bool", }, { internalType: "bool", name: "finalized", type: "bool", }, { internalType: "address", name: "altTarget", type: "address", }, { internalType: "bytes", name: "action", type: "bytes", }, ], internalType: "struct VotingReputation.Motion", name: "motion", type: "tuple", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "_motionId", type: "uint256", }, { internalType: "address", name: "_staker", type: "address", }, { internalType: "uint256", name: "_vote", type: "uint256", }, ], name: "getStake", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "_structHash", type: "bytes32", }, ], name: "getExpenditureMotionCount", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "_actionHash", type: "bytes32", }, ], name: "getExpenditurePastVote", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "_motionId", type: "uint256", }, ], name: "getMotionState", outputs: [ { internalType: "enum VotingReputation.MotionState", name: "", type: "uint8", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "_motionId", type: "uint256", }, { internalType: "uint256", name: "_voterRep", type: "uint256", }, ], name: "getVoterReward", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "_motionId", type: "uint256", }, { internalType: "uint256", name: "_voterRep", type: "uint256", }, { internalType: "address", name: "_voterAddress", type: "address", }, ], name: "getVoterRewardRange", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "_motionId", type: "uint256", }, { internalType: "address", name: "_staker", type: "address", }, { internalType: "uint256", name: "_vote", type: "uint256", }, ], name: "getStakerReward", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes", name: "action", type: "bytes", }, { internalType: "uint256", name: "value", type: "uint256", }, ], name: "createClaimDelayAction", outputs: [ { internalType: "bytes", name: "", type: "bytes", }, ], stateMutability: "nonpayable", type: "function", }, ]; const _bytecode = "0x608060405234801561001057600080fd5b50600180546001600160a01b031916339081179091556040517fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a2614d4c8061005e6000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c80637a9e5e4b11610146578063bbd2f6c5116100c3578063da23325911610087578063da2332591461049b578063de3b0aa4146104ae578063deac280f146104c1578063ee2cf473146104d4578063fc4af53f146104e7578063fcf6ba93146104fa57610253565b8063bbd2f6c514610452578063bf7e214f14610465578063bfd68ab71461046d578063c06e47d614610475578063d84eb9ee1461048857610253565b80639251cff41161010a5780639251cff4146103f1578063ad15aad214610404578063b004864714610424578063b57025d41461042c578063b9a8c27a1461043f57610253565b80637a9e5e4b1461038e5780637b9afba6146103a15780637de22eb4146103b4578063835ddcc1146103d45780638da5cb5b146103dc57610253565b8063420b900c116101d45780636acd7fe6116101985780636acd7fe6146103505780636e7375b01461036357806372d8bd7b1461036b5780637998a1c4146103735780637a3dc3301461037b57610253565b8063420b900c146102ec57806354fd4d501461030c5780635c0d9d53146103145780635cda01351461031c5780635d0050b21461032f57610253565b80632363df0e1161021b5780632363df0e146102ae5780632a1b8f9b146102b65780632a1c708b146102c95780632dfbb083146102d1578063340df28f146102e457610253565b806302d15d64146102585780630d638f301461027657806313af403514610280578063157eb072146102935780631a7dad2e146102a6575b600080fd5b61026061050f565b60405161026d91906141bb565b60405180910390f35b61027e610515565b005b61027e61028e366004613a81565b61055e565b61027e6102a1366004613edd565b6105e0565b6102606105fa565b610260610600565b61027e6102c4366004613a81565b610606565b610260610805565b6102606102df366004613be1565b61080b565b61027e610813565b6102ff6102fa366004613bb1565b610847565b60405161026d9190614367565b6102606109b0565b6102606109b5565b61027e61032a366004613e08565b6109bb565b61034261033d366004613c92565b610eda565b60405161026d929190614197565b61027e61035e366004613bb1565b6111e9565b6102606116e0565b6102606116e6565b6102606116ec565b610260610389366004613bb1565b611710565b61027e61039c366004613a81565b611722565b61027e6103af36600461405c565b6117a0565b6103c76103c2366004613c09565b611a16565b60405161026d91906142c1565b610260611b6c565b6103e4611b72565b60405161026d91906141c4565b61027e6103ff366004613b79565b611b81565b610417610412366004613bb1565b611bd1565b60405161026d9190614b38565b610260611e1c565b61027e61043a366004613f84565b611e22565b61027e61044d366004613d05565b61216d565b61027e610460366004613f9e565b61239b565b6103e4612ab1565b6103e4612ac0565b61027e610483366004613cc9565b612acf565b610260610496366004613daf565b612c52565b61027e6104a9366004613f3c565b612cad565b6102606104bc366004613bb1565b612e9b565b61027e6104cf366004613ab9565b612ead565b6102606104e2366004613c92565b612ec8565b6103426104f5366004613dd0565b612efb565b610502612fae565b60405161026d91906142a1565b600d5490565b61052b336000356001600160e01b031916612fbe565b6105505760405162461bcd60e51b815260040161054790614459565b60405180910390fd5b6003546001600160a01b0316ff5b610574336000356001600160e01b031916612fbe565b6105905760405162461bcd60e51b815260040161054790614459565b600180546001600160a01b0319166001600160a01b0383811691909117918290556040519116907fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9490600090a250565b6105f18787600088888888886109bb565b50505050505050565b600c5490565b60085490565b6003546001600160a01b03161561062f5760405162461bcd60e51b81526004016105479061477f565b600380546001600160a01b0319166001600160a01b03838116919091179182905560408051634e5e839560e01b815290519290911691634e5e839591600480820192602092909190829003018186803b15801561068b57600080fd5b505afa15801561069f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c39190613a9d565b600480546001600160a01b0319166001600160a01b03928316178082556040805163598cc81560e11b81529051919093169263b319902a9281810192602092909190829003018186803b15801561071957600080fd5b505afa15801561072d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107519190613a9d565b600580546001600160a01b0319166001600160a01b03928316179055600354604080516321df0da760e01b8152905191909216916321df0da7916004808301926020929190829003018186803b1580156107aa57600080fd5b505afa1580156107be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e29190613a9d565b600680546001600160a01b0319166001600160a01b039290921691909117905550565b60075490565b60005b919050565b610829336000356001600160e01b031916612fbe565b6108455760405162461bcd60e51b815260040161054790614459565b565b60008181526010602052604081208161085f8461309a565b905083158061086f5750600f5484115b1561087f5760009250505061080e565b600d820154610100900460ff161561089c5760069250505061080e565b600a8201548111806108b15750600982015481115b1561091e5781546001600160401b03164210156108d35760019250505061080e565b600a8201548114156108ea5760059250505061080e565b600b82018054600091610902919060015b01546130b9565b11156109135760059250505061080e565b60079250505061080e565b8154600160401b90046001600160401b03164210156109425760029250505061080e565b8154600160801b90046001600160401b03164210156109665760039250505061080e565b600e548254600160801b90046001600160401b0316014210801561098e575060018260020154115b1561099e5760049250505061080e565b60059250505061080e565b5050919050565b600290565b60095490565b600354600160a01b900460ff16156109e55760405162461bcd60e51b815260040161054790614a93565b6001600354600160a81b900460ff1660028111156109ff57fe5b14610a1c5760405162461bcd60e51b815260040161054790614824565b6003546001600160a01b0387811691161415610a4a5760405162461bcd60e51b815260040161054790614962565b6000610a55876130dc565b90506000610a6287613104565b90506001600160e01b031981166363468cf560e11b1415610a955760405162461bcd60e51b8152600401610547906147b6565b604051632dfbb08360e01b815260009060039081906001600160a01b03861690632dfbb08390610ac99087906004016142ac565b60206040518083038186803b158015610ae157600080fd5b505afa158015610af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b199190613bc9565b171415610bd5578a6001148015610b3157506000198a145b610b4d5760405162461bcd60e51b8152600401610547906146a3565b600354604051630d3d4c7160e11b81526001600160a01b0390911690631a7a98e290610b7e906001906004016141bb565b604080518083038186803b158015610b9557600080fd5b505afa158015610ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcd9190613c4b565b519050610d25565b600354604051630d3d4c7160e11b81526001600160a01b0390911690631a7a98e290610c05908e906004016141bb565b604080518083038186803b158015610c1c57600080fd5b505afa158015610c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c549190613c4b565b5190506000610c628961310b565b9050808214610d23576000600460009054906101000a90046001600160a01b03166001600160a01b03166309d10a5e848e6040518363ffffffff1660e01b8152600401610cb0929190614197565b60206040518083038186803b158015610cc857600080fd5b505afa158015610cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d009190613bc9565b9050818114610d215760405162461bcd60e51b8152600401610547906146a3565b505b505b600f805460010190819055600090815260106020908152604091829020600b54815467ffffffffffffffff1916429091016001600160401b0390811691909117808355600c5467ffffffffffffffff60401b198216600160401b9284169091018316820217808455600d5467ffffffffffffffff60801b198216600160801b93909204841601909216021781556004805484516397824c3f60e01b8152945192946001600160a01b03909116936397824c3f93828401939192909190829003018186803b158015610df557600080fd5b505afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190613bc9565b6001820155600281018c905560038101829055600f54610e529060008a8a8a8a613227565b6004820155600d8101805462010000600160b01b031916620100006001600160a01b038d16021790558851610e9090600e83019060208c01906137ff565b508b600f547fec8f382abfacc0416a7b1eca9ddfcb6f79f9ee369eba7478f5471bd692bb5db733604051610ec491906141c4565b60405180910390a3505050505050505050505050565b6000838152601060205260408120819081610f0e600983018660028110610efd57fe5b01548360070187600281106108fb57fe5b905080610f23576000809350935050506111e1565b60008781526011602090815260408083206001600160a01b038a1684528252808320888452909152812054610f58908361331b565b90506000610f7682856009018960028110610f6f57fe5b015461333f565b905060008080610f91600b8801820154600b890160016108fb565b11156110a457600b860154600c87015460009182911115610fbd5750506009860154600a870154610fca565b5050600a86015460098701545b610fd8828960060154613354565b600b89018054919350600091610fef9160016108fb565b9050600061100d8a600b018e6002811061100557fe5b01548361331b565b9050600061102382671bc16d674ec8000061333f565b9050670de0b6b3a764000081118061104b5750670de0b6b3a76400008114801561104b57508d155b1561107d57611076896110718661106c89670de0b6b3a7640000870361333f565b6130b9565b61333f565b965061109a565b61108b89611071878461333f565b96506110978888613354565b95505b50505050506111d7565b6006860154156110b057fe5b60006110bb8c61309a565b905080876009018b600281106110cd57fe5b01541480156110f3575080876009016110e58c613377565b600281106110ef57fe5b0154105b15611146576000876009016111078c613377565b6002811061111157fe5b01549050600061112d82600a670de0b6b3a76400005b0461333f565b905061113d8761107185846130b9565b945050506111d5565b80876009018b6002811061115657fe5b015410801561117c5750808760090161116e8c613377565b6002811061117857fe5b0154145b156111d1576000876009018b6002811061119257fe5b0154905060006111ac82600a670de0b6b3a7640000611127565b90506111bc876110718484613354565b94506111c88686613354565b935050506111d5565b8392505b505b9096509450505050505b935093915050565b6000818152601060205260409020600561120283610847565b600781111561120d57fe5b1461122a5760405162461bcd60e51b815260040161054790614a1b565b6112338261309a565b600a82015414806112565750600b81018054600091611254919060016108fb565b115b61125c57fe5b600d8101805461ff00191661010017905560006009820160010154600983016000015410806112925750600c820154600b830154105b600e83018054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152939450633268b39f60e21b93611337939092909183018282801561132d5780601f106113025761010080835404028352916020019161132d565b820191906000526020600020905b81548152906001019060200180831161131057829003601f168201915b5050505050613104565b6001600160e01b0319161480156113785750600354600d8301546001600160a01b039182169161136d91620100009004166130dc565b6001600160a01b0316145b156115f857600e8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152600093611418939192909183018282801561140e5780601f106113e35761010080835404028352916020019161140e565b820191906000526020600020905b8154815290600101906020018083116113f157829003601f168201915b5050505050613384565b600081815260146020526040902054909150611435906001613354565b60008281526014602052604090208190556114f657600e8301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181526060936114e793919290918301828280156114db5780601f106114b0576101008083540402835291602001916114db565b820191906000526020600020905b8154815290600101906020018083116114be57829003601f168201915b50505050506000611a16565b90506114f38582613423565b50505b600e8301805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815260009361159193919290918301828280156115875780601f1061155c57610100808354040283529160200191611587565b820191906000526020600020905b81548152906001019060200180831161156a57829003601f168201915b5050505050613467565b90506000806115ab600b8701820154600b880160016108fb565b116115ba57600a8501546115c0565b600c8501545b6000838152601360205260409020549091508111156115ef5760008281526013602052604090208190556115f4565b600093505b5050505b6000811561169d57600e8301805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815261169a938893919290918301828280156116905780601f1061166557610100808354040283529160200191611690565b820191906000526020600020905b81548152906001019060200180831161167357829003601f168201915b5050505050613423565b90505b837f30a64da5658ebdc08619e03d1f155ef960c07fa9b332002f9ad606ec64b6096484600e01836040516116d29291906142d4565b60405180910390a250505050565b600a5490565b600e5490565b7fdc951b3d4193c331186bc2de3b4e659e51d8b00ef92751ae69abaa48a6ab38dd90565b60009081526013602052604090205490565b611738336000356001600160e01b031916612fbe565b6117545760405162461bcd60e51b815260040161054790614459565b600080546001600160a01b0319166001600160a01b03838116919091178083556040519116917f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada491a250565b600354604051635597bd7160e11b81526001600160a01b039091169063ab2f7ae2906117d590339060019081906004016141d8565b60206040518083038186803b1580156117ed57600080fd5b505afa158015611801573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118259190613b95565b6118415760405162461bcd60e51b8152600401610547906146da565b6000600354600160a81b900460ff16600281111561185b57fe5b146118785760405162461bcd60e51b8152600401610547906144f6565b6706f05b59d3b200008811156118a05760405162461bcd60e51b8152600401610547906145d2565b6706f05b59d3b200008711156118c85760405162461bcd60e51b8152600401610547906145d2565b670de0b6b3a76400008611156118f05760405162461bcd60e51b815260040161054790614a5c565b670de0b6b3a76400008511156119185760405162461bcd60e51b815260040161054790614a5c565b6301e1338084111561193c5760405162461bcd60e51b815260040161054790614aca565b6301e133808311156119605760405162461bcd60e51b815260040161054790614aca565b6301e133808211156119845760405162461bcd60e51b815260040161054790614aca565b6301e133808111156119a85760405162461bcd60e51b815260040161054790614aca565b6003805460ff60a81b1916600160a81b179055600788905560088790556009869055600a859055600b849055600c839055600d829055600e8190556040517f690c4b6201f6a4c703f9d21c205d98a08dff8461e7a71e49c6d47cc8b894850190600090a15050505050505050565b60208201516024830151604484015160648501516084860151606094939291906019811415611ac057604080516101648082526101a08201909252606091602082018180368337505050602081019690965250506024840192909252604483015260648201526019608482015260e060a482015261012060c482015260e4810183905260016101048201819052610124820181905261014482015260046101648201529050611b66565b604080516101a48082526101e0820190925260609160208201818036833701905050905060006101848a01519050866020830152856024830152846044830152836064830152601a608483015260e060a483015261014060c48301528860e483015260026101048301526000610124830152600161014483015260026101648301528061018483015260016101a483015281975050505050505050611b66565b50505050505b92915050565b600f5490565b6001546001600160a01b031681565b611b97336000356001600160e01b031916612fbe565b611bb35760405162461bcd60e51b815260040161054790614459565b60038054911515600160a01b0260ff60a01b19909216919091179055565b611bd961387d565b6000828152601060205260409081902081516102208101909252816101c081018260038282826020028201916000905b82829054906101000a90046001600160401b03166001600160401b031681526020019060080190602082600701049283019260010382029150808411611c095790505050505050815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201600280602002604051908101604052809291908260028015611ccc576020028201915b815481526020019060010190808311611cb8575b5050509183525050604080518082019182905260209092019190600984019060029082845b815481526020019060010190808311611cf1575050509183525050604080518082019182905260209092019190600b84019060029082845b815481526020019060010190808311611d29575050509183525050600d82015460ff80821615156020808501919091526101008084049092161515604080860191909152620100009093046001600160a01b03166060850152600e850180548451600260018316159095026000190190911693909304601f8101839004830284018301909452838352608090940193919290830182828015611e0c5780601f10611de157610100808354040283529160200191611e0c565b820191906000526020600020905b815481529060010190602001808311611def57829003601f168201915b5050505050815250509050919050565b600b5490565b60008781526010602052604090206004611e3b89610847565b6007811115611e4657fe5b14611e635760405162461bcd60e51b815260040161054790614853565b600354604051630d3d4c7160e11b81526000916001600160a01b031690631a7a98e290611e94908b906004016141bb565b604080518083038186803b158015611eab57600080fd5b505afa158015611ebf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee39190613c4b565b51600480546040516304e8852f60e11b81529293506000926001600160a01b03909116916309d10a5e91611f1b9186918d9101614197565b60206040518083038186803b158015611f3357600080fd5b505afa158015611f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6b9190613bc9565b905082600301548114611f905760405162461bcd60e51b815260040161054790614748565b600283018054908a905560038401839055611fb08b60008a8a8a8a613227565b6004850155600c840154600b85015460009111611fce576001611fd1565b60005b9050611ff1856009018260028110611fe557fe5b01548660060154613354565b85600901826002811061200057fe5b015561202060078601826002811061201457fe5b015486600601546130b9565b85600701826002811061202f57fe5b01556000600686018190556120438d61309a565b9050806009870160000154108061205d5750600a86015481115b612067574261206d565b600b5442015b865467ffffffffffffffff19166001600160401b0391821617808855600c5467ffffffffffffffff60401b198216600160401b9284169091018316820217808955600d805467ffffffffffffffff60801b198316600160801b94909304851601909316919091021787558601805460ff191660011790556040518c9084908f907fd11ec0a82b67846e80d77c897fa0e54e2d81a0275e18cb2d40b9f534d9b738ad9061211a9033906141c4565b60405180910390a485546001600160401b0342811691161161215e578c600080516020614cf7833981519152600060405161215591906141bb565b60405180910390a25b50505050505050505050505050565b6000878152601060205260409020600361218689610847565b600781111561219157fe5b146121ae5760405162461bcd60e51b81526004016105479061488a565b60018611156121cf5760405162461bcd60e51b815260040161054790614906565b60006121df893388888888613227565b90506121fb82600b0188600281106121f357fe5b0154826130b9565b82600b01886002811061220a57fe5b01556000898152601260209081526040808320338452909152902054612230898961347d565b811461224e5760405162461bcd60e51b81526004016105479061452d565b60008a815260126020908152604080832033845290915281208190556122748b84612c52565b90506122848460060154826130b9565b6006850155604051899033908d907f90285c90067ec863f95f2423d6cc031a545257d9b53dfb1974a65b46bd4a55bd90600090a46005840154600b850180546122ce9160016108fb565b141561232157835467ffffffffffffffff60801b1916600160801b426001600160401b0316021784556040518b90600080516020614cf783398151915290612318906002906141bb565b60405180910390a25b6005546006546040516393c4553560e01b81526001600160a01b03928316926393c455359261235c9291169085903390600190600401614277565b600060405180830381600087803b15801561237657600080fd5b505af115801561238a573d6000803e3d6000fd5b505050505050505050505050505050565b600089815260106020526040902060018711156123ca5760405162461bcd60e51b815260040161054790614906565b60016123d58b610847565b60078111156123e057fe5b146123fd5760405162461bcd60e51b815260040161054790614564565b60006124088b61309a565b9050600061242f8861242a84866009018d6002811061242357fe5b0154613354565b6134b0565b9050600081116124515760405162461bcd60e51b815260040161054790614933565b60008c815260116020908152604080832033845282528083208c845290915281205461247d90836130b9565b905061248d8d338a8a8a8a613227565b8111156124ac5760405162461bcd60e51b815260040161054790614607565b6124b88360095461333f565b811015806124de5750826124dc856009018c600281106124d457fe5b0154846130b9565b145b6124fa5760405162461bcd60e51b815260040161054790614422565b612514846009018b6002811061250c57fe5b0154836130b9565b846009018b6002811061252357fe5b015560008d815260116020908152604080832033845282528083208d8452909152902081905560018a14801561255e5750600d84015460ff16155b801561256d5750600a84015483145b80156125ec5750600e8401805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152633268b39f60e21b936125e0939192909183018282801561132d5780601f106113025761010080835404028352916020019161132d565b6001600160e01b031916145b80156126095750600d8401546201000090046001600160a01b0316155b1561277657600e8401805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152600093612674939192909183018282801561140e5780601f106113e35761010080835404028352916020019161140e565b6000818152601460205260409020549091506126919060016130b9565b60008281526014602090815260409182902092909255600e870180548251601f6002600019610100600186161502019093169290920491820185900485028101850190935280835260609361274b939291908301828280156127345780601f1061270957610100808354040283529160200191612734565b820191906000526020600020905b81548152906001019060200180831161271757829003601f168201915b505050505060036000198161274557fe5b04611a16565b90506127578f82613423565b6127735760405162461bcd60e51b81526004016105479061437a565b50505b89336001600160a01b03168e7f36de51a8af0dcecf368691aa77f69ba4d4e7974e9c709f33aeaad0e7ac5af1b8856040516127b191906141bb565b60405180910390a46009840154831480156127cf5750600a84015483145b1561286c57835467ffffffffffffffff1916426001600160401b0390811691909117808655600c5467ffffffffffffffff60401b198216600160401b9284169091018316820217808755600d5467ffffffffffffffff60801b198216600160801b93909204841601909216021784556040518d90600080516020614cf78339815191529061285f906000906141bb565b60405180910390a2612949565b8915801561287d5750600984015483145b80612896575060018a1480156128965750600a84015483145b1561294957600b8054855467ffffffffffffffff1916429091016001600160401b0390811691909117808755600c5467ffffffffffffffff60401b198216600160401b9284169091018316820217808855600d5467ffffffffffffffff60801b198216600160801b93909204841601909216021785556129199085016000613909565b83600501600090558c600080516020614cf7833981519152600060405161294091906141bb565b60405180910390a25b6005546006546040516307dba22560e31b81526001600160a01b0392831692633edd11289261298392911690600090600190600401614254565b600060405180830381600087803b15801561299d57600080fd5b505af11580156129b1573d6000803e3d6000fd5b5050600354600287015460405163096abb4960e01b81526001600160a01b03909216935063096abb4992506129ed913391908790600401614206565b600060405180830381600087803b158015612a0757600080fd5b505af1158015612a1b573d6000803e3d6000fd5b50505050600360009054906101000a90046001600160a01b03166001600160a01b031663446c1aa28d8d3033896002015488306040518863ffffffff1660e01b8152600401612a709796959493929190614c32565b600060405180830381600087803b158015612a8a57600080fd5b505af1158015612a9e573d6000803e3d6000fd5b5050505050505050505050505050505050565b6000546001600160a01b031681565b6003546001600160a01b031690565b60008681526010602052604090206002612ae888610847565b6007811115612af357fe5b14612b105760405162461bcd60e51b8152600401610547906143bc565b85612b2d5760405162461bcd60e51b8152600401610547906149e4565b6000612b3d883388888888613227565b6000898152601260209081526040808320338452909152902054909150612b7257612b6c8260050154826130b9565b60058301555b60008881526012602090815260408083203380855292528083208a90555190918a917f918e84941a111dde88f3d5739c3e63ffa70d869cbbfd4ecbab1dbb3b379055f99190a3612bc88260040154600a5461333f565b826005015410612c4857815467ffffffffffffffff60401b1916600160401b426001600160401b038181169290920292909217808555600d5490920116600160801b0267ffffffffffffffff60801b199091161782556040518890600080516020614cf783398151915290612c3f906001906141bb565b60405180910390a25b5050505050505050565b600082815260106020526040812060058101548290612c7290859061331b565b90506000612c8c60098401600101546009850160006108fb565b9050612ca3612c9b838361333f565b60085461333f565b9695505050505050565b60008581526010602052604090206006612cc687610847565b6007811115612cd157fe5b1480612cf057506007612ce387610847565b6007811115612cee57fe5b145b612d0c5760405162461bcd60e51b815260040161054790614b01565b600080612d1a888686610eda565b9150915060008211612d3e5760405162461bcd60e51b81526004016105479061459b565b60008881526011602090815260408083206001600160a01b03808a1685529083528184208885529092528083209290925560055460065492516393c4553560e01b8152908216926393c4553592612da19291169086908a90600190600401614277565b600060405180830381600087803b158015612dbb57600080fd5b505af1158015612dcf573d6000803e3d6000fd5b505050506000811115612e4e57600354600284015460405163fce891a560e01b81526001600160a01b039092169163fce891a591612e1b918b918b918b90600089900390600401614c6b565b600060405180830381600087803b158015612e3557600080fd5b505af1158015612e49573d6000803e3d6000fd5b505050505b83856001600160a01b0316897f388e060f12fe3bf76a4ba6d79050cbfa0484dfbfc3a2b866afbcbf4058b24bfe85604051612e8991906141bb565b60405180910390a45050505050505050565b60009081526014602052604090205490565b612ec060016000198888888888886109bb565b505050505050565b60008381526011602090815260408083206001600160a01b038616845282528083208484529091529020545b9392505050565b600083815260106020526040812060048101548291908290612f1e90879061331b565b600583015460008981526012602090815260408083206001600160a01b038b16845290915290205491925090612f5b57612f5881886130b9565b90505b6000612f67888361331b565b90506000612f8160098601600101546009870160006108fb565b9050612f90612c9b858361333f565b612f9d612c9b848461333f565b965096505050505050935093915050565b600354600160a01b900460ff1690565b60006001600160a01b038316301415612fd957506001611b66565b6001546001600160a01b0384811691161415612ff757506001611b66565b6000546001600160a01b031661300f57506000611b66565b60005460405163b700961360e01b81526001600160a01b039091169063b70096139061304390869030908790600401614227565b60206040518083038186803b15801561305b57600080fd5b505afa15801561306f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130939190613b95565b9050611b66565b600081815260106020526040812060040154600754611b66919061333f565b80820182811015611b665760405162461bcd60e51b81526004016105479061463e565b60006001600160a01b038216156130f35781611b66565b50506003546001600160a01b031690565b6020015190565b60248101516044820151600354604051630d3d4c7160e11b8152600093929184916001600160a01b0390911690631a7a98e29061314c9086906004016141bb565b604080518083038186803b15801561316357600080fd5b505afa158015613177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061319b9190613c4b565b51600480546040516304e8852f60e11b81529293506001600160a01b0316916309d10a5e916131ce918591879101614197565b60206040518083038186803b1580156131e657600080fd5b505afa1580156131fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061321e9190613bc9565b95945050505050565b600080613236868686866134c7565b60008981526010602052604090206001015490915081146132695760405162461bcd60e51b81526004016105479061466c565b60208501516014870151603488015160488901516003546001600160a01b038085169116146132aa5760405162461bcd60e51b815260040161054790614487565b60008c81526010602052604090206003015482146132da5760405162461bcd60e51b8152600401610547906149ad565b8a6001600160a01b0316816001600160a01b03161461330b5760405162461bcd60e51b8152600401610547906147ed565b50919a9950505050505050505050565b60008161333084670de0b6b3a76400006134ef565b8161333757fe5b049392505050565b6000670de0b6b3a764000061333084846134ef565b80820382811115611b665760405162461bcd60e51b8152600401610547906143f3565b6000611b66600183613354565b6000633268b39f60e21b61339783613104565b6001600160e01b031916146133a857fe5b6064820151608483015161018484015160198214156133ef57826040516020016133d291906141bb565b60405160208183030381529060405280519060200120935061341b565b8281604051602001613402929190614197565b6040516020818303038152906040528051906020012093505b505050919050565b6000828152601060205260408120600d0154819061344f906201000090046001600160a01b03166130dc565b90506000808451602086016000855af1949350505050565b600060e482015280516043190160649091012090565b60008282604051602001613492929190614197565b60405160208183030381529060405280519060200120905092915050565b6000818311156134c05781612ef4565b5090919050565b6000806134e4868051906020012086805190602001208686613526565b509695505050505050565b600081158061350a5750508082028282828161350757fe5b04145b611b665760405162461bcd60e51b8152600401610547906144c8565b6000613530613917565b613538613935565b5060408051808201909152868152610100602082015261355661394c565b868152613561613917565b60005b865181101561363d576000613578896136a7565b60ff169050806001901b198916985061359d8160ff03866136ff90919063ffffffff16565b602086018190529095506000906135b390613766565b602087015290506135c3856137c0565b8482600281106135cf57fe5b602002015288518990600019858203019081106135e857fe5b60200260200101518482600103600281106135ff57fe5b602002018181525050836040516020016136199190614163565b60408051601f19818403018152919052805160209091012085525050600101613564565b508661364f5760208201839052613690565b600061365a886136a7565b60ff1690506136758160ff03856136ff90919063ffffffff16565b6020850181905290945061368890613766565b602085015250505b613699826137c0565b999098509650505050505050565b6000816136c65760405162461bcd60e51b815260040161054790614711565b8160805b60018160ff16106109a957600019600160ff83161b0182166136f4579182019160ff81169190911c905b60011c607f166136ca565b613707613935565b61370f613935565b8360200151831115801561372557506101008311155b61372b57fe5b6020820183905282613740576000825261374f565b835160011960ff8590031b1682525b60208085015184900390820152925190911b825291565b6000613770613935565b60008360200151116137945760405162461bcd60e51b8152600401610547906148c1565b5050805160408051808201909152825160011b8152602092830151600019019281019290925260ff1c91565b80516020808301518082015190516040516000946137e29490939291016141a5565b604051602081830303815290604052805190602001209050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061384057805160ff191683800117855561386d565b8280016001018555821561386d579182015b8281111561386d578251825591602001919060010190613852565b5061387992915061396b565b5090565b604051806101c00160405280613891613980565b81526020016000801916815260200160008152602001600081526020016000815260200160008152602001600081526020016138cb613917565b81526020016138d8613917565b81526020016138e5613917565b81526000602082018190526040820181905260608083019190915260809091015290565b506000815560010160009055565b60405180604001604052806002906020820280368337509192915050565b604080518082019091526000808252602082015290565b604080518082019091526000815260208101613966613935565b905290565b5b80821115613879576000815560010161396c565b60405180606001604052806003906020820280368337509192915050565b803561080e81614cd3565b600082601f8301126139b9578081fd5b81356001600160401b038111156139cc57fe5b60208082026139dc828201614c97565b838152935081840185830182870184018810156139f857600080fd5b600092505b84831015611b605780358252600192909201919083019083016139fd565b600082601f830112613a2b578081fd5b81356001600160401b03811115613a3e57fe5b613a51601f8201601f1916602001614c97565b9150808252836020828501011115613a6857600080fd5b8060208401602084013760009082016020015292915050565b600060208284031215613a92578081fd5b8135612ef481614cd3565b600060208284031215613aae578081fd5b8151612ef481614cd3565b60008060008060008060c08789031215613ad1578182fd5b613ada8761399e565b955060208701356001600160401b0380821115613af5578384fd5b613b018a838b01613a1b565b96506040890135915080821115613b16578384fd5b613b228a838b01613a1b565b95506060890135915080821115613b37578384fd5b613b438a838b01613a1b565b94506080890135935060a0890135915080821115613b5f578283fd5b50613b6c89828a016139a9565b9150509295509295509295565b600060208284031215613b8a578081fd5b8135612ef481614ce8565b600060208284031215613ba6578081fd5b8151612ef481614ce8565b600060208284031215613bc2578081fd5b5035919050565b600060208284031215613bda578081fd5b5051919050565b600060208284031215613bf2578081fd5b81356001600160e01b031981168114612ef4578182fd5b60008060408385031215613c1b578182fd5b82356001600160401b03811115613c30578283fd5b613c3c85828601613a1b565b95602094909401359450505050565b600060408284031215613c5c578081fd5b604051604081018181106001600160401b0382111715613c7857fe5b604052825181526020928301519281019290925250919050565b600080600060608486031215613ca6578081fd5b833592506020840135613cb881614cd3565b929592945050506040919091013590565b60008060008060008060c08789031215613ce1578384fd5b863595506020870135945060408701356001600160401b0380821115613b16578586fd5b600080600080600080600060e0888a031215613d1f578485fd5b87359650602088013595506040880135945060608801356001600160401b0380821115613d4a578283fd5b613d568b838c01613a1b565b955060808a0135915080821115613d6b578283fd5b613d778b838c01613a1b565b945060a08a0135935060c08a0135915080821115613d93578283fd5b50613da08a828b016139a9565b91505092959891949750929550565b60008060408385031215613dc1578182fd5b50508035926020909101359150565b600080600060608486031215613de4578081fd5b83359250602084013591506040840135613dfd81614cd3565b809150509250925092565b600080600080600080600080610100898b031215613e24578182fd5b8835975060208901359650613e3b60408a0161399e565b955060608901356001600160401b0380821115613e56578384fd5b613e628c838d01613a1b565b965060808b0135915080821115613e77578384fd5b613e838c838d01613a1b565b955060a08b0135915080821115613e98578384fd5b613ea48c838d01613a1b565b945060c08b0135935060e08b0135915080821115613ec0578283fd5b50613ecd8b828c016139a9565b9150509295985092959890939650565b600080600080600080600060e0888a031215613ef7578081fd5b873596506020880135955060408801356001600160401b0380821115613f1b578283fd5b613f278b838c01613a1b565b965060608a0135915080821115613d4a578283fd5b600080600080600060a08688031215613f53578283fd5b8535945060208601359350604086013592506060860135613f7381614cd3565b949793965091946080013592915050565b600080600080600080600060e0888a031215613d1f578081fd5b60008060008060008060008060006101208a8c031215613fbc578283fd5b8935985060208a0135975060408a0135965060608a0135955060808a0135945060a08a01356001600160401b0380821115613ff5578485fd5b6140018d838e01613a1b565b955060c08c0135915080821115614016578485fd5b6140228d838e01613a1b565b945060e08c013593506101008c013591508082111561403f578283fd5b5061404c8c828d016139a9565b9150509295985092959850929598565b600080600080600080600080610100898b031215614078578182fd5b505086359860208801359850604088013597606081013597506080810135965060a0810135955060c0810135945060e0013592509050565b6001600160a01b03169052565b8060005b60028110156140e05781518452602093840193909101906001016140c1565b50505050565b8060005b60038110156140e05781516001600160401b03168452602093840193909101906001016140ea565b15159052565b60008151808452815b8181101561413d57602081850181015186830182015201614121565b8181111561414e5782602083870101525b50601f01601f19169290920160200192915050565b60008183825b6002811015614188578151835260209283019290910190600101614169565b50505060408201905092915050565b918252602082015260400190565b9283526020830191909152604082015260600190565b90815260200190565b6001600160a01b0391909116815260200190565b6001600160a01b038416815260208101839052606081016141f883614cc6565b826040830152949350505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b6001600160a01b0393909316835260208301919091521515604082015260600190565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b901515815260200190565b6001600160e01b031991909116815260200190565b600060208252612ef46020830184614118565b600060408201604083528185546001808216600081146142fb576001811461431957614352565b60028304607f16855260ff1983166060880152608087019350614352565b600283048086526143298a614cba565b875b828110156143485781548a8201606001529084019060200161432b565b8901606001955050505b5050508092505050612ef46020830184614112565b6020810161437483614cc6565b91905290565b60208082526022908201527f766f74696e672d7265702d657870656e6469747572652d6c6f636b2d6661696c604082015261195960f21b606082015260800190565b6020808252601a908201527f766f74696e672d7265702d6d6f74696f6e2d6e6f742d6f70656e000000000000604082015260600190565b60208082526015908201527464732d6d6174682d7375622d756e646572666c6f7760581b604082015260600190565b6020808252601d908201527f766f74696e672d7265702d696e73756666696369656e742d7374616b65000000604082015260600190565b602080825260149082015273191ccb585d5d1a0b5d5b985d5d1a1bdc9a5e995960621b604082015260600190565b60208082526021908201527f766f74696e672d7265702d696e76616c69642d636f6c6f6e792d6164647265736040820152607360f81b606082015260800190565b60208082526014908201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604082015260600190565b6020808252601e908201527f766f74696e672d7265702d616c72656164792d696e697469616c697365640000604082015260600190565b6020808252601a908201527f766f74696e672d7265702d7365637265742d6e6f2d6d61746368000000000000604082015260600190565b6020808252601d908201527f766f74696e672d7265702d6d6f74696f6e2d6e6f742d7374616b696e67000000604082015260600190565b6020808252601b908201527f766f74696e672d7265702d6e6f7468696e672d746f2d636c61696d0000000000604082015260600190565b6020808252818101527f766f74696e672d7265702d677265617465722d7468616e2d68616c662d776164604082015260600190565b6020808252601b908201527f766f74696e672d7265702d696e73756666696369656e742d7265700000000000604082015260600190565b60208082526014908201527364732d6d6174682d6164642d6f766572666c6f7760601b604082015260600190565b6020808252601c908201527f766f74696e672d7265702d696e76616c69642d726f6f742d6861736800000000604082015260600190565b6020808252601c908201527f766f74696e672d7265702d696e76616c69642d646f6d61696e2d696400000000604082015260600190565b6020808252601a908201527f766f74696e672d7265702d63616c6c65722d6e6f742d726f6f74000000000000604082015260600190565b6020808252601e908201527f636f6c6f6e792d70617472696369612d747265652d7a65726f2d73656c660000604082015260600190565b6020808252601f908201527f766f74696e672d7265702d696e76616c69642d646f6d61696e2d70726f6f6600604082015260600190565b6020808252601b908201527f657874656e73696f6e2d616c72656164792d696e7374616c6c65640000000000604082015260600190565b6020808252601e908201527f766f74696e672d7265702d646973616c6c6f7765642d66756e6374696f6e0000604082015260600190565b6020808252601f908201527f766f74696e672d7265702d696e76616c69642d757365722d6164647265737300604082015260600190565b602080825260159082015274766f74696e672d7265702d6e6f742d61637469766560581b604082015260600190565b6020808252601c908201527f766f74696e672d7265702d6d6f74696f6e2d6e6f742d636c6f73656400000000604082015260600190565b6020808252601c908201527f766f74696e672d7265702d6d6f74696f6e2d6e6f742d72657665616c00000000604082015260600190565b60208082526025908201527f636f6c6f6e792d70617472696369612d747265652d7a65726f2d73656c662d6c6040820152640cadccee8d60db1b606082015260800190565b602080825260139082015272766f74696e672d7265702d6261642d766f746560681b604082015260600190565b6020808252601590820152741d9bdd1a5b99cb5c995c0b5898590b585b5bdd5b9d605a1b604082015260600190565b6020808252602b908201527f766f74696e672d7265702d616c742d7461726765742d63616e6e6f742d62652d60408201526a626173652d636f6c6f6e7960a81b606082015260800190565b6020808252601b908201527f766f74696e672d7265702d696e76616c69642d736b696c6c2d69640000000000604082015260600190565b60208082526019908201527f766f74696e672d7265702d696e76616c69642d73656372657400000000000000604082015260600190565b60208082526021908201527f766f74696e672d7265702d6d6f74696f6e2d6e6f742d66696e616c697a61626c6040820152606560f81b606082015260800190565b6020808252601b908201527f766f74696e672d7265702d677265617465722d7468616e2d7761640000000000604082015260600190565b6020808252601b908201527f636f6c6f6e792d657874656e73696f6e2d646570726563617465640000000000604082015260600190565b6020808252601a908201527f766f74696e672d7265702d706572696f642d746f6f2d6c6f6e67000000000000604082015260600190565b6020808252601f908201527f766f74696e672d7265702d6d6f74696f6e2d6e6f742d636c61696d61626c6500604082015260600190565b600060208252614b4c6020830184516140e6565b60208301516080830152604083015160a0830152606083015160c0830152608083015160e083015260a0830151610100818185015260c08501519150610120828186015260e08601519250610140614ba6818701856140bd565b91860151925061018091614bbc868401856140bd565b818701519350614bd06101c08701856140bd565b8601519250614be59050610200850183614112565b6101608501519150614bfb610220850183614112565b8401519050614c0e6102408401826140b0565b506101a083015161026083810152614c2a610280840182614118565b949350505050565b96875260208701959095526001600160a01b0393841660408701529183166060860152608085015260a08401521660c082015260e00190565b948552602085019390935260408401919091526001600160a01b03166060830152608082015260a00190565b6040518181016001600160401b0381118282101715614cb257fe5b604052919050565b60009081526020902090565b60088110614cd057fe5b50565b6001600160a01b0381168114614cd057600080fd5b8015158114614cd057600080fdfe0ae897e29e11067b0051d7f0047638509aeaeacf4e5c4146283aa5dd6ad03fd4a2646970667358221220829d5fc8632b2093167ab4671c8513258cea51184ce11c42964f0ed73de3bb2464736f6c63430007030033";