Skip to content

Instantly share code, notes, and snippets.

@nalinbhardwaj
Created August 22, 2021 00:27
Show Gist options
  • Save nalinbhardwaj/9df7597af77f49a33c76feb333f3b537 to your computer and use it in GitHub Desktop.
Save nalinbhardwaj/9df7597af77f49a33c76feb333f3b537 to your computer and use it in GitHub Desktop.
{
"_format": "hh-sol-artifact-1",
"contractName": "WordLinesToken",
"sourceName": "contracts/WordLinesToken.sol",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [
{
"internalType": "string",
"name": "tokenURI",
"type": "string"
},
{
"internalType": "uint256[92]",
"name": "input",
"type": "uint256[92]"
}
],
"name": "addToken",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "baseURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[92]",
"name": "input",
"type": "uint256[92]"
}
],
"name": "getHash",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "string",
"name": "tokenURI",
"type": "string"
},
{
"internalType": "uint256[2]",
"name": "a",
"type": "uint256[2]"
},
{
"internalType": "uint256[2][2]",
"name": "b",
"type": "uint256[2][2]"
},
{
"internalType": "uint256[2]",
"name": "c",
"type": "uint256[2]"
},
{
"internalType": "uint256[92]",
"name": "input",
"type": "uint256[92]"
}
],
"name": "mintItem",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "tokenByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "tokenOfOwnerByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"name": "tokenURIToInput",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[2]",
"name": "a",
"type": "uint256[2]"
},
{
"internalType": "uint256[2][2]",
"name": "b",
"type": "uint256[2][2]"
},
{
"internalType": "uint256[2]",
"name": "c",
"type": "uint256[2]"
},
{
"internalType": "uint256[92]",
"name": "input",
"type": "uint256[92]"
}
],
"name": "verifyProof",
"outputs": [
{
"internalType": "bool",
"name": "r",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b50604080518082018252600e81526d2bb7b9322634b732b9aa37b5b2b760911b6020808301919091528251808401909352600383526215d31560ea1b90830152906200006d6301ffc9a760e01b6001600160e01b036200019e16565b81516200008290600690602085019062000241565b5080516200009890600790602084019062000241565b50620000b46380ac58cd60e01b6001600160e01b036200019e16565b620000cf635b5e139f60e01b6001600160e01b036200019e16565b620000ea63780e9d6360e01b6001600160e01b036200019e16565b5060009050620001026001600160e01b036200022316565b600a80546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152601581527f68747470733a2f2f697066732e696f2f697066732f0000000000000000000000602082015262000198906001600160e01b036200022816565b620002e3565b6001600160e01b03198082161415620001fe576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b335b90565b80516200023d90600990602084019062000241565b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028457805160ff1916838001178555620002b4565b82800160010185558215620002b4579182015b82811115620002b457825182559160200191906001019062000297565b50620002c2929150620002c6565b5090565b6200022591905b80821115620002c25760008155600101620002cd565b615c0d80620002f36000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80636c0360eb116100de578063a22cb46511610097578063cf04a14f11610071578063cf04a14f1461078d578063e985e9c51461088a578063f2fde38b146108b8578063fb108782146108de57610173565b8063a22cb4651461067e578063b88d4fde146106ac578063c87b56dd1461077057610173565b80636c0360eb1461056657806370a082311461056e578063715018a6146105945780638da5cb5b1461059c57806395d89b41146105a45780639d99a819146105ac57610173565b806323b872dd1161013057806323b872dd146103055780632a08e7991461033b5780632f745c59146104ca57806342842e0e146104f65780634f6ccce71461052c5780636352211e1461054957610173565b806301ffc9a71461017857806303b48ee1146101b357806306fdde0314610219578063081812fc14610296578063095ea7b3146102cf57806318160ddd146102fd575b600080fd5b61019f6004803603602081101561018e57600080fd5b50356001600160e01b031916610982565b604080519115158252519081900360200190f35b6102076004803603610b808110156101ca57600080fd5b8101908080610b800190605c806020026040519081016040528092919082605c602002808284376000920191909152509194506109a59350505050565b60408051918252519081900360200190f35b610221610a64565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025b578181015183820152602001610243565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b3600480360360208110156102ac57600080fd5b5035610afb565b604080516001600160a01b039092168252519081900360200190f35b6102fb600480360360408110156102e557600080fd5b506001600160a01b038135169060200135610b5d565b005b610207610c38565b6102fb6004803603606081101561031b57600080fd5b506001600160a01b03813581169160208101359091169060400135610c49565b6102076004803603610cc081101561035257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561037c57600080fd5b82018360208201111561038e57600080fd5b803590602001918460018302840111600160201b831117156103af57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082018252939695948181019493509150600290839083908082843760009201829052506040805180820190915293969594608081019493509150600290835b828210156104655760408051808201825290808402860190600290839083908082843760009201919091525050508152600190910190602001610427565b505060408051808201825293969594818101949350915060029083908390808284376000920191909152505060408051610b808181019092529295949381810193925090605c908390839080828437600092019190915250919450610ca09350505050565b610207600480360360408110156104e057600080fd5b506001600160a01b038135169060200135610e21565b6102fb6004803603606081101561050c57600080fd5b506001600160a01b03813581169160208101359091169060400135610e52565b6102076004803603602081101561054257600080fd5b5035610e6d565b6102b36004803603602081101561055f57600080fd5b5035610e89565b610221610eb7565b6102076004803603602081101561058457600080fd5b50356001600160a01b0316610f18565b6102fb610f80565b6102b3611034565b610221611043565b61019f6004803603610ba08110156105c357600080fd5b810190602081018135600160201b8111156105dd57600080fd5b8201836020820111156105ef57600080fd5b803590602001918460018302840111600160201b8311171561061057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051610b80818101909252939695948181019493509150605c9083908390808284376000920191909152509194506110a49350505050565b6102fb6004803603604081101561069457600080fd5b506001600160a01b0381351690602001351515611185565b6102fb600480360360808110156106c257600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156106fc57600080fd5b82018360208201111561070e57600080fd5b803590602001918460018302840111600160201b8311171561072f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061128a945050505050565b6102216004803603602081101561078657600080fd5b50356112e8565b61019f6004803603610c808110156107a457600080fd5b6040805180820182529183019291818301918390600290839083908082843760009201829052506040805180820190915293969594608081019493509150600290835b8282101561082557604080518082018252908084028601906002908390839080828437600092019190915250505081526001909101906020016107e7565b505060408051808201825293969594818101949350915060029083908390808284376000920191909152505060408051610b808181019092529295949381810193925090605c90839083908082843760009201919091525091945061158f9350505050565b61019f600480360360408110156108a057600080fd5b506001600160a01b0381358116916020013516611695565b6102fb600480360360208110156108ce57600080fd5b50356001600160a01b03166116c3565b610207600480360360208110156108f457600080fd5b810190602081018135600160201b81111561090e57600080fd5b82018360208201111561092057600080fd5b803590602001918460018302840111600160201b8311171561094157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506117ce945050505050565b6001600160e01b0319811660009081526020819052604090205460ff165b919050565b60408051605b808252610b8082019092526000916060919060208201610b608036833701905050905060005b605b811015610a0a578381605c81106109e657fe5b60200201518282815181106109f757fe5b60209081029190910101526001016109d1565b508060405160200180828051906020019060200280838360005b83811015610a3c578181015183820152602001610a24565b5050505090500191505060405160208183030381529060405280519060200120915050919050565b60068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610af05780601f10610ac557610100808354040283529160200191610af0565b820191906000526020600020905b815481529060010190602001808311610ad357829003601f168201915b505050505090505b90565b6000610b06826117eb565b610b415760405162461bcd60e51b815260040180806020018281038252602c815260200180615aaf602c913960400191505060405180910390fd5b506000908152600460205260409020546001600160a01b031690565b6000610b6882610e89565b9050806001600160a01b0316836001600160a01b03161415610bbb5760405162461bcd60e51b8152600401808060200182810382526021815260200180615b5f6021913960400191505060405180910390fd5b806001600160a01b0316610bcd6117fe565b6001600160a01b03161480610bee5750610bee81610be96117fe565b611695565b610c295760405162461bcd60e51b8152600401808060200182810382526038815260200180615a026038913960400191505060405180910390fd5b610c338383611802565b505050565b6000610c446002611870565b905090565b610c5a610c546117fe565b8261187b565b610c955760405162461bcd60e51b8152600401808060200182810382526031815260200180615b806031913960400191505060405180910390fd5b610c33838383611917565b60006001600160a01b0387168083605b602002015114610cf15760405162461bcd60e51b8152600401808060200182810382526027815260200180615bb16027913960400191505060405180910390fd5b610cfa836109a5565b600c886040518082805190602001908083835b60208310610d2c5780518252601f199092019160209182019101610d0d565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205414610d9c5760405162461bcd60e51b81526004018080602001828103825260258152602001806159dd6025913960400191505060405180910390fd5b610da88686868661158f565b610de9576040805162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b210283937b7b360991b604482015290519081900360640190fd5b610df3600b611a75565b6000610dff600b611a7e565b9050610e0b8982611a82565b610e158189611bbc565b98975050505050505050565b6001600160a01b0382166000908152600160205260408120610e49908363ffffffff611c1f16565b90505b92915050565b610c338383836040518060200160405280600081525061128a565b600080610e8160028463ffffffff611c2b16565b509392505050565b6000610e4c82604051806060016040528060298152602001615a64602991396002919063ffffffff611c4716565b60098054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610af05780601f10610ac557610100808354040283529160200191610af0565b60006001600160a01b038216610f5f5760405162461bcd60e51b815260040180806020018281038252602a815260200180615a3a602a913960400191505060405180910390fd5b6001600160a01b0382166000908152600160205260409020610e4c90611870565b610f886117fe565b600a546001600160a01b03908116911614610fea576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600a80546001600160a01b0319169055565b600a546001600160a01b031690565b60078054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610af05780601f10610ac557610100808354040283529160200191610af0565b60006110ae6117fe565b600a546001600160a01b03908116911614611110576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b611119826109a5565b600c846040518082805190602001908083835b6020831061114b5780518252601f19909201916020918201910161112c565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092909255506001949350505050565b61118d6117fe565b6001600160a01b0316826001600160a01b031614156111f3576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b80600560006112006117fe565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff1916921515929092179091556112446117fe565b60408051841515815290516001600160a01b0392909216917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319181900360200190a35050565b61129b6112956117fe565b8361187b565b6112d65760405162461bcd60e51b8152600401808060200182810382526031815260200180615b806031913960400191505060405180910390fd5b6112e284848484611c5e565b50505050565b60606112f3826117eb565b61132e5760405162461bcd60e51b815260040180806020018281038252602f815260200180615b30602f913960400191505060405180910390fd5b60008281526008602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156113c35780601f10611398576101008083540402835291602001916113c3565b820191906000526020600020905b8154815290600101906020018083116113a657829003601f168201915b5050600954939450505050600260001961010060018416150201909116046113ec5790506109a0565b8051156114bd5760098160405160200180838054600181600116156101000203166002900480156114545780601f10611432576101008083540402835291820191611454565b820191906000526020600020905b815481529060010190602001808311611440575b5050825160208401908083835b602083106114805780518252601f199092019160209182019101611461565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150506109a0565b60096114c884611cb0565b60405160200180838054600181600116156101000203166002900480156115265780601f10611504576101008083540402835291820191611526565b820191906000526020600020905b815481529060010190602001808311611512575b5050825160208401908083835b602083106115525780518252601f199092019160209182019101611533565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050919050565b600061159961574f565b6040805180820182528751815260208089015181830152908352815160808101835287515181840190815288518301516060808401919091529082528351808501855289840180515182525184015181850152828401528483019190915282518084018452875181528783015181840152848401528251605c808252610ba08201909452909290918201610b808036833701905050905060005b605c81101561166c578481605c811061164857fe5b602002015182828151811061165957fe5b6020908102919091010152600101611633565b506116778183611d8b565b6116865760019250505061168d565b6000925050505b949350505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6116cb6117fe565b600a546001600160a01b0390811691161461172d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166117725760405162461bcd60e51b81526004018080602001828103825260268152602001806159676026913960400191505060405180910390fd5b600a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b8051602081830181018051600c8252928201919093012091525481565b6000610e4c60028363ffffffff611f6116565b3390565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061183782610e89565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610e4c82611a7e565b6000611886826117eb565b6118c15760405162461bcd60e51b815260040180806020018281038252602c8152602001806159b1602c913960400191505060405180910390fd5b60006118cc83610e89565b9050806001600160a01b0316846001600160a01b031614806119075750836001600160a01b03166118fc84610afb565b6001600160a01b0316145b8061168d575061168d8185611695565b826001600160a01b031661192a82610e89565b6001600160a01b03161461196f5760405162461bcd60e51b8152600401808060200182810382526029815260200180615b076029913960400191505060405180910390fd5b6001600160a01b0382166119b45760405162461bcd60e51b815260040180806020018281038252602481526020018061598d6024913960400191505060405180910390fd5b6119bf838383610c33565b6119ca600082611802565b6001600160a01b03831660009081526001602052604090206119f2908263ffffffff611f6d16565b506001600160a01b0382166000908152600160205260409020611a1b908263ffffffff611f7916565b50611a2e6002828463ffffffff611f8516565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b80546001019055565b5490565b6001600160a01b038216611add576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b611ae6816117eb565b15611b38576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b611b4460008383610c33565b6001600160a01b0382166000908152600160205260409020611b6c908263ffffffff611f7916565b50611b7f6002828463ffffffff611f8516565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b611bc5826117eb565b611c005760405162461bcd60e51b815260040180806020018281038252602c815260200180615adb602c913960400191505060405180910390fd5b60008281526008602090815260409091208251610c3392840190615781565b6000610e498383611f9b565b6000808080611c3a8686611fff565b9097909650945050505050565b6000611c5484848461207a565b90505b9392505050565b611c69848484611917565b611c7584848484612144565b6112e25760405162461bcd60e51b81526004018080602001828103825260328152602001806159356032913960400191505060405180910390fd5b606081611cd557506040805180820190915260018152600360fc1b60208201526109a0565b8160005b8115611ced57600101600a82049150611cd9565b60608167ffffffffffffffff81118015611d0657600080fd5b506040519080825280601f01601f191660200182016040528015611d31576020820181803683370190505b50859350905060001982015b8315611d8257600a840660300160f81b82828060019003935081518110611d6057fe5b60200101906001600160f81b031916908160001a905350600a84049350611d3d565b50949350505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001611db66157ff565b611dbe6122c4565b9050806080015151855160010114611e12576040805162461bcd60e51b81526020600482015260126024820152711d995c9a599a595c8b5898590b5a5b9c1d5d60721b604482015290519081900360640190fd5b611e1a615846565b50604080518082019091526000808252602082018190525b8651811015611eec5783878281518110611e4857fe5b602002602001015110611ea2576040805162461bcd60e51b815260206004820152601f60248201527f76657269666965722d6774652d736e61726b2d7363616c61722d6669656c6400604482015290519081900360640190fd5b611ee282611edd85608001518460010181518110611ebc57fe5b60200260200101518a8581518110611ed057fe5b6020026020010151614e6f565b614f04565b9150600101611e32565b50611f0f818360800151600081518110611f0257fe5b6020026020010151614f04565b9050611f45611f218660000151614f95565b8660200151846000015185602001518587604001518b60400151896060015161501f565b611f555760019350505050610e4c565b50600095945050505050565b6000610e49838361516f565b6000610e498383615187565b6000610e49838361524d565b6000611c5484846001600160a01b038516615297565b81546000908210611fdd5760405162461bcd60e51b81526004018080602001828103825260228152602001806159136022913960400191505060405180910390fd5b826000018281548110611fec57fe5b9060005260206000200154905092915050565b8154600090819083106120435760405162461bcd60e51b8152600401808060200182810382526022815260200180615a8d6022913960400191505060405180910390fd5b600084600001848154811061205457fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600082815260018401602052604081205482816121155760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156120da5781810151838201526020016120c2565b50505050905090810190601f1680156121075780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061212857fe5b9060005260206000209060020201600101549150509392505050565b6000612158846001600160a01b031661532e565b6121645750600161168d565b606061228a630a85bd0160e11b6121796117fe565b88878760405160240180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156121f25781810151838201526020016121da565b50505050905090810190601f16801561221f5780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050604051806060016040528060328152602001615935603291396001600160a01b038816919063ffffffff61533416565b905060008180602001905160208110156122a357600080fd5b50516001600160e01b031916630a85bd0160e11b1492505050949350505050565b6122cc6157ff565b6040805180820182527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e281527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d19266020808301919091529083528151608080820184527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c8285019081527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab606080850191909152908352845180860186527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a781527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8818601528385015285840192909252835180820185527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28186019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed828501528152845180860186527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b81527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa818601528185015285850152835190810184527f187dfd92e719cd335fec9868d596e847c0a6a9c3ce8fb650fd7241df14dbcdd68185019081527f0597134ad9f10975e7f84d2cef6b5fdd0d0db6a7c09392522406567ac086d316828401528152835180850185527f10e7fdf5ad93d2ce02e82a0f4bfcf7eb249faa09b8b20cb153815bd83265e7f381527f2693890a80919bfce04dd8182a121053eaa1404a7b97116318226710512700588185015281840152908401528151605d808252610bc08201909352919082015b612550615846565b81526020019060019003908161254857505060808201908152604080518082019091527f07aec27ffff250db6d985f05f437650fd7cffdf4a44adbf9c29d77cca23daa0d81527f1c5c63608c2d5f4a9733dbdeea3e2a61c97122655e7accfab5d1311aead937656020820152905180516000906125c957fe5b602002602001018190525060405180604001604052807f07d37a9d21fca1cac67946fad435a9e880cc64c4e02c8df2cbb35614fc4b307281526020017ed3cb5921a0f950f6d0082f3d42f2db2f7e80fb9f49ea65362827e10e79c5f3815250816080015160018151811061263957fe5b602002602001018190525060405180604001604052807f0952163eba5cde4a1a0c95dd601b8129a68ce33920483d66bda40603ccfc6a4281526020017f21d3832942d0fbffa9235ecde8ac1f9577bb17e80e0ca8e6620f155f4834362a81525081608001516002815181106126aa57fe5b602002602001018190525060405180604001604052807f1551f0a574dc2e49aac367fc8ae4f8b18f7b71055725a81adaf853ba06afba6d81526020017f27cbdb3aaea852b88eff0686d4e0b4af5eaaeaf8b2a20efcfa2277fa36f71e2f815250816080015160038151811061271b57fe5b602002602001018190525060405180604001604052807f2b144d127dd24ae0a9e9220e4f8fc9546edae17821626d58d08a7c9888d7399f81526020017f1baa223fc7aa544ae40bb79dbc4845a857f9130a6d6b805293b1940a9007a05f815250816080015160048151811061278c57fe5b602002602001018190525060405180604001604052807f1d770663948b2f25ca7e61b3f8e81a612b4e560d360bbedc917b337d5741998b81526020017f054b68be4cd31006e150b34e161a698c735a36498b71b107a786fdce5076a46581525081608001516005815181106127fd57fe5b602002602001018190525060405180604001604052807f1dee024525803bb48a1cf4bdde18246e6697b8d516fd0aab2421fe974f97059c81526020017f04ab8b55689eaf2f1a2f49b422a90270356549ba3d1c688178e47d4e5629b7e4815250816080015160068151811061286e57fe5b602002602001018190525060405180604001604052807f16cf48e1929c4f00108d364c5a807af2a04a581de388faf2821f3ffd46eaaff381526020017f1bc6e0688e569b3b063266b7240685f5cfe0afee660eda715a47444c753ffca781525081608001516007815181106128df57fe5b602002602001018190525060405180604001604052807f1ca9c1bc86a8fa272193f7cb0e4fffa103a79606be0766ec6095269a14b86ba481526020017f1f1d1e3be65732de4ec70ad171995f3f2b6030be05e1e7d320eb4becc0628d6c815250816080015160088151811061295057fe5b602002602001018190525060405180604001604052807f0116fcde5898f29c7e55d1d91f0c2227b70d371e1de54981477889de9064554981526020017f2edb6c2f1130fd23b63d3699d4af4291e8548baac62fe12a30d25adf9bf41ead81525081608001516009815181106129c157fe5b602002602001018190525060405180604001604052807f22bf4303a49201263d03f2b89a4730b5bda700d415a4d9b6822ca2c0cb97369881526020017f211f93b3e9978b6a175ca2d860ef4bac6066be15bbd3f8c625e88a5d9fe913de8152508160800151600a81518110612a3257fe5b602002602001018190525060405180604001604052807f2d69a9566927ea3c151b67a152405732c73605289dc8171ca56e80ceaf6502b281526020017ea1e4da216703580e02ccd42cb1c8387dc701ca9d1422ecd1f212c8213839d98152508160800151600b81518110612aa257fe5b602002602001018190525060405180604001604052807f25c4a02da9cf7b6e829fb5583228469644ce2f68881a30e7a676825d005ddaf981526020017f1e1b2623b13c9afae35ff745c72d7fc4bad0097839d81796e93aca634b02dd818152508160800151600c81518110612b1357fe5b602002602001018190525060405180604001604052807f1f81b012c95e73f907fa04c9ff981a8a19139680e7c6261826aa470930645fce81526020017f15964e83d712e5325543e0952278610ea75107bd1d6940333a2da68bee7142aa8152508160800151600d81518110612b8457fe5b602002602001018190525060405180604001604052807f2f1494b7d3d43de380df9efdf084e58a29698883ddbf1e11ded424d2856cfa2881526020017f1aad91e5a87681542d676a4984decdb1cb70742060178df25081114f245c4f148152508160800151600e81518110612bf557fe5b602002602001018190525060405180604001604052807f2474bf57bbb287ba0a398ae7aa4344eec92e3bdb31ec251f3b01ea61d78663ab81526020017f24c773d7f9e8e4315fb9db10d4ed0fcf400b5399774a9bc38c8b7d9e3857c9078152508160800151600f81518110612c6657fe5b602002602001018190525060405180604001604052807f2e5141a92768bb4e9c42ec7153fb68245f7cf88cde6fe3d302cb3dc28657c5a081526020017f028f97dff89911ee767dcfd3a3b7e73e1f480f5f89c45b1c044ed612a6d25f068152508160800151601081518110612cd757fe5b602002602001018190525060405180604001604052807f149feaa2652984f1978c63f13f768c235019059e3eaacc9f79b95d3414b24dbe81526020017f120836278089ee59f29a12d7799143737323be52bba819b6255c45f6bd8c51938152508160800151601181518110612d4857fe5b602002602001018190525060405180604001604052807f2d698d9f1dd8edf6845cee2540742a12f7368cce2915b5c74b281db46c42143f81526020017f205ede6f34ebfc64b8fd360d66307b399cc6f2272cc04758e079514392635cc98152508160800151601281518110612db957fe5b602002602001018190525060405180604001604052807f16d8afedb94b191686611f8f250948c79a81bc842436c01fa1fc7497cbd3c20281526020017f24ce73b17b81862ccd7088cb5a7a26a09fc617a1e81aa1f3282ec7a1369a220f8152508160800151601381518110612e2a57fe5b602002602001018190525060405180604001604052807f2f9af357efdb7e04c2673f00dac0f95d1f70840c786562597ca3cb21f348033f81526020017f1299c40ebc1a548ef5c9bfe701be85efdb001fb9f6aee9a2c146d1c843ab4d208152508160800151601481518110612e9b57fe5b602002602001018190525060405180604001604052807f0ad8facd20a29b9dbf78264a0ca4138ac1063cbe35d2e6108be40ccd4782c0bf81526020017f0efb78b2a4a704ff30d935d6a18c4fee2d9143acd347a7b28cde05171c6e18d58152508160800151601581518110612f0c57fe5b602002602001018190525060405180604001604052807f1f63a1b1d499daa6953848d43ddd96fa72484cfc3bc6e84843bde00a57d4caf681526020017f178b21620126bbafaf71833910a1cc2ae3d4fda42b0471b229373106b5c03ba78152508160800151601681518110612f7d57fe5b602002602001018190525060405180604001604052807f2df596d8b6c16cf9967d0c546326573fdd25ac0d5fe765b4a768191dc52c3d9b81526020017f295138d31f447ba48e6af7c8336e37151f1e204a457654717034f859b87cb86b8152508160800151601781518110612fee57fe5b602002602001018190525060405180604001604052807f0ab1a84ea90355d586254d32134ffa223330486f6ae7c7bb91625e1b7a58120681526020017f228ae22be73520f9ca36edee7b7ec2da30a1c67d4af3884304d03e5dbd721929815250816080015160188151811061305f57fe5b602002602001018190525060405180604001604052807f292f423e38bc696c7ed07818ab799b3a98cadc8e5804f5160bdb871d32fd163881526020017f0e743bca7ee8822ae6e8a5fa85af9e4db534d01fbe60262dd36fca7ccd9aa12181525081608001516019815181106130d057fe5b602002602001018190525060405180604001604052807f0e0d0c12e37e03ca81a25836fe3485e8e1f59c03ffd9e284d013ebfedfb1c32881526020017f20d25fbfa6066cfcfc65f05994f512e3689e5a8366506675ad718aea2d073c8e8152508160800151601a8151811061314157fe5b602002602001018190525060405180604001604052807f282fbc0ef603a3a3697b6b51fdae820d9a690d6b0408df21e7f2d6a7a66c85fc81526020017f20d5c260e4afaa5d66ccd9d7583c03bd5d5ea016570c7c71d19c6234cbcb31ca8152508160800151601b815181106131b257fe5b602002602001018190525060405180604001604052807f214ccf8b954e41db5d71e71ee50d146a7a92fb82d8c5ef87e4c3617095ea391d81526020017f2afd3918830a0b363e7917ae95125a120108369ff0f333cafb7cf3be7729d5f68152508160800151601c8151811061322357fe5b602002602001018190525060405180604001604052807f0159a90ef6e50991b60312f7ba0ae147b1bee54d003e960064c967c4b197d7fa81526020017f10b4c99217cb618085668dfcd7e73c47e92fb906dbc1411fa4db08a18aba3fe58152508160800151601d8151811061329457fe5b602002602001018190525060405180604001604052807f083984d4721ef68ee42d64b942ad7e7bec3f54b32c37ccd2999407bbbda546f481526020017f2c1447a059f3abf760fa2af7878c919f582f45e5b320cb9c9793f4a8efba44438152508160800151601e8151811061330557fe5b602002602001018190525060405180604001604052807f26b035d41839e2268d99430f85d55bb5042a0b5c6274ed48b3d6ae2d757d41c581526020017f1bb0d5b8864eb35764d59d53cb6a0f91bb88155fd5829e21a81c6171f71b55458152508160800151601f8151811061337657fe5b602002602001018190525060405180604001604052807f236122f2b5204d39129d38f700a6f118dd90cf333ef5e896478969ba11b9902081526020017f1cf35fe560a8a69edbf08ab181bebaee509185c5b7c2695b1d246d3a2802363881525081608001516020815181106133e757fe5b602002602001018190525060405180604001604052807f2d274a102f2f309df0ad0056ef451af6a9050692c2070fc02137598f41f1e5d581526020017f259a0a658ac04dc424f3077e43469fc18b0cfa10203e513631c1c262f6d8bdb6815250816080015160218151811061345857fe5b602002602001018190525060405180604001604052807f091ff54f665e08de531c450ae704feeb6216ee468242c57cd66d1b354b30eff381526020017f032c65a8948c92130cb9007b055f2bbc7ea3380d5a5a263ca3a6212398b1077281525081608001516022815181106134c957fe5b602002602001018190525060405180604001604052807f11039b8d41f22c6991fd993a80d3fde5aac5f11f195bb5ce8ac585b2c606542881526020017f23e07fd1ff297e33b76cc233476332c4c81c14f89027044065a00f863761dca6815250816080015160238151811061353a57fe5b602002602001018190525060405180604001604052807f18599e50b6d72fa196b870a5811445c471551b4e9257adf29298710466b7bf5481526020017f19de370641a6a2503be9e03f968c479c28b46462edf1af19843fe85d3e70053f81525081608001516024815181106135ab57fe5b602002602001018190525060405180604001604052807f0521e1c5797db41ab4604238f4f1a9d0a13188e612fa6c5996dbc3f1edc62d4e81526020017f19502018c981089b506b0d507cf6a68b900e2cfe5644c2ae8f1063054469a0bf815250816080015160258151811061361c57fe5b602002602001018190525060405180604001604052807f2fa33907987526b815cb1a9fb9a5520e24bf0308be0ab8fdfbd98aa00013bcd881526020017f1b208f8e2c8f9d66e40ae6ca22cefc0fdf4c911190b2a1e49ad08573ea4145ce815250816080015160268151811061368d57fe5b602002602001018190525060405180604001604052807f0f73b5007a79768f90076470bc892f89eb783b790e6088b16429742416290fd281526020017f24642161f22a4e619b86c622f977c20dd37c627fc0452ceae6b552f1a1fad05181525081608001516027815181106136fe57fe5b602002602001018190525060405180604001604052807f01611961456a577ffb84cbfa30dcb5583ad01d0acaa31f2d419328d61b50a64781526020017f2ffb029bc19091c23c9985837dc32edf3ecc938a9bb118e4a9b507ca6605a082815250816080015160288151811061376f57fe5b602002602001018190525060405180604001604052807f28c99f5f38c784ad70556bea4651f1e70cb5215957e5160f116fff31647d511181526020017f18c9193508642414a5fe222d207d987dbea2fc9bc25cc0434bce904dabe542d281525081608001516029815181106137e057fe5b602002602001018190525060405180604001604052807f27ccb06a81de8d1722d0a5a31d8474ce87e6c3d0d3aa4a3c4690a1dfc90478ef81526020017f07601a2bd6fe14437c32e2947c2db81124676cbf6f1d74e1194698195a118a888152508160800151602a8151811061385157fe5b602002602001018190525060405180604001604052807f0412d59060a1c361db878e85b1a897e72092ece81f4905c3900aee22b8dc4c1481526020017f116f9bd7b5fa0db3abf62c3c934cd7879d312497e5104d60c73db3ad8b08cdf08152508160800151602b815181106138c257fe5b602002602001018190525060405180604001604052807f2eeffbb55256fbb8b940aa388aa1a8370789ce6e47da0c93e8ce3be437dfe8a581526020017f138ede7052c7e892a91d61a62d624431dc41c0aee98f8098b98211d9edec00038152508160800151602c8151811061393357fe5b602002602001018190525060405180604001604052807f0ad063b48c40c95c34babcb9abe19bbc3fe1f240f178d81872dc9ee96c00392781526020017f137d9c5c284c1c192b7107d20fa99b4979672603983f112b4e11bfd2ebe222e78152508160800151602d815181106139a457fe5b602002602001018190525060405180604001604052807f05af4415a11e7da60c1e29a0684081a5c0950f20d6e4425a53e9ac67b434dcfd81526020017f209034255f5f71d8df1d01246568dd124d93fb2fa4ec6a17845276783e5b9b5d8152508160800151602e81518110613a1557fe5b602002602001018190525060405180604001604052807f1cfb1f15423945a2e26cbff0eabae000f96cceaf766486e9e41fbf5fced4d12781526020017f2454b1eced9a4b4ac7304747b287eb4a8d9b3873b7e138d86938967e90d3bc8f8152508160800151602f81518110613a8657fe5b602002602001018190525060405180604001604052807f30161ff6475281fc1d95837e1ca944fc21515581386ac8e422b4a263648919b581526020017f14c036883e2df8d5e2a05db021f6c55a8b843e6e7b008f9314f27b9e05b658a98152508160800151603081518110613af757fe5b602002602001018190525060405180604001604052807f15bce9591b89270885abe436ef6f302a9fc4aec53b86515e7286e8ae0949da9d81526020017f165cd4467f7a22626d4db17dfd5ca0a58feeee42a4f6b30cc5c8766dd7c7e8cc8152508160800151603181518110613b6857fe5b602002602001018190525060405180604001604052807f26a507ab3c86125c73780d7ad6757eff1ce2985a30744a58ee606c784a07612a81526020017f27464097d640b396b23e23859c2d6d39f0b091f221fa23b999b59845d83b39b58152508160800151603281518110613bd957fe5b602002602001018190525060405180604001604052807f2bf883a76dcc4804d9413342dccb1c5a80b7541d7c78cfec257fdcf2ab07828d81526020017f26e58f8e40a3d56f48b78e2453798a45587d4c67ef5fdf7bde075702ee7ef46c8152508160800151603381518110613c4a57fe5b602002602001018190525060405180604001604052807f0d56bcb470074357d12c764579afd06b888ce19a28e0ecd86c7b0f285ef9ebb681526020017f06a5821de42a46832a0b73010f10b9975b0dc3d6059f2f8d00a879f1004a0fab8152508160800151603481518110613cbb57fe5b602002602001018190525060405180604001604052807f281ed868552d6c418f9cc1b5518f117a88e7141a03f8ddbb1f31a8693f00f5c081526020017f0b617feae75ff88d4828e19985489646b538cd01553fba79de17395e8d18d2688152508160800151603581518110613d2c57fe5b602002602001018190525060405180604001604052807f217bca4e69284706b8ad444ac2ff9f67c7aedfeee183c085e6f10274c8daa9ff81526020017f10d138d58489776759cb90036e50efed7f1cc23ba81d06d5b578754d6d9636f98152508160800151603681518110613d9d57fe5b602002602001018190525060405180604001604052807f09b99229f251567bfe5d9011ce22799cbcad4f2432ac58ab42a116d3312fe5d881526020017f2bbaf53a70df93dd9f53ef2cf6d3358ce066d9c0ca7a6a60a77d0225f0b24d5a8152508160800151603781518110613e0e57fe5b602002602001018190525060405180604001604052807f1f98296b7d157a8088054e33cf97ab013701ea2ec0aa047e6ec1c945d428b71581526020017f091655ae293404e4de7289e7053c646937a738f7db04c5329e0017bf48ea35788152508160800151603881518110613e7f57fe5b602002602001018190525060405180604001604052807f0c8b87f8cf77d7f9867d1458598ea2dad51792a7f4521ee16ac7f80734e786e481526020017f030ee7cef3635175e9ce18280124b324195a018be7036cb780c68a6583a926298152508160800151603981518110613ef057fe5b602002602001018190525060405180604001604052807f119ed6a1f56456b07504c94834ef8166ff96ce3831d520e6ef05063a7c30a67d81526020017f2b6105c472ae27d3dddc46214b05a3ea745ad3408f0360597666998476c1b2038152508160800151603a81518110613f6157fe5b602002602001018190525060405180604001604052807f0a601429742dee5dad903a19582d1c616b5095d16a7f79c26e24dc4e4a0fa96a81526020017f0df7f6cc86c548233b082b5a9304c21f83716afd7f205f8d99771c8d954f15318152508160800151603b81518110613fd257fe5b602002602001018190525060405180604001604052807f12e39935453e33f7798c18cabd8f80306d49042f35c694dcfd782b310cfb97ad81526020017f01bc3f2dcbd05bdfdba979eec63dcd9b459b1a76ff55b2245ed2c53cb5cf78628152508160800151603c8151811061404357fe5b602002602001018190525060405180604001604052807f11d2d80427d17823a430e75a791e36876b9daf235b76d57b8908c4e9523b910c81526020017f1a3596e8ccf649a97ad4e8b5e74fb8ddc38898b4e1f65bb86178bc700fd186418152508160800151603d815181106140b457fe5b602002602001018190525060405180604001604052807f169fed46cef30a81dbdf57746dd759c121cdd52054f7101f46cbc040a2434f0e81526020017f27a616e9e0d201cc39411f814784f235bba48313bfd838cddcb4a866470e17f28152508160800151603e8151811061412557fe5b602002602001018190525060405180604001604052807f14805cbbccbb2cc53b3516ead7cf47bce53791ecad2eb2a9504dd6690a85d1a181526020017f1c07bf99cd1398978bc0e6788ae749ab4e1bc14f4eff94396c7d58c2aaf580268152508160800151603f8151811061419657fe5b602002602001018190525060405180604001604052807f2f53137a82a9261416d25da71af130f17e31849a2544a91771a518c650bb0a7c81526020017f2a7e100fe915ca90149e49fe45fc2c7bbe27caa5eb0ea23c543fe9ec0fe66f99815250816080015160408151811061420757fe5b602002602001018190525060405180604001604052807f06369c510d7401cadd098475d380afcf3faa5cfe78f9094f837891b42b64e1cf81526020017f16819e58bd6a3e3bcda613b60c33358ae6661a2ba49648d700a616c1be0ab791815250816080015160418151811061427857fe5b602002602001018190525060405180604001604052807f033decb1dea39a5492bb1167fce16af4b6ac61a1d0b05ff00138dc0d74b1960981526020017f051a2c1773eae2ac856951c8db98a8669bee5ecdda38c32b9f8856b660ad451981525081608001516042815181106142e957fe5b602002602001018190525060405180604001604052807f24998553c5caf4580cd77c196795f8c3038de5b863a9c73da1e68f4046bc5a9a81526020017f0932581deaee2e619674fead1afa5354369e84578cd94e8d42991416dae4b05c815250816080015160438151811061435a57fe5b602002602001018190525060405180604001604052807f0e16383a14c0d404c0aeb73137601d5cb9cf75af91a6733fad673c94136fae7f81526020017f14c2b0a41f5291caff425a3cfff8e040c04b7c1a246e61f654d14420726ed28881525081608001516044815181106143cb57fe5b602002602001018190525060405180604001604052807f25450acba43d317cecd64f29baedd0e389f37eaa0d4395f53fb490fb7a0c5b5b81526020017f0698fb0108e7675067bd616be8efdfd9f63cdee1361463a4ecc288b7e3c6bd6f815250816080015160458151811061443c57fe5b602002602001018190525060405180604001604052807f05d10333fbc09997b244c9f5b6db361ca2b2374ba903cabb884a6f1cdccfdfe081526020017f110cd9fe31becffc5b9897847314bf7144a8b4a826bf7d7b5ded1d8956bbee0181525081608001516046815181106144ad57fe5b602002602001018190525060405180604001604052807f12b3c3ea87416f2c8caaf5d4046fe3823da299cbe0b7d8118fd91c2b6677389881526020017f1d7be3dba263d3724b9829f097adb95612f80c381d46a261fa0036cd18b3e998815250816080015160478151811061451e57fe5b602002602001018190525060405180604001604052807f0d7e793d1109fc9c82901bdb4afe04b53d6b88049eeab4a58da7ea867111379781526020017f1e9f52f7a92dea478cc8f5763b7e572413bb32a8f1bb4ed1b16d27e653fac550815250816080015160488151811061458f57fe5b602002602001018190525060405180604001604052807f25087840ca74df44dfc590cfc77b146bfc5f79249a43de2ef17b4640b778dc2381526020017f06757a955d1dff4df1400534c7c2086131575e29cb24ab79a7d5bb4881a214a9815250816080015160498151811061460057fe5b602002602001018190525060405180604001604052807f0f39ba8c2b22b3959c78627373f0bf24923501303582e7319ae45d9198be65f781526020017f1cba36ee3c771cf5fc275da71f6b9dab360da6f3ff3e171e8566abbdcfc78c228152508160800151604a8151811061467157fe5b602002602001018190525060405180604001604052807f087b9e8bcf6f394716d70f47dc3f0a88c68ef3e6029f951c21185fc9deea7bd681526020017f01b6b8712b37867788aba9b936fa8f0e49bba62409ceee73f67cd2017c3d63958152508160800151604b815181106146e257fe5b602002602001018190525060405180604001604052807f1d35132cb089c2cdc04e31f12f2bc3eec9f368f089d0d69047062dfe2e62fbf081526020017f1fa6b58905f858f6a5ff3906b7f446b83acb2de1ceb0d7d99bd146a862de4c058152508160800151604c8151811061475357fe5b602002602001018190525060405180604001604052807f0f2f78d86b9a9f419a2ebff4a30b434f878552c609028a919054b05c825450f681526020017f0b54f0c5b31ec8ae3f807f0370b805c0991be9e6757565dacb44a498a8d4ae178152508160800151604d815181106147c457fe5b602002602001018190525060405180604001604052807e22a20b550dee86e70d4e7d0b21d57f2f61499b37e0ddbc2f9f7fd1d562dc2081526020017f1f6eb3c43f4ff86f97296e3fa14c41fd90c4e94210cd2f65f9dba71be36efa228152508160800151604e8151811061483457fe5b602002602001018190525060405180604001604052807f20a9276710f353a656a6f2073e545e20ea683090e0a9d1a7a61bd92f5abb833881526020017f09d7a7d4e5fdd3e79f9d656e838133f914561ba6de554dc01e11af5b23acbd698152508160800151604f815181106148a557fe5b602002602001018190525060405180604001604052807f2db7a779b90dfe0a1e2865b916fc76183c900e376cfff1d0face8085075ace6c81526020017f08614ea3c51e85fe06d498b99ca5a83105015490adb6524faffae38c894b7882815250816080015160508151811061491657fe5b602002602001018190525060405180604001604052807f251d4da63c27cc543bb7104d26321daf43445954fb6d289a37a83abd2ccb871281526020017f2732667bffd19221ca4828095eeee2fcad2318956fd003726673edccd92ef862815250816080015160518151811061498757fe5b602002602001018190525060405180604001604052807f0708bc430c983fe7eaa94d972a9f1bf7480d30ae184008306b1b4e9d068fdc4781526020017f2a5093514288133c7dbba8863be74e4f41613db13492ec09a24691516426b5ea81525081608001516052815181106149f857fe5b602002602001018190525060405180604001604052807f2281bdf00e4dd7231a115557514647bad0ce441d4e2513062c321f8edc8bfd0681526020017f07d9923caac5021063362fa4ce3d32e208cb0f04a76a4410b26b49816a02ed7b8152508160800151605381518110614a6957fe5b602002602001018190525060405180604001604052807f1ac68426574a77da02d719e74537a2d7eef91c5f333025e126b1737c6ac8bd8581526020017f1c1b62deee065e331dac6f469341052ef41493f45f83a4726c394bfb179ccc368152508160800151605481518110614ada57fe5b602002602001018190525060405180604001604052807f108cd131c2ec721c95d0bd7ca65d9f348e090b2c50aecc0571630b685a728b9381526020017f25ab69aae4b96d201d5beba483916f090c64ffa9ad440eb96b35aa38ea8596288152508160800151605581518110614b4b57fe5b602002602001018190525060405180604001604052807f16b73312018ea4434c3ddbf50fa5a7cf4108ceaee38d2a3b516198d33e3c8dcd81526020017f1666b2e45504a9374e04a29cfc7dafcb4b2dd51b2954fb299c779255f11c07388152508160800151605681518110614bbc57fe5b602002602001018190525060405180604001604052807f167e266d2f89c75e6d7d922fcb690431a4e36daf079e7766296db4a4ecbb21f281526020017efe786492fc997a473322fec941f983b329edfbba070d2bfd939c65dc9ff1338152508160800151605781518110614c2c57fe5b602002602001018190525060405180604001604052807f056a9c5bf67220e4183dc53faccd14272572b83f894ecb7a4885726ef7a6731481526020017f1d907498e07909cdcacd509412f10690bb0b967e4827757a80c8e1a598d5e2118152508160800151605881518110614c9d57fe5b602002602001018190525060405180604001604052807f1aca69de4538ce2af75e45281ff9b1dabe560c1448d128d564c24c7108fa47e481526020017f0144c2367086683bae5feb716d4e426587ac1846cee2b75d8f75a68fe39f09fe8152508160800151605981518110614d0e57fe5b602002602001018190525060405180604001604052807f08ab65c6dfc4867ed59e5df5e5b72e9a81fdce84e64bc45c9a60706280f9981381526020017f3050cd1908caf1816693521dadc12b90f4a5d622225af7094d9e12c53b3dbad88152508160800151605a81518110614d7f57fe5b602002602001018190525060405180604001604052807f251db892d55f4fb5a2fbbe2f12e51484c5c60f2157b634f92b1f90afbd3f50f581526020017f0ecc68b232f17ae44ff2359fc2c92e22381fa8dfb5c9aeea679eab457e7122ba8152508160800151605b81518110614df057fe5b602002602001018190525060405180604001604052807f02f915c95b0cdc1c16e9ed288b367190e94f9d95630617ea740dc0c7bdce422b81526020017f02a8c38ad500e3bc3177712e65fd4495e33a2f801a69fd002fd13749959a58e08152508160800151605c81518110614e6157fe5b602002602001018190525090565b614e77615846565b614e7f615860565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa9050808015614eb257614eb4565bfe5b5080614efc576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b604482015290519081900360640190fd5b505092915050565b614f0c615846565b614f1461587e565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa9050808015614eb2575080614efc576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b604482015290519081900360640190fd5b614f9d615846565b81517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4790158015614fd057506020830151155b15614ff057505060408051808201909152600080825260208201526109a0565b6040518060400160405280846000015181526020018285602001518161501257fe5b0690920390915292915050565b60408051600480825260a0820190925260009160609190816020015b615043615846565b81526020019060019003908161503b57505060408051600480825260a0820190925291925060609190602082015b61507961589c565b8152602001906001900390816150715790505090508a8260008151811061509c57fe5b602002602001018190525088826001815181106150b557fe5b602002602001018190525086826002815181106150ce57fe5b602002602001018190525084826003815181106150e757fe5b6020026020010181905250898160008151811061510057fe5b6020026020010181905250878160018151811061511957fe5b6020026020010181905250858160028151811061513257fe5b6020026020010181905250838160038151811061514b57fe5b60200260200101819052506151608282615343565b9b9a5050505050505050505050565b60009081526001919091016020526040902054151590565b6000818152600183016020526040812054801561524357835460001980830191908101906000908790839081106151ba57fe5b90600052602060002001549050808760000184815481106151d757fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061520757fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610e4c565b6000915050610e4c565b6000615259838361516f565b61528f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610e4c565b506000610e4c565b6000828152600184016020526040812054806152fc575050604080518082018252838152602080820184815286546001818101895560008981528481209551600290930290950191825591519082015586548684528188019092529290912055611c57565b8285600001600183038154811061530f57fe5b9060005260206000209060020201600101819055506000915050611c57565b3b151590565b6060611c5484846000856155e2565b60008151835114615394576040805162461bcd60e51b81526020600482015260166024820152751c185a5c9a5b99cb5b195b99dd1a1ccb59985a5b195960521b604482015290519081900360640190fd5b82516006810260608167ffffffffffffffff811180156153b357600080fd5b506040519080825280602002602001820160405280156153dd578160200160208202803683370190505b50905060005b83811015615562578681815181106153f757fe5b60200260200101516000015182826006026000018151811061541557fe5b60200260200101818152505086818151811061542d57fe5b60200260200101516020015182826006026001018151811061544b57fe5b60200260200101818152505085818151811061546357fe5b60209081029190910101515151825183906002600685020190811061548457fe5b60200260200101818152505085818151811061549c57fe5b602090810291909101015151600160200201518282600602600301815181106154c157fe5b6020026020010181815250508581815181106154d957fe5b6020026020010151602001516000600281106154f157fe5b602002015182826006026004018151811061550857fe5b60200260200101818152505085818151811061552057fe5b60200260200101516020015160016002811061553857fe5b602002015182826006026005018151811061554f57fe5b60209081029190910101526001016153e3565b5061556b6158bc565b6000602082602086026020860160086107d05a03fa9050808015614eb25750806155d4576040805162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b604482015290519081900360640190fd5b505115159695505050505050565b60606155ed8561532e565b61563e576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b6020831061567d5780518252601f19909201916020918201910161565e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146156df576040519150601f19603f3d011682016040523d82523d6000602084013e6156e4565b606091505b509150915081156156f857915061168d9050565b8051156157085780518082602001fd5b60405162461bcd60e51b81526020600482018181528651602484015286518793919283926044019190850190808383600083156120da5781810151838201526020016120c2565b6040518060600160405280615762615846565b815260200161576f61589c565b815260200161577c615846565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106157c257805160ff19168380011785556157ef565b828001600101855582156157ef579182015b828111156157ef5782518255916020019190600101906157d4565b506157fb9291506158da565b5090565b6040518060a00160405280615812615846565b815260200161581f61589c565b815260200161582c61589c565b815260200161583961589c565b8152602001606081525090565b604051806040016040528060008152602001600081525090565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806158af6158f4565b815260200161577c6158f4565b60405180602001604052806001906020820280368337509192915050565b610af891905b808211156157fb57600081556001016158e0565b6040518060400160405280600290602082028036833750919291505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e546f6b656e55524920646f6573206e6f74206d61746368207a6b20696e70757420686173684552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644164647265737320646f6573206e6f74206d61746368207a6b20696e7075742061646472657373a264697066735822122021f54d7864f51e9bb248014970d6edccb1b8f2b5d790ddfe596adf154cd41f0a64736f6c634300060b0033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101735760003560e01c80636c0360eb116100de578063a22cb46511610097578063cf04a14f11610071578063cf04a14f1461078d578063e985e9c51461088a578063f2fde38b146108b8578063fb108782146108de57610173565b8063a22cb4651461067e578063b88d4fde146106ac578063c87b56dd1461077057610173565b80636c0360eb1461056657806370a082311461056e578063715018a6146105945780638da5cb5b1461059c57806395d89b41146105a45780639d99a819146105ac57610173565b806323b872dd1161013057806323b872dd146103055780632a08e7991461033b5780632f745c59146104ca57806342842e0e146104f65780634f6ccce71461052c5780636352211e1461054957610173565b806301ffc9a71461017857806303b48ee1146101b357806306fdde0314610219578063081812fc14610296578063095ea7b3146102cf57806318160ddd146102fd575b600080fd5b61019f6004803603602081101561018e57600080fd5b50356001600160e01b031916610982565b604080519115158252519081900360200190f35b6102076004803603610b808110156101ca57600080fd5b8101908080610b800190605c806020026040519081016040528092919082605c602002808284376000920191909152509194506109a59350505050565b60408051918252519081900360200190f35b610221610a64565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025b578181015183820152602001610243565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b3600480360360208110156102ac57600080fd5b5035610afb565b604080516001600160a01b039092168252519081900360200190f35b6102fb600480360360408110156102e557600080fd5b506001600160a01b038135169060200135610b5d565b005b610207610c38565b6102fb6004803603606081101561031b57600080fd5b506001600160a01b03813581169160208101359091169060400135610c49565b6102076004803603610cc081101561035257600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561037c57600080fd5b82018360208201111561038e57600080fd5b803590602001918460018302840111600160201b831117156103af57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080518082018252939695948181019493509150600290839083908082843760009201829052506040805180820190915293969594608081019493509150600290835b828210156104655760408051808201825290808402860190600290839083908082843760009201919091525050508152600190910190602001610427565b505060408051808201825293969594818101949350915060029083908390808284376000920191909152505060408051610b808181019092529295949381810193925090605c908390839080828437600092019190915250919450610ca09350505050565b610207600480360360408110156104e057600080fd5b506001600160a01b038135169060200135610e21565b6102fb6004803603606081101561050c57600080fd5b506001600160a01b03813581169160208101359091169060400135610e52565b6102076004803603602081101561054257600080fd5b5035610e6d565b6102b36004803603602081101561055f57600080fd5b5035610e89565b610221610eb7565b6102076004803603602081101561058457600080fd5b50356001600160a01b0316610f18565b6102fb610f80565b6102b3611034565b610221611043565b61019f6004803603610ba08110156105c357600080fd5b810190602081018135600160201b8111156105dd57600080fd5b8201836020820111156105ef57600080fd5b803590602001918460018302840111600160201b8311171561061057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051610b80818101909252939695948181019493509150605c9083908390808284376000920191909152509194506110a49350505050565b6102fb6004803603604081101561069457600080fd5b506001600160a01b0381351690602001351515611185565b6102fb600480360360808110156106c257600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156106fc57600080fd5b82018360208201111561070e57600080fd5b803590602001918460018302840111600160201b8311171561072f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061128a945050505050565b6102216004803603602081101561078657600080fd5b50356112e8565b61019f6004803603610c808110156107a457600080fd5b6040805180820182529183019291818301918390600290839083908082843760009201829052506040805180820190915293969594608081019493509150600290835b8282101561082557604080518082018252908084028601906002908390839080828437600092019190915250505081526001909101906020016107e7565b505060408051808201825293969594818101949350915060029083908390808284376000920191909152505060408051610b808181019092529295949381810193925090605c90839083908082843760009201919091525091945061158f9350505050565b61019f600480360360408110156108a057600080fd5b506001600160a01b0381358116916020013516611695565b6102fb600480360360208110156108ce57600080fd5b50356001600160a01b03166116c3565b610207600480360360208110156108f457600080fd5b810190602081018135600160201b81111561090e57600080fd5b82018360208201111561092057600080fd5b803590602001918460018302840111600160201b8311171561094157600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506117ce945050505050565b6001600160e01b0319811660009081526020819052604090205460ff165b919050565b60408051605b808252610b8082019092526000916060919060208201610b608036833701905050905060005b605b811015610a0a578381605c81106109e657fe5b60200201518282815181106109f757fe5b60209081029190910101526001016109d1565b508060405160200180828051906020019060200280838360005b83811015610a3c578181015183820152602001610a24565b5050505090500191505060405160208183030381529060405280519060200120915050919050565b60068054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610af05780601f10610ac557610100808354040283529160200191610af0565b820191906000526020600020905b815481529060010190602001808311610ad357829003601f168201915b505050505090505b90565b6000610b06826117eb565b610b415760405162461bcd60e51b815260040180806020018281038252602c815260200180615aaf602c913960400191505060405180910390fd5b506000908152600460205260409020546001600160a01b031690565b6000610b6882610e89565b9050806001600160a01b0316836001600160a01b03161415610bbb5760405162461bcd60e51b8152600401808060200182810382526021815260200180615b5f6021913960400191505060405180910390fd5b806001600160a01b0316610bcd6117fe565b6001600160a01b03161480610bee5750610bee81610be96117fe565b611695565b610c295760405162461bcd60e51b8152600401808060200182810382526038815260200180615a026038913960400191505060405180910390fd5b610c338383611802565b505050565b6000610c446002611870565b905090565b610c5a610c546117fe565b8261187b565b610c955760405162461bcd60e51b8152600401808060200182810382526031815260200180615b806031913960400191505060405180910390fd5b610c33838383611917565b60006001600160a01b0387168083605b602002015114610cf15760405162461bcd60e51b8152600401808060200182810382526027815260200180615bb16027913960400191505060405180910390fd5b610cfa836109a5565b600c886040518082805190602001908083835b60208310610d2c5780518252601f199092019160209182019101610d0d565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205414610d9c5760405162461bcd60e51b81526004018080602001828103825260258152602001806159dd6025913960400191505060405180910390fd5b610da88686868661158f565b610de9576040805162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b210283937b7b360991b604482015290519081900360640190fd5b610df3600b611a75565b6000610dff600b611a7e565b9050610e0b8982611a82565b610e158189611bbc565b98975050505050505050565b6001600160a01b0382166000908152600160205260408120610e49908363ffffffff611c1f16565b90505b92915050565b610c338383836040518060200160405280600081525061128a565b600080610e8160028463ffffffff611c2b16565b509392505050565b6000610e4c82604051806060016040528060298152602001615a64602991396002919063ffffffff611c4716565b60098054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610af05780601f10610ac557610100808354040283529160200191610af0565b60006001600160a01b038216610f5f5760405162461bcd60e51b815260040180806020018281038252602a815260200180615a3a602a913960400191505060405180910390fd5b6001600160a01b0382166000908152600160205260409020610e4c90611870565b610f886117fe565b600a546001600160a01b03908116911614610fea576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600a80546001600160a01b0319169055565b600a546001600160a01b031690565b60078054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610af05780601f10610ac557610100808354040283529160200191610af0565b60006110ae6117fe565b600a546001600160a01b03908116911614611110576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b611119826109a5565b600c846040518082805190602001908083835b6020831061114b5780518252601f19909201916020918201910161112c565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092909255506001949350505050565b61118d6117fe565b6001600160a01b0316826001600160a01b031614156111f3576040805162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015290519081900360640190fd5b80600560006112006117fe565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff1916921515929092179091556112446117fe565b60408051841515815290516001600160a01b0392909216917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319181900360200190a35050565b61129b6112956117fe565b8361187b565b6112d65760405162461bcd60e51b8152600401808060200182810382526031815260200180615b806031913960400191505060405180910390fd5b6112e284848484611c5e565b50505050565b60606112f3826117eb565b61132e5760405162461bcd60e51b815260040180806020018281038252602f815260200180615b30602f913960400191505060405180910390fd5b60008281526008602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156113c35780601f10611398576101008083540402835291602001916113c3565b820191906000526020600020905b8154815290600101906020018083116113a657829003601f168201915b5050600954939450505050600260001961010060018416150201909116046113ec5790506109a0565b8051156114bd5760098160405160200180838054600181600116156101000203166002900480156114545780601f10611432576101008083540402835291820191611454565b820191906000526020600020905b815481529060010190602001808311611440575b5050825160208401908083835b602083106114805780518252601f199092019160209182019101611461565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529150506109a0565b60096114c884611cb0565b60405160200180838054600181600116156101000203166002900480156115265780601f10611504576101008083540402835291820191611526565b820191906000526020600020905b815481529060010190602001808311611512575b5050825160208401908083835b602083106115525780518252601f199092019160209182019101611533565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050919050565b600061159961574f565b6040805180820182528751815260208089015181830152908352815160808101835287515181840190815288518301516060808401919091529082528351808501855289840180515182525184015181850152828401528483019190915282518084018452875181528783015181840152848401528251605c808252610ba08201909452909290918201610b808036833701905050905060005b605c81101561166c578481605c811061164857fe5b602002015182828151811061165957fe5b6020908102919091010152600101611633565b506116778183611d8b565b6116865760019250505061168d565b6000925050505b949350505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6116cb6117fe565b600a546001600160a01b0390811691161461172d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166117725760405162461bcd60e51b81526004018080602001828103825260268152602001806159676026913960400191505060405180910390fd5b600a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b8051602081830181018051600c8252928201919093012091525481565b6000610e4c60028363ffffffff611f6116565b3390565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061183782610e89565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610e4c82611a7e565b6000611886826117eb565b6118c15760405162461bcd60e51b815260040180806020018281038252602c8152602001806159b1602c913960400191505060405180910390fd5b60006118cc83610e89565b9050806001600160a01b0316846001600160a01b031614806119075750836001600160a01b03166118fc84610afb565b6001600160a01b0316145b8061168d575061168d8185611695565b826001600160a01b031661192a82610e89565b6001600160a01b03161461196f5760405162461bcd60e51b8152600401808060200182810382526029815260200180615b076029913960400191505060405180910390fd5b6001600160a01b0382166119b45760405162461bcd60e51b815260040180806020018281038252602481526020018061598d6024913960400191505060405180910390fd5b6119bf838383610c33565b6119ca600082611802565b6001600160a01b03831660009081526001602052604090206119f2908263ffffffff611f6d16565b506001600160a01b0382166000908152600160205260409020611a1b908263ffffffff611f7916565b50611a2e6002828463ffffffff611f8516565b5080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b80546001019055565b5490565b6001600160a01b038216611add576040805162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015290519081900360640190fd5b611ae6816117eb565b15611b38576040805162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015290519081900360640190fd5b611b4460008383610c33565b6001600160a01b0382166000908152600160205260409020611b6c908263ffffffff611f7916565b50611b7f6002828463ffffffff611f8516565b5060405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b611bc5826117eb565b611c005760405162461bcd60e51b815260040180806020018281038252602c815260200180615adb602c913960400191505060405180910390fd5b60008281526008602090815260409091208251610c3392840190615781565b6000610e498383611f9b565b6000808080611c3a8686611fff565b9097909650945050505050565b6000611c5484848461207a565b90505b9392505050565b611c69848484611917565b611c7584848484612144565b6112e25760405162461bcd60e51b81526004018080602001828103825260328152602001806159356032913960400191505060405180910390fd5b606081611cd557506040805180820190915260018152600360fc1b60208201526109a0565b8160005b8115611ced57600101600a82049150611cd9565b60608167ffffffffffffffff81118015611d0657600080fd5b506040519080825280601f01601f191660200182016040528015611d31576020820181803683370190505b50859350905060001982015b8315611d8257600a840660300160f81b82828060019003935081518110611d6057fe5b60200101906001600160f81b031916908160001a905350600a84049350611d3d565b50949350505050565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001611db66157ff565b611dbe6122c4565b9050806080015151855160010114611e12576040805162461bcd60e51b81526020600482015260126024820152711d995c9a599a595c8b5898590b5a5b9c1d5d60721b604482015290519081900360640190fd5b611e1a615846565b50604080518082019091526000808252602082018190525b8651811015611eec5783878281518110611e4857fe5b602002602001015110611ea2576040805162461bcd60e51b815260206004820152601f60248201527f76657269666965722d6774652d736e61726b2d7363616c61722d6669656c6400604482015290519081900360640190fd5b611ee282611edd85608001518460010181518110611ebc57fe5b60200260200101518a8581518110611ed057fe5b6020026020010151614e6f565b614f04565b9150600101611e32565b50611f0f818360800151600081518110611f0257fe5b6020026020010151614f04565b9050611f45611f218660000151614f95565b8660200151846000015185602001518587604001518b60400151896060015161501f565b611f555760019350505050610e4c565b50600095945050505050565b6000610e49838361516f565b6000610e498383615187565b6000610e49838361524d565b6000611c5484846001600160a01b038516615297565b81546000908210611fdd5760405162461bcd60e51b81526004018080602001828103825260228152602001806159136022913960400191505060405180910390fd5b826000018281548110611fec57fe5b9060005260206000200154905092915050565b8154600090819083106120435760405162461bcd60e51b8152600401808060200182810382526022815260200180615a8d6022913960400191505060405180910390fd5b600084600001848154811061205457fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b600082815260018401602052604081205482816121155760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156120da5781810151838201526020016120c2565b50505050905090810190601f1680156121075780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061212857fe5b9060005260206000209060020201600101549150509392505050565b6000612158846001600160a01b031661532e565b6121645750600161168d565b606061228a630a85bd0160e11b6121796117fe565b88878760405160240180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156121f25781810151838201526020016121da565b50505050905090810190601f16801561221f5780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050604051806060016040528060328152602001615935603291396001600160a01b038816919063ffffffff61533416565b905060008180602001905160208110156122a357600080fd5b50516001600160e01b031916630a85bd0160e11b1492505050949350505050565b6122cc6157ff565b6040805180820182527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e281527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d19266020808301919091529083528151608080820184527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c8285019081527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab606080850191909152908352845180860186527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a781527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8818601528385015285840192909252835180820185527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28186019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed828501528152845180860186527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b81527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa818601528185015285850152835190810184527f187dfd92e719cd335fec9868d596e847c0a6a9c3ce8fb650fd7241df14dbcdd68185019081527f0597134ad9f10975e7f84d2cef6b5fdd0d0db6a7c09392522406567ac086d316828401528152835180850185527f10e7fdf5ad93d2ce02e82a0f4bfcf7eb249faa09b8b20cb153815bd83265e7f381527f2693890a80919bfce04dd8182a121053eaa1404a7b97116318226710512700588185015281840152908401528151605d808252610bc08201909352919082015b612550615846565b81526020019060019003908161254857505060808201908152604080518082019091527f07aec27ffff250db6d985f05f437650fd7cffdf4a44adbf9c29d77cca23daa0d81527f1c5c63608c2d5f4a9733dbdeea3e2a61c97122655e7accfab5d1311aead937656020820152905180516000906125c957fe5b602002602001018190525060405180604001604052807f07d37a9d21fca1cac67946fad435a9e880cc64c4e02c8df2cbb35614fc4b307281526020017ed3cb5921a0f950f6d0082f3d42f2db2f7e80fb9f49ea65362827e10e79c5f3815250816080015160018151811061263957fe5b602002602001018190525060405180604001604052807f0952163eba5cde4a1a0c95dd601b8129a68ce33920483d66bda40603ccfc6a4281526020017f21d3832942d0fbffa9235ecde8ac1f9577bb17e80e0ca8e6620f155f4834362a81525081608001516002815181106126aa57fe5b602002602001018190525060405180604001604052807f1551f0a574dc2e49aac367fc8ae4f8b18f7b71055725a81adaf853ba06afba6d81526020017f27cbdb3aaea852b88eff0686d4e0b4af5eaaeaf8b2a20efcfa2277fa36f71e2f815250816080015160038151811061271b57fe5b602002602001018190525060405180604001604052807f2b144d127dd24ae0a9e9220e4f8fc9546edae17821626d58d08a7c9888d7399f81526020017f1baa223fc7aa544ae40bb79dbc4845a857f9130a6d6b805293b1940a9007a05f815250816080015160048151811061278c57fe5b602002602001018190525060405180604001604052807f1d770663948b2f25ca7e61b3f8e81a612b4e560d360bbedc917b337d5741998b81526020017f054b68be4cd31006e150b34e161a698c735a36498b71b107a786fdce5076a46581525081608001516005815181106127fd57fe5b602002602001018190525060405180604001604052807f1dee024525803bb48a1cf4bdde18246e6697b8d516fd0aab2421fe974f97059c81526020017f04ab8b55689eaf2f1a2f49b422a90270356549ba3d1c688178e47d4e5629b7e4815250816080015160068151811061286e57fe5b602002602001018190525060405180604001604052807f16cf48e1929c4f00108d364c5a807af2a04a581de388faf2821f3ffd46eaaff381526020017f1bc6e0688e569b3b063266b7240685f5cfe0afee660eda715a47444c753ffca781525081608001516007815181106128df57fe5b602002602001018190525060405180604001604052807f1ca9c1bc86a8fa272193f7cb0e4fffa103a79606be0766ec6095269a14b86ba481526020017f1f1d1e3be65732de4ec70ad171995f3f2b6030be05e1e7d320eb4becc0628d6c815250816080015160088151811061295057fe5b602002602001018190525060405180604001604052807f0116fcde5898f29c7e55d1d91f0c2227b70d371e1de54981477889de9064554981526020017f2edb6c2f1130fd23b63d3699d4af4291e8548baac62fe12a30d25adf9bf41ead81525081608001516009815181106129c157fe5b602002602001018190525060405180604001604052807f22bf4303a49201263d03f2b89a4730b5bda700d415a4d9b6822ca2c0cb97369881526020017f211f93b3e9978b6a175ca2d860ef4bac6066be15bbd3f8c625e88a5d9fe913de8152508160800151600a81518110612a3257fe5b602002602001018190525060405180604001604052807f2d69a9566927ea3c151b67a152405732c73605289dc8171ca56e80ceaf6502b281526020017ea1e4da216703580e02ccd42cb1c8387dc701ca9d1422ecd1f212c8213839d98152508160800151600b81518110612aa257fe5b602002602001018190525060405180604001604052807f25c4a02da9cf7b6e829fb5583228469644ce2f68881a30e7a676825d005ddaf981526020017f1e1b2623b13c9afae35ff745c72d7fc4bad0097839d81796e93aca634b02dd818152508160800151600c81518110612b1357fe5b602002602001018190525060405180604001604052807f1f81b012c95e73f907fa04c9ff981a8a19139680e7c6261826aa470930645fce81526020017f15964e83d712e5325543e0952278610ea75107bd1d6940333a2da68bee7142aa8152508160800151600d81518110612b8457fe5b602002602001018190525060405180604001604052807f2f1494b7d3d43de380df9efdf084e58a29698883ddbf1e11ded424d2856cfa2881526020017f1aad91e5a87681542d676a4984decdb1cb70742060178df25081114f245c4f148152508160800151600e81518110612bf557fe5b602002602001018190525060405180604001604052807f2474bf57bbb287ba0a398ae7aa4344eec92e3bdb31ec251f3b01ea61d78663ab81526020017f24c773d7f9e8e4315fb9db10d4ed0fcf400b5399774a9bc38c8b7d9e3857c9078152508160800151600f81518110612c6657fe5b602002602001018190525060405180604001604052807f2e5141a92768bb4e9c42ec7153fb68245f7cf88cde6fe3d302cb3dc28657c5a081526020017f028f97dff89911ee767dcfd3a3b7e73e1f480f5f89c45b1c044ed612a6d25f068152508160800151601081518110612cd757fe5b602002602001018190525060405180604001604052807f149feaa2652984f1978c63f13f768c235019059e3eaacc9f79b95d3414b24dbe81526020017f120836278089ee59f29a12d7799143737323be52bba819b6255c45f6bd8c51938152508160800151601181518110612d4857fe5b602002602001018190525060405180604001604052807f2d698d9f1dd8edf6845cee2540742a12f7368cce2915b5c74b281db46c42143f81526020017f205ede6f34ebfc64b8fd360d66307b399cc6f2272cc04758e079514392635cc98152508160800151601281518110612db957fe5b602002602001018190525060405180604001604052807f16d8afedb94b191686611f8f250948c79a81bc842436c01fa1fc7497cbd3c20281526020017f24ce73b17b81862ccd7088cb5a7a26a09fc617a1e81aa1f3282ec7a1369a220f8152508160800151601381518110612e2a57fe5b602002602001018190525060405180604001604052807f2f9af357efdb7e04c2673f00dac0f95d1f70840c786562597ca3cb21f348033f81526020017f1299c40ebc1a548ef5c9bfe701be85efdb001fb9f6aee9a2c146d1c843ab4d208152508160800151601481518110612e9b57fe5b602002602001018190525060405180604001604052807f0ad8facd20a29b9dbf78264a0ca4138ac1063cbe35d2e6108be40ccd4782c0bf81526020017f0efb78b2a4a704ff30d935d6a18c4fee2d9143acd347a7b28cde05171c6e18d58152508160800151601581518110612f0c57fe5b602002602001018190525060405180604001604052807f1f63a1b1d499daa6953848d43ddd96fa72484cfc3bc6e84843bde00a57d4caf681526020017f178b21620126bbafaf71833910a1cc2ae3d4fda42b0471b229373106b5c03ba78152508160800151601681518110612f7d57fe5b602002602001018190525060405180604001604052807f2df596d8b6c16cf9967d0c546326573fdd25ac0d5fe765b4a768191dc52c3d9b81526020017f295138d31f447ba48e6af7c8336e37151f1e204a457654717034f859b87cb86b8152508160800151601781518110612fee57fe5b602002602001018190525060405180604001604052807f0ab1a84ea90355d586254d32134ffa223330486f6ae7c7bb91625e1b7a58120681526020017f228ae22be73520f9ca36edee7b7ec2da30a1c67d4af3884304d03e5dbd721929815250816080015160188151811061305f57fe5b602002602001018190525060405180604001604052807f292f423e38bc696c7ed07818ab799b3a98cadc8e5804f5160bdb871d32fd163881526020017f0e743bca7ee8822ae6e8a5fa85af9e4db534d01fbe60262dd36fca7ccd9aa12181525081608001516019815181106130d057fe5b602002602001018190525060405180604001604052807f0e0d0c12e37e03ca81a25836fe3485e8e1f59c03ffd9e284d013ebfedfb1c32881526020017f20d25fbfa6066cfcfc65f05994f512e3689e5a8366506675ad718aea2d073c8e8152508160800151601a8151811061314157fe5b602002602001018190525060405180604001604052807f282fbc0ef603a3a3697b6b51fdae820d9a690d6b0408df21e7f2d6a7a66c85fc81526020017f20d5c260e4afaa5d66ccd9d7583c03bd5d5ea016570c7c71d19c6234cbcb31ca8152508160800151601b815181106131b257fe5b602002602001018190525060405180604001604052807f214ccf8b954e41db5d71e71ee50d146a7a92fb82d8c5ef87e4c3617095ea391d81526020017f2afd3918830a0b363e7917ae95125a120108369ff0f333cafb7cf3be7729d5f68152508160800151601c8151811061322357fe5b602002602001018190525060405180604001604052807f0159a90ef6e50991b60312f7ba0ae147b1bee54d003e960064c967c4b197d7fa81526020017f10b4c99217cb618085668dfcd7e73c47e92fb906dbc1411fa4db08a18aba3fe58152508160800151601d8151811061329457fe5b602002602001018190525060405180604001604052807f083984d4721ef68ee42d64b942ad7e7bec3f54b32c37ccd2999407bbbda546f481526020017f2c1447a059f3abf760fa2af7878c919f582f45e5b320cb9c9793f4a8efba44438152508160800151601e8151811061330557fe5b602002602001018190525060405180604001604052807f26b035d41839e2268d99430f85d55bb5042a0b5c6274ed48b3d6ae2d757d41c581526020017f1bb0d5b8864eb35764d59d53cb6a0f91bb88155fd5829e21a81c6171f71b55458152508160800151601f8151811061337657fe5b602002602001018190525060405180604001604052807f236122f2b5204d39129d38f700a6f118dd90cf333ef5e896478969ba11b9902081526020017f1cf35fe560a8a69edbf08ab181bebaee509185c5b7c2695b1d246d3a2802363881525081608001516020815181106133e757fe5b602002602001018190525060405180604001604052807f2d274a102f2f309df0ad0056ef451af6a9050692c2070fc02137598f41f1e5d581526020017f259a0a658ac04dc424f3077e43469fc18b0cfa10203e513631c1c262f6d8bdb6815250816080015160218151811061345857fe5b602002602001018190525060405180604001604052807f091ff54f665e08de531c450ae704feeb6216ee468242c57cd66d1b354b30eff381526020017f032c65a8948c92130cb9007b055f2bbc7ea3380d5a5a263ca3a6212398b1077281525081608001516022815181106134c957fe5b602002602001018190525060405180604001604052807f11039b8d41f22c6991fd993a80d3fde5aac5f11f195bb5ce8ac585b2c606542881526020017f23e07fd1ff297e33b76cc233476332c4c81c14f89027044065a00f863761dca6815250816080015160238151811061353a57fe5b602002602001018190525060405180604001604052807f18599e50b6d72fa196b870a5811445c471551b4e9257adf29298710466b7bf5481526020017f19de370641a6a2503be9e03f968c479c28b46462edf1af19843fe85d3e70053f81525081608001516024815181106135ab57fe5b602002602001018190525060405180604001604052807f0521e1c5797db41ab4604238f4f1a9d0a13188e612fa6c5996dbc3f1edc62d4e81526020017f19502018c981089b506b0d507cf6a68b900e2cfe5644c2ae8f1063054469a0bf815250816080015160258151811061361c57fe5b602002602001018190525060405180604001604052807f2fa33907987526b815cb1a9fb9a5520e24bf0308be0ab8fdfbd98aa00013bcd881526020017f1b208f8e2c8f9d66e40ae6ca22cefc0fdf4c911190b2a1e49ad08573ea4145ce815250816080015160268151811061368d57fe5b602002602001018190525060405180604001604052807f0f73b5007a79768f90076470bc892f89eb783b790e6088b16429742416290fd281526020017f24642161f22a4e619b86c622f977c20dd37c627fc0452ceae6b552f1a1fad05181525081608001516027815181106136fe57fe5b602002602001018190525060405180604001604052807f01611961456a577ffb84cbfa30dcb5583ad01d0acaa31f2d419328d61b50a64781526020017f2ffb029bc19091c23c9985837dc32edf3ecc938a9bb118e4a9b507ca6605a082815250816080015160288151811061376f57fe5b602002602001018190525060405180604001604052807f28c99f5f38c784ad70556bea4651f1e70cb5215957e5160f116fff31647d511181526020017f18c9193508642414a5fe222d207d987dbea2fc9bc25cc0434bce904dabe542d281525081608001516029815181106137e057fe5b602002602001018190525060405180604001604052807f27ccb06a81de8d1722d0a5a31d8474ce87e6c3d0d3aa4a3c4690a1dfc90478ef81526020017f07601a2bd6fe14437c32e2947c2db81124676cbf6f1d74e1194698195a118a888152508160800151602a8151811061385157fe5b602002602001018190525060405180604001604052807f0412d59060a1c361db878e85b1a897e72092ece81f4905c3900aee22b8dc4c1481526020017f116f9bd7b5fa0db3abf62c3c934cd7879d312497e5104d60c73db3ad8b08cdf08152508160800151602b815181106138c257fe5b602002602001018190525060405180604001604052807f2eeffbb55256fbb8b940aa388aa1a8370789ce6e47da0c93e8ce3be437dfe8a581526020017f138ede7052c7e892a91d61a62d624431dc41c0aee98f8098b98211d9edec00038152508160800151602c8151811061393357fe5b602002602001018190525060405180604001604052807f0ad063b48c40c95c34babcb9abe19bbc3fe1f240f178d81872dc9ee96c00392781526020017f137d9c5c284c1c192b7107d20fa99b4979672603983f112b4e11bfd2ebe222e78152508160800151602d815181106139a457fe5b602002602001018190525060405180604001604052807f05af4415a11e7da60c1e29a0684081a5c0950f20d6e4425a53e9ac67b434dcfd81526020017f209034255f5f71d8df1d01246568dd124d93fb2fa4ec6a17845276783e5b9b5d8152508160800151602e81518110613a1557fe5b602002602001018190525060405180604001604052807f1cfb1f15423945a2e26cbff0eabae000f96cceaf766486e9e41fbf5fced4d12781526020017f2454b1eced9a4b4ac7304747b287eb4a8d9b3873b7e138d86938967e90d3bc8f8152508160800151602f81518110613a8657fe5b602002602001018190525060405180604001604052807f30161ff6475281fc1d95837e1ca944fc21515581386ac8e422b4a263648919b581526020017f14c036883e2df8d5e2a05db021f6c55a8b843e6e7b008f9314f27b9e05b658a98152508160800151603081518110613af757fe5b602002602001018190525060405180604001604052807f15bce9591b89270885abe436ef6f302a9fc4aec53b86515e7286e8ae0949da9d81526020017f165cd4467f7a22626d4db17dfd5ca0a58feeee42a4f6b30cc5c8766dd7c7e8cc8152508160800151603181518110613b6857fe5b602002602001018190525060405180604001604052807f26a507ab3c86125c73780d7ad6757eff1ce2985a30744a58ee606c784a07612a81526020017f27464097d640b396b23e23859c2d6d39f0b091f221fa23b999b59845d83b39b58152508160800151603281518110613bd957fe5b602002602001018190525060405180604001604052807f2bf883a76dcc4804d9413342dccb1c5a80b7541d7c78cfec257fdcf2ab07828d81526020017f26e58f8e40a3d56f48b78e2453798a45587d4c67ef5fdf7bde075702ee7ef46c8152508160800151603381518110613c4a57fe5b602002602001018190525060405180604001604052807f0d56bcb470074357d12c764579afd06b888ce19a28e0ecd86c7b0f285ef9ebb681526020017f06a5821de42a46832a0b73010f10b9975b0dc3d6059f2f8d00a879f1004a0fab8152508160800151603481518110613cbb57fe5b602002602001018190525060405180604001604052807f281ed868552d6c418f9cc1b5518f117a88e7141a03f8ddbb1f31a8693f00f5c081526020017f0b617feae75ff88d4828e19985489646b538cd01553fba79de17395e8d18d2688152508160800151603581518110613d2c57fe5b602002602001018190525060405180604001604052807f217bca4e69284706b8ad444ac2ff9f67c7aedfeee183c085e6f10274c8daa9ff81526020017f10d138d58489776759cb90036e50efed7f1cc23ba81d06d5b578754d6d9636f98152508160800151603681518110613d9d57fe5b602002602001018190525060405180604001604052807f09b99229f251567bfe5d9011ce22799cbcad4f2432ac58ab42a116d3312fe5d881526020017f2bbaf53a70df93dd9f53ef2cf6d3358ce066d9c0ca7a6a60a77d0225f0b24d5a8152508160800151603781518110613e0e57fe5b602002602001018190525060405180604001604052807f1f98296b7d157a8088054e33cf97ab013701ea2ec0aa047e6ec1c945d428b71581526020017f091655ae293404e4de7289e7053c646937a738f7db04c5329e0017bf48ea35788152508160800151603881518110613e7f57fe5b602002602001018190525060405180604001604052807f0c8b87f8cf77d7f9867d1458598ea2dad51792a7f4521ee16ac7f80734e786e481526020017f030ee7cef3635175e9ce18280124b324195a018be7036cb780c68a6583a926298152508160800151603981518110613ef057fe5b602002602001018190525060405180604001604052807f119ed6a1f56456b07504c94834ef8166ff96ce3831d520e6ef05063a7c30a67d81526020017f2b6105c472ae27d3dddc46214b05a3ea745ad3408f0360597666998476c1b2038152508160800151603a81518110613f6157fe5b602002602001018190525060405180604001604052807f0a601429742dee5dad903a19582d1c616b5095d16a7f79c26e24dc4e4a0fa96a81526020017f0df7f6cc86c548233b082b5a9304c21f83716afd7f205f8d99771c8d954f15318152508160800151603b81518110613fd257fe5b602002602001018190525060405180604001604052807f12e39935453e33f7798c18cabd8f80306d49042f35c694dcfd782b310cfb97ad81526020017f01bc3f2dcbd05bdfdba979eec63dcd9b459b1a76ff55b2245ed2c53cb5cf78628152508160800151603c8151811061404357fe5b602002602001018190525060405180604001604052807f11d2d80427d17823a430e75a791e36876b9daf235b76d57b8908c4e9523b910c81526020017f1a3596e8ccf649a97ad4e8b5e74fb8ddc38898b4e1f65bb86178bc700fd186418152508160800151603d815181106140b457fe5b602002602001018190525060405180604001604052807f169fed46cef30a81dbdf57746dd759c121cdd52054f7101f46cbc040a2434f0e81526020017f27a616e9e0d201cc39411f814784f235bba48313bfd838cddcb4a866470e17f28152508160800151603e8151811061412557fe5b602002602001018190525060405180604001604052807f14805cbbccbb2cc53b3516ead7cf47bce53791ecad2eb2a9504dd6690a85d1a181526020017f1c07bf99cd1398978bc0e6788ae749ab4e1bc14f4eff94396c7d58c2aaf580268152508160800151603f8151811061419657fe5b602002602001018190525060405180604001604052807f2f53137a82a9261416d25da71af130f17e31849a2544a91771a518c650bb0a7c81526020017f2a7e100fe915ca90149e49fe45fc2c7bbe27caa5eb0ea23c543fe9ec0fe66f99815250816080015160408151811061420757fe5b602002602001018190525060405180604001604052807f06369c510d7401cadd098475d380afcf3faa5cfe78f9094f837891b42b64e1cf81526020017f16819e58bd6a3e3bcda613b60c33358ae6661a2ba49648d700a616c1be0ab791815250816080015160418151811061427857fe5b602002602001018190525060405180604001604052807f033decb1dea39a5492bb1167fce16af4b6ac61a1d0b05ff00138dc0d74b1960981526020017f051a2c1773eae2ac856951c8db98a8669bee5ecdda38c32b9f8856b660ad451981525081608001516042815181106142e957fe5b602002602001018190525060405180604001604052807f24998553c5caf4580cd77c196795f8c3038de5b863a9c73da1e68f4046bc5a9a81526020017f0932581deaee2e619674fead1afa5354369e84578cd94e8d42991416dae4b05c815250816080015160438151811061435a57fe5b602002602001018190525060405180604001604052807f0e16383a14c0d404c0aeb73137601d5cb9cf75af91a6733fad673c94136fae7f81526020017f14c2b0a41f5291caff425a3cfff8e040c04b7c1a246e61f654d14420726ed28881525081608001516044815181106143cb57fe5b602002602001018190525060405180604001604052807f25450acba43d317cecd64f29baedd0e389f37eaa0d4395f53fb490fb7a0c5b5b81526020017f0698fb0108e7675067bd616be8efdfd9f63cdee1361463a4ecc288b7e3c6bd6f815250816080015160458151811061443c57fe5b602002602001018190525060405180604001604052807f05d10333fbc09997b244c9f5b6db361ca2b2374ba903cabb884a6f1cdccfdfe081526020017f110cd9fe31becffc5b9897847314bf7144a8b4a826bf7d7b5ded1d8956bbee0181525081608001516046815181106144ad57fe5b602002602001018190525060405180604001604052807f12b3c3ea87416f2c8caaf5d4046fe3823da299cbe0b7d8118fd91c2b6677389881526020017f1d7be3dba263d3724b9829f097adb95612f80c381d46a261fa0036cd18b3e998815250816080015160478151811061451e57fe5b602002602001018190525060405180604001604052807f0d7e793d1109fc9c82901bdb4afe04b53d6b88049eeab4a58da7ea867111379781526020017f1e9f52f7a92dea478cc8f5763b7e572413bb32a8f1bb4ed1b16d27e653fac550815250816080015160488151811061458f57fe5b602002602001018190525060405180604001604052807f25087840ca74df44dfc590cfc77b146bfc5f79249a43de2ef17b4640b778dc2381526020017f06757a955d1dff4df1400534c7c2086131575e29cb24ab79a7d5bb4881a214a9815250816080015160498151811061460057fe5b602002602001018190525060405180604001604052807f0f39ba8c2b22b3959c78627373f0bf24923501303582e7319ae45d9198be65f781526020017f1cba36ee3c771cf5fc275da71f6b9dab360da6f3ff3e171e8566abbdcfc78c228152508160800151604a8151811061467157fe5b602002602001018190525060405180604001604052807f087b9e8bcf6f394716d70f47dc3f0a88c68ef3e6029f951c21185fc9deea7bd681526020017f01b6b8712b37867788aba9b936fa8f0e49bba62409ceee73f67cd2017c3d63958152508160800151604b815181106146e257fe5b602002602001018190525060405180604001604052807f1d35132cb089c2cdc04e31f12f2bc3eec9f368f089d0d69047062dfe2e62fbf081526020017f1fa6b58905f858f6a5ff3906b7f446b83acb2de1ceb0d7d99bd146a862de4c058152508160800151604c8151811061475357fe5b602002602001018190525060405180604001604052807f0f2f78d86b9a9f419a2ebff4a30b434f878552c609028a919054b05c825450f681526020017f0b54f0c5b31ec8ae3f807f0370b805c0991be9e6757565dacb44a498a8d4ae178152508160800151604d815181106147c457fe5b602002602001018190525060405180604001604052807e22a20b550dee86e70d4e7d0b21d57f2f61499b37e0ddbc2f9f7fd1d562dc2081526020017f1f6eb3c43f4ff86f97296e3fa14c41fd90c4e94210cd2f65f9dba71be36efa228152508160800151604e8151811061483457fe5b602002602001018190525060405180604001604052807f20a9276710f353a656a6f2073e545e20ea683090e0a9d1a7a61bd92f5abb833881526020017f09d7a7d4e5fdd3e79f9d656e838133f914561ba6de554dc01e11af5b23acbd698152508160800151604f815181106148a557fe5b602002602001018190525060405180604001604052807f2db7a779b90dfe0a1e2865b916fc76183c900e376cfff1d0face8085075ace6c81526020017f08614ea3c51e85fe06d498b99ca5a83105015490adb6524faffae38c894b7882815250816080015160508151811061491657fe5b602002602001018190525060405180604001604052807f251d4da63c27cc543bb7104d26321daf43445954fb6d289a37a83abd2ccb871281526020017f2732667bffd19221ca4828095eeee2fcad2318956fd003726673edccd92ef862815250816080015160518151811061498757fe5b602002602001018190525060405180604001604052807f0708bc430c983fe7eaa94d972a9f1bf7480d30ae184008306b1b4e9d068fdc4781526020017f2a5093514288133c7dbba8863be74e4f41613db13492ec09a24691516426b5ea81525081608001516052815181106149f857fe5b602002602001018190525060405180604001604052807f2281bdf00e4dd7231a115557514647bad0ce441d4e2513062c321f8edc8bfd0681526020017f07d9923caac5021063362fa4ce3d32e208cb0f04a76a4410b26b49816a02ed7b8152508160800151605381518110614a6957fe5b602002602001018190525060405180604001604052807f1ac68426574a77da02d719e74537a2d7eef91c5f333025e126b1737c6ac8bd8581526020017f1c1b62deee065e331dac6f469341052ef41493f45f83a4726c394bfb179ccc368152508160800151605481518110614ada57fe5b602002602001018190525060405180604001604052807f108cd131c2ec721c95d0bd7ca65d9f348e090b2c50aecc0571630b685a728b9381526020017f25ab69aae4b96d201d5beba483916f090c64ffa9ad440eb96b35aa38ea8596288152508160800151605581518110614b4b57fe5b602002602001018190525060405180604001604052807f16b73312018ea4434c3ddbf50fa5a7cf4108ceaee38d2a3b516198d33e3c8dcd81526020017f1666b2e45504a9374e04a29cfc7dafcb4b2dd51b2954fb299c779255f11c07388152508160800151605681518110614bbc57fe5b602002602001018190525060405180604001604052807f167e266d2f89c75e6d7d922fcb690431a4e36daf079e7766296db4a4ecbb21f281526020017efe786492fc997a473322fec941f983b329edfbba070d2bfd939c65dc9ff1338152508160800151605781518110614c2c57fe5b602002602001018190525060405180604001604052807f056a9c5bf67220e4183dc53faccd14272572b83f894ecb7a4885726ef7a6731481526020017f1d907498e07909cdcacd509412f10690bb0b967e4827757a80c8e1a598d5e2118152508160800151605881518110614c9d57fe5b602002602001018190525060405180604001604052807f1aca69de4538ce2af75e45281ff9b1dabe560c1448d128d564c24c7108fa47e481526020017f0144c2367086683bae5feb716d4e426587ac1846cee2b75d8f75a68fe39f09fe8152508160800151605981518110614d0e57fe5b602002602001018190525060405180604001604052807f08ab65c6dfc4867ed59e5df5e5b72e9a81fdce84e64bc45c9a60706280f9981381526020017f3050cd1908caf1816693521dadc12b90f4a5d622225af7094d9e12c53b3dbad88152508160800151605a81518110614d7f57fe5b602002602001018190525060405180604001604052807f251db892d55f4fb5a2fbbe2f12e51484c5c60f2157b634f92b1f90afbd3f50f581526020017f0ecc68b232f17ae44ff2359fc2c92e22381fa8dfb5c9aeea679eab457e7122ba8152508160800151605b81518110614df057fe5b602002602001018190525060405180604001604052807f02f915c95b0cdc1c16e9ed288b367190e94f9d95630617ea740dc0c7bdce422b81526020017f02a8c38ad500e3bc3177712e65fd4495e33a2f801a69fd002fd13749959a58e08152508160800151605c81518110614e6157fe5b602002602001018190525090565b614e77615846565b614e7f615860565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa9050808015614eb257614eb4565bfe5b5080614efc576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5b5d5b0b59985a5b195960721b604482015290519081900360640190fd5b505092915050565b614f0c615846565b614f1461587e565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa9050808015614eb2575080614efc576040805162461bcd60e51b81526020600482015260126024820152711c185a5c9a5b99cb5859190b59985a5b195960721b604482015290519081900360640190fd5b614f9d615846565b81517f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4790158015614fd057506020830151155b15614ff057505060408051808201909152600080825260208201526109a0565b6040518060400160405280846000015181526020018285602001518161501257fe5b0690920390915292915050565b60408051600480825260a0820190925260009160609190816020015b615043615846565b81526020019060019003908161503b57505060408051600480825260a0820190925291925060609190602082015b61507961589c565b8152602001906001900390816150715790505090508a8260008151811061509c57fe5b602002602001018190525088826001815181106150b557fe5b602002602001018190525086826002815181106150ce57fe5b602002602001018190525084826003815181106150e757fe5b6020026020010181905250898160008151811061510057fe5b6020026020010181905250878160018151811061511957fe5b6020026020010181905250858160028151811061513257fe5b6020026020010181905250838160038151811061514b57fe5b60200260200101819052506151608282615343565b9b9a5050505050505050505050565b60009081526001919091016020526040902054151590565b6000818152600183016020526040812054801561524357835460001980830191908101906000908790839081106151ba57fe5b90600052602060002001549050808760000184815481106151d757fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061520757fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610e4c565b6000915050610e4c565b6000615259838361516f565b61528f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610e4c565b506000610e4c565b6000828152600184016020526040812054806152fc575050604080518082018252838152602080820184815286546001818101895560008981528481209551600290930290950191825591519082015586548684528188019092529290912055611c57565b8285600001600183038154811061530f57fe5b9060005260206000209060020201600101819055506000915050611c57565b3b151590565b6060611c5484846000856155e2565b60008151835114615394576040805162461bcd60e51b81526020600482015260166024820152751c185a5c9a5b99cb5b195b99dd1a1ccb59985a5b195960521b604482015290519081900360640190fd5b82516006810260608167ffffffffffffffff811180156153b357600080fd5b506040519080825280602002602001820160405280156153dd578160200160208202803683370190505b50905060005b83811015615562578681815181106153f757fe5b60200260200101516000015182826006026000018151811061541557fe5b60200260200101818152505086818151811061542d57fe5b60200260200101516020015182826006026001018151811061544b57fe5b60200260200101818152505085818151811061546357fe5b60209081029190910101515151825183906002600685020190811061548457fe5b60200260200101818152505085818151811061549c57fe5b602090810291909101015151600160200201518282600602600301815181106154c157fe5b6020026020010181815250508581815181106154d957fe5b6020026020010151602001516000600281106154f157fe5b602002015182826006026004018151811061550857fe5b60200260200101818152505085818151811061552057fe5b60200260200101516020015160016002811061553857fe5b602002015182826006026005018151811061554f57fe5b60209081029190910101526001016153e3565b5061556b6158bc565b6000602082602086026020860160086107d05a03fa9050808015614eb25750806155d4576040805162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b604482015290519081900360640190fd5b505115159695505050505050565b60606155ed8561532e565b61563e576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b6020831061567d5780518252601f19909201916020918201910161565e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146156df576040519150601f19603f3d011682016040523d82523d6000602084013e6156e4565b606091505b509150915081156156f857915061168d9050565b8051156157085780518082602001fd5b60405162461bcd60e51b81526020600482018181528651602484015286518793919283926044019190850190808383600083156120da5781810151838201526020016120c2565b6040518060600160405280615762615846565b815260200161576f61589c565b815260200161577c615846565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106157c257805160ff19168380011785556157ef565b828001600101855582156157ef579182015b828111156157ef5782518255916020019190600101906157d4565b506157fb9291506158da565b5090565b6040518060a00160405280615812615846565b815260200161581f61589c565b815260200161582c61589c565b815260200161583961589c565b8152602001606081525090565b604051806040016040528060008152602001600081525090565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806158af6158f4565b815260200161577c6158f4565b60405180602001604052806001906020820280368337509192915050565b610af891905b808211156157fb57600081556001016158e0565b6040518060400160405280600290602082028036833750919291505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734552433732313a207472616e7366657220746f20746865207a65726f20616464726573734552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e546f6b656e55524920646f6573206e6f74206d61746368207a6b20696e70757420686173684552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665644164647265737320646f6573206e6f74206d61746368207a6b20696e7075742061646472657373a264697066735822122021f54d7864f51e9bb248014970d6edccb1b8f2b5d790ddfe596adf154cd41f0a64736f6c634300060b0033",
"linkReferences": {},
"deployedLinkReferences": {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment