[ { "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": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "minter", "type": "address" }, { "indexed": false, "internalType": "uint256[6]", "name": "traitIDs", "type": "uint256[6]" } ], "name": "GoatMinted", "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" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [ { "internalType": "uint256[]", "name": "_traits", "type": "uint256[]" } ], "name": "addNotBurnable", "outputs": [], "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": "bytes", "name": "", "type": "bytes" } ], "name": "availableDNA", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "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": "tokenID", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "name": "changeURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "DNA", "type": "string" } ], "name": "checkDNA", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cost", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "flipPausedState", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenID", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "uint256", "name": "bg", "type": "uint256" }, { "internalType": "uint256", "name": "body", "type": "uint256" }, { "internalType": "uint256", "name": "head", "type": "uint256" }, { "internalType": "uint256", "name": "eyes", "type": "uint256" }, { "internalType": "uint256", "name": "mouth", "type": "uint256" }, { "internalType": "uint256", "name": "headwear", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "notBurnable", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "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": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "royalties", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "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": "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": "uint256", "name": "newCost", "type": "uint256" } ], "name": "setCost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newValue", "type": "uint256" } ], "name": "setRoyalties", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newTraitsAddress", "type": "address" } ], "name": "setTraitsAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newTreasuryAddress", "type": "address" } ], "name": "setTreasuryAddress", "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": "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": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "walletOfOwner", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenAddress", "type": "address" } ], "name": "withdrawERC20", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_nftAddress", "type": "address" }, { "internalType": "uint256", "name": "_tokenID", "type": "uint256" } ], "name": "withdrawERC721", "outputs": [], "stateMutability": "payable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526001600860146101000a81548160ff0219169083151502179055506706f05b59d3b2000060095561012c600a557332bd2811fb91bc46756232a0b8c6b2902d7d8763600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739521807adf320d1cdf87afdf875bf438d1d92d87600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200014b57600080fd5b506040518060400160405280600981526020017f474f4154642050465000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f474f4154640000000000000000000000000000000000000000000000000000008152508160009080519060200190620001d0929190620002e8565b508060019080519060200190620001e9929190620002e8565b505050600160078190555062000214620002086200021a60201b60201c565b6200022260201b60201c565b620003fd565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002f690620003c7565b90600052602060002090601f0160209004810192826200031a576000855562000366565b82601f106200033557805160ff191683800117855562000366565b8280016001018555821562000366579182015b828111156200036557825182559160200191906001019062000348565b5b50905062000375919062000379565b5090565b5b80821115620003945760008160009055506001016200037a565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003e057607f821691505b60208210811415620003f757620003f662000398565b5b50919050565b615c51806200040d6000396000f3fe6080604052600436106102085760003560e01c806370a0823111610118578063b88d4fde116100a0578063f053dc5c1161006f578063f053dc5c14610783578063f2fde38b146107ae578063f3e414f8146107d7578063f4f3b200146107f3578063fc665e741461080f5761020f565b8063b88d4fde146106b7578063c87b56dd146106e0578063da6af9711461071d578063e985e9c5146107465761020f565b806395d89b41116100e757806395d89b41146105e15780639c03f7301461060c5780639d00d05a14610635578063a22cb46514610672578063abe25a1e1461069b5761020f565b806370a08231146105395780638affb485146105765780638da5cb5b1461059f57806393eff851146105ca5761020f565b80632a55205a1161019b578063438b63001161016a578063438b63001461044257806344a0d68a1461047f5780635c975abb146104a85780636352211e146104d35780636605bfda146105105761020f565b80632a55205a1461039b5780632b80183f146103d95780633ccfd60b1461040257806342842e0e146104195761020f565b8063095ea7b3116101d7578063095ea7b3146102f357806313faede61461031c57806318160ddd1461034757806323b872dd146103725761020f565b806301ffc9a714610211578063022f5a9b1461024e57806306fdde031461028b578063081812fc146102b65761020f565b3661020f57005b005b34801561021d57600080fd5b5061023860048036038101906102339190613c2d565b61084c565b6040516102459190613c75565b60405180910390f35b34801561025a57600080fd5b5061027560048036038101906102709190613cf5565b6108c6565b6040516102829190613d5e565b60405180910390f35b34801561029757600080fd5b506102a061091d565b6040516102ad9190613e12565b60405180910390f35b3480156102c257600080fd5b506102dd60048036038101906102d89190613e6a565b6109af565b6040516102ea9190613ed8565b60405180910390f35b3480156102ff57600080fd5b5061031a60048036038101906103159190613f1f565b610a34565b005b34801561032857600080fd5b50610331610b4c565b60405161033e9190613f6e565b60405180910390f35b34801561035357600080fd5b5061035c610b52565b6040516103699190613f6e565b60405180910390f35b34801561037e57600080fd5b5061039960048036038101906103949190613f89565b610b63565b005b3480156103a757600080fd5b506103c260048036038101906103bd9190613fdc565b610bc3565b6040516103d092919061401c565b60405180910390f35b3480156103e557600080fd5b5061040060048036038101906103fb9190613e6a565b610c0f565b005b34801561040e57600080fd5b50610417610c95565b005b34801561042557600080fd5b50610440600480360381019061043b9190613f89565b610de2565b005b34801561044e57600080fd5b5061046960048036038101906104649190614045565b610e02565b6040516104769190614130565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190613e6a565b610f12565b005b3480156104b457600080fd5b506104bd610f98565b6040516104ca9190613c75565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f59190613e6a565b610fab565b6040516105079190613ed8565b60405180910390f35b34801561051c57600080fd5b5061053760048036038101906105329190614045565b61105d565b005b34801561054557600080fd5b50610560600480360381019061055b9190614045565b61111d565b60405161056d9190613f6e565b60405180910390f35b34801561058257600080fd5b5061059d60048036038101906105989190614045565b6111d5565b005b3480156105ab57600080fd5b506105b46112f8565b6040516105c19190613ed8565b60405180910390f35b3480156105d657600080fd5b506105df611322565b005b3480156105ed57600080fd5b506105f66113ca565b6040516106039190613e12565b60405180910390f35b34801561061857600080fd5b50610633600480360381019061062e91906141a8565b61145c565b005b34801561064157600080fd5b5061065c60048036038101906106579190614325565b611544565b6040516106699190613d5e565b60405180910390f35b34801561067e57600080fd5b506106996004803603810190610694919061439a565b61157a565b005b6106b560048036038101906106b091906143da565b611590565b005b3480156106c357600080fd5b506106de60048036038101906106d9919061449c565b6120b5565b005b3480156106ec57600080fd5b5061070760048036038101906107029190613e6a565b612117565b6040516107149190613e12565b60405180910390f35b34801561072957600080fd5b50610744600480360381019061073f919061451f565b612269565b005b34801561075257600080fd5b5061076d6004803603810190610768919061457f565b612338565b60405161077a9190613c75565b60405180910390f35b34801561078f57600080fd5b506107986123cc565b6040516107a59190613f6e565b60405180910390f35b3480156107ba57600080fd5b506107d560048036038101906107d09190614045565b6123d2565b005b6107f160048036038101906107ec9190613f1f565b6124ca565b005b61080d60048036038101906108089190614045565b6125c6565b005b34801561081b57600080fd5b5061083660048036038101906108319190613e6a565b612750565b6040516108439190613d5e565b60405180910390f35b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108bf57506108be82612770565b5b9050919050565b6000600b83836040516020016108dd9291906145ef565b6040516020818303038152906040526040516108f9919061464f565b908152602001604051809103902060009054906101000a900460ff16905092915050565b60606000805461092c90614695565b80601f016020809104026020016040519081016040528092919081815260200182805461095890614695565b80156109a55780601f1061097a576101008083540402835291602001916109a5565b820191906000526020600020905b81548152906001019060200180831161098857829003601f168201915b5050505050905090565b60006109ba82612852565b6109f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f090614739565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a3f82610fab565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa7906147cb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610acf6128be565b73ffffffffffffffffffffffffffffffffffffffff161480610afe5750610afd81610af86128be565b612338565b5b610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b349061485d565b60405180910390fd5b610b4783836128c6565b505050565b60095481565b6000610b5e601061297f565b905090565b610b74610b6e6128be565b8261298d565b610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa906148ef565b60405180910390fd5b610bbe838383612a6b565b505050565b600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612710600a5485610bfa919061493e565b610c0491906149c7565b915091509250929050565b610c176128be565b73ffffffffffffffffffffffffffffffffffffffff16610c356112f8565b73ffffffffffffffffffffffffffffffffffffffff1614610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290614a44565b60405180910390fd5b80600a8190555050565b610c9d6128be565b73ffffffffffffffffffffffffffffffffffffffff16610cbb6112f8565b73ffffffffffffffffffffffffffffffffffffffff1614610d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0890614a44565b60405180910390fd5b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610d5990614a8a565b60006040518083038185875af1925050503d8060008114610d96576040519150601f19603f3d011682016040523d82523d6000602084013e610d9b565b606091505b5050905080610ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd690614b11565b60405180910390fd5b50565b610dfd838383604051806020016040528060008152506120b5565b505050565b60606000610e0f8361111d565b905060008167ffffffffffffffff811115610e2d57610e2c6141fa565b5b604051908082528060200260200182016040528015610e5b5781602001602082028036833780820191505090505b50905060006001905060005b8381108015610e7d5750610e79610b52565b8211155b15610f06576000610e8d83610fab565b90508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ef25782848381518110610ed757610ed6614b31565b5b6020026020010181815250508180610eee90614b60565b9250505b8280610efd90614b60565b93505050610e67565b82945050505050919050565b610f1a6128be565b73ffffffffffffffffffffffffffffffffffffffff16610f386112f8565b73ffffffffffffffffffffffffffffffffffffffff1614610f8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8590614a44565b60405180910390fd5b8060098190555050565b600860149054906101000a900460ff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611054576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104b90614c1b565b60405180910390fd5b80915050919050565b6110656128be565b73ffffffffffffffffffffffffffffffffffffffff166110836112f8565b73ffffffffffffffffffffffffffffffffffffffff16146110d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d090614a44565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561118e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118590614cad565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111dd6128be565b73ffffffffffffffffffffffffffffffffffffffff166111fb6112f8565b73ffffffffffffffffffffffffffffffffffffffff1614611251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124890614a44565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61132a6128be565b73ffffffffffffffffffffffffffffffffffffffff166113486112f8565b73ffffffffffffffffffffffffffffffffffffffff161461139e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139590614a44565b60405180910390fd5b600860149054906101000a900460ff1615600860146101000a81548160ff021916908315150217905550565b6060600180546113d990614695565b80601f016020809104026020016040519081016040528092919081815260200182805461140590614695565b80156114525780601f1061142757610100808354040283529160200191611452565b820191906000526020600020905b81548152906001019060200180831161143557829003601f168201915b5050505050905090565b6114646128be565b73ffffffffffffffffffffffffffffffffffffffff166114826112f8565b73ffffffffffffffffffffffffffffffffffffffff16146114d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cf90614a44565b60405180910390fd5b60005b8282905081101561153f576001600c60008585858181106114ff576114fe614b31565b5b90506020020135815260200190815260200160002060006101000a81548160ff021916908360ff160217905550808061153790614b60565b9150506114db565b505050565b600b818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900460ff1681565b61158c6115856128be565b8383612cd2565b5050565b600260075414156115d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cd90614d19565b60405180910390fd5b60026007819055506000881180156115ee5750606488105b8061161c57506001600c60008a815260200190815260200160002060009054906101000a900460ff1660ff16145b8015611663575060648710158015611634575060c887105b8061166257506001600c600089815260200190815260200160002060009054906101000a900460ff1660ff16145b5b80156116ab575060c8861015801561167c575061012c86105b806116aa57506001600c600088815260200190815260200160002060009054906101000a900460ff1660ff16145b5b80156116f4575061012c85101580156116c5575061019085105b806116f357506001600c600087815260200190815260200160002060009054906101000a900460ff1660ff16145b5b801561173d5750610190841015801561170e57506101f484105b8061173c57506001600c600086815260200190815260200160002060009054906101000a900460ff1660ff16145b5b801561177957506102588310158061177857506001600c600085815260200190815260200160002060009054906101000a900460ff1660ff16145b5b6117b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117af90614dab565b60405180910390fd5b6000600c60008a815260200190815260200160002060009054906101000a900460ff1660ff1614156118cb576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e61182b6128be565b8b6040518363ffffffff1660e01b815260040161184992919061401c565b602060405180830381865afa158015611866573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188a9190614de0565b116118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c190614e7f565b60405180910390fd5b5b6000600c600089815260200190815260200160002060009054906101000a900460ff1660ff1614156119de576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e61193e6128be565b8a6040518363ffffffff1660e01b815260040161195c92919061401c565b602060405180830381865afa158015611979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199d9190614de0565b116119dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d490614eeb565b60405180910390fd5b5b6000600c600088815260200190815260200160002060009054906101000a900460ff1660ff161415611af1576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e611a516128be565b896040518363ffffffff1660e01b8152600401611a6f92919061401c565b602060405180830381865afa158015611a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab09190614de0565b11611af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae790614f57565b60405180910390fd5b5b6000600c600087815260200190815260200160002060009054906101000a900460ff1660ff161415611c04576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e611b646128be565b886040518363ffffffff1660e01b8152600401611b8292919061401c565b602060405180830381865afa158015611b9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc39190614de0565b11611c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfa90614fc3565b60405180910390fd5b5b6000600c600086815260200190815260200160002060009054906101000a900460ff1660ff161415611d17576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e611c776128be565b876040518363ffffffff1660e01b8152600401611c9592919061401c565b602060405180830381865afa158015611cb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd69190614de0565b11611d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0d9061502f565b60405180910390fd5b5b6000600c600085815260200190815260200160002060009054906101000a900460ff1660ff161415611e2a576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e611d8a6128be565b866040518363ffffffff1660e01b8152600401611da892919061401c565b602060405180830381865afa158015611dc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de99190614de0565b11611e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e20906150c1565b60405180910390fd5b5b6000611e3588612e3f565b611e3e88612e3f565b611e4788612e3f565b611e5088612e3f565b611e5988612e3f565b604051602001611e6d959493929190615112565b60405160208183030381529060405290506000600b82604051611e90919061464f565b908152602001604051809103902060009054906101000a900460ff1660ff1614611eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee6906151cf565b60405180910390fd5b600860149054906101000a900460ff1615611f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f369061523b565b60405180910390fd5b600954341015611f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7b906152a7565b60405180910390fd5b611fdf611f8f6128be565b8a8a8a8a8a8a8a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612fa0565b6001600b82604051611ff1919061464f565b908152602001604051809103902060006101000a81548160ff021916908360ff16021790555061201f6128be565b73ffffffffffffffffffffffffffffffffffffffff1661203f601061297f565b7f8be6a259a55f56882fe42d39a141e8cc5bde7bfd77f8340573a9d43018c7f2ec6040518060c001604052808d81526020018c81526020018b81526020018a81526020018981526020018881525060405161209a919061534b565b60405180910390a35060016007819055505050505050505050565b6120c66120c06128be565b8361298d565b612105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fc906148ef565b60405180910390fd5b61211184848484613442565b50505050565b606061212282612852565b612161576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612158906153d8565b60405180910390fd5b600060066000848152602001908152602001600020805461218190614695565b80601f01602080910402602001604051908101604052809291908181526020018280546121ad90614695565b80156121fa5780601f106121cf576101008083540402835291602001916121fa565b820191906000526020600020905b8154815290600101906020018083116121dd57829003601f168201915b50505050509050600061220b61349e565b9050600081511415612221578192505050612264565b60008251111561225657808260405160200161223e9291906153f8565b60405160208183030381529060405292505050612264565b61225f846134b5565b925050505b919050565b6122716128be565b73ffffffffffffffffffffffffffffffffffffffff1661228f6112f8565b73ffffffffffffffffffffffffffffffffffffffff16146122e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122dc90614a44565b60405180910390fd5b6123338383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061355c565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600a5481565b6123da6128be565b73ffffffffffffffffffffffffffffffffffffffff166123f86112f8565b73ffffffffffffffffffffffffffffffffffffffff161461244e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244590614a44565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b59061548e565b60405180910390fd5b6124c7816135d0565b50565b6124d26128be565b73ffffffffffffffffffffffffffffffffffffffff166124f06112f8565b73ffffffffffffffffffffffffffffffffffffffff1614612546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253d90614a44565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff166342842e0e306125706112f8565b856040518463ffffffff1660e01b815260040161258f939291906154ae565b600060405180830381600087803b1580156125a957600080fd5b505af11580156125bd573d6000803e3d6000fd5b50505050505050565b6125ce6128be565b73ffffffffffffffffffffffffffffffffffffffff166125ec6112f8565b73ffffffffffffffffffffffffffffffffffffffff1614612642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263990614a44565b60405180910390fd5b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126829190613ed8565b602060405180830381865afa15801561269f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c39190614de0565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6126e96112f8565b836040518363ffffffff1660e01b8152600401612707929190615544565b6020604051808303816000875af1158015612726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061274a9190615582565b50505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061283b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061284b575061284a82613696565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661293983610fab565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b600061299882612852565b6129d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129ce90615621565b60405180910390fd5b60006129e283610fab565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612a5157508373ffffffffffffffffffffffffffffffffffffffff16612a39846109af565b73ffffffffffffffffffffffffffffffffffffffff16145b80612a625750612a618185612338565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16612a8b82610fab565b73ffffffffffffffffffffffffffffffffffffffff1614612ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad8906156b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4890615745565b60405180910390fd5b612b5c838383613700565b612b676000826128c6565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612bb79190615765565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612c0e9190615799565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612ccd838383613705565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d389061583b565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612e329190613c75565b60405180910390a3505050565b60606000821415612e87576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612f9b565b600082905060005b60008214612eb9578080612ea290614b60565b915050600a82612eb291906149c7565b9150612e8f565b60008167ffffffffffffffff811115612ed557612ed46141fa565b5b6040519080825280601f01601f191660200182016040528015612f075781602001600182028036833780820191505090505b5090505b60008514612f9457600182612f209190615765565b9150600a85612f2f919061585b565b6030612f3b9190615799565b60f81b818381518110612f5157612f50614b31565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612f8d91906149c7565b9450612f0b565b8093505050505b919050565b6000600c600089815260200190815260200160002060009054906101000a900460ff1660ff16141561305c57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b0ec042888a6040518363ffffffff1660e01b815260040161302992919061588c565b600060405180830381600087803b15801561304357600080fd5b505af1158015613057573d6000803e3d6000fd5b505050505b6000600c600088815260200190815260200160002060009054906101000a900460ff1660ff16141561311857600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b0ec042878a6040518363ffffffff1660e01b81526004016130e592919061588c565b600060405180830381600087803b1580156130ff57600080fd5b505af1158015613113573d6000803e3d6000fd5b505050505b6000600c600087815260200190815260200160002060009054906101000a900460ff1660ff1614156131d457600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b0ec042868a6040518363ffffffff1660e01b81526004016131a192919061588c565b600060405180830381600087803b1580156131bb57600080fd5b505af11580156131cf573d6000803e3d6000fd5b505050505b6000600c600086815260200190815260200160002060009054906101000a900460ff1660ff16141561329057600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b0ec042858a6040518363ffffffff1660e01b815260040161325d92919061588c565b600060405180830381600087803b15801561327757600080fd5b505af115801561328b573d6000803e3d6000fd5b505050505b6000600c600085815260200190815260200160002060009054906101000a900460ff1660ff16141561334c57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b0ec042848a6040518363ffffffff1660e01b815260040161331992919061588c565b600060405180830381600087803b15801561333357600080fd5b505af1158015613347573d6000803e3d6000fd5b505050505b6000600c600084815260200190815260200160002060009054906101000a900460ff1660ff16141561340857600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633b0ec042838a6040518363ffffffff1660e01b81526004016133d592919061588c565b600060405180830381600087803b1580156133ef57600080fd5b505af1158015613403573d6000803e3d6000fd5b505050505b613412601061370a565b61342588613420601061297f565b613720565b613438613432601061297f565b8261355c565b5050505050505050565b61344d848484612a6b565b6134598484848461373e565b613498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161348f90615927565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b60606134c082612852565b6134ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134f6906159b9565b60405180910390fd5b600061350961349e565b905060008151116135295760405180602001604052806000815250613554565b8061353384612e3f565b6040516020016135449291906153f8565b6040516020818303038152906040525b915050919050565b61356582612852565b6135a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161359b90615a4b565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906135cb929190613b1e565b505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b505050565b505050565b6001816000016000828254019250508190555050565b61373a8282604051806020016040528060008152506138c6565b5050565b600061375f8473ffffffffffffffffffffffffffffffffffffffff16613921565b156138b9578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026137886128be565b8786866040518563ffffffff1660e01b81526004016137aa9493929190615ab5565b6020604051808303816000875af19250505080156137e657506040513d601f19601f820116820180604052508101906137e39190615b16565b60015b613869573d8060008114613816576040519150601f19603f3d011682016040523d82523d6000602084013e61381b565b606091505b50600081511415613861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161385890615927565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506138be565b600190505b949350505050565b6138d08383613944565b6138dd600084848461373e565b61391c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161391390615927565b60405180910390fd5b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156139b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139ab90615b8f565b60405180910390fd5b6139bd81612852565b156139fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139f490615bfb565b60405180910390fd5b613a0960008383613700565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613a599190615799565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4613b1a60008383613705565b5050565b828054613b2a90614695565b90600052602060002090601f016020900481019282613b4c5760008555613b93565b82601f10613b6557805160ff1916838001178555613b93565b82800160010185558215613b93579182015b82811115613b92578251825591602001919060010190613b77565b5b509050613ba09190613ba4565b5090565b5b80821115613bbd576000816000905550600101613ba5565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613c0a81613bd5565b8114613c1557600080fd5b50565b600081359050613c2781613c01565b92915050565b600060208284031215613c4357613c42613bcb565b5b6000613c5184828501613c18565b91505092915050565b60008115159050919050565b613c6f81613c5a565b82525050565b6000602082019050613c8a6000830184613c66565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613cb557613cb4613c90565b5b8235905067ffffffffffffffff811115613cd257613cd1613c95565b5b602083019150836001820283011115613cee57613ced613c9a565b5b9250929050565b60008060208385031215613d0c57613d0b613bcb565b5b600083013567ffffffffffffffff811115613d2a57613d29613bd0565b5b613d3685828601613c9f565b92509250509250929050565b600060ff82169050919050565b613d5881613d42565b82525050565b6000602082019050613d736000830184613d4f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613db3578082015181840152602081019050613d98565b83811115613dc2576000848401525b50505050565b6000601f19601f8301169050919050565b6000613de482613d79565b613dee8185613d84565b9350613dfe818560208601613d95565b613e0781613dc8565b840191505092915050565b60006020820190508181036000830152613e2c8184613dd9565b905092915050565b6000819050919050565b613e4781613e34565b8114613e5257600080fd5b50565b600081359050613e6481613e3e565b92915050565b600060208284031215613e8057613e7f613bcb565b5b6000613e8e84828501613e55565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613ec282613e97565b9050919050565b613ed281613eb7565b82525050565b6000602082019050613eed6000830184613ec9565b92915050565b613efc81613eb7565b8114613f0757600080fd5b50565b600081359050613f1981613ef3565b92915050565b60008060408385031215613f3657613f35613bcb565b5b6000613f4485828601613f0a565b9250506020613f5585828601613e55565b9150509250929050565b613f6881613e34565b82525050565b6000602082019050613f836000830184613f5f565b92915050565b600080600060608486031215613fa257613fa1613bcb565b5b6000613fb086828701613f0a565b9350506020613fc186828701613f0a565b9250506040613fd286828701613e55565b9150509250925092565b60008060408385031215613ff357613ff2613bcb565b5b600061400185828601613e55565b925050602061401285828601613e55565b9150509250929050565b60006040820190506140316000830185613ec9565b61403e6020830184613f5f565b9392505050565b60006020828403121561405b5761405a613bcb565b5b600061406984828501613f0a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140a781613e34565b82525050565b60006140b9838361409e565b60208301905092915050565b6000602082019050919050565b60006140dd82614072565b6140e7818561407d565b93506140f28361408e565b8060005b8381101561412357815161410a88826140ad565b9750614115836140c5565b9250506001810190506140f6565b5085935050505092915050565b6000602082019050818103600083015261414a81846140d2565b905092915050565b60008083601f84011261416857614167613c90565b5b8235905067ffffffffffffffff81111561418557614184613c95565b5b6020830191508360208202830111156141a1576141a0613c9a565b5b9250929050565b600080602083850312156141bf576141be613bcb565b5b600083013567ffffffffffffffff8111156141dd576141dc613bd0565b5b6141e985828601614152565b92509250509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61423282613dc8565b810181811067ffffffffffffffff82111715614251576142506141fa565b5b80604052505050565b6000614264613bc1565b90506142708282614229565b919050565b600067ffffffffffffffff8211156142905761428f6141fa565b5b61429982613dc8565b9050602081019050919050565b82818337600083830152505050565b60006142c86142c384614275565b61425a565b9050828152602081018484840111156142e4576142e36141f5565b5b6142ef8482856142a6565b509392505050565b600082601f83011261430c5761430b613c90565b5b813561431c8482602086016142b5565b91505092915050565b60006020828403121561433b5761433a613bcb565b5b600082013567ffffffffffffffff81111561435957614358613bd0565b5b614365848285016142f7565b91505092915050565b61437781613c5a565b811461438257600080fd5b50565b6000813590506143948161436e565b92915050565b600080604083850312156143b1576143b0613bcb565b5b60006143bf85828601613f0a565b92505060206143d085828601614385565b9150509250929050565b60008060008060008060008060e0898b0312156143fa576143f9613bcb565b5b60006144088b828c01613e55565b98505060206144198b828c01613e55565b975050604061442a8b828c01613e55565b965050606061443b8b828c01613e55565b955050608061444c8b828c01613e55565b94505060a061445d8b828c01613e55565b93505060c089013567ffffffffffffffff81111561447e5761447d613bd0565b5b61448a8b828c01613c9f565b92509250509295985092959890939650565b600080600080608085870312156144b6576144b5613bcb565b5b60006144c487828801613f0a565b94505060206144d587828801613f0a565b93505060406144e687828801613e55565b925050606085013567ffffffffffffffff81111561450757614506613bd0565b5b614513878288016142f7565b91505092959194509250565b60008060006040848603121561453857614537613bcb565b5b600061454686828701613e55565b935050602084013567ffffffffffffffff81111561456757614566613bd0565b5b61457386828701613c9f565b92509250509250925092565b6000806040838503121561459657614595613bcb565b5b60006145a485828601613f0a565b92505060206145b585828601613f0a565b9150509250929050565b600081905092915050565b60006145d683856145bf565b93506145e38385846142a6565b82840190509392505050565b60006145fc8284866145ca565b91508190509392505050565b600081519050919050565b600081905092915050565b600061462982614608565b6146338185614613565b9350614643818560208601613d95565b80840191505092915050565b600061465b828461461e565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806146ad57607f821691505b602082108114156146c1576146c0614666565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000614723602c83613d84565b915061472e826146c7565b604082019050919050565b6000602082019050818103600083015261475281614716565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006147b5602183613d84565b91506147c082614759565b604082019050919050565b600060208201905081810360008301526147e4816147a8565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000614847603883613d84565b9150614852826147eb565b604082019050919050565b600060208201905081810360008301526148768161483a565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b60006148d9603183613d84565b91506148e48261487d565b604082019050919050565b60006020820190508181036000830152614908816148cc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061494982613e34565b915061495483613e34565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561498d5761498c61490f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006149d282613e34565b91506149dd83613e34565b9250826149ed576149ec614998565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614a2e602083613d84565b9150614a39826149f8565b602082019050919050565b60006020820190508181036000830152614a5d81614a21565b9050919050565b50565b6000614a74600083614613565b9150614a7f82614a64565b600082019050919050565b6000614a9582614a67565b9150819050919050565b7f41564158205472616e73616374696f6e3a204661696c656420746f207472616e60008201527f736665722066756e647320746f20746865206f776e65722077616c6c65742100602082015250565b6000614afb603f83613d84565b9150614b0682614a9f565b604082019050919050565b60006020820190508181036000830152614b2a81614aee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000614b6b82613e34565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614b9e57614b9d61490f565b5b600182019050919050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b6000614c05602983613d84565b9150614c1082614ba9565b604082019050919050565b60006020820190508181036000830152614c3481614bf8565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000614c97602a83613d84565b9150614ca282614c3b565b604082019050919050565b60006020820190508181036000830152614cc681614c8a565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000614d03601f83613d84565b9150614d0e82614ccd565b602082019050919050565b60006020820190508181036000830152614d3281614cf6565b9050919050565b7f474f4154643a204174206c65617374206f6e652074726169742073706563696660008201527f69656420697320696e76616c6964210000000000000000000000000000000000602082015250565b6000614d95602f83613d84565b9150614da082614d39565b604082019050919050565b60006020820190508181036000830152614dc481614d88565b9050919050565b600081519050614dda81613e3e565b92915050565b600060208284031215614df657614df5613bcb565b5b6000614e0484828501614dcb565b91505092915050565b7f474f4154643a20596f7520646f6e2774206f776e2074686174206261636b677260008201527f6f756e6421000000000000000000000000000000000000000000000000000000602082015250565b6000614e69602583613d84565b9150614e7482614e0d565b604082019050919050565b60006020820190508181036000830152614e9881614e5c565b9050919050565b7f474f4154643a20596f7520646f6e2774206f776e207468617420626f64792100600082015250565b6000614ed5601f83613d84565b9150614ee082614e9f565b602082019050919050565b60006020820190508181036000830152614f0481614ec8565b9050919050565b7f474f4154643a20596f7520646f6e2774206f776e207468617420686561642100600082015250565b6000614f41601f83613d84565b9150614f4c82614f0b565b602082019050919050565b60006020820190508181036000830152614f7081614f34565b9050919050565b7f474f4154643a20596f7520646f6e2774206f776e207468617420657965732100600082015250565b6000614fad601f83613d84565b9150614fb882614f77565b602082019050919050565b60006020820190508181036000830152614fdc81614fa0565b9050919050565b7f474f4154643a20596f7520646f6e2774206f776e2074686174206d6f75746821600082015250565b6000615019602083613d84565b915061502482614fe3565b602082019050919050565b600060208201905081810360008301526150488161500c565b9050919050565b7f474f4154643a20596f7520646f6e2774206f776e20746861742068656164776560008201527f6172210000000000000000000000000000000000000000000000000000000000602082015250565b60006150ab602383613d84565b91506150b68261504f565b604082019050919050565b600060208201905081810360008301526150da8161509e565b9050919050565b60006150ec82613d79565b6150f681856145bf565b9350615106818560208601613d95565b80840191505092915050565b600061511e82886150e1565b915061512a82876150e1565b915061513682866150e1565b915061514282856150e1565b915061514e82846150e1565b91508190509695505050505050565b7f474f4154643a20436f6d62696e6174696f6e2073706563696669656420616c7260008201527f6561647920657869737473210000000000000000000000000000000000000000602082015250565b60006151b9602c83613d84565b91506151c48261515d565b604082019050919050565b600060208201905081810360008301526151e8816151ac565b9050919050565b7f4d696e74696e6720697320706175736564000000000000000000000000000000600082015250565b6000615225601183613d84565b9150615230826151ef565b602082019050919050565b6000602082019050818103600083015261525481615218565b9050919050565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b6000615291601283613d84565b915061529c8261525b565b602082019050919050565b600060208201905081810360008301526152c081615284565b9050919050565b600060069050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b6152fd816152c7565b61530781846152d2565b9250615312826152dd565b8060005b8381101561534357815161532a87826140ad565b9650615335836152e7565b925050600181019050615316565b505050505050565b600060c08201905061536060008301846152f4565b92915050565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b60006153c2603183613d84565b91506153cd82615366565b604082019050919050565b600060208201905081810360008301526153f1816153b5565b9050919050565b600061540482856150e1565b915061541082846150e1565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000615478602683613d84565b91506154838261541c565b604082019050919050565b600060208201905081810360008301526154a78161546b565b9050919050565b60006060820190506154c36000830186613ec9565b6154d06020830185613ec9565b6154dd6040830184613f5f565b949350505050565b6000819050919050565b600061550a61550561550084613e97565b6154e5565b613e97565b9050919050565b600061551c826154ef565b9050919050565b600061552e82615511565b9050919050565b61553e81615523565b82525050565b60006040820190506155596000830185615535565b6155666020830184613f5f565b9392505050565b60008151905061557c8161436e565b92915050565b60006020828403121561559857615597613bcb565b5b60006155a68482850161556d565b91505092915050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b600061560b602c83613d84565b9150615616826155af565b604082019050919050565b6000602082019050818103600083015261563a816155fe565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b600061569d602583613d84565b91506156a882615641565b604082019050919050565b600060208201905081810360008301526156cc81615690565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061572f602483613d84565b915061573a826156d3565b604082019050919050565b6000602082019050818103600083015261575e81615722565b9050919050565b600061577082613e34565b915061577b83613e34565b92508282101561578e5761578d61490f565b5b828203905092915050565b60006157a482613e34565b91506157af83613e34565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156157e4576157e361490f565b5b828201905092915050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000615825601983613d84565b9150615830826157ef565b602082019050919050565b6000602082019050818103600083015261585481615818565b9050919050565b600061586682613e34565b915061587183613e34565b92508261588157615880614998565b5b828206905092915050565b60006040820190506158a16000830185613f5f565b6158ae6020830184613ec9565b9392505050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000615911603283613d84565b915061591c826158b5565b604082019050919050565b6000602082019050818103600083015261594081615904565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b60006159a3602f83613d84565b91506159ae82615947565b604082019050919050565b600060208201905081810360008301526159d281615996565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b6000615a35602e83613d84565b9150615a40826159d9565b604082019050919050565b60006020820190508181036000830152615a6481615a28565b9050919050565b600082825260208201905092915050565b6000615a8782614608565b615a918185615a6b565b9350615aa1818560208601613d95565b615aaa81613dc8565b840191505092915050565b6000608082019050615aca6000830187613ec9565b615ad76020830186613ec9565b615ae46040830185613f5f565b8181036060830152615af68184615a7c565b905095945050505050565b600081519050615b1081613c01565b92915050565b600060208284031215615b2c57615b2b613bcb565b5b6000615b3a84828501615b01565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000615b79602083613d84565b9150615b8482615b43565b602082019050919050565b60006020820190508181036000830152615ba881615b6c565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000615be5601c83613d84565b9150615bf082615baf565b602082019050919050565b60006020820190508181036000830152615c1481615bd8565b905091905056fea26469706673582212204544120b75948cbdfb81a35be1196af0a81578908d1b45affd2ba35fe55c068e64736f6c634300080b0033