[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "address", "name": "employerAddress_", "type": "address" }, { "internalType": "address", "name": "_timeTokenAddress", "type": "address" }, { "internalType": "address", "name": "_lzEndPointAddress", "type": "address" }, { "internalType": "address", "name": "_chainlinkAddress", "type": "address" }, { "internalType": "address", "name": "_owner", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "indexed": false, "internalType": "bytes", "name": "_payload", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "_reason", "type": "bytes" } ], "name": "MessageFailed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": true, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "ReceiveFromChain", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "indexed": false, "internalType": "bytes32", "name": "_payloadHash", "type": "bytes32" } ], "name": "RetryMessageSuccess", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "_toAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "SendToChain", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "_type", "type": "uint16" }, { "indexed": false, "internalType": "uint256", "name": "_minDstGas", "type": "uint256" } ], "name": "SetMinDstGas", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "precrime", "type": "address" } ], "name": "SetPrecrime", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_path", "type": "bytes" } ], "name": "SetTrustedRemote", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_remoteAddress", "type": "bytes" } ], "name": "SetTrustedRemoteAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "_useCustomAdapterParams", "type": "bool" } ], "name": "SetUseCustomAdapterParams", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [], "name": "DEFAULT_PAYLOAD_SIZE_LIMIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "FLASH_MINT_FEE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NO_EXTRA_GAS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PT_SEND", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "accountShareBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "arbitrageCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "buy", "outputs": [ { "internalType": "bool", "name": "success", "type": "bool" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "circulatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_toAddress", "type": "bytes" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bool", "name": "_useZro", "type": "bool" }, { "internalType": "bytes", "name": "_adapterParams", "type": "bytes" } ], "name": "estimateSendFee", "outputs": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "zroFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "bytes", "name": "", "type": "bytes" }, { "internalType": "uint64", "name": "", "type": "uint64" } ], "name": "failedMessages", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountToBorrow", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "flashMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" } ], "name": "forceResumeReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" }, { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "_configType", "type": "uint256" } ], "name": "getConfig", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" } ], "name": "getTrustedRemoteAddress", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" } ], "name": "isTrustedRemote", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lzEndpoint", "outputs": [ { "internalType": "contract ILayerZeroEndpoint", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "lzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "minDstGasLookup", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "timeAmount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "nonblockingLzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "payFlashMintFee", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "payloadSizeLimitLookup", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "poolBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "precrime", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountNative", "type": "uint256" } ], "name": "queryAmountInTimeInternalLP", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountNative", "type": "uint256" } ], "name": "queryAmountInternalLP", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "queryNativeAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "timeAmount", "type": "uint256" } ], "name": "queryNativeFromTimeAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "queryPriceInverse", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountNative", "type": "uint256" } ], "name": "queryPriceNative", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "queryPublicReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "receiveProfit", "outputs": [ { "internalType": "bool", "name": "response", "type": "bool" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "retryMessage", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "sell", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_toAddress", "type": "bytes" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "address payable", "name": "_refundAddress", "type": "address" }, { "internalType": "address", "name": "_zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "_adapterParams", "type": "bytes" } ], "name": "sendFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" }, { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "uint256", "name": "_configType", "type": "uint256" }, { "internalType": "bytes", "name": "_config", "type": "bytes" } ], "name": "setConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "uint16", "name": "_packetType", "type": "uint16" }, { "internalType": "uint256", "name": "_minGas", "type": "uint256" } ], "name": "setMinDstGas", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "uint256", "name": "_size", "type": "uint256" } ], "name": "setPayloadSizeLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_precrime", "type": "address" } ], "name": "setPrecrime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" } ], "name": "setReceiveVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" } ], "name": "setSendVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_path", "type": "bytes" } ], "name": "setTrustedRemote", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_remoteAddress", "type": "bytes" } ], "name": "setTrustedRemoteAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_useCustomAdapterParams", "type": "bool" } ], "name": "setUseCustomAdapterParams", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "splitSharesWithReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "toBeShared", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalEarned", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalEarnedFromFlashMintFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalTimeBurned", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "trustedRemoteLookup", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "useCustomAdapterParams", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6104a06040526c0c9f2c9cd04674edea4000000060c09081526c064f964e68233a76f52000000060e0526c01431e0fae6d7217caa0000000610100526ba18f07d736b90be550000000610120526b204fce5e3e25026110000000610140526b1027e72f1f12813088000000610160526b033b2e3c9fd0803ce8000000610180526b019d971e4fe8401e740000006101a0526a52b7d2dcc80cd2e40000006101c0526a295be96e640669720000006101e0526a084595161401484a000000610200526a0422ca8b0a00a4250000006102205269d3c21bcecceda1000000610240526969e10de76676d08000006102605269152d02c7e14af680000061028052690a968163f0a57b4000006102a05269021e19e0c9bab24000006102c05269010f0cf064dd592000006102e052683635c9adc5dea0000061030052681b1ae4d6e2ef5000006103205268056bc75e2d63100000610340526802b5e3af16b188000061036052678ac7230489e8000061038052674563918244f400006103a052670de0b6b3a76400006103c0526706f05b59d3b200006103e05267016345785d8a00006104005266b1a2bc2ec5000061042052662386f26fc10000610440526611c37937e080006104605266038d7ea4c6800061048052620001e390601990601f62000433565b50348015620001f157600080fd5b50604051620066d5380380620066d58339810160408190526200021491620005ff565b8686848282828080620002273362000302565b6001600160a01b0316608052505081516200024a90600a90602085019062000481565b5080516200026090600b90602084019062000481565b50508a516200027c9450600d935060208c019250905062000481565b5085516200029290600e90602089019062000481565b506001600160a01b0385811660a052603c80546001600160a01b031916868316179055821615620002d957603d80546001600160a01b0319166001600160a01b0384161790555b6001600160a01b0381163314620002f557620002f58162000352565b5050505050505062000703565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6200035c620003d5565b6001600160a01b038116620003c75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b620003d28162000302565b50565b6000546001600160a01b03163314620004315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620003be565b565b82601f81019282156200046f579160200282015b828111156200046f57825182906001600160681b031690559160200191906001019062000447565b506200047d929150620004fe565b5090565b8280546200048f90620006c6565b90600052602060002090601f016020900481019282620004b357600085556200046f565b82601f10620004ce57805160ff19168380011785556200046f565b828001600101855582156200046f579182015b828111156200046f578251825591602001919060010190620004e1565b5b808211156200047d5760008155600101620004ff565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200053d57600080fd5b81516001600160401b03808211156200055a576200055a62000515565b604051601f8301601f19908116603f0116810190828211818310171562000585576200058562000515565b81604052838152602092508683858801011115620005a257600080fd5b600091505b83821015620005c65785820183015181830184015290820190620005a7565b83821115620005d85760008385830101525b9695505050505050565b80516001600160a01b0381168114620005fa57600080fd5b919050565b600080600080600080600060e0888a0312156200061b57600080fd5b87516001600160401b03808211156200063357600080fd5b620006418b838c016200052b565b985060208a01519150808211156200065857600080fd5b50620006678a828b016200052b565b9650506200067860408901620005e2565b94506200068860608901620005e2565b93506200069860808901620005e2565b9250620006a860a08901620005e2565b9150620006b860c08901620005e2565b905092959891949750929550565b600181811c90821680620006db57607f821691505b60208210811415620006fd57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a051615f746200076160003960006139b9015260008181610a9e01528181610cda01528181611072015281816111f8015281816112b1015281816115d90152818161248801528181612b22015261439c0152615f746000f3fe6080604052600436106104325760003560e01c80638b3b0e6411610228578063b353aaa711610128578063e4849b32116100bb578063f2fde38b1161008a578063f5ecbdbc1161006f578063f5ecbdbc14610c5e578063fc0c546a14610c7e578063fd97e3c514610c9157610441565b8063f2fde38b14610c1e578063f3d33a0e14610c3e57610441565b8063e4849b3214610ba4578063eab45d9c14610bc4578063eb8d72b714610be4578063ed629c5c14610c0457610441565b8063ccb64596116100f7578063ccb6459614610b16578063d1deba1f14610b2b578063dd62ed3e14610b3e578063df2a5b3b14610b8457610441565b8063b353aaa714610a8c578063baf3292d14610ac0578063c446183414610ae0578063cbed8b9c14610af657610441565b80639c4da9d8116101bb578063a457c2d71161018a578063a6f2ae3a1161016f578063a6f2ae3a14610a44578063a88f713314610a4c578063a9059cbb14610a6c57610441565b8063a457c2d714610a04578063a6c3d16514610a2457610441565b80639c4da9d8146109a95780639f38369a146109b1578063a0712d68146109d1578063a1bbf161146109e457610441565b8063950c8a74116101f7578063950c8a741461093e57806395d89b411461095e57806396365d44146109735780639863c2431461098957610441565b80638b3b0e64146108a95780638cfd8f5c146108bf5780638da5cb5b146108f75780639358928b1461092957610441565b806342966c68116103335780635e7c7545116102c6578063715018a611610295578063834539331161027a578063834539331461085357806383dfda9c1461087357806384d2cf6a1461089357610441565b8063715018a61461081e5780637533d7881461083357610441565b80635e7c7545146107b357806366ad5c8a146107c85780636dfa8d99146107e857806370a08231146107fe57610441565b80634c42899a116103025780634c42899a146107095780635190563614610731578063522c8067146107445780635b8c41e61461076457610441565b806342966c681461069e57806342d65a8d146106be57806344770515146106de57806347aa6a52146106f357610441565b806310ddb137116103c6578063313ce56711610395578063395093511161037a57806339509351146106315780633d8b38f6146106515780633f1f4fa41461067157610441565b8063313ce5671461060d57806336a31ccb1461062957610441565b806310ddb1371461058357806318160ddd146105a357806323b872dd146105b85780632a205e3d146105d857610441565b806307e0db171161040257806307e0db1714610503578063095ea7b3146105235780630df37483146105435780630f0a7f7a1461056357610441565b80621d35671461046957806301401c5c1461048957806301ffc9a7146104b157806306fdde03146104e157610441565b366104415761043f610ca7565b005b3615806104585750603c546001600160a01b031633145b61046157600080fd5b61043f610ca7565b34801561047557600080fd5b5061043f6104843660046152c6565b610cd7565b34801561049557600080fd5b5061049e606481565b6040519081526020015b60405180910390f35b3480156104bd57600080fd5b506104d16104cc36600461535c565b610f1f565b60405190151581526020016104a8565b3480156104ed57600080fd5b506104f6610fa6565b6040516104a891906153f6565b34801561050f57600080fd5b5061043f61051e366004615409565b611038565b34801561052f57600080fd5b506104d161053e36600461543b565b6110da565b34801561054f57600080fd5b5061043f61055e366004615467565b6110f2565b34801561056f57600080fd5b5061049e61057e366004615485565b611111565b34801561058f57600080fd5b5061043f61059e366004615409565b6111be565b3480156105af57600080fd5b5060115461049e565b3480156105c457600080fd5b506104d16105d336600461549e565b61122f565b3480156105e457600080fd5b506105f86105f33660046154ed565b611255565b604080519283526020830191909152016104a8565b34801561061957600080fd5b50604051601281526020016104a8565b61043f611341565b34801561063d57600080fd5b506104d161064c36600461543b565b611434565b34801561065d57600080fd5b506104d161066c36600461558e565b611473565b34801561067d57600080fd5b5061049e61068c366004615409565b60036020526000908152604090205481565b3480156106aa57600080fd5b5061043f6106b9366004615485565b61153f565b3480156106ca57600080fd5b5061043f6106d936600461558e565b6115a1565b3480156106ea57600080fd5b5061049e600081565b3480156106ff57600080fd5b5061049e60155481565b34801561071557600080fd5b5061071e600081565b60405161ffff90911681526020016104a8565b61043f61073f3660046155e3565b611640565b34801561075057600080fd5b5061043f61075f3660046156ad565b6116c5565b34801561077057600080fd5b5061049e61077f36600461574f565b6005602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b3480156107bf57600080fd5b5061049e61195c565b3480156107d457600080fd5b5061043f6107e33660046152c6565b611975565b3480156107f457600080fd5b5061049e60165481565b34801561080a57600080fd5b5061049e6108193660046157f2565b611a68565b34801561082a57600080fd5b5061043f611a96565b34801561083f57600080fd5b506104f661084e366004615409565b611aa8565b34801561085f57600080fd5b5061049e61086e366004615485565b611b42565b34801561087f57600080fd5b5061049e61088e366004615485565b611b76565b34801561089f57600080fd5b5061049e60185481565b3480156108b557600080fd5b5061049e60135481565b3480156108cb57600080fd5b5061049e6108da36600461580f565b600260209081526000928352604080842090915290825290205481565b34801561090357600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016104a8565b34801561093557600080fd5b5061049e611c04565b34801561094a57600080fd5b50600454610911906001600160a01b031681565b34801561096a57600080fd5b506104f6611c0f565b34801561097f57600080fd5b5061049e60145481565b34801561099557600080fd5b5061049e6109a4366004615485565b611c1e565b6104d1611c2d565b3480156109bd57600080fd5b506104f66109cc366004615409565b611c45565b61043f6109df366004615485565b611d55565b3480156109f057600080fd5b5061049e6109ff366004615485565b612036565b348015610a1057600080fd5b506104d1610a1f36600461543b565b612062565b348015610a3057600080fd5b5061043f610a3f36600461558e565b612117565b6104d16121aa565b348015610a5857600080fd5b5061049e610a673660046157f2565b61232d565b348015610a7857600080fd5b506104d1610a8736600461543b565b6123a6565b348015610a9857600080fd5b506109117f000000000000000000000000000000000000000000000000000000000000000081565b348015610acc57600080fd5b5061043f610adb3660046157f2565b6123db565b348015610aec57600080fd5b5061049e61271081565b348015610b0257600080fd5b5061043f610b11366004615848565b612450565b348015610b2257600080fd5b5061043f6124f3565b61043f610b393660046152c6565b61261c565b348015610b4a57600080fd5b5061049e610b593660046158bb565b6001600160a01b039182166000908152603b6020908152604080832093909416825291909152205490565b348015610b9057600080fd5b5061043f610b9f3660046158e9565b61286a565b348015610bb057600080fd5b5061043f610bbf366004615485565b612924565b348015610bd057600080fd5b5061043f610bdf366004615919565b612987565b348015610bf057600080fd5b5061043f610bff36600461558e565b6129d0565b348015610c1057600080fd5b506006546104d19060ff1681565b348015610c2a57600080fd5b5061043f610c393660046157f2565b612a2a565b348015610c4a57600080fd5b5061049e610c59366004615485565b612ab7565b348015610c6a57600080fd5b506104f6610c79366004615936565b612ad8565b348015610c8a57600080fd5b5030610911565b348015610c9d57600080fd5b5061049e60175481565b603c546001600160a01b03163314610cca57601154610ccc57610cca6000611d55565b565b610cd46121aa565b50565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610d545760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff861660009081526001602052604081208054610d7290615987565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9e90615987565b8015610deb5780601f10610dc057610100808354040283529160200191610deb565b820191906000526020600020905b815481529060010190602001808311610dce57829003601f168201915b50505050509050805186869050148015610e06575060008151115b8015610e2e575080516020820120604051610e2490889088906159c2565b6040518091039020145b610ea05760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610d4b565b610f168787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a935091508890889081908401838280828437600092019190915250612ba292505050565b50505050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082161580610f9157507fffffffff0000000000000000000000000000000000000000000000000000000082167f36372b0700000000000000000000000000000000000000000000000000000000145b80610fa05750610fa082612c48565b92915050565b6060600d8054610fb590615987565b80601f0160208091040260200160405190810160405280929190818152602001828054610fe190615987565b801561102e5780601f106110035761010080835404028352916020019161102e565b820191906000526020600020905b81548152906001019060200180831161101157829003601f168201915b5050505050905090565b611040612cdf565b6040517f07e0db1700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b1580156110bf57600080fd5b505af11580156110d3573d6000803e3d6000fd5b5050505050565b6000336110e8818585612d39565b5060019392505050565b6110fa612cdf565b61ffff909116600090815260036020526040902055565b60008060145411801561113257503060009081526038602052604090205415155b156111aa57600061115a670de0b6b3a76400006111508560016159e8565b6014549190612e93565b9050600061119261116d85846001612e93565b8560145461117b91906159e8565b306000908152603860205260409020549190612e93565b9050601454816111a29190615a16565b949350505050565b50670de0b6b3a7640000919050565b919050565b6111c6612cdf565b6040517f10ddb13700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb137906024016110a5565b60003361123d858285612f43565b611248858585612ffb565b60019150505b9392505050565b6000806000808989896040516020016112719493929190615a63565b60408051601f19818403018152908290527f40a7bb1000000000000000000000000000000000000000000000000000000000825291506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb10906112f0908d90309086908c908c908c90600401615a92565b6040805180830381865afa15801561130c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113309190615ae6565b925092505097509795505050505050565b600c54610100900460ff166113815760405162461bcd60e51b81526020600482015260066024820152650a8aaa0be60760d31b6044820152606401610d4b565b600f543410156113d35760405162461bcd60e51b815260206004820152600660248201527f5455505f313000000000000000000000000000000000000000000000000000006044820152606401610d4b565b34601660008282546113e591906159e8565b9250508190555034601760008282546113fe91906159e8565b92505081905550346015600082825461141791906159e8565b909155506114259050613202565b600c805460ff19166001179055565b336000818152603b602090815260408083206001600160a01b03871684529091528120549091906110e8908290869061146e9087906159e8565b612d39565b61ffff83166000908152600160205260408120805482919061149490615987565b80601f01602080910402602001604051908101604052809291908181526020018280546114c090615987565b801561150d5780601f106114e25761010080835404028352916020019161150d565b820191906000526020600020905b8154815290600101906020018083116114f057829003601f168201915b5050505050905083836040516115249291906159c2565b60405180910390208180519060200120149150509392505050565b61154833611a68565b8111156115975760405162461bcd60e51b815260206004820152600660248201527f5455505f303700000000000000000000000000000000000000000000000000006044820152606401610d4b565b610cd43382613224565b6115a9612cdf565b6040517f42d65a8d0000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d9061161290869086908690600401615b0a565b600060405180830381600087803b15801561162c57600080fd5b505af1158015610f16573d6000803e3d6000fd5b6116ba898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528c93508b92508a918a908a908190840183828082843760009201919091525061339892505050565b505050505050505050565b600c5462010000900460ff16156117075760405162461bcd60e51b81526020600482015260066024820152655455505f303160d01b6044820152606401610d4b565b600c805462ff00001916620100001790819055610100900460ff16156117585760405162461bcd60e51b81526020600482015260066024820152650a8aaa0be60760d31b6044820152606401610d4b565b600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101001790556011548311156117d65760405162461bcd60e51b815260206004820152600660248201527f5455505f303900000000000000000000000000000000000000000000000000006044820152606401610d4b565b6017546117f160646127106117ea8761343f565b9190612e93565b600f556117fe338561344d565b600f546040517f3e2333460000000000000000000000000000000000000000000000000000000081523391633e2333469161184191889188908890600401615b28565b600060405180830381600087803b15801561185b57600080fd5b505af115801561186f573d6000803e3d6000fd5b50505050600f54816017546118849190615b52565b10156118d25760405162461bcd60e51b815260206004820152600660248201527f5455505f313000000000000000000000000000000000000000000000000000006044820152606401610d4b565b600c5460ff166119245760405162461bcd60e51b815260206004820152600660248201527f5455505f313100000000000000000000000000000000000000000000000000006044820152606401610d4b565b61192e3385613224565b5050600c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff1690555050565b601554600090611970906064612710612e93565b905090565b3330146119ea5760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d75737420626560448201527f204c7a41707000000000000000000000000000000000000000000000000000006064820152608401610d4b565b611a608686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061357192505050565b505050505050565b6000611a738261232d565b6001600160a01b038316600090815260386020526040902054610fa091906159e8565b611a9e612cdf565b610cca60006135d8565b60016020526000908152604090208054611ac190615987565b80601f0160208091040260200160405190810160405280929190818152602001828054611aed90615987565b8015611b3a5780601f10611b0f57610100808354040283529160200191611b3a565b820191906000526020600020905b815481529060010190602001808311611b1d57829003601f168201915b505050505081565b600080611b61611b5184611111565b8490670de0b6b3a7640000612e93565b90508015611b6f578061124e565b5090919050565b600080601454118015611b9757503060009081526038602052604090205415155b15611bfc576000611bdf611bc4611bbb670de0b6b3a764000061117b8760016159e8565b85906001612e93565b306000908152603860205260409020546111509086906159e8565b3060009081526038602052604090205490915061124e9082615a16565b506001919050565b600061197060115490565b6060600e8054610fb590615987565b600080611b61611b5184613640565b60003415611c4257611c3e34613768565b5060015b90565b61ffff8116600090815260016020526040812080546060929190611c6890615987565b80601f0160208091040260200160405190810160405280929190818152602001828054611c9490615987565b8015611ce15780601f10611cb657610100808354040283529160200191611ce1565b820191906000526020600020905b815481529060010190602001808311611cc457829003601f168201915b50505050509050805160001415611d3a5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f72640000006044820152606401610d4b565b61124e600060148351611d4d9190615b52565b8391906137a7565b600c5462010000900460ff1615611d975760405162461bcd60e51b81526020600482015260066024820152655455505f303160d01b6044820152606401610d4b565b600c805462ff0000191662010000179055326000908152603a6020526040902054431415611df05760405162461bcd60e51b81526020600482015260066024820152655455505f303160d01b6044820152606401610d4b565b326000908152603a602052604090819020439055603c5490517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015282916001600160a01b03169063dd62ed3e90604401602060405180830381865afa158015611e6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8e9190615b69565b1015611edc5760405162461bcd60e51b815260206004820152600660248201527f5455505f303200000000000000000000000000000000000000000000000000006044820152606401610d4b565b6000611ee782612036565b9050803410158015611ef95750600034115b611f455760405162461bcd60e51b815260206004820152600660248201527f5455505f303300000000000000000000000000000000000000000000000000006044820152606401610d4b565b3460156000828254611f5791906159e8565b9091555050811561200657603c546040517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015611fd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff69190615b82565b5061200160016138cf565b612010565b61201060006138cf565b6120263361202161086e84346159e8565b61344d565b5050600c805462ff000019169055565b6000811561205a57610fa061204a83613a32565b8390670de0b6b3a7640000612e93565b506000919050565b336000818152603b602090815260408083206001600160a01b0387168452909152812054909190838110156120ff5760405162461bcd60e51b815260206004820152602960248201527f4552433230205455503a2064656372656173656420616c6c6f77616e6365206260448201527f656c6f77207a65726f00000000000000000000000000000000000000000000006064820152608401610d4b565b61210c8286868403612d39565b506001949350505050565b61211f612cdf565b81813060405160200161213493929190615b9f565b60408051601f1981840301815291815261ffff851660009081526001602090815291902082516121699391929091019061514c565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce83838360405161219d93929190615b0a565b60405180910390a1505050565b600c5460009062010000900460ff16156121ef5760405162461bcd60e51b81526020600482015260066024820152655455505f303160d01b6044820152606401610d4b565b600c805462ff0000191662010000179055326000908152603a60205260409020544314156122485760405162461bcd60e51b81526020600482015260066024820152655455505f303160d01b6044820152606401610d4b565b326000908152603a60205260409020439055341561231e57600061226b34611b42565b306000908152603860205260409020549091508111156122cd5760405162461bcd60e51b815260206004820152600660248201527f5455505f303500000000000000000000000000000000000000000000000000006044820152606401610d4b565b60006122d882613bc0565b90506122ee30336122e98486615b52565b612ffb565b3060009081526038602052604090205481101561230f5761230f3082613224565b612317613202565b6001925050505b600c805462ff00001916905590565b60006001600160a01b03821630148015906123505750600c54610100900460ff16155b1561205a576001600160a01b038216600090815260396020526040902054601054610fa09161237e91615b52565b6001600160a01b03841660009081526038602052604090205490670de0b6b3a7640000612e93565b60006001600160a01b0383163014156123c7576123c282613bd0565b6123d2565b6123d2338484612ffb565b50600192915050565b6123e3612cdf565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b906020015b60405180910390a150565b612458612cdf565b6040517fcbed8b9c0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c906124c59088908890889088908890600401615bd8565b600060405180830381600087803b1580156124df57600080fd5b505af11580156116ba573d6000803e3d6000fd5b600c5462010000900460ff16156125355760405162461bcd60e51b81526020600482015260066024820152655455505f303160d01b6044820152606401610d4b565b600c805462ff0000191662010000179055326000908152603a602052604090205443141561258e5760405162461bcd60e51b81526020600482015260066024820152655455505f303160d01b6044820152606401610d4b565b326000908152603a602052604090204390556015541561260e5760006125b261195c565b905080601560008282546125c69190615b52565b909155506125d6905060006138cf565b604051339082156108fc029083906000818181858888f19350505050158015612603573d6000803e3d6000fd5b5061260c613202565b505b600c805462ff000019169055565b61ffff8616600090815260056020526040808220905161263f90889088906159c2565b908152604080516020928190038301902067ffffffffffffffff8716600090815292529020549050806126da5760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201527f61676500000000000000000000000000000000000000000000000000000000006064820152608401610d4b565b8083836040516126eb9291906159c2565b6040518091039020146127665760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f6160448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610d4b565b61ffff8716600090815260056020526040808220905161278990899089906159c2565b908152604080516020928190038301812067ffffffffffffffff8916600090815290845282902093909355601f88018290048202830182019052868252612822918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061357192505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051612859959493929190615c11565b60405180910390a150505050505050565b612872612cdf565b600081116128c25760405162461bcd60e51b815260206004820152601560248201527f4c7a4170703a20696e76616c6964206d696e47617300000000000000000000006044820152606401610d4b565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac09060600161219d565b326000908152603a602052604090205443141561296c5760405162461bcd60e51b81526020600482015260066024820152655455505f303160d01b6044820152606401610d4b565b326000908152603a60205260409020439055610cd481613bd0565b61298f612cdf565b6006805460ff19168215159081179091556040519081527f1584ad594a70cbe1e6515592e1272a987d922b097ead875069cebe8b40c004a490602001612445565b6129d8612cdf565b61ffff831660009081526001602052604090206129f69083836151cc565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab83838360405161219d93929190615b0a565b612a32612cdf565b6001600160a01b038116612aae5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610d4b565b610cd4816135d8565b600080612ac38361343f565b9050612ace81613bc0565b61124e9082615b52565b6040517ff5ecbdbc00000000000000000000000000000000000000000000000000000000815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa158015612b71573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b999190810190615c92565b95945050505050565b600080612c325a60966366ad5c8a60e01b89898989604051602401612bca9493929190615cc7565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915230929190613dee565b9150915081611a6057611a608686868685613e79565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f14e4ceea000000000000000000000000000000000000000000000000000000001480610fa057507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610fa0565b6000546001600160a01b03163314610cca5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d4b565b6001600160a01b038316612db55760405162461bcd60e51b815260206004820152602860248201527f4552433230205455503a20617070726f76652066726f6d20746865207a65726f60448201527f20616464726573730000000000000000000000000000000000000000000000006064820152608401610d4b565b6001600160a01b038216612e315760405162461bcd60e51b815260206004820152602660248201527f4552433230205455503a20617070726f766520746f20746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610d4b565b6001600160a01b038381166000818152603b602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600080806000198587098587029250828110838203039150508060001415612ece57838281612ec457612ec4615a00565b049250505061124e565b808411612eda57600080fd5b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6001600160a01b038381166000908152603b60209081526040808320938616835292905220546000198114612ff55781811015612fe85760405162461bcd60e51b815260206004820152602160248201527f4552433230205455503a20696e73756666696369656e7420616c6c6f77616e6360448201527f65000000000000000000000000000000000000000000000000000000000000006064820152608401610d4b565b612ff58484848403612d39565b50505050565b6001600160a01b0383166130775760405162461bcd60e51b815260206004820152602960248201527f4552433230205455503a207472616e736665722066726f6d20746865207a657260448201527f6f206164647265737300000000000000000000000000000000000000000000006064820152608401610d4b565b6001600160a01b0382166130f35760405162461bcd60e51b815260206004820152602760248201527f4552433230205455503a207472616e7366657220746f20746865207a65726f2060448201527f61646472657373000000000000000000000000000000000000000000000000006064820152608401610d4b565b6130fb613f17565b613106838383614176565b6001600160a01b038316600090815260386020526040902054818110156131955760405162461bcd60e51b815260206004820152602a60248201527f4552433230205455503a207472616e7366657220616d6f756e7420657863656560448201527f64732062616c616e6365000000000000000000000000000000000000000000006064820152608401610d4b565b6001600160a01b0380851660008181526038602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906131f59086815260200190565b60405180910390a3612ff5565b6015544711613212576000601455565b60155461321f9047615b52565b601455565b6001600160a01b0382166132a05760405162461bcd60e51b815260206004820152602560248201527f4552433230205455503a206275726e2066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610d4b565b6132ac82600083614176565b6001600160a01b0382166000908152603860205260409020548181101561333b5760405162461bcd60e51b815260206004820152602660248201527f4552433230205455503a206275726e20616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610d4b565b6001600160a01b03831660008181526038602090815260408083208686039055601180548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101612e86565b505050565b6133a6866000836000614188565b60006133b488888888614219565b905060008087836040516020016133cd93929190615d06565b60405160208183030381529060405290506133ec88828787873461424b565b886001600160a01b03168861ffff167f39a4c66499bcf4b56d79f0dde8ed7a9d4925a0df55825206b2b8531e202be0d0898560405161342c929190615d33565b60405180910390a3505050505050505050565b6000610fa061204a83611b76565b6001600160a01b0382166134c95760405162461bcd60e51b815260206004820152602360248201527f4552433230205455503a206d696e7420746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610d4b565b6134d560008383614176565b80601160008282546134e791906159e8565b90915550506001600160a01b038216301415613504576000613506565b805b6012600082825461351791906159e8565b90915550506001600160a01b0382166000818152603860209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b5050565b602081015161ffff81166135905761358b85858585614418565b6110d3565b60405162461bcd60e51b815260206004820152601c60248201527f4f4654436f72653a20756e6b6e6f776e207061636b65742074797065000000006044820152606401610d4b565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806014541180156136bd5750603c546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015613697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136bb9190615b69565b115b156111aa5760006136db670de0b6b3a76400006111508560016159e8565b905060006111926136ee85846001612e93565b856014546136fc91906159e8565b603c546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613744573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ea9190615b69565b8015610cd457806015600082825461378091906159e8565b92505081905550806016600082825461379991906159e8565b90915550610cd49050613202565b6060816137b581601f6159e8565b10156138035760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610d4b565b61380d82846159e8565b8451101561385d5760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610d4b565b60608215801561387c57604051915060008252602082016040526138c6565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156138b557805183526020928301920161389d565b5050858452601f01601f1916604052505b50949350505050565b60155415610cd457600060046015546138e89190615a16565b90508161399a5760105460006138fd83611b42565b9050613922670de0b6b3a7640000601254600161391a91906159e8565b839190612e93565b6010600082825461393391906159e8565b92505081905550600061395f8360105461394d9190615b52565b60125490670de0b6b3a7640000612e93565b9050806011600082825461397391906159e8565b92505081905550806012600082825461398c91906159e8565b909155506139a39350505050565b6139a3816144a2565b6139ac816147d1565b6040516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016908290600081818185875af1925050503d8060008114613a15576040519150601f19603f3d011682016040523d82523d6000602084013e613a1a565b606091505b5050600060155550613a2a613f17565b61356d613202565b600080601454118015613aaf5750603c546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015613a89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aad9190615b69565b115b15611bfc576000613b49613ad3611bbb670de0b6b3a76400006136fc8760016159e8565b603c546040516370a0823160e01b815230600482015286916001600160a01b0316906370a0823190602401602060405180830381865afa158015613b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b3f9190615b69565b61115091906159e8565b603c546040516370a0823160e01b81523060048201529192506001600160a01b0316906370a0823190602401602060405180830381865afa158015613b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bb69190615b69565b61124e9082615a16565b6000610fa0826064612710612e93565b600c5462010000900460ff1615613c125760405162461bcd60e51b81526020600482015260066024820152655455505f303160d01b6044820152606401610d4b565b600c805462ff00001916620100001790819055610100900460ff1615613c635760405162461bcd60e51b81526020600482015260066024820152650a8aaa0be60760d31b6044820152606401610d4b565b80613c6d33611a68565b1015613cbb5760405162461bcd60e51b815260206004820152600660248201527f5455505f303600000000000000000000000000000000000000000000000000006044820152606401610d4b565b6000613cc68261343f565b9050601454811115613d1a5760405162461bcd60e51b815260206004820152600660248201527f5455505f303500000000000000000000000000000000000000000000000000006044820152606401610d4b565b613d25333084612ffb565b6000613d3082613bc0565b9050336108fc613d408385615b52565b6040518115909202916000818181858888f19350505050158015613d68573d6000803e3d6000fd5b506000613d7482611b42565b9050600081118015613d9457503060009081526038602052604090205481105b15613da357613da33082613224565b8160156000828254613db591906159e8565b925050819055508160166000828254613dce91906159e8565b90915550613ddc9050613202565b5050600c805462ff0000191690555050565b6000606060008060008661ffff1667ffffffffffffffff811115613e1457613e146156e0565b6040519080825280601f01601f191660200182016040528015613e3e576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115613e60578692505b828152826000602083013e909890975095505050505050565b8180519060200120600560008761ffff1661ffff16815260200190815260200160002085604051613eaa9190615d55565b90815260408051918290036020908101832067ffffffffffffffff88166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90613f089087908790879087908790615d71565b60405180910390a15050505050565b600c54610100900460ff1615613f585760405162461bcd60e51b81526020600482015260066024820152650a8aaa0be60760d31b6044820152606401610d4b565b601454603c54604080517f96365d4400000000000000000000000000000000000000000000000000000000815290516000926001600160a01b0316916396365d449160048083019260209291908290030181865afa158015613fbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fe29190615b69565b603c546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015614030573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140549190615b69565b603c546040516370a0823160e01b81526001600160a01b0390911660048201819052919250600091906370a0823190602401602060405180830381865afa1580156140a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140c79190615b69565b90508315806140d4575082155b156140df5750505050565b60006140f483670de0b6b3a764000087612e93565b9050600061410b83670de0b6b3a764000087612e93565b9050801580614118575081155b1561412557505050505050565b81811115614155576101f4614141612710836117ea8682615b52565b106141505761414e6148c2565b505b611a60565b6101f4614169612710846117ea8582615b52565b10611a6057610f166148c2565b61417f83614e5e565b61339382614e5e565b60065460ff16156141a45761419f84848484614f00565b612ff5565b815115612ff55760405162461bcd60e51b815260206004820152602660248201527f4f4654436f72653a205f61646170746572506172616d73206d7573742062652060448201527f656d7074792e00000000000000000000000000000000000000000000000000006064820152608401610d4b565b6000336001600160a01b038616811461423757614237868285612f43565b6142418684613224565b5090949350505050565b61ffff86166000908152600160205260408120805461426990615987565b80601f016020809104026020016040519081016040528092919081815260200182805461429590615987565b80156142e25780601f106142b7576101008083540402835291602001916142e2565b820191906000526020600020905b8154815290600101906020018083116142c557829003601f168201915b505050505090508051600014156143615760405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201527f61207472757374656420736f75726365000000000000000000000000000000006064820152608401610d4b565b61436c878751614fdf565b6040517fc58031000000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c58031009084906143dd908b9086908c908c908c908c90600401615dd0565b6000604051808303818588803b1580156143f657600080fd5b505af115801561440a573d6000803e3d6000fd5b505050505050505050505050565b6000808280602001905181019061442f9190615e2a565b909350915060009050614442838261504d565b905061444f8782846150c3565b9150806001600160a01b03168761ffff167fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf8460405161449191815260200190565b60405180910390a350505050505050565b804710156144f25760405162461bcd60e51b815260206004820152600660248201527f5455505f303400000000000000000000000000000000000000000000000000006044820152606401610d4b565b603c546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561453b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061455f9190615b69565b9050603c60009054906101000a90046001600160a01b03166001600160a01b03166310e7b9f2836040518263ffffffff1660e01b815260040160206040518083038185885af1935050505080156145d3575060408051601f3d908101601f191682019092526145d091810190615b82565b60015b6145db575050565b50603c546040516370a0823160e01b815230600482015260009183916001600160a01b03909116906370a0823190602401602060405180830381865afa158015614629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061464d9190615b69565b6146579190615b52565b905060006146f1670de0b6b3a7640000603c60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156146ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146de9190615b69565b6146e9906002615e84565b849190612e93565b9050600061470b82670de0b6b3a76400006117ea30611a68565b905060008111801561472c5750306000908152603860205260409020548111155b1561473b5761473b3082613224565b603c546001600160a01b03166342966c68614757600286615a16565b6040518263ffffffff1660e01b815260040161477591815260200190565b600060405180830381600087803b15801561478f57600080fd5b505af19250505080156147a0575060015b6147a9576110d3565b6147b4600284615a16565b601860008282546147c591906159e8565b90915550505050505050565b60006147dc82611b42565b9050818114156148a457603d546000906001600160a01b031661480a5760006305f5e1006000806000614881565b603d60009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561485d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148819190615ebd565b5050509150506148a0816305f5e10084612e939092919063ffffffff16565b9150505b3060009081526038602052604090205461356d5761356d308261344d565b6000805b601f811015614e5a57603c546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015614918573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061493c9190615b69565b603c549091506000906149f0906001600160a01b0316638faefa42601986601f811061496a5761496a615f0d565b01546040518263ffffffff1660e01b815260040161498a91815260200190565b602060405180830381865afa1580156149a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149cb9190615b69565b670de0b6b3a7640000601986601f81106149e7576149e7615f0d565b01549190612e93565b90506000614a30614a14601986601f8110614a0d57614a0d615f0d565b0154613640565b670de0b6b3a7640000601987601f81106149e7576149e7615f0d565b603c546040517f0774c05900000000000000000000000000000000000000000000000000000000815260048101839052919250600091614abe916001600160a01b031690630774c05990602401602060405180830381865afa158015614a9a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204a9190615b69565b90506000614ade614ace85613a32565b8590670de0b6b3a7640000612e93565b9050614ae9826150d6565b9150614af4816150d6565b9050601986601f8110614b0957614b09615f0d565b015482118015614b1857508483105b15614bdd57603c546040517f6a089b710000000000000000000000000000000000000000000000000000000081526004810185905247916001600160a01b031690636a089b71906024016020604051808303816000875af1925050508015614b9d575060408051601f3d908101601f19168201909252614b9a91810190615b82565b60015b614ba657614bd7565b50476000614bb48383615b52565b9050614bbf81613768565b60138054906000614bcf83615f23565b919050555050505b50614e42565b601986601f8110614bf057614bf0615f0d565b015481118015614c155750601454601987601f8110614c1157614c11615f0d565b0154105b15614e4257603c546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015614c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c879190615b69565b603c549091506001600160a01b03166310e7b9f2601989601f8110614cae57614cae615f0d565b01546040518263ffffffff1660e01b815260040160206040518083038185885af193505050508015614cfd575060408051601f3d908101601f19168201909252614cfa91810190615b82565b60015b614d0657614e40565b50603c546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015614d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d749190615b69565b90506000614d828383615b52565b603c546040517f6a089b710000000000000000000000000000000000000000000000000000000081526004810183905291925047916001600160a01b0390911690636a089b71906024016020604051808303816000875af1158015614deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e0f9190615b82565b5047614e1b8282615b52565b9250614e2683613768565b60138054906000614e3683615f23565b9190505550505050505b505b50505050508080614e5290615f23565b9150506148c6565b5090565b6000614e698261232d565b90508015614ee0576001600160a01b03821660009081526038602052604081208054839290614e999084906159e8565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b506010546001600160a01b03909116600090815260396020526040902055565b6000614f0b836150f0565b61ffff808716600090815260026020908152604080832093891683529290529081205491925090614f3d9084906159e8565b905060008111614f8f5760405162461bcd60e51b815260206004820152601a60248201527f4c7a4170703a206d696e4761734c696d6974206e6f74207365740000000000006044820152606401610d4b565b80821015611a605760405162461bcd60e51b815260206004820152601b60248201527f4c7a4170703a20676173206c696d697420697320746f6f206c6f7700000000006044820152606401610d4b565b61ffff821660009081526003602052604090205480614ffd57506127105b808211156133935760405162461bcd60e51b815260206004820181905260248201527f4c7a4170703a207061796c6f61642073697a6520697320746f6f206c617267656044820152606401610d4b565b600061505a8260146159e8565b835110156150aa5760405162461bcd60e51b815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e647300000000000000000000006044820152606401610d4b565b5001602001516c01000000000000000000000000900490565b60006150cf838361344d565b5092915050565b60006150e6826064612710612e93565b610fa09083615b52565b60006022825110156151445760405162461bcd60e51b815260206004820152601c60248201527f4c7a4170703a20696e76616c69642061646170746572506172616d73000000006044820152606401610d4b565b506022015190565b82805461515890615987565b90600052602060002090601f01602090048101928261517a57600085556151c0565b82601f1061519357805160ff19168380011785556151c0565b828001600101855582156151c0579182015b828111156151c05782518255916020019190600101906151a5565b50614e5a929150615240565b8280546151d890615987565b90600052602060002090601f0160209004810192826151fa57600085556151c0565b82601f106152135782800160ff198235161785556151c0565b828001600101855582156151c0579182015b828111156151c0578235825591602001919060010190615225565b5b80821115614e5a5760008155600101615241565b61ffff81168114610cd457600080fd5b60008083601f84011261527757600080fd5b50813567ffffffffffffffff81111561528f57600080fd5b6020830191508360208285010111156152a757600080fd5b9250929050565b803567ffffffffffffffff811681146111b957600080fd5b600080600080600080608087890312156152df57600080fd5b86356152ea81615255565b9550602087013567ffffffffffffffff8082111561530757600080fd5b6153138a838b01615265565b909750955085915061532760408a016152ae565b9450606089013591508082111561533d57600080fd5b5061534a89828a01615265565b979a9699509497509295939492505050565b60006020828403121561536e57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461124e57600080fd5b60005b838110156153b95781810151838201526020016153a1565b83811115612ff55750506000910152565b600081518084526153e281602086016020860161539e565b601f01601f19169290920160200192915050565b60208152600061124e60208301846153ca565b60006020828403121561541b57600080fd5b813561124e81615255565b6001600160a01b0381168114610cd457600080fd5b6000806040838503121561544e57600080fd5b823561545981615426565b946020939093013593505050565b6000806040838503121561547a57600080fd5b823561545981615255565b60006020828403121561549757600080fd5b5035919050565b6000806000606084860312156154b357600080fd5b83356154be81615426565b925060208401356154ce81615426565b929592945050506040919091013590565b8015158114610cd457600080fd5b600080600080600080600060a0888a03121561550857600080fd5b873561551381615255565b9650602088013567ffffffffffffffff8082111561553057600080fd5b61553c8b838c01615265565b909850965060408a0135955060608a01359150615558826154df565b9093506080890135908082111561556e57600080fd5b5061557b8a828b01615265565b989b979a50959850939692959293505050565b6000806000604084860312156155a357600080fd5b83356155ae81615255565b9250602084013567ffffffffffffffff8111156155ca57600080fd5b6155d686828701615265565b9497909650939450505050565b600080600080600080600080600060e08a8c03121561560157600080fd5b893561560c81615426565b985060208a013561561c81615255565b975060408a013567ffffffffffffffff8082111561563957600080fd5b6156458d838e01615265565b909950975060608c0135965060808c0135915061566182615426565b90945060a08b01359061567382615426565b90935060c08b0135908082111561568957600080fd5b506156968c828d01615265565b915080935050809150509295985092959850929598565b6000806000604084860312156156c257600080fd5b83359250602084013567ffffffffffffffff8111156155ca57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561571f5761571f6156e0565b604052919050565b600067ffffffffffffffff821115615741576157416156e0565b50601f01601f191660200190565b60008060006060848603121561576457600080fd5b833561576f81615255565b9250602084013567ffffffffffffffff81111561578b57600080fd5b8401601f8101861361579c57600080fd5b80356157af6157aa82615727565b6156f6565b8181528760208385010111156157c457600080fd5b816020840160208301376000602083830101528094505050506157e9604085016152ae565b90509250925092565b60006020828403121561580457600080fd5b813561124e81615426565b6000806040838503121561582257600080fd5b823561582d81615255565b9150602083013561583d81615255565b809150509250929050565b60008060008060006080868803121561586057600080fd5b853561586b81615255565b9450602086013561587b81615255565b935060408601359250606086013567ffffffffffffffff81111561589e57600080fd5b6158aa88828901615265565b969995985093965092949392505050565b600080604083850312156158ce57600080fd5b82356158d981615426565b9150602083013561583d81615426565b6000806000606084860312156158fe57600080fd5b833561590981615255565b925060208401356154ce81615255565b60006020828403121561592b57600080fd5b813561124e816154df565b6000806000806080858703121561594c57600080fd5b843561595781615255565b9350602085013561596781615255565b9250604085013561597781615426565b9396929550929360600135925050565b600181811c9082168061599b57607f821691505b602082108114156159bc57634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156159fb576159fb6159d2565b500190565b634e487b7160e01b600052601260045260246000fd5b600082615a3357634e487b7160e01b600052601260045260246000fd5b500490565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b61ffff85168152606060208201526000615a81606083018587615a38565b905082604083015295945050505050565b61ffff871681526001600160a01b038616602082015260a060408201526000615abe60a08301876153ca565b85151560608401528281036080840152615ad9818587615a38565b9998505050505050505050565b60008060408385031215615af957600080fd5b505080516020909101519092909150565b61ffff84168152604060208201526000612b99604083018486615a38565b848152836020820152606060408201526000615b48606083018486615a38565b9695505050505050565b600082821015615b6457615b646159d2565b500390565b600060208284031215615b7b57600080fd5b5051919050565b600060208284031215615b9457600080fd5b815161124e816154df565b8284823760609190911b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169101908152601401919050565b600061ffff808816835280871660208401525084604083015260806060830152615c06608083018486615a38565b979650505050505050565b61ffff86168152608060208201526000615c2f608083018688615a38565b67ffffffffffffffff94909416604083015250606001529392505050565b600082601f830112615c5e57600080fd5b8151615c6c6157aa82615727565b818152846020838601011115615c8157600080fd5b6111a282602083016020870161539e565b600060208284031215615ca457600080fd5b815167ffffffffffffffff811115615cbb57600080fd5b6111a284828501615c4d565b61ffff85168152608060208201526000615ce460808301866153ca565b67ffffffffffffffff851660408401528281036060840152615c0681856153ca565b61ffff84168152606060208201526000615d2360608301856153ca565b9050826040830152949350505050565b604081526000615d4660408301856153ca565b90508260208301529392505050565b60008251615d6781846020870161539e565b9190910192915050565b61ffff8616815260a060208201526000615d8e60a08301876153ca565b67ffffffffffffffff861660408401528281036060840152615db081866153ca565b90508281036080840152615dc481856153ca565b98975050505050505050565b61ffff8716815260c060208201526000615ded60c08301886153ca565b8281036040840152615dff81886153ca565b6001600160a01b0387811660608601528616608085015283810360a08501529050615ad981856153ca565b600080600060608486031215615e3f57600080fd5b8351615e4a81615255565b602085015190935067ffffffffffffffff811115615e6757600080fd5b615e7386828701615c4d565b925050604084015190509250925092565b6000816000190483118215151615615e9e57615e9e6159d2565b500290565b805169ffffffffffffffffffff811681146111b957600080fd5b600080600080600060a08688031215615ed557600080fd5b615ede86615ea3565b9450602086015193506040860151925060608601519150615f0160808701615ea3565b90509295509295909350565b634e487b7160e01b600052603260045260246000fd5b6000600019821415615f3757615f376159d2565b506001019056fea264697066735822122097f432bb8f1e7d30f08252aff1412275648b540579dc5e0d3219bd4576aa405e64736f6c634300080a003300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000c2afdd8a3a19e5b102c01690773f3f8d040b4df1000000000000000000000000c22bb3200426c5856dd73c9f281922611c4a920a0000000000000000000000003c2269811836af69497e5f486a85d7316753cf6200000000000000000000000013e3ee699d1909e989722e753853ae30b17e08c5000000000000000000000000123e587f469fcb3c5992793d081be8d643fd78e1000000000000000000000000000000000000000000000000000000000000000a54696d652069732055700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035455500000000000000000000000000000000000000000000000000000000000