[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "string", "name": "baseURI", "type": "string" }, { "internalType": "string", "name": "__brand", "type": "string" }, { "internalType": "string", "name": "__model", "type": "string" }, { "internalType": "string", "name": "__reference", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "StringsInsufficientHexLength", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "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": "id", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBaseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBrand", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getModel", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getReference", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextTokenId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "owner", "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": "id", "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": "id", "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": "string", "name": "baseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "brand", "type": "string" } ], "name": "setBrand", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "model", "type": "string" } ], "name": "setModel", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "__reference", "type": "string" } ], "name": "setReference", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "privilege", "type": "bool" } ], "name": "setRole", "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": "", "type": "uint256" } ], "name": "tokenByIndex", "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": "id", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b5060405162003f7738038062003f77833981810160405281019062000037919062000519565b33868681600090816200004b9190620008ba565b5080600190816200005d9190620008ba565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000d55760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000cc9190620009e6565b60405180910390fd5b620000e6816200016f60201b60201c565b506200011b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63360016200023560201b60201c565b83600790816200012c9190620008ba565b5082600890816200013e9190620008ba565b508160099081620001509190620008ba565b5080600a9081620001629190620008ba565b5050505050505062000a03565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b62000245620002b260201b60201c565b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b620002c26200035460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002e86200035c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200035257620003146200035460201b60201c565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401620003499190620009e6565b60405180910390fd5b565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620003ef82620003a4565b810181811067ffffffffffffffff82111715620004115762000410620003b5565b5b80604052505050565b60006200042662000386565b9050620004348282620003e4565b919050565b600067ffffffffffffffff821115620004575762000456620003b5565b5b6200046282620003a4565b9050602081019050919050565b60005b838110156200048f57808201518184015260208101905062000472565b60008484015250505050565b6000620004b2620004ac8462000439565b6200041a565b905082815260208101848484011115620004d157620004d06200039f565b5b620004de8482856200046f565b509392505050565b600082601f830112620004fe57620004fd6200039a565b5b8151620005108482602086016200049b565b91505092915050565b60008060008060008060c0878903121562000539576200053862000390565b5b600087015167ffffffffffffffff8111156200055a576200055962000395565b5b6200056889828a01620004e6565b965050602087015167ffffffffffffffff8111156200058c576200058b62000395565b5b6200059a89828a01620004e6565b955050604087015167ffffffffffffffff811115620005be57620005bd62000395565b5b620005cc89828a01620004e6565b945050606087015167ffffffffffffffff811115620005f057620005ef62000395565b5b620005fe89828a01620004e6565b935050608087015167ffffffffffffffff81111562000622576200062162000395565b5b6200063089828a01620004e6565b92505060a087015167ffffffffffffffff81111562000654576200065362000395565b5b6200066289828a01620004e6565b9150509295509295509295565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620006c257607f821691505b602082108103620006d857620006d76200067a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000703565b6200074e868362000703565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200079b620007956200078f8462000766565b62000770565b62000766565b9050919050565b6000819050919050565b620007b7836200077a565b620007cf620007c682620007a2565b84845462000710565b825550505050565b600090565b620007e6620007d7565b620007f3818484620007ac565b505050565b5b818110156200081b576200080f600082620007dc565b600181019050620007f9565b5050565b601f8211156200086a576200083481620006de565b6200083f84620006f3565b810160208510156200084f578190505b620008676200085e85620006f3565b830182620007f8565b50505b505050565b600082821c905092915050565b60006200088f600019846008026200086f565b1980831691505092915050565b6000620008aa83836200087c565b9150826002028217905092915050565b620008c5826200066f565b67ffffffffffffffff811115620008e157620008e0620003b5565b5b620008ed8254620006a9565b620008fa8282856200081f565b600060209050601f8311600181146200093257600084156200091d578287015190505b6200092985826200089c565b86555062000999565b601f1984166200094286620006de565b60005b828110156200096c5784890151825560018201915060208501945060208101905062000945565b868310156200098c578489015162000988601f8916826200087c565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009ce82620009a1565b9050919050565b620009e081620009c1565b82525050565b6000602082019050620009fd6000830184620009d5565b92915050565b6135648062000a136000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806370a082311161010f578063a3946e26116100a2578063d539139311610071578063d539139314610556578063dab70c4914610574578063e985e9c514610590578063f2fde38b146105c0576101e5565b8063a3946e26146104d0578063b88d4fde146104ee578063c1fd41371461050a578063c87b56dd14610526576101e5565b80638da5cb5b116100de5780638da5cb5b1461045a57806395d89b4114610478578063a0bfa1e014610496578063a22cb465146104b4576101e5565b806370a08231146103e4578063714c539814610414578063715018a61461043257806375794a3c1461043c576101e5565b806340c10f19116101875780634f6ccce7116101565780634f6ccce71461034c57806355f804b31461037c5780636352211e146103985780636a951316146103c8576101e5565b806340c10f19146102dc57806342842e0e146102f857806342966c681461031457806346d75c8c14610330576101e5565b8063095ea7b3116101c3578063095ea7b31461026857806313a879771461028457806318160ddd146102a257806323b872dd146102c0576101e5565b806301ffc9a7146101ea57806306fdde031461021a578063081812fc14610238575b600080fd5b61020460048036038101906101ff9190612485565b6105dc565b60405161021191906124cd565b60405180910390f35b61022261066e565b60405161022f9190612578565b60405180910390f35b610252600480360381019061024d91906125d0565b6106fc565b60405161025f919061263e565b60405180910390f35b610282600480360381019061027d9190612685565b61072f565b005b61028c610918565b6040516102999190612578565b60405180910390f35b6102aa6109aa565b6040516102b791906126d4565b60405180910390f35b6102da60048036038101906102d591906126ef565b6109b4565b005b6102f660048036038101906102f19190612685565b610db3565b005b610312600480360381019061030d91906126ef565b610eae565b005b61032e600480360381019061032991906125d0565b610fe6565b005b61034a60048036038101906103459190612877565b611068565b005b610366600480360381019061036191906125d0565b611083565b60405161037391906126d4565b60405180910390f35b61039660048036038101906103919190612877565b61109b565b005b6103b260048036038101906103ad91906125d0565b6110b6565b6040516103bf919061263e565b60405180910390f35b6103e260048036038101906103dd9190612922565b6110f3565b005b6103fe60048036038101906103f99190612975565b611168565b60405161040b91906126d4565b60405180910390f35b61041c6111b1565b6040516104299190612578565b60405180910390f35b61043a611243565b005b610444611257565b60405161045191906126d4565b60405180910390f35b610462611261565b60405161046f919061263e565b60405180910390f35b61048061128b565b60405161048d9190612578565b60405180910390f35b61049e611319565b6040516104ab9190612578565b60405180910390f35b6104ce60048036038101906104c991906129a2565b6113ab565b005b6104d86114a8565b6040516104e59190612578565b60405180910390f35b61050860048036038101906105039190612a42565b61153a565b005b610524600480360381019061051f9190612877565b611678565b005b610540600480360381019061053b91906125d0565b611693565b60405161054d9190612578565b60405180910390f35b61055e6117af565b60405161056b9190612ad9565b60405180910390f35b61058e60048036038101906105899190612877565b6117d3565b005b6105aa60048036038101906105a59190612af4565b6117ee565b6040516105b791906124cd565b60405180910390f35b6105da60048036038101906105d59190612975565b61181d565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061063757506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106675750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6000805461067b90612b63565b80601f01602080910402602001604051908101604052809291908181526020018280546106a790612b63565b80156106f45780601f106106c9576101008083540402835291602001916106f4565b820191906000526020600020905b8154815290600101906020018083116106d757829003601f168201915b505050505081565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806108275750600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085d90612be0565b60405180910390fd5b826004600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6060600a805461092790612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461095390612b63565b80156109a05780601f10610975576101008083540402835291602001916109a0565b820191906000526020600020905b81548152906001019060200180831161098357829003601f168201915b5050505050905090565b6000600c54905090565b6002600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4c90612c4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abb90612cb8565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610b845750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80610bed57506004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2390612be0565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082815260200190815260200160002060009054906101000a900460ff16610e71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6890612d4a565b60405180910390fd5b610e7b83836118a3565b81600d6000600c6000815480929190610e9390612d99565b91905055815260200190815260200160002081905550505050565b610eb98383836109b4565b60008273ffffffffffffffffffffffffffffffffffffffff163b1480610fa2575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b8152600401610f3e93929190612e18565b6020604051808303816000875af1158015610f5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f819190612e77565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b610fe1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd890612ef0565b60405180910390fd5b505050565b610fef816110b6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461105c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105390612f82565b60405180910390fd5b611065816119da565b50565b611070611b9d565b806009908161107f919061314e565b5050565b600d6020528060005260406000206000915090505481565b6110a3611b9d565b80600790816110b2919061314e565b5050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6110fb611b9d565b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600780546111c090612b63565b80601f01602080910402602001604051908101604052809291908181526020018280546111ec90612b63565b80156112395780601f1061120e57610100808354040283529160200191611239565b820191906000526020600020905b81548152906001019060200180831161121c57829003601f168201915b5050505050905090565b61124b611b9d565b6112556000611c24565b565b6000600b54905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6001805461129890612b63565b80601f01602080910402602001604051908101604052809291908181526020018280546112c490612b63565b80156113115780601f106112e657610100808354040283529160200191611311565b820191906000526020600020905b8154815290600101906020018083116112f457829003601f168201915b505050505081565b60606009805461132890612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461135490612b63565b80156113a15780601f10611376576101008083540402835291602001916113a1565b820191906000526020600020905b81548152906001019060200180831161138457829003601f168201915b5050505050905090565b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161149c91906124cd565b60405180910390a35050565b6060600880546114b790612b63565b80601f01602080910402602001604051908101604052809291908181526020018280546114e390612b63565b80156115305780601f1061150557610100808354040283529160200191611530565b820191906000526020600020905b81548152906001019060200180831161151357829003601f168201915b5050505050905090565b6115458585856109b4565b60008473ffffffffffffffffffffffffffffffffffffffff163b1480611632575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b81526004016115ce95949392919061324d565b6020604051808303816000875af11580156115ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116119190612e77565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b611671576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166890612ef0565b60405180910390fd5b5050505050565b611680611b9d565b806008908161168f919061314e565b5050565b60606000600780546116a490612b63565b80601f01602080910402602001604051908101604052809291908181526020018280546116d090612b63565b801561171d5780601f106116f25761010080835404028352916020019161171d565b820191906000526020600020905b81548152906001019060200180831161170057829003601f168201915b5050505050905060006117453073ffffffffffffffffffffffffffffffffffffffff16611cea565b61174e85611d08565b60405160200161175f9291906132fd565b604051602081830303815290604052905060008251036117835780925050506117aa565b81816040516020016117969291906132fd565b604051602081830303815290604052925050505b919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6117db611b9d565b80600a90816117ea919061314e565b5050565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b611825611b9d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118975760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161188e919061263e565b60405180910390fd5b6118a081611c24565b50565b6118ad8282611dd6565b60008273ffffffffffffffffffffffffffffffffffffffff163b1480611997575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a02336000856040518463ffffffff1660e01b815260040161193393929190612e18565b6020604051808303816000875af1158015611952573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119769190612e77565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b6119d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cd90612ef0565b60405180910390fd5b5050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a789061337c565b60405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556004600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b611ba5611fe8565b73ffffffffffffffffffffffffffffffffffffffff16611bc3611261565b73ffffffffffffffffffffffffffffffffffffffff1614611c2257611be6611fe8565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611c19919061263e565b60405180910390fd5b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6060611d01826001611cfb85611ff0565b01612080565b9050919050565b606060006001611d17846122c6565b01905060008167ffffffffffffffff811115611d3657611d3561274c565b5b6040519080825280601f01601f191660200182016040528015611d685781602001600182028036833780820191505090505b509050600082602001820190505b600115611dcb578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611dbf57611dbe61339c565b5b04945060008503611d76575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3c90612cb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ede90613417565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600033905090565b600080600090506000608084901c111561201257608083901c92506010810190505b6000604084901c111561202d57604083901c92506008810190505b6000602084901c111561204857602083901c92506004810190505b6000601084901c111561206357601083901c92506002810190505b6000600884901c1115612077576001810190505b80915050919050565b60606000839050600060028460026120989190613437565b6120a29190613479565b67ffffffffffffffff8111156120bb576120ba61274c565b5b6040519080825280601f01601f1916602001820160405280156120ed5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612125576121246134ad565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612189576121886134ad565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018560026121c99190613437565b6121d39190613479565b90505b6001811115612273577f3031323334353637383961626364656600000000000000000000000000000000600f841660108110612215576122146134ad565b5b1a60f81b82828151811061222c5761222b6134ad565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600483901c92508061226c906134dc565b90506121d6565b50600082146122bb5784846040517fe22e27eb0000000000000000000000000000000000000000000000000000000081526004016122b2929190613505565b60405180910390fd5b809250505092915050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612324577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161231a5761231961339c565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612361576d04ee2d6d415b85acef810000000083816123575761235661339c565b5b0492506020810190505b662386f26fc10000831061239057662386f26fc1000083816123865761238561339c565b5b0492506010810190505b6305f5e10083106123b9576305f5e10083816123af576123ae61339c565b5b0492506008810190505b61271083106123de5761271083816123d4576123d361339c565b5b0492506004810190505b6064831061240157606483816123f7576123f661339c565b5b0492506002810190505b600a8310612410576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6124628161242d565b811461246d57600080fd5b50565b60008135905061247f81612459565b92915050565b60006020828403121561249b5761249a612423565b5b60006124a984828501612470565b91505092915050565b60008115159050919050565b6124c7816124b2565b82525050565b60006020820190506124e260008301846124be565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612522578082015181840152602081019050612507565b60008484015250505050565b6000601f19601f8301169050919050565b600061254a826124e8565b61255481856124f3565b9350612564818560208601612504565b61256d8161252e565b840191505092915050565b60006020820190508181036000830152612592818461253f565b905092915050565b6000819050919050565b6125ad8161259a565b81146125b857600080fd5b50565b6000813590506125ca816125a4565b92915050565b6000602082840312156125e6576125e5612423565b5b60006125f4848285016125bb565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612628826125fd565b9050919050565b6126388161261d565b82525050565b6000602082019050612653600083018461262f565b92915050565b6126628161261d565b811461266d57600080fd5b50565b60008135905061267f81612659565b92915050565b6000806040838503121561269c5761269b612423565b5b60006126aa85828601612670565b92505060206126bb858286016125bb565b9150509250929050565b6126ce8161259a565b82525050565b60006020820190506126e960008301846126c5565b92915050565b60008060006060848603121561270857612707612423565b5b600061271686828701612670565b935050602061272786828701612670565b9250506040612738868287016125bb565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127848261252e565b810181811067ffffffffffffffff821117156127a3576127a261274c565b5b80604052505050565b60006127b6612419565b90506127c2828261277b565b919050565b600067ffffffffffffffff8211156127e2576127e161274c565b5b6127eb8261252e565b9050602081019050919050565b82818337600083830152505050565b600061281a612815846127c7565b6127ac565b90508281526020810184848401111561283657612835612747565b5b6128418482856127f8565b509392505050565b600082601f83011261285e5761285d612742565b5b813561286e848260208601612807565b91505092915050565b60006020828403121561288d5761288c612423565b5b600082013567ffffffffffffffff8111156128ab576128aa612428565b5b6128b784828501612849565b91505092915050565b6000819050919050565b6128d3816128c0565b81146128de57600080fd5b50565b6000813590506128f0816128ca565b92915050565b6128ff816124b2565b811461290a57600080fd5b50565b60008135905061291c816128f6565b92915050565b60008060006060848603121561293b5761293a612423565b5b6000612949868287016128e1565b935050602061295a86828701612670565b925050604061296b8682870161290d565b9150509250925092565b60006020828403121561298b5761298a612423565b5b600061299984828501612670565b91505092915050565b600080604083850312156129b9576129b8612423565b5b60006129c785828601612670565b92505060206129d88582860161290d565b9150509250929050565b600080fd5b600080fd5b60008083601f840112612a0257612a01612742565b5b8235905067ffffffffffffffff811115612a1f57612a1e6129e2565b5b602083019150836001820283011115612a3b57612a3a6129e7565b5b9250929050565b600080600080600060808688031215612a5e57612a5d612423565b5b6000612a6c88828901612670565b9550506020612a7d88828901612670565b9450506040612a8e888289016125bb565b935050606086013567ffffffffffffffff811115612aaf57612aae612428565b5b612abb888289016129ec565b92509250509295509295909350565b612ad3816128c0565b82525050565b6000602082019050612aee6000830184612aca565b92915050565b60008060408385031215612b0b57612b0a612423565b5b6000612b1985828601612670565b9250506020612b2a85828601612670565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b7b57607f821691505b602082108103612b8e57612b8d612b34565b5b50919050565b7f4e4f545f415554484f52495a4544000000000000000000000000000000000000600082015250565b6000612bca600e836124f3565b9150612bd582612b94565b602082019050919050565b60006020820190508181036000830152612bf981612bbd565b9050919050565b7f57524f4e475f46524f4d00000000000000000000000000000000000000000000600082015250565b6000612c36600a836124f3565b9150612c4182612c00565b602082019050919050565b60006020820190508181036000830152612c6581612c29565b9050919050565b7f494e56414c49445f524543495049454e54000000000000000000000000000000600082015250565b6000612ca26011836124f3565b9150612cad82612c6c565b602082019050919050565b60006020820190508181036000830152612cd181612c95565b9050919050565b7f4b6574746c6541737365743a2073656e64657220646f6573206e6f742068617660008201527f6520726f6c650000000000000000000000000000000000000000000000000000602082015250565b6000612d346026836124f3565b9150612d3f82612cd8565b604082019050919050565b60006020820190508181036000830152612d6381612d27565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612da48261259a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612dd657612dd5612d6a565b5b600182019050919050565b600082825260208201905092915050565b50565b6000612e02600083612de1565b9150612e0d82612df2565b600082019050919050565b6000608082019050612e2d600083018661262f565b612e3a602083018561262f565b612e4760408301846126c5565b8181036060830152612e5881612df5565b9050949350505050565b600081519050612e7181612459565b92915050565b600060208284031215612e8d57612e8c612423565b5b6000612e9b84828501612e62565b91505092915050565b7f554e534146455f524543495049454e5400000000000000000000000000000000600082015250565b6000612eda6010836124f3565b9150612ee582612ea4565b602082019050919050565b60006020820190508181036000830152612f0981612ecd565b9050919050565b7f4b6574746c6541737365743a2063616c6c6572206973206e6f7420746865206f60008201527f776e657200000000000000000000000000000000000000000000000000000000602082015250565b6000612f6c6024836124f3565b9150612f7782612f10565b604082019050919050565b60006020820190508181036000830152612f9b81612f5f565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026130047fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612fc7565b61300e8683612fc7565b95508019841693508086168417925050509392505050565b6000819050919050565b600061304b6130466130418461259a565b613026565b61259a565b9050919050565b6000819050919050565b61306583613030565b61307961307182613052565b848454612fd4565b825550505050565b600090565b61308e613081565b61309981848461305c565b505050565b5b818110156130bd576130b2600082613086565b60018101905061309f565b5050565b601f821115613102576130d381612fa2565b6130dc84612fb7565b810160208510156130eb578190505b6130ff6130f785612fb7565b83018261309e565b50505b505050565b600082821c905092915050565b600061312560001984600802613107565b1980831691505092915050565b600061313e8383613114565b9150826002028217905092915050565b613157826124e8565b67ffffffffffffffff8111156131705761316f61274c565b5b61317a8254612b63565b6131858282856130c1565b600060209050601f8311600181146131b857600084156131a6578287015190505b6131b08582613132565b865550613218565b601f1984166131c686612fa2565b60005b828110156131ee578489015182556001820191506020850194506020810190506131c9565b8683101561320b5784890151613207601f891682613114565b8355505b6001600288020188555050505b505050505050565b600061322c8385612de1565b93506132398385846127f8565b6132428361252e565b840190509392505050565b6000608082019050613262600083018861262f565b61326f602083018761262f565b61327c60408301866126c5565b818103606083015261328f818486613220565b90509695505050505050565b600081905092915050565b60006132b1826124e8565b6132bb818561329b565b93506132cb818560208601612504565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000815250565b600061330982856132a6565b9150613314826132d7565b60018201915061332482846132a6565b91508190509392505050565b7f4e4f545f4d494e54454400000000000000000000000000000000000000000000600082015250565b6000613366600a836124f3565b915061337182613330565b602082019050919050565b6000602082019050818103600083015261339581613359565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f414c52454144595f4d494e544544000000000000000000000000000000000000600082015250565b6000613401600e836124f3565b915061340c826133cb565b602082019050919050565b60006020820190508181036000830152613430816133f4565b9050919050565b60006134428261259a565b915061344d8361259a565b925082820261345b8161259a565b9150828204841483151761347257613471612d6a565b5b5092915050565b60006134848261259a565b915061348f8361259a565b92508282019050808211156134a7576134a6612d6a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006134e78261259a565b9150600082036134fa576134f9612d6a565b5b600182039050919050565b600060408201905061351a60008301856126c5565b61352760208301846126c5565b939250505056fea2646970667358221220c8290a683a261ca74af283a10d7281bdc078143a7a7dfd60d90fb58693e16f7264736f6c6343000818003300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000c4b6574746c65204173736574000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064b4554544c450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a68747470733a2f2f696e76656e746f72792e6b6574746c652e66692f6d657461646174612f626c61737400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e506174656b205068696c69707065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b4e617574696c7573204368726f6e6f677261706820537465656c20426c7565204469616c2034302e356d6d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b353938302f31412d303031000000000000000000000000000000000000000000