Overview ERC721
Total Supply:
0

Profile Summary
Blockchain:
C-Chain (43114)

Contract Source Code Verified (Exact Match)
Contract Name:
Janky404Factory

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Created At:
Thu, 09 May 2024 12:06:19 GMT
ReentrancyGuard.sol
@openzeppelin
contracts
security
ReentrancyGuard.sol


Contract ABI
[
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      }
    ],
    "name": "NewWrapper",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_royalties",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_wrappingContract",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "_name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "_symbol",
        "type": "string"
      },
      {
        "internalType": "uint256",
        "name": "_supply",
        "type": "uint256"
      },
      {
        "internalType": "string",
        "name": "_uri",
        "type": "string"
      },
      {
        "internalType": "bool",
        "name": "_addJsonExtension",
        "type": "bool"
      }
    ],
    "name": "createWrapper",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "deployedWrappers",
    "outputs": [
      {
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getDeployedWrappers",
    "outputs": [
      {
        "components": [
          {
            "internalType": "address",
            "name": "contractAddress",
            "type": "address"
          },
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          }
        ],
        "internalType": "struct Janky404Factory.Wrapped[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "user",
        "type": "address"
      }
    ],
    "name": "getWrappersByUser",
    "outputs": [
      {
        "components": [
          {
            "internalType": "address",
            "name": "contractAddress",
            "type": "address"
          },
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          }
        ],
        "internalType": "struct Janky404Factory.Wrapped[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "userDeployedWrappers",
    "outputs": [
      {
        "internalType": "address",
        "name": "contractAddress",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  }
]


Contract Creation Code
608060405234801561001057600080fd5b50613f13806100206000396000f3fe60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80630f149ff214620000635780638ef95ae31462000093578063ccf19f1914620000ac578063d475f43f14620000c3578063e076ac7214620000da575b600080fd5b6200007a620000743660046200081c565b620000f3565b6040516200008a9291906200087e565b60405180910390f35b6200009d620001be565b6040516200008a9190620008ac565b6200007a620000bd3660046200094a565b620002ce565b6200009d620000d436600462000977565b6200031e565b620000f1620000eb36600462000a58565b62000444565b005b600081815481106200010457600080fd5b6000918252602090912060029091020180546001820180546001600160a01b03909216935090620001359062000b3f565b80601f0160208091040260200160405190810160405280929190818152602001828054620001639062000b3f565b8015620001b45780601f106200018857610100808354040283529160200191620001b4565b820191906000526020600020905b8154815290600101906020018083116200019657829003601f168201915b5050505050905082565b60606000805480602002602001604051908101604052809291908181526020016000905b82821015620002c5576000848152602090819020604080518082019091526002850290910180546001600160a01b0316825260018101805492939192918401916200022d9062000b3f565b80601f01602080910402602001604051908101604052809291908181526020018280546200025b9062000b3f565b8015620002ac5780601f106200028057610100808354040283529160200191620002ac565b820191906000526020600020905b8154815290600101906020018083116200028e57829003601f168201915b50505050508152505081526020019060010190620001e2565b50505050905090565b60016020528160005260406000208181548110620002eb57600080fd5b6000918252602090912060029091020180546001820180546001600160a01b039092169450919250620001359062000b3f565b6001600160a01b0381166000908152600160209081526040808320805482518185028101850190935280835260609492939192909184015b8282101562000439576000848152602090819020604080518082019091526002850290910180546001600160a01b031682526001810180549293919291840191620003a19062000b3f565b80601f0160208091040260200160405190810160405280929190818152602001828054620003cf9062000b3f565b8015620004205780601f10620003f45761010080835404028352916020019162000420565b820191906000526020600020905b8154815290600101906020018083116200040257829003601f168201915b5050505050815250508152602001906001019062000356565b505050509050919050565b6001600160a01b038816620004985760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964206f776e6572206164647265737360581b60448201526064015b60405180910390fd5b6001600160a01b038716620004f05760405162461bcd60e51b815260206004820152601960248201527f496e76616c696420726f79616c7469657320616464726573730000000000000060448201526064016200048f565b6001600160a01b038616620005485760405162461bcd60e51b815260206004820181905260248201527f496e76616c6964207772617070696e67436f6e7472616374206164647265737360448201526064016200048f565b6000855111620005925760405162461bcd60e51b81526020600482015260146024820152734e616d652063616e6e6f7420626520656d70747960601b60448201526064016200048f565b6000845111620005de5760405162461bcd60e51b815260206004820152601660248201527553796d626f6c2063616e6e6f7420626520656d70747960501b60448201526064016200048f565b60008311620006305760405162461bcd60e51b815260206004820152601d60248201527f537570706c79206d7573742062652067726561746572207468616e203000000060448201526064016200048f565b6000825111620006795760405162461bcd60e51b81526020600482015260136024820152725552492063616e6e6f7420626520656d70747960681b60448201526064016200048f565b6000888888888888888860405162000691906200080e565b620006a498979695949392919062000b7b565b604051809103906000f080158015620006c1573d6000803e3d6000fd5b50604080518082019091526001600160a01b038281168252602082018981526000805460018101825590805283517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563600290920291820180546001600160a01b031916919094161783559051939450919283927f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e564019062000763908262000c4f565b5050506001600160a01b038a8116600090815260016020818152604083208054808401825590845292819020855160029094020180546001600160a01b0319169390941692909217835590830151839291820190620007c3908262000c4f565b50506040516001600160a01b03841681527f42c1aa2aaa06497f2270d425224851be017ea021baaac79f4250ed28f46c241c915060200160405180910390a150505050505050505050565b6131c18062000d1d83390190565b6000602082840312156200082f57600080fd5b5035919050565b6000815180845260005b818110156200085e5760208185018101518683018201520162000840565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0383168152604060208201819052600090620008a49083018462000836565b949350505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156200091f57888303603f19018552815180516001600160a01b031684528701518784018790526200090b8785018262000836565b9588019593505090860190600101620008d3565b509098975050505050505050565b80356001600160a01b03811681146200094557600080fd5b919050565b600080604083850312156200095e57600080fd5b62000969836200092d565b946020939093013593505050565b6000602082840312156200098a57600080fd5b62000995826200092d565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620009c457600080fd5b813567ffffffffffffffff80821115620009e257620009e26200099c565b604051601f8301601f19908116603f0116810190828211818310171562000a0d5762000a0d6200099c565b8160405283815286602085880101111562000a2757600080fd5b836020870160208301376000602085830101528094505050505092915050565b803580151581146200094557600080fd5b600080600080600080600080610100898b03121562000a7657600080fd5b62000a81896200092d565b975062000a9160208a016200092d565b965062000aa160408a016200092d565b9550606089013567ffffffffffffffff8082111562000abf57600080fd5b62000acd8c838d01620009b2565b965060808b013591508082111562000ae457600080fd5b62000af28c838d01620009b2565b955060a08b0135945060c08b013591508082111562000b1057600080fd5b5062000b1f8b828c01620009b2565b92505062000b3060e08a0162000a47565b90509295985092959890939650565b600181811c9082168062000b5457607f821691505b60208210810362000b7557634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0389811682528881166020830152871660408201526101006060820181905260009062000bb28382018962000836565b9050828103608084015262000bc8818862000836565b90508560a084015282810360c084015262000be4818662000836565b91505082151560e08301529998505050505050505050565b601f82111562000c4a57600081815260208120601f850160051c8101602086101562000c255750805b601f850160051c820191505b8181101562000c465782815560010162000c31565b5050505b505050565b815167ffffffffffffffff81111562000c6c5762000c6c6200099c565b62000c848162000c7d845462000b3f565b8462000bfc565b602080601f83116001811462000cbc576000841562000ca35750858301515b600019600386901b1c1916600185901b17855562000c46565b600085815260208120601f198616915b8281101562000ced5788860151825594840194600190910190840162000ccc565b508582101562000d0c5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe60e06040526012805461ffff60a01b191690553480156200001f57600080fd5b50604051620031c1380380620031c183398101604081905262000042916200026f565b8484601285898c806001600160a01b03811662000072576040516349e27cff60e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b03831690811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180556004620000cd8782620003e5565b506005620000dc8682620003e5565b5060ff8416608081905260c0849052600280546001600160a01b0319166001600160a01b0385161790556200011390600a620005c6565b6200011f9084620005de565b60a05250601094506200013b9350869250849150620003e59050565b50601280546101f4601155911515600160a81b02600161ff0160a01b03199092166001600160a01b0390981697909717179095555062000600945050505050565b80516001600160a01b03811681146200019457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001c157600080fd5b81516001600160401b0380821115620001de57620001de62000199565b604051601f8301601f19908116603f0116810190828211818310171562000209576200020962000199565b816040528381526020925086838588010111156200022657600080fd5b600091505b838210156200024a57858201830151818301840152908201906200022b565b600093810190920192909252949350505050565b805180151581146200019457600080fd5b600080600080600080600080610100898b0312156200028d57600080fd5b62000298896200017c565b9750620002a860208a016200017c565b9650620002b860408a016200017c565b60608a01519096506001600160401b0380821115620002d657600080fd5b620002e48c838d01620001af565b965060808b0151915080821115620002fb57600080fd5b620003098c838d01620001af565b955060a08b0151945060c08b01519150808211156200032757600080fd5b50620003368b828c01620001af565b9250506200034760e08a016200025e565b90509295985092959890939650565b600181811c908216806200036b57607f821691505b6020821081036200038c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003e057600081815260208120601f850160051c81016020861015620003bb5750805b601f850160051c820191505b81811015620003dc57828155600101620003c7565b5050505b505050565b81516001600160401b0381111562000401576200040162000199565b620004198162000412845462000356565b8462000392565b602080601f831160018114620004515760008415620004385750858301515b600019600386901b1c1916600185901b178555620003dc565b600085815260208120601f198616915b82811015620004825788860151825594840194600190910190840162000461565b5085821015620004a15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000508578160001904821115620004ec57620004ec620004b1565b80851615620004fa57918102915b93841c9390800290620004cc565b509250929050565b6000826200052157506001620005c0565b816200053057506000620005c0565b8160018114620005495760028114620005545762000574565b6001915050620005c0565b60ff841115620005685762000568620004b1565b50506001821b620005c0565b5060208310610133831016604e8410600b841016171562000599575081810a620005c0565b620005a58383620004c7565b8060001904821115620005bc57620005bc620004b1565b0290505b92915050565b6000620005d760ff84168362000510565b9392505050565b6000816000190483118215151615620005fb57620005fb620004b1565b500290565b60805160a05160c051612b836200063e6000396000818161057b01526108cb015260006103bb01526000818161049301526117460152612b836000f3fe608060405234801561001057600080fd5b50600436106102d65760003560e01c8063850c23dc11610182578063b9a45aac116100e9578063d547cfb7116100a2578063e985e9c51161007c578063e985e9c51461074f578063ea598cb01461077d578063ef1f3ebb14610790578063f2fde38b146107b957600080fd5b8063d547cfb714610709578063dd62ed3e14610711578063de0e9a3e1461073c57600080fd5b8063b9a45aac1461067e578063b9f77bdf14610691578063c87b56dd146106a5578063ca5994db146106b8578063cb6205e4146106cb578063d528d118146106f657600080fd5b80639b19251a1161013b5780639b19251a146105fc5780639fbc87131461061f578063a22cb46514610632578063a9059cbb14610645578063b0faefdd14610658578063b88d4fde1461066b57600080fd5b8063850c23dc1461059d57806386ca1618146105a65780638da5cb5b146105bb5780638dc251e3146105ce57806395d89b41146105e157806397151657146105e957600080fd5b80632a55205a1161024157806353d6fd59116101fa57806366e3e5e4116101d457806366e3e5e41461053a57806370a082311461054d5780637c6e551d1461056d57806381456f481461057657600080fd5b806353d6fd591461050157806355f804b3146105145780636352211e1461052757600080fd5b80632a55205a146104545780632b96895814610486578063313ce5671461048e57806342842e0e146104c75780634ada218b146104da5780634f07de09146104ee57600080fd5b806318160ddd1161029357806318160ddd146103b65780631ae24366146103dd578063201f3517146103f05780632276e3781461041957806323b872dd1461042e57806326560be71461044157600080fd5b806301ffc9a7146102db57806304bdc76b1461030357806306fdde0314610315578063081812fc1461032a578063095ea7b31461036b578063150b7a021461037e575b600080fd5b6102ee6102e93660046122a6565b6107cc565b60405190151581526020015b60405180910390f35b600f545b6040519081526020016102fa565b61031d610839565b6040516102fa91906122e7565b61035361033836600461231a565b6008602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102fa565b6102ee610379366004612348565b6108c7565b61039d61038c366004612374565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020016102fa565b6103077f000000000000000000000000000000000000000000000000000000000000000081565b6102ee6103eb366004612348565b610a35565b6103076103fe366004612413565b6001600160a01b03166000908152600b602052604090205490565b61042c610427366004612440565b610a4a565b005b6102ee61043c36600461245b565b610a92565b61042c61044f366004612440565b610b52565b61046761046236600461249c565b610b9a565b604080516001600160a01b0390931683526020830191909152016102fa565b61042c610bd4565b6104b57f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016102fa565b61042c6104d536600461245b565b610c3a565b6012546102ee90600160a01b900460ff1681565b61042c6104fc36600461231a565b610d15565b61042c61050f3660046124be565b610d44565b61042c61052236600461253a565b610d99565b61035361053536600461231a565b610dd3565b610307610548366004612413565b610e0e565b61030761055b366004612413565b60066020526000908152604090205481565b61030760115481565b6103077f000000000000000000000000000000000000000000000000000000000000000081565b61030760035481565b6105ae610e5e565b6040516102fa91906125cf565b600054610353906001600160a01b031681565b61042c6105dc366004612413565b610eb6565b61031d610f02565b61042c6105f7366004612613565b610f0f565b6102ee61060a366004612413565b600e6020526000908152604090205460ff1681565b601254610353906001600160a01b031681565b61042c6106403660046124be565b610f64565b6102ee610653366004612348565b610fd0565b600254610353906001600160a01b031681565b61042c610679366004612374565b610fe4565b61042c61068c3660046124be565b6110af565b6012546102ee90600160a81b900460ff1681565b61031d6106b336600461231a565b611104565b61042c6106c6366004612613565b611171565b6102ee6106d936600461231a565b6000908152600a60205260409020546001600160a01b0316151590565b61030761070436600461231a565b6111b9565b61031d6111da565b61030761071f3660046126b9565b600760209081526000928352604080842090915290825290205481565b61042c61074a36600461231a565b6111e7565b6102ee61075d3660046126b9565b600960209081526000928352604080842090915290825290205460ff1681565b61042c61078b36600461231a565b611201565b61030761079e366004612413565b6001600160a01b03166000908152600c602052604090205490565b61042c6107c7366004612413565b611212565b60006001600160e01b031982166380ac58cd60e01b14806107fd57506001600160e01b03198216635b5e139f60e01b145b8061081857506001600160e01b0319821663152a902d60e11b145b8061083357506301ffc9a760e01b6001600160e01b03198316145b92915050565b60048054610846906126f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610872906126f2565b80156108bf5780601f10610894576101008083540402835291602001916108bf565b820191906000526020600020905b8154815290600101906020018083116108a257829003601f168201915b505050505081565b60007f000000000000000000000000000000000000000000000000000000000000000082111580156108f95750600082115b156109d0576000828152600a60205260409020546001600160a01b031633811480159061094a57506001600160a01b038116600090815260096020908152604080832033845290915290205460ff16155b15610967576040516282b42960e81b815260040160405180910390fd5b60008381526008602090815260409182902080546001600160a01b0319166001600160a01b038881169182179092559251868152908416917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350610a2c565b3360008181526007602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50600192915050565b600081610a4184610e0e565b10159392505050565b6000546001600160a01b03163314610a74576040516282b42960e81b815260040160405180910390fd5b60128054911515600160a81b0260ff60a81b19909216919091179055565b6001600160a01b038316600090815260076020908152604080832033845290915281205482811015610b035760405162461bcd60e51b81526020600482015260156024820152742737ba1032b737bab3b41030b63637bbb0b731b29760591b60448201526064015b60405180910390fd5b6000198114610b3b57610b168382612742565b6001600160a01b03861660009081526007602090815260408083203384529091529020555b610b468585856112ae565b50600195945050505050565b6000546001600160a01b03163314610b7c576040516282b42960e81b815260040160405180910390fd5b60128054911515600160a01b0260ff60a01b19909216919091179055565b60125460115460009182916001600160a01b039091169061271090610bbf9086612755565b610bc99190612774565b915091509250929050565b6000546001600160a01b03163314610bfe576040516282b42960e81b815260040160405180910390fd5b600080546001600160a01b031916815560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3565b610c46338484846114e3565b6001600160a01b0382163b15801590610cf25750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce59190612796565b6001600160e01b03191614155b15610d1057604051633da6393160e01b815260040160405180910390fd5b505050565b6000546001600160a01b03163314610d3f576040516282b42960e81b815260040160405180910390fd5b601155565b6000546001600160a01b03163314610d6e576040516282b42960e81b815260040160405180910390fd5b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610dc3576040516282b42960e81b815260040160405180910390fd5b6010610dcf8282612801565b5050565b6000818152600a60205260409020546001600160a01b031680610e095760405163c5723b5160e01b815260040160405180910390fd5b919050565b6000610e1861173f565b6001600160a01b0383166000908152600c6020526040902054610e3b9190612755565b6001600160a01b0383166000908152600660205260409020546108339190612742565b6060600f805480602002602001604051908101604052809291908181526020018280548015610eac57602002820191906000526020600020905b815481526020019060010190808311610e98575b5050505050905090565b6000546001600160a01b03163314610ee0576040516282b42960e81b815260040160405180910390fd5b601280546001600160a01b0319166001600160a01b0392909216919091179055565b60058054610846906126f2565b610f17611771565b60005b8151811015610f5757610f45828281518110610f3857610f386128c1565b60200260200101516117ca565b80610f4f816128d7565b915050610f1a565b50610f6160018055565b50565b3360008181526009602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6000610fdd3384846112ae565b9392505050565b610ff0338686866114e3565b6001600160a01b0384163b1580159061108a5750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a029061103a9033908a908990899089906004016128f0565b6020604051808303816000875af1158015611059573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107d9190612796565b6001600160e01b03191614155b156110a857604051633da6393160e01b815260040160405180910390fd5b5050505050565b6000546001600160a01b031633146110d9576040516282b42960e81b815260040160405180910390fd5b6001600160a01b03919091166000908152601360205260409020805460ff1916911515919091179055565b606060006010611113846119d9565b604051602001611124929190612944565b60408051808303601f19018152919052601254909150600160a81b900460ff1615610833578060405160200161115a91906129cb565b604051602081830303815290604052905092915050565b611179611771565b60005b8151811015610f57576111a782828151811061119a5761119a6128c1565b6020026020010151611a6c565b806111b1816128d7565b91505061117c565b600f81815481106111c957600080fd5b600091825260209091200154905081565b60108054610846906126f2565b6111ef611771565b6111f881611a6c565b610f6160018055565b611209611771565b6111f8816117ca565b6000546001600160a01b0316331461123c576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038116611263576040516349e27cff60e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60006112bb848484611bdc565b833b1561131a57816112cc85610e0e565b101561131a5760405162461bcd60e51b815260206004820152601960248201527f4e6f7420656e6f75676820746f6b656e2062616c616e63652e000000000000006044820152606401610afa565b600061132461173f565b6001600160a01b038087166000818152600660205260408082208054948a16835290822054928252939450919290918691906113608386612742565b90915550506001600160a01b038616600090815260066020526040902080548601905561138c87611cd1565b15806113af57506001600160a01b0387166000908152600b602052604090205415155b15611417576001600160a01b0387166000908152600660205260408120546113d8908590612774565b6113e28585612774565b6113ec9190612742565b905060005b818110156114145761140289611cfa565b8061140c816128d7565b9150506113f1565b50505b61142086611cd1565b6114895760006114308483612774565b6001600160a01b038816600090815260066020526040902054611454908690612774565b61145e9190612742565b905060005b818110156114865761147488611e42565b8061147e816128d7565b915050611463565b50505b856001600160a01b0316876001600160a01b03167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e031487876040516114ce91815260200190565b60405180910390a35060019695505050505050565b6000818152600a60205260409020546001600160a01b038481169116146115405760405162461bcd60e51b81526020600482015260116024820152702737ba1037bbb732b91037b31027232a1760791b6044820152606401610afa565b6001600160a01b0382166115965760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742073656e6420746f206e756c6c20616464726573732e000000006044820152606401610afa565b826001600160a01b0316846001600160a01b031614806115db57506001600160a01b0380841660009081526009602090815260408083209388168352929052205460ff165b806115ff57506000818152600860205260409020546001600160a01b038581169116145b61164b5760405162461bcd60e51b815260206004820152601960248201527f4f70657261746f72206973206e6f7420617070726f7665642e000000000000006044820152606401610afa565b61165361173f565b6001600160a01b0384166000908152600660205260408120805490919061167b908490612742565b90915550611689905061173f565b6001600160a01b0383166000908152600660205260409020805490910190556116b28382611f2d565b6116bc82826120fd565b80826001600160a01b0316846001600160a01b0316600080516020612b2e83398151915260405160405180910390a4816001600160a01b0316836001600160a01b03167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148761172861173f565b60405190815260200160405180910390a350505050565b600061176c7f0000000000000000000000000000000000000000000000000000000000000000600a612ad8565b905090565b6002600154036117c35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610afa565b6002600155565b6000818152600a60205260409020546001600160a01b03161561182f5760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f742077726170206578697374696e6720746f6b656e2e00000000006044820152606401610afa565b6002546040516331a9108f60e11b8152600481018390526001600160a01b039091169033908290636352211e90602401602060405180830381865afa15801561187c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a09190612ae7565b6001600160a01b0316146118f65760405162461bcd60e51b815260206004820152601a60248201527f596f7520646f206e6f74206f776e207468617420746f6b656e2e0000000000006044820152606401610afa565b6118fe61173f565b611909906001612755565b3360009081526006602052604081208054909190611928908490612b04565b925050819055506001600360008282546119429190612b04565b90915550611952905033836120fd565b604051632142170760e11b8152336004820152306024820152604481018390526001600160a01b038216906342842e0e90606401600060405180830381600087803b1580156119a057600080fd5b505af11580156119b4573d6000803e3d6000fd5b5050604051849250339150600090600080516020612b2e833981519152908290a45050565b606060006119e6836121b8565b600101905060008167ffffffffffffffff811115611a0657611a066124f3565b6040519080825280601f01601f191660200182016040528015611a30576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611a3a57509392505050565b33611a7682610dd3565b6001600160a01b031614611acc5760405162461bcd60e51b815260206004820152601a60248201527f596f7520646f206e6f74206f776e207468617420746f6b656e2e0000000000006044820152606401610afa565b611ad461173f565b611adf906001612755565b3360009081526006602052604081208054909190611afe908490612742565b92505081905550600160036000828254611b189190612742565b90915550611b2890503382611f2d565b6000818152600d60209081526040808320839055600a9091529081902080546001600160a01b03191690556002549051632142170760e11b8152306004820152336024820152604481018390526001600160a01b03909116906342842e0e90606401600060405180830381600087803b158015611ba457600080fd5b505af1158015611bb8573d6000803e3d6000fd5b5050604051839250600091503390600080516020612b2e833981519152908390a450565b601254600090600160a01b900460ff1680611c0457506000546001600160a01b038581169116145b80611c1c57506000546001600160a01b038481169116145b80611c3f57506001600160a01b03841660009081526013602052604090205460ff165b80611c6257506001600160a01b03831660009081526013602052604090205460ff165b905080611ccb5760405162461bcd60e51b815260206004820152603160248201527f54726164696e67206973206e6f7420656e61626c6564206f72206164647265736044820152701cc81b9bdd081dda1a5d195b1a5cdd1959607a1b6064820152608401610afa565b50505050565b6001600160a01b0381166000908152600e602052604081205460ff16806108335750813b610833565b6001600160a01b038116611d2157604051636edaef2f60e11b815260040160405180910390fd5b6001600160a01b0381166000908152600b602052604081208054611d4790600190612742565b81548110611d5757611d576128c1565b90600052602060002001549050600b6000836001600160a01b03166001600160a01b03168152602001908152602001600020805480611d9857611d98612b17565b600082815260208082208301600019908101839055909201909255828252600d81526040808320839055600a825280832080546001600160a01b031990811690915560089092528083208054909216909155600f80546001810182559083527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80201839055518291906001600160a01b03851690600080516020612b2e833981519152908390a45050565b6001600160a01b038116611e6957604051634e46966960e11b815260040160405180910390fd5b600f805460009190611e7d90600190612742565b81548110611e8d57611e8d6128c1565b90600052602060002001549050600f805480611eab57611eab612b17565b600082815260208082208301600019908101839055909201909255828252600a905260409020546001600160a01b031615611ef95760405163119b4fd360e11b815260040160405180910390fd5b611f0382826120fd565b60405181906001600160a01b03841690600090600080516020612b2e833981519152908290a45050565b6000823b15612000576001600160a01b0383166000908152600c602052604090208054611f5c90600190612742565b81548110611f6c57611f6c6128c1565b60009182526020808320909101546001600160a01b0386168352600c82526040808420868552600d90935290922054815492935083928110611fb057611fb06128c1565b60009182526020808320909101929092556001600160a01b0385168152600c90915260409020805480611fe557611fe5612b17565b600190038181906000526020600020016000905590556120c6565b6001600160a01b0383166000908152600b60205260409020805461202690600190612742565b81548110612036576120366128c1565b60009182526020808320909101546001600160a01b0386168352600b82526040808420868552600d9093529092205481549293508392811061207a5761207a6128c1565b60009182526020808320909101929092556001600160a01b0385168152600b909152604090208054806120af576120af612b17565b600190038181906000526020600020016000905590555b6000828152600d6020908152604080832054938352808320939093559281526008909252902080546001600160a01b031916905550565b6000818152600a6020526040902080546001600160a01b0319166001600160a01b038416179055813b1561217b576001600160a01b0382166000818152600c602090815260408220805460018181018355828552928420018590559290915290546121689190612742565b6000828152600d60205260409020555050565b6001600160a01b0382166000818152600b602090815260408220805460018181018355828552928420018590559290915290546121689190612742565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106121f75772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612223576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061224157662386f26fc10000830492506010015b6305f5e1008310612259576305f5e100830492506008015b612710831061226d57612710830492506004015b6064831061227f576064830492506002015b600a83106108335760010192915050565b6001600160e01b031981168114610f6157600080fd5b6000602082840312156122b857600080fd5b8135610fdd81612290565b60005b838110156122de5781810151838201526020016122c6565b50506000910152565b60208152600082518060208401526123068160408501602087016122c3565b601f01601f19169190910160400192915050565b60006020828403121561232c57600080fd5b5035919050565b6001600160a01b0381168114610f6157600080fd5b6000806040838503121561235b57600080fd5b823561236681612333565b946020939093013593505050565b60008060008060006080868803121561238c57600080fd5b853561239781612333565b945060208601356123a781612333565b935060408601359250606086013567ffffffffffffffff808211156123cb57600080fd5b818801915088601f8301126123df57600080fd5b8135818111156123ee57600080fd5b89602082850101111561240057600080fd5b9699959850939650602001949392505050565b60006020828403121561242557600080fd5b8135610fdd81612333565b80358015158114610e0957600080fd5b60006020828403121561245257600080fd5b610fdd82612430565b60008060006060848603121561247057600080fd5b833561247b81612333565b9250602084013561248b81612333565b929592945050506040919091013590565b600080604083850312156124af57600080fd5b50508035926020909101359150565b600080604083850312156124d157600080fd5b82356124dc81612333565b91506124ea60208401612430565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612532576125326124f3565b604052919050565b6000602080838503121561254d57600080fd5b823567ffffffffffffffff8082111561256557600080fd5b818501915085601f83011261257957600080fd5b81358181111561258b5761258b6124f3565b61259d601f8201601f19168501612509565b915080825286848285010111156125b357600080fd5b8084840185840137600090820190930192909252509392505050565b6020808252825182820181905260009190848201906040850190845b81811015612607578351835292840192918401916001016125eb565b50909695505050505050565b6000602080838503121561262657600080fd5b823567ffffffffffffffff8082111561263e57600080fd5b818501915085601f83011261265257600080fd5b813581811115612664576126646124f3565b8060051b9150612675848301612509565b818152918301840191848101908884111561268f57600080fd5b938501935b838510156126ad57843582529385019390850190612694565b98975050505050505050565b600080604083850312156126cc57600080fd5b82356126d781612333565b915060208301356126e781612333565b809150509250929050565b600181811c9082168061270657607f821691505b60208210810361272657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156108335761083361272c565b600081600019048311821515161561276f5761276f61272c565b500290565b60008261279157634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156127a857600080fd5b8151610fdd81612290565b601f821115610d1057600081815260208120601f850160051c810160208610156127da5750805b601f850160051c820191505b818110156127f9578281556001016127e6565b505050505050565b815167ffffffffffffffff81111561281b5761281b6124f3565b61282f8161282984546126f2565b846127b3565b602080601f831160018114612864576000841561284c5750858301515b600019600386901b1c1916600185901b1785556127f9565b600085815260208120601f198616915b8281101561289357888601518255948401946001909101908401612874565b50858210156128b15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b6000600182016128e9576128e961272c565b5060010190565b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290526000828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b6000808454612952816126f2565b6001828116801561296a576001811461297f576129ae565b60ff19841687528215158302870194506129ae565b8860005260208060002060005b858110156129a55781548a82015290840190820161298c565b50505082870194505b5050505083516129c28183602088016122c3565b01949350505050565b600082516129dd8184602087016122c3565b64173539b7b760d91b920191825250600501919050565b600181815b80851115612a2f578160001904821115612a1557612a1561272c565b80851615612a2257918102915b93841c93908002906129f9565b509250929050565b600082612a4657506001610833565b81612a5357506000610833565b8160018114612a695760028114612a7357612a8f565b6001915050610833565b60ff841115612a8457612a8461272c565b50506001821b610833565b5060208310610133831016604e8410600b8410161715612ab2575081810a610833565b612abc83836129f4565b8060001904821115612ad057612ad061272c565b029392505050565b6000610fdd60ff841683612a37565b600060208284031215612af957600080fd5b8151610fdd81612333565b808201808211156108335761083361272c565b634e487b7160e01b600052603160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212201bd6cb2157e18ccb0a680c081ff511250e1f4b26ee270c16ac6aaa70ee74d26364736f6c63430008100033a2646970667358221220c1b7a997e1d4635245811b8575a5e738c0f170dff5123f937d15c2101cec0ab664736f6c63430008100033