Skip to content

Instantly share code, notes, and snippets.

@gitpusha
Created December 26, 2019 17:20
Show Gist options
  • Save gitpusha/b8cc17c8cb083465af5952bf9716eeee to your computer and use it in GitHub Desktop.
Save gitpusha/b8cc17c8cb083465af5952bf9716eeee to your computer and use it in GitHub Desktop.
{
"contractName": "GelatoCore",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "executor",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "executionClaimId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "enum GelatoCoreEnums.CanExecuteCheck",
"name": "canExecuteResult",
"type": "uint8"
}
],
"name": "LogCanExecuteFailed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "executor",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "executionClaimId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "enum GelatoCoreEnums.ExecutionResult",
"name": "executionResult",
"type": "uint8"
},
{
"indexed": false,
"internalType": "uint256",
"name": "gasPriceUsed",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "executionCostEstimate",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "executorPayout",
"type": "uint256"
}
],
"name": "LogClaimExecutedAndDeleted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "contract IGelatoUserProxy",
"name": "userProxy",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "LogCreateUserProxy",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address payable",
"name": "executor",
"type": "address"
}
],
"name": "LogDeregisterExecutor",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "executionClaimId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "contract IGelatoUserProxy",
"name": "userProxy",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "cancelor",
"type": "address"
}
],
"name": "LogExecutionClaimCancelled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "selectedExecutor",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "executionClaimId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "contract IGelatoUserProxy",
"name": "userProxy",
"type": "address"
},
{
"indexed": false,
"internalType": "contract IGelatoTrigger",
"name": "trigger",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes",
"name": "triggerPayloadWithSelector",
"type": "bytes"
},
{
"indexed": false,
"internalType": "contract IGelatoAction",
"name": "action",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes",
"name": "actionPayloadWithSelector",
"type": "bytes"
},
{
"indexed": false,
"internalType": "uint256[3]",
"name": "triggerGasActionTotalGasMinExecutionGas",
"type": "uint256[3]"
},
{
"indexed": false,
"internalType": "uint256",
"name": "executionClaimExpiryDate",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "mintingDeposit",
"type": "uint256"
}
],
"name": "LogExecutionClaimMinted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address payable",
"name": "executor",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "executorPrice",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "executorClaimLifespan",
"type": "uint256"
}
],
"name": "LogRegisterExecutor",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "executorClaimLifespan",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newExecutorClaimLifespan",
"type": "uint256"
}
],
"name": "LogSetExecutorClaimLifespan",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "executorPrice",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newExecutorPrice",
"type": "uint256"
}
],
"name": "LogSetExecutorPrice",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "gelatoCoreExecGasOverhead",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_newGasOverhead",
"type": "uint256"
}
],
"name": "LogSetGelatoCoreExecGasOverhead",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "minExecutionClaimLifespan",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newMinExecutionClaimLifespan",
"type": "uint256"
}
],
"name": "LogSetMinExecutionClaimLifespan",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "userProxyExecGasOverhead",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_newGasOverhead",
"type": "uint256"
}
],
"name": "LogSetUserProxyExecGasOverhead",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "executor",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "withdrawAmount",
"type": "uint256"
}
],
"name": "LogWithdrawExecutorBalance",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_executionClaimId",
"type": "uint256"
},
{
"internalType": "contract IGelatoUserProxy",
"name": "_userProxy",
"type": "address"
},
{
"internalType": "contract IGelatoTrigger",
"name": "_trigger",
"type": "address"
},
{
"internalType": "bytes",
"name": "_triggerPayloadWithSelector",
"type": "bytes"
},
{
"internalType": "contract IGelatoAction",
"name": "_action",
"type": "address"
},
{
"internalType": "bytes",
"name": "_actionPayloadWithSelector",
"type": "bytes"
},
{
"internalType": "uint256[3]",
"name": "_triggerGasActionTotalGasMinExecutionGas",
"type": "uint256[3]"
},
{
"internalType": "uint256",
"name": "_actionConditionsOkGas",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_executionClaimExpiryDate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_mintingDeposit",
"type": "uint256"
}
],
"name": "canExecute",
"outputs": [
{
"internalType": "enum GelatoCoreEnums.CanExecuteCheck",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_selectedExecutor",
"type": "address"
},
{
"internalType": "uint256",
"name": "_executionClaimId",
"type": "uint256"
},
{
"internalType": "contract IGelatoUserProxy",
"name": "_userProxy",
"type": "address"
},
{
"internalType": "contract IGelatoTrigger",
"name": "_trigger",
"type": "address"
},
{
"internalType": "bytes",
"name": "_triggerPayloadWithSelector",
"type": "bytes"
},
{
"internalType": "contract IGelatoAction",
"name": "_action",
"type": "address"
},
{
"internalType": "bytes",
"name": "_actionPayloadWithSelector",
"type": "bytes"
},
{
"internalType": "uint256[3]",
"name": "_triggerGasActionTotalGasMinExecutionGas",
"type": "uint256[3]"
},
{
"internalType": "uint256",
"name": "_executionClaimExpiryDate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_mintingDeposit",
"type": "uint256"
}
],
"name": "cancelExecutionClaim",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "createGasTestUserProxy",
"outputs": [
{
"internalType": "address",
"name": "gasTestUserProxy",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "createUserProxy",
"outputs": [
{
"internalType": "contract IGelatoUserProxy",
"name": "userProxy",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "deregisterExecutor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_executionClaimId",
"type": "uint256"
},
{
"internalType": "contract IGelatoUserProxy",
"name": "_userProxy",
"type": "address"
},
{
"internalType": "contract IGelatoTrigger",
"name": "_trigger",
"type": "address"
},
{
"internalType": "bytes",
"name": "_triggerPayloadWithSelector",
"type": "bytes"
},
{
"internalType": "contract IGelatoAction",
"name": "_action",
"type": "address"
},
{
"internalType": "bytes",
"name": "_actionPayloadWithSelector",
"type": "bytes"
},
{
"internalType": "uint256[3]",
"name": "_triggerGasActionTotalGasMinExecutionGas",
"type": "uint256[3]"
},
{
"internalType": "uint256",
"name": "_executionClaimExpiryDate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_mintingDeposit",
"type": "uint256"
}
],
"name": "execute",
"outputs": [
{
"internalType": "enum GelatoCoreEnums.ExecutionResult",
"name": "executionResult",
"type": "uint8"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "executionClaimHash",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "executorBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "executorClaimLifespan",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "executorPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "gelatoCoreExecGasOverhead",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCurrentExecutionClaimId",
"outputs": [
{
"internalType": "uint256",
"name": "currentId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "getGasTestProxyOfUser",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_triggerGas",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_actionTotalGas",
"type": "uint256"
}
],
"name": "getMinExecutionGas",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_selectedExecutor",
"type": "address"
},
{
"internalType": "contract IGelatoTrigger",
"name": "_trigger",
"type": "address"
},
{
"internalType": "contract IGelatoAction",
"name": "_action",
"type": "address"
}
],
"name": "getMintingDepositPayable",
"outputs": [
{
"internalType": "uint256",
"name": "mintingDepositPayable",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "getProxyOfUser",
"outputs": [
{
"internalType": "contract IGelatoUserProxy",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getUserCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_gasTestProxy",
"type": "address"
}
],
"name": "getUserOfGasTestProxy",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IGelatoUserProxy",
"name": "_proxy",
"type": "address"
}
],
"name": "getUserOfProxy",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getUserProxies",
"outputs": [
{
"internalType": "contract IGelatoUserProxy[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_executionClaimId",
"type": "uint256"
}
],
"name": "getUserWithExecutionClaimId",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getUsers",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "isUser",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IGelatoUserProxy",
"name": "_userProxy",
"type": "address"
}
],
"name": "isUserProxy",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "minExecutionClaimLifespan",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_selectedExecutor",
"type": "address"
},
{
"internalType": "contract IGelatoTrigger",
"name": "_trigger",
"type": "address"
},
{
"internalType": "bytes",
"name": "_triggerPayloadWithSelector",
"type": "bytes"
},
{
"internalType": "contract IGelatoAction",
"name": "_action",
"type": "address"
},
{
"internalType": "bytes",
"name": "_actionPayloadWithSelector",
"type": "bytes"
}
],
"name": "mintExecutionClaim",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_executorPrice",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_executorClaimLifespan",
"type": "uint256"
}
],
"name": "registerExecutor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IGelatoAction",
"name": "_action",
"type": "address"
},
{
"internalType": "bytes",
"name": "_actionPayloadWithSelector",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "_actionConditionsOkGas",
"type": "uint256"
}
],
"name": "revertLogGasActionConditionsCheck",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IGelatoUserProxy",
"name": "_gasTestUserProxy",
"type": "address"
},
{
"internalType": "contract IGelatoAction",
"name": "_action",
"type": "address"
},
{
"internalType": "bytes",
"name": "_actionPayloadWithSelector",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "_actionGas",
"type": "uint256"
}
],
"name": "revertLogGasActionViaGasTestUserProxy",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_executionClaimId",
"type": "uint256"
},
{
"internalType": "contract IGelatoUserProxy",
"name": "_userProxy",
"type": "address"
},
{
"internalType": "contract IGelatoTrigger",
"name": "_trigger",
"type": "address"
},
{
"internalType": "bytes",
"name": "_triggerPayloadWithSelector",
"type": "bytes"
},
{
"internalType": "contract IGelatoAction",
"name": "_action",
"type": "address"
},
{
"internalType": "bytes",
"name": "_actionPayloadWithSelector",
"type": "bytes"
},
{
"internalType": "uint256[3]",
"name": "_triggerGasActionTotalGasMinExecutionGas",
"type": "uint256[3]"
},
{
"internalType": "uint256",
"name": "_actionConditionsOkGas",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_executionClaimExpiryDate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_mintingDeposit",
"type": "uint256"
}
],
"name": "revertLogGasCanExecute",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_executionClaimId",
"type": "uint256"
},
{
"internalType": "contract IGelatoUserProxy",
"name": "_userProxy",
"type": "address"
},
{
"internalType": "contract IGelatoTrigger",
"name": "_trigger",
"type": "address"
},
{
"internalType": "bytes",
"name": "_triggerPayloadWithSelector",
"type": "bytes"
},
{
"internalType": "contract IGelatoAction",
"name": "_action",
"type": "address"
},
{
"internalType": "bytes",
"name": "_actionPayloadWithSelector",
"type": "bytes"
},
{
"internalType": "uint256[3]",
"name": "_triggerGasActionTotalGasMinExecutionGas",
"type": "uint256[3]"
},
{
"internalType": "uint256",
"name": "_executionClaimExpiryDate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_mintingDeposit",
"type": "uint256"
}
],
"name": "revertLogGasExecute",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IGelatoUserProxy",
"name": "_userProxy",
"type": "address"
},
{
"internalType": "contract IGelatoAction",
"name": "_action",
"type": "address"
},
{
"internalType": "bytes",
"name": "_actionPayloadWithSelector",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "_actionGas",
"type": "uint256"
}
],
"name": "revertLogGasTestUserProxyExecute",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IGelatoTrigger",
"name": "_trigger",
"type": "address"
},
{
"internalType": "bytes",
"name": "_triggerPayloadWithSelector",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "_triggerGas",
"type": "uint256"
}
],
"name": "revertLogGasTriggerCheck",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_newExecutorClaimLifespan",
"type": "uint256"
}
],
"name": "setExecutorClaimLifespan",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_newExecutorGasPrice",
"type": "uint256"
}
],
"name": "setExecutorPrice",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "totalExecutionGasOverhead",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "userProxyExecGasOverhead",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "userProxyWithExecutionClaimId",
"outputs": [
{
"internalType": "contract IGelatoUserProxy",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "withdrawExecutorBalance",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b5061487b806100206000396000f3fe608060405260043610620002655760003560e01c8063520aaf74116200014b578063909f7e7e11620000bb578063b5cb15f71162000079578063b5cb15f71462000fc2578063c73dc4561462000fda578063d09ce6e81462001011578063e5dafffd1462001029578063f8df382414620010575762000265565b8063909f7e7e1462000d285780639c2b58aa1462000e4a5780639c8d29561462000e62578063a77cf45b1462000f73578063af90f9111462000faa5762000265565b806372d73efe116200010957806372d73efe1462000c7f57806373fac6131462000c9757806375e49e8f1462000caf578063776a8d611462000cc75780637e5fbb6a1462000d105762000265565b8063520aaf741462000b4f578063632d53551462000bea57806364f18eda1462000c21578063674af9d61462000c395780636ee7fbec1462000c515762000265565b80633219ce3211620001e75780633c5bacf211620001a55780633c5bacf2146200088c5780634209fff114620008ba57806343dc203914620008f157806348d3474d146200098357806349a090321462000ab45762000265565b80633219ce32146200064c57806332a4d78c146200068357806333ec0de814620006ba57806334f8826e14620007cc5780633be68330146200085e5762000265565b80630f9540f211620002355780630f9540f21462000474578063131901ce14620004aa57806317a7ce3d14620004d85780631cb0f8dc14620005c55780632d32310614620005f95762000265565b8062ce8e3e146200026a5780630124181814620002d4578063083d32f314620003f25780630d546786146200043d575b600080fd5b3480156200027757600080fd5b50620002826200106f565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620002c0578181015183820152602001620002a6565b505050509050019250505060405180910390f35b348015620002e157600080fd5b50620003e06004803603610160811015620002fb57600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b8111156200033657600080fd5b8201836020820111156200034957600080fd5b803590602001918460018302840111600160201b831117156200036b57600080fd5b919390926001600160a01b0383351692604081019060200135600160201b8111156200039657600080fd5b820183602082011115620003a957600080fd5b803590602001918460018302840111600160201b83111715620003cb57600080fd5b919350915060608101356080820135620010d3565b60408051918252519081900360200190f35b348015620003ff57600080fd5b5062000429600480360360208110156200041857600080fd5b50356001600160a01b031662001286565b604080519115158252519081900360200190f35b3480156200044a57600080fd5b50620003e0600480360360208110156200046357600080fd5b50356001600160a01b031662001299565b3480156200048157600080fd5b50620004a8600480360360408110156200049a57600080fd5b5080359060200135620012ab565b005b348015620004b757600080fd5b50620004a860048036036020811015620004d057600080fd5b50356200134a565b620004a8600480360360a0811015620004f057600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b8111156200052457600080fd5b8201836020820111156200053757600080fd5b803590602001918460018302840111600160201b831117156200055957600080fd5b919390926001600160a01b0383351692604081019060200135600160201b8111156200058457600080fd5b8201836020820111156200059757600080fd5b803590602001918460018302840111600160201b83111715620005b957600080fd5b509092509050620013eb565b348015620005d257600080fd5b50620003e060048036036040811015620005eb57600080fd5b5080359060200135620018e8565b3480156200060657600080fd5b5062000630600480360360208110156200061f57600080fd5b50356001600160a01b0316620018fd565b604080516001600160a01b039092168252519081900360200190f35b3480156200065957600080fd5b50620003e0600480360360208110156200067257600080fd5b50356001600160a01b03166200191b565b3480156200069057600080fd5b506200063060048036036020811015620006a957600080fd5b50356001600160a01b03166200192d565b348015620006c757600080fd5b50620004a86004803603610180811015620006e157600080fd5b6001600160a01b0382358116926020810135926040820135831692606083013516919081019060a081016080820135600160201b8111156200072257600080fd5b8201836020820111156200073557600080fd5b803590602001918460018302840111600160201b831117156200075757600080fd5b919390926001600160a01b0383351692604081019060200135600160201b8111156200078257600080fd5b8201836020820111156200079557600080fd5b803590602001918460018302840111600160201b83111715620007b757600080fd5b9193509150606081013560808201356200194b565b348015620007d957600080fd5b50620003e060048036036060811015620007f257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156200081d57600080fd5b8201836020820111156200083057600080fd5b803590602001918460018302840111600160201b831117156200085257600080fd5b91935091503562001b47565b3480156200086b57600080fd5b50620003e0600480360360208110156200088457600080fd5b503562001c4f565b3480156200089957600080fd5b506200063060048036036020811015620008b257600080fd5b503562001c61565b348015620008c757600080fd5b506200042960048036036020811015620008e057600080fd5b50356001600160a01b031662001c8d565b348015620008fe57600080fd5b50620003e0600480360360608110156200091757600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156200094257600080fd5b8201836020820111156200095557600080fd5b803590602001918460018302840111600160201b831117156200097757600080fd5b91935091503562001c9a565b3480156200099057600080fd5b5062000a8f6004803603610160811015620009aa57600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b811115620009e557600080fd5b820183602082011115620009f857600080fd5b803590602001918460018302840111600160201b8311171562000a1a57600080fd5b919390926001600160a01b0383351692604081019060200135600160201b81111562000a4557600080fd5b82018360208201111562000a5857600080fd5b803590602001918460018302840111600160201b8311171562000a7a57600080fd5b91935091506060810135608082013562001da2565b6040518082600281111562000aa057fe5b60ff16815260200191505060405180910390f35b34801562000ac157600080fd5b50620003e06004803603608081101562000ada57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111562000b0e57600080fd5b82018360208201111562000b2157600080fd5b803590602001918460018302840111600160201b8311171562000b4357600080fd5b91935091503562001e56565b34801562000b5c57600080fd5b50620003e06004803603608081101562000b7557600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111562000ba957600080fd5b82018360208201111562000bbc57600080fd5b803590602001918460018302840111600160201b8311171562000bde57600080fd5b91935091503562001ef1565b34801562000bf757600080fd5b50620006306004803603602081101562000c1057600080fd5b50356001600160a01b031662002035565b34801562000c2e57600080fd5b506200028262002053565b34801562000c4657600080fd5b5062000630620020b5565b34801562000c5e57600080fd5b50620004a86004803603602081101562000c7757600080fd5b5035620021dc565b34801562000c8c57600080fd5b50620004a86200223a565b34801562000ca457600080fd5b50620003e0620022cf565b34801562000cbc57600080fd5b5062000630620022d5565b34801562000cd457600080fd5b50620003e06004803603606081101562000ced57600080fd5b506001600160a01b0381358116916020810135821691604090910135166200235c565b34801562000d1d57600080fd5b50620004a8620024de565b34801562000d3557600080fd5b5062000e39600480360361018081101562000d4f57600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111562000d8a57600080fd5b82018360208201111562000d9d57600080fd5b803590602001918460018302840111600160201b8311171562000dbf57600080fd5b919390926001600160a01b0383351692604081019060200135600160201b81111562000dea57600080fd5b82018360208201111562000dfd57600080fd5b803590602001918460018302840111600160201b8311171562000e1f57600080fd5b91935091506060810135608082013560a083013562002587565b6040518082600781111562000aa057fe5b34801562000e5757600080fd5b50620003e06200264d565b34801562000e6f57600080fd5b50620003e0600480360361018081101562000e8957600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111562000ec457600080fd5b82018360208201111562000ed757600080fd5b803590602001918460018302840111600160201b8311171562000ef957600080fd5b919390926001600160a01b0383351692604081019060200135600160201b81111562000f2457600080fd5b82018360208201111562000f3757600080fd5b803590602001918460018302840111600160201b8311171562000f5957600080fd5b91935091506060810135608082013560a083013562002660565b34801562000f8057600080fd5b50620003e06004803603602081101562000f9957600080fd5b50356001600160a01b0316620027ea565b34801562000fb757600080fd5b50620003e0620027fc565b34801562000fcf57600080fd5b50620003e062002803565b34801562000fe757600080fd5b5062000630600480360360208110156200100057600080fd5b50356001600160a01b031662002809565b3480156200101e57600080fd5b50620003e062002827565b3480156200103657600080fd5b5062000630600480360360208110156200104f57600080fd5b50356200282d565b3480156200106457600080fd5b50620003e062002848565b60606005805480602002602001604051908101604052809291908181526020018280548015620010c957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311620010aa575b5050505050905090565b6000805a905060006200118d8e8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051606081810190925292508f915060039083908390808284376000920191909152508e91508d90506200284f565b905060008160028111156200119e57fe5b14156200124e575a82036040516020018082815260200191505060405160208183030381529060405260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562001212578181015183820152602001620011f8565b50505050905090810190601f168015620012405780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60405162461bcd60e51b8152600401808060200182810382526054815260200180620045226054913960600191505060405180910390fd5b6000620012938262002b2c565b92915050565b60096020526000908152604090205481565b610258811015620012ee5760405162461bcd60e51b8152600401808060200182810382526049815260200180620045766049913960600191505060405180910390fd5b3360008181526007602090815260408083208690556008825291829020849055815185815290810184905281517fb198994461d208ab2cbe182236455d7f8fb00cd2d4567a93125016b794749b7f929181900390910190a25050565b6102588110156200138d5760405162461bcd60e51b8152600401808060200182810382526035815260200180620044ed6035913960400191505060405180910390fd5b3360009081526008602090815260409182902054825190815290810183905281517f7ff36aa2c2a9f1d19c957bc7b6a99ec3d977ed728d76bd6bf33611953f678328929181900390910190a133600090815260086020526040902055565b6001600160a01b0387166000908152600860205260409020548790620014435760405162461bcd60e51b8152600401808060200182810382526034815260200180620045bf6034913960400191505060405180910390fd5b6000620014503362002b4c565b15620014765750336000908152600360205260409020546001600160a01b0316620014c7565b620014813362002b2c565b156200148f575033620014c7565b60405162461bcd60e51b81526004018080602001828103825260388152602001806200434b6038913960400191505060405180910390fd5b620014d16200351b565b6000896001600160a01b031663cda8a1866040518163ffffffff1660e01b815260040160206040518083038186803b1580156200150d57600080fd5b505afa15801562001522573d6000803e3d6000fd5b505050506040513d60208110156200153957600080fd5b50519050806200157b5760405162461bcd60e51b815260040180806020018281038252602b81526020018062004614602b913960400191505060405180910390fd5b808260006020020181815250506000876001600160a01b0316638acd9bba6040518163ffffffff1660e01b815260040160206040518083038186803b158015620015c457600080fd5b505afa158015620015d9573d6000803e3d6000fd5b505050506040513d6020811015620015f057600080fd5b5051905080620016325760405162461bcd60e51b815260040180806020018281038252602f815260200180620046e1602f913960400191505060405180910390fd5b60208301819052600062001647838362002b6c565b60408086018290526001600160a01b038f166000908152600760205220549091506200167590829062002b95565b3414620016b45760405162461bcd60e51b815260040180806020018281038252602f815260200180620043b7602f913960400191505060405180910390fd5b505050620016c3600a62002bf3565b6000620016d1600a62002bfc565b6000818152600b6020908152604080832080546001600160a01b0319166001600160a01b03898116919091179091558f1683526008909152812054919250906200171d90429062002c00565b9050620017af8c83868e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d92508b915034905062002c5b565b600c600084815260200190815260200160002081905550836001600160a01b0316828d6001600160a01b03167f62e47cf114a8dabfdf0d3171b5a99cb0708069114ef4169fbd7d05a541ded9ef8e8e8e8e8e8e8c8b34604051808a6001600160a01b03166001600160a01b0316815260200180602001886001600160a01b03166001600160a01b031681526020018060200186600360200280838360005b83811015620018675781810151838201526020016200184d565b5050505090500185815260200184815260200183810383528b8b82818152602001925080828437600083820152601f01601f191690910184810383528881526020019050888880828437600083820152604051601f909101601f19169092018290039d50909b505050505050505050505050a4505050505050505050505050565b6000620018f6838362002b6c565b9392505050565b6001600160a01b039081166000908152602081905260409020541690565b60086020526000908152604090205481565b6001600160a01b039081166000908152600460205260409020541690565b6001600160a01b038a8116600090815260046020526040902054163314620019c357428211158015620019865750336001600160a01b038d16145b620019c35760405162461bcd60e51b81526004018080602001828103825260438152602001806200469e6043913960600191505060405180910390fd5b600062001a788d8d8d8d8d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508c8c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051606081810190925292508e915060039083908390808284376000920191909152508d91508c905062002c5b565b60008d8152600c6020526040902054909150811462001ac95760405162461bcd60e51b8152600401808060200182810382526034815260200180620043836034913960400191505060405180910390fd5b60008c8152600b6020908152604080832080546001600160a01b0319169055600c9091528082208290555133916001600160a01b038e16918f917fc4110e36d38762898526757f75e37160df4a26731953ca5fad1f103e6585bf7991a462001b38338363ffffffff62002dea16565b50505050505050505050505050565b6000805a9050600062001b938787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525089925062002ed9915050565b9050600281600281111562001ba457fe5b141562001c17575a82036040516020018082815260200191505060405160208183030381529060405260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360008381101562001212578181015183820152602001620011f8565b60405162461bcd60e51b8152600401808060200182810382526070815260200180620047446070913960800191505060405180910390fd5b600c6020526000908152604090205481565b6000908152600b60209081526040808320546001600160a01b0390811684526004909252909120541690565b6000620012938262002b4c565b6000805a9050600062001ce68787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525089925062003090915050565b9050600281600281111562001cf757fe5b141562001d6a575a82036040516020018082815260200191505060405160208183030381529060405260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360008381101562001212578181015183820152602001620011f8565b60405162461bcd60e51b81526004018080602001828103825260618152602001806200448c6061913960800191505060405180910390fd5b600062001e468c8c8c8c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d81528f935091508d908d90819084018382808284376000920191909152505060408051606081810190925292508d915060039083908390808284376000920191909152508c91508b90506200284f565b9c9b505050505050505050505050565b60008562001e64816200318d565b62001ea15760405162461bcd60e51b815260040180806020018281038252602c815260200180620047b4602c913960400191505060405180910390fd5b62001ee6878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250620031ad915050565b505095945050505050565b60008562001eff8162002b2c565b62001f3c5760405162461bcd60e51b8152600401808060200182810382526040815260200180620044126040913960400191505060405180910390fd5b60005a9050600062001f88898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250620031ad915050565b9050801562001ffd575a82036040516020018082815260200191505060405160208183030381529060405260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360008381101562001212578181015183820152602001620011f8565b60405162461bcd60e51b8152600401808060200182810382526066815260200180620047e06066913960800191505060405180910390fd5b6001600160a01b039081166000908152600160205260409020541690565b60606006805480602002602001604051908101604052809291908181526020018280548015620010c9576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311620010aa575050505050905090565b600033604051620020c69062003539565b6001600160a01b03909116815260405190819003602001906000f080158015620020f4573d6000803e3d6000fd5b5033600081815260036020908152604080832080546001600160a01b0387166001600160a01b03199182168117909255818552600490935281842080548416861790556005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180548516871790556006805480830182559086527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180549094168217909355600280549093019092555193945091927f9f84d6dc5ca460a21e2ab3e42ce80c16a33218a6e792073740615283e67b946f9190a390565b3360009081526007602090815260409182902054825190815290810183905281517f44613ad427a1cce7d511656219c18158781de4cb995be11deb6b6791b6ce1364929181900390910190a133600090815260076020526040902055565b33600081815260086020526040902054620022875760405162461bcd60e51b8152600401808060200182810382526034815260200180620045bf6034913960400191505060405180910390fd5b3360008181526007602090815260408083208390556008909152808220829055517fc1ae083d76d9b532f1008bfe595a2463736e5db483086b0d2b61537c698d8aea9190a250565b61025881565b600033604051620022e69062003547565b6001600160a01b03909116815260405190819003602001906000f08015801562002314573d6000803e3d6000fd5b503360008181526020818152604080832080546001600160a01b0387166001600160a01b03199182168117909255908452600190925290912080549091169091179055919050565b6001600160a01b0383166000908152600860205260408120548490620023b45760405162461bcd60e51b8152600401808060200182810382526034815260200180620045bf6034913960400191505060405180910390fd5b6000846001600160a01b031663cda8a1866040518163ffffffff1660e01b815260040160206040518083038186803b158015620023f057600080fd5b505afa15801562002405573d6000803e3d6000fd5b505050506040513d60208110156200241c57600080fd5b505160408051634566cddd60e11b815290519192506000916001600160a01b03871691638acd9bba916004808301926020929190829003018186803b1580156200246557600080fd5b505afa1580156200247a573d6000803e3d6000fd5b505050506040513d60208110156200249157600080fd5b505190506000620024a3838362002b6c565b6001600160a01b038916600090815260076020526040902054909150620024d290829063ffffffff62002b9516565b98975050505050505050565b33600090815260096020526040902054806200252c5760405162461bcd60e51b8152600401808060200182810382526034815260200180620047106034913960400191505060405180910390fd5b336000818152600960205260408120556200254e908263ffffffff62002dea16565b60408051828152905133917f3a8e6636082b3dfa82a94284a416e78681d034ce3d0b461ede5ceda807dac66c919081900360200190a250565b60006200263c8d8d8d8d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508c8c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051606081810190925292508e915060039083908390808284376000920191909152508d91508c90508b62003330565b9d9c50505050505050505050505050565b60006200265b600a62002bfc565b905090565b6000805a905060006200272e8f8f8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d60038060200260405190810160405280929190826003602002808284376000920191909152508f91508e90508d62003330565b905060078160078111156200273f57fe5b1415620027b2575a82036040516020018082815260200191505060405160208183030381529060405260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360008381101562001212578181015183820152602001620011f8565b60405162461bcd60e51b815260040180806020018281038252605f8152602001806200463f605f913960600191505060405180910390fd5b60076020526000908152604090205481565b620222e081565b60025490565b6001600160a01b039081166000908152600360205260409020541690565b619c4081565b600b602052600090815260409020546001600160a01b031681565b620186a081565b6000805a60408601519091508110156200289b5760405162461bcd60e51b815260040180806020018281038252602a81526020018062004321602a913960400191505060405180910390fd5b6000876001600160a01b031663549c5a1d6040518163ffffffff1660e01b815260040160206040518083038186803b158015620028d757600080fd5b505afa158015620028ec573d6000803e3d6000fd5b505050506040513d60208110156200290357600080fd5b50519050806200295a576040805162461bcd60e51b815260206004820181905260248201527f47656c61746f436f72652e5f657865637574653a203020616374696f6e476173604482015290519081900360640190fd5b60208601516000906200296e908362003480565b905080620029ae5760405162461bcd60e51b815260040180806020018281038252602c815260200180620043e6602c913960400191505060405180910390fd5b6000620029c48e8e8e8e8e8e8e898f8f62003330565b90506007816007811115620029d557fe5b1462002a2357806007811115620029e857fe5b6040518f9033907f67f5a49788579f3c87b420d30eb1d9337b519f37ad4d960c82b68d1779ef32b190600090a4600294505050505062002b1f565b60008e8152600c60209081526040808320839055600b909152812080546001600160a01b031916905562002a5a8e8c8c87620031ad565b9050801562002a6d576000955062002a72565b600195505b3360009081526009602052604090205462002a94908863ffffffff62002c0016565b3360009081526009602052604090205585600281111562002ab157fe5b8f337f0c671667d54ca130356ac6a5d482433053ed1c32dd03a7dcc74ad8433e1e46763a62002afa8162002aed8c5a9063ffffffff6200348016565b9063ffffffff62002b9516565b6040805192835260208301919091528181018d9052519081900360600190a450505050505b9998505050505050505050565b6001600160a01b0390811660009081526004602052604090205416151590565b6001600160a01b0390811660009081526003602052604090205416151590565b6000620018f68262002b88620222e08663ffffffff62002c0016565b9063ffffffff62002c0016565b60008262002ba65750600062001293565b8282028284828162002bb457fe5b0414620018f65760405162461bcd60e51b8152600401808060200182810382526021815260200180620045f36021913960400191505060405180910390fd5b80546001019055565b5490565b600082820183811015620018f6576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008a8a8a8a8a8a8a8a8a8a604051602001808b6001600160a01b03166001600160a01b031660601b81526014018a8152602001896001600160a01b03166001600160a01b031660601b8152601401886001600160a01b03166001600160a01b031660601b815260140187805190602001908083835b6020831062002cf25780518252601f19909201916020918201910162002cd1565b6001836020036101000a038019825116818451168082178552505050505050905001866001600160a01b03166001600160a01b031660601b815260140185805190602001908083835b6020831062002d5c5780518252601f19909201916020918201910162002d3b565b6001836020036101000a03801982511681845116808217855250505050505090500184600360200280838360005b8381101562002da457818101518382015260200162002d8a565b505050509050018381526020018281526020019a50505050505050505050506040516020818303038152906040528051906020012090505b9a9950505050505050505050565b8047101562002e40576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d806000811462002e8d576040519150601f19603f3d011682016040523d82523d6000602084013e62002e92565b606091505b505090508062002ed45760405162461bcd60e51b815260040180806020018281038252603a81526020018062004452603a913960400191505060405180910390fd5b505050565b6040516020602482018181528451604484015284516000936060936367fd236f60e01b93889390928392606490910191908501908083838b5b8381101562002f2c57818101518382015260200162002f12565b50505050905090810190601f16801562002f5a5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909716969096178652518151919650600095606095506001600160a01b038c16945089935087928291908083835b6020831062002fd25780518252601f19909201916020918201910162002fb1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303818686fa925050503d806000811462003035576040519150601f19603f3d011682016040523d82523d6000602084013e6200303a565b606091505b509150915081620030525760009350505050620018f6565b60008180602001905160208110156200306a57600080fd5b505190508062003082576001945050505050620018f6565b506002979650505050505050565b6000806060856001600160a01b031684866040518082805190602001908083835b60208310620030d25780518252601f199092019160209182019101620030b1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303818686fa925050503d806000811462003135576040519150601f19603f3d011682016040523d82523d6000602084013e6200313a565b606091505b5091509150816200315157600092505050620018f6565b60008180602001905160208110156200316957600080fd5b5051905080620031805760019350505050620018f6565b60029350505050620018f6565b6001600160a01b0390811660009081526001602052604090205416151590565b6040516001600160a01b03841660248201908152606482018390526060604483018181528551608485015285516000949293630c3e518360e41b938993899389939260a4019060208601908083838d5b8381101562003217578181015183820152602001620031fd565b50505050905090810190601f168015620032455780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199099169890981788525181519198506001600160a01b038e1697899750909550859450925090508083835b60208310620032ba5780518252601f19909201916020918201910162003299565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146200331e576040519150601f19603f3d011682016040523d82523d6000602084013e62003323565b606091505b5090979650505050505050565b60008062003347338d8d8d8d8d8d8d8c8c62002c5b565b60008d8152600c602052604090205490915081146200336b57600091505062002ddc565b60008c8152600b60205260409020546001600160a01b03166200339357600191505062002ddc565b42841015620033a757600291505062002ddc565b6000620033bc8b8b8984602002015162003090565b905060006002826002811115620033cf57fe5b1415620033df575060016200340f565b6001826002811115620033ee57fe5b141562003402576003935050505062002ddc565b6004935050505062002ddc565b60006200341e8b8b8a62002ed9565b90508180156200343a575060028160028111156200343857fe5b145b156200344e57600794505050505062002ddc565b60018160028111156200345d57fe5b14156200347257600594505050505062002ddc565b600694505050505062002ddc565b6000620018f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060008184841115620035135760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831562001212578181015183820152602001620011f8565b505050900390565b60405180606001604052806003906020820280388339509192915050565b61068c806200355683390190565b61073f8062003be28339019056fe608060405234801561001057600080fd5b5060405161068c38038061068c8339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601d60248201527f47656c61746f5573657250726f78792e6e6f5a65726f41646472657373000000604482015290519081900360640190fd5b50600080546001600160a01b039092166001600160a01b031992831617905560018054909116331790556105c2806100ca6000396000f3fe60806040526004361061003f5760003560e01c80631b08e2b114610044578063832880e714610075578063bca8c7b51461008a578063c3e518301461018d575b600080fd5b34801561005057600080fd5b5061005961020d565b604080516001600160a01b039092168252519081900360200190f35b34801561008157600080fd5b5061005961021c565b61010a600480360360408110156100a057600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100cb57600080fd5b8201836020820111156100dd57600080fd5b803590602001918460018302840111640100000000831117156100ff57600080fd5b50909250905061022b565b604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610151578181015183820152602001610139565b50505050905090810190601f16801561017e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61010a600480360360608110156101a357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156101ce57600080fd5b8201836020820111156101e057600080fd5b8035906020019184600183028401116401000000008311171561020257600080fd5b919350915035610396565b6001546001600160a01b031690565b6000546001600160a01b031690565b600080546060906001600160a01b0316331461028e576040805162461bcd60e51b815260206004820181905260248201527f47656c61746f5573657250726f78792e6f6e6c79557365723a206661696c6564604482015290519081900360640190fd5b846001600160a01b0381166102ea576040805162461bcd60e51b815260206004820152601d60248201527f47656c61746f5573657250726f78792e6e6f5a65726f41646472657373000000604482015290519081900360640190fd5b856001600160a01b03168585604051808383808284376040519201945060009350909150508083038183865af19150503d8060008114610346576040519150601f19603f3d011682016040523d82523d6000602084013e61034b565b606091505b5090935091508261038d5760405162461bcd60e51b81526004018080602001828103825260328152602001806105196032913960400191505060405180910390fd5b50935093915050565b600080546060906001600160a01b03163314806103bd57506001546001600160a01b031633145b61040e576040805162461bcd60e51b815260206004820152601c60248201527f47656c61746f5573657250726f78792e617574683a206661696c656400000000604482015290519081900360640190fd5b856001600160a01b03811661046a576040805162461bcd60e51b815260206004820152601d60248201527f47656c61746f5573657250726f78792e6e6f5a65726f41646472657373000000604482015290519081900360640190fd5b866001600160a01b031684878760405180838380828437604051920194506000935090915050808303818686f4925050503d80600081146104c7576040519150601f19603f3d011682016040523d82523d6000602084013e6104cc565b606091505b5090935091508261050e5760405162461bcd60e51b815260040180806020018281038252604281526020018061054b6042913960600191505060405180910390fd5b509450949250505056fe47656c61746f5573657250726f78792e6578656375746543616c6c28293a205f616374696f6e2e63616c6c206661696c656447656c61746f5573657250726f78792e6578656375746544656c656761746563616c6c28293a205f616374696f6e2e64656c656761746563616c6c206661696c6564a26469706673582212200159f5cb1be40def3f558ab3affef2306616de6f6d26fc4d511d7bd902e532f564736f6c63430006000033608060405234801561001057600080fd5b5060405161073f38038061073f8339818101604052602081101561003357600080fd5b505180806001600160a01b038116610092576040805162461bcd60e51b815260206004820152601d60248201527f47656c61746f5573657250726f78792e6e6f5a65726f41646472657373000000604482015290519081900360640190fd5b50600080546001600160a01b039092166001600160a01b0319928316179055600180549091163317905550610673806100cc6000396000f3fe60806040526004361061003f5760003560e01c80631b08e2b114610044578063832880e714610075578063bca8c7b51461008a578063c3e518301461018d575b600080fd5b34801561005057600080fd5b5061005961020d565b604080516001600160a01b039092168252519081900360200190f35b34801561008157600080fd5b5061005961021c565b61010a600480360360408110156100a057600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100cb57600080fd5b8201836020820111156100dd57600080fd5b803590602001918460018302840111640100000000831117156100ff57600080fd5b50909250905061022b565b604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610151578181015183820152602001610139565b50505050905090810190601f16801561017e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61010a600480360360608110156101a357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156101ce57600080fd5b8201836020820111156101e057600080fd5b8035906020019184600183028401116401000000008311171561020257600080fd5b919350915035610396565b6001546001600160a01b031690565b6000546001600160a01b031690565b600080546060906001600160a01b0316331461028e576040805162461bcd60e51b815260206004820181905260248201527f47656c61746f5573657250726f78792e6f6e6c79557365723a206661696c6564604482015290519081900360640190fd5b846001600160a01b0381166102ea576040805162461bcd60e51b815260206004820152601d60248201527f47656c61746f5573657250726f78792e6e6f5a65726f41646472657373000000604482015290519081900360640190fd5b856001600160a01b03168585604051808383808284376040519201945060009350909150508083038183865af19150503d8060008114610346576040519150601f19603f3d011682016040523d82523d6000602084013e61034b565b606091505b5090935091508261038d5760405162461bcd60e51b815260040180806020018281038252603281526020018061060c6032913960400191505060405180910390fd5b50935093915050565b600080546060906001600160a01b03163314806103bd57506001546001600160a01b031633145b61040e576040805162461bcd60e51b815260206004820152601c60248201527f47656c61746f5573657250726f78792e617574683a206661696c656400000000604482015290519081900360640190fd5b856001600160a01b03811661046a576040805162461bcd60e51b815260206004820152601d60248201527f47656c61746f5573657250726f78792e6e6f5a65726f41646472657373000000604482015290519081900360640190fd5b60005a9050876001600160a01b031685888860405180838380828437604051920194506000935090915050808303818686f4925050503d80600081146104cc576040519150601f19603f3d011682016040523d82523d6000602084013e6104d1565b606091505b5090945092508315610583575a81036040516020018082815260200191505060405160208183030381529060405260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610548578181015183820152602001610530565b50505050905090810190601f1680156105755780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260518152602001806105bb6051913960600191505060405180910390fdfe476173546573745573657250726f78792e6578656375746544656c656761746563616c6c3a20416374696f6e207265766572746564206f722077726f6e6720617267756d656e747320737570706c69656447656c61746f5573657250726f78792e6578656375746543616c6c28293a205f616374696f6e2e63616c6c206661696c6564a26469706673582212204188f6df6495c6f1ed3c404166d38ff328e99277b48ad342e1e959a1e7d3aa4e64736f6c6343000600003347656c61746f436f72652e5f657865637574653a20496e73756666696369656e74206761732073656e7447656c61746f436f72652e6d696e74457865637574696f6e436c61696d3a206d73672e73656e646572206973206e6f742070726f7869656447656c61746f436f72652e63616e63656c457865637574696f6e436c61696d3a206861736820636f6d70617265206661696c656447656c61746f436f72652e6d696e74457865637574696f6e436c61696d3a206d73672e76616c7565206661696c656447656c61746f436f72652e5f657865637574653a203020616374696f6e436f6e646974696f6e734f6b47617347656c61746f5573657250726f78794d616e616765722e7573657250726f7879436865636b3a205f7573657250726f7879206e6f742072656769737465726564416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d6179206861766520726576657274656447656c61746f436f72652e7265766572744c6f6754726967676572436865636b4761733a2054726967676572206469646e7420666972652c206f722072657665727465642c206f722077726f6e6720617267756d656e747320737570706c69656447656c61746f436f72654163636f756e74696e672e7365744578656375746f72436c61696d4c6966657370616e3a206661696c656447656c61746f436f72652e7265766572744c6f67476173457865637574653a20457865637574696f6e526573756c743a204661696c757265202877726f6e6720617267756d656e747320737570706c6965643f2947656c61746f436f72654163636f756e74696e672e72656769737465724578656375746f723a205f6578656375746f72436c61696d4c6966657370616e2063616e6e6f74206265203047656c61746f436f72654163636f756e74696e672e6f6e6c79526567697374657265644578656375746f72733a206661696c6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7747656c61746f436f72652e6d696e74457865637574696f6e436c61696d3a2030207472696767657247617347656c61746f436f72652e7265766572744c6f6743616e457865637574654761733a2043616e45786563757465436865636b3a204e6f742045786563757461626c652c206f722077726f6e6720617267756d656e747320737570706c69656447656c61746f436f72652e63616e63656c457865637574696f6e436c61696d3a206f6e6c792073656c6563746564206578656375746f7220706f73742065787069727947656c61746f436f72652e6d696e74457865637574696f6e436c61696d3a203020616374696f6e546f74616c47617347656c61746f436f72654163636f756e74696e672e77697468647261774578656375746f7242616c616e63653a206661696c656447656c61746f436f72652e7265766572744c6f67416374696f6e436f6e646974696f6e73436865636b4761733a20416374696f6e20436f6e646974696f6e73204e4f54204f6b2c206f722072657665727465642c206f722077726f6e6720617267756d656e747320737570706c69656447656c61746f476173546573745573657250726f78794d616e616765722e69734761735465737450726f787947656c61746f436f72652e7265766572744c6f67476173546573745573657250726f7879457865637574653a205573657250726f7879206f7220416374696f6e2072657665727465642c206f722077726f6e6720617267756d656e747320737570706c696564a2646970667358221220b6856a41acc8c8f554c05b77ba0f3a60eb8c41d5d2b500af7c3ebef79fe4304f64736f6c63430006000033",
"deployedBytecode": "0x608060405260043610620002655760003560e01c8063520aaf74116200014b578063909f7e7e11620000bb578063b5cb15f71162000079578063b5cb15f71462000fc2578063c73dc4561462000fda578063d09ce6e81462001011578063e5dafffd1462001029578063f8df382414620010575762000265565b8063909f7e7e1462000d285780639c2b58aa1462000e4a5780639c8d29561462000e62578063a77cf45b1462000f73578063af90f9111462000faa5762000265565b806372d73efe116200010957806372d73efe1462000c7f57806373fac6131462000c9757806375e49e8f1462000caf578063776a8d611462000cc75780637e5fbb6a1462000d105762000265565b8063520aaf741462000b4f578063632d53551462000bea57806364f18eda1462000c21578063674af9d61462000c395780636ee7fbec1462000c515762000265565b80633219ce3211620001e75780633c5bacf211620001a55780633c5bacf2146200088c5780634209fff114620008ba57806343dc203914620008f157806348d3474d146200098357806349a090321462000ab45762000265565b80633219ce32146200064c57806332a4d78c146200068357806333ec0de814620006ba57806334f8826e14620007cc5780633be68330146200085e5762000265565b80630f9540f211620002355780630f9540f21462000474578063131901ce14620004aa57806317a7ce3d14620004d85780631cb0f8dc14620005c55780632d32310614620005f95762000265565b8062ce8e3e146200026a5780630124181814620002d4578063083d32f314620003f25780630d546786146200043d575b600080fd5b3480156200027757600080fd5b50620002826200106f565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620002c0578181015183820152602001620002a6565b505050509050019250505060405180910390f35b348015620002e157600080fd5b50620003e06004803603610160811015620002fb57600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b8111156200033657600080fd5b8201836020820111156200034957600080fd5b803590602001918460018302840111600160201b831117156200036b57600080fd5b919390926001600160a01b0383351692604081019060200135600160201b8111156200039657600080fd5b820183602082011115620003a957600080fd5b803590602001918460018302840111600160201b83111715620003cb57600080fd5b919350915060608101356080820135620010d3565b60408051918252519081900360200190f35b348015620003ff57600080fd5b5062000429600480360360208110156200041857600080fd5b50356001600160a01b031662001286565b604080519115158252519081900360200190f35b3480156200044a57600080fd5b50620003e0600480360360208110156200046357600080fd5b50356001600160a01b031662001299565b3480156200048157600080fd5b50620004a8600480360360408110156200049a57600080fd5b5080359060200135620012ab565b005b348015620004b757600080fd5b50620004a860048036036020811015620004d057600080fd5b50356200134a565b620004a8600480360360a0811015620004f057600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b8111156200052457600080fd5b8201836020820111156200053757600080fd5b803590602001918460018302840111600160201b831117156200055957600080fd5b919390926001600160a01b0383351692604081019060200135600160201b8111156200058457600080fd5b8201836020820111156200059757600080fd5b803590602001918460018302840111600160201b83111715620005b957600080fd5b509092509050620013eb565b348015620005d257600080fd5b50620003e060048036036040811015620005eb57600080fd5b5080359060200135620018e8565b3480156200060657600080fd5b5062000630600480360360208110156200061f57600080fd5b50356001600160a01b0316620018fd565b604080516001600160a01b039092168252519081900360200190f35b3480156200065957600080fd5b50620003e0600480360360208110156200067257600080fd5b50356001600160a01b03166200191b565b3480156200069057600080fd5b506200063060048036036020811015620006a957600080fd5b50356001600160a01b03166200192d565b348015620006c757600080fd5b50620004a86004803603610180811015620006e157600080fd5b6001600160a01b0382358116926020810135926040820135831692606083013516919081019060a081016080820135600160201b8111156200072257600080fd5b8201836020820111156200073557600080fd5b803590602001918460018302840111600160201b831117156200075757600080fd5b919390926001600160a01b0383351692604081019060200135600160201b8111156200078257600080fd5b8201836020820111156200079557600080fd5b803590602001918460018302840111600160201b83111715620007b757600080fd5b9193509150606081013560808201356200194b565b348015620007d957600080fd5b50620003e060048036036060811015620007f257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156200081d57600080fd5b8201836020820111156200083057600080fd5b803590602001918460018302840111600160201b831117156200085257600080fd5b91935091503562001b47565b3480156200086b57600080fd5b50620003e0600480360360208110156200088457600080fd5b503562001c4f565b3480156200089957600080fd5b506200063060048036036020811015620008b257600080fd5b503562001c61565b348015620008c757600080fd5b506200042960048036036020811015620008e057600080fd5b50356001600160a01b031662001c8d565b348015620008fe57600080fd5b50620003e0600480360360608110156200091757600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156200094257600080fd5b8201836020820111156200095557600080fd5b803590602001918460018302840111600160201b831117156200097757600080fd5b91935091503562001c9a565b3480156200099057600080fd5b5062000a8f6004803603610160811015620009aa57600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b811115620009e557600080fd5b820183602082011115620009f857600080fd5b803590602001918460018302840111600160201b8311171562000a1a57600080fd5b919390926001600160a01b0383351692604081019060200135600160201b81111562000a4557600080fd5b82018360208201111562000a5857600080fd5b803590602001918460018302840111600160201b8311171562000a7a57600080fd5b91935091506060810135608082013562001da2565b6040518082600281111562000aa057fe5b60ff16815260200191505060405180910390f35b34801562000ac157600080fd5b50620003e06004803603608081101562000ada57600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111562000b0e57600080fd5b82018360208201111562000b2157600080fd5b803590602001918460018302840111600160201b8311171562000b4357600080fd5b91935091503562001e56565b34801562000b5c57600080fd5b50620003e06004803603608081101562000b7557600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111562000ba957600080fd5b82018360208201111562000bbc57600080fd5b803590602001918460018302840111600160201b8311171562000bde57600080fd5b91935091503562001ef1565b34801562000bf757600080fd5b50620006306004803603602081101562000c1057600080fd5b50356001600160a01b031662002035565b34801562000c2e57600080fd5b506200028262002053565b34801562000c4657600080fd5b5062000630620020b5565b34801562000c5e57600080fd5b50620004a86004803603602081101562000c7757600080fd5b5035620021dc565b34801562000c8c57600080fd5b50620004a86200223a565b34801562000ca457600080fd5b50620003e0620022cf565b34801562000cbc57600080fd5b5062000630620022d5565b34801562000cd457600080fd5b50620003e06004803603606081101562000ced57600080fd5b506001600160a01b0381358116916020810135821691604090910135166200235c565b34801562000d1d57600080fd5b50620004a8620024de565b34801562000d3557600080fd5b5062000e39600480360361018081101562000d4f57600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111562000d8a57600080fd5b82018360208201111562000d9d57600080fd5b803590602001918460018302840111600160201b8311171562000dbf57600080fd5b919390926001600160a01b0383351692604081019060200135600160201b81111562000dea57600080fd5b82018360208201111562000dfd57600080fd5b803590602001918460018302840111600160201b8311171562000e1f57600080fd5b91935091506060810135608082013560a083013562002587565b6040518082600781111562000aa057fe5b34801562000e5757600080fd5b50620003e06200264d565b34801562000e6f57600080fd5b50620003e0600480360361018081101562000e8957600080fd5b8135916001600160a01b03602082013581169260408301359091169190810190608081016060820135600160201b81111562000ec457600080fd5b82018360208201111562000ed757600080fd5b803590602001918460018302840111600160201b8311171562000ef957600080fd5b919390926001600160a01b0383351692604081019060200135600160201b81111562000f2457600080fd5b82018360208201111562000f3757600080fd5b803590602001918460018302840111600160201b8311171562000f5957600080fd5b91935091506060810135608082013560a083013562002660565b34801562000f8057600080fd5b50620003e06004803603602081101562000f9957600080fd5b50356001600160a01b0316620027ea565b34801562000fb757600080fd5b50620003e0620027fc565b34801562000fcf57600080fd5b50620003e062002803565b34801562000fe757600080fd5b5062000630600480360360208110156200100057600080fd5b50356001600160a01b031662002809565b3480156200101e57600080fd5b50620003e062002827565b3480156200103657600080fd5b5062000630600480360360208110156200104f57600080fd5b50356200282d565b3480156200106457600080fd5b50620003e062002848565b60606005805480602002602001604051908101604052809291908181526020018280548015620010c957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311620010aa575b5050505050905090565b6000805a905060006200118d8e8e8e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051606081810190925292508f915060039083908390808284376000920191909152508e91508d90506200284f565b905060008160028111156200119e57fe5b14156200124e575a82036040516020018082815260200191505060405160208183030381529060405260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562001212578181015183820152602001620011f8565b50505050905090810190601f168015620012405780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60405162461bcd60e51b8152600401808060200182810382526054815260200180620045226054913960600191505060405180910390fd5b6000620012938262002b2c565b92915050565b60096020526000908152604090205481565b610258811015620012ee5760405162461bcd60e51b8152600401808060200182810382526049815260200180620045766049913960600191505060405180910390fd5b3360008181526007602090815260408083208690556008825291829020849055815185815290810184905281517fb198994461d208ab2cbe182236455d7f8fb00cd2d4567a93125016b794749b7f929181900390910190a25050565b6102588110156200138d5760405162461bcd60e51b8152600401808060200182810382526035815260200180620044ed6035913960400191505060405180910390fd5b3360009081526008602090815260409182902054825190815290810183905281517f7ff36aa2c2a9f1d19c957bc7b6a99ec3d977ed728d76bd6bf33611953f678328929181900390910190a133600090815260086020526040902055565b6001600160a01b0387166000908152600860205260409020548790620014435760405162461bcd60e51b8152600401808060200182810382526034815260200180620045bf6034913960400191505060405180910390fd5b6000620014503362002b4c565b15620014765750336000908152600360205260409020546001600160a01b0316620014c7565b620014813362002b2c565b156200148f575033620014c7565b60405162461bcd60e51b81526004018080602001828103825260388152602001806200434b6038913960400191505060405180910390fd5b620014d16200351b565b6000896001600160a01b031663cda8a1866040518163ffffffff1660e01b815260040160206040518083038186803b1580156200150d57600080fd5b505afa15801562001522573d6000803e3d6000fd5b505050506040513d60208110156200153957600080fd5b50519050806200157b5760405162461bcd60e51b815260040180806020018281038252602b81526020018062004614602b913960400191505060405180910390fd5b808260006020020181815250506000876001600160a01b0316638acd9bba6040518163ffffffff1660e01b815260040160206040518083038186803b158015620015c457600080fd5b505afa158015620015d9573d6000803e3d6000fd5b505050506040513d6020811015620015f057600080fd5b5051905080620016325760405162461bcd60e51b815260040180806020018281038252602f815260200180620046e1602f913960400191505060405180910390fd5b60208301819052600062001647838362002b6c565b60408086018290526001600160a01b038f166000908152600760205220549091506200167590829062002b95565b3414620016b45760405162461bcd60e51b815260040180806020018281038252602f815260200180620043b7602f913960400191505060405180910390fd5b505050620016c3600a62002bf3565b6000620016d1600a62002bfc565b6000818152600b6020908152604080832080546001600160a01b0319166001600160a01b03898116919091179091558f1683526008909152812054919250906200171d90429062002c00565b9050620017af8c83868e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d8d8d8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508d92508b915034905062002c5b565b600c600084815260200190815260200160002081905550836001600160a01b0316828d6001600160a01b03167f62e47cf114a8dabfdf0d3171b5a99cb0708069114ef4169fbd7d05a541ded9ef8e8e8e8e8e8e8c8b34604051808a6001600160a01b03166001600160a01b0316815260200180602001886001600160a01b03166001600160a01b031681526020018060200186600360200280838360005b83811015620018675781810151838201526020016200184d565b5050505090500185815260200184815260200183810383528b8b82818152602001925080828437600083820152601f01601f191690910184810383528881526020019050888880828437600083820152604051601f909101601f19169092018290039d50909b505050505050505050505050a4505050505050505050505050565b6000620018f6838362002b6c565b9392505050565b6001600160a01b039081166000908152602081905260409020541690565b60086020526000908152604090205481565b6001600160a01b039081166000908152600460205260409020541690565b6001600160a01b038a8116600090815260046020526040902054163314620019c357428211158015620019865750336001600160a01b038d16145b620019c35760405162461bcd60e51b81526004018080602001828103825260438152602001806200469e6043913960600191505060405180910390fd5b600062001a788d8d8d8d8d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508c8c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051606081810190925292508e915060039083908390808284376000920191909152508d91508c905062002c5b565b60008d8152600c6020526040902054909150811462001ac95760405162461bcd60e51b8152600401808060200182810382526034815260200180620043836034913960400191505060405180910390fd5b60008c8152600b6020908152604080832080546001600160a01b0319169055600c9091528082208290555133916001600160a01b038e16918f917fc4110e36d38762898526757f75e37160df4a26731953ca5fad1f103e6585bf7991a462001b38338363ffffffff62002dea16565b50505050505050505050505050565b6000805a9050600062001b938787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525089925062002ed9915050565b9050600281600281111562001ba457fe5b141562001c17575a82036040516020018082815260200191505060405160208183030381529060405260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360008381101562001212578181015183820152602001620011f8565b60405162461bcd60e51b8152600401808060200182810382526070815260200180620047446070913960800191505060405180910390fd5b600c6020526000908152604090205481565b6000908152600b60209081526040808320546001600160a01b0390811684526004909252909120541690565b6000620012938262002b4c565b6000805a9050600062001ce68787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525089925062003090915050565b9050600281600281111562001cf757fe5b141562001d6a575a82036040516020018082815260200191505060405160208183030381529060405260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360008381101562001212578181015183820152602001620011f8565b60405162461bcd60e51b81526004018080602001828103825260618152602001806200448c6061913960800191505060405180910390fd5b600062001e468c8c8c8c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d81528f935091508d908d90819084018382808284376000920191909152505060408051606081810190925292508d915060039083908390808284376000920191909152508c91508b90506200284f565b9c9b505050505050505050505050565b60008562001e64816200318d565b62001ea15760405162461bcd60e51b815260040180806020018281038252602c815260200180620047b4602c913960400191505060405180910390fd5b62001ee6878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250620031ad915050565b505095945050505050565b60008562001eff8162002b2c565b62001f3c5760405162461bcd60e51b8152600401808060200182810382526040815260200180620044126040913960400191505060405180910390fd5b60005a9050600062001f88898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250620031ad915050565b9050801562001ffd575a82036040516020018082815260200191505060405160208183030381529060405260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360008381101562001212578181015183820152602001620011f8565b60405162461bcd60e51b8152600401808060200182810382526066815260200180620047e06066913960800191505060405180910390fd5b6001600160a01b039081166000908152600160205260409020541690565b60606006805480602002602001604051908101604052809291908181526020018280548015620010c9576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311620010aa575050505050905090565b600033604051620020c69062003539565b6001600160a01b03909116815260405190819003602001906000f080158015620020f4573d6000803e3d6000fd5b5033600081815260036020908152604080832080546001600160a01b0387166001600160a01b03199182168117909255818552600490935281842080548416861790556005805460018181019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180548516871790556006805480830182559086527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180549094168217909355600280549093019092555193945091927f9f84d6dc5ca460a21e2ab3e42ce80c16a33218a6e792073740615283e67b946f9190a390565b3360009081526007602090815260409182902054825190815290810183905281517f44613ad427a1cce7d511656219c18158781de4cb995be11deb6b6791b6ce1364929181900390910190a133600090815260076020526040902055565b33600081815260086020526040902054620022875760405162461bcd60e51b8152600401808060200182810382526034815260200180620045bf6034913960400191505060405180910390fd5b3360008181526007602090815260408083208390556008909152808220829055517fc1ae083d76d9b532f1008bfe595a2463736e5db483086b0d2b61537c698d8aea9190a250565b61025881565b600033604051620022e69062003547565b6001600160a01b03909116815260405190819003602001906000f08015801562002314573d6000803e3d6000fd5b503360008181526020818152604080832080546001600160a01b0387166001600160a01b03199182168117909255908452600190925290912080549091169091179055919050565b6001600160a01b0383166000908152600860205260408120548490620023b45760405162461bcd60e51b8152600401808060200182810382526034815260200180620045bf6034913960400191505060405180910390fd5b6000846001600160a01b031663cda8a1866040518163ffffffff1660e01b815260040160206040518083038186803b158015620023f057600080fd5b505afa15801562002405573d6000803e3d6000fd5b505050506040513d60208110156200241c57600080fd5b505160408051634566cddd60e11b815290519192506000916001600160a01b03871691638acd9bba916004808301926020929190829003018186803b1580156200246557600080fd5b505afa1580156200247a573d6000803e3d6000fd5b505050506040513d60208110156200249157600080fd5b505190506000620024a3838362002b6c565b6001600160a01b038916600090815260076020526040902054909150620024d290829063ffffffff62002b9516565b98975050505050505050565b33600090815260096020526040902054806200252c5760405162461bcd60e51b8152600401808060200182810382526034815260200180620047106034913960400191505060405180910390fd5b336000818152600960205260408120556200254e908263ffffffff62002dea16565b60408051828152905133917f3a8e6636082b3dfa82a94284a416e78681d034ce3d0b461ede5ceda807dac66c919081900360200190a250565b60006200263c8d8d8d8d8d8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508c8c8c8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051606081810190925292508e915060039083908390808284376000920191909152508d91508c90508b62003330565b9d9c50505050505050505050505050565b60006200265b600a62002bfc565b905090565b6000805a905060006200272e8f8f8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508d60038060200260405190810160405280929190826003602002808284376000920191909152508f91508e90508d62003330565b905060078160078111156200273f57fe5b1415620027b2575a82036040516020018082815260200191505060405160208183030381529060405260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360008381101562001212578181015183820152602001620011f8565b60405162461bcd60e51b815260040180806020018281038252605f8152602001806200463f605f913960600191505060405180910390fd5b60076020526000908152604090205481565b620222e081565b60025490565b6001600160a01b039081166000908152600360205260409020541690565b619c4081565b600b602052600090815260409020546001600160a01b031681565b620186a081565b6000805a60408601519091508110156200289b5760405162461bcd60e51b815260040180806020018281038252602a81526020018062004321602a913960400191505060405180910390fd5b6000876001600160a01b031663549c5a1d6040518163ffffffff1660e01b815260040160206040518083038186803b158015620028d757600080fd5b505afa158015620028ec573d6000803e3d6000fd5b505050506040513d60208110156200290357600080fd5b50519050806200295a576040805162461bcd60e51b815260206004820181905260248201527f47656c61746f436f72652e5f657865637574653a203020616374696f6e476173604482015290519081900360640190fd5b60208601516000906200296e908362003480565b905080620029ae5760405162461bcd60e51b815260040180806020018281038252602c815260200180620043e6602c913960400191505060405180910390fd5b6000620029c48e8e8e8e8e8e8e898f8f62003330565b90506007816007811115620029d557fe5b1462002a2357806007811115620029e857fe5b6040518f9033907f67f5a49788579f3c87b420d30eb1d9337b519f37ad4d960c82b68d1779ef32b190600090a4600294505050505062002b1f565b60008e8152600c60209081526040808320839055600b909152812080546001600160a01b031916905562002a5a8e8c8c87620031ad565b9050801562002a6d576000955062002a72565b600195505b3360009081526009602052604090205462002a94908863ffffffff62002c0016565b3360009081526009602052604090205585600281111562002ab157fe5b8f337f0c671667d54ca130356ac6a5d482433053ed1c32dd03a7dcc74ad8433e1e46763a62002afa8162002aed8c5a9063ffffffff6200348016565b9063ffffffff62002b9516565b6040805192835260208301919091528181018d9052519081900360600190a450505050505b9998505050505050505050565b6001600160a01b0390811660009081526004602052604090205416151590565b6001600160a01b0390811660009081526003602052604090205416151590565b6000620018f68262002b88620222e08663ffffffff62002c0016565b9063ffffffff62002c0016565b60008262002ba65750600062001293565b8282028284828162002bb457fe5b0414620018f65760405162461bcd60e51b8152600401808060200182810382526021815260200180620045f36021913960400191505060405180910390fd5b80546001019055565b5490565b600082820183811015620018f6576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008a8a8a8a8a8a8a8a8a8a604051602001808b6001600160a01b03166001600160a01b031660601b81526014018a8152602001896001600160a01b03166001600160a01b031660601b8152601401886001600160a01b03166001600160a01b031660601b815260140187805190602001908083835b6020831062002cf25780518252601f19909201916020918201910162002cd1565b6001836020036101000a038019825116818451168082178552505050505050905001866001600160a01b03166001600160a01b031660601b815260140185805190602001908083835b6020831062002d5c5780518252601f19909201916020918201910162002d3b565b6001836020036101000a03801982511681845116808217855250505050505090500184600360200280838360005b8381101562002da457818101518382015260200162002d8a565b505050509050018381526020018281526020019a50505050505050505050506040516020818303038152906040528051906020012090505b9a9950505050505050505050565b8047101562002e40576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d806000811462002e8d576040519150601f19603f3d011682016040523d82523d6000602084013e62002e92565b606091505b505090508062002ed45760405162461bcd60e51b815260040180806020018281038252603a81526020018062004452603a913960400191505060405180910390fd5b505050565b6040516020602482018181528451604484015284516000936060936367fd236f60e01b93889390928392606490910191908501908083838b5b8381101562002f2c57818101518382015260200162002f12565b50505050905090810190601f16801562002f5a5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909716969096178652518151919650600095606095506001600160a01b038c16945089935087928291908083835b6020831062002fd25780518252601f19909201916020918201910162002fb1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303818686fa925050503d806000811462003035576040519150601f19603f3d011682016040523d82523d6000602084013e6200303a565b606091505b509150915081620030525760009350505050620018f6565b60008180602001905160208110156200306a57600080fd5b505190508062003082576001945050505050620018f6565b506002979650505050505050565b6000806060856001600160a01b031684866040518082805190602001908083835b60208310620030d25780518252601f199092019160209182019101620030b1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303818686fa925050503d806000811462003135576040519150601f19603f3d011682016040523d82523d6000602084013e6200313a565b606091505b5091509150816200315157600092505050620018f6565b60008180602001905160208110156200316957600080fd5b5051905080620031805760019350505050620018f6565b60029350505050620018f6565b6001600160a01b0390811660009081526001602052604090205416151590565b6040516001600160a01b03841660248201908152606482018390526060604483018181528551608485015285516000949293630c3e518360e41b938993899389939260a4019060208601908083838d5b8381101562003217578181015183820152602001620031fd565b50505050905090810190601f168015620032455780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199099169890981788525181519198506001600160a01b038e1697899750909550859450925090508083835b60208310620032ba5780518252601f19909201916020918201910162003299565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146200331e576040519150601f19603f3d011682016040523d82523d6000602084013e62003323565b606091505b5090979650505050505050565b60008062003347338d8d8d8d8d8d8d8c8c62002c5b565b60008d8152600c602052604090205490915081146200336b57600091505062002ddc565b60008c8152600b60205260409020546001600160a01b03166200339357600191505062002ddc565b42841015620033a757600291505062002ddc565b6000620033bc8b8b8984602002015162003090565b905060006002826002811115620033cf57fe5b1415620033df575060016200340f565b6001826002811115620033ee57fe5b141562003402576003935050505062002ddc565b6004935050505062002ddc565b60006200341e8b8b8a62002ed9565b90508180156200343a575060028160028111156200343857fe5b145b156200344e57600794505050505062002ddc565b60018160028111156200345d57fe5b14156200347257600594505050505062002ddc565b600694505050505062002ddc565b6000620018f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060008184841115620035135760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831562001212578181015183820152602001620011f8565b505050900390565b60405180606001604052806003906020820280388339509192915050565b61068c806200355683390190565b61073f8062003be28339019056fe608060405234801561001057600080fd5b5060405161068c38038061068c8339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601d60248201527f47656c61746f5573657250726f78792e6e6f5a65726f41646472657373000000604482015290519081900360640190fd5b50600080546001600160a01b039092166001600160a01b031992831617905560018054909116331790556105c2806100ca6000396000f3fe60806040526004361061003f5760003560e01c80631b08e2b114610044578063832880e714610075578063bca8c7b51461008a578063c3e518301461018d575b600080fd5b34801561005057600080fd5b5061005961020d565b604080516001600160a01b039092168252519081900360200190f35b34801561008157600080fd5b5061005961021c565b61010a600480360360408110156100a057600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100cb57600080fd5b8201836020820111156100dd57600080fd5b803590602001918460018302840111640100000000831117156100ff57600080fd5b50909250905061022b565b604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610151578181015183820152602001610139565b50505050905090810190601f16801561017e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61010a600480360360608110156101a357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156101ce57600080fd5b8201836020820111156101e057600080fd5b8035906020019184600183028401116401000000008311171561020257600080fd5b919350915035610396565b6001546001600160a01b031690565b6000546001600160a01b031690565b600080546060906001600160a01b0316331461028e576040805162461bcd60e51b815260206004820181905260248201527f47656c61746f5573657250726f78792e6f6e6c79557365723a206661696c6564604482015290519081900360640190fd5b846001600160a01b0381166102ea576040805162461bcd60e51b815260206004820152601d60248201527f47656c61746f5573657250726f78792e6e6f5a65726f41646472657373000000604482015290519081900360640190fd5b856001600160a01b03168585604051808383808284376040519201945060009350909150508083038183865af19150503d8060008114610346576040519150601f19603f3d011682016040523d82523d6000602084013e61034b565b606091505b5090935091508261038d5760405162461bcd60e51b81526004018080602001828103825260328152602001806105196032913960400191505060405180910390fd5b50935093915050565b600080546060906001600160a01b03163314806103bd57506001546001600160a01b031633145b61040e576040805162461bcd60e51b815260206004820152601c60248201527f47656c61746f5573657250726f78792e617574683a206661696c656400000000604482015290519081900360640190fd5b856001600160a01b03811661046a576040805162461bcd60e51b815260206004820152601d60248201527f47656c61746f5573657250726f78792e6e6f5a65726f41646472657373000000604482015290519081900360640190fd5b866001600160a01b031684878760405180838380828437604051920194506000935090915050808303818686f4925050503d80600081146104c7576040519150601f19603f3d011682016040523d82523d6000602084013e6104cc565b606091505b5090935091508261050e5760405162461bcd60e51b815260040180806020018281038252604281526020018061054b6042913960600191505060405180910390fd5b509450949250505056fe47656c61746f5573657250726f78792e6578656375746543616c6c28293a205f616374696f6e2e63616c6c206661696c656447656c61746f5573657250726f78792e6578656375746544656c656761746563616c6c28293a205f616374696f6e2e64656c656761746563616c6c206661696c6564a26469706673582212200159f5cb1be40def3f558ab3affef2306616de6f6d26fc4d511d7bd902e532f564736f6c63430006000033608060405234801561001057600080fd5b5060405161073f38038061073f8339818101604052602081101561003357600080fd5b505180806001600160a01b038116610092576040805162461bcd60e51b815260206004820152601d60248201527f47656c61746f5573657250726f78792e6e6f5a65726f41646472657373000000604482015290519081900360640190fd5b50600080546001600160a01b039092166001600160a01b0319928316179055600180549091163317905550610673806100cc6000396000f3fe60806040526004361061003f5760003560e01c80631b08e2b114610044578063832880e714610075578063bca8c7b51461008a578063c3e518301461018d575b600080fd5b34801561005057600080fd5b5061005961020d565b604080516001600160a01b039092168252519081900360200190f35b34801561008157600080fd5b5061005961021c565b61010a600480360360408110156100a057600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100cb57600080fd5b8201836020820111156100dd57600080fd5b803590602001918460018302840111640100000000831117156100ff57600080fd5b50909250905061022b565b604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610151578181015183820152602001610139565b50505050905090810190601f16801561017e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b61010a600480360360608110156101a357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156101ce57600080fd5b8201836020820111156101e057600080fd5b8035906020019184600183028401116401000000008311171561020257600080fd5b919350915035610396565b6001546001600160a01b031690565b6000546001600160a01b031690565b600080546060906001600160a01b0316331461028e576040805162461bcd60e51b815260206004820181905260248201527f47656c61746f5573657250726f78792e6f6e6c79557365723a206661696c6564604482015290519081900360640190fd5b846001600160a01b0381166102ea576040805162461bcd60e51b815260206004820152601d60248201527f47656c61746f5573657250726f78792e6e6f5a65726f41646472657373000000604482015290519081900360640190fd5b856001600160a01b03168585604051808383808284376040519201945060009350909150508083038183865af19150503d8060008114610346576040519150601f19603f3d011682016040523d82523d6000602084013e61034b565b606091505b5090935091508261038d5760405162461bcd60e51b815260040180806020018281038252603281526020018061060c6032913960400191505060405180910390fd5b50935093915050565b600080546060906001600160a01b03163314806103bd57506001546001600160a01b031633145b61040e576040805162461bcd60e51b815260206004820152601c60248201527f47656c61746f5573657250726f78792e617574683a206661696c656400000000604482015290519081900360640190fd5b856001600160a01b03811661046a576040805162461bcd60e51b815260206004820152601d60248201527f47656c61746f5573657250726f78792e6e6f5a65726f41646472657373000000604482015290519081900360640190fd5b60005a9050876001600160a01b031685888860405180838380828437604051920194506000935090915050808303818686f4925050503d80600081146104cc576040519150601f19603f3d011682016040523d82523d6000602084013e6104d1565b606091505b5090945092508315610583575a81036040516020018082815260200191505060405160208183030381529060405260405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610548578181015183820152602001610530565b50505050905090810190601f1680156105755780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60405162461bcd60e51b81526004018080602001828103825260518152602001806105bb6051913960600191505060405180910390fdfe476173546573745573657250726f78792e6578656375746544656c656761746563616c6c3a20416374696f6e207265766572746564206f722077726f6e6720617267756d656e747320737570706c69656447656c61746f5573657250726f78792e6578656375746543616c6c28293a205f616374696f6e2e63616c6c206661696c6564a26469706673582212204188f6df6495c6f1ed3c404166d38ff328e99277b48ad342e1e959a1e7d3aa4e64736f6c6343000600003347656c61746f436f72652e5f657865637574653a20496e73756666696369656e74206761732073656e7447656c61746f436f72652e6d696e74457865637574696f6e436c61696d3a206d73672e73656e646572206973206e6f742070726f7869656447656c61746f436f72652e63616e63656c457865637574696f6e436c61696d3a206861736820636f6d70617265206661696c656447656c61746f436f72652e6d696e74457865637574696f6e436c61696d3a206d73672e76616c7565206661696c656447656c61746f436f72652e5f657865637574653a203020616374696f6e436f6e646974696f6e734f6b47617347656c61746f5573657250726f78794d616e616765722e7573657250726f7879436865636b3a205f7573657250726f7879206e6f742072656769737465726564416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d6179206861766520726576657274656447656c61746f436f72652e7265766572744c6f6754726967676572436865636b4761733a2054726967676572206469646e7420666972652c206f722072657665727465642c206f722077726f6e6720617267756d656e747320737570706c69656447656c61746f436f72654163636f756e74696e672e7365744578656375746f72436c61696d4c6966657370616e3a206661696c656447656c61746f436f72652e7265766572744c6f67476173457865637574653a20457865637574696f6e526573756c743a204661696c757265202877726f6e6720617267756d656e747320737570706c6965643f2947656c61746f436f72654163636f756e74696e672e72656769737465724578656375746f723a205f6578656375746f72436c61696d4c6966657370616e2063616e6e6f74206265203047656c61746f436f72654163636f756e74696e672e6f6e6c79526567697374657265644578656375746f72733a206661696c6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7747656c61746f436f72652e6d696e74457865637574696f6e436c61696d3a2030207472696767657247617347656c61746f436f72652e7265766572744c6f6743616e457865637574654761733a2043616e45786563757465436865636b3a204e6f742045786563757461626c652c206f722077726f6e6720617267756d656e747320737570706c69656447656c61746f436f72652e63616e63656c457865637574696f6e436c61696d3a206f6e6c792073656c6563746564206578656375746f7220706f73742065787069727947656c61746f436f72652e6d696e74457865637574696f6e436c61696d3a203020616374696f6e546f74616c47617347656c61746f436f72654163636f756e74696e672e77697468647261774578656375746f7242616c616e63653a206661696c656447656c61746f436f72652e7265766572744c6f67416374696f6e436f6e646974696f6e73436865636b4761733a20416374696f6e20436f6e646974696f6e73204e4f54204f6b2c206f722072657665727465642c206f722077726f6e6720617267756d656e747320737570706c69656447656c61746f476173546573745573657250726f78794d616e616765722e69734761735465737450726f787947656c61746f436f72652e7265766572744c6f67476173546573745573657250726f7879457865637574653a205573657250726f7879206f7220416374696f6e2072657665727465642c206f722077726f6e6720617267756d656e747320737570706c696564a2646970667358221220b6856a41acc8c8f554c05b77ba0f3a60eb8c41d5d2b500af7c3ebef79fe4304f64736f6c63430006000033",
"linkReferences": {},
"deployedLinkReferences": {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment