@settlemint/solidity-zeto
Version:
Smart contract set to build Zero Knowledge tokens in SettleMint
1 lines • 174 kB
JSON
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deployer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ZetoTokenFactory"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"test_DeployAndRegisterImplementation","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f55615dc890816100348239f35b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c80630a9254e41461173d5780631ed7831c146116b25780632ade3880146114a45780633e5e3c23146114195780633f7286f41461138e57806366d9a9a01461125157806385226c81146111c7578063916a17c614611110578063b0464fdc14611059578063b5508aa914610fcf578063ba414fa614610faa578063c45a015514610f73578063d5f3948814610f40578063d7b90d401461018a578063e20c9f71146100ef5763fa7626d4146100ca575f80fd5b346100ec57806003193601126100ec57602060ff601f54166040519015158152f35b80fd5b50346100ec57806003193601126100ec5760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b81811061015e5761015a8561014e81870382611cbe565b60405191829182611a8b565b0390f35b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201610137565b50346100ec57806003193601126100ec578073ffffffffffffffffffffffffffffffffffffffff60205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610f3d57604051907f06447d560000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610c7657610f28575b50506040516129c18082019082821067ffffffffffffffff831117610efb579082916133d28339039082f0908115610eef57604051610264604082611cbe565b60088152602081017f766572696669657200000000000000000000000000000000000000000000000081526040516102b86020828181019486518091875e810187838201520301601f198101835282611cbe565b519020604051907fffa186490000000000000000000000000000000000000000000000000000000082526004820152602081602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610ec5578391610ed0575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610e7e578273ffffffffffffffffffffffffffffffffffffffff61038c9260405193849283927fc657c7180000000000000000000000000000000000000000000000000000000084521695866004840152604060248401526044830190611ada565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610ec557908391610eac575b5050604051906103c5604083611cbe565b600d8252602082017f626174636856657269666965720000000000000000000000000000000000000081526040516104196020828181019487518091875e810188838201520301601f198101835282611cbe565b519020604051907fffa186490000000000000000000000000000000000000000000000000000000082526004820152602081602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610e82578491610e8d575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610e3b578373ffffffffffffffffffffffffffffffffffffffff6104ed9260405193849283927fc657c7180000000000000000000000000000000000000000000000000000000084521696876004840152604060248401526044830190611ada565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610e8257908491610e69575b505060405190610526604083611cbe565b600f8252602082017f6465706f73697456657269666965720000000000000000000000000000000000815260405161057a6020828181019487518091875e810189838201520301601f198101835282611cbe565b519020604051907fffa186490000000000000000000000000000000000000000000000000000000082526004820152602081602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610e3f578591610e4a575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610df8578473ffffffffffffffffffffffffffffffffffffffff61064e9260405193849283927fc657c7180000000000000000000000000000000000000000000000000000000084521696876004840152604060248401526044830190611ada565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610e3f57908591610e26575b505060405191610687604084611cbe565b60108352602083017f776974686472617756657269666965720000000000000000000000000000000081526040516106db6020828181019488518091875e81018a838201520301601f198101835282611cbe565b519020604051907fffa186490000000000000000000000000000000000000000000000000000000082526004820152602081602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610dfc578691610e07575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610db1578573ffffffffffffffffffffffffffffffffffffffff6107af9260405193849283927fc657c7180000000000000000000000000000000000000000000000000000000084521697886004840152604060248401526044830190611ada565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610dfc57908691610de3575b5050604051926107e8604085611cbe565b60158452602084017f6261746368576974686472617756657269666965720000000000000000000000815260405161083c6020828181019489518091875e81018b838201520301601f198101835282611cbe565b519020604051907fffa186490000000000000000000000000000000000000000000000000000000082526004820152602081602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115610db5578791610dc4575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610dc0578673ffffffffffffffffffffffffffffffffffffffff6109109260405193849283927fc657c7180000000000000000000000000000000000000000000000000000000084521698896004840152604060248401526044830190611ada565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610db557908791610d9c575b50506040519360c0850185811067ffffffffffffffff821117610d6f57879873ffffffffffffffffffffffffffffffffffffffff916040521685526020850192835260408501918252606085019384526080850195865260a0850190815273ffffffffffffffffffffffffffffffffffffffff601f5460081c1692833b15610d6b5787958692604051988997889687957fe83b3f660000000000000000000000000000000000000000000000000000000087526004870160e0905260e48701610a2c90604090600481527f746573740000000000000000000000000000000000000000000000000000000060208201520190565b955173ffffffffffffffffffffffffffffffffffffffff1660248801525173ffffffffffffffffffffffffffffffffffffffff1660448701525173ffffffffffffffffffffffffffffffffffffffff1660648601525173ffffffffffffffffffffffffffffffffffffffff1660848501525173ffffffffffffffffffffffffffffffffffffffff1660a48401525173ffffffffffffffffffffffffffffffffffffffff1660c483015203925af18015610c7657610d56575b5080602073ffffffffffffffffffffffffffffffffffffffff601f5460081c1673ffffffffffffffffffffffffffffffffffffffff8254169060405180948180947fd7c567d600000000000000000000000000000000000000000000000000000000825260406004830152610b8760448301604090600481527f746573740000000000000000000000000000000000000000000000000000000060208201520190565b90602483015203925af18015610c765773ffffffffffffffffffffffffffffffffffffffff918391610d27575b50161560405190610bc6604083611cbe565b60178252807f546f6b656e206465706c6f796d656e74206661696c65640000000000000000006020840152610c81575b505050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156100ec57806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610c7657610c655750f35b81610c6f91611cbe565b6100ec5780f35b6040513d84823e3d90fd5b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610d2357610ce491839160405193849283927fa34edc03000000000000000000000000000000000000000000000000000000008452156004840152604060248401526044830190611ada565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa8015610c7657610d0e575b80610bf6565b81610d1891611cbe565b6100ec57805f610d08565b5050fd5b610d49915060203d602011610d4f575b610d418183611cbe565b810190612179565b5f610bb4565b503d610d37565b81610d6091611cbe565b6100ec57805f610ae4565b8780fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b81610da691611cbe565b610db157855f610938565b8580fd5b6040513d89823e3d90fd5b8680fd5b610ddd915060203d602011610d4f57610d418183611cbe565b5f610896565b81610ded91611cbe565b610df857845f6107d7565b8480fd5b6040513d88823e3d90fd5b610e20915060203d602011610d4f57610d418183611cbe565b5f610735565b81610e3091611cbe565b610e3b57835f610676565b8380fd5b6040513d87823e3d90fd5b610e63915060203d602011610d4f57610d418183611cbe565b5f6105d4565b81610e7391611cbe565b610e7e57825f610515565b8280fd5b6040513d86823e3d90fd5b610ea6915060203d602011610d4f57610d418183611cbe565b5f610473565b81610eb691611cbe565b610ec157815f6103b4565b5080fd5b6040513d85823e3d90fd5b610ee9915060203d602011610d4f57610d418183611cbe565b5f610312565b604051903d90823e3d90fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b81610f3291611cbe565b6100ec57805f610224565b50fd5b50346100ec57806003193601126100ec57602073ffffffffffffffffffffffffffffffffffffffff815416604051908152f35b50346100ec57806003193601126100ec57602073ffffffffffffffffffffffffffffffffffffffff601f5460081c16604051908152f35b50346100ec57806003193601126100ec576020610fc56120a0565b6040519015158152f35b50346100ec57806003193601126100ec57601954610fec81611ce1565b91610ffa6040519384611cbe565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061103c576040518061015a8782611b54565b60016020819261104b85611cf9565b815201920192019190611027565b50346100ec57806003193601126100ec57601c5461107681611ce1565b916110846040519384611cbe565b818352601c81527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106110c6576040518061015a8782611bd1565b600260206001926040516110d981611c75565b73ffffffffffffffffffffffffffffffffffffffff86541681526110fe858701611dfc565b838201528152019201920191906110b1565b50346100ec57806003193601126100ec57601d5461112d81611ce1565b9161113b6040519384611cbe565b818352601d81527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f602084015b83831061117d576040518061015a8782611bd1565b6002602060019260405161119081611c75565b73ffffffffffffffffffffffffffffffffffffffff86541681526111b5858701611dfc565b83820152815201920192019190611168565b50346100ec57806003193601126100ec57601a546111e481611ce1565b916111f26040519384611cbe565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310611234576040518061015a8782611b54565b60016020819261124385611cf9565b81520192019201919061121f565b50346100ec57806003193601126100ec57601b5461126e81611ce1565b61127b6040519182611cbe565b818152601b83526020810191837f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1845b83831061135357868587604051928392602084019060208552518091526040840160408260051b8601019392905b8282106112e857505050500390f35b91936020611343827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc06001959799849503018652885190836113338351604084526040840190611ada565b9201519084818403910152611aff565b96019201920185949391926112d9565b6002602060019260405161136681611c75565b61136f86611cf9565b815261137c858701611dfc565b838201528152019201920191906112ab565b50346100ec57806003193601126100ec5760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b8181106113ed5761015a8561014e81870382611cbe565b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016113d6565b50346100ec57806003193601126100ec5760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b8181106114785761015a8561014e81870382611cbe565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201611461565b50346100ec57806003193601126100ec57601e546114c181611ce1565b6114ce6040519182611cbe565b818152601e83526020810191837f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350845b83831061161c5786858760405192839260208401906020855251809152604084019160408260051b8601019392815b83831061153a5786860387f35b9193957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc09086929496030183528551906020604082019273ffffffffffffffffffffffffffffffffffffffff81511683520151916040602083015282518091526060820190602060608260051b850101940192855b8281106115d35750505050506020806001929701930193019092869594929361152d565b909192939460208061160f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa087600196030189528951611ada565b97019501939291016115af565b60405161162881611c75565b73ffffffffffffffffffffffffffffffffffffffff835416815260018301805461165181611ce1565b9161165f6040519384611cbe565b8183528a526020808b20908b9084015b8382106116955750505050600192826020928360029501528152019201920191906114fe565b6001602081926116a486611cf9565b81520193019101909161166f565b50346100ec57806003193601126100ec5760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b8181106117115761015a8561014e81870382611cbe565b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016116fa565b5034611a68575f600319360112611a68576040519061175d604083611cbe565b60088252602082017f6465706c6f79657200000000000000000000000000000000000000000000000081526040516117b16020828181019487518091875e81015f838201520301601f198101835282611cbe565b519020604051907fffa186490000000000000000000000000000000000000000000000000000000082526004820152602081602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115611a5d575f91611a6c575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15611a68575f73ffffffffffffffffffffffffffffffffffffffff6118859260405193849283927fc657c7180000000000000000000000000000000000000000000000000000000084521696876004840152604060248401526044830190611ada565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015611a5d57611a4a575b508181927fffffffffffffffffffffffff00000000000000000000000000000000000000006020541617602055737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610f3d57604051907f06447d560000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610c7657611a35575b505060405161122c8082019082821067ffffffffffffffff831117610efb579082916121a68339039082f08015611a28577fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff00601f549260081b16911617601f55737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156100ec57806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610c7657610c655750f35b50604051903d90823e3d90fd5b81611a3f91611cbe565b6100ec57805f611946565b611a5691505f90611cbe565b5f5f6118aa565b6040513d5f823e3d90fd5b5f80fd5b611a85915060203d602011610d4f57610d418183611cbe565b5f61180b565b60206040818301928281528451809452019201905f5b818110611aae5750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611aa1565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90602080835192838152019201905f5b818110611b1c5750505090565b82517fffffffff0000000000000000000000000000000000000000000000000000000016845260209384019390920191600101611b0f565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310611b8657505050505090565b9091929394602080611bc2837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187528951611ada565b97019301930191939290611b77565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310611c0357505050505090565b9091929394602080611c66837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187526040838b5173ffffffffffffffffffffffffffffffffffffffff815116845201519181858201520190611aff565b97019301930191939290611bf4565b6040810190811067ffffffffffffffff821117611c9157604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f601f19910116810190811067ffffffffffffffff821117611c9157604052565b67ffffffffffffffff8111611c915760051b60200190565b90604051915f8154908160011c9260018316928315611df2575b602085108414611dc5578487528693908115611d855750600114611d41575b50611d3f92500383611cbe565b565b90505f9291925260205f20905f915b818310611d69575050906020611d3f928201015f611d32565b6020919350806001915483858901015201910190918492611d50565b60209350611d3f9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f611d32565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b93607f1693611d13565b90604051918281549182825260208201905f5260205f20925f905b80600783011061201357611d3f945491818110611fdd575b818110611fa7575b818110611f71575b818110611f3b575b818110611f05575b818110611ecf575b818110611e9a575b10611e6d575b500383611cbe565b7fffffffff000000000000000000000000000000000000000000000000000000001681526020015f611e65565b9260206001917fffffffff0000000000000000000000000000000000000000000000000000000085831b168152019301611e5f565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560401b168152019301611e57565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560601b168152019301611e4f565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560801b168152019301611e47565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560a01b168152019301611e3f565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560c01b168152019301611e37565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560e01b168152019301611e2f565b9160089193506101006001917fffffffff000000000000000000000000000000000000000000000000000000008754818160e01b168352818160c01b166020840152818160a01b166040840152818160801b166060840152818160601b166080840152818160401b1660a0840152818160201b1660c08401521660e0820152019401920185929391611e17565b60085460ff16156120b057600190565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201527f6661696c656400000000000000000000000000000000000000000000000000006024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115611a5d575f91612147575b50151590565b90506020813d602011612171575b8161216260209383611cbe565b81010312611a6857515f612141565b3d9150612155565b90816020910312611a68575173ffffffffffffffffffffffffffffffffffffffff81168103611a68579056fe608080604052346071573315605e575f8054336001600160a01b0319821681178355916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36111b690816100768239f35b631e4fbdf760e01b5f525f60045260245ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c8063157d4e2114610c59578063715018a614610bbd5780638da5cb5b14610b6c578063d7c567d61461064d578063e83b3f66146101515763f2fde38b1461005c575f80fd5b3461014e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e5760043573ffffffffffffffffffffffffffffffffffffffff811680910361014c576100b4611134565b80156101205773ffffffffffffffffffffffffffffffffffffffff8254827fffffffffffffffffffffffff00000000000000000000000000000000000000008216178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b6024827f1e4fbdf700000000000000000000000000000000000000000000000000000000815280600452fd5b505b80fd5b503461014e5760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e5760043567ffffffffffffffff811161014c576101a1903690600401610f3d565b60c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36011261014c57604051906101d882610eb3565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361064957825260443573ffffffffffffffffffffffffffffffffffffffff81168103610649576020830190815260643573ffffffffffffffffffffffffffffffffffffffff8116810361064557604084019081526084359073ffffffffffffffffffffffffffffffffffffffff82168203610641576060850191825260a4359273ffffffffffffffffffffffffffffffffffffffff8416840361063d576080860193845260c4359473ffffffffffffffffffffffffffffffffffffffff861686036106395760a087019586526102c8611134565b73ffffffffffffffffffffffffffffffffffffffff875116156105b55773ffffffffffffffffffffffffffffffffffffffff8451161561053157604051818192516020819201835e810160018152036020019020955173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1686547fffffffffffffffffffffffff0000000000000000000000000000000000000000161786555173ffffffffffffffffffffffffffffffffffffffff16600186019073ffffffffffffffffffffffffffffffffffffffff1681547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790555173ffffffffffffffffffffffffffffffffffffffff16600285019073ffffffffffffffffffffffffffffffffffffffff1681547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790555173ffffffffffffffffffffffffffffffffffffffff16600384019073ffffffffffffffffffffffffffffffffffffffff1681547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790555173ffffffffffffffffffffffffffffffffffffffff16600483019073ffffffffffffffffffffffffffffffffffffffff1681547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790555173ffffffffffffffffffffffffffffffffffffffff16906005019073ffffffffffffffffffffffffffffffffffffffff1681547fffffffffffffffffffffffff00000000000000000000000000000000000000001617905580f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f466163746f72793a20766572696669657220616464726573732069732072657160448201527f75697265640000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f466163746f72793a20696d706c656d656e746174696f6e20616464726573732060448201527f69732072657175697265640000000000000000000000000000000000000000006064820152fd5b8780fd5b8680fd5b8580fd5b8480fd5b8380fd5b503461014e5760208061065f36610fb1565b9290604051928184925191829101835e81016001815203019020906040519161068783610eb3565b73ffffffffffffffffffffffffffffffffffffffff81541680845273ffffffffffffffffffffffffffffffffffffffff600183015416916020850192835273ffffffffffffffffffffffffffffffffffffffff6002820154166040860190815273ffffffffffffffffffffffffffffffffffffffff600383015416956060810196875261074573ffffffffffffffffffffffffffffffffffffffff60058160048701541695608085019687520154169460a08301958652151561101e565b73ffffffffffffffffffffffffffffffffffffffff85511615610ae85773ffffffffffffffffffffffffffffffffffffffff82511615610a645773ffffffffffffffffffffffffffffffffffffffff835116156109e05773ffffffffffffffffffffffffffffffffffffffff8451161561095c577fffffffffffffffffffffffffffffffffff0000000000000000000000000000006e5af43d82803e903d91602b57fd5bf39151763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16178a5260781b161760205273ffffffffffffffffffffffffffffffffffffffff6037600989f0169586156109345773ffffffffffffffffffffffffffffffffffffffff808080809461085f60016110a9565b511697511693511693511693511693863b156106395773ffffffffffffffffffffffffffffffffffffffff604051967fcc2a9a5b000000000000000000000000000000000000000000000000000000008852166004870152602486015260448501526064840152608483015260a4820152828160c48183865af1801561092957610914575b60208383807f61a122822c33eb587240ac03c263df8e525c975793c9d3118d54888abdb036276040519380a28152f35b61091f838092610efc565b61014c575f6108e4565b6040513d85823e3d90fd5b6004887fb06ebf3d000000000000000000000000000000000000000000000000000000008152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f466163746f72793a20626174636857697468647261775665726966696572206160448201527f64647265737320697320726571756972656400000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f466163746f72793a20626174636856657269666965722061646472657373206960448201527f73207265717569726564000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f466163746f72793a20776974686472617756657269666965722061646472657360448201527f73206973207265717569726564000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f466163746f72793a206465706f7369745665726966696572206164647265737360448201527f20697320726571756972656400000000000000000000000000000000000000006064820152fd5b503461014e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461014e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261014e57610bf4611134565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610e875760209081610c6c36610fb1565b9390604051928184925191829101835e810160018152030190206e5af43d82803e903d91602b57fd5bf37fffffffffffffffffffffffffffffffffff000000000000000000000000000000604051610cc381610eb3565b610d6273ffffffffffffffffffffffffffffffffffffffff85541680835273ffffffffffffffffffffffffffffffffffffffff600187015416602084015273ffffffffffffffffffffffffffffffffffffffff600287015416604084015273ffffffffffffffffffffffffffffffffffffffff600581600389015416976060860198895282600482015416608087015201541660a0840152151561101e565b51763d602d80600a3d3981f3363d3d373d3d3d363d7300000062ffffff8260881c16175f5260781b161760205273ffffffffffffffffffffffffffffffffffffffff603760095ff016908115610e8b5773ffffffffffffffffffffffffffffffffffffffff90610dd260016110a9565b5116813b15610e875773ffffffffffffffffffffffffffffffffffffffff604051947f485cc95500000000000000000000000000000000000000000000000000000000865216600485015260248401525f8360448183855af1928315610e7c57602093610e67575b50807f61a122822c33eb587240ac03c263df8e525c975793c9d3118d54888abdb036276040519380a28152f35b610e749192505f90610efc565b5f905f610e3a565b6040513d5f823e3d90fd5b5f80fd5b7fb06ebf3d000000000000000000000000000000000000000000000000000000005f5260045ffd5b60c0810190811067ffffffffffffffff821117610ecf57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610ecf57604052565b81601f82011215610e875780359067ffffffffffffffff8211610ecf5760405192610f9060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160185610efc565b82845260208383010111610e8757815f926020809301838601378301015290565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610e87576004359067ffffffffffffffff8211610e8757610ffa91600401610f3d565b9060243573ffffffffffffffffffffffffffffffffffffffff81168103610e875790565b1561102557565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f466163746f72793a206661696c656420746f2066696e6420696d706c656d656e60448201527f746174696f6e00000000000000000000000000000000000000000000000000006064820152fd5b156110b057565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f466163746f72793a206661696c656420746f20636c6f6e6520696d706c656d6560448201527f6e746174696f6e000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff5f5416330361115457565b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffdfea2646970667358221220996cabc1682afb9850216a13302ac1e176823bd039fa76281904f8f8b2c034d964736f6c634300081b003360a0806040523460295730608052612993908161002e823960805181818161069e01526116e30152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80630107eb4a1461013457806312c0fed21461012f5780633e96e2731461012a5780634ad89929146101255780634f1ef2861461012057806352d1902d1461011b578063715018a614610116578063788c0456146101115780638bb2513b1461010c5780638da5cb5b146101075780639b2e8b52146101025780639fcc50af146100fd578063ad3cb1cc146100f8578063c29a6fda146100f3578063cc2a9a5b146100ee578063d5b5cc23146100e9578063f2fde38b146100e45763f756356a146100df575f80fd5b610db8565b610d8b565b610d23565b610a86565b610a29565b6109b3565b610956565b6108d4565b610882565b61081f565b6107c7565b610716565b610677565b6105fc565b6105c6565b6104bd565b61025b565b61015b565b73ffffffffffffffffffffffffffffffffffffffff81160361015757565b5f80fd5b346101575760606003193601126101575773ffffffffffffffffffffffffffffffffffffffff60043561018d81610139565b8160243561019a81610139565b81604435936101a885610139565b6101b0611bb5565b6101b8611bb5565b1673ffffffffffffffffffffffffffffffffffffffff1960025416176002551673ffffffffffffffffffffffffffffffffffffffff1960045416176004551673ffffffffffffffffffffffffffffffffffffffff1960055416176005555f80f35b60031961010091011261015757600490565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc61010091011261015757604490565b34610157576101206003193601126101575761027636610219565b61028c610104359161028783610139565b611c38565b90815f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f20541615801561038b575b15610307576102d0610305925f525f60205260405f2090565b9073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff19825416179055565b005b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f6f6620616c7265616479206c6f636b656420627920616e6f746865722060448201527f70617274790000000000000000000000000000000000000000000000000000006064820152fd5b50815f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f20541633146102b7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f601f19910116810190811067ffffffffffffffff82111761040557604052565b6103b5565b9061041860405192836103e2565b565b67ffffffffffffffff81116104055760051b60200190565b9080601f830112156101575781356104498161041a565b9261045760405194856103e2565b81845260208085019260051b82010192831161015757602001905b82821061047f5750505090565b8135815260209182019101610472565b9181601f840112156101575782359167ffffffffffffffff8311610157576020838186019501011161015757565b34610157576101606003193601126101575760043567ffffffffffffffff8111610157576104ef903690600401610432565b60243567ffffffffffffffff81116101575761050f903690600401610432565b906105193661022b565b91610144359167ffffffffffffffff83116101575761055d9361054361054b94369060040161048f565b9390926110fd565b60405190151581529081906020820190565b0390f35b90610160600319830112610157576004359160243567ffffffffffffffff8111610157578161059291600401610432565b916101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c60443593011261015757606490565b34610157576103056105d736610561565b92919091611476565b67ffffffffffffffff811161040557601f01601f191660200190565b60406003193601126101575760043561061481610139565b6024359067ffffffffffffffff8211610157573660238301121561015757816004013590610641826105e0565b9161064f60405193846103e2565b8083523660248286010111610157576020815f926024610305970183870137840101526116ca565b34610157575f6003193601126101575773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036106ee5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610157575f6003193601126101575761072e6123ce565b5f73ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005473ffffffffffffffffffffffffffffffffffffffff1981167f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610157576107d536610561565b6107e2839492935161103e565b9081511561081a576108008261030596866020610815960152611cce565b9490809461080f848884611e44565b50611476565b61225e565b610e94565b346101575760406003193601126101575760043567ffffffffffffffff811161015757610850903690600401610432565b6024359067ffffffffffffffff82116101575761087461030592369060040161048f565b9161087d6123ce565b61245f565b34610157575f60031936011261015757602073ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005416604051908152f35b3461015757610160600319360112610157576024356004356108f53661022b565b906101443567ffffffffffffffff811161015757839261091c61092492369060040161048f565b949093611aac565b604080519061093381836103e2565b60018252601f190136602083013780511561081a5761030593602082015261245f565b346101575760206003193601126101575773ffffffffffffffffffffffffffffffffffffffff60043561098881610139565b610990611bb5565b1673ffffffffffffffffffffffffffffffffffffffff1960025416176002555f80f35b34610157575f6003193601126101575760408051906109d281836103e2565b6005825260208201917f352e302e300000000000000000000000000000000000000000000000000000008352601f19601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346101575760206003193601126101575773ffffffffffffffffffffffffffffffffffffffff600435610a5b81610139565b610a636123ce565b1673ffffffffffffffffffffffffffffffffffffffff1960035416176003555f80f35b346101575760c060031936011261015757600435610aa381610139565b60243590610ab082610139565b604435610abc81610139565b606435610ac881610139565b60843590610ad582610139565b60a43592610ae284610139565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549567ffffffffffffffff610b2860ff60408a901c16159867ffffffffffffffff1690565b1680159081610d1b575b6001149081610d11575b159081610d08575b50610ce057610bc59587610bbc60017fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000007ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005416177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b610c6557611884565b610bcb57005b610c367fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1005b610cdb680100000000000000007fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005416177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055565b611884565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050155f610b44565b303b159150610b3c565b889150610b32565b34610157576020600319360112610157576004355f52600160205260ff60405f2054166003811015610d5e5760405160029091148152602090f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b3461015757602060031936011261015757610305600435610dab81610139565b610db36123ce565b61197e565b346101575761014060031936011261015757610305600435602435610ddc3661022b565b91611aac565b15610de957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f496e76616c6964207472616e73616374696f6e2070726f706f73616c000000006044820152fd5b60405190610e566080836103e2565b6080368337565b60405190610280610e6e81846103e2565b368337565b60405190610180610e6e81846103e2565b604090815191610e6e81846103e2565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b805182101561081a5760209160051b010190565b90600481101561081a5760051b0190565b90816020910312610157575180151581036101575790565b905f905b60028210610f0f57505050565b6040808281866001953701930191019091610f02565b90949392604090610f456101009483610180860199863783850190610efe565b60c0830137015f905b60048210610f5b57505050565b6020806001928551815201930191019091610f4e565b6040513d5f823e3d90fd5b15610f8357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f496e76616c69642070726f6f66000000000000000000000000000000000000006044820152fd5b90601481101561081a5760051b0190565b909493926040906110126101009483610380860199863783850190610efe565b60c0830137015f905b6014821061102857505050565b602080600192855181520193019101909161101b565b906110488261041a565b61105560405191826103e2565b828152601f19611065829461041a565b0190602036910137565b90602080835192838152019201905f5b81811061108c5750505090565b825184526020938401939092019160010161107f565b601f8260209493601f1993818652868601375f8582860101520116010190565b92906110fa94926110de6110ec9260608752606087019061106f565b90858203602087015261106f565b9260408185039101526110a2565b90565b9061110a91959295611cce565b9461111e611119828885611e44565b610de2565b600282511180156113a9575b156112e25761113986836121f5565b90611142610e5d565b915f5b601481106112c35750506111d19160209161119161117860075473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b906040518095819482937fe56ac42f00000000000000000000000000000000000000000000000000000000845260c0810190604081019060048601610ff2565b03915afa80156112be576111ec915f9161128f575b50610f7c565b6111f6858261225e565b611200815161103e565b9161120b865161103e565b935f5b835181101561124c578061122460019286610ec1565b5161122f8288610ec1565b5261123a818a610ec1565b516112458289610ec1565b520161120e565b5092946112879196507fcb56a7130431b68e0e636f24584d40580490c1bf882bef3701f317d47ba98c389492506040519384933397856110c2565b0390a2600190565b6112b1915060203d6020116112b7575b6112a981836103e2565b810190610ee6565b5f6111e6565b503d61129f565b610f71565b806112d060019284610ec1565b516112db8287610fe1565b5201611145565b6112ec8683612177565b906112f5610e47565b915f5b6004811061138a57505061136b9160209161132b61117860065473ffffffffffffffffffffffffffffffffffffffff1690565b906040518095819482937f5fe8c13b00000000000000000000000000000000000000000000000000000000845260c0810190604081019060048601610f25565b03915afa80156112be57611385915f9161128f5750610f7c565b6111ec565b8061139760019284610ec1565b516113a28287610ed5565b52016112f8565b50600286511161112a565b90600c81101561081a5760051b0190565b909493926040906113e56101009483610280860199863783850190610efe565b60c0830137015f905b600c82106113fb57505050565b60208060019285518152019301910190916113ee565b1561141857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4661696c656420746f207472616e7366657220455243323020746f6b656e73006044820152fd5b929160028251115f1461163b57600c82511161160d576114969184612377565b9061149f610e73565b915f5b600c81106115ee575050611515916020916114d561117860055473ffffffffffffffffffffffffffffffffffffffff1690565b906040518095819482937f8cbac0fa00000000000000000000000000000000000000000000000000000000845260c08101906040810190600486016113c5565b03915afa80156112be575f9261153761159d9260209486916115d75750610f7c565b61155961117860035473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101929092529093849283919082906044820190565b03925af180156112be57610418915f916115b8575b50611411565b6115d1915060203d6020116112b7576112a981836103e2565b5f6115b2565b6112b19150853d87116112b7576112a981836103e2565b806115fb60019284610ec1565b5161160682876113b4565b52016114a2565b7f71798fb5000000000000000000000000000000000000000000000000000000005f52600c60045260245b5ffd5b6116459184612311565b9061164e610e47565b915f5b600481106116ab5750506116849160209161132b61117860045473ffffffffffffffffffffffffffffffffffffffff1690565b03915afa80156112be575f926116a661159d9260209486916115d75750610f7c565b611537565b806116b860019284610ec1565b516116c38287610ed5565b5201611651565b909173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115611842575b506106ee5761171b6123ce565b604051927f52d1902d00000000000000000000000000000000000000000000000000000000845260208460048173ffffffffffffffffffffffffffffffffffffffff87165afa5f9481611811575b506117b0577f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff831660045260245ffd5b90917f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc84036117e45761041892935061269e565b7faa1d49a4000000000000000000000000000000000000000000000000000000005f52600484905260245ffd5b61183491955060203d60201161183b575b61182c81836103e2565b8101906123bf565b935f611769565b503d611822565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614155f61170e565b9473ffffffffffffffffffffffffffffffffffffffff809694818096956118c78296976118af611bb5565b6118b7611bb5565b6118bf611bb5565b610db3611bb5565b6118cf611bb5565b6118d7611bb5565b1673ffffffffffffffffffffffffffffffffffffffff1960025416176002551673ffffffffffffffffffffffffffffffffffffffff1960045416176004551673ffffffffffffffffffffffffffffffffffffffff1960055416176005551673ffffffffffffffffffffffffffffffffffffffff1960065416176006551673ffffffffffffffffffffffffffffffffffffffff196007541617600755565b60031115610d5e57565b73ffffffffffffffffffffffffffffffffffffffff168015611a345773ffffffffffffffffffffffffffffffffffffffff7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300548273ffffffffffffffffffffffffffffffffffffffff198216177f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b7f1e4fbdf7000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b90949392604090611a806101009483610140860199863783850190610efe565b60c0830137015f905b60028210611a9657505050565b6020806001928551815201930191019091611a89565b91611b2791602091611abc610e84565b858152916020830152611ae761117860025473ffffffffffffffffffffffffffffffffffffffff1690565b906040518095819482937ff5c9d69e00000000000000000000000000000000000000000000000000000000845260c0810190604081019060048601611a60565b03915afa80156112be575f92611b4961159d9260209486916115d75750610f7c565b611b6b61117860035473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101929092529093849283919082906064820190565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611be457565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b905f825b60088210611c22575050506101000190565b6020806001928551815201930191019091611c10565b611c9f60c0611c4861010061040a565b833581529260208101356020850152611c8b611c7e6040830180356040880152611c728160200190565b35606088015260400190565b8035608087015260200190565b3560a085015201803560c084015260200190565b3560e0820152604051611cc881611cba602082019485611c0c565b03601f1981018352826103e2565b51902090565b9190918051908351600a83118015611d50575b611d235760026110fa9311908115611d18575b5015611d0c57611d06600a80926125a7565b936125a7565b611d06600280926125a7565b60029150115f611cf4565b7f9ebbc98e000000000000000000000000000000000000000000000000000000005f52600a60045260245ffd5b50600a8111611ce1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8201918211611db457565b611d5a565b15611dc057565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4c6f636b65642070726f6f662063616e206f6e6c79206265207375626d69747460448201527f656420627920746865206c6f636b6572206164647265737300000000000000006064820152fd5b90611e4e91612610565b9290915f935b8351851015611fb857611e678585610ec1565b5115611fad5784151580611f88575b611f4f57611ea0611e99611e8a8787610ec1565b515f52600160205260405f2090565b5460ff1690565b611ea981611974565b611ee657611638611eba8686610ec1565b517f83925127000000000000000000000000000000000000000000000000000000005f52600452602490565b9091936002611efb611e99611e8a8488610ec1565b611f0481611974565b14611f16576001905b01939190611e54565b611f236116389185610ec1565b517f41a06d28000000000000000000000000000000000000000000000000000000005f52600452602490565b611638611f5c8686610ec1565b517fdd57483100000000