{ "abi": [ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "token", "type": "uint256" }, { "indexed": true, "internalType": "string", "name": "commit_hash", "type": "string" } ], "name": "NewBuild", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "token", "type": "uint256" }, { "indexed": true, "internalType": "string", "name": "description", "type": "string" } ], "name": "NewTokenDescription", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "token", "type": "uint256" }, { "indexed": true, "internalType": "string", "name": "ENS", "type": "string" } ], "name": "NewTokenENS", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "token", "type": "uint256" }, { "indexed": true, "internalType": "string", "name": "external_url", "type": "string" } ], "name": "NewTokenExternalURL", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "token", "type": "uint256" }, { "indexed": true, "internalType": "string", "name": "image", "type": "string" } ], "name": "NewTokenImage", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "token", "type": "uint256" }, { "indexed": true, "internalType": "string", "name": "name", "type": "string" } ], "name": "NewTokenName", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "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": [], "name": "COLLECTION_CONTROLLER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "COLLECTION_OWNER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "controller", "type": "address" } ], "name": "addTokenController", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "string", "name": "image", "type": "string" }, { "internalType": "string", "name": "external_url", "type": "string" }, { "internalType": "string", "name": "ENS", "type": "string" }, { "internalType": "string", "name": "commit_hash", "type": "string" }, { "internalType": "string", "name": "git_repository", "type": "string" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "controller", "type": "address" } ], "name": "removeTokenController", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_commit_hash", "type": "string" }, { "internalType": "string", "name": "_git_repository", "type": "string" } ], "name": "setTokenBuild", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenDescription", "type": "string" } ], "name": "setTokenDescription", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenENS", "type": "string" } ], "name": "setTokenENS", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenExternalURL", "type": "string" } ], "name": "setTokenExternalURL", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenImage", "type": "string" } ], "name": "setTokenImage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenName", "type": "string" } ], "name": "setTokenName", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "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": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "commit", "type": "string" }, { "internalType": "string", "name": "repository", "type": "string" } ], "name": "upgradeTokenBuild", "outputs": [], "stateMutability": "payable", "type": "function" } ], "bytecode": { "object": "0x60406080815234620003da5762003bb190813803806200001f81620003df565b93843982018183820312620003da5782516001600160401b0390818111620003da57826200004f91860162000405565b9360209283820151838111620003da576200006b920162000405565b93805191808311620003c4576000928354906001938483811c93168015620003b9575b87841014620003a5578190601f9384811162000352575b508790848311600114620002ee578792620002e2575b5050600019600383901b1c191690841b1784555b8651918211620002ce5782548381811c91168015620002c3575b86821014620002af5781811162000267575b508490821160011462000204578394959682939492620001f8575b5050600019600383901b1c191690821b1781555b7fcac50f86c292f6863f130b9e1133a5f875e8e957fed41745b8fa2498550cbdfc92838352600681528282868220015481848882200155857fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff8380a4848320338452815260ff858420541615620001ab575b84516137399081620004788239f35b8383526006815284832090338452528382209060ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339280a4388080806200019c565b01519050388062000116565b82845284842090601f198316855b818110620002515750978385969798991062000237575b505050811b0181556200012a565b015160001960f88460031b161c1916905538808062000229565b8983015184559285019291870191870162000212565b8385528585208280850160051c820192888610620002a5575b0160051c019084905b82811062000299575050620000fb565b86815501849062000289565b9250819262000280565b634e487b7160e01b85526022600452602485fd5b90607f1690620000e9565b634e487b7160e01b84526041600452602484fd5b015190503880620000bb565b8780528888208794509190601f198416895b8b8282106200033b575050841162000321575b505050811b018455620000cf565b015160001960f88460031b161c1916905538808062000313565b8385015186558a9790950194938401930162000300565b9091508680528787208480850160051c8201928a86106200039b575b918891869594930160051c01915b8281106200038c575050620000a5565b8981558594508891016200037c565b925081926200036e565b634e487b7160e01b86526022600452602486fd5b92607f16926200008e565b634e487b7160e01b600052604160045260246000fd5b600080fd5b6040519190601f01601f191682016001600160401b03811183821017620003c457604052565b919080601f84011215620003da5782516001600160401b038111620003c4576020906200043b601f8201601f19168301620003df565b92818452828287010111620003da5760005b8181106200046357508260009394955001015290565b85810183015184820184015282016200044d56fe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146127595750806306fdde03146126b6578063081812fc14612698578063095ea7b31461251e57806323b872dd146124f5578063246a908b14612379578063248a9ca31461234a5780632f2ff15d1461231057806336568abe1461227e5780633806f1521461200957806342842e0e14611fe157806342966c6814611e965780636352211e14611e6657806364140ec014611cf357806370a0823114611c5c57806378278cca14611ae957806391d1485414611a9c57806395d89b41146119bd578063987c26fd146116a357806398b7079314611668578063a217fddf1461164c578063a22cb4651461157a578063b543be1214610b34578063b88d4fde14610ad5578063befaa6a314610ab3578063c87b56dd1461061f578063cdb0e89e1461048b578063d547741f1461044c578063dcd78186146103d5578063e46f29c81461039a578063e985e9c5146103445763f93151771461017f57600080fd5b3461033f5761018d3661294e565b9061019f610199612ae2565b82612b08565b6000526020916006835260406000203360005283526101c560ff60406000205416612b53565b6000828152600260205260409020546101e8906001600160a01b03161515612f16565b816000526008835260036040600020018151936001600160401b0385116103295761021382546129c3565b601f81116102ee575b5080601f8611600114610284575093806102519495600091610279575b508160011b916000199060031b1c1916179055612bb0565b907f9f284fd257fb85bc33901e673c078261b0222fbcc4b52c74784c9566808e3cfc600080a3005b905083015138610239565b90601f1986168360005282600020926000905b8282106102d65750509186916102519697600194106102bd575b5050811b019055612bb0565b85015160001960f88460031b161c1916905538806102b1565b80600185968294968a01518155019501930190610297565b610319908360005282600020601f880160051c81019184891061031f575b601f0160051c01906129fd565b3861021c565b909150819061030c565b634e487b7160e01b600052604160045260246000fd5b600080fd5b3461033f57604036600319011261033f5761035d612826565b61036561283c565b9060018060a01b03809116600052600560205260406000209116600052602052602060ff604060002054166040519015158152f35b3461033f57600036600319011261033f5760206040517f54812023c8fe13756580f3420840aeb566f69714bea27346e22e4c654756d77e8152f35b3461033f57604036600319011261033f5761044a6004356104456103f761283c565b916104146001600160a01b0361040c83612f62565b163314612a14565b600081815260026020526040902054610437906001600160a01b03161515612f16565b61043f612ae2565b90612b08565b612e26565b005b3461033f57604036600319011261033f5761044a60043561046b61283c565b90806000526006602052610486600160406000200154612c1c565b612ea0565b3461033f576104993661294e565b906104a5610199612ae2565b6000526020916006835260406000203360005283526104cb60ff60406000205416612b53565b6000828152600260205260409020546104ee906001600160a01b03161515612f16565b816000526008835260406000208151936001600160401b0385116103295761051682546129c3565b601f81116105ef575b5080601f861160011461058657509380610553949560009161057b57508160011b916000199060031b1c1916179055612bb0565b907fabf44020991f188f6b302a14e4b7a3dc94de10ed2140a6c03e16f4213d11b1c9600080a3005b905083015186610239565b90601f1986168360005282600020926000905b8282106105d75750509186916105539697600194106105be575050811b019055612bb0565b85015160001960f88460031b161c1916905586806102b1565b80600185968294968a01518155019501930190610599565b610619908360005282600020601f880160051c81019184891061031f57601f0160051c01906129fd565b8561051f565b3461033f5760208060031936011261033f5760043560008181526002602052604090205490919061065a906001600160a01b03161515612f16565b61066382612f62565b600092835260088252604090922091610684906001600160a01b03166135f5565b60058301546000818152600685018452604081206001958694938583019190807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008181811015610aa5575b5050886d04ee2d6d415b85acef810000000080841015610a97575b5050662386f26fc1000080831015610a88575b506305f5e10080831015610a79575b5061271080831015610a6a575b506064821015610a5a575b600a978880931015610a50575b6021610739828901613446565b97880101905b610a21575b5050604051607b60f81b8982015267113730b6b2911d1160c11b60218201529889969091506107766029880184612a5f565b61088b60f21b8082526e113232b9b1b934b83a34b7b7111d1160891b6002830152926107a791601101908501612a5f565b828152681137bbb732b9111d1160b91b60028201528151916107d1908390600b8401908d016127de565b0181600b8201526f1132bc3a32b93730b62fbab936111d1160811b600d820152601d01600383019061080291612a5f565b818152681134b6b0b3b2911d1160b91b6002820152600b01600283019061082891612a5f565b9081526e2261747472696275746573223a205b60881b60028201527f7b2274726169745f74797065223a2022454e53222c202276616c7565223a2200601182015261087b91603090910190600401612a5f565b62089f4b60ea1b8082527f7b2274726169745f74797065223a2022436f6d6d69742048617368222c20227660038301526630b63ab2911d1160c91b6023830152926108c991602a0190612a5f565b828152600381017f7b2274726169745f74797065223a20225265706f7369746f7279222c20227661905265363ab2911d1160d11b602382015260290161090e91612a5f565b9081527f7b2274726169745f74797065223a202256657273696f6e222c202276616c7565600382015262111d1160e91b6023820152815191610958908390602684019088016127de565b0161227d60f01b602682015260288101605d60f81b905260298101607d60f81b9052039081018352602a0161098d90836128bd565b8060405161099a81612887565b601d8152818101937f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000085526109ce90613478565b6040519485925190818585016109e3926127de565b820181519182858084019201916109f9926127de565b010380845201610a0990836128bd565b6040519181839283528201610a1d91612801565b0390f35b600019019082906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304908a8261073f5750610744565b909501948961072c565b949060646002910491019461071f565b6004919692049101948a610714565b6008919692049101948a610707565b6010919692049101948a6106f8565b96019590910490888b6106e5565b604097500491508a806106ca565b3461033f57604036600319011261033f5761044a6004356104866103f761283c565b3461033f57608036600319011261033f57610aee612826565b610af661283c565b606435916001600160401b03831161033f573660238401121561033f57610b2a61044a9336906024816004013591016128f9565b9160443591613025565b61010036600319011261033f57610b49612826565b6024356001600160401b03811161033f57610b68903690600401612930565b906044356001600160401b03811161033f57610b88903690600401612930565b906064356001600160401b03811161033f57610ba8903690600401612930565b926084356001600160401b03811161033f57610bc8903690600401612930565b60a4356001600160401b03811161033f57610be7903690600401612930565b9060c4356001600160401b03811161033f57610c07903690600401612930565b9560e4356001600160401b03811161033f57610c27903690600401612930565b3360009081527f6ba1fb09f226a75e067af9a8d207c51e8b8b2c4d25e3ce897223f4dfedce79fd602052604090205490969060ff161561151957600754956001600160a01b038116156114d557600087815260026020526040902054610d6c9190610c9e906001600160a01b031615155b1561311e565b600088815260026020526040902054610cc1906001600160a01b03161515610c98565b6001600160a01b0381166000818152600360209081526040808320805460010190558b83526002909152812080546001600160a01b031916831790558991907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4610d386001600160a01b0361040c8a612f62565b600088815260026020526040902054610d5b906001600160a01b03161515612f16565b610445610d66612ae2565b89612b08565b6001600754016007558560005260086020526040600020948051906001600160401b038211610329578190610da188546129c3565b601f81116114a3575b50602090601f83116001146114375760009261142c575b50508160011b916000199060031b1c19161785555b8051906001600160401b038211610329578190610df660018801546129c3565b601f81116113f7575b50602090601f83116001146113855760009261137a575b50508160011b916000199060031b1c19161760018501555b8051906001600160401b038211610329578190610e4e60028701546129c3565b601f8111611345575b50602090601f83116001146112d3576000926112c8575b50508160011b916000199060031b1c19161760028401555b8051906001600160401b038211610329578190610ea660038601546129c3565b601f8111611293575b50602090601f831160011461122157600092611216575b50508160011b916000199060031b1c19161760038301555b8051906001600160401b03821161032957610efc60048401546129c3565b601f81116111e1575b50602090601f831160011461116e57600693929160009183611163575b50508160011b916000199060031b1c19161760048201555b6000600582015560405194610f4e86612887565b8552602085019384526000805201602052604060002092519283516001600160401b03811161032957610f8182546129c3565b601f8111611131575b506020601f82116001146110c757819060019495966000926110bc575b5050600019600383901b1c191690831b1781555b019151908151926001600160401b03841161032957602093610fdd82546129c3565b601f811161108c575b508493601f821160011461102957938192939460009261101e575b50508160011b916000199060031b1c19161790555b604051908152f35b015190508580611001565b601f1982169483600052866000209160005b87811061107557508360019596971061105c575b505050811b019055611016565b015160001960f88460031b161c1916905585808061104f565b91928860018192868501518155019401920161103b565b6110b6908360005286600020601f840160051c81019188851061031f57601f0160051c01906129fd565b85610fe6565b015190508680610fa7565b601f198216958360005260206000209660005b8181106111195750916001959697918487959410611100575b505050811b018155610fbb565b015160001960f88460031b161c191690558680806110f3565b838301518955600190980197602093840193016110da565b61115d90836000526020600020601f840160051c8101916020851061031f57601f0160051c01906129fd565b85610f8a565b015190508780610f22565b906004840160005260206000209160005b601f19851681106111c9575091839160019360069695601f198116106111b0575b505050811b016004820155610f3a565b015160001960f88460031b161c191690558780806111a0565b9192602060018192868501518155019401920161117f565b61121090600485016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129fd565b86610f05565b015190508780610ec6565b9250600385016000526020600020906000935b601f1984168510611278576001945083601f1981161061125f575b505050811b016003830155610ede565b015160001960f88460031b161c1916905587808061124f565b81810151835560209485019460019093019290910190611234565b6112c290600387016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129fd565b88610eaf565b015190508880610e6e565b9250600286016000526020600020906000935b601f198416851061132a576001945083601f19811610611311575b505050811b016002840155610e86565b015160001960f88460031b161c19169055888080611301565b818101518355602094850194600190930192909101906112e6565b61137490600288016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129fd565b89610e57565b015190508980610e16565b9250600187016000526020600020906000935b601f19841685106113dc576001945083601f198116106113c3575b505050811b016001850155610e2e565b015160001960f88460031b161c191690558980806113b3565b81810151835560209485019460019093019290910190611398565b61142690600189016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129fd565b8a610dff565b015190508a80610dc1565b9250876000526020600020906000935b601f1984168510611488576001945083601f1981161061146f575b505050811b018555610dd6565b015160001960f88460031b161c191690558a8080611462565b81810151835560209485019460019093019290910190611447565b6114cf90896000526020600020601f850160051c8101916020861061031f57601f0160051c01906129fd565b8b610daa565b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b60405162461bcd60e51b815260206004820152603360248201527f466c65656b416363657373436f6e74726f6c3a206d757374206861766520636f6044820152726c6c656374696f6e206f776e657220726f6c6560681b6064820152608490fd5b3461033f57604036600319011261033f57611593612826565b6024359081151580920361033f576001600160a01b03169033821461160757336000526005602052604060002082600052602052604060002060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b3461033f57600036600319011261033f57602060405160008152f35b3461033f57600036600319011261033f5760206040517fcac50f86c292f6863f130b9e1133a5f875e8e957fed41745b8fa2498550cbdfc8152f35b6116ac3661297d565b91906116c26001600160a01b0361040c84612f62565b6000828152600260205260409020546116e5906001600160a01b03161515612f16565b6116f66116f0612ae2565b83612b08565b60005260209260068452604060002033600052845261171c60ff60406000205416612b53565b60008381526002602052604090205461173f906001600160a01b03161515612f16565b60405161174b81612887565b82815284810191825283600052600885526006604060002001600560406000200190815490600019928383146119a757600180930180915560005287526040600020925180516001600160401b03948582116103295783916117ad82546129c3565b93601f948c868211611978575b50508b90858311600114611912576000919083611907575b50508682851b9260031b1c19161781555b019451978851948511610329576117fa86546129c3565b8281116118cf575b508091851160011461186657508392918391611833989960009561185b575b50501b9260031b1c1916179055612bb0565b907ff0cd0ce9d5882a10e2780d2d9c805c18e7536b9b2c6412f7bfb7f163656dd0f6600080a3005b015193508980611821565b91939290601f198416988660005283600020936000905b8b82106118b857505084611833999a106118a0575b50505050811b019055612bb0565b01519060f88460031b161c1916905586808080611892565b80888597829496860151815501960193019061187d565b6118f89087600052826000208480890160051c820192858a106118fe575b0160051c01906129fd565b89611802565b925081926118ed565b015190508c806117d2565b60008481528d8120929190601f198516908f5b82821061195f5750509084879594939210611948575b505050811b0181556117e3565b01518860f88460031b161c191690558c808061193b565b8484015186558a98909501949384019390810190611925565b6119a0918560005287826000209181870160051c83019387106118fe570160051c01906129fd565b8c8c6117ba565b634e487b7160e01b600052601160045260246000fd5b3461033f57600036600319011261033f57604051600060018054906119e1826129c3565b80855291818116908115611a755750600114611a1c575b610a1d84611a08818603826128bd565b604051918291602083526020830190612801565b600081815292507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b828410611a5d575050508101602001611a08826119f8565b80546020858701810191909152909301928101611a45565b60ff191660208087019190915292151560051b85019092019250611a0891508390506119f8565b3461033f57604036600319011261033f57611ab561283c565b600435600052600660205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461033f57611af73661294e565b90611b03610199612ae2565b600052602091600683526040600020336000528352611b2960ff60406000205416612b53565b600082815260026020526040902054611b4c906001600160a01b03161515612f16565b816000526008835260046040600020018151936001600160401b03851161032957611b7782546129c3565b601f8111611c2c575b5080601f8611600114611bdc57509380611bb4949560009161057b57508160011b916000199060031b1c1916179055612bb0565b907fc1b5a2141fc60537be795a8771f5e8c80188922acb5399a6e463ea95aa852f31600080a3005b90601f1986168360005282600020926000905b828210611c14575050918691611bb49697600194106105be575050811b019055612bb0565b80600185968294968a01518155019501930190611bef565b611c56908360005282600020601f880160051c81019184891061031f57601f0160051c01906129fd565b85611b80565b3461033f57602036600319011261033f576001600160a01b03611c7d612826565b168015611c9c5760005260036020526020604060002054604051908152f35b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608490fd5b3461033f57611d013661294e565b90611d0d610199612ae2565b600052602091600683526040600020336000528352611d3360ff60406000205416612b53565b600082815260026020526040902054611d56906001600160a01b03161515612f16565b816000526008835260026040600020018151936001600160401b03851161032957611d8182546129c3565b601f8111611e36575b5080601f8611600114611de657509380611dbe949560009161057b57508160011b916000199060031b1c1916179055612bb0565b907fb041870856ebefdd6a3cb1ac665eb6739281b855c912ff622e814dbf91c96bb6600080a3005b90601f1986168360005282600020926000905b828210611e1e575050918691611dbe9697600194106105be575050811b019055612bb0565b80600185968294968a01518155019501930190611df9565b611e60908360005282600020601f880160051c81019184891061031f57601f0160051c01906129fd565b85611d8a565b3461033f57602036600319011261033f576020611e84600435612f62565b6040516001600160a01b039091168152f35b3461033f5760208060031936011261033f5760043590611eb76116f0612ae2565b600052600681526040600020336000528152611eda60ff60406000205416612b53565b8160006001600160a01b03611efa3382611ef386612f62565b1614612a14565b611f0383612f62565b50611f0d83612f62565b908383526004855260408320916bffffffffffffffffffffffff60a01b92838154169055169081835260038552604083208319815401905583835260028552604083209081541690557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a460088152611f8f6003604060002001546129c3565b611f9557005b600891600052526000600560408220611fad81612bd0565b611fb960018201612bd0565b611fc560028201612bd0565b611fd160038201612bd0565b611fdd60048201612bd0565b0155005b3461033f5761044a611ff236612852565b9060405192612000846128a2565b60008452613025565b3461033f576120173661297d565b91906120246116f0612ae2565b60005260209260068452604060002033600052845261204a60ff60406000205416612b53565b60008381526002602052604090205461206d906001600160a01b03161515612f16565b60405161207981612887565b82815284810191825283600052600885526006604060002001600560406000200190815490600019928383146119a757600180930180915560005287526040600020925180516001600160401b03948582116103295783916120db82546129c3565b93601f948c86821161224f575b50508b908583116001146121e95760009190836121de575b50508682851b9260031b1c19161781555b0194519788519485116103295761212886546129c3565b8281116121b0575b508091851160011461216057508392918391611833989960009561185b5750501b9260031b1c1916179055612bb0565b91939290601f198416988660005283600020936000905b8b821061219957505084611833999a106118a05750505050811b019055612bb0565b808885978294968601518155019601930190612177565b6121d89087600052826000208480890160051c820192858a106118fe570160051c01906129fd565b89612130565b015190508c80612100565b60008481528d8120929190601f198516908f5b828210612236575050908487959493921061221f575b505050811b018155612111565b01518860f88460031b161c191690558c8080612212565b8484015186558a989095019493840193908101906121fc565b612277918560005287826000209181870160051c83019387106118fe570160051c01906129fd565b8c8c6120e8565b3461033f57604036600319011261033f5761229761283c565b336001600160a01b038216036122b35761044a90600435612ea0565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b3461033f57604036600319011261033f5761044a60043561232f61283c565b90806000526006602052610445600160406000200154612c1c565b3461033f57602036600319011261033f5760043560005260066020526020600160406000200154604051908152f35b3461033f576123873661294e565b90612393610199612ae2565b6000526020916006835260406000203360005283526123b960ff60406000205416612b53565b6000828152600260205260409020546123dc906001600160a01b03161515612f16565b8160005260088352600180604060002001908251906001600160401b0382116103295761240983546129c3565b601f81116124c5575b5085601f83116001146124785750818091612445969760009361246d575b501b916000199060031b1c1916179055612bb0565b907f9b3089e7af95b8d43fdceb16eb9cbf620a0cb486e1a291b15121a44e0f69127a600080a3005b860151925088612430565b601f929192198216968460005281600020916000905b8982106124ae575050826124459798106105be575050811b019055612bb0565b808684958294958b0151815501940192019061248e565b6124ef908460005287600020601f850160051c81019189861061031f57601f0160051c01906129fd565b86612412565b3461033f5761044a61250636612852565b9161251961251484336130b0565b612fc3565b6131c4565b3461033f57604036600319011261033f57612537612826565b602435906001600160a01b03808061254e85612f62565b1692169180831461264957803314908115612624575b50156125b957600083815260046020526040902080546001600160a01b0319168317905561259183612f62565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b60405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608490fd5b9050600052600560205260406000203360005260205260ff6040600020541684612564565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b3461033f57602036600319011261033f576020611e84600435612f85565b3461033f57600036600319011261033f57604051600080546126d7816129c3565b80845290600190818116908115611a75575060011461270057610a1d84611a08818603826128bd565b600080805292507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b828410612741575050508101602001611a08826119f8565b80546020858701810191909152909301928101612729565b3461033f57602036600319011261033f576004359063ffffffff60e01b821680920361033f57602091637965db0b60e01b811490811561279b575b5015158152f35b6380ac58cd60e01b8114915081156127cd575b81156127bc575b5083612794565b6301ffc9a760e01b149050836127b5565b635b5e139f60e01b811491506127ae565b60005b8381106127f15750506000910152565b81810151838201526020016127e1565b9060209161281a815180928185528580860191016127de565b601f01601f1916010190565b600435906001600160a01b038216820361033f57565b602435906001600160a01b038216820361033f57565b606090600319011261033f576001600160a01b0390600435828116810361033f5791602435908116810361033f579060443590565b604081019081106001600160401b0382111761032957604052565b602081019081106001600160401b0382111761032957604052565b90601f801991011681019081106001600160401b0382111761032957604052565b6001600160401b03811161032957601f01601f191660200190565b929192612905826128de565b9161291360405193846128bd565b82948184528183011161033f578281602093846000960137010152565b9080601f8301121561033f5781602061294b933591016128f9565b90565b90604060031983011261033f5760043591602435906001600160401b03821161033f5761294b91600401612930565b606060031982011261033f57600435916001600160401b0360243581811161033f57836129ac91600401612930565b9260443591821161033f5761294b91600401612930565b90600182811c921680156129f3575b60208310146129dd57565b634e487b7160e01b600052602260045260246000fd5b91607f16916129d2565b818110612a08575050565b600081556001016129fd565b15612a1b57565b606460405162461bcd60e51b815260206004820152602060248201527f466c65656b4552433732313a206d75737420626520746f6b656e206f776e65726044820152fd5b600092918154612a6e816129c3565b92600191808316908115612ac75750600114612a8b575b50505050565b90919293945060005260209081600020906000915b858310612ab65750505050019038808080612a85565b805485840152918301918101612aa0565b60ff1916845250505081151590910201915038808080612a85565b60405190612aef82612887565b600a82526921a7a72a2927a62622a960b11b6020830152565b612b4d60466040518093602082019565544f4b454e5f60d01b8752612b378151809260206026870191016127de565b82019060268201520360268101845201826128bd565b51902090565b15612b5a57565b60405162461bcd60e51b815260206004820152602860248201527f466c65656b416363657373436f6e74726f6c3a206d757374206861766520746f6044820152676b656e20726f6c6560c01b6064820152608490fd5b612bc8906020604051928284809451938492016127de565b810103902090565b612bda81546129c3565b9081612be4575050565b81601f60009311600114612bf6575055565b81835260208320612c1291601f0160051c8101906001016129fd565b8160208120915555565b60009080825260209060068252604092838120338252835260ff848220541615612c465750505050565b612c4f336135f5565b91845190608082018281106001600160401b03821117612e1257865260428252848201926060368537825115612dfe5760308453825190600191821015612dfe5790607860218501536041915b818311612d9057505050612d4e576048612d4a938693612d2e93612d1f98519889937f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008a860152612cf6815180928c6037890191016127de565b8401917001034b99036b4b9b9b4b733903937b6329607d1b6037840152518093868401906127de565b010360288101875201856128bd565b5192839262461bcd60e51b845260048401526024830190612801565b0390fd5b60648486519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f81166010811015612dea576f181899199a1a9b1b9c1cb0b131b232b360811b901a612dc085876135ce565b5360041c928015612dd657600019019190612c9c565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b84526041600452602484fd5b906000918083526006602052604083209160018060a01b03169182845260205260ff60408420541615612e5857505050565b80835260066020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4565b906000918083526006602052604083209160018060a01b03169182845260205260ff604084205416612ed157505050565b8083526006602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4565b15612f1d57565b60405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606490fd5b6000908152600260205260409020546001600160a01b031661294b811515612f16565b600081815260026020526040902054612fa8906001600160a01b03161515612f16565b6000908152600460205260409020546001600160a01b031690565b15612fca57565b60405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608490fd5b9061304993929161303961251484336130b0565b6130448383836131c4565b6132da565b1561305057565b60405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608490fd5b906001600160a01b0380806130c484612f62565b169316918383149384156130f7575b5083156130e1575b50505090565b6130ed91929350612f85565b16143880806130db565b909350600052600560205260406000208260005260205260ff6040600020541692386130d3565b1561312557565b60405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606490fd5b1561317157565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b906131ec916131d284612f62565b6001600160a01b039391841692849290918316841461316a565b1691821561328957816132099161320286612f62565b161461316a565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60008481526004602052604081206bffffffffffffffffffffffff60a01b9081815416905583825260036020526040822060001981540190558482526040822060018154019055858252600260205284604083209182541617905580a4565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b9293600093909291803b1561343b579484916133349660405180948193630a85bd0160e11b9788845233600485015260018060a01b0380921660248501526044840152608060648401528260209b8c976084830190612801565b0393165af18491816133f7575b506133e6575050503d6000146133de573d61335b816128de565b9061336960405192836128bd565b81528091833d92013e5b805191826133db5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608490fd5b01fd5b506060613373565b6001600160e01b0319161492509050565b9091508581813d8311613434575b61340f81836128bd565b8101031261343057516001600160e01b031981168103613430579038613341565b8480fd5b503d613405565b505050915050600190565b90613450826128de565b61345d60405191826128bd565b828152809261346e601f19916128de565b0190602036910137565b8051156135ba57604051606081018181106001600160401b0382111761032957604052604081527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208201527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f604082015281516002928382018092116119a7576003918290046001600160fe1b03811681036119a75761351d908594951b613446565b936020850193829183518401925b83811061356957505050505106806001146135565760021461354b575090565b603d90600019015390565b50603d9081600019820153600119015390565b85600491979293949701918251600190603f9082828260121c16880101518453828282600c1c16880101518385015382828260061c168801015188850153168501015187820153019592919061352b565b506040516135c7816128a2565b6000815290565b9081518110156135df570160200190565b634e487b7160e01b600052603260045260246000fd5b60405190606082018281106001600160401b0382111761032957604052602a82526020820160403682378251156135df576030905381516001908110156135df57607860218401536029905b8082116136955750506136515790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f811660108110156136ee576f181899199a1a9b1b9c1cb0b131b232b360811b901a6136c484866135ce565b5360041c9180156136d9576000190190613641565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fdfea26469706673582212203dba85c3f8a5ea44ed4e11e06a0ce04d8f24a1b12f7e59a91b9900f3329f942364736f6c63430008110033", "sourceMap": "256:7023:1:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;;;-1:-1:-1;;;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;256:7023:1;;;;;;;;;;;;;;242:34:0;256:7023:1;;;;4478:6:16;256:7023:1;;;;;;;4478:22:16;256:7023:1;;;;;;7185:22:16;256:7023:1;7234:52:16;;;;;256:7023:1;;;519:10:0;256:7023:1;;;;;;;;;;7543:23:16;7539:149;;256:7023:1;;;;;;;;;;7539:149:16;256:7023:1;;;4478:6:16;256:7023:1;;;;;519:10:0;;256:7023:1;;;;;;;;;;;;;;;519:10:0;;7637:40:16;519:10:0;7637:40:16;;;7539:149;;;;;;256:7023:1;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;-1:-1:-1;256:7023:1;;-1:-1:-1;;256:7023:1;;;;;;;;;;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;;;-1:-1:-1;256:7023:1;;;;;-1:-1:-1;256:7023:1;;-1:-1:-1;256:7023:1;;;;;;;;;-1:-1:-1;;256:7023:1;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;256:7023:1;;;;;;;;-1:-1:-1;256:7023:1;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146127595750806306fdde03146126b6578063081812fc14612698578063095ea7b31461251e57806323b872dd146124f5578063246a908b14612379578063248a9ca31461234a5780632f2ff15d1461231057806336568abe1461227e5780633806f1521461200957806342842e0e14611fe157806342966c6814611e965780636352211e14611e6657806364140ec014611cf357806370a0823114611c5c57806378278cca14611ae957806391d1485414611a9c57806395d89b41146119bd578063987c26fd146116a357806398b7079314611668578063a217fddf1461164c578063a22cb4651461157a578063b543be1214610b34578063b88d4fde14610ad5578063befaa6a314610ab3578063c87b56dd1461061f578063cdb0e89e1461048b578063d547741f1461044c578063dcd78186146103d5578063e46f29c81461039a578063e985e9c5146103445763f93151771461017f57600080fd5b3461033f5761018d3661294e565b9061019f610199612ae2565b82612b08565b6000526020916006835260406000203360005283526101c560ff60406000205416612b53565b6000828152600260205260409020546101e8906001600160a01b03161515612f16565b816000526008835260036040600020018151936001600160401b0385116103295761021382546129c3565b601f81116102ee575b5080601f8611600114610284575093806102519495600091610279575b508160011b916000199060031b1c1916179055612bb0565b907f9f284fd257fb85bc33901e673c078261b0222fbcc4b52c74784c9566808e3cfc600080a3005b905083015138610239565b90601f1986168360005282600020926000905b8282106102d65750509186916102519697600194106102bd575b5050811b019055612bb0565b85015160001960f88460031b161c1916905538806102b1565b80600185968294968a01518155019501930190610297565b610319908360005282600020601f880160051c81019184891061031f575b601f0160051c01906129fd565b3861021c565b909150819061030c565b634e487b7160e01b600052604160045260246000fd5b600080fd5b3461033f57604036600319011261033f5761035d612826565b61036561283c565b9060018060a01b03809116600052600560205260406000209116600052602052602060ff604060002054166040519015158152f35b3461033f57600036600319011261033f5760206040517f54812023c8fe13756580f3420840aeb566f69714bea27346e22e4c654756d77e8152f35b3461033f57604036600319011261033f5761044a6004356104456103f761283c565b916104146001600160a01b0361040c83612f62565b163314612a14565b600081815260026020526040902054610437906001600160a01b03161515612f16565b61043f612ae2565b90612b08565b612e26565b005b3461033f57604036600319011261033f5761044a60043561046b61283c565b90806000526006602052610486600160406000200154612c1c565b612ea0565b3461033f576104993661294e565b906104a5610199612ae2565b6000526020916006835260406000203360005283526104cb60ff60406000205416612b53565b6000828152600260205260409020546104ee906001600160a01b03161515612f16565b816000526008835260406000208151936001600160401b0385116103295761051682546129c3565b601f81116105ef575b5080601f861160011461058657509380610553949560009161057b57508160011b916000199060031b1c1916179055612bb0565b907fabf44020991f188f6b302a14e4b7a3dc94de10ed2140a6c03e16f4213d11b1c9600080a3005b905083015186610239565b90601f1986168360005282600020926000905b8282106105d75750509186916105539697600194106105be575050811b019055612bb0565b85015160001960f88460031b161c1916905586806102b1565b80600185968294968a01518155019501930190610599565b610619908360005282600020601f880160051c81019184891061031f57601f0160051c01906129fd565b8561051f565b3461033f5760208060031936011261033f5760043560008181526002602052604090205490919061065a906001600160a01b03161515612f16565b61066382612f62565b600092835260088252604090922091610684906001600160a01b03166135f5565b60058301546000818152600685018452604081206001958694938583019190807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008181811015610aa5575b5050886d04ee2d6d415b85acef810000000080841015610a97575b5050662386f26fc1000080831015610a88575b506305f5e10080831015610a79575b5061271080831015610a6a575b506064821015610a5a575b600a978880931015610a50575b6021610739828901613446565b97880101905b610a21575b5050604051607b60f81b8982015267113730b6b2911d1160c11b60218201529889969091506107766029880184612a5f565b61088b60f21b8082526e113232b9b1b934b83a34b7b7111d1160891b6002830152926107a791601101908501612a5f565b828152681137bbb732b9111d1160b91b60028201528151916107d1908390600b8401908d016127de565b0181600b8201526f1132bc3a32b93730b62fbab936111d1160811b600d820152601d01600383019061080291612a5f565b818152681134b6b0b3b2911d1160b91b6002820152600b01600283019061082891612a5f565b9081526e2261747472696275746573223a205b60881b60028201527f7b2274726169745f74797065223a2022454e53222c202276616c7565223a2200601182015261087b91603090910190600401612a5f565b62089f4b60ea1b8082527f7b2274726169745f74797065223a2022436f6d6d69742048617368222c20227660038301526630b63ab2911d1160c91b6023830152926108c991602a0190612a5f565b828152600381017f7b2274726169745f74797065223a20225265706f7369746f7279222c20227661905265363ab2911d1160d11b602382015260290161090e91612a5f565b9081527f7b2274726169745f74797065223a202256657273696f6e222c202276616c7565600382015262111d1160e91b6023820152815191610958908390602684019088016127de565b0161227d60f01b602682015260288101605d60f81b905260298101607d60f81b9052039081018352602a0161098d90836128bd565b8060405161099a81612887565b601d8152818101937f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000085526109ce90613478565b6040519485925190818585016109e3926127de565b820181519182858084019201916109f9926127de565b010380845201610a0990836128bd565b6040519181839283528201610a1d91612801565b0390f35b600019019082906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304908a8261073f5750610744565b909501948961072c565b949060646002910491019461071f565b6004919692049101948a610714565b6008919692049101948a610707565b6010919692049101948a6106f8565b96019590910490888b6106e5565b604097500491508a806106ca565b3461033f57604036600319011261033f5761044a6004356104866103f761283c565b3461033f57608036600319011261033f57610aee612826565b610af661283c565b606435916001600160401b03831161033f573660238401121561033f57610b2a61044a9336906024816004013591016128f9565b9160443591613025565b61010036600319011261033f57610b49612826565b6024356001600160401b03811161033f57610b68903690600401612930565b906044356001600160401b03811161033f57610b88903690600401612930565b906064356001600160401b03811161033f57610ba8903690600401612930565b926084356001600160401b03811161033f57610bc8903690600401612930565b60a4356001600160401b03811161033f57610be7903690600401612930565b9060c4356001600160401b03811161033f57610c07903690600401612930565b9560e4356001600160401b03811161033f57610c27903690600401612930565b3360009081527f6ba1fb09f226a75e067af9a8d207c51e8b8b2c4d25e3ce897223f4dfedce79fd602052604090205490969060ff161561151957600754956001600160a01b038116156114d557600087815260026020526040902054610d6c9190610c9e906001600160a01b031615155b1561311e565b600088815260026020526040902054610cc1906001600160a01b03161515610c98565b6001600160a01b0381166000818152600360209081526040808320805460010190558b83526002909152812080546001600160a01b031916831790558991907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4610d386001600160a01b0361040c8a612f62565b600088815260026020526040902054610d5b906001600160a01b03161515612f16565b610445610d66612ae2565b89612b08565b6001600754016007558560005260086020526040600020948051906001600160401b038211610329578190610da188546129c3565b601f81116114a3575b50602090601f83116001146114375760009261142c575b50508160011b916000199060031b1c19161785555b8051906001600160401b038211610329578190610df660018801546129c3565b601f81116113f7575b50602090601f83116001146113855760009261137a575b50508160011b916000199060031b1c19161760018501555b8051906001600160401b038211610329578190610e4e60028701546129c3565b601f8111611345575b50602090601f83116001146112d3576000926112c8575b50508160011b916000199060031b1c19161760028401555b8051906001600160401b038211610329578190610ea660038601546129c3565b601f8111611293575b50602090601f831160011461122157600092611216575b50508160011b916000199060031b1c19161760038301555b8051906001600160401b03821161032957610efc60048401546129c3565b601f81116111e1575b50602090601f831160011461116e57600693929160009183611163575b50508160011b916000199060031b1c19161760048201555b6000600582015560405194610f4e86612887565b8552602085019384526000805201602052604060002092519283516001600160401b03811161032957610f8182546129c3565b601f8111611131575b506020601f82116001146110c757819060019495966000926110bc575b5050600019600383901b1c191690831b1781555b019151908151926001600160401b03841161032957602093610fdd82546129c3565b601f811161108c575b508493601f821160011461102957938192939460009261101e575b50508160011b916000199060031b1c19161790555b604051908152f35b015190508580611001565b601f1982169483600052866000209160005b87811061107557508360019596971061105c575b505050811b019055611016565b015160001960f88460031b161c1916905585808061104f565b91928860018192868501518155019401920161103b565b6110b6908360005286600020601f840160051c81019188851061031f57601f0160051c01906129fd565b85610fe6565b015190508680610fa7565b601f198216958360005260206000209660005b8181106111195750916001959697918487959410611100575b505050811b018155610fbb565b015160001960f88460031b161c191690558680806110f3565b838301518955600190980197602093840193016110da565b61115d90836000526020600020601f840160051c8101916020851061031f57601f0160051c01906129fd565b85610f8a565b015190508780610f22565b906004840160005260206000209160005b601f19851681106111c9575091839160019360069695601f198116106111b0575b505050811b016004820155610f3a565b015160001960f88460031b161c191690558780806111a0565b9192602060018192868501518155019401920161117f565b61121090600485016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129fd565b86610f05565b015190508780610ec6565b9250600385016000526020600020906000935b601f1984168510611278576001945083601f1981161061125f575b505050811b016003830155610ede565b015160001960f88460031b161c1916905587808061124f565b81810151835560209485019460019093019290910190611234565b6112c290600387016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129fd565b88610eaf565b015190508880610e6e565b9250600286016000526020600020906000935b601f198416851061132a576001945083601f19811610611311575b505050811b016002840155610e86565b015160001960f88460031b161c19169055888080611301565b818101518355602094850194600190930192909101906112e6565b61137490600288016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129fd565b89610e57565b015190508980610e16565b9250600187016000526020600020906000935b601f19841685106113dc576001945083601f198116106113c3575b505050811b016001850155610e2e565b015160001960f88460031b161c191690558980806113b3565b81810151835560209485019460019093019290910190611398565b61142690600189016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129fd565b8a610dff565b015190508a80610dc1565b9250876000526020600020906000935b601f1984168510611488576001945083601f1981161061146f575b505050811b018555610dd6565b015160001960f88460031b161c191690558a8080611462565b81810151835560209485019460019093019290910190611447565b6114cf90896000526020600020601f850160051c8101916020861061031f57601f0160051c01906129fd565b8b610daa565b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b60405162461bcd60e51b815260206004820152603360248201527f466c65656b416363657373436f6e74726f6c3a206d757374206861766520636f6044820152726c6c656374696f6e206f776e657220726f6c6560681b6064820152608490fd5b3461033f57604036600319011261033f57611593612826565b6024359081151580920361033f576001600160a01b03169033821461160757336000526005602052604060002082600052602052604060002060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b3461033f57600036600319011261033f57602060405160008152f35b3461033f57600036600319011261033f5760206040517fcac50f86c292f6863f130b9e1133a5f875e8e957fed41745b8fa2498550cbdfc8152f35b6116ac3661297d565b91906116c26001600160a01b0361040c84612f62565b6000828152600260205260409020546116e5906001600160a01b03161515612f16565b6116f66116f0612ae2565b83612b08565b60005260209260068452604060002033600052845261171c60ff60406000205416612b53565b60008381526002602052604090205461173f906001600160a01b03161515612f16565b60405161174b81612887565b82815284810191825283600052600885526006604060002001600560406000200190815490600019928383146119a757600180930180915560005287526040600020925180516001600160401b03948582116103295783916117ad82546129c3565b93601f948c868211611978575b50508b90858311600114611912576000919083611907575b50508682851b9260031b1c19161781555b019451978851948511610329576117fa86546129c3565b8281116118cf575b508091851160011461186657508392918391611833989960009561185b575b50501b9260031b1c1916179055612bb0565b907ff0cd0ce9d5882a10e2780d2d9c805c18e7536b9b2c6412f7bfb7f163656dd0f6600080a3005b015193508980611821565b91939290601f198416988660005283600020936000905b8b82106118b857505084611833999a106118a0575b50505050811b019055612bb0565b01519060f88460031b161c1916905586808080611892565b80888597829496860151815501960193019061187d565b6118f89087600052826000208480890160051c820192858a106118fe575b0160051c01906129fd565b89611802565b925081926118ed565b015190508c806117d2565b60008481528d8120929190601f198516908f5b82821061195f5750509084879594939210611948575b505050811b0181556117e3565b01518860f88460031b161c191690558c808061193b565b8484015186558a98909501949384019390810190611925565b6119a0918560005287826000209181870160051c83019387106118fe570160051c01906129fd565b8c8c6117ba565b634e487b7160e01b600052601160045260246000fd5b3461033f57600036600319011261033f57604051600060018054906119e1826129c3565b80855291818116908115611a755750600114611a1c575b610a1d84611a08818603826128bd565b604051918291602083526020830190612801565b600081815292507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b828410611a5d575050508101602001611a08826119f8565b80546020858701810191909152909301928101611a45565b60ff191660208087019190915292151560051b85019092019250611a0891508390506119f8565b3461033f57604036600319011261033f57611ab561283c565b600435600052600660205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461033f57611af73661294e565b90611b03610199612ae2565b600052602091600683526040600020336000528352611b2960ff60406000205416612b53565b600082815260026020526040902054611b4c906001600160a01b03161515612f16565b816000526008835260046040600020018151936001600160401b03851161032957611b7782546129c3565b601f8111611c2c575b5080601f8611600114611bdc57509380611bb4949560009161057b57508160011b916000199060031b1c1916179055612bb0565b907fc1b5a2141fc60537be795a8771f5e8c80188922acb5399a6e463ea95aa852f31600080a3005b90601f1986168360005282600020926000905b828210611c14575050918691611bb49697600194106105be575050811b019055612bb0565b80600185968294968a01518155019501930190611bef565b611c56908360005282600020601f880160051c81019184891061031f57601f0160051c01906129fd565b85611b80565b3461033f57602036600319011261033f576001600160a01b03611c7d612826565b168015611c9c5760005260036020526020604060002054604051908152f35b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608490fd5b3461033f57611d013661294e565b90611d0d610199612ae2565b600052602091600683526040600020336000528352611d3360ff60406000205416612b53565b600082815260026020526040902054611d56906001600160a01b03161515612f16565b816000526008835260026040600020018151936001600160401b03851161032957611d8182546129c3565b601f8111611e36575b5080601f8611600114611de657509380611dbe949560009161057b57508160011b916000199060031b1c1916179055612bb0565b907fb041870856ebefdd6a3cb1ac665eb6739281b855c912ff622e814dbf91c96bb6600080a3005b90601f1986168360005282600020926000905b828210611e1e575050918691611dbe9697600194106105be575050811b019055612bb0565b80600185968294968a01518155019501930190611df9565b611e60908360005282600020601f880160051c81019184891061031f57601f0160051c01906129fd565b85611d8a565b3461033f57602036600319011261033f576020611e84600435612f62565b6040516001600160a01b039091168152f35b3461033f5760208060031936011261033f5760043590611eb76116f0612ae2565b600052600681526040600020336000528152611eda60ff60406000205416612b53565b8160006001600160a01b03611efa3382611ef386612f62565b1614612a14565b611f0383612f62565b50611f0d83612f62565b908383526004855260408320916bffffffffffffffffffffffff60a01b92838154169055169081835260038552604083208319815401905583835260028552604083209081541690557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a460088152611f8f6003604060002001546129c3565b611f9557005b600891600052526000600560408220611fad81612bd0565b611fb960018201612bd0565b611fc560028201612bd0565b611fd160038201612bd0565b611fdd60048201612bd0565b0155005b3461033f5761044a611ff236612852565b9060405192612000846128a2565b60008452613025565b3461033f576120173661297d565b91906120246116f0612ae2565b60005260209260068452604060002033600052845261204a60ff60406000205416612b53565b60008381526002602052604090205461206d906001600160a01b03161515612f16565b60405161207981612887565b82815284810191825283600052600885526006604060002001600560406000200190815490600019928383146119a757600180930180915560005287526040600020925180516001600160401b03948582116103295783916120db82546129c3565b93601f948c86821161224f575b50508b908583116001146121e95760009190836121de575b50508682851b9260031b1c19161781555b0194519788519485116103295761212886546129c3565b8281116121b0575b508091851160011461216057508392918391611833989960009561185b5750501b9260031b1c1916179055612bb0565b91939290601f198416988660005283600020936000905b8b821061219957505084611833999a106118a05750505050811b019055612bb0565b808885978294968601518155019601930190612177565b6121d89087600052826000208480890160051c820192858a106118fe570160051c01906129fd565b89612130565b015190508c80612100565b60008481528d8120929190601f198516908f5b828210612236575050908487959493921061221f575b505050811b018155612111565b01518860f88460031b161c191690558c8080612212565b8484015186558a989095019493840193908101906121fc565b612277918560005287826000209181870160051c83019387106118fe570160051c01906129fd565b8c8c6120e8565b3461033f57604036600319011261033f5761229761283c565b336001600160a01b038216036122b35761044a90600435612ea0565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b3461033f57604036600319011261033f5761044a60043561232f61283c565b90806000526006602052610445600160406000200154612c1c565b3461033f57602036600319011261033f5760043560005260066020526020600160406000200154604051908152f35b3461033f576123873661294e565b90612393610199612ae2565b6000526020916006835260406000203360005283526123b960ff60406000205416612b53565b6000828152600260205260409020546123dc906001600160a01b03161515612f16565b8160005260088352600180604060002001908251906001600160401b0382116103295761240983546129c3565b601f81116124c5575b5085601f83116001146124785750818091612445969760009361246d575b501b916000199060031b1c1916179055612bb0565b907f9b3089e7af95b8d43fdceb16eb9cbf620a0cb486e1a291b15121a44e0f69127a600080a3005b860151925088612430565b601f929192198216968460005281600020916000905b8982106124ae575050826124459798106105be575050811b019055612bb0565b808684958294958b0151815501940192019061248e565b6124ef908460005287600020601f850160051c81019189861061031f57601f0160051c01906129fd565b86612412565b3461033f5761044a61250636612852565b9161251961251484336130b0565b612fc3565b6131c4565b3461033f57604036600319011261033f57612537612826565b602435906001600160a01b03808061254e85612f62565b1692169180831461264957803314908115612624575b50156125b957600083815260046020526040902080546001600160a01b0319168317905561259183612f62565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b60405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608490fd5b9050600052600560205260406000203360005260205260ff6040600020541684612564565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b3461033f57602036600319011261033f576020611e84600435612f85565b3461033f57600036600319011261033f57604051600080546126d7816129c3565b80845290600190818116908115611a75575060011461270057610a1d84611a08818603826128bd565b600080805292507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b828410612741575050508101602001611a08826119f8565b80546020858701810191909152909301928101612729565b3461033f57602036600319011261033f576004359063ffffffff60e01b821680920361033f57602091637965db0b60e01b811490811561279b575b5015158152f35b6380ac58cd60e01b8114915081156127cd575b81156127bc575b5083612794565b6301ffc9a760e01b149050836127b5565b635b5e139f60e01b811491506127ae565b60005b8381106127f15750506000910152565b81810151838201526020016127e1565b9060209161281a815180928185528580860191016127de565b601f01601f1916010190565b600435906001600160a01b038216820361033f57565b602435906001600160a01b038216820361033f57565b606090600319011261033f576001600160a01b0390600435828116810361033f5791602435908116810361033f579060443590565b604081019081106001600160401b0382111761032957604052565b602081019081106001600160401b0382111761032957604052565b90601f801991011681019081106001600160401b0382111761032957604052565b6001600160401b03811161032957601f01601f191660200190565b929192612905826128de565b9161291360405193846128bd565b82948184528183011161033f578281602093846000960137010152565b9080601f8301121561033f5781602061294b933591016128f9565b90565b90604060031983011261033f5760043591602435906001600160401b03821161033f5761294b91600401612930565b606060031982011261033f57600435916001600160401b0360243581811161033f57836129ac91600401612930565b9260443591821161033f5761294b91600401612930565b90600182811c921680156129f3575b60208310146129dd57565b634e487b7160e01b600052602260045260246000fd5b91607f16916129d2565b818110612a08575050565b600081556001016129fd565b15612a1b57565b606460405162461bcd60e51b815260206004820152602060248201527f466c65656b4552433732313a206d75737420626520746f6b656e206f776e65726044820152fd5b600092918154612a6e816129c3565b92600191808316908115612ac75750600114612a8b575b50505050565b90919293945060005260209081600020906000915b858310612ab65750505050019038808080612a85565b805485840152918301918101612aa0565b60ff1916845250505081151590910201915038808080612a85565b60405190612aef82612887565b600a82526921a7a72a2927a62622a960b11b6020830152565b612b4d60466040518093602082019565544f4b454e5f60d01b8752612b378151809260206026870191016127de565b82019060268201520360268101845201826128bd565b51902090565b15612b5a57565b60405162461bcd60e51b815260206004820152602860248201527f466c65656b416363657373436f6e74726f6c3a206d757374206861766520746f6044820152676b656e20726f6c6560c01b6064820152608490fd5b612bc8906020604051928284809451938492016127de565b810103902090565b612bda81546129c3565b9081612be4575050565b81601f60009311600114612bf6575055565b81835260208320612c1291601f0160051c8101906001016129fd565b8160208120915555565b60009080825260209060068252604092838120338252835260ff848220541615612c465750505050565b612c4f336135f5565b91845190608082018281106001600160401b03821117612e1257865260428252848201926060368537825115612dfe5760308453825190600191821015612dfe5790607860218501536041915b818311612d9057505050612d4e576048612d4a938693612d2e93612d1f98519889937f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008a860152612cf6815180928c6037890191016127de565b8401917001034b99036b4b9b9b4b733903937b6329607d1b6037840152518093868401906127de565b010360288101875201856128bd565b5192839262461bcd60e51b845260048401526024830190612801565b0390fd5b60648486519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f81166010811015612dea576f181899199a1a9b1b9c1cb0b131b232b360811b901a612dc085876135ce565b5360041c928015612dd657600019019190612c9c565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b84526041600452602484fd5b906000918083526006602052604083209160018060a01b03169182845260205260ff60408420541615612e5857505050565b80835260066020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4565b906000918083526006602052604083209160018060a01b03169182845260205260ff604084205416612ed157505050565b8083526006602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4565b15612f1d57565b60405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606490fd5b6000908152600260205260409020546001600160a01b031661294b811515612f16565b600081815260026020526040902054612fa8906001600160a01b03161515612f16565b6000908152600460205260409020546001600160a01b031690565b15612fca57565b60405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608490fd5b9061304993929161303961251484336130b0565b6130448383836131c4565b6132da565b1561305057565b60405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608490fd5b906001600160a01b0380806130c484612f62565b169316918383149384156130f7575b5083156130e1575b50505090565b6130ed91929350612f85565b16143880806130db565b909350600052600560205260406000208260005260205260ff6040600020541692386130d3565b1561312557565b60405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606490fd5b1561317157565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b906131ec916131d284612f62565b6001600160a01b039391841692849290918316841461316a565b1691821561328957816132099161320286612f62565b161461316a565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60008481526004602052604081206bffffffffffffffffffffffff60a01b9081815416905583825260036020526040822060001981540190558482526040822060018154019055858252600260205284604083209182541617905580a4565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b9293600093909291803b1561343b579484916133349660405180948193630a85bd0160e11b9788845233600485015260018060a01b0380921660248501526044840152608060648401528260209b8c976084830190612801565b0393165af18491816133f7575b506133e6575050503d6000146133de573d61335b816128de565b9061336960405192836128bd565b81528091833d92013e5b805191826133db5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608490fd5b01fd5b506060613373565b6001600160e01b0319161492509050565b9091508581813d8311613434575b61340f81836128bd565b8101031261343057516001600160e01b031981168103613430579038613341565b8480fd5b503d613405565b505050915050600190565b90613450826128de565b61345d60405191826128bd565b828152809261346e601f19916128de565b0190602036910137565b8051156135ba57604051606081018181106001600160401b0382111761032957604052604081527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208201527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f604082015281516002928382018092116119a7576003918290046001600160fe1b03811681036119a75761351d908594951b613446565b936020850193829183518401925b83811061356957505050505106806001146135565760021461354b575090565b603d90600019015390565b50603d9081600019820153600119015390565b85600491979293949701918251600190603f9082828260121c16880101518453828282600c1c16880101518385015382828260061c168801015188850153168501015187820153019592919061352b565b506040516135c7816128a2565b6000815290565b9081518110156135df570160200190565b634e487b7160e01b600052603260045260246000fd5b60405190606082018281106001600160401b0382111761032957604052602a82526020820160403682378251156135df576030905381516001908110156135df57607860218401536029905b8082116136955750506136515790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f811660108110156136ee576f181899199a1a9b1b9c1cb0b131b232b360811b901a6136c484866135ce565b5360041c9180156136d9576000190190613641565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fdfea26469706673582212203dba85c3f8a5ea44ed4e11e06a0ce04d8f24a1b12f7e59a91b9900f3329f942364736f6c63430008110033", "sourceMap": "256:7023:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1146:33:0;256:7023:1;;:::i;:::-;1146:33:0;;:::i;:::-;256:7023:1;;;;3004:6:16;256:7023:1;;;;;1181:10:0;256:7023:1;;;;1116:144:0;256:7023:1;;;;;;1116:144:0;:::i;:::-;-1:-1:-1;256:7023:1;;;6930:7:18;256:7023:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7023:1;7344:31:18;;13539:53;:::i;:::-;256:7023:1;;;5307:5;256:7023;;5307:27;256:7023;;;5307:27;256:7023;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5369:47;256:7023;;;;;;;;;;;;;;;5307:27;256:7023;;;;;;;5369:47;:::i;:::-;;;256:7023;5369:47;;256:7023;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5369:47;256:7023;;;;;;;;;;;;;;;5369:47;:::i;256:7023::-;;;;;;;;5307:27;256:7023;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;4508:18:18;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;345:39:0;256:7023:1;;;;;;;;;-1:-1:-1;;256:7023:1;;;;4524:10;256:7023;;4489:33;256:7023;;:::i;:::-;;1813:109;-1:-1:-1;;;;;1848:16:1;256:7023;1848:16;:::i;:::-;256:7023;1834:10;:30;1813:109;:::i;:::-;-1:-1:-1;256:7023:1;;;6930:7:18;256:7023:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7023:1;7344:31:18;;13539:53;:::i;:::-;256:7023:1;;:::i;:::-;4489:33;;:::i;:::-;4524:10;:::i;:::-;256:7023;;;;;;;-1:-1:-1;;256:7023:1;;;;5360:7:16;256:7023:1;;;;:::i;:::-;;;;;4478:6:16;256:7023:1;;2516:4:16;256:7023:1;;;;4478:22:16;256:7023:1;2516:4:16;:::i;:::-;5360:7;:::i;256:7023:1:-;;;;;;;:::i;:::-;;1146:33:0;256:7023:1;;:::i;1146:33:0:-;256:7023:1;;;;3004:6:16;256:7023:1;;;;;1181:10:0;256:7023:1;;;;1116:144:0;256:7023:1;;;;;;1116:144:0;:::i;:::-;-1:-1:-1;256:7023:1;;;6930:7:18;256:7023:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7023:1;7344:31:18;;13539:53;:::i;:::-;256:7023:1;;;5870:5;256:7023;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5917:33;256:7023;;;;;;;;;;;;;;;;;;;;;;5917:33;:::i;:::-;;;256:7023;5917:33;;256:7023;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5917:33;256:7023;;;;;;;;;;;;;;5917:33;:::i;256:7023::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;256:7023:1;;;6930:7:18;256:7023:1;;;;;;;;13547:16:18;13539:53;;-1:-1:-1;;;;;256:7023:1;7344:31:18;;13539:53;:::i;:::-;3332:16:1;;;:::i;:::-;256:7023;;;;3376:5;256:7023;;;;;;;3590:39;;-1:-1:-1;;;;;256:7023:1;3590:39;:::i;:::-;3922:17;;;256:7023;;;;;3911:10;;;256:7023;;;;;;;;;3922:17;4022:44;;;;3922:17;256:7023;10026:6:29;256:7023:1;10017:15:29;;;;10013:99;;256:7023:1;10138:6:29;;;;10129:15;;;;10125:99;;256:7023:1;10250:6:29;;;10241:15;;;;10237:99;;256:7023:1;10362:5:29;;10353:14;;;;10349:96;;256:7023:1;10471:5:29;;10462:14;;;;10458:96;;256:7023:1;10571:14:29;10580:5;10571:14;;;10567:96;;256:7023:1;10689:5:29;10680:14;;;;;;10676:64;;256:7023:1;699:76:26;595:18;256:7023:1;;;595:18:26;:::i;:::-;627:11;699:76;;;788:280;256:7023:1;;;788:280:26;-1:-1:-1;;256:7023:1;;-1:-1:-1;;;3424:797:1;;;256:7023;-1:-1:-1;;;699:76:26;256:7023:1;;;;;;3424:797;;-1:-1:-1;256:7023:1;;;;;;:::i;:::-;-1:-1:-1;;;256:7023:1;;;-1:-1:-1;;;3726:9:1;256:7023;;;;;;;;;3538:15;;256:7023;:::i;:::-;;;;-1:-1:-1;;;3726:9:1;256:7023;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3673:16;;256:7023;;;;:::i;:::-;;;;;;;3726:9;256:7023;;;;;3726:9;;;256:7023;;;;:::i;:::-;;;;-1:-1:-1;;;3726:9:1;256:7023;;;;;;;;;;;;;;;;3833:7;256:7023;:::i;:::-;-1:-1:-1;;;256:7023:1;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;-1:-1:-1;;;256:7023:1;;3424:797;;;;;;256:7023;3424:797;;;;;:::i;:::-;256:7023;;;;;;:::i;:::-;;;;;;;;;;;4275:24;;;:::i;:::-;256:7023;;;;;;4246:54;;;;;256:7023;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;4246:54;;;;;;;;;:::i;:::-;256:7023;;;;;;;;;;;;;:::i;:::-;;;;788:280:26;-1:-1:-1;;256:7023:1;;;;-1:-1:-1;;;893:93:26;;;;256:7023:1;893:93:26;345:66:23;1003:11:26;;;788:280;1032:21;1048:5;;;10676:64:29;256:7023:1;;;10676:64:29;;;;10567:96;345:66:23;;10580:5:29;3726:9:1;345:66:23;;256:7023:1;;10567:96:29;;;10458;256:7023:1;345:66:23;;;;256:7023:1;;10458:96:29;;;;10349;3376:5:1;345:66:23;;;;256:7023:1;;10349:96:29;;;;10237:99;10319:2;345:66:23;;;;256:7023:1;;10237:99:29;;;;10125;256:7023:1;;;345:66:23;;;;10125:99:29;;;;10013;256:7023:1;;-1:-1:-1;345:66:23;;-1:-1:-1;10013:99:29;;;;256:7023:1;;;;;;-1:-1:-1;;256:7023:1;;;;4762:10;256:7023;;4727:33;256:7023;;:::i;:::-;;;;;;-1:-1:-1;;256:7023:1;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;256:7023:1;;;;;;:::i;:::-;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;:::i;:::-;644:10:0;256:7023:1;;;;;;;;;;;;;;;;;;;2298:9;256:7023;;-1:-1:-1;;;;;256:7023:1;;9170:16:18;256:7023:1;;-1:-1:-1;256:7023:1;;;6930:7:18;256:7023:1;;;;;;4524:10;;9242:16:18;9233:58;;-1:-1:-1;;;;;256:7023:1;7344:31:18;;9242:16;9241:17;9233:58;:::i;:::-;-1:-1:-1;256:7023:1;;;6930:7:18;256:7023:1;;;;;;9437:58:18;;-1:-1:-1;;;;;256:7023:1;7344:31:18;;9446:16;7256:126;9437:58;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;9876:7:18;256:7023:1;;;;;;;-1:-1:-1;;;;;;256:7023:1;;;;;;;;9913:33:18;256:7023:1;;9913:33:18;1813:109:1;-1:-1:-1;;;;;1848:16:1;;;:::i;1813:109::-;-1:-1:-1;256:7023:1;;;6930:7:18;256:7023:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7023:1;7344:31:18;;13539:53;:::i;:::-;4489:33:1;256:7023;;:::i;:::-;4489:33;;:::i;4524:10::-;256:7023;2298:9;256:7023;;2298:9;256:7023;;;;2446:5;256:7023;;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;2495:15;;256:7023;;2495:15;;256:7023;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2495:15;;256:7023;;;;;-1:-1:-1;;;;;256:7023:1;;;;2534:9;;256:7023;9876:7:18;2534:9:1;;256:7023;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9876:7:18;2534:9:1;;256:7023;;;;;-1:-1:-1;;;;;256:7023:1;;;;2561:16;;256:7023;;2561:16;;256:7023;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2561:16;;256:7023;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;2602:7;;256:7023;;:::i;:::-;;;;;;;;;;;;;;;;;3004:6:16;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;2602:7;;256:7023;;;2790:17;;;256:7023;;;;;;;:::i;:::-;;;;2837:34;;256:7023;;;;;;2821:10;256:7023;;;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;256:7023:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2790:17;256:7023;;;;;;;;;;;2790:17;256:7023;;;;:::i;:::-;;;;;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2790:17;256:7023;;;;;;;;;;;2790:17;256:7023;;;;:::i;:::-;;;;;;;;-1:-1:-1;256:7023:1;;;;;2602:7;256:7023;2602:7;;256:7023;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;;;;;;3004:6:16;256:7023:1;;;;;;;;;;;;;;;;;2602:7;;256:7023;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2602:7;256:7023;2602:7;;256:7023;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;256:7023:1;;;;;2561:16;;256:7023;2561:16;;256:7023;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;2561:16;;256:7023;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2561:16;256:7023;2561:16;;256:7023;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;256:7023:1;;;;;2534:9;;9876:7:18;2534:9:1;;256:7023;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;9876:7:18;2534:9:1;;256:7023;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2534:9;9876:7:18;2534:9:1;;256:7023;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;256:7023:1;;;;;2495:15;;256:7023;2495:15;;256:7023;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;2495:15;;256:7023;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2495:15;256:7023;2495:15;;256:7023;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;256:7023:1;;719:10:24;13216:17:18;;256:7023:1;;719:10:24;256:7023:1;;13273:18:18;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13334:41:18;256:7023:1;719:10:24;13334:41:18;;256:7023:1;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;242:34:0;256:7023:1;;;;;;;:::i;:::-;;;1813:109;-1:-1:-1;;;;;1848:16:1;256:7023;1848:16;:::i;1813:109::-;-1:-1:-1;256:7023:1;;;6930:7:18;256:7023:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7023:1;7344:31:18;;13539:53;:::i;:::-;1146:33:0;256:7023:1;;:::i;:::-;1146:33:0;;:::i;:::-;256:7023:1;;;;3004:6:16;256:7023:1;;;;;1834:10;256:7023;;;;1116:144:0;256:7023:1;;;;;;1116:144:0;:::i;:::-;-1:-1:-1;256:7023:1;;;6930:7:18;256:7023:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7023:1;7344:31:18;;13539:53;:::i;:::-;256:7023:1;;;;;:::i;:::-;;;;6826:36;;;256:7023;;;;;;6770:5;256:7023;;3004:6:16;256:7023:1;;;6770:21;6794:28;256:7023;;;6794:28;256:7023;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;6877:31;256:7023;;;;;;;;;;;;;;;;;;;6877:31;:::i;:::-;;;256:7023;6877:31;;256:7023;;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6877:31;256:7023;;;;;;;;;;;;;;;6877:31;:::i;256:7023::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6794:28;256:7023;;;;;;;;;;;6794:28;256:7023;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6794:28;256:7023;;;;;;;;;6794:28;256:7023;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;2721:7:18;256:7023:1;;;;;;:::i;:::-;;;;;;;;;2721:7:18;;;;256:7023:1;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;256:7023:1;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;;;;;;;;;;;;;;-1:-1:-1;256:7023:1;;-1:-1:-1;256:7023:1;;-1:-1:-1;256:7023:1;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;:::i;:::-;;;;;3004:6:16;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1146:33:0;256:7023:1;;:::i;1146:33:0:-;256:7023:1;;;;3004:6:16;256:7023:1;;;;;1181:10:0;256:7023:1;;;;1116:144:0;256:7023:1;;;;;;1116:144:0;:::i;:::-;-1:-1:-1;256:7023:1;;;6930:7:18;256:7023:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7023:1;7344:31:18;;13539:53;:::i;:::-;256:7023:1;;;5604:5;256:7023;;;;;;5604:18;256:7023;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5649:31;256:7023;;;;;;;;;;;;;;;;;;;;;;5649:31;:::i;:::-;;;256:7023;5649:31;;256:7023;;;;;;;;;;;;;;;;;;;;;;;;;;;5649:31;256:7023;;;;;;;;;;;;;;5649:31;:::i;256:7023::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;-1:-1:-1;;;;;256:7023:1;;:::i;:::-;;2028:19:18;;256:7023:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;:::i;:::-;;1146:33:0;256:7023:1;;:::i;1146:33:0:-;256:7023:1;;;;3004:6:16;256:7023:1;;;;;1181:10:0;256:7023:1;;;;1116:144:0;256:7023:1;;;;;;1116:144:0;:::i;:::-;-1:-1:-1;256:7023:1;;;6930:7:18;256:7023:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7023:1;7344:31:18;;13539:53;:::i;:::-;256:7023:1;;;6454:5;256:7023;;6454:20;256:7023;;;6454:20;256:7023;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6503:35;256:7023;;;;;;;;;;;;;;;;;;;;;;6503:35;:::i;:::-;;;256:7023;6503:35;;256:7023;;;;;;;;;;;;;;;;;;;;;;;;;;;6503:35;256:7023;;;;;;;;;;;;;;6503:35;:::i;256:7023::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;1146:33:0;256:7023:1;;:::i;1146:33:0:-;256:7023:1;;3004:6:16;256:7023:1;;;;;1181:10:0;256:7023:1;;;;1116:144:0;256:7023:1;;;;;;1116:144:0;:::i;:::-;256:7023:1;;-1:-1:-1;;;;;7023:109:1;1181:10:0;256:7023:1;7044:16;256:7023;7044:16;:::i;:::-;256:7023;7044:30;7023:109;:::i;:::-;10412:23:18;;;:::i;:::-;;10607;;;:::i;:::-;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10963:7:18;256:7023:1;;;;;;;;;;;10995:36:18;;;;7183:5:1;256:7023;;;;;;;7183:27;256:7023;;:::i;:::-;7173:98;;256:7023;7173:98;7183:5;256:7023;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;10963:7:18;256:7023:1;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;5137:39:18;256:7023:1;;;:::i;:::-;;;;;;;;:::i;:::-;;;;5137:39:18;:::i;256:7023:1:-;;;;;;;:::i;:::-;;;1146:33:0;256:7023:1;;:::i;1146:33:0:-;256:7023:1;;;;3004:6:16;256:7023:1;;;;;1181:10:0;256:7023:1;;;;1116:144:0;256:7023:1;;;;;;1116:144:0;:::i;:::-;-1:-1:-1;256:7023:1;;;6930:7:18;256:7023:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7023:1;7344:31:18;;13539:53;:::i;:::-;256:7023:1;;;;;:::i;:::-;;;;6826:36;;;256:7023;;;;;;6770:5;256:7023;;3004:6:16;256:7023:1;;;6770:21;6794:28;256:7023;;;6794:28;256:7023;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;6877:31;256:7023;;;;;;;;;;;;;;;;;;6877:31;:::i;256:7023::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6877:31;256:7023;;;;;;;;;;;;;;6877:31;:::i;256:7023::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6794:28;256:7023;;;;;;;;;;6794:28;256:7023;;;;:::i;:::-;;;;;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6794:28;256:7023;;;;;;;;;6794:28;256:7023;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;:::i;:::-;719:10:24;-1:-1:-1;;;;;256:7023:1;;6007:23:16;256:7023:1;;6111:7:16;256:7023:1;;;6111:7:16;:::i;256:7023:1:-;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;4933:7:16;256:7023:1;;;;:::i;:::-;;;;;4478:6:16;256:7023:1;;2516:4:16;256:7023:1;;;;4478:22:16;256:7023:1;2516:4:16;:::i;256:7023:1:-;;;;;;-1:-1:-1;;256:7023:1;;;;;;;;4478:6:16;256:7023:1;;;;;;;4478:22:16;256:7023:1;;;;;;;;;;;;;;:::i;:::-;;1146:33:0;256:7023:1;;:::i;1146:33:0:-;256:7023:1;;;;3004:6:16;256:7023:1;;;;;1181:10:0;256:7023:1;;;;1116:144:0;256:7023:1;;;;;;1116:144:0;:::i;:::-;-1:-1:-1;256:7023:1;;;6930:7:18;256:7023:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7023:1;7344:31:18;;13539:53;:::i;:::-;256:7023:1;;;6154:5;256:7023;;6154:26;256:7023;;;;6154:26;256:7023;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;6215:47;256:7023;;;;;;;;;;;;;;;;;;;;;6215:47;:::i;:::-;;;256:7023;6215:47;;256:7023;;;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6215:47;256:7023;;;;;;;;;;;;6215:47;:::i;256:7023::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4923:7:18;256:7023:1;;;:::i;:::-;719:10:24;4793:99:18;4801:41;719:10:24;;4801:41:18;:::i;:::-;4793:99;:::i;:::-;4923:7;:::i;256:7023:1:-;;;;;;-1:-1:-1;;256:7023:1;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;256:7023:1;;3564:23:18;256:7023:1;3564:23:18;:::i;:::-;256:7023:1;;;3605:11:18;;;;256:7023:1;;719:10:24;;3686:21:18;:62;;;;;256:7023:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;256:7023:1;;;;;12895:23:18;256:7023:1;12895:23:18;:::i;:::-;256:7023:1;12886:46:18;256:7023:1;12886:46:18;;256:7023:1;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;3686:62:18;256:7023:1;;;;4508:18:18;256:7023:1;;;;;719:10:24;256:7023:1;;;;;;;;;;3686:62:18;;;256:7023:1;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;256:7023:1;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;256:7023:1;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2714:47:16;;;:87;;;;256:7023:1;;;;;;;2714:87:16;-1:-1:-1;;;1707:40:18;;;-1:-1:-1;1707:104:18;;;;2714:87:16;1707:156:18;;;;2714:87:16;;;;;1707:156:18;-1:-1:-1;;;937:40:27;;-1:-1:-1;1707:156:18;;;:104;-1:-1:-1;;;1763:48:18;;;-1:-1:-1;1707:104:18;;256:7023:1;;;;;;;;-1:-1:-1;;256:7023:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;256:7023:1;;;;:::o;:::-;;;;-1:-1:-1;;;;;256:7023:1;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;256:7023:1;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;:::o;:::-;-1:-1:-1;;;;;256:7023:1;;;;;;-1:-1:-1;;256:7023:1;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;256:7023:1;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;-1:-1:-1;;256:7023:1;;;;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;:::i;:::-;;-1:-1:-1;;256:7023:1;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;256:7023:1;;;;-1:-1:-1;256:7023:1;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7023:1;;;-1:-1:-1;;;256:7023:1;;;;;;;;-1:-1:-1;256:7023:1;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;256:7023:1;;;;:::o;1288:192:0:-;1430:41;;256:7023:1;;1430:41:0;;;;;256:7023:1;-1:-1:-1;;;256:7023:1;;;;;;;1430:41:0;256:7023:1;;;;;;:::i;:::-;;;;;;;;1430:41:0;256:7023:1;1430:41:0;;;;;;;:::i;:::-;256:7023:1;1420:52:0;;1288:192;:::o;256:7023:1:-;;;;:::o;:::-;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;3334:103:16:-;-1:-1:-1;256:7023:1;;;;;;3004:6:16;256:7023:1;;;;;;;719:10:24;256:7023:1;;;;;;;;;;3805:23:16;3801:390;;3334:103;;;;:::o;3801:390::-;2192:52:26;719:10:24;2192:52:26;:::i;:::-;4088:38:16;256:7023:1;;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;;;345:66:23;256:7023:1;345:66:23;;;256:7023:1;;;;;1670:15:26;;;256:7023:1;;;;;;;;;;;1695:15:26;256:7023:1;;;1695:15:26;256:7023:1;1720:128:26;1753:5;;;;;;1865:10;;;246:18;;256:7023:1;;;;;3896:252:16;256:7023:1;;;;3896:252:16;;;256:7023:1;3896:252:16;;;256:7023:1;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;:::i;:::-;;3896:252:16;;;;;;;;;:::i;:::-;256:7023:1;;;;;;;3844:336:16;;1836:1:26;3844:336:16;;256:7023:1;;;;;;:::i;:::-;3844:336:16;;;246:18:26;;256:7023:1;;;;;;;246:18:26;;;1836:1;246:18;;;;;;256:7023:1;246:18:26;256:7023:1;;;246:18:26;;1760:3;1800:11;;;1808:3;1800:11;;1791:21;;;;;;-1:-1:-1;;;1791:21:26;;1779:33;;;;:::i;:::-;;1836:1;256:7023:1;1760:3:26;256:7023:1;;;;-1:-1:-1;;256:7023:1;;1725:26:26;;;256:7023:1;-1:-1:-1;;;256:7023:1;;;1836:1:26;256:7023:1;;;;1791:21:26;-1:-1:-1;;;256:7023:1;;;1836:1:26;256:7023:1;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;;7461:233:16;;-1:-1:-1;256:7023:1;;;;3004:6:16;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;7543:23:16;7539:149;;7461:233;;;:::o;7539:149::-;256:7023:1;;;3004:6:16;256:7023:1;;;;;;;;;;;;;;;;;;;;;;7637:40:16;719:10:24;7637:40:16;;;7461:233::o;7865:234::-;;-1:-1:-1;256:7023:1;;;;3004:6:16;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;7944:149:16;;7865:234;;;:::o;7944:149::-;256:7023:1;;;3004:6:16;256:7023:1;;;;;;;;;;;;;;;;;;;;8042:40:16;719:10:24;8042:40:16;;;7865:234::o;256:7023:1:-;;;;:::o;:::-;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;;;;2190:219:18;-1:-1:-1;256:7023:1;;;6930:7:18;256:7023:1;;;;;;-1:-1:-1;;;;;256:7023:1;2324:56:18;2332:19;;;2324:56;:::i;3935:167::-;-1:-1:-1;256:7023:1;;;6930:7:18;256:7023:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7023:1;7344:31:18;;13539:53;:::i;:::-;-1:-1:-1;256:7023:1;;;4071:15:18;256:7023:1;;;;;;-1:-1:-1;;;;;256:7023:1;;3935:167:18:o;256:7023:1:-;;;;:::o;:::-;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;5249:314:18;;6620:47;5249:314;;;5409:99;5417:41;719:10:24;;5417:41:18;:::i;5409:99::-;6594:7;;;;;:::i;:::-;6620:47;:::i;:::-;256:7023:1;;;5249:314:18:o;256:7023:1:-;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;3844:336:16;7540:261:18;;-1:-1:-1;;;;;256:7023:1;;7665:23:18;7540:261;7665:23;:::i;:::-;256:7023:1;;;7706:16:18;;;;:52;;;;;7540:261;7706:87;;;;;7540:261;7698:96;;;7540:261;:::o;7706:87::-;7762:20;;;;;;:::i;:::-;256:7023:1;7762:31:18;7706:87;;;;;:52;256:7023:1;;;-1:-1:-1;256:7023:1;4508:18:18;256:7023:1;;;-1:-1:-1;256:7023:1;;-1:-1:-1;256:7023:1;;;;;-1:-1:-1;256:7023:1;;;7706:52:18;;;;256:7023:1;;;;:::o;:::-;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;11423:1233:18;;11542:81;11423:1233;11550:23;;;:::i;:::-;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;11550:31:18;;11542:81;:::i;:::-;256:7023:1;11641:16:18;;;256:7023:1;;11851:23:18;11843:81;11851:23;;;;:::i;:::-;256:7023:1;11851:31:18;11843:81;:::i;:::-;12570:27;11655:1;256:7023:1;;;11993:15:18;256:7023:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12533:7:18;256:7023:1;;;;;;;;;;;;;12570:27:18;;11423:1233::o;256:7023:1:-;;;-1:-1:-1;;;256:7023:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;;14151:831:18;;;256:7023:1;;14151:831:18;;;1465:19:22;;:23;:19;;256:7023:1;;;;;;;;;;;;;;14355:71:18;;;;719:10:24;14355:71:18;;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;14355:71:18;;256:7023:1;;;;;;;;:::i;:::-;14355:71:18;256:7023:1;;14355:71:18;;;;;;;14316:660;-1:-1:-1;14351:573:18;;14543:381;;;256:7023:1;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;14593:18:18;;;256:7023:1;;-1:-1:-1;;;14635:60:18;;256:7023:1;14355:71:18;14635:60;;256:7023:1;;;;;;;;;;;-1:-1:-1;;;256:7023:1;;;;;;3844:336:16;14589:321:18;14797:95;;256:7023:1;;;;;14351:573:18;-1:-1:-1;;;;;;256:7023:1;14476:51:18;;-1:-1:-1;256:7023:1;-1:-1:-1;14469:58:18:o;14355:71::-;;;;;;;;;;;;;;;;;:::i;:::-;;;256:7023:1;;;;;-1:-1:-1;;;;;;256:7023:1;;;;;;14355:71:18;;;;256:7023:1;;;;14355:71:18;;;;;14316:660;14954:11;;;;;;14961:4;14954:11;:::o;345:66:23:-;;256:7023:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;345:66:23;256:7023:1;345:66:23;256:7023:1;;345:66:23;;:::i;:::-;;;;;;;;:::o;505:3026::-;256:7023:1;;795:16:23;791:31;;256:7023:1;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;;;;;;;;;;;;1357:1:23;256:7023:1;;;;;;;;;1362:1:23;;345:66;;;-1:-1:-1;;;;;256:7023:1;;;;;;1326:39:23;256:7023:1;;;;;1326:39:23;:::i;:::-;1419:2082;256:7023:1;1419:2082:23;;;;;;;;;;;;;;;;;;;;;;1362:1;1419:2082;1362:1;;;1419:2082;;;;3511:13;505:3026;:::o;1419:2082::-;;;-1:-1:-1;;1419:2082:23;;505:3026;:::o;1419:2082::-;-1:-1:-1;1419:2082:23;;;-1:-1:-1;;1419:2082:23;;;-1:-1:-1;;1419:2082:23;;505:3026;:::o;1419:2082::-;;1337:1;1419:2082;;;;;;;;;;256:7023:1;1419:2082:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:31;256:7023:1;;;;;;:::i;:::-;810:1:23;256:7023:1;;813:9:23;:::o;256:7023:1:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;1513:437:26;256:7023:1;;;;;;;;;-1:-1:-1;;;;;256:7023:1;;;;;;;;;;;;;;345:66:23;;;256:7023:1;;;;;1670:15:26;;;256:7023:1;;;;;;;;;1695:15:26;256:7023:1;;;1695:15:26;256:7023:1;1720:128:26;1753:5;;;;;;1865:10;;246:18;;1513:437;:::o;246:18::-;;256:7023:1;;;;;246:18:26;;256:7023:1;1836:1:26;246:18;;;256:7023:1;246:18:26;;;256:7023:1;246:18:26;256:7023:1;;;246:18:26;;1760:3;1800:11;;1808:3;1800:11;;1791:21;;;;;;-1:-1:-1;;;1791:21:26;;1779:33;;;;:::i;:::-;;1836:1;256:7023:1;1760:3:26;256:7023:1;;;;-1:-1:-1;;256:7023:1;;1725:26:26;;256:7023:1;;;;;;;;;1836:1:26;256:7023:1;;1791:21:26;256:7023:1;;;;;;;;1836:1:26;256:7023:1;", "linkReferences": {} }, "methodIdentifiers": { "COLLECTION_CONTROLLER_ROLE()": "e46f29c8", "COLLECTION_OWNER_ROLE()": "98b70793", "DEFAULT_ADMIN_ROLE()": "a217fddf", "addTokenController(uint256,address)": "dcd78186", "approve(address,uint256)": "095ea7b3", "balanceOf(address)": "70a08231", "burn(uint256)": "42966c68", "getApproved(uint256)": "081812fc", "getRoleAdmin(bytes32)": "248a9ca3", "grantRole(bytes32,address)": "2f2ff15d", "hasRole(bytes32,address)": "91d14854", "isApprovedForAll(address,address)": "e985e9c5", "mint(address,string,string,string,string,string,string,string)": "b543be12", "name()": "06fdde03", "ownerOf(uint256)": "6352211e", "removeTokenController(uint256,address)": "befaa6a3", "renounceRole(bytes32,address)": "36568abe", "revokeRole(bytes32,address)": "d547741f", "safeTransferFrom(address,address,uint256)": "42842e0e", "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", "setApprovalForAll(address,bool)": "a22cb465", "setTokenBuild(uint256,string,string)": "3806f152", "setTokenDescription(uint256,string)": "246a908b", "setTokenENS(uint256,string)": "78278cca", "setTokenExternalURL(uint256,string)": "f9315177", "setTokenImage(uint256,string)": "64140ec0", "setTokenName(uint256,string)": "cdb0e89e", "supportsInterface(bytes4)": "01ffc9a7", "symbol()": "95d89b41", "tokenURI(uint256)": "c87b56dd", "transferFrom(address,address,uint256)": "23b872dd", "upgradeTokenBuild(uint256,string,string)": "987c26fd" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"token\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"commit_hash\",\"type\":\"string\"}],\"name\":\"NewBuild\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"token\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"NewTokenDescription\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"token\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"ENS\",\"type\":\"string\"}],\"name\":\"NewTokenENS\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"token\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"external_url\",\"type\":\"string\"}],\"name\":\"NewTokenExternalURL\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"token\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"}],\"name\":\"NewTokenImage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"token\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NewTokenName\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"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\":[],\"name\":\"COLLECTION_CONTROLLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COLLECTION_OWNER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"name\":\"addTokenController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"external_url\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ENS\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"commit_hash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"git_repository\",\"type\":\"string\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"name\":\"removeTokenController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_commit_hash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_git_repository\",\"type\":\"string\"}],\"name\":\"setTokenBuild\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenDescription\",\"type\":\"string\"}],\"name\":\"setTokenDescription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenENS\",\"type\":\"string\"}],\"name\":\"setTokenENS\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenExternalURL\",\"type\":\"string\"}],\"name\":\"setTokenExternalURL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenImage\",\"type\":\"string\"}],\"name\":\"setTokenImage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenName\",\"type\":\"string\"}],\"name\":\"setTokenName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"commit\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"repository\",\"type\":\"string\"}],\"name\":\"upgradeTokenBuild\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/FleekERC721.sol\":\"FleekERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"contracts/FleekAccessControl.sol\":{\"keccak256\":\"0x40cbb25741c2d6e285ab2ccee87f38fab424ce3746a17bca274a23c098f5e5c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d495490984bf70d90d9f48d9fbee2480f62b8d796d2b5cd623ff3ee632e47a\",\"dweb:/ipfs/QmXuMpMizsvU1QiEDD3cqs1wen9pdSqSNBeSb112pQDpKd\"]},\"contracts/FleekERC721.sol\":{\"keccak256\":\"0x409354da49313770cfed999d7303466ebf0d7b7fff2340b7065a91948ba5987a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0db540d6884242b6e9051392687f5a622224aafc0b6f44dc6708846073bf9d7c\",\"dweb:/ipfs/QmZE363as7XuPvTBEaa3XfeW1JigYT47waD629TWqfpfQG\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c\",\"dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"node_modules/@openzeppelin/contracts/utils/Base64.sol\":{\"keccak256\":\"0x5f3461639fe20794cfb4db4a6d8477388a15b2e70a018043084b7c4bedfa8136\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77e5309e2cc4cdc3395214edb0ff43ff5a5f7373f5a425383e540f6fab530f96\",\"dweb:/ipfs/QmTV8DZ9knJDa3b5NPBFQqjvTzodyZVjRUg5mx5A99JPLJ\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"node_modules/@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.17+commit.8df45f5f" }, "language": "Solidity", "output": { "abi": [ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address", "indexed": true }, { "internalType": "address", "name": "approved", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "tokenId", "type": "uint256", "indexed": true } ], "type": "event", "name": "Approval", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address", "indexed": true }, { "internalType": "address", "name": "operator", "type": "address", "indexed": true }, { "internalType": "bool", "name": "approved", "type": "bool", "indexed": false } ], "type": "event", "name": "ApprovalForAll", "anonymous": false }, { "inputs": [ { "internalType": "uint256", "name": "token", "type": "uint256", "indexed": true }, { "internalType": "string", "name": "commit_hash", "type": "string", "indexed": true } ], "type": "event", "name": "NewBuild", "anonymous": false }, { "inputs": [ { "internalType": "uint256", "name": "token", "type": "uint256", "indexed": true }, { "internalType": "string", "name": "description", "type": "string", "indexed": true } ], "type": "event", "name": "NewTokenDescription", "anonymous": false }, { "inputs": [ { "internalType": "uint256", "name": "token", "type": "uint256", "indexed": true }, { "internalType": "string", "name": "ENS", "type": "string", "indexed": true } ], "type": "event", "name": "NewTokenENS", "anonymous": false }, { "inputs": [ { "internalType": "uint256", "name": "token", "type": "uint256", "indexed": true }, { "internalType": "string", "name": "external_url", "type": "string", "indexed": true } ], "type": "event", "name": "NewTokenExternalURL", "anonymous": false }, { "inputs": [ { "internalType": "uint256", "name": "token", "type": "uint256", "indexed": true }, { "internalType": "string", "name": "image", "type": "string", "indexed": true } ], "type": "event", "name": "NewTokenImage", "anonymous": false }, { "inputs": [ { "internalType": "uint256", "name": "token", "type": "uint256", "indexed": true }, { "internalType": "string", "name": "name", "type": "string", "indexed": true } ], "type": "event", "name": "NewTokenName", "anonymous": false }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32", "indexed": true }, { "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32", "indexed": true }, { "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32", "indexed": true } ], "type": "event", "name": "RoleAdminChanged", "anonymous": false }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true } ], "type": "event", "name": "RoleGranted", "anonymous": false }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32", "indexed": true }, { "internalType": "address", "name": "account", "type": "address", "indexed": true }, { "internalType": "address", "name": "sender", "type": "address", "indexed": true } ], "type": "event", "name": "RoleRevoked", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address", "indexed": true }, { "internalType": "address", "name": "to", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "tokenId", "type": "uint256", "indexed": true } ], "type": "event", "name": "Transfer", "anonymous": false }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "COLLECTION_CONTROLLER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "COLLECTION_OWNER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ] }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "controller", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "addTokenController" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function", "name": "approve" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function", "name": "burn" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "view", "type": "function", "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "stateMutability": "view", "type": "function", "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ] }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "grantRole" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ] }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ] }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "string", "name": "image", "type": "string" }, { "internalType": "string", "name": "external_url", "type": "string" }, { "internalType": "string", "name": "ENS", "type": "string" }, { "internalType": "string", "name": "commit_hash", "type": "string" }, { "internalType": "string", "name": "git_repository", "type": "string" } ], "stateMutability": "payable", "type": "function", "name": "mint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ] }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "view", "type": "function", "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "controller", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "removeTokenController" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "renounceRole" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "revokeRole" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function", "name": "safeTransferFrom" }, { "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" } ], "stateMutability": "nonpayable", "type": "function", "name": "safeTransferFrom" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function", "name": "setApprovalForAll" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_commit_hash", "type": "string" }, { "internalType": "string", "name": "_git_repository", "type": "string" } ], "stateMutability": "nonpayable", "type": "function", "name": "setTokenBuild" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenDescription", "type": "string" } ], "stateMutability": "nonpayable", "type": "function", "name": "setTokenDescription" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenENS", "type": "string" } ], "stateMutability": "nonpayable", "type": "function", "name": "setTokenENS" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenExternalURL", "type": "string" } ], "stateMutability": "nonpayable", "type": "function", "name": "setTokenExternalURL" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenImage", "type": "string" } ], "stateMutability": "nonpayable", "type": "function", "name": "setTokenImage" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenName", "type": "string" } ], "stateMutability": "nonpayable", "type": "function", "name": "setTokenName" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "stateMutability": "view", "type": "function", "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ] }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "view", "type": "function", "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ] }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function", "name": "transferFrom" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "commit", "type": "string" }, { "internalType": "string", "name": "repository", "type": "string" } ], "stateMutability": "payable", "type": "function", "name": "upgradeTokenBuild" } ], "devdoc": { "kind": "dev", "methods": { "approve(address,uint256)": { "details": "See {IERC721-approve}." }, "balanceOf(address)": { "details": "See {IERC721-balanceOf}." }, "getApproved(uint256)": { "details": "See {IERC721-getApproved}." }, "getRoleAdmin(bytes32)": { "details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}." }, "grantRole(bytes32,address)": { "details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event." }, "hasRole(bytes32,address)": { "details": "Returns `true` if `account` has been granted `role`." }, "isApprovedForAll(address,address)": { "details": "See {IERC721-isApprovedForAll}." }, "name()": { "details": "See {IERC721Metadata-name}." }, "ownerOf(uint256)": { "details": "See {IERC721-ownerOf}." }, "renounceRole(bytes32,address)": { "details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event." }, "revokeRole(bytes32,address)": { "details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event." }, "safeTransferFrom(address,address,uint256)": { "details": "See {IERC721-safeTransferFrom}." }, "safeTransferFrom(address,address,uint256,bytes)": { "details": "See {IERC721-safeTransferFrom}." }, "setApprovalForAll(address,bool)": { "details": "See {IERC721-setApprovalForAll}." }, "symbol()": { "details": "See {IERC721Metadata-symbol}." }, "tokenURI(uint256)": { "details": "See {IERC721Metadata-tokenURI}." }, "transferFrom(address,address,uint256)": { "details": "See {IERC721-transferFrom}." } }, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }, "settings": { "remappings": [ ":@ensdomains/=node_modules/@ensdomains/", ":@openzeppelin/=node_modules/@openzeppelin/", ":ds-test/=lib/forge-std/lib/ds-test/src/", ":eth-gas-reporter/=node_modules/eth-gas-reporter/", ":forge-std/=lib/forge-std/src/", ":hardhat-deploy/=node_modules/hardhat-deploy/", ":hardhat/=node_modules/hardhat/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "contracts/FleekERC721.sol": "FleekERC721" }, "libraries": {}, "viaIR": true }, "sources": { "contracts/FleekAccessControl.sol": { "keccak256": "0x40cbb25741c2d6e285ab2ccee87f38fab424ce3746a17bca274a23c098f5e5c6", "urls": [ "bzz-raw://f9d495490984bf70d90d9f48d9fbee2480f62b8d796d2b5cd623ff3ee632e47a", "dweb:/ipfs/QmXuMpMizsvU1QiEDD3cqs1wen9pdSqSNBeSb112pQDpKd" ], "license": "MIT" }, "contracts/FleekERC721.sol": { "keccak256": "0x409354da49313770cfed999d7303466ebf0d7b7fff2340b7065a91948ba5987a", "urls": [ "bzz-raw://0db540d6884242b6e9051392687f5a622224aafc0b6f44dc6708846073bf9d7c", "dweb:/ipfs/QmZE363as7XuPvTBEaa3XfeW1JigYT47waD629TWqfpfQG" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/access/AccessControl.sol": { "keccak256": "0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a", "urls": [ "bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe", "dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/access/IAccessControl.sol": { "keccak256": "0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57", "urls": [ "bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a", "dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol": { "keccak256": "0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b", "urls": [ "bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c", "dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": { "keccak256": "0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68", "urls": [ "bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56", "dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { "keccak256": "0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da", "urls": [ "bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708", "dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { "keccak256": "0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9", "urls": [ "bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146", "dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/Address.sol": { "keccak256": "0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1", "urls": [ "bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269", "dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/Base64.sol": { "keccak256": "0x5f3461639fe20794cfb4db4a6d8477388a15b2e70a018043084b7c4bedfa8136", "urls": [ "bzz-raw://77e5309e2cc4cdc3395214edb0ff43ff5a5f7373f5a425383e540f6fab530f96", "dweb:/ipfs/QmTV8DZ9knJDa3b5NPBFQqjvTzodyZVjRUg5mx5A99JPLJ" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/Context.sol": { "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", "urls": [ "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/Counters.sol": { "keccak256": "0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1", "urls": [ "bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee", "dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/Strings.sol": { "keccak256": "0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a", "urls": [ "bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634", "dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": { "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b", "urls": [ "bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d", "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1", "urls": [ "bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f", "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/math/Math.sol": { "keccak256": "0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6", "urls": [ "bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b", "dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz" ], "license": "MIT" } }, "version": 1 }, "ast": { "absolutePath": "contracts/FleekERC721.sol", "id": 726, "exportedSymbols": { "AccessControl": [ 25701 ], "Address": [ 27210 ], "Base64": [ 27257 ], "Context": [ 27279 ], "Counters": [ 27353 ], "ERC165": [ 27552 ], "ERC721": [ 26719 ], "FleekAccessControl": [ 99 ], "FleekERC721": [ 725 ], "IAccessControl": [ 25774 ], "IERC165": [ 27564 ], "IERC721": [ 26835 ], "IERC721Metadata": [ 26880 ], "IERC721Receiver": [ 26853 ], "Math": [ 28429 ], "Strings": [ 27528 ] }, "nodeType": "SourceUnit", "src": "33:7247:1", "nodes": [ { "id": 101, "nodeType": "PragmaDirective", "src": "33:23:1", "nodes": [], "literals": [ "solidity", "^", "0.8", ".7" ] }, { "id": 102, "nodeType": "ImportDirective", "src": "58:57:1", "nodes": [], "absolutePath": "node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol", "file": "@openzeppelin/contracts/token/ERC721/ERC721.sol", "nameLocation": "-1:-1:-1", "scope": 726, "sourceUnit": 26720, "symbolAliases": [], "unitAlias": "" }, { "id": 103, "nodeType": "ImportDirective", "src": "116:52:1", "nodes": [], "absolutePath": "node_modules/@openzeppelin/contracts/utils/Counters.sol", "file": "@openzeppelin/contracts/utils/Counters.sol", "nameLocation": "-1:-1:-1", "scope": 726, "sourceUnit": 27354, "symbolAliases": [], "unitAlias": "" }, { "id": 104, "nodeType": "ImportDirective", "src": "169:50:1", "nodes": [], "absolutePath": "node_modules/@openzeppelin/contracts/utils/Base64.sol", "file": "@openzeppelin/contracts/utils/Base64.sol", "nameLocation": "-1:-1:-1", "scope": 726, "sourceUnit": 27258, "symbolAliases": [], "unitAlias": "" }, { "id": 105, "nodeType": "ImportDirective", "src": "220:34:1", "nodes": [], "absolutePath": "contracts/FleekAccessControl.sol", "file": "./FleekAccessControl.sol", "nameLocation": "-1:-1:-1", "scope": 726, "sourceUnit": 100, "symbolAliases": [], "unitAlias": "" }, { "id": 725, "nodeType": "ContractDefinition", "src": "256:7023:1", "nodes": [ { "id": 112, "nodeType": "UsingForDirective", "src": "313:26:1", "nodes": [], "global": false, "libraryName": { "id": 110, "name": "Strings", "nameLocations": [ "319:7:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 27528, "src": "319:7:1" }, "typeName": { "id": 111, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "331:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "id": 116, "nodeType": "UsingForDirective", "src": "344:36:1", "nodes": [], "global": false, "libraryName": { "id": 113, "name": "Counters", "nameLocations": [ "350:8:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 27353, "src": "350:8:1" }, "typeName": { "id": 115, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 114, "name": "Counters.Counter", "nameLocations": [ "363:8:1", "372:7:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 27285, "src": "363:16:1" }, "referencedDeclaration": 27285, "src": "363:16:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$27285_storage_ptr", "typeString": "struct Counters.Counter" } } }, { "id": 122, "nodeType": "EventDefinition", "src": "386:66:1", "nodes": [], "anonymous": false, "eventSelector": "f0cd0ce9d5882a10e2780d2d9c805c18e7536b9b2c6412f7bfb7f163656dd0f6", "name": "NewBuild", "nameLocation": "392:8:1", "parameters": { "id": 121, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 118, "indexed": true, "mutability": "mutable", "name": "token", "nameLocation": "417:5:1", "nodeType": "VariableDeclaration", "scope": 122, "src": "401:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 117, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "401:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 120, "indexed": true, "mutability": "mutable", "name": "commit_hash", "nameLocation": "439:11:1", "nodeType": "VariableDeclaration", "scope": 122, "src": "424:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 119, "name": "string", "nodeType": "ElementaryTypeName", "src": "424:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "400:51:1" } }, { "id": 128, "nodeType": "EventDefinition", "src": "462:63:1", "nodes": [], "anonymous": false, "eventSelector": "abf44020991f188f6b302a14e4b7a3dc94de10ed2140a6c03e16f4213d11b1c9", "name": "NewTokenName", "nameLocation": "468:12:1", "parameters": { "id": 127, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 124, "indexed": true, "mutability": "mutable", "name": "token", "nameLocation": "497:5:1", "nodeType": "VariableDeclaration", "scope": 128, "src": "481:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 123, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "481:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 126, "indexed": true, "mutability": "mutable", "name": "name", "nameLocation": "519:4:1", "nodeType": "VariableDeclaration", "scope": 128, "src": "504:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 125, "name": "string", "nodeType": "ElementaryTypeName", "src": "504:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "480:44:1" } }, { "id": 134, "nodeType": "EventDefinition", "src": "530:77:1", "nodes": [], "anonymous": false, "eventSelector": "9b3089e7af95b8d43fdceb16eb9cbf620a0cb486e1a291b15121a44e0f69127a", "name": "NewTokenDescription", "nameLocation": "536:19:1", "parameters": { "id": 133, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 130, "indexed": true, "mutability": "mutable", "name": "token", "nameLocation": "572:5:1", "nodeType": "VariableDeclaration", "scope": 134, "src": "556:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 129, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "556:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 132, "indexed": true, "mutability": "mutable", "name": "description", "nameLocation": "594:11:1", "nodeType": "VariableDeclaration", "scope": 134, "src": "579:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 131, "name": "string", "nodeType": "ElementaryTypeName", "src": "579:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "555:51:1" } }, { "id": 140, "nodeType": "EventDefinition", "src": "612:65:1", "nodes": [], "anonymous": false, "eventSelector": "b041870856ebefdd6a3cb1ac665eb6739281b855c912ff622e814dbf91c96bb6", "name": "NewTokenImage", "nameLocation": "618:13:1", "parameters": { "id": 139, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 136, "indexed": true, "mutability": "mutable", "name": "token", "nameLocation": "648:5:1", "nodeType": "VariableDeclaration", "scope": 140, "src": "632:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 135, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "632:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 138, "indexed": true, "mutability": "mutable", "name": "image", "nameLocation": "670:5:1", "nodeType": "VariableDeclaration", "scope": 140, "src": "655:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 137, "name": "string", "nodeType": "ElementaryTypeName", "src": "655:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "631:45:1" } }, { "id": 146, "nodeType": "EventDefinition", "src": "682:78:1", "nodes": [], "anonymous": false, "eventSelector": "9f284fd257fb85bc33901e673c078261b0222fbcc4b52c74784c9566808e3cfc", "name": "NewTokenExternalURL", "nameLocation": "688:19:1", "parameters": { "id": 145, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 142, "indexed": true, "mutability": "mutable", "name": "token", "nameLocation": "724:5:1", "nodeType": "VariableDeclaration", "scope": 146, "src": "708:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 141, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "708:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 144, "indexed": true, "mutability": "mutable", "name": "external_url", "nameLocation": "746:12:1", "nodeType": "VariableDeclaration", "scope": 146, "src": "731:27:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 143, "name": "string", "nodeType": "ElementaryTypeName", "src": "731:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "707:52:1" } }, { "id": 152, "nodeType": "EventDefinition", "src": "765:61:1", "nodes": [], "anonymous": false, "eventSelector": "c1b5a2141fc60537be795a8771f5e8c80188922acb5399a6e463ea95aa852f31", "name": "NewTokenENS", "nameLocation": "771:11:1", "parameters": { "id": 151, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 148, "indexed": true, "mutability": "mutable", "name": "token", "nameLocation": "799:5:1", "nodeType": "VariableDeclaration", "scope": 152, "src": "783:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 147, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "783:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 150, "indexed": true, "mutability": "mutable", "name": "ENS", "nameLocation": "821:3:1", "nodeType": "VariableDeclaration", "scope": 152, "src": "806:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 149, "name": "string", "nodeType": "ElementaryTypeName", "src": "806:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "782:43:1" } }, { "id": 157, "nodeType": "StructDefinition", "src": "836:79:1", "nodes": [], "canonicalName": "FleekERC721.Build", "members": [ { "constant": false, "id": 154, "mutability": "mutable", "name": "commit_hash", "nameLocation": "866:11:1", "nodeType": "VariableDeclaration", "scope": 157, "src": "859:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 153, "name": "string", "nodeType": "ElementaryTypeName", "src": "859:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 156, "mutability": "mutable", "name": "git_repository", "nameLocation": "894:14:1", "nodeType": "VariableDeclaration", "scope": 157, "src": "887:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 155, "name": "string", "nodeType": "ElementaryTypeName", "src": "887:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "name": "Build", "nameLocation": "843:5:1", "scope": 725, "visibility": "public" }, { "id": 175, "nodeType": "StructDefinition", "src": "1119:441:1", "nodes": [], "canonicalName": "FleekERC721.App", "members": [ { "constant": false, "id": 159, "mutability": "mutable", "name": "name", "nameLocation": "1147:4:1", "nodeType": "VariableDeclaration", "scope": 175, "src": "1140:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 158, "name": "string", "nodeType": "ElementaryTypeName", "src": "1140:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 161, "mutability": "mutable", "name": "description", "nameLocation": "1188:11:1", "nodeType": "VariableDeclaration", "scope": 175, "src": "1181:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 160, "name": "string", "nodeType": "ElementaryTypeName", "src": "1181:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 163, "mutability": "mutable", "name": "image", "nameLocation": "1246:5:1", "nodeType": "VariableDeclaration", "scope": 175, "src": "1239:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 162, "name": "string", "nodeType": "ElementaryTypeName", "src": "1239:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 165, "mutability": "mutable", "name": "external_url", "nameLocation": "1295:12:1", "nodeType": "VariableDeclaration", "scope": 175, "src": "1288:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 164, "name": "string", "nodeType": "ElementaryTypeName", "src": "1288:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 167, "mutability": "mutable", "name": "ENS", "nameLocation": "1336:3:1", "nodeType": "VariableDeclaration", "scope": 175, "src": "1329:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" }, "typeName": { "id": 166, "name": "string", "nodeType": "ElementaryTypeName", "src": "1329:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 169, "mutability": "mutable", "name": "current_build", "nameLocation": "1367:13:1", "nodeType": "VariableDeclaration", "scope": 175, "src": "1359:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 168, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1359:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 174, "mutability": "mutable", "name": "builds", "nameLocation": "1497:6:1", "nodeType": "VariableDeclaration", "scope": 175, "src": "1471:32:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Build_$157_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.Build)" }, "typeName": { "id": 173, "keyType": { "id": 170, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1479:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "1471:25:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Build_$157_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.Build)" }, "valueType": { "id": 172, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 171, "name": "Build", "nameLocations": [ "1490:5:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 157, "src": "1490:5:1" }, "referencedDeclaration": 157, "src": "1490:5:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Build_$157_storage_ptr", "typeString": "struct FleekERC721.Build" } } }, "visibility": "internal" } ], "name": "App", "nameLocation": "1126:3:1", "scope": 725, "visibility": "public" }, { "id": 178, "nodeType": "VariableDeclaration", "src": "1566:34:1", "nodes": [], "constant": false, "mutability": "mutable", "name": "_tokenIds", "nameLocation": "1591:9:1", "scope": 725, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$27285_storage", "typeString": "struct Counters.Counter" }, "typeName": { "id": 177, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 176, "name": "Counters.Counter", "nameLocations": [ "1566:8:1", "1575:7:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 27285, "src": "1566:16:1" }, "referencedDeclaration": 27285, "src": "1566:16:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$27285_storage_ptr", "typeString": "struct Counters.Counter" } }, "visibility": "private" }, { "id": 183, "nodeType": "VariableDeclaration", "src": "1606:37:1", "nodes": [], "constant": false, "mutability": "mutable", "name": "_apps", "nameLocation": "1638:5:1", "scope": 725, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.App)" }, "typeName": { "id": 182, "keyType": { "id": 179, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1614:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "1606:23:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.App)" }, "valueType": { "id": 181, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 180, "name": "App", "nameLocations": [ "1625:3:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 175, "src": "1625:3:1" }, "referencedDeclaration": 175, "src": "1625:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App" } } }, "visibility": "private" }, { "id": 195, "nodeType": "FunctionDefinition", "src": "1650:103:1", "nodes": [], "body": { "id": 194, "nodeType": "Block", "src": "1751:2:1", "nodes": [], "statements": [] }, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { "id": 190, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 185, "src": "1735:5:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "id": 191, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 187, "src": "1742:7:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "id": 192, "kind": "baseConstructorSpecifier", "modifierName": { "id": 189, "name": "ERC721", "nameLocations": [ "1728:6:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 26719, "src": "1728:6:1" }, "nodeType": "ModifierInvocation", "src": "1728:22:1" } ], "name": "", "nameLocation": "-1:-1:-1", "parameters": { "id": 188, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 185, "mutability": "mutable", "name": "_name", "nameLocation": "1685:5:1", "nodeType": "VariableDeclaration", "scope": 195, "src": "1671:19:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 184, "name": "string", "nodeType": "ElementaryTypeName", "src": "1671:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 187, "mutability": "mutable", "name": "_symbol", "nameLocation": "1714:7:1", "nodeType": "VariableDeclaration", "scope": 195, "src": "1700:21:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 186, "name": "string", "nodeType": "ElementaryTypeName", "src": "1700:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "1661:66:1" }, "returnParameters": { "id": 193, "nodeType": "ParameterList", "parameters": [], "src": "1751:0:1" }, "scope": 725, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "id": 211, "nodeType": "ModifierDefinition", "src": "1759:181:1", "nodes": [], "body": { "id": 210, "nodeType": "Block", "src": "1803:137:1", "nodes": [], "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 205, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 200, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "1834:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 201, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1838:6:1", "memberName": "sender", "nodeType": "MemberAccess", "src": "1834:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "id": 203, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 197, "src": "1856:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 202, "name": "ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25920, "src": "1848:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, "id": 204, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1848:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1834:30:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "466c65656b4552433732313a206d75737420626520746f6b656e206f776e6572", "id": 206, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1878:34:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a648a3de5d26aef0474a63f309beeecd457a566959dd1cff4538789f49f0cc66", "typeString": "literal_string \"FleekERC721: must be token owner\"" }, "value": "FleekERC721: must be token owner" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a648a3de5d26aef0474a63f309beeecd457a566959dd1cff4538789f49f0cc66", "typeString": "literal_string \"FleekERC721: must be token owner\"" } ], "id": 199, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1813:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 207, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1813:109:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 208, "nodeType": "ExpressionStatement", "src": "1813:109:1" }, { "id": 209, "nodeType": "PlaceholderStatement", "src": "1932:1:1" } ] }, "name": "requireTokenOwner", "nameLocation": "1768:17:1", "parameters": { "id": 198, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 197, "mutability": "mutable", "name": "tokenId", "nameLocation": "1794:7:1", "nodeType": "VariableDeclaration", "scope": 211, "src": "1786:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 196, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1786:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1785:17:1" }, "virtual": false, "visibility": "internal" }, { "id": 312, "nodeType": "FunctionDefinition", "src": "1946:957:1", "nodes": [], "body": { "id": 311, "nodeType": "Block", "src": "2270:633:1", "nodes": [], "statements": [ { "assignments": [ 235 ], "declarations": [ { "constant": false, "id": 235, "mutability": "mutable", "name": "tokenId", "nameLocation": "2288:7:1", "nodeType": "VariableDeclaration", "scope": 311, "src": "2280:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 234, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2280:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 239, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 236, "name": "_tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 178, "src": "2298:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$27285_storage", "typeString": "struct Counters.Counter storage ref" } }, "id": 237, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "2308:7:1", "memberName": "current", "nodeType": "MemberAccess", "referencedDeclaration": 27297, "src": "2298:17:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$27285_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$27285_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)" } }, "id": 238, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2298:19:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "2280:37:1" }, { "expression": { "arguments": [ { "id": 241, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 213, "src": "2333:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 242, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 235, "src": "2337:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 240, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26375, "src": "2327:5:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 243, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2327:18:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 244, "nodeType": "ExpressionStatement", "src": "2327:18:1" }, { "expression": { "arguments": [ { "id": 246, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 235, "src": "2374:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 247, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 213, "src": "2383:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 245, "name": "addTokenController", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 461, "src": "2355:18:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, "id": 248, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2355:31:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 249, "nodeType": "ExpressionStatement", "src": "2355:31:1" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 250, "name": "_tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 178, "src": "2396:9:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Counter_$27285_storage", "typeString": "struct Counters.Counter storage ref" } }, "id": 252, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "2406:9:1", "memberName": "increment", "nodeType": "MemberAccess", "referencedDeclaration": 27311, "src": "2396:19:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$27285_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$27285_storage_ptr_$", "typeString": "function (struct Counters.Counter storage pointer)" } }, "id": 253, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2396:21:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 254, "nodeType": "ExpressionStatement", "src": "2396:21:1" }, { "assignments": [ 257 ], "declarations": [ { "constant": false, "id": 257, "mutability": "mutable", "name": "app", "nameLocation": "2440:3:1", "nodeType": "VariableDeclaration", "scope": 311, "src": "2428:15:1", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App" }, "typeName": { "id": 256, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 255, "name": "App", "nameLocations": [ "2428:3:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 175, "src": "2428:3:1" }, "referencedDeclaration": 175, "src": "2428:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App" } }, "visibility": "internal" } ], "id": 261, "initialValue": { "baseExpression": { "id": 258, "name": "_apps", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "2446:5:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.App storage ref)" } }, "id": 260, "indexExpression": { "id": 259, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 235, "src": "2452:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2446:14:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage", "typeString": "struct FleekERC721.App storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "2428:32:1" }, { "expression": { "id": 266, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 262, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 257, "src": "2470:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 264, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "2474:4:1", "memberName": "name", "nodeType": "MemberAccess", "referencedDeclaration": 159, "src": "2470:8:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 265, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 215, "src": "2481:4:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "2470:15:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 267, "nodeType": "ExpressionStatement", "src": "2470:15:1" }, { "expression": { "id": 272, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 268, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 257, "src": "2495:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 270, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "2499:11:1", "memberName": "description", "nodeType": "MemberAccess", "referencedDeclaration": 161, "src": "2495:15:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 271, "name": "description", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 217, "src": "2513:11:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "2495:29:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 273, "nodeType": "ExpressionStatement", "src": "2495:29:1" }, { "expression": { "id": 278, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 274, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 257, "src": "2534:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 276, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "2538:5:1", "memberName": "image", "nodeType": "MemberAccess", "referencedDeclaration": 163, "src": "2534:9:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 277, "name": "image", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 219, "src": "2546:5:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "2534:17:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 279, "nodeType": "ExpressionStatement", "src": "2534:17:1" }, { "expression": { "id": 284, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 280, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 257, "src": "2561:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 282, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "2565:12:1", "memberName": "external_url", "nodeType": "MemberAccess", "referencedDeclaration": 165, "src": "2561:16:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 283, "name": "external_url", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 221, "src": "2580:12:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "2561:31:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 285, "nodeType": "ExpressionStatement", "src": "2561:31:1" }, { "expression": { "id": 290, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 286, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 257, "src": "2602:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 288, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "2606:3:1", "memberName": "ENS", "nodeType": "MemberAccess", "referencedDeclaration": 167, "src": "2602:7:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 289, "name": "ENS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 223, "src": "2612:3:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "2602:13:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 291, "nodeType": "ExpressionStatement", "src": "2602:13:1" }, { "expression": { "id": 296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 292, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 257, "src": "2790:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 294, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "2794:13:1", "memberName": "current_build", "nodeType": "MemberAccess", "referencedDeclaration": 169, "src": "2790:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "30", "id": 295, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2810:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2790:21:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 297, "nodeType": "ExpressionStatement", "src": "2790:21:1" }, { "expression": { "id": 307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "expression": { "id": 298, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 257, "src": "2821:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 301, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "2825:6:1", "memberName": "builds", "nodeType": "MemberAccess", "referencedDeclaration": 174, "src": "2821:10:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Build_$157_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.Build storage ref)" } }, "id": 302, "indexExpression": { "hexValue": "30", "id": 300, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2832:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "2821:13:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Build_$157_storage", "typeString": "struct FleekERC721.Build storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 304, "name": "commit_hash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 225, "src": "2843:11:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "id": 305, "name": "git_repository", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 227, "src": "2856:14:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 303, "name": "Build", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 157, "src": "2837:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Build_$157_storage_ptr_$", "typeString": "type(struct FleekERC721.Build storage pointer)" } }, "id": 306, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2837:34:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Build_$157_memory_ptr", "typeString": "struct FleekERC721.Build memory" } }, "src": "2821:50:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Build_$157_storage", "typeString": "struct FleekERC721.Build storage ref" } }, "id": 308, "nodeType": "ExpressionStatement", "src": "2821:50:1" }, { "expression": { "id": 309, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 235, "src": "2889:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 233, "id": 310, "nodeType": "Return", "src": "2882:14:1" } ] }, "functionSelector": "b543be12", "implemented": true, "kind": "function", "modifiers": [ { "id": 230, "kind": "modifierInvocation", "modifierName": { "id": 229, "name": "requireCollectionOwner", "nameLocations": [ "2229:22:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 42, "src": "2229:22:1" }, "nodeType": "ModifierInvocation", "src": "2229:22:1" } ], "name": "mint", "nameLocation": "1955:4:1", "parameters": { "id": 228, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 213, "mutability": "mutable", "name": "to", "nameLocation": "1977:2:1", "nodeType": "VariableDeclaration", "scope": 312, "src": "1969:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 212, "name": "address", "nodeType": "ElementaryTypeName", "src": "1969:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 215, "mutability": "mutable", "name": "name", "nameLocation": "2003:4:1", "nodeType": "VariableDeclaration", "scope": 312, "src": "1989:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 214, "name": "string", "nodeType": "ElementaryTypeName", "src": "1989:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 217, "mutability": "mutable", "name": "description", "nameLocation": "2031:11:1", "nodeType": "VariableDeclaration", "scope": 312, "src": "2017:25:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 216, "name": "string", "nodeType": "ElementaryTypeName", "src": "2017:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 219, "mutability": "mutable", "name": "image", "nameLocation": "2066:5:1", "nodeType": "VariableDeclaration", "scope": 312, "src": "2052:19:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 218, "name": "string", "nodeType": "ElementaryTypeName", "src": "2052:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 221, "mutability": "mutable", "name": "external_url", "nameLocation": "2095:12:1", "nodeType": "VariableDeclaration", "scope": 312, "src": "2081:26:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 220, "name": "string", "nodeType": "ElementaryTypeName", "src": "2081:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 223, "mutability": "mutable", "name": "ENS", "nameLocation": "2131:3:1", "nodeType": "VariableDeclaration", "scope": 312, "src": "2117:17:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 222, "name": "string", "nodeType": "ElementaryTypeName", "src": "2117:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 225, "mutability": "mutable", "name": "commit_hash", "nameLocation": "2158:11:1", "nodeType": "VariableDeclaration", "scope": 312, "src": "2144:25:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 224, "name": "string", "nodeType": "ElementaryTypeName", "src": "2144:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 227, "mutability": "mutable", "name": "git_repository", "nameLocation": "2193:14:1", "nodeType": "VariableDeclaration", "scope": 312, "src": "2179:28:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 226, "name": "string", "nodeType": "ElementaryTypeName", "src": "2179:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "1959:254:1" }, "returnParameters": { "id": 233, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 232, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 312, "src": "2261:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 231, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2261:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "2260:9:1" }, "scope": 725, "stateMutability": "payable", "virtual": false, "visibility": "public" }, { "id": 335, "nodeType": "FunctionDefinition", "src": "2909:256:1", "nodes": [], "body": { "id": 334, "nodeType": "Block", "src": "3073:92:1", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 325, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 314, "src": "3098:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 324, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26597, "src": "3083:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" } }, "id": 326, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3083:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 327, "nodeType": "ExpressionStatement", "src": "3083:23:1" }, { "expression": { "arguments": [ { "id": 329, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 314, "src": "3130:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 330, "name": "commit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 316, "src": "3139:6:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "id": 331, "name": "repository", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 318, "src": "3147:10:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 328, "name": "setTokenBuild", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 682, "src": "3116:13:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,string memory,string memory)" } }, "id": 332, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3116:42:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 333, "nodeType": "ExpressionStatement", "src": "3116:42:1" } ] }, "functionSelector": "987c26fd", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "id": 321, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 314, "src": "3064:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 322, "kind": "modifierInvocation", "modifierName": { "id": 320, "name": "requireTokenOwner", "nameLocations": [ "3046:17:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 211, "src": "3046:17:1" }, "nodeType": "ModifierInvocation", "src": "3046:26:1" } ], "name": "upgradeTokenBuild", "nameLocation": "2918:17:1", "parameters": { "id": 319, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 314, "mutability": "mutable", "name": "tokenId", "nameLocation": "2953:7:1", "nodeType": "VariableDeclaration", "scope": 335, "src": "2945:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 313, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2945:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 316, "mutability": "mutable", "name": "commit", "nameLocation": "2984:6:1", "nodeType": "VariableDeclaration", "scope": 335, "src": "2970:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 315, "name": "string", "nodeType": "ElementaryTypeName", "src": "2970:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 318, "mutability": "mutable", "name": "repository", "nameLocation": "3014:10:1", "nodeType": "VariableDeclaration", "scope": 335, "src": "3000:24:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 317, "name": "string", "nodeType": "ElementaryTypeName", "src": "3000:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "2935:95:1" }, "returnParameters": { "id": 323, "nodeType": "ParameterList", "parameters": [], "src": "3073:0:1" }, "scope": 725, "stateMutability": "payable", "virtual": false, "visibility": "public" }, { "id": 438, "nodeType": "FunctionDefinition", "src": "3171:1137:1", "nodes": [], "body": { "id": 437, "nodeType": "Block", "src": "3273:1035:1", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 344, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 337, "src": "3298:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 343, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26597, "src": "3283:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" } }, "id": 345, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3283:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 346, "nodeType": "ExpressionStatement", "src": "3283:23:1" }, { "assignments": [ 348 ], "declarations": [ { "constant": false, "id": 348, "mutability": "mutable", "name": "owner", "nameLocation": "3324:5:1", "nodeType": "VariableDeclaration", "scope": 437, "src": "3316:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 347, "name": "address", "nodeType": "ElementaryTypeName", "src": "3316:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "id": 352, "initialValue": { "arguments": [ { "id": 350, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 337, "src": "3340:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 349, "name": "ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25920, "src": "3332:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, "id": 351, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3332:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "3316:32:1" }, { "assignments": [ 355 ], "declarations": [ { "constant": false, "id": 355, "mutability": "mutable", "name": "app", "nameLocation": "3370:3:1", "nodeType": "VariableDeclaration", "scope": 437, "src": "3358:15:1", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App" }, "typeName": { "id": 354, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 353, "name": "App", "nameLocations": [ "3358:3:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 175, "src": "3358:3:1" }, "referencedDeclaration": 175, "src": "3358:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App" } }, "visibility": "internal" } ], "id": 359, "initialValue": { "baseExpression": { "id": 356, "name": "_apps", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "3376:5:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.App storage ref)" } }, "id": 358, "indexExpression": { "id": 357, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 337, "src": "3382:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3376:14:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage", "typeString": "struct FleekERC721.App storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "3358:32:1" }, { "assignments": [ 361 ], "declarations": [ { "constant": false, "id": 361, "mutability": "mutable", "name": "dataURI", "nameLocation": "3414:7:1", "nodeType": "VariableDeclaration", "scope": 437, "src": "3401:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 360, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "3401:5:1", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "id": 422, "initialValue": { "arguments": [ { "hexValue": "7b", "id": 364, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3454:3:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a91eddf639b0b768929589c1a9fd21dcb0107199bdd82e55c5348018a1572f52", "typeString": "literal_string \"{\"" }, "value": "{" }, { "hexValue": "226e616d65223a22", "id": 365, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3475:10:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_51367d69f1c3baff467b722249990cf2b0f92b1e50edd5a778b81ffc7191408f", "typeString": "literal_string \"\"name\":\"\"" }, "value": "\"name\":\"" }, { "expression": { "id": 366, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 355, "src": "3487:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 367, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3491:4:1", "memberName": "name", "nodeType": "MemberAccess", "referencedDeclaration": 159, "src": "3487:8:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "hexValue": "222c", "id": 368, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3497:4:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb", "typeString": "literal_string \"\",\"" }, "value": "\"," }, { "hexValue": "226465736372697074696f6e223a22", "id": 369, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3519:17:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_1f63d9db42efe217d85281c4ef6267f200cbdd8e8d6fd9a3e9d557ed86a373c7", "typeString": "literal_string \"\"description\":\"\"" }, "value": "\"description\":\"" }, { "expression": { "id": 370, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 355, "src": "3538:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 371, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3542:11:1", "memberName": "description", "nodeType": "MemberAccess", "referencedDeclaration": 161, "src": "3538:15:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "hexValue": "222c", "id": 372, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3555:4:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb", "typeString": "literal_string \"\",\"" }, "value": "\"," }, { "hexValue": "226f776e6572223a22", "id": 373, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3577:11:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_aa5040bb3495d70c48509afbb928e8d0398ff0e9a4d595e1bd35082607eb6804", "typeString": "literal_string \"\"owner\":\"\"" }, "value": "\"owner\":\"" }, { "arguments": [ { "arguments": [ { "id": 378, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 348, "src": "3618:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 377, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3610:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint160_$", "typeString": "type(uint160)" }, "typeName": { "id": 376, "name": "uint160", "nodeType": "ElementaryTypeName", "src": "3610:7:1", "typeDescriptions": {} } }, "id": 379, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3610:14:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint160", "typeString": "uint160" } }, { "hexValue": "3230", "id": 380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3626:2:1", "typeDescriptions": { "typeIdentifier": "t_rational_20_by_1", "typeString": "int_const 20" }, "value": "20" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint160", "typeString": "uint160" }, { "typeIdentifier": "t_rational_20_by_1", "typeString": "int_const 20" } ], "expression": { "id": 374, "name": "Strings", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27528, "src": "3590:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Strings_$27528_$", "typeString": "type(library Strings)" } }, "id": 375, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3598:11:1", "memberName": "toHexString", "nodeType": "MemberAccess", "referencedDeclaration": 27507, "src": "3590:19:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", "typeString": "function (uint256,uint256) pure returns (string memory)" } }, "id": 381, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3590:39:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "hexValue": "222c", "id": 382, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3631:4:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb", "typeString": "literal_string \"\",\"" }, "value": "\"," }, { "hexValue": "2265787465726e616c5f75726c223a22", "id": 383, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3653:18:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_153dd7a4db1a16c0bc09459a32699b07f8a0722d62a40df6d0b30c2d78048b07", "typeString": "literal_string \"\"external_url\":\"\"" }, "value": "\"external_url\":\"" }, { "expression": { "id": 384, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 355, "src": "3673:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 385, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3677:12:1", "memberName": "external_url", "nodeType": "MemberAccess", "referencedDeclaration": 165, "src": "3673:16:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "hexValue": "222c", "id": 386, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3691:4:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb", "typeString": "literal_string \"\",\"" }, "value": "\"," }, { "hexValue": "22696d616765223a22", "id": 387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3713:11:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_813a444dcf0b75d812ca8afb53e513b340ca828208f41bc16bdcde529c0ea551", "typeString": "literal_string \"\"image\":\"\"" }, "value": "\"image\":\"" }, { "expression": { "id": 388, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 355, "src": "3726:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 389, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3730:5:1", "memberName": "image", "nodeType": "MemberAccess", "referencedDeclaration": 163, "src": "3726:9:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "hexValue": "222c", "id": 390, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3737:4:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb", "typeString": "literal_string \"\",\"" }, "value": "\"," }, { "hexValue": "2261747472696275746573223a205b", "id": 391, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3759:17:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a9d6c84473de3f3a866c16d436066b8d4df325a647d2d3a768ffba45df210f3c", "typeString": "literal_string \"\"attributes\": [\"" }, "value": "\"attributes\": [" }, { "hexValue": "7b2274726169745f74797065223a2022454e53222c202276616c7565223a22", "id": 392, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3798:33:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b1977dad00b1d45df31cde385892922fbf01ae8899a8104464fe62faa11870d0", "typeString": "literal_string \"{\"trait_type\": \"ENS\", \"value\":\"\"" }, "value": "{\"trait_type\": \"ENS\", \"value\":\"" }, { "expression": { "id": 393, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 355, "src": "3833:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 394, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3837:3:1", "memberName": "ENS", "nodeType": "MemberAccess", "referencedDeclaration": 167, "src": "3833:7:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "hexValue": "227d2c", "id": 395, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3841:5:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3e7f42fdd49259e0595590a474a25222fd39a13615f6ea5ab69ecfc85ad8702f", "typeString": "literal_string \"\"},\"" }, "value": "\"}," }, { "hexValue": "7b2274726169745f74797065223a2022436f6d6d69742048617368222c202276616c7565223a22", "id": 396, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3868:41:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b73d9590f8416c8a9cef1b886e2fdf15148022d38f7665a30169401f08d28d84", "typeString": "literal_string \"{\"trait_type\": \"Commit Hash\", \"value\":\"\"" }, "value": "{\"trait_type\": \"Commit Hash\", \"value\":\"" }, { "expression": { "baseExpression": { "expression": { "id": 397, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 355, "src": "3911:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 398, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3915:6:1", "memberName": "builds", "nodeType": "MemberAccess", "referencedDeclaration": 174, "src": "3911:10:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Build_$157_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.Build storage ref)" } }, "id": 401, "indexExpression": { "expression": { "id": 399, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 355, "src": "3922:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 400, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3926:13:1", "memberName": "current_build", "nodeType": "MemberAccess", "referencedDeclaration": 169, "src": "3922:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3911:29:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Build_$157_storage", "typeString": "struct FleekERC721.Build storage ref" } }, "id": 402, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3941:11:1", "memberName": "commit_hash", "nodeType": "MemberAccess", "referencedDeclaration": 154, "src": "3911:41:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "hexValue": "227d2c", "id": 403, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3953:5:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3e7f42fdd49259e0595590a474a25222fd39a13615f6ea5ab69ecfc85ad8702f", "typeString": "literal_string \"\"},\"" }, "value": "\"}," }, { "hexValue": "7b2274726169745f74797065223a20225265706f7369746f7279222c202276616c7565223a22", "id": 404, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3980:40:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_4b900011f9aa689cc6367c1d032b6aa02ddd903a01891d40bcc6ccf8deec8fe8", "typeString": "literal_string \"{\"trait_type\": \"Repository\", \"value\":\"\"" }, "value": "{\"trait_type\": \"Repository\", \"value\":\"" }, { "expression": { "baseExpression": { "expression": { "id": 405, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 355, "src": "4022:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 406, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4026:6:1", "memberName": "builds", "nodeType": "MemberAccess", "referencedDeclaration": 174, "src": "4022:10:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Build_$157_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.Build storage ref)" } }, "id": 409, "indexExpression": { "expression": { "id": 407, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 355, "src": "4033:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 408, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4037:13:1", "memberName": "current_build", "nodeType": "MemberAccess", "referencedDeclaration": 169, "src": "4033:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4022:29:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Build_$157_storage", "typeString": "struct FleekERC721.Build storage ref" } }, "id": 410, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4052:14:1", "memberName": "git_repository", "nodeType": "MemberAccess", "referencedDeclaration": 156, "src": "4022:44:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, { "hexValue": "227d2c", "id": 411, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4067:5:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3e7f42fdd49259e0595590a474a25222fd39a13615f6ea5ab69ecfc85ad8702f", "typeString": "literal_string \"\"},\"" }, "value": "\"}," }, { "hexValue": "7b2274726169745f74797065223a202256657273696f6e222c202276616c7565223a22", "id": 412, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4094:37:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_28f5df53320854e06a7bf4620fddd54d632f51e992a075a608d3ffbf7301ce24", "typeString": "literal_string \"{\"trait_type\": \"Version\", \"value\":\"\"" }, "value": "{\"trait_type\": \"Version\", \"value\":\"" }, { "arguments": [ { "expression": { "id": 415, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 355, "src": "4150:3:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage_ptr", "typeString": "struct FleekERC721.App storage pointer" } }, "id": 416, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4154:13:1", "memberName": "current_build", "nodeType": "MemberAccess", "referencedDeclaration": 169, "src": "4150:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 413, "name": "Strings", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27528, "src": "4133:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Strings_$27528_$", "typeString": "type(library Strings)" } }, "id": 414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4141:8:1", "memberName": "toString", "nodeType": "MemberAccess", "referencedDeclaration": 27411, "src": "4133:16:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", "typeString": "function (uint256) pure returns (string memory)" } }, "id": 417, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4133:35:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "hexValue": "227d", "id": 418, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4169:4:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475", "typeString": "literal_string \"\"}\"" }, "value": "\"}" }, { "hexValue": "5d", "id": 419, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4191:3:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29", "typeString": "literal_string \"]\"" }, "value": "]" }, { "hexValue": "7d", "id": 420, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4208:3:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_8e2ffa389f3a6ded42d759b3377ac0d928e6a268d143bcc9517093d10c843bff", "typeString": "literal_string \"}\"" }, "value": "}" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_a91eddf639b0b768929589c1a9fd21dcb0107199bdd82e55c5348018a1572f52", "typeString": "literal_string \"{\"" }, { "typeIdentifier": "t_stringliteral_51367d69f1c3baff467b722249990cf2b0f92b1e50edd5a778b81ffc7191408f", "typeString": "literal_string \"\"name\":\"\"" }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { "typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb", "typeString": "literal_string \"\",\"" }, { "typeIdentifier": "t_stringliteral_1f63d9db42efe217d85281c4ef6267f200cbdd8e8d6fd9a3e9d557ed86a373c7", "typeString": "literal_string \"\"description\":\"\"" }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { "typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb", "typeString": "literal_string \"\",\"" }, { "typeIdentifier": "t_stringliteral_aa5040bb3495d70c48509afbb928e8d0398ff0e9a4d595e1bd35082607eb6804", "typeString": "literal_string \"\"owner\":\"\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb", "typeString": "literal_string \"\",\"" }, { "typeIdentifier": "t_stringliteral_153dd7a4db1a16c0bc09459a32699b07f8a0722d62a40df6d0b30c2d78048b07", "typeString": "literal_string \"\"external_url\":\"\"" }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { "typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb", "typeString": "literal_string \"\",\"" }, { "typeIdentifier": "t_stringliteral_813a444dcf0b75d812ca8afb53e513b340ca828208f41bc16bdcde529c0ea551", "typeString": "literal_string \"\"image\":\"\"" }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { "typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb", "typeString": "literal_string \"\",\"" }, { "typeIdentifier": "t_stringliteral_a9d6c84473de3f3a866c16d436066b8d4df325a647d2d3a768ffba45df210f3c", "typeString": "literal_string \"\"attributes\": [\"" }, { "typeIdentifier": "t_stringliteral_b1977dad00b1d45df31cde385892922fbf01ae8899a8104464fe62faa11870d0", "typeString": "literal_string \"{\"trait_type\": \"ENS\", \"value\":\"\"" }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { "typeIdentifier": "t_stringliteral_3e7f42fdd49259e0595590a474a25222fd39a13615f6ea5ab69ecfc85ad8702f", "typeString": "literal_string \"\"},\"" }, { "typeIdentifier": "t_stringliteral_b73d9590f8416c8a9cef1b886e2fdf15148022d38f7665a30169401f08d28d84", "typeString": "literal_string \"{\"trait_type\": \"Commit Hash\", \"value\":\"\"" }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { "typeIdentifier": "t_stringliteral_3e7f42fdd49259e0595590a474a25222fd39a13615f6ea5ab69ecfc85ad8702f", "typeString": "literal_string \"\"},\"" }, { "typeIdentifier": "t_stringliteral_4b900011f9aa689cc6367c1d032b6aa02ddd903a01891d40bcc6ccf8deec8fe8", "typeString": "literal_string \"{\"trait_type\": \"Repository\", \"value\":\"\"" }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { "typeIdentifier": "t_stringliteral_3e7f42fdd49259e0595590a474a25222fd39a13615f6ea5ab69ecfc85ad8702f", "typeString": "literal_string \"\"},\"" }, { "typeIdentifier": "t_stringliteral_28f5df53320854e06a7bf4620fddd54d632f51e992a075a608d3ffbf7301ce24", "typeString": "literal_string \"{\"trait_type\": \"Version\", \"value\":\"\"" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475", "typeString": "literal_string \"\"}\"" }, { "typeIdentifier": "t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29", "typeString": "literal_string \"]\"" }, { "typeIdentifier": "t_stringliteral_8e2ffa389f3a6ded42d759b3377ac0d928e6a268d143bcc9517093d10c843bff", "typeString": "literal_string \"}\"" } ], "expression": { "id": 362, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3424:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 363, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3428:12:1", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "3424:16:1", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 421, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3424:797:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", "src": "3401:820:1" }, { "expression": { "arguments": [ { "arguments": [ { "arguments": [], "expression": { "argumentTypes": [], "id": 427, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [ 509 ], "referencedDeclaration": 509, "src": "4263:8:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", "typeString": "function () view returns (string memory)" } }, "id": 428, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4263:10:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "arguments": [ { "components": [ { "id": 431, "name": "dataURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 361, "src": "4290:7:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "id": 432, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "4289:9:1", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "id": 429, "name": "Base64", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27257, "src": "4275:6:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Base64_$27257_$", "typeString": "type(library Base64)" } }, "id": 430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4282:6:1", "memberName": "encode", "nodeType": "MemberAccess", "referencedDeclaration": 27256, "src": "4275:13:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$", "typeString": "function (bytes memory) pure returns (string memory)" } }, "id": 433, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4275:24:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "id": 425, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "4246:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 426, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "4250:12:1", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "4246:16:1", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 434, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4246:54:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 424, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "4239:6:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)" }, "typeName": { "id": 423, "name": "string", "nodeType": "ElementaryTypeName", "src": "4239:6:1", "typeDescriptions": {} } }, "id": 435, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4239:62:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "functionReturnParameters": 342, "id": 436, "nodeType": "Return", "src": "4232:69:1" } ] }, "baseFunctions": [ 25979 ], "functionSelector": "c87b56dd", "implemented": true, "kind": "function", "modifiers": [], "name": "tokenURI", "nameLocation": "3180:8:1", "overrides": { "id": 339, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3240:8:1" }, "parameters": { "id": 338, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 337, "mutability": "mutable", "name": "tokenId", "nameLocation": "3206:7:1", "nodeType": "VariableDeclaration", "scope": 438, "src": "3198:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 336, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3198:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3188:31:1" }, "returnParameters": { "id": 342, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 341, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 438, "src": "3258:13:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 340, "name": "string", "nodeType": "ElementaryTypeName", "src": "3258:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "3257:15:1" }, "scope": 725, "stateMutability": "view", "virtual": true, "visibility": "public" }, { "id": 461, "nodeType": "FunctionDefinition", "src": "4314:228:1", "nodes": [], "body": { "id": 460, "nodeType": "Block", "src": "4435:107:1", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 449, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 440, "src": "4460:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 448, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26597, "src": "4445:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" } }, "id": 450, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4445:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 451, "nodeType": "ExpressionStatement", "src": "4445:23:1" }, { "expression": { "arguments": [ { "arguments": [ { "id": 454, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 440, "src": "4500:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "434f4e54524f4c4c4552", "id": 455, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4509:12:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_70546d1c92f8c2132ae23a23f5177aa8526356051c7510df99f50e012d221529", "typeString": "literal_string \"CONTROLLER\"" }, "value": "CONTROLLER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_stringliteral_70546d1c92f8c2132ae23a23f5177aa8526356051c7510df99f50e012d221529", "typeString": "literal_string \"CONTROLLER\"" } ], "id": 453, "name": "_tokenRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98, "src": "4489:10:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (uint256,string memory) pure returns (bytes32)" } }, "id": 456, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4489:33:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 457, "name": "controller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 442, "src": "4524:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 452, "name": "_grantRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25669, "src": "4478:10:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, "id": 458, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4478:57:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 459, "nodeType": "ExpressionStatement", "src": "4478:57:1" } ] }, "functionSelector": "dcd78186", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "id": 445, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 440, "src": "4426:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 446, "kind": "modifierInvocation", "modifierName": { "id": 444, "name": "requireTokenOwner", "nameLocations": [ "4408:17:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 211, "src": "4408:17:1" }, "nodeType": "ModifierInvocation", "src": "4408:26:1" } ], "name": "addTokenController", "nameLocation": "4323:18:1", "parameters": { "id": 443, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 440, "mutability": "mutable", "name": "tokenId", "nameLocation": "4359:7:1", "nodeType": "VariableDeclaration", "scope": 461, "src": "4351:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 439, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4351:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 442, "mutability": "mutable", "name": "controller", "nameLocation": "4384:10:1", "nodeType": "VariableDeclaration", "scope": 461, "src": "4376:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 441, "name": "address", "nodeType": "ElementaryTypeName", "src": "4376:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "4341:59:1" }, "returnParameters": { "id": 447, "nodeType": "ParameterList", "parameters": [], "src": "4435:0:1" }, "scope": 725, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "id": 484, "nodeType": "FunctionDefinition", "src": "4548:232:1", "nodes": [], "body": { "id": 483, "nodeType": "Block", "src": "4672:108:1", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 472, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 463, "src": "4697:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 471, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26597, "src": "4682:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" } }, "id": 473, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4682:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 474, "nodeType": "ExpressionStatement", "src": "4682:23:1" }, { "expression": { "arguments": [ { "arguments": [ { "id": 477, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 463, "src": "4738:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "434f4e54524f4c4c4552", "id": 478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4747:12:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_70546d1c92f8c2132ae23a23f5177aa8526356051c7510df99f50e012d221529", "typeString": "literal_string \"CONTROLLER\"" }, "value": "CONTROLLER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_stringliteral_70546d1c92f8c2132ae23a23f5177aa8526356051c7510df99f50e012d221529", "typeString": "literal_string \"CONTROLLER\"" } ], "id": 476, "name": "_tokenRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98, "src": "4727:10:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (uint256,string memory) pure returns (bytes32)" } }, "id": 479, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4727:33:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 480, "name": "controller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 465, "src": "4762:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 475, "name": "_revokeRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25700, "src": "4715:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", "typeString": "function (bytes32,address)" } }, "id": 481, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4715:58:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 482, "nodeType": "ExpressionStatement", "src": "4715:58:1" } ] }, "functionSelector": "befaa6a3", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "id": 468, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 463, "src": "4663:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 469, "kind": "modifierInvocation", "modifierName": { "id": 467, "name": "requireTokenOwner", "nameLocations": [ "4645:17:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 211, "src": "4645:17:1" }, "nodeType": "ModifierInvocation", "src": "4645:26:1" } ], "name": "removeTokenController", "nameLocation": "4557:21:1", "parameters": { "id": 466, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 463, "mutability": "mutable", "name": "tokenId", "nameLocation": "4596:7:1", "nodeType": "VariableDeclaration", "scope": 484, "src": "4588:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 462, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4588:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 465, "mutability": "mutable", "name": "controller", "nameLocation": "4621:10:1", "nodeType": "VariableDeclaration", "scope": 484, "src": "4613:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 464, "name": "address", "nodeType": "ElementaryTypeName", "src": "4613:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "4578:59:1" }, "returnParameters": { "id": 470, "nodeType": "ParameterList", "parameters": [], "src": "4672:0:1" }, "scope": 725, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "id": 500, "nodeType": "FunctionDefinition", "src": "4786:188:1", "nodes": [], "body": { "id": 499, "nodeType": "Block", "src": "4914:60:1", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 496, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 486, "src": "4955:11:1", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "expression": { "id": 494, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "4931:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_super$_FleekERC721_$725_$", "typeString": "type(contract super FleekERC721)" } }, "id": 495, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4937:17:1", "memberName": "supportsInterface", "nodeType": "MemberAccess", "referencedDeclaration": 25446, "src": "4931:23:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", "typeString": "function (bytes4) view returns (bool)" } }, "id": 497, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4931:36:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 493, "id": 498, "nodeType": "Return", "src": "4924:43:1" } ] }, "baseFunctions": [ 25446, 25868 ], "functionSelector": "01ffc9a7", "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nameLocation": "4795:17:1", "overrides": { "id": 490, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 488, "name": "ERC721", "nameLocations": [ "4876:6:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 26719, "src": "4876:6:1" }, { "id": 489, "name": "AccessControl", "nameLocations": [ "4884:13:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 25701, "src": "4884:13:1" } ], "src": "4867:31:1" }, "parameters": { "id": 487, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 486, "mutability": "mutable", "name": "interfaceId", "nameLocation": "4829:11:1", "nodeType": "VariableDeclaration", "scope": 500, "src": "4822:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 485, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "4822:6:1", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "visibility": "internal" } ], "src": "4812:34:1" }, "returnParameters": { "id": 493, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 492, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 500, "src": "4908:4:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 491, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4908:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "4907:6:1" }, "scope": 725, "stateMutability": "view", "virtual": true, "visibility": "public" }, { "id": 509, "nodeType": "FunctionDefinition", "src": "4980:130:1", "nodes": [], "body": { "id": 508, "nodeType": "Block", "src": "5055:55:1", "nodes": [], "statements": [ { "expression": { "hexValue": "646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c", "id": 506, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5072:31:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa", "typeString": "literal_string \"data:application/json;base64,\"" }, "value": "data:application/json;base64," }, "functionReturnParameters": 505, "id": 507, "nodeType": "Return", "src": "5065:38:1" } ] }, "baseFunctions": [ 25988 ], "implemented": true, "kind": "function", "modifiers": [], "name": "_baseURI", "nameLocation": "4989:8:1", "overrides": { "id": 502, "nodeType": "OverrideSpecifier", "overrides": [], "src": "5022:8:1" }, "parameters": { "id": 501, "nodeType": "ParameterList", "parameters": [], "src": "4997:2:1" }, "returnParameters": { "id": 505, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 504, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 509, "src": "5040:13:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 503, "name": "string", "nodeType": "ElementaryTypeName", "src": "5040:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "5039:15:1" }, "scope": 725, "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "id": 536, "nodeType": "FunctionDefinition", "src": "5116:307:1", "nodes": [], "body": { "id": 535, "nodeType": "Block", "src": "5264:159:1", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 520, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 511, "src": "5289:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 519, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26597, "src": "5274:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" } }, "id": 521, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5274:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 522, "nodeType": "ExpressionStatement", "src": "5274:23:1" }, { "expression": { "id": 528, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "baseExpression": { "id": 523, "name": "_apps", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "5307:5:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.App storage ref)" } }, "id": 525, "indexExpression": { "id": 524, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 511, "src": "5313:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5307:14:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage", "typeString": "struct FleekERC721.App storage ref" } }, "id": 526, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "5322:12:1", "memberName": "external_url", "nodeType": "MemberAccess", "referencedDeclaration": 165, "src": "5307:27:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 527, "name": "_tokenExternalURL", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 513, "src": "5337:17:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "5307:47:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 529, "nodeType": "ExpressionStatement", "src": "5307:47:1" }, { "eventCall": { "arguments": [ { "id": 531, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 511, "src": "5389:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 532, "name": "_tokenExternalURL", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 513, "src": "5398:17:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 530, "name": "NewTokenExternalURL", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 146, "src": "5369:19:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,string memory)" } }, "id": 533, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5369:47:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 534, "nodeType": "EmitStatement", "src": "5364:52:1" } ] }, "functionSelector": "f9315177", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "id": 516, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 511, "src": "5255:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 517, "kind": "modifierInvocation", "modifierName": { "id": 515, "name": "requireTokenController", "nameLocations": [ "5232:22:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 79, "src": "5232:22:1" }, "nodeType": "ModifierInvocation", "src": "5232:31:1" } ], "name": "setTokenExternalURL", "nameLocation": "5125:19:1", "parameters": { "id": 514, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 511, "mutability": "mutable", "name": "tokenId", "nameLocation": "5162:7:1", "nodeType": "VariableDeclaration", "scope": 536, "src": "5154:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 510, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5154:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 513, "mutability": "mutable", "name": "_tokenExternalURL", "nameLocation": "5193:17:1", "nodeType": "VariableDeclaration", "scope": 536, "src": "5179:31:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 512, "name": "string", "nodeType": "ElementaryTypeName", "src": "5179:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "5144:72:1" }, "returnParameters": { "id": 518, "nodeType": "ParameterList", "parameters": [], "src": "5264:0:1" }, "scope": 725, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "id": 563, "nodeType": "FunctionDefinition", "src": "5429:258:1", "nodes": [], "body": { "id": 562, "nodeType": "Block", "src": "5561:126:1", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 547, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 538, "src": "5586:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 546, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26597, "src": "5571:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" } }, "id": 548, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5571:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 549, "nodeType": "ExpressionStatement", "src": "5571:23:1" }, { "expression": { "id": 555, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "baseExpression": { "id": 550, "name": "_apps", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "5604:5:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.App storage ref)" } }, "id": 552, "indexExpression": { "id": 551, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 538, "src": "5610:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5604:14:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage", "typeString": "struct FleekERC721.App storage ref" } }, "id": 553, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "5619:3:1", "memberName": "ENS", "nodeType": "MemberAccess", "referencedDeclaration": 167, "src": "5604:18:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 554, "name": "_tokenENS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 540, "src": "5625:9:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "5604:30:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 556, "nodeType": "ExpressionStatement", "src": "5604:30:1" }, { "eventCall": { "arguments": [ { "id": 558, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 538, "src": "5661:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 559, "name": "_tokenENS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 540, "src": "5670:9:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 557, "name": "NewTokenENS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 152, "src": "5649:11:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,string memory)" } }, "id": 560, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5649:31:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 561, "nodeType": "EmitStatement", "src": "5644:36:1" } ] }, "functionSelector": "78278cca", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "id": 543, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 538, "src": "5552:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 544, "kind": "modifierInvocation", "modifierName": { "id": 542, "name": "requireTokenController", "nameLocations": [ "5529:22:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 79, "src": "5529:22:1" }, "nodeType": "ModifierInvocation", "src": "5529:31:1" } ], "name": "setTokenENS", "nameLocation": "5438:11:1", "parameters": { "id": 541, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 538, "mutability": "mutable", "name": "tokenId", "nameLocation": "5467:7:1", "nodeType": "VariableDeclaration", "scope": 563, "src": "5459:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 537, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5459:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 540, "mutability": "mutable", "name": "_tokenENS", "nameLocation": "5498:9:1", "nodeType": "VariableDeclaration", "scope": 563, "src": "5484:23:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 539, "name": "string", "nodeType": "ElementaryTypeName", "src": "5484:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "5449:64:1" }, "returnParameters": { "id": 545, "nodeType": "ParameterList", "parameters": [], "src": "5561:0:1" }, "scope": 725, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "id": 590, "nodeType": "FunctionDefinition", "src": "5693:264:1", "nodes": [], "body": { "id": 589, "nodeType": "Block", "src": "5827:130:1", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 574, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 565, "src": "5852:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 573, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26597, "src": "5837:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" } }, "id": 575, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5837:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 576, "nodeType": "ExpressionStatement", "src": "5837:23:1" }, { "expression": { "id": 582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "baseExpression": { "id": 577, "name": "_apps", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "5870:5:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.App storage ref)" } }, "id": 579, "indexExpression": { "id": 578, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 565, "src": "5876:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "5870:14:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage", "typeString": "struct FleekERC721.App storage ref" } }, "id": 580, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "5885:4:1", "memberName": "name", "nodeType": "MemberAccess", "referencedDeclaration": 159, "src": "5870:19:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 581, "name": "_tokenName", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 567, "src": "5892:10:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "5870:32:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 583, "nodeType": "ExpressionStatement", "src": "5870:32:1" }, { "eventCall": { "arguments": [ { "id": 585, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 565, "src": "5930:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 586, "name": "_tokenName", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 567, "src": "5939:10:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 584, "name": "NewTokenName", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 128, "src": "5917:12:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,string memory)" } }, "id": 587, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5917:33:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 588, "nodeType": "EmitStatement", "src": "5912:38:1" } ] }, "functionSelector": "cdb0e89e", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "id": 570, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 565, "src": "5818:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 571, "kind": "modifierInvocation", "modifierName": { "id": 569, "name": "requireTokenController", "nameLocations": [ "5795:22:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 79, "src": "5795:22:1" }, "nodeType": "ModifierInvocation", "src": "5795:31:1" } ], "name": "setTokenName", "nameLocation": "5702:12:1", "parameters": { "id": 568, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 565, "mutability": "mutable", "name": "tokenId", "nameLocation": "5732:7:1", "nodeType": "VariableDeclaration", "scope": 590, "src": "5724:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 564, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5724:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 567, "mutability": "mutable", "name": "_tokenName", "nameLocation": "5763:10:1", "nodeType": "VariableDeclaration", "scope": 590, "src": "5749:24:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 566, "name": "string", "nodeType": "ElementaryTypeName", "src": "5749:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "5714:65:1" }, "returnParameters": { "id": 572, "nodeType": "ParameterList", "parameters": [], "src": "5827:0:1" }, "scope": 725, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "id": 617, "nodeType": "FunctionDefinition", "src": "5963:306:1", "nodes": [], "body": { "id": 616, "nodeType": "Block", "src": "6111:158:1", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 601, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 592, "src": "6136:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 600, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26597, "src": "6121:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" } }, "id": 602, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6121:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 603, "nodeType": "ExpressionStatement", "src": "6121:23:1" }, { "expression": { "id": 609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "baseExpression": { "id": 604, "name": "_apps", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "6154:5:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.App storage ref)" } }, "id": 606, "indexExpression": { "id": 605, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 592, "src": "6160:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6154:14:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage", "typeString": "struct FleekERC721.App storage ref" } }, "id": 607, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "6169:11:1", "memberName": "description", "nodeType": "MemberAccess", "referencedDeclaration": 161, "src": "6154:26:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 608, "name": "_tokenDescription", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 594, "src": "6183:17:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "6154:46:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 610, "nodeType": "ExpressionStatement", "src": "6154:46:1" }, { "eventCall": { "arguments": [ { "id": 612, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 592, "src": "6235:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 613, "name": "_tokenDescription", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 594, "src": "6244:17:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 611, "name": "NewTokenDescription", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 134, "src": "6215:19:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,string memory)" } }, "id": 614, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6215:47:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 615, "nodeType": "EmitStatement", "src": "6210:52:1" } ] }, "functionSelector": "246a908b", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "id": 597, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 592, "src": "6102:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 598, "kind": "modifierInvocation", "modifierName": { "id": 596, "name": "requireTokenController", "nameLocations": [ "6079:22:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 79, "src": "6079:22:1" }, "nodeType": "ModifierInvocation", "src": "6079:31:1" } ], "name": "setTokenDescription", "nameLocation": "5972:19:1", "parameters": { "id": 595, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 592, "mutability": "mutable", "name": "tokenId", "nameLocation": "6009:7:1", "nodeType": "VariableDeclaration", "scope": 617, "src": "6001:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 591, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6001:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 594, "mutability": "mutable", "name": "_tokenDescription", "nameLocation": "6040:17:1", "nodeType": "VariableDeclaration", "scope": 617, "src": "6026:31:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 593, "name": "string", "nodeType": "ElementaryTypeName", "src": "6026:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "5991:72:1" }, "returnParameters": { "id": 599, "nodeType": "ParameterList", "parameters": [], "src": "6111:0:1" }, "scope": 725, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "id": 644, "nodeType": "FunctionDefinition", "src": "6275:270:1", "nodes": [], "body": { "id": 643, "nodeType": "Block", "src": "6411:134:1", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 628, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 619, "src": "6436:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 627, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26597, "src": "6421:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" } }, "id": 629, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6421:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 630, "nodeType": "ExpressionStatement", "src": "6421:23:1" }, { "expression": { "id": 636, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "baseExpression": { "id": 631, "name": "_apps", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "6454:5:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.App storage ref)" } }, "id": 633, "indexExpression": { "id": 632, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 619, "src": "6460:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6454:14:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage", "typeString": "struct FleekERC721.App storage ref" } }, "id": 634, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "6469:5:1", "memberName": "image", "nodeType": "MemberAccess", "referencedDeclaration": 163, "src": "6454:20:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 635, "name": "_tokenImage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 621, "src": "6477:11:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "6454:34:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 637, "nodeType": "ExpressionStatement", "src": "6454:34:1" }, { "eventCall": { "arguments": [ { "id": 639, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 619, "src": "6517:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 640, "name": "_tokenImage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 621, "src": "6526:11:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 638, "name": "NewTokenImage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 140, "src": "6503:13:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,string memory)" } }, "id": 641, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6503:35:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 642, "nodeType": "EmitStatement", "src": "6498:40:1" } ] }, "functionSelector": "64140ec0", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "id": 624, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 619, "src": "6402:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 625, "kind": "modifierInvocation", "modifierName": { "id": 623, "name": "requireTokenController", "nameLocations": [ "6379:22:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 79, "src": "6379:22:1" }, "nodeType": "ModifierInvocation", "src": "6379:31:1" } ], "name": "setTokenImage", "nameLocation": "6284:13:1", "parameters": { "id": 622, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 619, "mutability": "mutable", "name": "tokenId", "nameLocation": "6315:7:1", "nodeType": "VariableDeclaration", "scope": 644, "src": "6307:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 618, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6307:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 621, "mutability": "mutable", "name": "_tokenImage", "nameLocation": "6346:11:1", "nodeType": "VariableDeclaration", "scope": 644, "src": "6332:25:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 620, "name": "string", "nodeType": "ElementaryTypeName", "src": "6332:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "6297:66:1" }, "returnParameters": { "id": 626, "nodeType": "ParameterList", "parameters": [], "src": "6411:0:1" }, "scope": 725, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "id": 682, "nodeType": "FunctionDefinition", "src": "6551:364:1", "nodes": [], "body": { "id": 681, "nodeType": "Block", "src": "6727:188:1", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 657, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 646, "src": "6752:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 656, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26597, "src": "6737:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" } }, "id": 658, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6737:23:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 659, "nodeType": "ExpressionStatement", "src": "6737:23:1" }, { "expression": { "id": 674, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "expression": { "baseExpression": { "id": 660, "name": "_apps", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "6770:5:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.App storage ref)" } }, "id": 662, "indexExpression": { "id": 661, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 646, "src": "6776:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6770:14:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage", "typeString": "struct FleekERC721.App storage ref" } }, "id": 663, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "6785:6:1", "memberName": "builds", "nodeType": "MemberAccess", "referencedDeclaration": 174, "src": "6770:21:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Build_$157_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.Build storage ref)" } }, "id": 669, "indexExpression": { "id": 668, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": true, "src": "6792:30:1", "subExpression": { "expression": { "baseExpression": { "id": 664, "name": "_apps", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "6794:5:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.App storage ref)" } }, "id": 666, "indexExpression": { "id": 665, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 646, "src": "6800:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6794:14:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage", "typeString": "struct FleekERC721.App storage ref" } }, "id": 667, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "6809:13:1", "memberName": "current_build", "nodeType": "MemberAccess", "referencedDeclaration": 169, "src": "6794:28:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "6770:53:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Build_$157_storage", "typeString": "struct FleekERC721.Build storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 671, "name": "_commit_hash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 648, "src": "6832:12:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "id": 672, "name": "_git_repository", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 650, "src": "6846:15:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 670, "name": "Build", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 157, "src": "6826:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Build_$157_storage_ptr_$", "typeString": "type(struct FleekERC721.Build storage pointer)" } }, "id": 673, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6826:36:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Build_$157_memory_ptr", "typeString": "struct FleekERC721.Build memory" } }, "src": "6770:92:1", "typeDescriptions": { "typeIdentifier": "t_struct$_Build_$157_storage", "typeString": "struct FleekERC721.Build storage ref" } }, "id": 675, "nodeType": "ExpressionStatement", "src": "6770:92:1" }, { "eventCall": { "arguments": [ { "id": 677, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 646, "src": "6886:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 678, "name": "_commit_hash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 648, "src": "6895:12:1", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 676, "name": "NewBuild", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 122, "src": "6877:8:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,string memory)" } }, "id": 679, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6877:31:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 680, "nodeType": "EmitStatement", "src": "6872:36:1" } ] }, "functionSelector": "3806f152", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "id": 653, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 646, "src": "6718:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 654, "kind": "modifierInvocation", "modifierName": { "id": 652, "name": "requireTokenController", "nameLocations": [ "6695:22:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 79, "src": "6695:22:1" }, "nodeType": "ModifierInvocation", "src": "6695:31:1" } ], "name": "setTokenBuild", "nameLocation": "6560:13:1", "parameters": { "id": 651, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 646, "mutability": "mutable", "name": "tokenId", "nameLocation": "6591:7:1", "nodeType": "VariableDeclaration", "scope": 682, "src": "6583:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 645, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6583:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 648, "mutability": "mutable", "name": "_commit_hash", "nameLocation": "6622:12:1", "nodeType": "VariableDeclaration", "scope": 682, "src": "6608:26:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 647, "name": "string", "nodeType": "ElementaryTypeName", "src": "6608:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 650, "mutability": "mutable", "name": "_git_repository", "nameLocation": "6658:15:1", "nodeType": "VariableDeclaration", "scope": 682, "src": "6644:29:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 649, "name": "string", "nodeType": "ElementaryTypeName", "src": "6644:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "6573:106:1" }, "returnParameters": { "id": 655, "nodeType": "ParameterList", "parameters": [], "src": "6727:0:1" }, "scope": 725, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "id": 724, "nodeType": "FunctionDefinition", "src": "6921:356:1", "nodes": [], "body": { "id": 723, "nodeType": "Block", "src": "7013:264:1", "nodes": [], "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 696, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "id": 692, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 684, "src": "7052:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 691, "name": "ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25920, "src": "7044:7:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, "id": 693, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7044:16:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "id": 694, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "7064:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 695, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7068:6:1", "memberName": "sender", "nodeType": "MemberAccess", "src": "7064:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "7044:30:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "466c65656b4552433732313a206d75737420626520746f6b656e206f776e6572", "id": 697, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "7088:34:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a648a3de5d26aef0474a63f309beeecd457a566959dd1cff4538789f49f0cc66", "typeString": "literal_string \"FleekERC721: must be token owner\"" }, "value": "FleekERC721: must be token owner" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a648a3de5d26aef0474a63f309beeecd457a566959dd1cff4538789f49f0cc66", "typeString": "literal_string \"FleekERC721: must be token owner\"" } ], "id": 690, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "7023:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 698, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7023:109:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 699, "nodeType": "ExpressionStatement", "src": "7023:109:1" }, { "expression": { "arguments": [ { "id": 703, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 684, "src": "7154:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 700, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "7142:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_super$_FleekERC721_$725_$", "typeString": "type(contract super FleekERC721)" } }, "id": 702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7148:5:1", "memberName": "_burn", "nodeType": "MemberAccess", "referencedDeclaration": 26442, "src": "7142:11:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 704, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7142:20:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 705, "nodeType": "ExpressionStatement", "src": "7142:20:1" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 715, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "arguments": [ { "expression": { "baseExpression": { "id": 708, "name": "_apps", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "7183:5:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.App storage ref)" } }, "id": 710, "indexExpression": { "id": 709, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 684, "src": "7189:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "7183:14:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage", "typeString": "struct FleekERC721.App storage ref" } }, "id": 711, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "7198:12:1", "memberName": "external_url", "nodeType": "MemberAccess", "referencedDeclaration": 165, "src": "7183:27:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } ], "id": 707, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "7177:5:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { "id": 706, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "7177:5:1", "typeDescriptions": {} } }, "id": 712, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7177:34:1", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "id": 713, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7212:6:1", "memberName": "length", "nodeType": "MemberAccess", "src": "7177:41:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "hexValue": "30", "id": 714, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7222:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "7177:46:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 722, "nodeType": "IfStatement", "src": "7173:98:1", "trueBody": { "id": 721, "nodeType": "Block", "src": "7225:46:1", "statements": [ { "expression": { "id": 719, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, "src": "7239:21:1", "subExpression": { "baseExpression": { "id": 716, "name": "_apps", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 183, "src": "7246:5:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$", "typeString": "mapping(uint256 => struct FleekERC721.App storage ref)" } }, "id": 718, "indexExpression": { "id": 717, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 684, "src": "7252:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "7246:14:1", "typeDescriptions": { "typeIdentifier": "t_struct$_App_$175_storage", "typeString": "struct FleekERC721.App storage ref" } }, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 720, "nodeType": "ExpressionStatement", "src": "7239:21:1" } ] } } ] }, "functionSelector": "42966c68", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "id": 687, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 684, "src": "7004:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 688, "kind": "modifierInvocation", "modifierName": { "id": 686, "name": "requireTokenController", "nameLocations": [ "6981:22:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 79, "src": "6981:22:1" }, "nodeType": "ModifierInvocation", "src": "6981:31:1" } ], "name": "burn", "nameLocation": "6930:4:1", "parameters": { "id": 685, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 684, "mutability": "mutable", "name": "tokenId", "nameLocation": "6952:7:1", "nodeType": "VariableDeclaration", "scope": 724, "src": "6944:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 683, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6944:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "6934:31:1" }, "returnParameters": { "id": 689, "nodeType": "ParameterList", "parameters": [], "src": "7013:0:1" }, "scope": 725, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" } ], "abstract": false, "baseContracts": [ { "baseName": { "id": 106, "name": "ERC721", "nameLocations": [ "280:6:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 26719, "src": "280:6:1" }, "id": 107, "nodeType": "InheritanceSpecifier", "src": "280:6:1" }, { "baseName": { "id": 108, "name": "FleekAccessControl", "nameLocations": [ "288:18:1" ], "nodeType": "IdentifierPath", "referencedDeclaration": 99, "src": "288:18:1" }, "id": 109, "nodeType": "InheritanceSpecifier", "src": "288:18:1" } ], "canonicalName": "FleekERC721", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ 725, 99, 25701, 26719, 26880, 26835, 27552, 27564, 25774, 27279 ], "name": "FleekERC721", "nameLocation": "265:11:1", "scope": 726, "usedErrors": [] } ], "license": "MIT" }, "id": 1 }