[ { "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": "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": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "claim", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getBody", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getColor", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getColorCode", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getGeneration", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getMass", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getMassClass", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getMassClassString", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getMassString", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getMaterial", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getModSlots", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getModSlotsText", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getPilot", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getPowerSource", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getWeaponSlots", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getWeaponSlotsText", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": [], "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": "amount", "type": "uint256" } ], "name": "ownerClaim", "outputs": [], "stateMutability": "nonpayable", "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": [], "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": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526706f05b59d3b20000600c556040518061010001604052806040518060400160405280600581526020017f426970656400000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600981526020017f517561647275706564000000000000000000000000000000000000000000000081525081526020016040518060400160405280600681526020017f537069646572000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600681526020017f41657269616c000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600881526020017f4772657920476f6f00000000000000000000000000000000000000000000000081525081526020016040518060400160405280600481526020017f576f726d0000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f576865656c65640000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600d81526020017f5472616e73666f726d61626c6500000000000000000000000000000000000000815250815250600f9060086200020492919062001742565b506040518061020001604052806040518060400160405280600881526020017f546974616e69756d00000000000000000000000000000000000000000000000081525081526020016040518060400160405280600981526020017f426572796c6c69756d000000000000000000000000000000000000000000000081525081526020016040518060400160405280600b81526020017f556e6f627461696e69756d00000000000000000000000000000000000000000081525081526020016040518060400160405280600a81526020017f4879706572616c6c6f790000000000000000000000000000000000000000000081525081526020016040518060400160405280600881526020017f447572616e69756d00000000000000000000000000000000000000000000000081525081526020016040518060400160405280600981526020017f54726974616e69756d000000000000000000000000000000000000000000000081525081526020016040518060400160405280600f81526020017f51756164616e69756d20737465656c000000000000000000000000000000000081525081526020016040518060400160405280600981526020017f56696272616e69756d000000000000000000000000000000000000000000000081525081526020016040518060400160405280600a81526020017f4164616d616e7469756d0000000000000000000000000000000000000000000081525081526020016040518060400160405280600b81526020017f4368726f6e6f737465656c00000000000000000000000000000000000000000081525081526020016040518060400160405280600a81526020017f4461726b20737465656c0000000000000000000000000000000000000000000081525081526020016040518060400160405280600b81526020017f4379626572206d6574616c00000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f5472696e69756d0000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600b81526020017f537465616c7468206f726500000000000000000000000000000000000000000081525081526020016040518060400160405280600a81526020017f546974616c737465656c0000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f4f7267616e6963000000000000000000000000000000000000000000000000008152508152506010906010620005d1929190620017a9565b50604051806102a001604052806040518060400160405280600781526020017f50656e6775696e0000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600481526020017f526f636b0000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600981526020017f426f72656420417065000000000000000000000000000000000000000000000081525081526020016040518060400160405280600481526020017f50756e6b0000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f416c69656e00000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600681526020017f5a6f6d626965000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f4b6974747900000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600481526020017f446f67650000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600481526020017f4d6178690000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600281526020017f414900000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600381526020017f59616b000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600881526020017f50616e676f6c696e00000000000000000000000000000000000000000000000081525081526020016040518060400160405280600381526020017f4a6f65000000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f4875736b7900000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f53706f726500000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f416c69636500000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600681526020017f526162626974000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600c81526020017f4d6f6f6e20476f6464657373000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f536869627800000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600881526020017f426167756574746500000000000000000000000000000000000000000000000081525081526020016040518060400160405280600381526020017f456c6b0000000000000000000000000000000000000000000000000000000000815250815250601190601562000ac592919062001810565b506040518061020001604052806040518060400160405280600b81526020017f556c7472616d6172696e6500000000000000000000000000000000000000000081525081526020016040518060400160405280600981526020017f54757271756f697365000000000000000000000000000000000000000000000081525081526020016040518060400160405280600481526020017f4f6e79780000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600681526020017f436f70706572000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600881526020017f566972696469616e00000000000000000000000000000000000000000000000081525081526020016040518060400160405280600681526020017f496e6469676f000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600881526020017f47756e6d6574616c00000000000000000000000000000000000000000000000081525081526020016040518060400160405280600481526020017f476f6c640000000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600a81526020017f436861727472657573650000000000000000000000000000000000000000000081525081526020016040518060400160405280600681526020017f436865727279000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600881526020017f506c6174696e756d00000000000000000000000000000000000000000000000081525081526020016040518060400160405280600b81526020017f41726374696320426c756500000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f416d62657200000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600a81526020017f536e6f772057686974650000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f536361726c65740000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f4d6167656e746100000000000000000000000000000000000000000000000000815250815250601290601062000e92929190620017a9565b506040518061020001604052806040518060400160405280600781526020017f233132306138660000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f233430653064300000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f233066306630660000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f236238373333330000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f233430383236640000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f233462303038320000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f233844393138440000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f236666643730300000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f233766666630300000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f236465333136330000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f236535653465320000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f233935643664630000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f236666626630300000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f236666666166610000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f234666323430300000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600781526020017f234666303066660000000000000000000000000000000000000000000000000081525081525060139060106200125f929190620017a9565b506040518061012001604052806040518060400160405280601181526020017f5a65726f20506f696e7420456e67696e6500000000000000000000000000000081525081526020016040518060400160405280600e81526020017f467573696f6e2052656163746f7200000000000000000000000000000000000081525081526020016040518060400160405280601281526020017f416e74696d61747465722052656163746f72000000000000000000000000000081525081526020016040518060400160405280601081526020017f4b7567656c626c69747a2044726976650000000000000000000000000000000081525081526020016040518060400160405280601281526020017f4d6963726f76657273652042617474657279000000000000000000000000000081525081526020016040518060400160405280601381526020017f48797065726d61747465722052656163746f720000000000000000000000000081525081526020016040518060400160405280601381526020017f4461726b204d61747465722052656163746f720000000000000000000000000081525081526020016040518060400160405280601281526020017f54686520457965206f66204861726d6f6e79000000000000000000000000000081525081526020016040518060400160405280600e81526020017f466c757820436170616369746f7200000000000000000000000000000000000081525081525060149060096200148f92919062001877565b5060405180608001604052806040518060400160405280600581526020017f4c6967687400000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600681526020017f4d656469756d000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600581526020017f486561767900000000000000000000000000000000000000000000000000000081525081526020016040518060400160405280600a81526020017f5375706572486561767900000000000000000000000000000000000000000000815250815250601590600462001597929190620018de565b50348015620015a557600080fd5b506040518060400160405280600d81526020017f4d656368612043686173736973000000000000000000000000000000000000008152506040518060400160405280600581526020017f4d4543484100000000000000000000000000000000000000000000000000000081525081600090805190602001906200162a92919062001945565b5080600190805190602001906200164392919062001945565b5050506001600a819055506200166e620016626200167460201b60201c565b6200167c60201b60201c565b62001ac8565b600033905090565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b82805482825590600052602060002090810192821562001796579160200282015b82811115620017955782518290805190602001906200178492919062001945565b509160200191906001019062001763565b5b509050620017a59190620019d6565b5090565b828054828255906000526020600020908101928215620017fd579160200282015b82811115620017fc578251829080519060200190620017eb92919062001945565b5091602001919060010190620017ca565b5b5090506200180c9190620019d6565b5090565b82805482825590600052602060002090810192821562001864579160200282015b82811115620018635782518290805190602001906200185292919062001945565b509160200191906001019062001831565b5b509050620018739190620019d6565b5090565b828054828255906000526020600020908101928215620018cb579160200282015b82811115620018ca578251829080519060200190620018b992919062001945565b509160200191906001019062001898565b5b509050620018da9190620019d6565b5090565b82805482825590600052602060002090810192821562001932579160200282015b82811115620019315782518290805190602001906200192092919062001945565b5091602001919060010190620018ff565b5b509050620019419190620019d6565b5090565b828054620019539062001a63565b90600052602060002090601f016020900481019282620019775760008555620019c3565b82601f106200199257805160ff1916838001178555620019c3565b82800160010185558215620019c3579182015b82811115620019c2578251825591602001919060010190620019a5565b5b509050620019d29190620019fe565b5090565b5b80821115620019fa5760008181620019f0919062001a1d565b50600101620019d7565b5090565b5b8082111562001a19576000816000905550600101620019ff565b5090565b50805462001a2b9062001a63565b6000825580601f1062001a3f575062001a60565b601f01602090049060005260206000209081019062001a5f9190620019fe565b5b50565b6000600282049050600182168062001a7c57607f821691505b6020821081141562001a935762001a9262001a99565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b615f348062001ad86000396000f3fe60806040526004361061021a5760003560e01c806356e3df97116101235780638da5cb5b116100ab578063c87b56dd1161006f578063c87b56dd14610892578063cacce3d8146108cf578063da6d89091461090c578063e985e9c514610949578063f2fde38b146109865761021a565b80638da5cb5b146107ad5780638e051519146107d857806395d89b4114610815578063a22cb46514610840578063b88d4fde146108695761021a565b8063715018a6116100f2578063715018a6146106a25780637d272b8e146106b957806380057b9a146106f657806383aaaa3a1461073357806388bd4225146107705761021a565b806356e3df97146105ae578063622529ad146105eb5780636352211e1461062857806370a08231146106655761021a565b80632f745c59116101a657806340a317c31161017557806340a317c3146104a557806342842e0e146104e2578063434f48c41461050b5780634a1bd3b7146105345780634f6ccce7146105715761021a565b80632f745c59146103f85780633710b82c14610435578063379607f5146104725780633ccfd60b1461048e5761021a565b806318160ddd116101ed57806318160ddd146102ed5780632048e6c114610318578063239c7e9e1461035557806323b872dd1461039257806329338ead146103bb5761021a565b806301ffc9a71461021f57806306fdde031461025c578063081812fc14610287578063095ea7b3146102c4575b600080fd5b34801561022b57600080fd5b506102466004803603810190610241919061401c565b6109af565b60405161025391906149f0565b60405180910390f35b34801561026857600080fd5b50610271610a29565b60405161027e9190614a0b565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a99190614076565b610abb565b6040516102bb9190614989565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e69190613fdc565b610b40565b005b3480156102f957600080fd5b50610302610c58565b60405161030f9190614ccd565b60405180910390f35b34801561032457600080fd5b5061033f600480360381019061033a9190614076565b610c65565b60405161034c9190614a0b565b60405180910390f35b34801561036157600080fd5b5061037c60048036038101906103779190614076565b610d20565b6040516103899190614a0b565b60405180910390f35b34801561039e57600080fd5b506103b960048036038101906103b49190613ec6565b610d59565b005b3480156103c757600080fd5b506103e260048036038101906103dd9190614076565b610db9565b6040516103ef9190614a0b565b60405180910390f35b34801561040457600080fd5b5061041f600480360381019061041a9190613fdc565b610ed3565b60405161042c9190614ccd565b60405180910390f35b34801561044157600080fd5b5061045c60048036038101906104579190614076565b610f78565b6040516104699190614a0b565b60405180910390f35b61048c60048036038101906104879190614076565b611092565b005b34801561049a57600080fd5b506104a3611220565b005b3480156104b157600080fd5b506104cc60048036038101906104c79190614076565b6112ec565b6040516104d99190614ccd565b60405180910390f35b3480156104ee57600080fd5b5061050960048036038101906105049190613ec6565b61144b565b005b34801561051757600080fd5b50610532600480360381019061052d9190614076565b61146b565b005b34801561054057600080fd5b5061055b60048036038101906105569190614076565b6115ee565b6040516105689190614ce8565b60405180910390f35b34801561057d57600080fd5b5061059860048036038101906105939190614076565b611673565b6040516105a59190614ccd565b60405180910390f35b3480156105ba57600080fd5b506105d560048036038101906105d09190614076565b6116e4565b6040516105e29190614a0b565b60405180910390f35b3480156105f757600080fd5b50610612600480360381019061060d9190614076565b611738565b60405161061f9190614ccd565b60405180910390f35b34801561063457600080fd5b5061064f600480360381019061064a9190614076565b61189d565b60405161065c9190614989565b60405180910390f35b34801561067157600080fd5b5061068c60048036038101906106879190613e59565b61194f565b6040516106999190614ccd565b60405180910390f35b3480156106ae57600080fd5b506106b7611a07565b005b3480156106c557600080fd5b506106e060048036038101906106db9190614076565b611a8f565b6040516106ed9190614ccd565b60405180910390f35b34801561070257600080fd5b5061071d60048036038101906107189190614076565b611adb565b60405161072a9190614a0b565b60405180910390f35b34801561073f57600080fd5b5061075a60048036038101906107559190614076565b611bf5565b6040516107679190614a0b565b60405180910390f35b34801561077c57600080fd5b5061079760048036038101906107929190614076565b611d0f565b6040516107a49190614a0b565b60405180910390f35b3480156107b957600080fd5b506107c2611d29565b6040516107cf9190614989565b60405180910390f35b3480156107e457600080fd5b506107ff60048036038101906107fa9190614076565b611d53565b60405161080c9190614a0b565b60405180910390f35b34801561082157600080fd5b5061082a611d6d565b6040516108379190614a0b565b60405180910390f35b34801561084c57600080fd5b5061086760048036038101906108629190613f9c565b611dff565b005b34801561087557600080fd5b50610890600480360381019061088b9190613f19565b611f80565b005b34801561089e57600080fd5b506108b960048036038101906108b49190614076565b611fe2565b6040516108c69190614a0b565b60405180910390f35b3480156108db57600080fd5b506108f660048036038101906108f19190614076565b612684565b6040516109039190614a0b565b60405180910390f35b34801561091857600080fd5b50610933600480360381019061092e9190614076565b61279e565b6040516109409190614a0b565b60405180910390f35b34801561095557600080fd5b50610970600480360381019061096b9190613e86565b6128b8565b60405161097d91906149f0565b60405180910390f35b34801561099257600080fd5b506109ad60048036038101906109a89190613e59565b61294c565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a225750610a2182612a44565b5b9050919050565b606060008054610a3890614f74565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6490614f74565b8015610ab15780601f10610a8657610100808354040283529160200191610ab1565b820191906000526020600020905b815481529060010190602001808311610a9457829003601f168201915b5050505050905090565b6000610ac682612b26565b610b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afc90614bcd565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610b4b8261189d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390614c2d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610bdb612b92565b73ffffffffffffffffffffffffffffffffffffffff161480610c0a5750610c0981610c04612b92565b6128b8565b5b610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4090614b4d565b60405180910390fd5b610c538383612b9a565b505050565b6000600880549050905090565b60606015610c72836115ee565b60ff1681548110610c8657610c8561510d565b5b906000526020600020018054610c9b90614f74565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc790614f74565b8015610d145780601f10610ce957610100808354040283529160200191610d14565b820191906000526020600020905b815481529060010190602001808311610cf757829003601f168201915b50505050509050919050565b6060610d33610d2e83611738565b612c53565b604051602001610d4391906148de565b6040516020818303038152906040529050919050565b610d6a610d64612b92565b82612db4565b610da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da090614c4d565b60405180910390fd5b610db4838383612e92565b505050565b6060610ecc826040518060400160405280600481526020017f424f445900000000000000000000000000000000000000000000000000000000815250600f805480602002602001604051908101604052809291908181526020016000905b82821015610ec3578382906000526020600020018054610e3690614f74565b80601f0160208091040260200160405190810160405280929190818152602001828054610e6290614f74565b8015610eaf5780601f10610e8457610100808354040283529160200191610eaf565b820191906000526020600020905b815481529060010190602001808311610e9257829003601f168201915b505050505081526020019060010190610e17565b505050506130ee565b9050919050565b6000610ede8361194f565b8210610f1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1690614a6d565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b606061108b826040518060400160405280600581526020017f434f4c4f520000000000000000000000000000000000000000000000000000008152506013805480602002602001604051908101604052809291908181526020016000905b82821015611082578382906000526020600020018054610ff590614f74565b80601f016020809104026020016040519081016040528092919081815260200182805461102190614f74565b801561106e5780601f106110435761010080835404028352916020019161106e565b820191906000526020600020905b81548152906001019060200180831161105157829003601f168201915b505050505081526020019060010190610fd6565b505050506130ee565b9050919050565b6002600a5414156110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90614c8d565b60405180910390fd5b6002600a819055506014811115611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b90614a4d565b60405180910390fd5b611db181611132600d61315d565b61113c9190614d9c565b1061117c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117390614a2d565b60405180910390fd5b3481600c5461118b9190614e23565b11156111cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c390614cad565b60405180910390fd5b60005b81811015611214576111e1600d61316b565b60006111ed600d61315d565b90506112006111fa612b92565b82613181565b50808061120c90614fd7565b9150506111cf565b506001600a8190555050565b611228612b92565b73ffffffffffffffffffffffffffffffffffffffff16611246611d29565b73ffffffffffffffffffffffffffffffffffffffff161461129c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129390614bed565b60405180910390fd5b6112a4611d29565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156112e9573d6000803e3d6000fd5b50565b6000806112f8836115ee565b905060008160ff16141561135157611349836040518060400160405280600a81526020017f48415244504f494e5453000000000000000000000000000000000000000000008152506001600261319f565b915050611446565b60018160ff1614156113a8576113a0836040518060400160405280600a81526020017f48415244504f494e5453000000000000000000000000000000000000000000008152506001600361319f565b915050611446565b60028160ff1614156113ff576113f7836040518060400160405280600a81526020017f48415244504f494e5453000000000000000000000000000000000000000000008152506002600461319f565b915050611446565b611442836040518060400160405280600a81526020017f48415244504f494e5453000000000000000000000000000000000000000000008152506003600661319f565b9150505b919050565b61146683838360405180602001604052806000815250611f80565b505050565b6002600a5414156114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a890614c8d565b60405180910390fd5b6002600a819055506114c1612b92565b73ffffffffffffffffffffffffffffffffffffffff166114df611d29565b73ffffffffffffffffffffffffffffffffffffffff1614611535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152c90614bed565b60405180910390fd5b61019181611543600e61315d565b61154d9190614d9c565b1061158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490614a2d565b60405180910390fd5b60005b818110156115e2576115a2600e61316b565b6000611db06115b1600e61315d565b6115bb9190614d9c565b90506115ce6115c8611d29565b82613181565b5080806115da90614fd7565b915050611590565b506001600a8190555050565b60008060646116236115ff85612c53565b60405160200161160f9190614967565b60405160208183030381529060405261320f565b61162d9190615020565b9050602381101561164257600091505061166e565b604681101561165557600191505061166e565b605f81101561166857600291505061166e565b60039150505b919050565b600061167d610c58565b82106116be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b590614c6d565b60405180910390fd5b600882815481106116d2576116d161510d565b5b90600052602060002001549050919050565b606061173161172c836040518060400160405280600a81526020017f47454e45524154494f4e000000000000000000000000000000000000000000008152506001600561319f565b612c53565b9050919050565b600080611744836115ee565b905060008160ff16141561179d57611795836040518060400160405280600481526020017f4d41535300000000000000000000000000000000000000000000000000000000815250600a603261319f565b915050611898565b60018160ff1614156117f5576117ed836040518060400160405280600481526020017f4d4153530000000000000000000000000000000000000000000000000000000081525060646101f461319f565b915050611898565b60028160ff16141561184e57611846836040518060400160405280600481526020017f4d415353000000000000000000000000000000000000000000000000000000008152506103e861138861319f565b915050611898565b611894836040518060400160405280600481526020017f4d41535300000000000000000000000000000000000000000000000000000000815250614e20620186a061319f565b9150505b919050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d90614b8d565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b790614b6d565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611a0f612b92565b73ffffffffffffffffffffffffffffffffffffffff16611a2d611d29565b73ffffffffffffffffffffffffffffffffffffffff1614611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a90614bed565b60405180910390fd5b611a8d6000613242565b565b6000611ad4826040518060400160405280600881526020017f4d4f44534c4f54530000000000000000000000000000000000000000000000008152506001600361319f565b9050919050565b6060611bee826040518060400160405280600581526020017f434f4c4f520000000000000000000000000000000000000000000000000000008152506012805480602002602001604051908101604052809291908181526020016000905b82821015611be5578382906000526020600020018054611b5890614f74565b80601f0160208091040260200160405190810160405280929190818152602001828054611b8490614f74565b8015611bd15780601f10611ba657610100808354040283529160200191611bd1565b820191906000526020600020905b815481529060010190602001808311611bb457829003601f168201915b505050505081526020019060010190611b39565b505050506130ee565b9050919050565b6060611d08826040518060400160405280600c81526020017f504f5745525f534f5552434500000000000000000000000000000000000000008152506014805480602002602001604051908101604052809291908181526020016000905b82821015611cff578382906000526020600020018054611c7290614f74565b80601f0160208091040260200160405190810160405280929190818152602001828054611c9e90614f74565b8015611ceb5780601f10611cc057610100808354040283529160200191611ceb565b820191906000526020600020905b815481529060010190602001808311611cce57829003601f168201915b505050505081526020019060010190611c53565b505050506130ee565b9050919050565b6060611d22611d1d836112ec565b612c53565b9050919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060611d66611d6183611a8f565b612c53565b9050919050565b606060018054611d7c90614f74565b80601f0160208091040260200160405190810160405280929190818152602001828054611da890614f74565b8015611df55780601f10611dca57610100808354040283529160200191611df5565b820191906000526020600020905b815481529060010190602001808311611dd857829003601f168201915b5050505050905090565b611e07612b92565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6c90614b0d565b60405180910390fd5b8060056000611e82612b92565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611f2f612b92565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611f7491906149f0565b60405180910390a35050565b611f91611f8b612b92565b83612db4565b611fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc790614c4d565b60405180910390fd5b611fdc84848484613308565b50505050565b6060611fec613d58565b6040518061014001604052806101028152602001615c9761010291398160006013811061201c5761201b61510d565b5b602002018190525061202d836116e4565b816001601381106120415761204061510d565b5b60200201819052506040518060600160405280602e8152602001615e3f602e9139816002601381106120765761207561510d565b5b602002018190525061208783610d20565b8160036013811061209b5761209a61510d565b5b60200201819052506040518060600160405280602e8152602001615ed1602e9139816004601381106120d0576120cf61510d565b5b60200201819052506120e183610db9565b816005601381106120f5576120f461510d565b5b60200201819052506040518060600160405280602f8152602001615d99602f91398160066013811061212a5761212961510d565b5b602002018190525061213b83611adb565b8160076013811061214f5761214e61510d565b5b6020020181905250604051806060016040528060388152602001615c5f60389139816008601381106121845761218361510d565b5b60200201819052506121958361279e565b816009601381106121a9576121a861510d565b5b6020020181905250604051806060016040528060378152602001615c286037913981600a601381106121de576121dd61510d565b5b60200201819052506121ef83611bf5565b81600b601381106122035761220261510d565b5b6020020181905250604051806060016040528060308152602001615e6d6030913981600c601381106122385761223761510d565b5b602002018190525061224983612684565b81600d6013811061225d5761225c61510d565b5b6020020181905250604051806060016040528060378152602001615dc86037913981600e601381106122925761229161510d565b5b60200201819052506122a383611d0f565b81600f601381106122b7576122b661510d565b5b6020020181905250604051806060016040528060348152602001615e9d60349139816010601381106122ec576122eb61510d565b5b60200201819052506122fd83611d53565b816011601381106123115761231061510d565b5b60200201819052506040518060400160405280600d81526020017f3c2f746578743e3c2f7376673e00000000000000000000000000000000000000815250816012601381106123635761236261510d565b5b60200201819052506000816000601381106123815761238061510d565b5b60200201518260016013811061239a5761239961510d565b5b6020020151836002601381106123b3576123b261510d565b5b6020020151846003601381106123cc576123cb61510d565b5b6020020151856004601381106123e5576123e461510d565b5b6020020151866005601381106123fe576123fd61510d565b5b6020020151876006601381106124175761241661510d565b5b6020020151886007601381106124305761242f61510d565b5b6020020151896008601381106124495761244861510d565b5b6020020151604051602001612466999897969594939291906146cc565b6040516020818303038152906040529050808260096013811061248c5761248b61510d565b5b602002015183600a601381106124a5576124a461510d565b5b602002015184600b601381106124be576124bd61510d565b5b602002015185600c601381106124d7576124d661510d565b5b602002015186600d601381106124f0576124ef61510d565b5b602002015187600e601381106125095761250861510d565b5b602002015188600f601381106125225761252161510d565b5b60200201518960106013811061253b5761253a61510d565b5b60200201518a6011601381106125545761255361510d565b5b60200201518b60126013811061256d5761256c61510d565b5b602002015160405160200161258c9b9a9998979695949392919061474b565b604051602081830303815290604052905060606125a885612c53565b6125b183613364565b6040516020016125c2929190614900565b6040516020818303038152906040529050612655816125e0876116e4565b6125e988610c65565b6125f289610db9565b6125fb8a611adb565b6126048b61279e565b61260d8c611bf5565b6126168d612684565b61261f8e611d0f565b6126288f611d53565b6040516020016126419a999897969594939291906147e4565b604051602081830303815290604052613364565b9050806040516020016126689190614945565b6040516020818303038152906040529150819350505050919050565b6060612797826040518060400160405280600581526020017f50494c4f540000000000000000000000000000000000000000000000000000008152506011805480602002602001604051908101604052809291908181526020016000905b8282101561278e57838290600052602060002001805461270190614f74565b80601f016020809104026020016040519081016040528092919081815260200182805461272d90614f74565b801561277a5780601f1061274f5761010080835404028352916020019161277a565b820191906000526020600020905b81548152906001019060200180831161275d57829003601f168201915b5050505050815260200190600101906126e2565b505050506130ee565b9050919050565b60606128b1826040518060400160405280600881526020017f4d4154455249414c0000000000000000000000000000000000000000000000008152506010805480602002602001604051908101604052809291908181526020016000905b828210156128a857838290600052602060002001805461281b90614f74565b80601f016020809104026020016040519081016040528092919081815260200182805461284790614f74565b80156128945780601f1061286957610100808354040283529160200191612894565b820191906000526020600020905b81548152906001019060200180831161287757829003601f168201915b5050505050815260200190600101906127fc565b505050506130ee565b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612954612b92565b73ffffffffffffffffffffffffffffffffffffffff16612972611d29565b73ffffffffffffffffffffffffffffffffffffffff16146129c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129bf90614bed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2f90614aad565b60405180910390fd5b612a4181613242565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612b0f57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612b1f5750612b1e826134fc565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16612c0d8361189d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60606000821415612c9b576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612daf565b600082905060005b60008214612ccd578080612cb690614fd7565b915050600a82612cc69190614df2565b9150612ca3565b60008167ffffffffffffffff811115612ce957612ce861513c565b5b6040519080825280601f01601f191660200182016040528015612d1b5781602001600182028036833780820191505090505b5090505b60008514612da857600182612d349190614e7d565b9150600a85612d439190615020565b6030612d4f9190614d9c565b60f81b818381518110612d6557612d6461510d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612da19190614df2565b9450612d1f565b8093505050505b919050565b6000612dbf82612b26565b612dfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612df590614b2d565b60405180910390fd5b6000612e098361189d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612e7857508373ffffffffffffffffffffffffffffffffffffffff16612e6084610abb565b73ffffffffffffffffffffffffffffffffffffffff16145b80612e895750612e8881856128b8565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16612eb28261189d565b73ffffffffffffffffffffffffffffffffffffffff1614612f08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eff90614c0d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f6f90614aed565b60405180910390fd5b612f83838383613566565b612f8e600082612b9a565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612fde9190614e7d565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130359190614d9c565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60606000613124846130ff87612c53565b6040516020016131109291906146a8565b60405160208183030381529060405261320f565b90506000838451836131369190615020565b815181106131475761314661510d565b5b6020026020010151905080925050509392505050565b600081600001549050919050565b6001816000016000828254019250508190555050565b61319b82826040518060200160405280600081525061367a565b5050565b6000806131d4856131af88612c53565b6040516020016131c09291906146a8565b60405160208183030381529060405261320f565b905083600185856131e59190614e7d565b6131ef9190614d9c565b826131fa9190615020565b6132049190614d9c565b915050949350505050565b6000816040516020016132229190614691565b6040516020818303038152906040528051906020012060001c9050919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b613313848484612e92565b61331f848484846136d5565b61335e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161335590614a8d565b60405180910390fd5b50505050565b6060600082519050600081141561338d57604051806020016040528060008152509150506134f7565b6000600360028361339e9190614d9c565b6133a89190614df2565b60046133b49190614e23565b905060006020826133c59190614d9c565b67ffffffffffffffff8111156133de576133dd61513c565b5b6040519080825280601f01601f1916602001820160405280156134105781602001600182028036833780820191505090505b5090506000604051806060016040528060408152602001615dff604091399050600181016020830160005b868110156134b45760038101905062ffffff818a015116603f8160121c168401518060081b905060ff603f83600c1c1686015116810190508060081b905060ff603f8360061c1686015116810190508060081b905060ff603f831686015116810190508060e01b9050808452600484019350505061343b565b5060038606600181146134ce57600281146134de576134e9565b613d3d60f01b60028303526134e9565b603d60f81b60018303525b508484525050819450505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61357183838361386c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156135b4576135af81613871565b6135f3565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146135f2576135f183826138ba565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156136365761363181613a27565b613675565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614613674576136738282613af8565b5b5b505050565b6136848383613b77565b61369160008484846136d5565b6136d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136c790614a8d565b60405180910390fd5b505050565b60006136f68473ffffffffffffffffffffffffffffffffffffffff16613d45565b1561385f578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261371f612b92565b8786866040518563ffffffff1660e01b815260040161374194939291906149a4565b602060405180830381600087803b15801561375b57600080fd5b505af192505050801561378c57506040513d601f19601f820116820180604052508101906137899190614049565b60015b61380f573d80600081146137bc576040519150601f19603f3d011682016040523d82523d6000602084013e6137c1565b606091505b50600081511415613807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137fe90614a8d565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050613864565b600190505b949350505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016138c78461194f565b6138d19190614e7d565b90506000600760008481526020019081526020016000205490508181146139b6576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050613a3b9190614e7d565b9050600060096000848152602001908152602001600020549050600060088381548110613a6b57613a6a61510d565b5b906000526020600020015490508060088381548110613a8d57613a8c61510d565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480613adc57613adb6150de565b5b6001900381819060005260206000200160009055905550505050565b6000613b038361194f565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bde90614bad565b60405180910390fd5b613bf081612b26565b15613c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c2790614acd565b60405180910390fd5b613c3c60008383613566565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613c8c9190614d9c565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b6040518061026001604052806013905b6060815260200190600190039081613d685790505090565b6000613d93613d8e84614d28565b614d03565b905082815260208101848484011115613daf57613dae615170565b5b613dba848285614f32565b509392505050565b600081359050613dd181615bcb565b92915050565b600081359050613de681615be2565b92915050565b600081359050613dfb81615bf9565b92915050565b600081519050613e1081615bf9565b92915050565b600082601f830112613e2b57613e2a61516b565b5b8135613e3b848260208601613d80565b91505092915050565b600081359050613e5381615c10565b92915050565b600060208284031215613e6f57613e6e61517a565b5b6000613e7d84828501613dc2565b91505092915050565b60008060408385031215613e9d57613e9c61517a565b5b6000613eab85828601613dc2565b9250506020613ebc85828601613dc2565b9150509250929050565b600080600060608486031215613edf57613ede61517a565b5b6000613eed86828701613dc2565b9350506020613efe86828701613dc2565b9250506040613f0f86828701613e44565b9150509250925092565b60008060008060808587031215613f3357613f3261517a565b5b6000613f4187828801613dc2565b9450506020613f5287828801613dc2565b9350506040613f6387828801613e44565b925050606085013567ffffffffffffffff811115613f8457613f83615175565b5b613f9087828801613e16565b91505092959194509250565b60008060408385031215613fb357613fb261517a565b5b6000613fc185828601613dc2565b9250506020613fd285828601613dd7565b9150509250929050565b60008060408385031215613ff357613ff261517a565b5b600061400185828601613dc2565b925050602061401285828601613e44565b9150509250929050565b6000602082840312156140325761403161517a565b5b600061404084828501613dec565b91505092915050565b60006020828403121561405f5761405e61517a565b5b600061406d84828501613e01565b91505092915050565b60006020828403121561408c5761408b61517a565b5b600061409a84828501613e44565b91505092915050565b6140ac81614eb1565b82525050565b6140bb81614ec3565b82525050565b60006140cc82614d59565b6140d68185614d6f565b93506140e6818560208601614f41565b6140ef8161517f565b840191505092915050565b600061410582614d64565b61410f8185614d80565b935061411f818560208601614f41565b6141288161517f565b840191505092915050565b600061413e82614d64565b6141488185614d91565b9350614158818560208601614f41565b80840191505092915050565b6000614171602483614d91565b915061417c82615190565b602482019050919050565b6000614194601383614d80565b915061419f826151df565b602082019050919050565b60006141b7601683614d80565b91506141c282615208565b602082019050919050565b60006141da602b83614d80565b91506141e582615231565b604082019050919050565b60006141fd603283614d80565b915061420882615280565b604082019050919050565b6000614220602683614d80565b915061422b826152cf565b604082019050919050565b6000614243600283614d91565b915061424e8261531e565b600282019050919050565b6000614266601c83614d80565b915061427182615347565b602082019050919050565b6000614289602483614d91565b915061429482615370565b602482019050919050565b60006142ac602783614d91565b91506142b7826153bf565b602782019050919050565b60006142cf602483614d80565b91506142da8261540e565b604082019050919050565b60006142f2601983614d80565b91506142fd8261545d565b602082019050919050565b6000614315602583614d91565b915061432082615486565b602582019050919050565b6000614338602583614d91565b9150614343826154d5565b602582019050919050565b600061435b602c83614d80565b915061436682615524565b604082019050919050565b600061437e603883614d80565b915061438982615573565b604082019050919050565b60006143a1602a83614d80565b91506143ac826155c2565b604082019050919050565b60006143c4602983614d80565b91506143cf82615611565b604082019050919050565b60006143e7602083614d80565b91506143f282615660565b602082019050919050565b600061440a600383614d91565b915061441582615689565b600382019050919050565b600061442d602c83614d80565b9150614438826156b2565b604082019050919050565b6000614450602083614d80565b915061445b82615701565b602082019050919050565b6000614473602b83614d91565b915061447e8261572a565b602b82019050919050565b6000614496602983614d80565b91506144a182615779565b604082019050919050565b60006144b9602883614d91565b91506144c4826157c8565b602882019050919050565b60006144dc604e83614d91565b91506144e782615817565b604e82019050919050565b60006144ff602183614d80565b915061450a8261588c565b604082019050919050565b6000614522602c83614d91565b915061452d826158db565b602c82019050919050565b6000614545601183614d91565b91506145508261592a565b601182019050919050565b6000614568601d83614d91565b915061457382615953565b601d82019050919050565b600061458b600a83614d91565b91506145968261597c565b600a82019050919050565b60006145ae603183614d80565b91506145b9826159a5565b604082019050919050565b60006145d1600183614d91565b91506145dc826159f4565b600182019050919050565b60006145f4602c83614d80565b91506145ff82615a1d565b604082019050919050565b600061461760cf83614d91565b915061462282615a6c565b60cf82019050919050565b600061463a601f83614d80565b915061464582615b79565b602082019050919050565b600061465d601a83614d80565b915061466882615ba2565b602082019050919050565b61467c81614f1b565b82525050565b61468b81614f25565b82525050565b600061469d8284614133565b915081905092915050565b60006146b48285614133565b91506146c08284614133565b91508190509392505050565b60006146d8828c614133565b91506146e4828b614133565b91506146f0828a614133565b91506146fc8289614133565b91506147088288614133565b91506147148287614133565b91506147208286614133565b915061472c8285614133565b91506147388284614133565b91508190509a9950505050505050505050565b6000614757828e614133565b9150614763828d614133565b915061476f828c614133565b915061477b828b614133565b9150614787828a614133565b91506147938289614133565b915061479f8288614133565b91506147ab8287614133565b91506147b78286614133565b91506147c38285614133565b91506147cf8284614133565b91508190509c9b505050505050505050505050565b60006147f0828d614133565b91506147fb826144cf565b9150614807828c614133565b91506148128261427c565b915061481e828b614133565b915061482982614164565b9150614835828a614133565b91506148408261432b565b915061484c8289614133565b9150614857826144ac565b91506148638288614133565b915061486e82614515565b915061487a8287614133565b915061488582614308565b91506148918286614133565b915061489c82614466565b91506148a88285614133565b91506148b38261429f565b91506148bf8284614133565b91506148ca826143fd565b91508190509b9a5050505050505050505050565b60006148ea8284614133565b91506148f5826145c4565b915081905092915050565b600061490b82614538565b91506149178285614133565b91506149228261460a565b915061492e8284614133565b915061493982614236565b91508190509392505050565b60006149508261455b565b915061495c8284614133565b915081905092915050565b60006149728261457e565b915061497e8284614133565b915081905092915050565b600060208201905061499e60008301846140a3565b92915050565b60006080820190506149b960008301876140a3565b6149c660208301866140a3565b6149d36040830185614673565b81810360608301526149e581846140c1565b905095945050505050565b6000602082019050614a0560008301846140b2565b92915050565b60006020820190508181036000830152614a2581846140fa565b905092915050565b60006020820190508181036000830152614a4681614187565b9050919050565b60006020820190508181036000830152614a66816141aa565b9050919050565b60006020820190508181036000830152614a86816141cd565b9050919050565b60006020820190508181036000830152614aa6816141f0565b9050919050565b60006020820190508181036000830152614ac681614213565b9050919050565b60006020820190508181036000830152614ae681614259565b9050919050565b60006020820190508181036000830152614b06816142c2565b9050919050565b60006020820190508181036000830152614b26816142e5565b9050919050565b60006020820190508181036000830152614b468161434e565b9050919050565b60006020820190508181036000830152614b6681614371565b9050919050565b60006020820190508181036000830152614b8681614394565b9050919050565b60006020820190508181036000830152614ba6816143b7565b9050919050565b60006020820190508181036000830152614bc6816143da565b9050919050565b60006020820190508181036000830152614be681614420565b9050919050565b60006020820190508181036000830152614c0681614443565b9050919050565b60006020820190508181036000830152614c2681614489565b9050919050565b60006020820190508181036000830152614c46816144f2565b9050919050565b60006020820190508181036000830152614c66816145a1565b9050919050565b60006020820190508181036000830152614c86816145e7565b9050919050565b60006020820190508181036000830152614ca68161462d565b9050919050565b60006020820190508181036000830152614cc681614650565b9050919050565b6000602082019050614ce26000830184614673565b92915050565b6000602082019050614cfd6000830184614682565b92915050565b6000614d0d614d1e565b9050614d198282614fa6565b919050565b6000604051905090565b600067ffffffffffffffff821115614d4357614d4261513c565b5b614d4c8261517f565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000614da782614f1b565b9150614db283614f1b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614de757614de6615051565b5b828201905092915050565b6000614dfd82614f1b565b9150614e0883614f1b565b925082614e1857614e17615080565b5b828204905092915050565b6000614e2e82614f1b565b9150614e3983614f1b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614e7257614e71615051565b5b828202905092915050565b6000614e8882614f1b565b9150614e9383614f1b565b925082821015614ea657614ea5615051565b5b828203905092915050565b6000614ebc82614efb565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015614f5f578082015181840152602081019050614f44565b83811115614f6e576000848401525b50505050565b60006002820490506001821680614f8c57607f821691505b60208210811415614fa057614f9f6150af565b5b50919050565b614faf8261517f565b810181811067ffffffffffffffff82111715614fce57614fcd61513c565b5b80604052505050565b6000614fe282614f1b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561501557615014615051565b5b600182019050919050565b600061502b82614f1b565b915061503683614f1b565b92508261504657615045615080565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f227d2c7b2274726169745f74797065223a2022426f6479222c202276616c756560008201527f223a202200000000000000000000000000000000000000000000000000000000602082015250565b7f4d617820737570706c7920657863656564656400000000000000000000000000600082015250565b7f43616e206f6e6c79206d696e7420757020746f20323000000000000000000000600082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f7d2c7b2274726169745f74797065223a2022436c617373222c202276616c756560008201527f223a202200000000000000000000000000000000000000000000000000000000602082015250565b7f7d2c7b2274726169745f74797065223a20224d6f6420536c6f7473222c20227660008201527f616c7565223a2000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f227d2c7b2274726169745f74797065223a202250696c6f74222c202276616c7560008201527f65223a2022000000000000000000000000000000000000000000000000000000602082015250565b7f227d2c7b2274726169745f74797065223a2022436f6c6f72222c202276616c7560008201527f65223a2022000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f7d5d7d0000000000000000000000000000000000000000000000000000000000600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f227d2c7b2274726169745f74797065223a2022576561706f6e20536c6f74732260008201527f2c202276616c7565223a20000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f227d2c7b2274726169745f74797065223a20224d6174657269616c222c20227660008201527f616c7565223a2022000000000000000000000000000000000000000000000000602082015250565b7f2261747472696275746573223a5b7b2274726169745f74797065223a2022476560008201527f6e65726174696f6e222c2022646973706c61795f74797065223a20226e756d6260208201527f6572222c202276616c7565223a20000000000000000000000000000000000000604082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f227d2c7b2274726169745f74797065223a2022506f77657220536f757263652260008201527f2c202276616c7565223a20220000000000000000000000000000000000000000602082015250565b7f7b226e616d65223a20224d656368612023000000000000000000000000000000600082015250565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b7f4d4153535f434c41535300000000000000000000000000000000000000000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f7400000000000000000000000000000000000000000000000000000000000000600082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f222c20226465736372697074696f6e223a2022546865204d656368612050726f60008201527f6a656374206973207468652066697273742073757065722d6d6f62696c652d7360208201527f756974206d6574617665727365206275696c74206f6e204176616c616e63686560408201527f2e20546865206261736520746f6b656e2070726f766964657320616e2065787460608201527f656e7369626c65206368617373697320666f72206275696c64696e6720796f7560808201527f72204d656368612e222c2022696d616765223a2022646174613a696d6167652f60a08201527f7376672b786d6c3b6261736536342c000000000000000000000000000000000060c082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f415641582076616c75652073656e7420697320746f6f206c6f77000000000000600082015250565b615bd481614eb1565b8114615bdf57600080fd5b50565b615beb81614ec3565b8114615bf657600080fd5b50565b615c0281614ecf565b8114615c0d57600080fd5b50565b615c1981614f1b565b8114615c2457600080fd5b5056fe3c2f746578743e3c7465787420783d2231302220793d223132302220636c6173733d2262617365223e506f77657220536f757263653a203c2f746578743e3c7465787420783d2231302220793d223130302220636c6173733d2262617365223e48756c6c204d6174657269616c3a203c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f73766722207072657365727665417370656374526174696f3d22784d696e594d696e206d656574222076696577426f783d223020302033353020333530223e3c7374796c653e2e62617365207b2066696c6c3a2077686974653b20666f6e742d66616d696c793a2073657269663b20666f6e742d73697a653a20313470783b207d3c2f7374796c653e3c726563742077696474683d223130302522206865696768743d2231303025222066696c6c3d22626c61636b22202f3e3c7465787420783d2231302220793d2232302220636c6173733d2262617365223e47656e3a203c2f746578743e3c7465787420783d2231302220793d2238302220636c6173733d2262617365223e436f6c6f723a203c2f746578743e3c7465787420783d2231302220793d223136302220636c6173733d2262617365223e576561706f6e20536c6f74733a204142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f3c2f746578743e3c7465787420783d2231302220793d2234302220636c6173733d2262617365223e4d6173733a203c2f746578743e3c7465787420783d2231302220793d223134302220636c6173733d2262617365223e50696c6f743a203c2f746578743e3c7465787420783d2231302220793d223138302220636c6173733d2262617365223e4d6f6420536c6f74733a203c2f746578743e3c7465787420783d2231302220793d2236302220636c6173733d2262617365223e426f64793a20a2646970667358221220f09e6fa215241f7a4668f20cc0b1b309eed42380d2ecf7e6d0ebdf701b20391764736f6c63430008070033