3 txs
45.5k calls
constructor
constructor(address _owner, address _posm, address _permit2, address _manager, address _wordbank)
functions
getTaxInBps
purefunction getTaxInBps(uint256 _generation) pure returns (uint256)
hook
viewfunction hook() view returns (address)
isKilled
viewfunction isKilled() view returns (bool)
isSpawn
viewfunction isSpawn(address) view returns (bool)
latestSpawn
viewfunction latestSpawn() view returns (address spawn, address creator, address parent, address parentCreator, uint256 taxInBps, string tokenName, string tokenSymbol)
owner
viewfunction owner() view returns (address result)
ownershipHandoverExpiresAt
viewfunction ownershipHandoverExpiresAt(address pendingOwner) view returns (uint256 result)
spawn0
viewfunction spawn0() view returns (address)
spawnCountPerParent
viewfunction spawnCountPerParent(address) view returns (uint256)
spawns
viewfunction spawns(uint256) view returns (address)
totalSpawnCount
viewfunction totalSpawnCount() view returns (uint256)
cancelOwnershipHandover
payablefunction cancelOwnershipHandover() payable
completeOwnershipHandover
payablefunction completeOwnershipHandover(address pendingOwner) payable
createSpawn
nonpayablefunction createSpawn(address _creator, address _parent) returns (address)
createSpawn0
nonpayablefunction createSpawn0(address _creator) returns (address)
kill
nonpayablefunction kill()
renounceOwnership
payablefunction renounceOwnership() payable
requestOwnershipHandover
payablefunction requestOwnershipHandover() payable
setHook
nonpayablefunction setHook(address _hook)
transferEther
payablefunction transferEther(address _to, uint256 _amount) payable
transferOwnership
payablefunction transferOwnership(address newOwner) payable
events
OwnershipHandoverCanceled
event OwnershipHandoverCanceled(address indexed pendingOwner)
OwnershipHandoverRequested
event OwnershipHandoverRequested(address indexed pendingOwner)
OwnershipTransferred
event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)
SpawnCreated
event SpawnCreated(address indexed spawn, address indexed creator, address indexed parent, uint256 id, uint256 generation, uint256 taxInBps, string tokenName, string tokenSymbol)
errors
AlreadyInitialized
error AlreadyInitialized()
HookAlreadySet
error HookAlreadySet()
HookNotSet
error HookNotSet()
InsufficientBalance
error InsufficientBalance()
NewOwnerIsZeroAddress
error NewOwnerIsZeroAddress()
NoHandoverRequest
error NoHandoverRequest()
OnlyHook
error OnlyHook()
Spawn0AlreadyCreated
error Spawn0AlreadyCreated()
Unauthorized
error Unauthorized()
creation bytecode
0x6101003461010657601f61525338819003918201601f19168301916001600160401b0383118484101761010a5780849260a094604052833981010312610106576100488161011e565b906100556020820161011e565b906100626040820161011e565b61007a60806100736060850161011e565b930161011e565b6001600160a01b0393841660805290831660a05290821660c052811660e05216638b78c6d8198190555f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3604051615120908161013382396080518181816109e6015261214b015260a0518181816109af0152612114015260c05181505060e05181611a760152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101065756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c806302d7bb4f1461314b57806305b1137b146130b95780630dfaf6e114612e34578063194206a314612de35780632569296214612d7c578063386be9c0146119465780633dfd38731461188057806341c0e1b51461181b57806354d1f13d146117b757806357175cd8146117595780635d27b9741461171d578063715018a61461167e5780637f5a7c7b1461162d5780638da5cb5b146115bc5780638fe8a1011461157b578063a21f530d146102f3578063f04e283e14610287578063f2fde38b1461022a578063fa32d496146101c7578063fb700b791461015f5763fee81cf41461010c575061000e565b3461015c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c5761014361318f565b9063389a75e1600c5252602080600c2054604051908152f35b80fd5b503461015c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c5760ff604060209273ffffffffffffffffffffffffffffffffffffffff6101b361318f565b168152600c84522054166040519015158152f35b503461015c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c57604060209173ffffffffffffffffffffffffffffffffffffffff61021961318f565b168152600b83522054604051908152f35b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c5761025d61318f565b610265613355565b8060601b1561027a57610277906133b9565b80f35b637448fbae82526004601cfd5b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c576102ba61318f565b6102c2613355565b63389a75e1600c528082526020600c20805442116102e657908261027792556133b9565b636f5e881883526004601cfd5b503461015c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c5761032b61318f565b610333613355565b6009546115535773ffffffffffffffffffffffffffffffffffffffff8254161561152b57606090604051610367838261323b565b603681527f5375737461696e61626c6520507972616d6964206f662041737365747320576860208201527f657265204e6f204f6e65204c6f736573204d6f6e65790000000000000000000060408201526040908151906103c7838361323b565b600582527f535041574e00000000000000000000000000000000000000000000000000000060208301526103fa866132bf565b8351611b5b958682019682881067ffffffffffffffff8911176114fe5773ffffffffffffffffffffffffffffffffffffffff8392610475926135908539308a5216978860208201528a888201528a8a82015284608082015260e060a082015261046660e082018761327c565b9060c08183039101528661327c565b039088f080156114f45773ffffffffffffffffffffffffffffffffffffffff16958786887f58e7c46a06e41a4ae391c9abb9630566aa5c98a00bd81a1ddd69d285ed4b54e26009548951908152846020820152868a82015260a086820152806104f26104e460a083018b61327c565b82810360808401528b61327c565b0390a4868852600c60205284882060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055876d18b48e29793d2f00000000000000986114c857505f957202abcc18bf277aa2a885e63f3fed5e62ffc55660801d60020b987202abccf67c7c9acfbd24c1df8e260799a0632f60801d60020b808b145f1461112f57508899989798505b6202abac875f5473ffffffffffffffffffffffffffffffffffffffff168151906105b082613203565b5f8252602082019d8e528282015f9052868201603c905260808201526020809d8351906105dd838361323b565b5f82527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301368484013784517f0200000000000000000000000000000000000000000000000000000000000000848201527f0d0000000000000000000000000000000000000000000000000000000000000060218201526002815295692189600cb9f61418ad9761067060228961323b565b610678613452565b9651918583016106d2908873ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c60c084015260e083015261010082015260026101208201526b033b2e3c9fd0803ce800000161014082015230610160820152610180808201528061073b6101a082018561327c565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101825261076b908261323b565b610774866134aa565b5261077e856134aa565b50835173ffffffffffffffffffffffffffffffffffffffff16905173ffffffffffffffffffffffffffffffffffffffff168d5191848301528d8201528c81526107c7898261323b565b6107d0856134e4565b526107da846134e4565b506107e3613452565b958c5193849384017ff7020405000000000000000000000000000000000000000000000000000000009052602484016108659173ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b60c483015260e4820160e0905261010482016108809161327c565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810182526108b0908261323b565b6108b9846134aa565b526108c3836134aa565b5088519182916108d5918e840161356a565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018252610905908261323b565b42603c01804211611102578b610984916109527fdd46508f00000000000000000000000000000000000000000000000000000000948c519586948501528c6024850152606484019061327c565b906044830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261323b565b61098d826134e4565b52610997816134e4565b5073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690803b156110fe575f809160848c8c5194859384927f87517c45000000000000000000000000000000000000000000000000000000008452600484015287602484015273ffffffffffffffffffffffffffffffffffffffff604484015265ffffffffffff60648401525af180156110f4576110dc575b50610ac0918a918c60028b518096819582947fac9650d8000000000000000000000000000000000000000000000000000000008452600484015260248301906134f4565b03925af180156110d2578a89928b92610fe9575b50610c289273ffffffffffffffffffffffffffffffffffffffff838660c094610c91999896508d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754936009548152600d83528181208688167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055808052600b835220610b66815461338c565b9055610b7360095461338c565b6009558d5194610b828661321f565b85528401528d8c8401521680958201528660808201528760a082015201968752610be78973ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b73ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b7fffffffffffffffffffffffff00000000000000000000000000000000000000006003541660035573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006004541617600455565b60055580519067ffffffffffffffff8211610fbc578190610cb36006546131b2565b601f8111610f6d575b508790601f8311600114610ece578792610ec3575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176006555b519283519067ffffffffffffffff8211610e9657610d236007546131b2565b601f8111610e52575b508590601f8311600114610db357948293949592610da8575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176007555b817fffffffffffffffffffffffff0000000000000000000000000000000000000000600a541617600a5551908152f35b015190505f80610d45565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083169560078352878320925b88888210610e3c57505083600195969710610e05575b505050811b01600755610d78565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f8080610df7565b6001849582939585015181550194019201610de1565b60078252868220601f840160051c810191888510610e8c575b601f0160051c01905b818110610e815750610d2c565b828155600101610e74565b9091508190610e6b565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526041600452fd5b015190505f80610cd1565b60068852888820927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016885b8a828210610f57575050908460019594939210610f20575b505050811b01600655610d04565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690555f8080610f12565b6001859682939686015181550195019301610efa565b90915060068752878720601f840160051c810191898510610fb2575b90601f859493920160051c01905b818110610fa45750610cbc565b888155849350600101610f97565b9091508190610f89565b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b925050503d808a833e610ffc818361323b565b8101908a818303126110ca5780519067ffffffffffffffff82116110ce57019080601f830112156110ca578151908b806110358461343a565b6110418c51918261323b565b848152019260051b840101928184116110c657928b928d9285848e9701925b8484106110705750505050610ad4565b9295509295509250835167ffffffffffffffff81116110c257820183603f820112156110c2578e8493926110b0829897968f9484958582015191016132f1565b815201930190918d94928d9694611060565b8d80fd5b8b80fd5b8980fd5b8a80fd5b87513d8b823e3d90fd5b610ac0929a505f6110ec9161323b565b5f9991610a7c565b89513d5f823e3d90fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8060ff1d818101189a620d89e88c1161149c578273ffffffffffffffffffffffffffffffffffffffff63ffffffff8d9e5f9e9d9e50600181167001fffcb933bd6fad37aa2d162d1a59400102700100000000000000000000000000000000189060028116611480575b60048116611464575b60088116611448575b6010811661142c575b60208116611410575b8d81166113f4575b608081166113d8575b61010081166113bc575b61020081166113a0575b6104008116611384575b6108008116611368575b611000811661134c575b6120008116611330575b6140008116611314575b61800081166112f8575b6201000081166112dc575b6202000081166112c1575b6204000081166112a6575b6208000016611290575b5f8613611269575b0160201c161161126257505b50610587565b905061125c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04611250565b6b048a170391f7dc42444e8fa20260801c611248565b6d2216e584f5fa1ea926041bedfe9890910260801c9061123e565b906e5d6af8dedb81196699c329225ee6040260801c90611233565b906f09aa508b5b7a84e1c677de54f3e99bc90260801c90611228565b906f31be135f97d08fd981231505542fcfa60260801c9061121d565b906f70d869a156d2a1b890bb3df62baf32f70260801c90611213565b906fa9f746462d870fdf8a65dc1f90e061e50260801c90611209565b906fd097f3bdfd2022b8845ad8f792aa58250260801c906111ff565b906fe7159475a2c29b7443b29c7fa6e889d90260801c906111f5565b906ff3392b0822b70005940c7a398e4b70f30260801c906111eb565b906ff987a7253ac413176f2b074cf7815e540260801c906111e1565b906ffcbe86c7900a88aedcffc83b479aa3a40260801c906111d7565b906ffe5dee046a99a2a811c461f1969c30530260801c906111cd565b906fff2ea16466c96a3843ec78b326b528610260801c906111c4565b906fff973b41fa98c081472e6896dfb254c00260801c906111bc565b906fffcb9843d60f6159c9db58835c9266440260801c906111b3565b906fffe5caca7e10e4e61c3624eaa0941cd00260801c906111aa565b906ffff2e50f5f656932ef12357cf3c7fdcc0260801c906111a1565b906ffff97272373d413259a46990580e213a0260801c90611198565b507f8b86327a000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80897f614875240000000000000000000000000000000000000000000000000000000060249352600452fd5b84513d89823e3d90fd5b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6004827f86972930000000000000000000000000000000000000000000000000000000008152fd5b6004827ffd2a9cd3000000000000000000000000000000000000000000000000000000008152fd5b503461015c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c57602060ff600854166040519015158152f35b503461015c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c5760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b503461015c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c576116b0613355565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275580f35b503461015c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c576020600954604051908152f35b503461015c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c5773ffffffffffffffffffffffffffffffffffffffff60406020926004358152600d8452205416604051908152f35b50807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c5763389a75e1600c52338152806020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c928280a280f35b503461015c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c57611852613355565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600854161760085580f35b503461015c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c576118b861318f565b6118c0613355565b81549073ffffffffffffffffffffffffffffffffffffffff821661191e5773ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff00000000000000000000000000000000000000009116911617815580f35b6004837fbef9156a000000000000000000000000000000000000000000000000000000008152fd5b346110fe5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126110fe5761197d61318f565b60243573ffffffffffffffffffffffffffffffffffffffff81168091036110fe5773ffffffffffffffffffffffffffffffffffffffff5f54163303612d5457604051907f17219522000000000000000000000000000000000000000000000000000000008252602082600481845afa918215612901575f92612d20575b50600182018092116111025760095491604051602081019042825284604082015260408152611a2a60608261323b565b51902092604051937f1bc3a9b200000000000000000000000000000000000000000000000000000000855260048501525f8460248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa938415612901575f94612ccd575b50604051600a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608083019360a084016040525f8552935b0192818106603001845304918215611b19577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a91611ade565b91506025611bb3916080847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810192030181526040519384917f535041574e00000000000000000000000000000000000000000000000000000060208401525180918484015e81015f8382015203017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261323b565b611bbc826132bf565b93604051611b5b8082019782891067ffffffffffffffff8a1117612ca05773ffffffffffffffffffffffffffffffffffffffff611c3a9184936135908539308b52169889602082015287604082015286606082015288608082015260e060a0820152611c2b60e082018661327c565b9060c08183039101528561327c565b03905ff09283156129015786859173ffffffffffffffffffffffffffffffffffffffff7f58e7c46a06e41a4ae391c9abb9630566aa5c98a00bd81a1ddd69d285ed4b54e2961695869160095490604051918252602082015289604082015260a0606082015280611cbe611cb060a083018961327c565b82810360808401528961327c565b0390a4825f52600c60205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790556d7b86c6cf5e31e800000000000000947203298ae9b2314543db63c7215bed5e62ffc55660801d60020b7203298bc76f866570f002a2c1aa260799a0632f60801d60020b8082145f1461290c5750505b62032988965f5473ffffffffffffffffffffffffffffffffffffffff169660405198611d718a613203565b5f8a5260208a0198878a5260408b015f905260608b01603c905260808b01526020998a604051611da1828261323b565b5f81527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0820136838301376040517f0200000000000000000000000000000000000000000000000000000000000000838201527f0d000000000000000000000000000000000000000000000000000000000000006021820152600281526906b28872d14f35e485b09c9094611e3760228761323b565b611e3f613452565b9d60405191858301611e9b908873ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2764c60c084015260e083015261010082015260026101208201526b033b2e3c9fd0803ce800000161014082015230610160820152610180808201528d81611f056101a082018661327c565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352611f35908361323b565b611f3e906134aa565b52611f488d6134aa565b50835173ffffffffffffffffffffffffffffffffffffffff16905173ffffffffffffffffffffffffffffffffffffffff166040519184830152604082015260408152611f9560608261323b565b611f9e8d6134e4565b52611fa88c6134e4565b50611fb1613452565b9460405193849384017ff7020405000000000000000000000000000000000000000000000000000000009052602484016120349173ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b60c483015260e4820160e09052610104820161204f9161327c565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101825261207f908261323b565b612088836134aa565b52612092826134aa565b506040517f4afe393c000000000000000000000000000000000000000000000000000000008b8201525f99909182916120ce916024840161356a565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810182526120fe908261323b565b612107826134e4565b52612111816134e4565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690803b156110fe575f80916084604051809481937f87517c450000000000000000000000000000000000000000000000000000000083528d600484015287602484015273ffffffffffffffffffffffffffffffffffffffff604484015265ffffffffffff60648401525af18015612901576128e9575b5061223b9189918b60026040518096819582947fac9650d8000000000000000000000000000000000000000000000000000000008452600484015260248301906134f4565b03925af1801561281b57612826575b508786612764576123656123e69260c073ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927545b6009548d52600d865260408d20828c167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790558b8d52600b865260408d206122de815461338c565b90556122eb60095461338c565b60095583604051966122fc8861321f565b8c88528701528b604087015216938460608201528660808201528760a082015201968752610be78873ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b73ffffffffffffffffffffffffffffffffffffffff87167fffffffffffffffffffffffff0000000000000000000000000000000000000000600354161760035573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006004541617600455565b60055580519067ffffffffffffffff8211610fbc5781906124086006546131b2565b601f8111612715575b508790601f831160011461267657879261266b575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176006555b5180519067ffffffffffffffff821161263e5781906124796007546131b2565b601f81116125ef575b508690601f8311600114612550578692612545575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176007555b813b156125415782916024839260405194859384927f1eee993a00000000000000000000000000000000000000000000000000000000845260048401525af1801561253657908291612521575b5050604051908152f35b8161252b9161323b565b61015c578083612517565b6040513d84823e3d90fd5b8280fd5b015190508680612497565b60078752878720927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016875b898282106125d95750509084600195949392106125a2575b505050811b016007556124ca565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055868080612594565b600185968293968601518155019501930161257c565b90915060078652868620601f840160051c810191888510612634575b90601f859493920160051c01905b8181106126265750612482565b878155849350600101612619565b909150819061260b565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b015190508780612426565b60068852888820927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016885b8a8282106126ff5750509084600195949392106126c8575b505050811b01600655612459565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690558780806126ba565b60018596829396860151815501950193016126a2565b90915060068752878720601f840160051c81019189851061275a575b90601f859493920160051c01905b81811061274c5750612411565b88815584935060010161273f565b9091508190612731565b506040517f02d05d3f00000000000000000000000000000000000000000000000000000000815288816004818a5afa90811561281b5790899189916127c9575b506123e69260c073ffffffffffffffffffffffffffffffffffffffff61236593612292565b82819392503d8311612814575b6127e0818361323b565b81010312612810575173ffffffffffffffffffffffffffffffffffffffff811681036128105788906123e66127a4565b8780fd5b503d6127d6565b6040513d8a823e3d90fd5b3d8089833e612835818361323b565b81019089818303126128e55780519067ffffffffffffffff82116110ca57019080601f830112156128e5578151908a8061286e8461343a565b61287b604051918261323b565b848152019260051b840101928184116110ce578b8101925b8484106128a3575050505061224a565b835167ffffffffffffffff81116128e157820183603f820112156128e1578d916128d685836040868096015191016132f1565b815201930192612893565b8c80fd5b8880fd5b61223b9299505f6128f99161323b565b5f98916121f6565b6040513d5f823e3d90fd5b908160ff1d82810118620d89e88111612c745773ffffffffffffffffffffffffffffffffffffffff63ffffffff8a92600181167001fffcb933bd6fad37aa2d162d1a59400102700100000000000000000000000000000000189060028116612c58575b60048116612c3c575b60088116612c20575b60108116612c04575b60208116612be8575b60408116612bcc575b60808116612bb0575b6101008116612b94575b6102008116612b78575b6104008116612b5c575b6108008116612b40575b6110008116612b24575b6120008116612b08575b6140008116612aec575b6180008116612ad0575b620100008116612ab4575b620200008116612a99575b620400008116612a7e575b6208000016612a68575b5f8613612a41575b0160201c1611612a3a57505b50611d46565b9050612a34565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04612a28565b6b048a170391f7dc42444e8fa20260801c612a20565b6d2216e584f5fa1ea926041bedfe9890910260801c90612a16565b906e5d6af8dedb81196699c329225ee6040260801c90612a0b565b906f09aa508b5b7a84e1c677de54f3e99bc90260801c90612a00565b906f31be135f97d08fd981231505542fcfa60260801c906129f5565b906f70d869a156d2a1b890bb3df62baf32f70260801c906129eb565b906fa9f746462d870fdf8a65dc1f90e061e50260801c906129e1565b906fd097f3bdfd2022b8845ad8f792aa58250260801c906129d7565b906fe7159475a2c29b7443b29c7fa6e889d90260801c906129cd565b906ff3392b0822b70005940c7a398e4b70f30260801c906129c3565b906ff987a7253ac413176f2b074cf7815e540260801c906129b9565b906ffcbe86c7900a88aedcffc83b479aa3a40260801c906129af565b906ffe5dee046a99a2a811c461f1969c30530260801c906129a5565b906fff2ea16466c96a3843ec78b326b528610260801c9061299c565b906fff973b41fa98c081472e6896dfb254c00260801c90612993565b906fffcb9843d60f6159c9db58835c9266440260801c9061298a565b906fffe5caca7e10e4e61c3624eaa0941cd00260801c90612981565b906ffff2e50f5f656932ef12357cf3c7fdcc0260801c90612978565b906ffff97272373d413259a46990580e213a0260801c9061296f565b827f8b86327a000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b9093503d805f833e612cdf818361323b565b8101906020818303126110fe5780519067ffffffffffffffff82116110fe57019080601f830112156110fe578151612d19926020016132f1565b9285611aa6565b9091506020813d602011612d4c575b81612d3c6020938361323b565b810103126110fe575190836119fa565b3d9150612d2f565b7f5a91834f000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126110fe5763389a75e1600c52335f526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a2005b346110fe575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126110fe57602073ffffffffffffffffffffffffffffffffffffffff600a5416604051908152f35b346110fe575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126110fe5773ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff600254169073ffffffffffffffffffffffffffffffffffffffff6003541673ffffffffffffffffffffffffffffffffffffffff60045416600554604051915f8360065491612edd836131b2565b808352926001811690811561307c575060011461301d575b612f019250038461323b565b604051935f600754612f12816131b2565b8088529060018116908115612fdb5750600114612f81575b5091612f6f9391612f4287612f7d989795038761323b565b6040519889988952602089015260408801526060870152608086015260e060a086015260e085019061327c565b9083820360c085015261327c565b0390f35b60075f90815291507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6885b818310612fc15750508501602001612f6f612f2a565b6001816020929493945483858c0101520191019190612fab565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166020808a019190915291151560051b88019091019150612f6f9050612f2a565b5060065f90815290917ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b818310613060575050906020612f0192820101612ef5565b6020919350806001915483858a01015201910190918592613048565b60209250612f019491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b820101612ef5565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126110fe576130eb61318f565b602435906130f7613355565b5f38818085856108fcf11561310857005b81471061313e575f3881808585620186a0f11561312157005b601691600b915f526073825360ff602053f01561313a57005b3838fd5b63b12d13eb5f526004601cfd5b346110fe5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126110fe5760206131876004356132bf565b604051908152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036110fe57565b90600182811c921680156131f9575b60208310146131cc57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f16916131c1565b60a0810190811067ffffffffffffffff821117612ca057604052565b60e0810190811067ffffffffffffffff821117612ca057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117612ca057604052565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6001810180911161110257606481029080820460641490151715611102576126ac8111156132ee57506126ac90565b90565b92919267ffffffffffffffff8211612ca05760405191613339601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020018461323b565b8294818452818301116110fe578281602093845f96015e010152565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754330361337f57565b6382b429005f526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111025760010190565b73ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755565b67ffffffffffffffff8111612ca05760051b60200190565b60405160609190613463838261323b565b60028152917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001825f5b82811061349957505050565b80606060208093850101520161348d565b8051156134b75760200190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8051600110156134b75760400190565b9080602083519182815201916020808360051b8301019401925f915b83831061351f57505050505090565b909192939460208061355b837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08660019603018752895161327c565b97019301930191939290613510565b90916135816132ee9360408452604084019061327c565b9160208184039101526134f456fe610120604052346104a957611b5b8038038061001a816104ad565b92833981019060e0818303126104a957610033816104d2565b90610040602082016104d2565b9161004d604083016104d2565b6060830151608084015160a0850151929490926001600160401b0381116104a9578761007a9183016104e6565b60c08201519097906001600160401b0381116104a95761009a92016104e6565b948360e05260a0528360c05260805261010052835160018060401b0381116103bd575f54600181811c9116801561049f575b602082101461039f57601f811161043d575b50602094601f82116001146103dc579481929394955f926103d1575b50508160011b915f199060031b1c1916175f555b82516001600160401b0381116103bd57600154600181811c911680156103b3575b602082101461039f57601f811161033c575b506020601f82116001146102d957819293945f926102ce575b50508160011b915f199060031b1c1916176001555b6805345cdf77eb68f44c546b033b2e3c9fd0803ce800000081019081106102c1577f39e7cc985d7161dd71d89eb617ed586ed261347cae1a1bb602fe7d00519f54a1916060916805345cdf77eb68f44c556387a211a2600c52805f526020600c206b033b2e3c9fd0803ce800000081540190556b033b2e3c9fd0803ce8000000602052600c51821c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3604080515f81526001600160a01b0390921660208301526b033b2e3c9fd0803ce800000090820152a16001600160a01b0316638b78c6d8198190555f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a36040516116239081610538823960805181611106015260a05181611270015260c05181610c1e015260e05181818161080a0152610f950152610100518161079d0152f35b63e5cfe9575f526004601cfd5b015190505f8061015a565b601f1982169060015f52805f20915f5b8181106103245750958360019596971061030c575b505050811b0160015561016f565b01515f1960f88460031b161c191690555f80806102fe565b9192602060018192868b0151815501940192016102e9565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610395575b601f0160051c01905b81811061038a5750610141565b5f815560010161037d565b9091508190610374565b634e487b7160e01b5f52602260045260245ffd5b90607f169061012f565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100fa565b601f198216955f8052805f20915f5b8881106104255750836001959697981061040d575b505050811b015f5561010e565b01515f1960f88460031b161c191690555f8080610400565b919260206001819286850151815501940192016103eb565b5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c81019160208410610495575b601f0160051c01905b81811061048a57506100de565b5f815560010161047d565b9091508190610474565b90607f16906100cc565b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176103bd57604052565b51906001600160a01b03821682036104a957565b81601f820112156104a9578051906001600160401b0382116103bd57610515601f8301601f19166020016104ad565b92828452602083830101116104a957815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816302d05d3f146112285750806306fdde03146111e3578063095ea7b31461112957806317219522146110d157806318160ddd1461108e5780631eee993a14610f4757806323b872dd14610e255780632569296214610dbe578063313ce56714610d855780633644e51514610cdf57806354d1f13d14610c7d57806359f2427114610c4257806360f96a8f14610bd45780637002ce4214610b7657806370a0823114610b26578063715018a614610a895780637ecebe0014610a395780638da5cb5b146109c957806395d89b411461082e578063a645745a146107c0578063a7c700b714610768578063a9059cbb146106af578063d505accf14610300578063d5abeb01146102bc578063dd62ed3e1461026a578063f04e283e146101ff578063f2fde38b146101a45763fee81cf414610150575f80fd5b346101a05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a0576101876112dc565b63389a75e1600c525f52602080600c2054604051908152f35b5f80fd5b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a0576101d66112dc565b6101de611535565b8060601b156101f2576101f09061156c565b005b637448fbae5f526004601cfd5b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a0576102316112dc565b610239611535565b63389a75e1600c52805f526020600c20908154421161025d575f6101f0925561156c565b636f5e88185f526004601cfd5b346101a05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a05760206102b46102a66112dc565b6102ae6112ff565b9061147c565b604051908152f35b346101a0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a05760206040516b033b2e3c9fd0803ce80000008152f35b346101a05760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a0576103376112dc565b61033f6112ff565b604435916064356084359260ff841684036101a05773ffffffffffffffffffffffffffffffffffffffff16938019156e22d473030f116ddee9f6b43ac78ba3861817156106a2576040515f905f548060011c926001821693841561069a575b60208110851461066d57808452602084019484938115610616575060011461059e575b5003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761057157604052519020908242116105645773ffffffffffffffffffffffffffffffffffffffff60405194169465383775081901600e52855f5260c06020600c20958654957f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8252602082019586528660408301967fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc688528b6060850198468a528c608087019330855260a08820602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9885252528688525260a082015220604e526042602c205f5260ff1660205260a43560405260c43560605260208060805f60015afa93853d5103610557577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259460209401905585777f5e9f200000000000000000000000000000000000000000176040526034602c2055a3005b63ddafbaef5f526004601cfd5b631a15a3cc5f526004601cfd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f80805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8183106105fa57505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06103c1565b60209193508060019154838588010152019101909183926105c6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016865250151560051b820160200190507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06103c1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b607f1661039e565b633f68539a5f526004601cfd5b346101a05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a0576106e66112dc565b6024356387a211a2600c52335f526020600c209182549283831161075b578261075094039055805f526020600c2082815401905581602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3336114e5565b602060405160018152f35b63f4d678b85f526004601cfd5b346101a0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a05760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346101a0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101a0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a0576040515f600154908160011c600183169283156109bf575b60208210841461066d57818552849390811561095f57506001146108e5575b5003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01681019067ffffffffffffffff82118183101761057157604082905281906108e19082611294565b0390f35b60015f90815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061094357505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610893565b602091935080600191548385880101520191019091839261090f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09050610893565b90607f1690610874565b346101a0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a05760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b346101a05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a057610a706112dc565b6338377508600c525f52602080600c2054604051908152f35b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a057610aba611535565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755005b346101a05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a057610b5d6112dc565b6387a211a2600c525f52602080600c2054604051908152f35b346101a05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a0576004355f526003602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b346101a0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101a0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a0576020600254604051908152f35b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a05763389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2005b346101a0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a057602060a0610d19611322565b828151910120604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8252838201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015220604051908152f35b346101a0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a057602060405160128152f35b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a05763389a75e1600c52335f526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a2005b346101a05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a057610e5c6112dc565b610e646112ff565b604435908260601b6e22d473030f116ddee9f6b43ac78ba33303610efd575b6387a211a217600c526020600c209283549384841161075b578361075095039055815f526020600c2083815401905582602052600c5160601c73ffffffffffffffffffffffffffffffffffffffff82167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a36114e5565b33602052637f5e9f208117600c526034600c20908154918219610f23575b509050610e83565b828511610f3a57846387a211a29303905585610f1b565b6313be252b5f526004601cfd5b346101a05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a057610f7e6112dc565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303611066576002545f52600360205273ffffffffffffffffffffffffffffffffffffffff60405f2091167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556002547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461103957600101600255005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7ff5e2e8e4000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101a0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a05760206805345cdf77eb68f44c54604051908152f35b346101a0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a05760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346101a05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a0576111606112dc565b602435908119156e22d473030f116ddee9f6b43ac78ba373ffffffffffffffffffffffffffffffffffffffff83161817156106a257602052637f5e9f20600c52335f52806034600c20555f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa3602060405160018152f35b346101a0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a0576108e161121c611322565b60405191829182611294565b346101a0575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a05760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602060409481855280519182918282880152018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101a057565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101a057565b604051905f8054908160011c60018316928315611472575b60208210841461066d578186528593908115611412575060011461139a575b5003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820167ffffffffffffffff81118382101761057157604052565b5f80805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8183106113f657505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611359565b60209193508060019154838589010152019101909184926113c2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09050611359565b90607f169061133a565b906e22d473030f116ddee9f6b43ac78ba373ffffffffffffffffffffffffffffffffffffffff8216146114bf57602052637f5e9f20600c525f526034600c205490565b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b7f39e7cc985d7161dd71d89eb617ed586ed261347cae1a1bb602fe7d00519f54a19273ffffffffffffffffffffffffffffffffffffffff60609381604051941684521660208301526040820152a1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754330361155f57565b6382b429005f526004601cfd5b73ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275556fea26469706673582212209c428641124e9daeeffd59672b40441789c98928aa802428c3f97967f54711f764736f6c634300081a0033a264697066735822122089c502946cc3428d1ccae6e4729445c25addc3812074124f8b21eaaf6f590c7a64736f6c634300081a0033000000000000000000000000019817ad02a31b990433542097be29d97613e8cb0000000000000000000000007c5f5a4bbd8fd63184577525326123b519429bdc000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b000000000000000000000000d5ef7d3d225770bcfc4a46f9cef413f440610dee