@uniswap/v4-periphery
Version:
🦄 Peripheral smart contracts for interacting with Uniswap v4
1 lines • 557 kB
JSON
{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"LIQUIDITY_PARAMS","inputs":[],"outputs":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_PRICE_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint160","internalType":"uint160"}],"stateMutability":"view"},{"type":"function","name":"MIN_PRICE_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint160","internalType":"uint160"}],"stateMutability":"view"},{"type":"function","name":"REMOVE_LIQUIDITY_PARAMS","inputs":[],"outputs":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SWAP_PARAMS","inputs":[],"outputs":[{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}],"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":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setupRouterCurrenciesAndPoolsWithLiquidity","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_gas_bytecodeSize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_nativeIn_swapExactIn_1Hop","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_nativeIn_swapExactIn_2Hops","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_nativeIn_swapExactIn_3Hops","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_nativeIn_swapExactInputSingle","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_nativeIn_swapExactOut_1Hop_sweepExcessETH","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_nativeIn_swapExactOut_2Hops_sweepExcessETH","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_nativeIn_swapExactOut_3Hops_sweepExcessETH","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_nativeIn_swapExactOutputSingle_sweepExcessETH","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_nativeOut_swapExactIn_1Hop","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_nativeOut_swapExactInputSingle","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_nativeOut_swapExactOut_1Hop","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_nativeOut_swapExactOut_3Hops","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_nativeOut_swapExactOutputSingle","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_swapExactIn_1Hop_oneForZero","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_swapExactIn_1Hop_zeroForOne","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_swapExactIn_2Hops","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_swapExactIn_3Hops","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_swapExactInputSingle_zeroForOne","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_swapExactOut_1Hop_oneForZero","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_swapExactOut_1Hop_zeroForOne","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_swapExactOut_2Hops","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_swapExactOut_3Hops","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_gas_swapExactOutputSingle_zeroForOne","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_router_initcodeHash","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":"0x600c8054600160ff199182168117909255601f80548216831790556077196080819052607860a0819052670de0b6b3a764000060c08190525f60e08190526020805465ffffffffffff199081166378ffff8890811790925560219390935560228290556101009490945261012092909252670de0b6b3a763ffff1961014081905261016083905260238054909216909317905560249190915560258190556101e06040526101808390526063196101a08190526bb504f333f9de6484597d89b36101c081905260268054909416909417909255602791909155602880546001600160a01b0319908116909317905560428054600e90841617905560438054909216614000600160a01b03179091555f19604655604755348015610120575f80fd5b50620173b380620001305f395ff3fe6080604052600436106102da575f3560e01c806385226c811161017b578063b5508aa9116100d1578063c9bcb77a11610087578063ede3d78a11610062578063ede3d78a1461074a578063f0cd759a1461075e578063fa7626d414610772575f80fd5b8063c9bcb77a1461070e578063e20c9f7114610722578063e54add6814610736575f80fd5b8063bd9ab727116100b7578063bd9ab727146106d2578063c148f4f8146106e6578063c7b8e15d146106fa575f80fd5b8063b5508aa91461069a578063ba414fa6146106ae575f80fd5b80639d06c51d11610131578063b0464fdc1161010c578063b0464fdc14610608578063b0f3d8021461061c578063b1a73b8a14610630575f80fd5b80639d06c51d146105cc578063a0775dd8146105e0578063a3a4aec0146105f4575f80fd5b80638a1a4893116101615780638a1a48931461056a578063916a17c61461057e57806393ad73ed1461059f575f80fd5b806385226c811461053557806388e5410714610556575f80fd5b80633e5e3c2311610230578063567dc4b8116101e657806364724a2d116101c157806364724a2d146104ec57806366d9a9a0146105005780637ed16fa014610521575f80fd5b8063567dc4b8146104b05780635999bb35146104c45780635a9fba9a146104d8575f80fd5b806340d8983e1161021657806340d8983e1461044f5780634e9c949514610463578063542524dd14610477575f80fd5b80633e5e3c23146104275780633f7286f41461043b575f80fd5b80631ed7831c11610290578063294823301161026b578063294823301461039d5780632ade3880146103b157806339cd2013146103d2575f80fd5b80631ed7831c1461034b57806320c27a5c14610375578063258ae5a114610389575f80fd5b80630bc1c41e116102c05780630bc1c41e1461030f5780630feca937146103235780631546ac1214610337575f80fd5b80630a7d9154146102e55780630a9254e4146102fb575f80fd5b366102e157005b5f80fd5b3480156102f0575f80fd5b506102f961078b565b005b348015610306575f80fd5b506102f9610d3b565b34801561031a575f80fd5b506102f9610d7a565b34801561032e575f80fd5b506102f96112df565b348015610342575f80fd5b506102f9611843565b348015610356575f80fd5b5061035f611db5565b60405161036c919061aae7565b60405180910390f35b348015610380575f80fd5b506102f9611e22565b348015610394575f80fd5b506102f9611ffe565b3480156103a8575f80fd5b506102f9612571565b3480156103bc575f80fd5b506103c5612ae4565b60405161036c919061ab8b565b3480156103dd575f80fd5b506023546024546025546103ff92600281810b936301000000909204900b9184565b60408051600295860b81529390940b602084015292820152606081019190915260800161036c565b348015610432575f80fd5b5061035f612c2d565b348015610446575f80fd5b5061035f612c98565b34801561045a575f80fd5b506102f9612d03565b34801561046e575f80fd5b506102f9613295565b348015610482575f80fd5b5061048b6137ba565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161036c565b3480156104bb575f80fd5b506102f96137dc565b3480156104cf575f80fd5b506102f9613d64565b3480156104e3575f80fd5b506102f96142c6565b3480156104f7575f80fd5b506102f9614367565b34801561050b575f80fd5b506105146148f3565b60405161036c919061acf9565b34801561052c575f80fd5b506102f9614a6c565b348015610540575f80fd5b50610549614ff8565b60405161036c919061ad95565b348015610561575f80fd5b506102f96150c3565b348015610575575f80fd5b506102f961561e565b348015610589575f80fd5b50610592615bc3565b60405161036c919061ae0a565b3480156105aa575f80fd5b506020546021546022546103ff92600281810b936301000000909204900b9184565b3480156105d7575f80fd5b506102f9615cc6565b3480156105eb575f80fd5b506102f9616266565b3480156105ff575f80fd5b506102f96167b5565b348015610613575f80fd5b50610592616d49565b348015610627575f80fd5b506102f9616e4c565b34801561063b575f80fd5b506026546027546028546106679260ff16919073ffffffffffffffffffffffffffffffffffffffff1683565b604080519315158452602084019290925273ffffffffffffffffffffffffffffffffffffffff169082015260600161036c565b3480156106a5575f80fd5b5061054961753d565b3480156106b9575f80fd5b506106c2617608565b604051901515815260200161036c565b3480156106dd575f80fd5b506102f96176d8565b3480156106f1575f80fd5b506102f9617c81565b348015610705575f80fd5b5061048b6181f4565b348015610719575f80fd5b506102f9618204565b34801561072d575f80fd5b5061035f618777565b348015610741575f80fd5b506102f96187e2565b348015610755575f80fd5b506102f9618d15565b348015610769575f80fd5b506102f96192ba565b34801561077d575f80fd5b50601f546106c29060ff1681565b604080516101408101825260395473ffffffffffffffffffffffffffffffffffffffff90811660a08301908152603a5480831660c085015262ffffff7401000000000000000000000000000000000000000082041660e085015277010000000000000000000000000000000000000000000000900460020b610100840152603b5490911661012083015281525f6020808301829052670de0b6b3a76400008385018190526060840183905284518083018652928352608084019290925292519092610a009160069161085f9185910161af95565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906108a49061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546108d09061afae565b801561091b5780601f106108f25761010080835404028352916020019161091b565b820191905f5260205f20905b8154815290600101906020018083116108fe57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156109f0578382905f5260205f200180546109659061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546109919061afae565b80156109dc5780601f106109b3576101008083540402835291602001916109dc565b820191905f5260205f20905b8154815290600101906020018083116109bf57829003601f168201915b505050505081526020019060010190610948565b505050915250909291905061985b565b80516054908190610a11908261b077565b506020828101518051610a2a926001850192019061a9f1565b5050603a5460395460408051808201909152605480545f9550610bd19473ffffffffffffffffffffffffffffffffffffffff908116941692600192909182908290610a749061afae565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa09061afae565b8015610aeb5780601f10610ac257610100808354040283529160200191610aeb565b820191905f5260205f20905b815481529060010190602001808311610ace57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610bc0578382905f5260205f20018054610b359061afae565b80601f0160208091040260200160405190810160405280929190818152602001828054610b619061afae565b8015610bac5780601f10610b8357610100808354040283529160200191610bac565b820191905f5260205f20905b815481529060010190602001808311610b8f57829003601f168201915b505050505081526020019060010190610b18565b505050915250909392919050619a6f565b6045546040517f4f84885b00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690634f84885b90610c2890849060040161b18e565b5f604051808303815f87803b158015610c3f575f80fd5b505af1158015610c51573d5f803e3d5ffd5b50506040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5634526f757465725f4578616374496e70757453696e676c655f6e617469766560448201527f4f757400000000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063dd9fca1291506084015b6020604051808303815f875af1158015610d11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d35919061b1a0565b50505050565b610d43616e4c565b610d4b619c0d565b80516054908190610d5c908261b077565b506020828101518051610d75926001850192019061a9f1565b505050565b604080516101408101825260395473ffffffffffffffffffffffffffffffffffffffff90811660a08301908152603a5480831660c085015262ffffff7401000000000000000000000000000000000000000082041660e085015277010000000000000000000000000000000000000000000000900460020b610100840152603b5490911661012083015281526001602080830191909152670de0b6b3a76400008284018190526fffffffffffffffffffffffffffffffff6060840152835180830185525f815260808401529251610feb91600891610e5a9185910161af95565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282019091526054805491929182908290610e9f9061afae565b80601f0160208091040260200160405190810160405280929190818152602001828054610ecb9061afae565b8015610f165780601f10610eed57610100808354040283529160200191610f16565b820191905f5260205f20905b815481529060010190602001808311610ef957829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156109f0578382905f5260205f20018054610f609061afae565b80601f0160208091040260200160405190810160405280929190818152602001828054610f8c9061afae565b8015610fd75780601f10610fae57610100808354040283529160200191610fd7565b820191905f5260205f20905b815481529060010190602001808311610fba57829003601f168201915b505050505081526020019060010190610f43565b80516054908190610ffc908261b077565b506020828101518051611015926001850192019061a9f1565b5050603954603a5460408051808201909152605480545f95506111ab9473ffffffffffffffffffffffffffffffffffffffff90811694169260019290918290829061105f9061afae565b80601f016020809104026020016040519081016040528092919081815260200182805461108b9061afae565b80156110d65780601f106110ad576101008083540402835291602001916110d6565b820191905f5260205f20905b8154815290600101906020018083116110b957829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610bc0578382905f5260205f200180546111209061afae565b80601f016020809104026020016040519081016040528092919081815260200182805461114c9061afae565b80156111975780601f1061116e57610100808354040283529160200191611197565b820191905f5260205f20905b81548152906001019060200180831161117a57829003601f168201915b505050505081526020019060010190611103565b6045546040517fa1bfb5ff00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063a1bfb5ff90671bc16d674ec800009061120c90859060040161b18e565b5f604051808303818588803b158015611223575f80fd5b505af1158015611235573d5f803e3d5ffd5b50506040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5634526f757465725f45786163744f757470757453696e676c655f6e6174697660448201527f65496e5f737765657045544800000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063dd9fca1292506084019050610cf5565b60295460538054600180820183555f8381527f4c83efb3982afbd500ab7c66d02b996df5fdc3d20660e61600390aad6d5f7f1e928301805473ffffffffffffffffffffffffffffffffffffffff9096167fffffffffffffffffffffffff00000000000000000000000000000000000000009687161790558354918201845591018054909316909255805460408051602080840282018101909252828152670de0b6b3a764000094936113df9391929091908301828280156113d457602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116113a9575b505050505083619c69565b90506115886007826040516020016113f7919061b304565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828201909152605480549192918290829061143c9061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546114689061afae565b80156114b35780601f1061148a576101008083540402835291602001916114b3565b820191905f5260205f20905b81548152906001019060200180831161149657829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156109f0578382905f5260205f200180546114fd9061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546115299061afae565b80156115745780601f1061154b57610100808354040283529160200191611574565b820191905f5260205f20905b81548152906001019060200180831161155757829003601f168201915b5050505050815260200190600101906114e0565b80516054908190611599908261b077565b5060208281015180516115b2926001850192019061a9f1565b505060295460408051808201909152605480545f94506117419373ffffffffffffffffffffffffffffffffffffffff16928592600192829082906115f59061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546116219061afae565b801561166c5780601f106116435761010080835404028352916020019161166c565b820191905f5260205f20905b81548152906001019060200180831161164f57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610bc0578382905f5260205f200180546116b69061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546116e29061afae565b801561172d5780601f106117045761010080835404028352916020019161172d565b820191905f5260205f20905b81548152906001019060200180831161171057829003601f168201915b505050505081526020019060010190611699565b6045546040517f4f84885b00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690634f84885b9061179890849060040161b18e565b5f604051808303815f87803b1580156117af575f80fd5b505af11580156117c1573d5f803e3d5ffd5b50506040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f5634526f757465725f4578616374496e31486f705f6e61746976654f757400006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063dd9fca129150606401610cf5565b60538054600181810183555f8381527f4c83efb3982afbd500ab7c66d02b996df5fdc3d20660e61600390aad6d5f7f1e92830180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081169091556029548554938401865592909301805490931673ffffffffffffffffffffffffffffffffffffffff9290921691909117909155815460408051602083810282018101909252828152670de0b6b3a7640000946119479391929091908301828280156113d457602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116113a957505050505083619c69565b9050611af060078260405160200161195f919061b304565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906119a49061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546119d09061afae565b8015611a1b5780601f106119f257610100808354040283529160200191611a1b565b820191905f5260205f20905b8154815290600101906020018083116119fe57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156109f0578382905f5260205f20018054611a659061afae565b80601f0160208091040260200160405190810160405280929190818152602001828054611a919061afae565b8015611adc5780601f10611ab357610100808354040283529160200191611adc565b820191905f5260205f20905b815481529060010190602001808311611abf57829003601f168201915b505050505081526020019060010190611a48565b80516054908190611b01908261b077565b506020828101518051611b1a926001850192019061a9f1565b509050505f611caf5f60295f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160546040518060400160405290815f82018054611b639061afae565b80601f0160208091040260200160405190810160405280929190818152602001828054611b8f9061afae565b8015611bda5780601f10611bb157610100808354040283529160200191611bda565b820191905f5260205f20905b815481529060010190602001808311611bbd57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610bc0578382905f5260205f20018054611c249061afae565b80601f0160208091040260200160405190810160405280929190818152602001828054611c509061afae565b8015611c9b5780601f10611c7257610100808354040283529160200191611c9b565b820191905f5260205f20905b815481529060010190602001808311611c7e57829003601f168201915b505050505081526020019060010190611c07565b6045546040517f4f84885b00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690634f84885b908590611d0890859060040161b18e565b5f604051808303818588803b158015611d1f575f80fd5b505af1158015611d31573d5f803e3d5ffd5b50506040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f5634526f757465725f4578616374496e31486f705f6e6174697665496e0000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063dd9fca1292506064019050610cf5565b60606016805480602002602001604051908101604052809291908181526020018280548015611e1857602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611ded575b5050505050905090565b6040517f8d1cc92500000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d6f636b5634526f757465722e736f6c3a4d6f636b5634526f757465720000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906351db805a908290638d1cc925906064015f60405180830381865afa158015611ebd573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611f02919081019061b316565b604051602001611f12919061b406565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018152828252805160209091012060e084901b7fffffffff000000000000000000000000000000000000000000000000000000001683526004830191909152603d60448301527f726f7574657220696e6974636f646520686173682028776974686f757420636f60648301527f6e7374727563746f7220706172616d732c2061732075696e74323536290000006084830152602482015260a4015b5f604051808303815f87803b158015611fec575f80fd5b505af1158015610d35573d5f803e3d5ffd5b602a5460538054600181810183555f8381527f4c83efb3982afbd500ab7c66d02b996df5fdc3d20660e61600390aad6d5f7f1e92830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff978816179091556029548554938401865592909301805490931691909416179055805460408051602083810282018101909252828152670de0b6b3a764000094936121069391929091908301828280156113d457602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116113a957505050505083619c69565b90506122af60078260405160200161211e919061b304565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906121639061afae565b80601f016020809104026020016040519081016040528092919081815260200182805461218f9061afae565b80156121da5780601f106121b1576101008083540402835291602001916121da565b820191905f5260205f20905b8154815290600101906020018083116121bd57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156109f0578382905f5260205f200180546122249061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546122509061afae565b801561229b5780601f106122725761010080835404028352916020019161229b565b820191905f5260205f20905b81548152906001019060200180831161227e57829003601f168201915b505050505081526020019060010190612207565b805160549081906122c0908261b077565b5060208281015180516122d9926001850192019061a9f1565b5050602a5460295460408051808201909152605480545f955061246f9473ffffffffffffffffffffffffffffffffffffffff9081169416926001929091829082906123239061afae565b80601f016020809104026020016040519081016040528092919081815260200182805461234f9061afae565b801561239a5780601f106123715761010080835404028352916020019161239a565b820191905f5260205f20905b81548152906001019060200180831161237d57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610bc0578382905f5260205f200180546123e49061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546124109061afae565b801561245b5780601f106124325761010080835404028352916020019161245b565b820191905f5260205f20905b81548152906001019060200180831161243e57829003601f168201915b5050505050815260200190600101906123c7565b6045546040517f4f84885b00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690634f84885b906124c690849060040161b18e565b5f604051808303815f87803b1580156124dd575f80fd5b505af11580156124ef573d5f803e3d5ffd5b50506040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5634526f757465725f4578616374496e31486f705f6f6e65466f725a65726f006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063dd9fca129150606401610cf5565b60295460538054600181810183555f8381527f4c83efb3982afbd500ab7c66d02b996df5fdc3d20660e61600390aad6d5f7f1e92830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff97881617909155602a548554938401865592909301805490931691909416179055805460408051602083810282018101909252828152670de0b6b3a764000094936126799391929091908301828280156113d457602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116113a957505050505083619c69565b9050612822600782604051602001612691919061b304565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906126d69061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546127029061afae565b801561274d5780601f106127245761010080835404028352916020019161274d565b820191905f5260205f20905b81548152906001019060200180831161273057829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156109f0578382905f5260205f200180546127979061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546127c39061afae565b801561280e5780601f106127e55761010080835404028352916020019161280e565b820191905f5260205f20905b8154815290600101906020018083116127f157829003601f168201915b50505050508152602001906001019061277a565b80516054908190612833908261b077565b50602082810151805161284c926001850192019061a9f1565b5050602954602a5460408051808201909152605480545f95506129e29473ffffffffffffffffffffffffffffffffffffffff9081169416926001929091829082906128969061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546128c29061afae565b801561290d5780601f106128e45761010080835404028352916020019161290d565b820191905f5260205f20905b8154815290600101906020018083116128f057829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610bc0578382905f5260205f200180546129579061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546129839061afae565b80156129ce5780601f106129a5576101008083540402835291602001916129ce565b820191905f5260205f20905b8154815290600101906020018083116129b157829003601f168201915b50505050508152602001906001019061293a565b6045546040517f4f84885b00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690634f84885b90612a3990849060040161b18e565b5f604051808303815f87803b158015612a50575f80fd5b505af1158015612a62573d5f803e3d5ffd5b50506040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5634526f757465725f4578616374496e31486f705f7a65726f466f724f6e65006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063dd9fca129150606401610cf5565b6060601e805480602002602001604051908101604052809291908181526020015f905b82821015612c24575f848152602080822060408051808201825260028702909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939591948681019491929084015b82821015612c0d578382905f5260205f20018054612b829061afae565b80601f0160208091040260200160405190810160405280929190818152602001828054612bae9061afae565b8015612bf95780601f10612bd057610100808354040283529160200191612bf9565b820191905f5260205f20905b815481529060010190602001808311612bdc57829003601f168201915b505050505081526020019060010190612b65565b505050508152505081526020019060010190612b07565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015611e1857602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611ded575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015611e1857602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611ded575050505050905090565b60538054600181810183555f8381527f4c83efb3982afbd500ab7c66d02b996df5fdc3d20660e61600390aad6d5f7f1e92830180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081169091556029548554808501875585018054831673ffffffffffffffffffffffffffffffffffffffff928316179055602a54865494850187559390940180549091169290931691909117909155815460408051602083810282018101909252828152670de0b6b3a764000094612e1f939192909190830182828015612e1457602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311612de9575b505050505083619e5a565b9050612fc8600982604051602001612e37919061b304565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282019091526054805491929182908290612e7c9061afae565b80601f0160208091040260200160405190810160405280929190818152602001828054612ea89061afae565b8015612ef35780601f10612eca57610100808354040283529160200191612ef3565b820191905f5260205f20905b815481529060010190602001808311612ed657829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156109f0578382905f5260205f20018054612f3d9061afae565b80601f0160208091040260200160405190810160405280929190818152602001828054612f699061afae565b8015612fb45780601f10612f8b57610100808354040283529160200191612fb4565b820191905f5260205f20905b815481529060010190602001808311612f9757829003601f168201915b505050505081526020019060010190612f20565b80516054908190612fd9908261b077565b506020828101518051612ff2926001850192019061a9f1565b509050505f6131875f602a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160546040518060400160405290815f8201805461303b9061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546130679061afae565b80156130b25780601f10613089576101008083540402835291602001916130b2565b820191905f5260205f20905b81548152906001019060200180831161309557829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610bc0578382905f5260205f200180546130fc9061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546131289061afae565b80156131735780601f1061314a57610100808354040283529160200191613173565b820191905f5260205f20905b81548152906001019060200180831161315657829003601f168201915b5050505050815260200190600101906130df565b6045546040517fa1bfb5ff00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff169063a1bfb5ff90671bc16d674ec80000906131e890859060040161b18e565b5f604051808303818588803b1580156131ff575f80fd5b505af1158015613211573d5f803e3d5ffd5b50506040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5634526f757465725f45786163744f757432486f70735f6e6174697665496e006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063dd9fca1292506064019050610cf5565b604080516101408101825260485473ffffffffffffffffffffffffffffffffffffffff90811660a0830190815260495480831660c085015262ffffff7401000000000000000000000000000000000000000082041660e085015277010000000000000000000000000000000000000000000000900460020b610100840152604a5490911661012083015281526001602080830191909152670de0b6b3a76400008284018190525f6060840181905284518084018652908152608084015292516134f8916006916133679185910161af95565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906133ac9061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546133d89061afae565b80156134235780601f106133fa57610100808354040283529160200191613423565b820191905f5260205f20905b81548152906001019060200180831161340657829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156109f0578382905f5260205f2001805461346d9061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546134999061afae565b80156134e45780601f106134bb576101008083540402835291602001916134e4565b820191905f5260205f20905b8154815290600101906020018083116134c757829003601f168201915b505050505081526020019060010190613450565b80516054908190613509908261b077565b506020828101518051613522926001850192019061a9f1565b505060485460495460408051808201909152605480545f95506136b89473ffffffffffffffffffffffffffffffffffffffff90811694169260019290918290829061356c9061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546135989061afae565b80156135e35780601f106135ba576101008083540402835291602001916135e3565b820191905f5260205f20905b8154815290600101906020018083116135c657829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610bc0578382905f5260205f2001805461362d9061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546136599061afae565b80156136a45780601f1061367b576101008083540402835291602001916136a4565b820191905f5260205f20905b81548152906001019060200180831161368757829003601f168201915b505050505081526020019060010190613610565b6045546040517f4f84885b00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690634f84885b9061370f90849060040161b18e565b5f604051808303815f87803b158015613726575f80fd5b505af1158015613738573d5f803e3d5ffd5b50506040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f5634526f757465725f4578616374496e70757453696e676c65000000000000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063dd9fca129150606401610cf5565b6137d9600173fffd8963efd1fc6a506488495d951d5263988d2661b449565b81565b60538054600181810183555f8381527f4c83efb3982afbd500ab7c66d02b996df5fdc3d20660e61600390aad6d5f7f1e92830180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081169091556029548554808501875585018054831673ffffffffffffffffffffffffffffffffffffffff928316179055602a54865494850187559390940180549091169290931691909117909155815460408051602083810282018101909252828152670de0b6b3a7640000946138f69391929091908301828280156113d457602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116113a957505050505083619c69565b9050613a9f60078260405160200161390e919061b304565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906139539061afae565b80601f016020809104026020016040519081016040528092919081815260200182805461397f9061afae565b80156139ca5780601f106139a1576101008083540402835291602001916139ca565b820191905f5260205f20905b8154815290600101906020018083116139ad57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156109f0578382905f5260205f20018054613a149061afae565b80601f0160208091040260200160405190810160405280929190818152602001828054613a409061afae565b8015613a8b5780601f10613a6257610100808354040283529160200191613a8b565b820191905f5260205f20905b815481529060010190602001808311613a6e57829003601f168201915b5050505050815260200190600101906139f7565b80516054908190613ab0908261b077565b506020828101518051613ac9926001850192019061a9f1565b509050505f613c5e5f602a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160546040518060400160405290815f82018054613b129061afae565b80601f0160208091040260200160405190810160405280929190818152602001828054613b3e9061afae565b8015613b895780601f10613b6057610100808354040283529160200191613b89565b820191905f5260205f20905b815481529060010190602001808311613b6c57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610bc0578382905f5260205f20018054613bd39061afae565b80601f0160208091040260200160405190810160405280929190818152602001828054613bff9061afae565b8015613c4a5780601f10613c2157610100808354040283529160200191613c4a565b820191905f5260205f20905b815481529060010190602001808311613c2d57829003601f168201915b505050505081526020019060010190613bb6565b6045546040517f4f84885b00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690634f84885b908590613cb790859060040161b18e565b5f604051808303818588803b158015613cce575f80fd5b505af1158015613ce0573d5f803e3d5ffd5b50506040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f5634526f757465725f4578616374496e32486f70735f6e6174697665496e00006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063dd9fca1292506064019050610cf5565b60295460538054600180820183555f8381527f4c83efb3982afbd500ab7c66d02b996df5fdc3d20660e61600390aad6d5f7f1e928301805473ffffffffffffffffffffffffffffffffffffffff9096167fffffffffffffffffffffffff00000000000000000000000000000000000000009687161790558354918201845591018054909316909255805460408051602080840282018101909252828152670de0b6b3a76400009493613e62939192909190830182828015612e1457602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311612de957505050505083619e5a565b905061400b600982604051602001613e7a919061b304565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282019091526054805491929182908290613ebf9061afae565b80601f0160208091040260200160405190810160405280929190818152602001828054613eeb9061afae565b8015613f365780601f10613f0d57610100808354040283529160200191613f36565b820191905f5260205f20905b815481529060010190602001808311613f1957829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156109f0578382905f5260205f20018054613f809061afae565b80601f0160208091040260200160405190810160405280929190818152602001828054613fac9061afae565b8015613ff75780601f10613fce57610100808354040283529160200191613ff7565b820191905f5260205f20905b815481529060010190602001808311613fda57829003601f168201915b505050505081526020019060010190613f63565b8051605490819061401c908261b077565b506020828101518051614035926001850192019061a9f1565b505060295460408051808201909152605480545f94506141c49373ffffffffffffffffffffffffffffffffffffffff16928592600192829082906140789061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546140a49061afae565b80156140ef5780601f106140c6576101008083540402835291602001916140ef565b820191905f5260205f20905b8154815290600101906020018083116140d257829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610bc0578382905f5260205f200180546141399061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546141659061afae565b80156141b05780601f10614187576101008083540402835291602001916141b0565b820191905f5260205f20905b81548152906001019060200180831161419357829003601f168201915b50505050508152602001906001019061411c565b6045546040517f4f84885b00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690634f84885b9061421b90849060040161b18e565b5f604051808303815f87803b158015614232575f80fd5b505af1158015614244573d5f803e3d5ffd5b50506040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5634526f757465725f45786163744f757431486f705f6e61746976654f7574006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063dd9fca129150606401610cf5565b604554604080517f51db805a0000000000000000000000000000000000000000000000000000000081526004810191909152601160448201527f5634526f757465725f42797465636f6465000000000000000000000000000000606482015273ffffffffffffffffffffffffffffffffffffffff9091163b6024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906351db805a90608401611fd5565b60295460538054600181810183555f8381527f4c83efb3982afbd500ab7c66d02b996df5fdc3d20660e61600390aad6d5f7f1e92830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff97881617909155602a54855480850187558501805483169188169190911790556051548554938401865592909301805490931691909416179055805460408051602083810282018101909252828152670de0b6b3a764000094936144889391929091908301828280156113d457602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116113a957505050505083619c69565b90506146316007826040516020016144a0919061b304565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906144e59061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546145119061afae565b801561455c5780601f106145335761010080835404028352916020019161455c565b820191905f5260205f20905b81548152906001019060200180831161453f57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156109f0578382905f5260205f200180546145a69061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546145d29061afae565b801561461d5780601f106145f45761010080835404028352916020019161461d565b820191905f5260205f20905b81548152906001019060200180831161460057829003601f168201915b505050505081526020019060010190614589565b80516054908190614642908261b077565b50602082810151805161465b926001850192019061a9f1565b505060295460515460408051808201909152605480545f95506147f19473ffffffffffffffffffffffffffffffffffffffff9081169416926001929091829082906146a59061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546146d19061afae565b801561471c5780601f106146f35761010080835404028352916020019161471c565b820191905f5260205f20905b8154815290600101906020018083116146ff57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610bc0578382905f5260205f200180546147669061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546147929061afae565b80156147dd5780601f106147b4576101008083540402835291602001916147dd565b820191905f5260205f20905b8154815290600101906020018083116147c057829003601f168201915b505050505081526020019060010190614749565b6045546040517f4f84885b00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690634f84885b9061484890849060040161b18e565b5f604051808303815f87803b15801561485f575f80fd5b505af1158015614871573d5f803e3d5ffd5b50506040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5634526f757465725f4578616374496e32486f707300000000000000000000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063dd9fca129150606401610cf5565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015612c24578382905f5260205f2090600202016040518060400160405290815f820180546149469061afae565b80601f01602080910402602001604051908101604052809291908181526020018280546149729061afae565b80156149bd5780601f10614994576101008083540402835291602001916149bd565b820191905f5260205f20905b8154815290600101906020018083116149a057829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015614a5457602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411614a015790505b50505050508152505081526020019060010190614916565b602954605380