[ { "inputs": [ { "internalType": "address", "name": "_receiver", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": false, "internalType": "uint96", "name": "feeNumerator", "type": "uint96" } ], "name": "DefaultRoyaltySet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" }, { "indexed": true, "internalType": "string", "name": "mintType", "type": "string" } ], "name": "MintSale", "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": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": false, "internalType": "uint96", "name": "feeNumerator", "type": "uint96" } ], "name": "RoyaltySet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "adminMint", "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": [], "name": "balance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseExtension", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseTokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "fills", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isTokenValidationActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxCap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxMintCountForPerAddress", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "name": "ps", "outputs": [ { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "maxCap", "type": "uint256" }, { "internalType": "uint256", "name": "mintAmount", "type": "uint256" }, { "internalType": "uint256", "name": "totalAllowedAmount", "type": "uint256" }, { "internalType": "bool", "name": "isActivated", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "_part", "type": "uint8" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "components": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "collection", "type": "address" }, { "internalType": "string", "name": "uuid", "type": "string" } ], "internalType": "struct BoneThugz.MintRequest", "name": "mintRequest", "type": "tuple" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "publicMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "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": "string", "name": "_baseExtension", "type": "string" } ], "name": "setBaseExtension", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_baseTokenURI", "type": "string" } ], "name": "setBaseTokenURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "uint96", "name": "_feeNumerator", "type": "uint96" } ], "name": "setDefaultRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_limit", "type": "uint256" } ], "name": "setMaxMintCountForPerAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "part", "type": "uint8" }, { "internalType": "uint256", "name": "_maxCap", "type": "uint256" }, { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setPublicSaleInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "uint96", "name": "_feeNumerator", "type": "uint96" } ], "name": "setRoyaltyInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "setTokenURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "isActive", "type": "bool" } ], "name": "setTokenValidation", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_validator", "type": "address" } ], "name": "setValidator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "part", "type": "uint8" }, { "internalType": "uint256", "name": "_maxCap", "type": "uint256" }, { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "setWhitelistInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "_part", "type": "uint8" }, { "internalType": "address[]", "name": "_users", "type": "address[]" }, { "internalType": "uint256[]", "name": "_allowedAmounts", "type": "uint256[]" } ], "name": "setWhitelistUsers", "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": "uint8", "name": "_part", "type": "uint8" }, { "internalType": "bool", "name": "_isPublicSaleActivated", "type": "bool" } ], "name": "togglePublicSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "_part", "type": "uint8" }, { "internalType": "bool", "name": "_isWlSaleActivated", "type": "bool" } ], "name": "toggleWlSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "userMintCounts", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "", "type": "uint8" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "users", "outputs": [ { "internalType": "uint256", "name": "mintAmount", "type": "uint256" }, { "internalType": "uint256", "name": "allowedAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "collection", "type": "address" }, { "internalType": "string", "name": "uuid", "type": "string" } ], "internalType": "struct BoneThugz.MintRequest", "name": "mintRequest", "type": "tuple" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "validateMint", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "validator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address payable", "name": "_receiver", "type": "address" } ], "name": "withdrawBalance", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "_part", "type": "uint8" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "wlMint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "name": "wls", "outputs": [ { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "maxCap", "type": "uint256" }, { "internalType": "uint256", "name": "mintAmount", "type": "uint256" }, { "internalType": "uint256", "name": "totalAllowedAmount", "type": "uint256" }, { "internalType": "bool", "name": "isActivated", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6101406040523480156200001257600080fd5b5060405162004d1338038062004d138339810160408190526200003591620002fc565b6040518060400160405280600981526020016813185d5b98da1c185960ba1b815250604051806040016040528060018152602001603160f81b8152506040518060400160405280600a8152602001692127a722902a242aa3ad60b11b815250604051806040016040528060098152602001682127a722aa242aa3ad60b91b8152508160009081620000c79190620003d3565b506001620000d68282620003d3565b5050825160209384012082519284019290922060e08390526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818901819052818301979097526060810194909452608080850193909352308483018190528151808603909301835260c09485019091528151919096012090529290925261012052506001600c556200017833620001a5565b6105dc6013556200018b816032620001f7565b506017805460ff60a01b1916600160a01b1790556200049f565b600d80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6127106001600160601b03821611156200026b5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620002c35760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640162000262565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600a55565b6000602082840312156200030f57600080fd5b81516001600160a01b03811681146200032757600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200035957607f821691505b6020821081036200037a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003ce57600081815260208120601f850160051c81016020861015620003a95750805b601f850160051c820191505b81811015620003ca57828155600101620003b5565b5050505b505050565b81516001600160401b03811115620003ef57620003ef6200032e565b620004078162000400845462000344565b8462000380565b602080601f8311600181146200043f5760008415620004265750858301515b600019600386901b1c1916600185901b178555620003ca565b600085815260208120601f198616915b8281101562000470578886015182559484019460019091019084016200044f565b50858210156200048f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e0516101005161012051614824620004ef60003960006134e801526000613537015260006135120152600061346b01526000613495015260006134bf01526148246000f3fe6080604052600436106102cd5760003560e01c80635f723a4f11610175578063b88d4fde116100dc578063cd5c47a311610095578063da3ef23f1161006f578063da3ef23f14610955578063e2617f0414610975578063e985e9c514610995578063f2fde38b146109de57600080fd5b8063cd5c47a314610900578063d252560514610920578063d547cfb71461094057600080fd5b8063b88d4fde1461082b578063b8c016ba1461084b578063c1f2612314610898578063c6682862146108b8578063c84b7073146108cd578063c87b56dd146108e057600080fd5b8063894ac4401161012e578063894ac440146107845780638d72b96a146107a55780638da5cb5b146107c557806395d89b41146107e3578063a22cb465146107f8578063b69ef8a81461081857600080fd5b80635f723a4f146106445780636352211e146106bb578063674a5423146106db57806370a082311461072f578063715018a61461074f578063756af45f1461076457600080fd5b806320158c441161023457806330176e13116101ed5780633badef98116101c75780633badef98146105ce57806340953564146105ee57806342842e0e146106045780634f6ccce71461062457600080fd5b806330176e131461057b57806337b6db321461059b5780633a5381b5146105ae57600080fd5b806320158c441461048957806321b4893b146104b957806323548b8b146104e657806323b872dd146104fc5780632a55205a1461051c5780632f745c591461055b57600080fd5b80631327d3d8116102865780631327d3d8146103ca5780631495fa99146103ea578063162094c41461040a57806318160ddd1461042a57806319be06d3146104495780631cafee381461046957600080fd5b806301ffc9a7146102d957806304634d8d1461030e578063055b33eb1461033057806306fdde0314610350578063081812fc14610372578063095ea7b3146103aa57600080fd5b366102d457005b600080fd5b3480156102e557600080fd5b506102f96102f4366004613b7a565b6109fe565b60405190151581526020015b60405180910390f35b34801561031a57600080fd5b5061032e610329366004613bc8565b610a0f565b005b34801561033c57600080fd5b5061032e61034b366004613c0d565b610a97565b34801561035c57600080fd5b50610365610adf565b6040516103059190613c78565b34801561037e57600080fd5b5061039261038d366004613c8b565b610b71565b6040516001600160a01b039091168152602001610305565b3480156103b657600080fd5b5061032e6103c5366004613ca4565b610bf9565b3480156103d657600080fd5b5061032e6103e5366004613cd0565b610d0e565b3480156103f657600080fd5b5061032e610405366004613ced565b610d5a565b34801561041657600080fd5b5061032e610425366004613dce565b610e98565b34801561043657600080fd5b506008545b604051908152602001610305565b34801561045557600080fd5b5061032e610464366004613e26565b610f46565b34801561047557600080fd5b5061032e610484366004613e26565b610f98565b34801561049557600080fd5b506102f96104a4366004613c8b565b60126020526000908152604090205460ff1681565b3480156104c557600080fd5b5061043b6104d4366004613cd0565b60116020526000908152604090205481565b3480156104f257600080fd5b5061043b60135481565b34801561050857600080fd5b5061032e610517366004613e50565b610fea565b34801561052857600080fd5b5061053c610537366004613e91565b61101b565b604080516001600160a01b039093168352602083019190915201610305565b34801561056757600080fd5b5061043b610576366004613ca4565b6110c9565b34801561058757600080fd5b5061032e610596366004613eb3565b61115f565b61032e6105a9366004613f83565b611199565b3480156105ba57600080fd5b50601754610392906001600160a01b031681565b3480156105da57600080fd5b5061032e6105e9366004614001565b611527565b3480156105fa57600080fd5b5061043b60145481565b34801561061057600080fd5b5061032e61061f366004613e50565b611662565b34801561063057600080fd5b5061043b61063f366004613c8b565b61167d565b34801561065057600080fd5b5061069161065f366004614034565b600e60205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff1685565b6040805195865260208601949094529284019190915260608301521515608082015260a001610305565b3480156106c757600080fd5b506103926106d6366004613c8b565b611710565b3480156106e757600080fd5b5061071a6106f636600461404f565b60106020908152600092835260408084209091529082529020805460019091015482565b60408051928352602083019190915201610305565b34801561073b57600080fd5b5061043b61074a366004613cd0565b611787565b34801561075b57600080fd5b5061032e61180e565b34801561077057600080fd5b5061032e61077f366004613cd0565b611844565b34801561079057600080fd5b506017546102f990600160a01b900460ff1681565b3480156107b157600080fd5b5061032e6107c0366004614001565b611905565b3480156107d157600080fd5b50600d546001600160a01b0316610392565b3480156107ef57600080fd5b50610365611a40565b34801561080457600080fd5b5061032e610813366004614086565b611a4f565b34801561082457600080fd5b504761043b565b34801561083757600080fd5b5061032e6108463660046140a4565b611a5a565b34801561085757600080fd5b50610691610866366004614034565b600f60205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff1685565b3480156108a457600080fd5b5061032e6108b3366004613c8b565b611a92565b3480156108c457600080fd5b50610365611b59565b61032e6108db366004614104565b611be7565b3480156108ec57600080fd5b506103656108fb366004613c8b565b61212d565b34801561090c57600080fd5b5061039261091b366004614120565b612256565b34801561092c57600080fd5b5061032e61093b366004613c8b565b612277565b34801561094c57600080fd5b506103656122a6565b34801561096157600080fd5b5061032e610970366004613eb3565b6122b3565b34801561098157600080fd5b5061032e6109903660046141bf565b6122e9565b3480156109a157600080fd5b506102f96109b0366004614240565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b3480156109ea57600080fd5b5061032e6109f9366004613cd0565b6125c7565b6000610a0982612662565b92915050565b600d546001600160a01b03163314610a425760405162461bcd60e51b8152600401610a399061425e565b60405180910390fd5b610a4c8282612687565b6040516001600160601b03821681526001600160a01b038316907f8a8bae378cb731c5c40b632330c6836c2f916f48edb967699c86736f9a6a76ef9060200160405180910390a25050565b600d546001600160a01b03163314610ac15760405162461bcd60e51b8152600401610a399061425e565b60178054911515600160a01b0260ff60a01b19909216919091179055565b606060008054610aee90614293565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1a90614293565b8015610b675780601f10610b3c57610100808354040283529160200191610b67565b820191906000526020600020905b815481529060010190602001808311610b4a57829003601f168201915b5050505050905090565b6000610b7c82612741565b610bdd5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610a39565b506000908152600460205260409020546001600160a01b031690565b6000610c0482611710565b9050806001600160a01b0316836001600160a01b031603610c715760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610a39565b336001600160a01b0382161480610c8d5750610c8d81336109b0565b610cff5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610a39565b610d09838361275e565b505050565b600d546001600160a01b03163314610d385760405162461bcd60e51b8152600401610a399061425e565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b600d546001600160a01b03163314610d845760405162461bcd60e51b8152600401610a399061425e565b610d8d83612741565b610dd05760405162461bcd60e51b8152602060048201526014602482015273151bdad95b88191bd95cc81b9bdd08195e1a5cdd60621b6044820152606401610a39565b612710816001600160601b03161115610e3e5760405162461bcd60e51b815260206004820152602a60248201527f466565206e756d657261746f72206d757374206265206265747765656e2030206044820152690616e642031302c3030360b41b6064820152608401610a39565b610e498383836127cc565b6040516001600160601b03821681526001600160a01b0383169084907f93c3d3c02f3e5b8ff28a98e2ff5dc3d9395f4f02af3a830c3789c8af25420253906020015b60405180910390a3505050565b600d546001600160a01b03163314610ec25760405162461bcd60e51b8152600401610a399061425e565b610ecb82612741565b610f2e5760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608401610a39565b6000828152601860205260409020610d09828261431b565b600d546001600160a01b03163314610f705760405162461bcd60e51b8152600401610a399061425e565b60ff919091166000908152600e60205260409020600401805460ff1916911515919091179055565b600d546001600160a01b03163314610fc25760405162461bcd60e51b8152600401610a399061425e565b60ff919091166000908152600f60205260409020600401805460ff1916911515919091179055565b610ff43382612897565b6110105760405162461bcd60e51b8152600401610a39906143db565b610d0983838361297d565b6000828152600b602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291611090575060408051808201909152600a546001600160a01b0381168252600160a01b90046001600160601b031660208201525b6020810151600090612710906110af906001600160601b031687614442565b6110b99190614477565b91519350909150505b9250929050565b60006110d483611787565b82106111365760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610a39565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600d546001600160a01b031633146111895760405162461bcd60e51b8152600401610a399061425e565b6016611195828261431b565b5050565b3233146111d75760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606401610a39565b60ff8085166000908152600f6020526040902060040154166112475760405162461bcd60e51b8152602060048201526024808201527f5075626c69632073616c6520686173206e6f74206265656e2073746172746564604482015263081e595d60e21b6064820152608401610a39565b60058311156112be5760405162461bcd60e51b815260206004820152603860248201527f4578636565646564206d6178696d756d20627579206c696d6974206f6620313060448201527f3020746f6b656e7320706572207472616e73616374696f6e00000000000000006064820152608401610a39565b601354836112cb60085490565b6112d5919061448b565b11156113235760405162461bcd60e51b815260206004820152601c60248201527f4d6178696d756d20746f6b656e20737570706c792072656163686564000000006044820152606401610a39565b60ff84166000908152600f60205260409020600181015460029091015461134b90859061448b565b11156113b85760405162461bcd60e51b815260206004820152603660248201527f4d6178696d756d2063617020686173206265656e207265616368656420666f72604482015275081d1a1a5cc81c1d589b1a58c81cd85b19481c185c9d60521b6064820152608401610a39565b60ff84166000908152600f60205260409020546113d59084614442565b3410156114245760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e74207061796d656e7420616d6f756e7400000000006044820152606401610a39565b601754600160a01b900460ff161561146557336000908152601160205260408120805485929061145590849061448b565b9091555061146590508282612b24565b60ff84166000908152600f60205260408120600201805485929061148a90849061448b565b90915550600090505b838110156114cd576114a9601980546001019055565b6114bb336114b660195490565b612d90565b806114c58161449e565b915050611493565b50604051657075626c696360d01b8152600601604080519182900382208583523460208401529133917fd8f402738914bf415dc49ac6f695aa114ca5715656ead62074d49008f2afe783910160405180910390a350505050565b600d546001600160a01b031633146115515760405162461bcd60e51b8152600401610a399061425e565b6000805b60028160ff1610156115a3578060ff168560ff16146115915760ff81166000908152600f602052604090206001015461158e908361448b565b91505b8061159b816144b7565b915050611555565b5060005b60028160ff1610156115e75760ff81166000908152600e60205260409020600101546115d3908361448b565b9150806115df816144b7565b9150506115a7565b506013546115f5848361448b565b11156116435760405162461bcd60e51b815260206004820152601f60248201527f546f74616c206d6178696d756d206361706163697479206578636565646564006044820152606401610a39565b5060ff9092166000908152600f60205260409020600181019190915555565b610d0983838360405180602001604052806000815250611a5a565b600061168860085490565b82106116eb5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610a39565b600882815481106116fe576116fe6144d6565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b031680610a095760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610a39565b60006001600160a01b0382166117f25760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610a39565b506001600160a01b031660009081526003602052604090205490565b600d546001600160a01b031633146118385760405162461bcd60e51b8152600401610a399061425e565b6118426000612ecf565b565b600d546001600160a01b0316331461186e5760405162461bcd60e51b8152600401610a399061425e565b806001600160a01b03166108fc306001600160a01b031663b69ef8a86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118dd91906144ec565b6040518115909202916000818181858888f19350505050158015611195573d6000803e3d6000fd5b600d546001600160a01b0316331461192f5760405162461bcd60e51b8152600401610a399061425e565b6000805b60028160ff1610156119735760ff81166000908152600f602052604090206001015461195f908361448b565b91508061196b816144b7565b915050611933565b5060005b60028160ff1610156119c5578060ff168560ff16146119b35760ff81166000908152600e60205260409020600101546119b0908361448b565b91505b806119bd816144b7565b915050611977565b506013546119d3848361448b565b1115611a215760405162461bcd60e51b815260206004820152601f60248201527f546f74616c206d6178696d756d206361706163697479206578636565646564006044820152606401610a39565b5060ff9092166000908152600e60205260409020600181019190915555565b606060018054610aee90614293565b611195338383612f21565b611a643383612897565b611a805760405162461bcd60e51b8152600401610a39906143db565b611a8c84848484612fe7565b50505050565b600d546001600160a01b03163314611abc5760405162461bcd60e51b8152600401610a399061425e565b60135481611ac960085490565b611ad3919061448b565b1115611b215760405162461bcd60e51b815260206004820152601c60248201527f4d6178696d756d20746f6b656e20737570706c792072656163686564000000006044820152606401610a39565b60005b8181101561119557611b3a601980546001019055565b611b47336114b660195490565b80611b518161449e565b915050611b24565b60158054611b6690614293565b80601f0160208091040260200160405190810160405280929190818152602001828054611b9290614293565b8015611bdf5780601f10611bb457610100808354040283529160200191611bdf565b820191906000526020600020905b815481529060010190602001808311611bc257829003601f168201915b505050505081565b323314611c255760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606401610a39565b6002600c5403611c775760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a39565b6002600c5560ff8083166000908152600e602052604090206004015416611cf05760405162461bcd60e51b815260206004820152602760248201527f57686974656c6973742073616c6520686173206e6f74206265656e20737461726044820152661d1959081e595d60ca1b6064820152608401610a39565b6014811115611d675760405162461bcd60e51b815260206004820152603760248201527f4578636565646564206d6178696d756d20627579206c696d6974206f6620323060448201527f20746f6b656e7320706572207472616e73616374696f6e0000000000000000006064820152608401610a39565b60135481611d7460085490565b611d7e919061448b565b1115611dda5760405162461bcd60e51b815260206004820152602560248201527f4d6178696d756d20746f6b656e20737570706c7920686173206265656e2072656044820152641858da195960da1b6064820152608401610a39565b60ff82166000908152600e602052604090206001810154600290910154611e0290839061448b565b1115611e685760405162461bcd60e51b815260206004820152602f60248201527f4d6178696d756d2063617020686173206265656e207265616368656420666f7260448201526e081d1a1a5cc81dda1a5d195b1a5cdd608a1b6064820152608401610a39565b604080518082019091526003815262776c3160e81b602082015260ff8316600003611efa575060408051808201825260038152620776c360ec1b60208083019190915260ff85166000908152601082528381203382529091529190912060018101549054611ed790849061448b565b1115611ef55760405162461bcd60e51b8152600401610a3990614505565b611fdb565b6000601081611f0a600187614552565b60ff90811682526020808301939093526040918201600090812033808352908552838220600190810154938a1683526010865284832091835294529190912090910154611f57919061448b565b90506000601081611f69600188614552565b60ff9081168252602080830193909352604091820160009081203380835290855283822054928a16825260108552838220908252909352912054611fad919061448b565b905081611fba858361448b565b1115611fd85760405162461bcd60e51b8152600401610a3990614505565b50505b80604051611fe9919061456b565b604080519182900382208483523460208401529133917fd8f402738914bf415dc49ac6f695aa114ca5715656ead62074d49008f2afe783910160405180910390a360ff83166000908152600e60205260409020546120479083614442565b34101561208d5760405162461bcd60e51b8152602060048201526014602482015273125b9cdd59999a58da595b9d081c185e5b595b9d60621b6044820152606401610a39565b60ff83166000908152601060209081526040808320338452909152812080548492906120ba90849061448b565b909155505060ff83166000908152600e6020526040812060020180548492906120e490849061448b565b90915550600090505b8281101561212257612103601980546001019055565b612110336114b660195490565b8061211a8161449e565b9150506120ed565b50506001600c555050565b606061213882612741565b6121545760405162461bcd60e51b8152600401610a3990614587565b6000828152601860205260408120805461216d90614293565b80601f016020809104026020016040519081016040528092919081815260200182805461219990614293565b80156121e65780601f106121bb576101008083540402835291602001916121e6565b820191906000526020600020905b8154815290600101906020018083116121c957829003601f168201915b505050505090506000815111156121fd5792915050565b600061220761301a565b905060008151116122205761221b84613029565b61224e565b8061222a856130ac565b601560405160200161223e939291906145d6565b6040516020818303038152906040525b949350505050565b600080612262846131ad565b905061224e83612271836132bb565b90613309565b600d546001600160a01b031633146122a15760405162461bcd60e51b8152600401610a399061425e565b601455565b60168054611b6690614293565b600d546001600160a01b031633146122dd5760405162461bcd60e51b8152600401610a399061425e565b6015611195828261431b565b600d546001600160a01b031633146123135760405162461bcd60e51b8152600401610a399061425e565b60028560ff16106123765760405162461bcd60e51b815260206004820152602760248201527f70617274206d757374206265206c657373207468616e206d6178696d756d50616044820152661c9d10dbdd5b9d60ca1b6064820152608401610a39565b8260005b818110156125be5760ff87166000908152600e60205260409020600101548484838181106123aa576123aa6144d6565b9050602002013511156123f75760405162461bcd60e51b8152602060048201526015602482015274195e18d959591959081b585e10d85c081b1a5b5a5d605a1b6044820152606401610a39565b60ff871660009081526010602052604081208188888581811061241c5761241c6144d6565b90506020020160208101906124319190613cd0565b6001600160a01b03166001600160a01b031681526020019081526020016000206001015411156124ea5760ff8716600090815260106020526040812090878784818110612480576124806144d6565b90506020020160208101906124959190613cd0565b6001600160a01b03166001600160a01b0316815260200190815260200160002060010154600e60008960ff1660ff16815260200190815260200160002060030160008282546124e49190614676565b90915550505b8383828181106124fc576124fc6144d6565b90506020020135601060008960ff1660ff1681526020019081526020016000206000888885818110612530576125306144d6565b90506020020160208101906125459190613cd0565b6001600160a01b03168152602081019190915260400160002060010155838382818110612574576125746144d6565b90506020020135600e60008960ff1660ff16815260200190815260200160002060030160008282546125a6919061448b565b909155508190506125b68161449e565b91505061237a565b50505050505050565b600d546001600160a01b031633146125f15760405162461bcd60e51b8152600401610a399061425e565b6001600160a01b0381166126565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a39565b61265f81612ecf565b50565b60006001600160e01b0319821663152a902d60e11b1480610a095750610a098261332d565b6127106001600160601b03821611156126b25760405162461bcd60e51b8152600401610a3990614689565b6001600160a01b0382166127085760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401610a39565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600a55565b6000908152600260205260409020546001600160a01b0316151590565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061279382611710565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6127106001600160601b03821611156127f75760405162461bcd60e51b8152600401610a3990614689565b6001600160a01b03821661284d5760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d657465727300000000006044820152606401610a39565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600b90529190942093519051909116600160a01b029116179055565b60006128a282612741565b6129035760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610a39565b600061290e83611710565b9050806001600160a01b0316846001600160a01b031614806129495750836001600160a01b031661293e84610b71565b6001600160a01b0316145b8061224e57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff1661224e565b826001600160a01b031661299082611710565b6001600160a01b0316146129f45760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610a39565b6001600160a01b038216612a565760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610a39565b612a61838383613352565b612a6c60008261275e565b6001600160a01b0383166000908152600360205260408120805460019290612a95908490614676565b90915550506001600160a01b0382166000908152600360205260408120805460019290612ac390849061448b565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b81514390612b3390602861448b565b11612b805760405162461bcd60e51b815260206004820181905260248201527f746f6b656e207369676e617475726520686173206265656e20657870697265646044820152606401610a39565b6000612b8c8383612256565b6017549091506001600160a01b03808316911614612be55760405162461bcd60e51b81526020600482015260166024820152751cda59db985d1d5c99481a5cc81b9bdd081d985b1a5960521b6044820152606401610a39565b60408301516001600160a01b03163014612c415760405162461bcd60e51b815260206004820152601c60248201527f696e636f727265637420636f6c6c656374696f6e2061646472657373000000006044820152606401610a39565b60208301516001600160a01b03163314612c945760405162461bcd60e51b81526020600482015260146024820152731d5b985d5d1a1bdc9a5e9959081c995c5d595cdd60621b6044820152606401610a39565b601454336000908152601160205260409020541115612d055760405162461bcd60e51b815260206004820152602760248201527f6d6178206d696e7420636f756e74206973207265616368656420666f7220746860448201526634b9903ab9b2b960c91b6064820152608401610a39565b6000612d10846131ad565b60008181526012602052604090205490915060ff1615612d725760405162461bcd60e51b815260206004820152601e60248201527f7369676e6174757265206973206e6f742076616c696420616e796d6f726500006044820152606401610a39565b6000908152601260205260409020805460ff19166001179055505050565b6001600160a01b038216612de65760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610a39565b612def81612741565b15612e3c5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610a39565b612e4860008383613352565b6001600160a01b0382166000908152600360205260408120805460019290612e7190849061448b565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600d80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031603612f825760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610a39565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101610e8b565b612ff284848461297d565b612ffe8484848461335d565b611a8c5760405162461bcd60e51b8152600401610a39906146d3565b606060168054610aee90614293565b606061303482612741565b6130505760405162461bcd60e51b8152600401610a3990614587565b600061305a61301a565b9050600081511161307a57604051806020016040528060008152506130a5565b80613084846130ac565b604051602001613095929190614725565b6040516020818303038152906040525b9392505050565b6060816000036130d35750506040805180820190915260018152600360fc1b602082015290565b8160005b81156130fd57806130e78161449e565b91506130f69050600a83614477565b91506130d7565b60008167ffffffffffffffff81111561311857613118613d2b565b6040519080825280601f01601f191660200182016040528015613142576020820181803683370190505b5090505b841561224e57613157600183614676565b9150613164600a86614754565b61316f90603061448b565b60f81b818381518110613184576131846144d6565b60200101906001600160f81b031916908160001a9053506131a6600a86614477565b9450613146565b6000604051602001613240906b09ad2dce8a4cae2eacae6e8560a31b8152731d5a5b9d0c8d4d88189b1bd8dad39d5b58995c8b60621b600c8201526e1859191c995cdcc81cd95b99195c8b608a1b6020820152721859191c995cdcc818dbdb1b1958dd1a5bdb8b606a1b602f8201526a1cdd1c9a5b99c81d5d5a5960aa1b6042820152602960f81b604d820152604e0190565b60408051601f198184030181528282528051602091820120855186830151878501516060808a015180519087012095880194909452948601919091526001600160a01b0390811691850191909152909116608083015260a082015260c001604051602081830303815290604052805190602001209050919050565b6000610a096132c861345e565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006133188585613585565b91509150613325816135f0565b509392505050565b60006001600160e01b0319821663780e9d6360e01b1480610a095750610a09826137a6565b610d098383836137f6565b60006001600160a01b0384163b1561345357604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906133a1903390899088908890600401614768565b6020604051808303816000875af19250505080156133dc575060408051601f3d908101601f191682019092526133d9918101906147a5565b60015b613439573d80801561340a576040519150601f19603f3d011682016040523d82523d6000602084013e61340f565b606091505b5080516000036134315760405162461bcd60e51b8152600401610a39906146d3565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061224e565b506001949350505050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156134b757507f000000000000000000000000000000000000000000000000000000000000000046145b156134e157507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008082516041036135bb5760208301516040840151606085015160001a6135af878285856138ae565b945094505050506110c2565b82516040036135e457602083015160408401516135d986838361399b565b9350935050506110c2565b506000905060026110c2565b6000816004811115613604576136046147c2565b0361360c5750565b6001816004811115613620576136206147c2565b0361366d5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610a39565b6002816004811115613681576136816147c2565b036136ce5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a39565b60038160048111156136e2576136e26147c2565b0361373a5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610a39565b600481600481111561374e5761374e6147c2565b0361265f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610a39565b60006001600160e01b031982166380ac58cd60e01b14806137d757506001600160e01b03198216635b5e139f60e01b145b80610a0957506301ffc9a760e01b6001600160e01b0319831614610a09565b6001600160a01b0383166138515761384c81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b613874565b816001600160a01b0316836001600160a01b0316146138745761387483826139d4565b6001600160a01b03821661388b57610d0981613a71565b826001600160a01b0316826001600160a01b031614610d0957610d098282613b20565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156138e55750600090506003613992565b8460ff16601b141580156138fd57508460ff16601c14155b1561390e5750600090506004613992565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613962573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661398b57600060019250925050613992565b9150600090505b94509492505050565b6000806001600160ff1b038316816139b860ff86901c601b61448b565b90506139c6878288856138ae565b935093505050935093915050565b600060016139e184611787565b6139eb9190614676565b600083815260076020526040902054909150808214613a3e576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090613a8390600190614676565b60008381526009602052604081205460088054939450909284908110613aab57613aab6144d6565b906000526020600020015490508060088381548110613acc57613acc6144d6565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480613b0457613b046147d8565b6001900381819060005260206000200160009055905550505050565b6000613b2b83611787565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160e01b03198116811461265f57600080fd5b600060208284031215613b8c57600080fd5b81356130a581613b64565b6001600160a01b038116811461265f57600080fd5b80356001600160601b0381168114613bc357600080fd5b919050565b60008060408385031215613bdb57600080fd5b8235613be681613b97565b9150613bf460208401613bac565b90509250929050565b80358015158114613bc357600080fd5b600060208284031215613c1f57600080fd5b6130a582613bfd565b60005b83811015613c43578181015183820152602001613c2b565b50506000910152565b60008151808452613c64816020860160208601613c28565b601f01601f19169290920160200192915050565b6020815260006130a56020830184613c4c565b600060208284031215613c9d57600080fd5b5035919050565b60008060408385031215613cb757600080fd5b8235613cc281613b97565b946020939093013593505050565b600060208284031215613ce257600080fd5b81356130a581613b97565b600080600060608486031215613d0257600080fd5b833592506020840135613d1481613b97565b9150613d2260408501613bac565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613d5257600080fd5b813567ffffffffffffffff80821115613d6d57613d6d613d2b565b604051601f8301601f19908116603f01168101908282118183101715613d9557613d95613d2b565b81604052838152866020858801011115613dae57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215613de157600080fd5b82359150602083013567ffffffffffffffff811115613dff57600080fd5b613e0b85828601613d41565b9150509250929050565b803560ff81168114613bc357600080fd5b60008060408385031215613e3957600080fd5b613e4283613e15565b9150613bf460208401613bfd565b600080600060608486031215613e6557600080fd5b8335613e7081613b97565b92506020840135613e8081613b97565b929592945050506040919091013590565b60008060408385031215613ea457600080fd5b50508035926020909101359150565b600060208284031215613ec557600080fd5b813567ffffffffffffffff811115613edc57600080fd5b61224e84828501613d41565b600060808284031215613efa57600080fd5b6040516080810167ffffffffffffffff8282108183111715613f1e57613f1e613d2b565b816040528293508435835260208501359150613f3982613b97565b81602084015260408501359150613f4f82613b97565b8160408401526060850135915080821115613f6957600080fd5b50613f7685828601613d41565b6060830152505092915050565b60008060008060808587031215613f9957600080fd5b613fa285613e15565b935060208501359250604085013567ffffffffffffffff80821115613fc657600080fd5b613fd288838901613ee8565b93506060870135915080821115613fe857600080fd5b50613ff587828801613d41565b91505092959194509250565b60008060006060848603121561401657600080fd5b61401f84613e15565b95602085013595506040909401359392505050565b60006020828403121561404657600080fd5b6130a582613e15565b6000806040838503121561406257600080fd5b61406b83613e15565b9150602083013561407b81613b97565b809150509250929050565b6000806040838503121561409957600080fd5b8235613e4281613b97565b600080600080608085870312156140ba57600080fd5b84356140c581613b97565b935060208501356140d581613b97565b925060408501359150606085013567ffffffffffffffff8111156140f857600080fd5b613ff587828801613d41565b6000806040838503121561411757600080fd5b613cc283613e15565b6000806040838503121561413357600080fd5b823567ffffffffffffffff8082111561414b57600080fd5b61415786838701613ee8565b9350602085013591508082111561416d57600080fd5b50613e0b85828601613d41565b60008083601f84011261418c57600080fd5b50813567ffffffffffffffff8111156141a457600080fd5b6020830191508360208260051b85010111156110c257600080fd5b6000806000806000606086880312156141d757600080fd5b6141e086613e15565b9450602086013567ffffffffffffffff808211156141fd57600080fd5b61420989838a0161417a565b9096509450604088013591508082111561422257600080fd5b5061422f8882890161417a565b969995985093965092949392505050565b6000806040838503121561425357600080fd5b823561406b81613b97565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806142a757607f821691505b6020821081036142c757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610d0957600081815260208120601f850160051c810160208610156142f45750805b601f850160051c820191505b8181101561431357828155600101614300565b505050505050565b815167ffffffffffffffff81111561433557614335613d2b565b614349816143438454614293565b846142cd565b602080601f83116001811461437e57600084156143665750858301515b600019600386901b1c1916600185901b178555614313565b600085815260208120601f198616915b828110156143ad5788860151825594840194600190910190840161438e565b50858210156143cb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561445c5761445c61442c565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261448657614486614461565b500490565b80820180821115610a0957610a0961442c565b6000600182016144b0576144b061442c565b5060010190565b600060ff821660ff81036144cd576144cd61442c565b60010192915050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156144fe57600080fd5b5051919050565b6020808252602d908201527f416c6c6f77656420616d6f756e7420686173206265656e20726561636865642060408201526c3337b9103a3434b9903ab9b2b960991b606082015260800190565b60ff8281168282160390811115610a0957610a0961442c565b6000825161457d818460208701613c28565b9190910192915050565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b6000845160206145e98285838a01613c28565b8551918401916145fc8184848a01613c28565b855492019160009061460d81614293565b60018281168015614625576001811461463a57614666565b60ff1984168752821515830287019450614666565b896000528560002060005b8481101561465e57815489820152908301908701614645565b505082870194505b50929a9950505050505050505050565b81810381811115610a0957610a0961442c565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60008351614737818460208801613c28565b83519083019061474b818360208801613c28565b01949350505050565b60008261476357614763614461565b500690565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061479b90830184613c4c565b9695505050505050565b6000602082840312156147b757600080fd5b81516130a581613b64565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603160045260246000fdfea2646970667358221220e32a4cf5718a7249b197cd57ff44d67e477d3b55411dca11301f3e7509301f4764736f6c634300081000330000000000000000000000007abdef5eb43d74227f4b5ca253e1b202332ad044