@uniswap/v4-periphery
Version:
🦄 Peripheral smart contracts for interacting with Uniswap v4
1 lines • 475 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_exactIn_settleAll_revertsSlippage","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_exactIn_takeAll_revertsSlippage","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_exactOut_settleAll_revertsSlippage","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_exactOut_takeAll_revertsSlippage","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_exactOut_takeAll_settleAll_succeedsExactAmount","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_settleFromRouter_takeAll","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_settle_takePortion_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_settle_takePortion_takeAll","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":"0x600c8054600160ff199182168117909255601f80548216831790556077196080819052607860a0819052670de0b6b3a764000060c08190525f60e08190526020805465ffffffffffff199081166378ffff8890811790925560219390935560228290556101009490945261012092909252670de0b6b3a763ffff1961014081905261016083905260238054909216909317905560249190915560258190556101808390526063196101a08190526bb504f333f9de6484597d89b36101c081905260268054909416909417909255602791909155602880546001600160a01b0319908116909317905560428054600e90841617905560438054909216614000600160a01b03179091555f1960465560475561022060405260036101e0908152622127a160e91b6102005261013190610162565b605680546001600160a01b0319166001600160a01b039290921691909117905534801561015c575f80fd5b50610308565b5f61016c82610173565b5092915050565b5f80826040516020016101869190610281565b60408051808303601f190181529082905280516020909101206001625e79b760e01b03198252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156101ef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102139190610297565b6040516318caf8e360e31b8152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061024f90859087906004016102c4565b5f604051808303815f87803b158015610266575f80fd5b505af1158015610278573d5f803e3d5ffd5b50505050915091565b5f82518060208501845e5f920191825250919050565b5f602082840312156102a7575f80fd5b81516001600160a01b03811681146102bd575f80fd5b9392505050565b60018060a01b0383168152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b6201399d80620003175f395ff3fe6080604052600436106101a7575f3560e01c8063916a17c6116100e7578063c7b8e15d11610087578063e3d192c211610062578063e3d192c2146104af578063e6ea2d63146104c3578063f3971994146104d7578063fa7626d4146104eb575f80fd5b8063c7b8e15d14610473578063d519e22e14610487578063e20c9f711461049b575f80fd5b8063b0f3d802116100c2578063b0f3d802146103bd578063b1a73b8a146103d1578063b5508aa91461043b578063ba414fa61461044f575f80fd5b8063916a17c61461035b57806393ad73ed1461037c578063b0464fdc146103a9575f80fd5b806339cd2013116101525780634cb8db071161012d5780634cb8db07146102cc578063542524dd146102e057806366d9a9a01461031957806385226c811461033a575f80fd5b806339cd20131461024f5780633e5e3c23146102a45780633f7286f4146102b8575f80fd5b80631ed7831c116101825780631ed7831c146101f0578063243b76811461021a5780632ade38801461022e575f80fd5b80630a9254e4146101b257806314a22a3c146101c85780631b2d5fd1146101dc575f80fd5b366101ae57005b5f80fd5b3480156101bd575f80fd5b506101c6610504565b005b3480156101d3575f80fd5b506101c6610543565b3480156101e7575f80fd5b506101c6610f0e565b3480156101fb575f80fd5b50610204611b7a565b6040516102119190617328565b60405180910390f35b348015610225575f80fd5b506101c6611be7565b348015610239575f80fd5b5061024261243a565b60405161021191906173cc565b34801561025a575f80fd5b5060235460245460255461027c92600281810b936301000000909204900b9184565b60408051600295860b81529390940b6020840152928201526060810191909152608001610211565b3480156102af575f80fd5b50610204612583565b3480156102c3575f80fd5b506102046125ee565b3480156102d7575f80fd5b506101c6612659565b3480156102eb575f80fd5b506102f4613167565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610211565b348015610324575f80fd5b5061032d613189565b604051610211919061753a565b348015610345575f80fd5b5061034e613302565b60405161021191906175d6565b348015610366575f80fd5b5061036f6133cd565b604051610211919061764b565b348015610387575f80fd5b5060205460215460225461027c92600281810b936301000000909204900b9184565b3480156103b4575f80fd5b5061036f6134d0565b3480156103c8575f80fd5b506101c66135d3565b3480156103dc575f80fd5b506026546027546028546104089260ff16919073ffffffffffffffffffffffffffffffffffffffff1683565b604080519315158452602084019290925273ffffffffffffffffffffffffffffffffffffffff1690820152606001610211565b348015610446575f80fd5b5061034e613cc4565b34801561045a575f80fd5b50610463613d8f565b6040519015158152602001610211565b34801561047e575f80fd5b506102f4613e5f565b348015610492575f80fd5b506101c6613e6f565b3480156104a6575f80fd5b5061020461475b565b3480156104ba575f80fd5b506101c66147c6565b3480156104ce575f80fd5b506101c6615033565b3480156104e2575f80fd5b506101c6615833565b3480156104f6575f80fd5b50601f546104639060ff1681565b61050c6135d3565b61051461624b565b8051605490819061052590826177b6565b50602082810151805161053e9260018501920190617232565b505050565b604080516101408101825260485473ffffffffffffffffffffffffffffffffffffffff90811660a0830190815260495480831660c085015262ffffff7401000000000000000000000000000000000000000082041660e085015277010000000000000000000000000000000000000000000000900460020b610100840152604a5490911661012083015281526001602080830191909152670de0b6b3a76400008284018190525f606084018190528451808401865290815260808401529251670dc47c68de877b4992916107c191600691610620918591016179b6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906106659061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546106919061771a565b80156106dc5780601f106106b3576101008083540402835291602001916106dc565b820191905f5260205f20905b8154815290600101906020018083116106bf57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f200180546107269061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546107529061771a565b801561079d5780601f106107745761010080835404028352916020019161079d565b820191905f5260205f20905b81548152906001019060200180831161078057829003601f168201915b505050505081526020019060010190610709565b50505091525090929190506162a7565b805160549081906107d290826177b6565b5060208281015180516107eb9260018501920190617232565b50506048546046546040805173ffffffffffffffffffffffffffffffffffffffff90931660208401528201526109b39150600c90606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906108679061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546108939061771a565b80156108de5780601f106108b5576101008083540402835291602001916108de565b820191905f5260205f20905b8154815290600101906020018083116108c157829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f200180546109289061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546109549061771a565b801561099f5780601f106109765761010080835404028352916020019161099f565b820191905f5260205f20905b81548152906001019060200180831161098257829003601f168201915b50505050508152602001906001019061090b565b805160549081906109c490826177b6565b5060208281015180516109dd9260018501920190617232565b5050604954610bc39150600f9073ffffffffffffffffffffffffffffffffffffffff16610a0b8560016179f5565b6040805173ffffffffffffffffffffffffffffffffffffffff9093166020840152820152606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282019091526054805491929182908290610a779061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa39061771a565b8015610aee5780601f10610ac557610100808354040283529160200191610aee565b820191905f5260205f20905b815481529060010190602001808311610ad157829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f20018054610b389061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b649061771a565b8015610baf5780601f10610b8657610100808354040283529160200191610baf565b820191905f5260205f20905b815481529060010190602001808311610b9257829003601f168201915b505050505081526020019060010190610b1b565b80516054908190610bd490826177b6565b506020828101518051610bed9260018501920190617232565b509050505f610d6a60546040518060400160405290815f82018054610c119061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3d9061771a565b8015610c885780601f10610c5f57610100808354040283529160200191610c88565b820191905f5260205f20905b815481529060010190602001808311610c6b57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610d5d578382905f5260205f20018054610cd29061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054610cfe9061771a565b8015610d495780601f10610d2057610100808354040283529160200191610d49565b820191905f5260205f20905b815481529060010190602001808311610d2c57829003601f168201915b505050505081526020019060010190610cb5565b50505050815250506164bb565b9050737109709ecfa91a80626ff3989d68f67f5b1dd12d63f28dceb37f8b063d7300000000000000000000000000000000000000000000000000000000610db28660016179f5565b6040516024810191909152604481018790526064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e084901b9092168252610e5891600401617a08565b5f604051808303815f87803b158015610e6f575f80fd5b505af1158015610e81573d5f803e3d5ffd5b50506045546040517f4f84885b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169250634f84885b9150610edb908490600401617a08565b5f604051808303815f87803b158015610ef2575f80fd5b505af1158015610f04573d5f803e3d5ffd5b5050505050505050565b604080516101408101825260485473ffffffffffffffffffffffffffffffffffffffff90811660a0830190815260495480831660c085015262ffffff7401000000000000000000000000000000000000000082041660e085015277010000000000000000000000000000000000000000000000900460020b610100840152604a5490911661012083015281526001602080830191909152670de0b6b3a76400008284018190525f606084018190528451808401865290815260808401529251670dc47c68de877b49929161117c91600691610feb918591016179b6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906110309061771a565b80601f016020809104026020016040519081016040528092919081815260200182805461105c9061771a565b80156110a75780601f1061107e576101008083540402835291602001916110a7565b820191905f5260205f20905b81548152906001019060200180831161108a57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f200180546110f19061771a565b80601f016020809104026020016040519081016040528092919081815260200182805461111d9061771a565b80156111685780601f1061113f57610100808354040283529160200191611168565b820191905f5260205f20905b81548152906001019060200180831161114b57829003601f168201915b5050505050815260200190600101906110d4565b8051605490819061118d90826177b6565b5060208281015180516111a69260018501920190617232565b50506048546040805173ffffffffffffffffffffffffffffffffffffffff90921660208301528101859052600160608201526113749150600b90608001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906112289061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546112549061771a565b801561129f5780601f106112765761010080835404028352916020019161129f565b820191905f5260205f20905b81548152906001019060200180831161128257829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f200180546112e99061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546113159061771a565b80156113605780601f1061133757610100808354040283529160200191611360565b820191905f5260205f20905b81548152906001019060200180831161134357829003601f168201915b5050505050815260200190600101906112cc565b8051605490819061138590826177b6565b50602082810151805161139e9260018501920190617232565b50506049546056546040805173ffffffffffffffffffffffffffffffffffffffff93841660208201529290911690820152600f60608201526115729150601090608001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906114269061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546114529061771a565b801561149d5780601f106114745761010080835404028352916020019161149d565b820191905f5260205f20905b81548152906001019060200180831161148057829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f200180546114e79061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546115139061771a565b801561155e5780601f106115355761010080835404028352916020019161155e565b820191905f5260205f20905b81548152906001019060200180831161154157829003601f168201915b5050505050815260200190600101906114ca565b8051605490819061158390826177b6565b50602082810151805161159c9260018501920190617232565b50506049546040805173ffffffffffffffffffffffffffffffffffffffff90921660208301525f8282015280518083038201815260a08301909152605480546117419450600f936060019190829082906115f59061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546116219061771a565b801561166c5780601f106116435761010080835404028352916020019161166c565b820191905f5260205f20905b81548152906001019060200180831161164f57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f200180546116b69061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546116e29061771a565b801561172d5780601f106117045761010080835404028352916020019161172d565b820191905f5260205f20905b81548152906001019060200180831161171057829003601f168201915b505050505081526020019060010190611699565b8051605490819061175290826177b6565b50602082810151805161176b9260018501920190617232565b50506048545f91506117929073ffffffffffffffffffffffffffffffffffffffff166164ed565b6049549091505f906117b99073ffffffffffffffffffffffffffffffffffffffff166164ed565b6056546049549192505f916117e79173ffffffffffffffffffffffffffffffffffffffff91821691166165a2565b60455460295491925061181d916118179173ffffffffffffffffffffffffffffffffffffffff91821691166165a2565b5f616671565b604554602a5461184a916118179173ffffffffffffffffffffffffffffffffffffffff90811691166165a2565b5f6119b660546040518060400160405290815f8201805461186a9061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546118969061771a565b80156118e15780601f106118b8576101008083540402835291602001916118e1565b820191905f5260205f20905b8154815290600101906020018083116118c457829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610d5d578382905f5260205f2001805461192b9061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546119579061771a565b80156119a25780601f10611979576101008083540402835291602001916119a2565b820191905f5260205f20905b81548152906001019060200180831161198557829003601f168201915b50505050508152602001906001019061190e565b6045546040517f4f84885b00000000000000000000000000000000000000000000000000000000815291925073ffffffffffffffffffffffffffffffffffffffff1690634f84885b90611a0d908490600401617a08565b5f604051808303815f87803b158015611a24575f80fd5b505af1158015611a36573d5f803e3d5ffd5b50506048545f9250611a5e915073ffffffffffffffffffffffffffffffffffffffff166164ed565b6049549091505f90611a859073ffffffffffffffffffffffffffffffffffffffff166164ed565b6056546049549192505f91611ab39173ffffffffffffffffffffffffffffffffffffffff91821691166165a2565b90505f612710611ac48b600f617a1a565b611ace9190617a31565b604554602954919250611afe916118179173ffffffffffffffffffffffffffffffffffffffff91821691166165a2565b604554602a54611b2b916118179173ffffffffffffffffffffffffffffffffffffffff90811691166165a2565b611b3e611b38858a617a69565b8c616671565b611b5a611b4b8885617a69565b611b55838d617a69565b616671565b611b6d611b678784617a69565b82616671565b5050505050505050505050565b60606016805480602002602001604051908101604052809291908181526020018280548015611bdd57602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611bb2575b5050505050905090565b604080516101408101825260485473ffffffffffffffffffffffffffffffffffffffff90811660a0830190815260495480831660c085015262ffffff7401000000000000000000000000000000000000000082041660e085015277010000000000000000000000000000000000000000000000900460020b610100840152604a5490911661012083015281526001602080830191909152670de0b6b3a7640000828401819052670dfd4f792bfcd51360608401819052845180840186525f81526080850152935190939291611e5691600891611cc5918591016179b6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282019091526054805491929182908290611d0a9061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054611d369061771a565b8015611d815780601f10611d5857610100808354040283529160200191611d81565b820191905f5260205f20905b815481529060010190602001808311611d6457829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f20018054611dcb9061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054611df79061771a565b8015611e425780601f10611e1957610100808354040283529160200191611e42565b820191905f5260205f20905b815481529060010190602001808311611e2557829003601f168201915b505050505081526020019060010190611dae565b80516054908190611e6790826177b6565b506020828101518051611e809260018501920190617232565b50506048546120669150600c9073ffffffffffffffffffffffffffffffffffffffff16611eae600186617a69565b6040805173ffffffffffffffffffffffffffffffffffffffff9093166020840152820152606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282019091526054805491929182908290611f1a9061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054611f469061771a565b8015611f915780601f10611f6857610100808354040283529160200191611f91565b820191905f5260205f20905b815481529060010190602001808311611f7457829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f20018054611fdb9061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546120079061771a565b80156120525780601f1061202957610100808354040283529160200191612052565b820191905f5260205f20905b81548152906001019060200180831161203557829003601f168201915b505050505081526020019060010190611fbe565b8051605490819061207790826177b6565b5060208281015180516120909260018501920190617232565b50506048546047546040805173ffffffffffffffffffffffffffffffffffffffff90931660208401528201526122589150600f90606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828201909152605480549192918290829061210c9061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546121389061771a565b80156121835780601f1061215a57610100808354040283529160200191612183565b820191905f5260205f20905b81548152906001019060200180831161216657829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f200180546121cd9061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546121f99061771a565b80156122445780601f1061221b57610100808354040283529160200191612244565b820191905f5260205f20905b81548152906001019060200180831161222757829003601f168201915b5050505050815260200190600101906121b0565b8051605490819061226990826177b6565b5060208281015180516122829260018501920190617232565b509050505f6123f260546040518060400160405290815f820180546122a69061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546122d29061771a565b801561231d5780601f106122f45761010080835404028352916020019161231d565b820191905f5260205f20905b81548152906001019060200180831161230057829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610d5d578382905f5260205f200180546123679061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546123939061771a565b80156123de5780601f106123b5576101008083540402835291602001916123de565b820191905f5260205f20905b8154815290600101906020018083116123c157829003601f168201915b50505050508152602001906001019061234a565b9050737109709ecfa91a80626ff3989d68f67f5b1dd12d63f28dceb37f12bacdd300000000000000000000000000000000000000000000000000000000610db2600187617a69565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101561257a575f848152602080822060408051808201825260028702909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939591948681019491929084015b82821015612563578382905f5260205f200180546124d89061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546125049061771a565b801561254f5780601f106125265761010080835404028352916020019161254f565b820191905f5260205f20905b81548152906001019060200180831161253257829003601f168201915b5050505050815260200190600101906124bb565b50505050815250508152602001906001019061245d565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015611bdd57602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611bb2575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015611bdd57602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611bb2575050505050905090565b604080516101408101825260485473ffffffffffffffffffffffffffffffffffffffff90811660a0830190815260495480831660c085015262ffffff7401000000000000000000000000000000000000000082041660e085015277010000000000000000000000000000000000000000000000900460020b610100840152604a5490911661012083015281526001602080830191909152670de0b6b3a76400008284018190525f6060840181905284518084018652908152608084015292516128bc9160069161272b918591016179b6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906127709061771a565b80601f016020809104026020016040519081016040528092919081815260200182805461279c9061771a565b80156127e75780601f106127be576101008083540402835291602001916127e7565b820191905f5260205f20905b8154815290600101906020018083116127ca57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f200180546128319061771a565b80601f016020809104026020016040519081016040528092919081815260200182805461285d9061771a565b80156128a85780601f1061287f576101008083540402835291602001916128a8565b820191905f5260205f20905b81548152906001019060200180831161288b57829003601f168201915b505050505081526020019060010190612814565b805160549081906128cd90826177b6565b5060208281015180516128e69260018501920190617232565b50506048546040805173ffffffffffffffffffffffffffffffffffffffff9092166020830152810184905260016060820152612ab49150600b90608001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906129689061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546129949061771a565b80156129df5780601f106129b6576101008083540402835291602001916129df565b820191905f5260205f20905b8154815290600101906020018083116129c257829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f20018054612a299061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054612a559061771a565b8015612aa05780601f10612a7757610100808354040283529160200191612aa0565b820191905f5260205f20905b815481529060010190602001808311612a8357829003601f168201915b505050505081526020019060010190612a0c565b80516054908190612ac590826177b6565b506020828101518051612ade9260018501920190617232565b5050604954605654612cda925060109173ffffffffffffffffffffffffffffffffffffffff9081169116612b1561271060016179f5565b6040805173ffffffffffffffffffffffffffffffffffffffff948516602082015293909216918301919091526060820152608001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282019091526054805491929182908290612b8e9061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054612bba9061771a565b8015612c055780601f10612bdc57610100808354040283529160200191612c05565b820191905f5260205f20905b815481529060010190602001808311612be857829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f20018054612c4f9061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054612c7b9061771a565b8015612cc65780601f10612c9d57610100808354040283529160200191612cc6565b820191905f5260205f20905b815481529060010190602001808311612ca957829003601f168201915b505050505081526020019060010190612c32565b80516054908190612ceb90826177b6565b506020828101518051612d049260018501920190617232565b50506049546040805173ffffffffffffffffffffffffffffffffffffffff90921660208301525f8282015280518083038201815260a0830190915260548054612ea99450600f93606001919082908290612d5d9061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054612d899061771a565b8015612dd45780601f10612dab57610100808354040283529160200191612dd4565b820191905f5260205f20905b815481529060010190602001808311612db757829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f20018054612e1e9061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054612e4a9061771a565b8015612e955780601f10612e6c57610100808354040283529160200191612e95565b820191905f5260205f20905b815481529060010190602001808311612e7857829003601f168201915b505050505081526020019060010190612e01565b80516054908190612eba90826177b6565b506020828101518051612ed39260018501920190617232565b509050505f61304360546040518060400160405290815f82018054612ef79061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054612f239061771a565b8015612f6e5780601f10612f4557610100808354040283529160200191612f6e565b820191905f5260205f20905b815481529060010190602001808311612f5157829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610d5d578382905f5260205f20018054612fb89061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054612fe49061771a565b801561302f5780601f106130065761010080835404028352916020019161302f565b820191905f5260205f20905b81548152906001019060200180831161301257829003601f168201915b505050505081526020019060010190612f9b565b6040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527fdeaa01e6000000000000000000000000000000000000000000000000000000006004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c31eb0e0906024015b5f604051808303815f87803b1580156130c9575f80fd5b505af11580156130db573d5f803e3d5ffd5b50506045546040517f4f84885b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169250634f84885b9150613135908490600401617a08565b5f604051808303815f87803b15801561314c575f80fd5b505af115801561315e573d5f803e3d5ffd5b50505050505050565b613186600173fffd8963efd1fc6a506488495d951d5263988d26617a7c565b81565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101561257a578382905f5260205f2090600202016040518060400160405290815f820180546131dc9061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546132089061771a565b80156132535780601f1061322a57610100808354040283529160200191613253565b820191905f5260205f20905b81548152906001019060200180831161323657829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156132ea57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116132975790505b505050505081525050815260200190600101906131ac565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101561257a578382905f5260205f200180546133429061771a565b80601f016020809104026020016040519081016040528092919081815260200182805461336e9061771a565b80156133b95780601f10613390576101008083540402835291602001916133b9565b820191905f5260205f20905b81548152906001019060200180831161339c57829003601f168201915b505050505081526020019060010190613325565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101561257a575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156134b857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116134655790505b505050505081525050815260200190600101906133f0565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101561257a575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156135bb57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116135685790505b505050505081525050815260200190600101906134f3565b6135db6166f4565b602b5460405173ffffffffffffffffffffffffffffffffffffffff9091169061360390617286565b73ffffffffffffffffffffffffffffffffffffffff9091168152602001604051809103905ff080158015613639573d5f803e3d5ffd5b50604580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055602b5460405191169061368d90617294565b73ffffffffffffffffffffffffffffffffffffffff9091168152602001604051809103905ff0801580156136c3573d5f803e3d5ffd5b50604480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790555f613714600461677f565b9050805f8151811061372857613728617aa8565b602002602001015160295f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060018151811061378257613782617aa8565b6020026020010151602a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806002815181106137dc576137dc617aa8565b602002602001015160515f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060038151811061383657613836617aa8565b6020908102919091010151605280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92831617905560295461389091165f616891565b8051603980547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff938416179091556020830151603a8054604086015160608701519386167fffffffffffffffffff0000000000000000000000000000000000000000000000909216919091177401000000000000000000000000000000000000000062ffffff92831602177fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff16770100000000000000000000000000000000000000000000009190931602919091179055608090920151603b805490931690821617909155602954602a546139a29291821691165f616b29565b8051604880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff93841617909155602083015160498054604086015160608701519386167fffffffffffffffffff0000000000000000000000000000000000000000000000909216919091177401000000000000000000000000000000000000000062ffffff92831602177fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff16770100000000000000000000000000000000000000000000009190931602919091179055608090920151604a805490931690821617909155602a54605154613ab49291821691165f616b29565b8051604b80547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff938416179091556020830151604c8054604086015160608701519386167fffffffffffffffffff0000000000000000000000000000000000000000000000909216919091177401000000000000000000000000000000000000000062ffffff92831602177fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff16770100000000000000000000000000000000000000000000009190931602919091179055608090920151604d805490931690821617909155605154605254613bc69291821691165f616b29565b8051604e80547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff938416179091556020830151604f8054604086015160608701519386167fffffffffffffffffff0000000000000000000000000000000000000000000000909216919091177401000000000000000000000000000000000000000062ffffff92831602177fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff1677010000000000000000000000000000000000000000000000919093160291909117905560809092015160508054909316911617905550565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101561257a578382905f5260205f20018054613d049061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054613d309061771a565b8015613d7b5780601f10613d5257610100808354040283529160200191613d7b565b820191905f5260205f20905b815481529060010190602001808311613d5e57829003601f168201915b505050505081526020019060010190613ce7565b6008545f9060ff1615613da6575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015613e34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e589190617ad5565b1415905090565b6131866401000276a36001617aec565b604080516101408101825260485473ffffffffffffffffffffffffffffffffffffffff90811660a0830190815260495480831660c085015262ffffff7401000000000000000000000000000000000000000082041660e085015277010000000000000000000000000000000000000000000000900460020b610100840152604a5490911661012083015281526001602080830191909152670de0b6b3a76400008284018190525f6060840181905284518084018652908152608084015292516140d291600691613f41918591016179b6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282019091526054805491929182908290613f869061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054613fb29061771a565b8015613ffd5780601f10613fd457610100808354040283529160200191613ffd565b820191905f5260205f20905b815481529060010190602001808311613fe057829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f200180546140479061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546140739061771a565b80156140be5780601f10614095576101008083540402835291602001916140be565b820191905f5260205f20905b8154815290600101906020018083116140a157829003601f168201915b50505050508152602001906001019061402a565b805160549081906140e390826177b6565b5060208281015180516140fc9260018501920190617232565b50506048546142e29150600c9073ffffffffffffffffffffffffffffffffffffffff1661412a600186617a69565b6040805173ffffffffffffffffffffffffffffffffffffffff9093166020840152820152606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906141969061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546141c29061771a565b801561420d5780601f106141e45761010080835404028352916020019161420d565b820191905f5260205f20905b8154815290600101906020018083116141f057829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f200180546142579061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546142839061771a565b80156142ce5780601f106142a5576101008083540402835291602001916142ce565b820191905f5260205f20905b8154815290600101906020018083116142b157829003601f168201915b50505050508152602001906001019061423a565b805160549081906142f390826177b6565b50602082810151805161430c9260018501920190617232565b50506048546047546040805173ffffffffffffffffffffffffffffffffffffffff90931660208401528201526144d49150600f90606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906143889061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546143b49061771a565b80156143ff5780601f106143d6576101008083540402835291602001916143ff565b820191905f5260205f20905b8154815290600101906020018083116143e257829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f200180546144499061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546144759061771a565b80156144c05780601f10614497576101008083540402835291602001916144c0565b820191905f5260205f20905b8154815290600101906020018083116144a357829003601f168201915b50505050508152602001906001019061442c565b805160549081906144e590826177b6565b5060208281015180516144fe9260018501920190617232565b509050505f61466e60546040518060400160405290815f820180546145229061771a565b80601f016020809104026020016040519081016040528092919081815260200182805461454e9061771a565b80156145995780601f1061457057610100808354040283529160200191614599565b820191905f5260205f20905b81548152906001019060200180831161457c57829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610d5d578382905f5260205f200180546145e39061771a565b80601f016020809104026020016040519081016040528092919081815260200182805461460f9061771a565b801561465a5780601f106146315761010080835404028352916020019161465a565b820191905f5260205f20905b81548152906001019060200180831161463d57829003601f168201915b5050505050815260200190600101906145c6565b9050737109709ecfa91a80626ff3989d68f67f5b1dd12d63f28dceb37f12bacdd3000000000000000000000000000000000000000000000000000000006146b6600187617a69565b604051602481019190915260448101879052606401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e084901b90921682526130b291600401617a08565b60606015805480602002602001604051908101604052809291908181526020018280548015611bdd57602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611bb2575050505050905090565b604080516101408101825260485473ffffffffffffffffffffffffffffffffffffffff90811660a0830190815260495480831660c085015262ffffff7401000000000000000000000000000000000000000082041660e085015277010000000000000000000000000000000000000000000000900460020b610100840152604a5490911661012083015281526001602080830191909152670de0b6b3a7640000828401819052670dfd4f792bfcd51360608401819052845180840186525f81526080850152935190939291614a35916008916148a4918591016179b6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282820190915260548054919291829082906148e99061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546149159061771a565b80156149605780601f1061493757610100808354040283529160200191614960565b820191905f5260205f20905b81548152906001019060200180831161494357829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f200180546149aa9061771a565b80601f01602080910402602001604051908101604052809291908181526020018280546149d69061771a565b8015614a215780601f106149f857610100808354040283529160200191614a21565b820191905f5260205f20905b815481529060010190602001808311614a0457829003601f168201915b50505050508152602001906001019061498d565b80516054908190614a4690826177b6565b506020828101518051614a5f9260018501920190617232565b50506048546046546040805173ffffffffffffffffffffffffffffffffffffffff9093166020840152820152614c279150600c90606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282019091526054805491929182908290614adb9061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054614b079061771a565b8015614b525780601f10614b2957610100808354040283529160200191614b52565b820191905f5260205f20905b815481529060010190602001808311614b3557829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156107b1578382905f5260205f20018054614b9c9061771a565b80601f0160208091040260200160405190810160405280929190818152602001828054614bc89061771a565b8015614c135780601f10614bea57610100808354040283529160200191614c13565b820191905f5260205f20905b815481529060010190602001808311614bf657829003601f168201915b505050505081526020019060010190614b7f565b80516054908190614c3890826177b6565b506020828101518051614c519260018501920190617232565b5050604954614e379150600f9073ffffffffffffffffffffffffffffffffffffffff16614c7f8660016179f5565b6040805173ffffffffffffffffffffffffffffffffffffffff909316602