{ "contractName": "OnChainSVG", "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "uint256", "name": "uid", "type": "uint256" } ], "name": "getSvgImage", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"uid\",\"type\":\"uint256\"}],\"name\":\"getSvgImage\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/OnChainSVG.sol\":\"OnChainSVG\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"project:/contracts/OnChainSVG.sol\":{\"keccak256\":\"0xce893c5e5b2e607e91da0fecddc58e8416d517a204766f8baf69151422775c13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e59f2aae0b1885f08d5ce2a2b9ee6696bbf9101e8a58ea89fd417ccc14ff9f4\",\"dweb:/ipfs/Qmd4MHGxR4TCrFZhtQpuaT3PUnQXDoR4VCFwZm7nNXLWm5\"]}},\"version\":1}", "bytecode": "0x608060405234801561001057600080fd5b506126e5806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80636796b7dd14610030575b600080fd5b61004a60048036038101906100459190610339565b610060565b60405161005791906103f6565b60405180910390f35b6060600061006d836100dd565b905060006040518061096001604052806109318152602001611d7f610931913990506000604051806118c0016040528061189b81526020016104e461189b913990508183826040516020016100c493929190610454565b6040516020818303038152906040529350505050919050565b6060600060016100ec846101ab565b01905060008167ffffffffffffffff81111561010b5761010a610485565b5b6040519080825280601f01601f19166020018201604052801561013d5781602001600182028036833780820191505090505b509050600082602001820190505b6001156101a0578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581610194576101936104b4565b5b0494506000850361014b575b819350505050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610209577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816101ff576101fe6104b4565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310610246576d04ee2d6d415b85acef8100000000838161023c5761023b6104b4565b5b0492506020810190505b662386f26fc10000831061027557662386f26fc10000838161026b5761026a6104b4565b5b0492506010810190505b6305f5e100831061029e576305f5e1008381610294576102936104b4565b5b0492506008810190505b61271083106102c35761271083816102b9576102b86104b4565b5b0492506004810190505b606483106102e657606483816102dc576102db6104b4565b5b0492506002810190505b600a83106102f5576001810190505b80915050919050565b600080fd5b6000819050919050565b61031681610303565b811461032157600080fd5b50565b6000813590506103338161030d565b92915050565b60006020828403121561034f5761034e6102fe565b5b600061035d84828501610324565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156103a0578082015181840152602081019050610385565b60008484015250505050565b6000601f19601f8301169050919050565b60006103c882610366565b6103d28185610371565b93506103e2818560208601610382565b6103eb816103ac565b840191505092915050565b6000602082019050818103600083015261041081846103bd565b905092915050565b600081905092915050565b600061042e82610366565b6104388185610418565b9350610448818560208601610382565b80840191505092915050565b60006104608286610423565b915061046c8285610423565b91506104788284610423565b9150819050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfe5d5d3e3c2f747370616e3e3c2f746578743e3c7374796c653e3c215b43444154415b40666f6e742d66616365207b666f6e742d66616d696c793a2027655932476a50376b355374313a3a3a536f757263652053616e732050726f273b666f6e742d7374796c653a206e6f726d616c3b666f6e742d7765696768743a203730303b7372633a2075726c28646174613a666f6e742f7474663b636861727365743d7574662d383b6261736536342c414145414141414e41494141417742515230524652674153414251414141446341414141466b645154314e53446b4733414141486141414141787848553156435a6e553268774141417951414141484954314d764d6c7842647134414141484d4141414159474e745958414345414d35414141436f4141414149526e62486c6d6e68456676514141436f514141416451614756685a42742f4874514141414659414141414e6d686f5a57454b66775863414141424e4141414143526f625852344d5230464167414141697741414142306247396a5952326748395941414147514141414150473168654841414e5144334141414139414141414342755957316c55755a7533674141424f774141414a386347397a64502f524144494141414555414141414941414241414141444141414141414141414143414145414167415441414541414141424141414148514351414177415977414841414541414141414141414141414141414141414241414441414d41414141414141442f7a674179414141414141414141414141414141414141414141414141414141414151414141396a2b37774141434a6a2b4e2f343343473041415141414141414141414141414141414141414141423041415141414141494c68645a7438343566447a7a314141454436414141414144595861434541414141414e316d4c7a622b4e2f3745434730443851414241414d41416741414141414141414141414377414c414267414977417a414464415134425141467a415838426c77477a416555434277497a416c4d436a674b7a4174554442414d5141796f4452414e4d4132594467414f4a413549447141414441696f43764141464141414369674a594141414153774b4b416c674141414665414449424b5141414167734841774d454177494342414141414363414141414441414141414141414141424252454a50414341414950372f4175372f426741414139674245534141415a384141414141416641436c4141414143414141774b794146414179414141416c304154514a47414334434c41416a4169774147514939414545435051416e416759414a414555414463434a4142424152344151514e5a4145454350414242416973414a41474f41454542757741564158384145514934414477434351414d41525141515146594145674257414177415251414e77454d414438424441416a415177415077454d41434d4141502b74414141414167414141414d414141415541414d41415141414142514142414277414141414741415141414d414341416741436b4151774255414749415a5142704147384164514235414b442f2f774141414341414b41424341464d415967426b41476b416177427941486b416f502f2f2f2b482f37662f412f37482f70502b6a2f36442f6e2f2b642f35722f595141424141414141414141414141414141414141414141414141414141414141414141414145414141414b414b41425441414552455a4d5641434759336c79624142325a334a6c6177426d62474630626741614145414141304661525341414d6b4e53564341414a46525353794141466741412f2f38414241414741413041454141584141442f2f77414541415541444141504142594141502f2f414151414241414c41413441465141412f2f38414177414441416f41464141454141414141502f2f41414d414167414a41424d41424141414141442f2f774144414145414341415341415141414141412f2f38414177414141416341455141595a4735766251436d5a4735766251436d5a4735766251436d5a4735766251436d5a4735766251436d5a4735766251436d5a4735766251436d5a6e4a68597743655a6e4a68597743655a6e4a68597743655a6e4a68597743655a6e4a68597743655a6e4a68597743655a6e4a68597743656247396a624143596247396a624143596247396a62414359626e567463674353626e567463674353626e567463674353626e567463674353626e567463674353626e567463674353626e56746367435341414141415141424141414141514141414141414167414241414d4141414142414149414251426f4146494152414161414177414151414141414541434141424143442f2f674147414141414151414941414d4141514161414145414567414141414541414141454141454141674161414273414151414341426741475141424141414141514149414145414641414441414541414141424141674141514147414155414151414341425541466741424141414141514149414145414267414f414145414151414a414141414341426d41414d414151514a414141417867465141414d414151514a414145414867457941414d414151514a414149414341457141414d414151514a41414d415267446b41414d414151514a414151414b41433841414d414151514a414155415a41425941414d414151514a414159414a41413041414d414151514a414134414e4141414147674164414230414841414f674176414338416377426a4148494161514277414851416377417541484d41615142734143344162774279414763414c7742504145594154414254414738416451427941474d415a514254414745416267427a41464141636742764143304151674276414777415a414257414755416367427a41476b4162774275414341414d674175414441414e414131414473416141427641485141597742764147344164674167414445414c674177414334414d51417741446b414f774274414745416177426c414738416441426d414755416541426c414341414d674175414455414c674132414455414e5141354144594155774276414855416367426a4147554149414254414745416267427a41434141554142794147384149414243414738416241426b414449414c674177414451414e5141374145454152414243414538414f774254414738416451427941474d415a514254414745416267427a41464141636742764143304151674276414777415a41413741454541524142504145494152514243414738416241426b41464d4162774231414849415977426c414341415577426841473441637741674146414163674276414b6b4149414179414441414d514177414341414c514167414449414d41417841446741494142424147514162774269414755414941425441486b4163774230414755416251427a414341415351427541474d41627742794148414162774279414745416441426c414751414941416f4147674164414230414841414f6741764143384164774233414863414c6742684147514162774269414755414c67426a414738416251417641436b414c41416741486341615142304147674149414253414755416377426c414849416467426c414751414941424741473841626742304143414154674268414730415a5141674942674155774276414855416367426a4147556747514175414145414141414b414651416441414552455a4d5641412b59336c79624141795a334a6c6177416d624746306267416141415141414141412f2f38414151414441415141414141412f2f38414151414341415141414141412f2f38414151414241415141414141412f2f384141514141414152725a584a75414270725a584a75414270725a584a75414270725a584a7541426f4141414142414141414151414541416b414141414341624941436741424141494141414149414149424d414145414141426467464741417741444141412f2b542f33662f4c2f2b3441414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141502f6b4141414141414141414141414141414141414141414141414141442f35762f4641414141414141412f2f674141502f3741414141414141412f2f59414141414141414141414141414141634141502f3441414141414141414141442f37502f6b4141414141414141414141414141414141414141414141414141442f35502f734141414141502f75414141414141414141414141414141412f2b372f37502f7541414141414141414141414141502f3241414141414141412f37542f394141412f39622f35502f6e2f2b674141502f452f395941414141414141414141502f734141414141414141414141414141414141414141414141412f2f674141502f73414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414341414d4142414147414141414367415441414d41465141564141304141514144414255414251414741414d41414141424141454143774141414141414367414b414145414367414a414149414241414841414141414141494141734141514145414249414267414941414d414141414141414141414141424141494141674144414151414251414841416b4143674141414173414151414341414141434141434149674142414141414d67416d41414641417741414141412f2f622f354141414141442f37762f75414141414141414141414141414141412f397a2f39502f624141442f37762f6b4141442f39674141414141414141414141414141414141414141414141414141414141414141414141414141414141412f2f622f354141414141442f2b762f734141414141414141414141414141414141414141414141414141414141414141414141414141414141414141415141474141494141774148414167414351415841414541417741564141514142774144414141414341414941416f41414141414141734143774149414173414251414341416b4142674141414141414151414b414149414251414441414d41415141484141634141674149414167414177414a41416b414241415841426341424141464146414141414a69417051414177414a41413841456741564141417a455345524a544d6e4a794d484e7a4d334e794d58417a636e41524548554149532f71576b4a796b454b536b454b694359483370665877464e58674b552f57786254574a69396c38374f2f36657562722b6a51467a756741414177424e4141414350414b4d41424541476741694141417a45544d794668595646415948465259574652514742694d444d7a49324e54516d49794d524d7a49314e43596a49303366524778414c53677951305279523139464e6a45794e455a546554773955774b4d4855592f4b314d504241314c51554e554b5147484b694d6d495035595743736c414141424143372f3941497741706741477741414253496d4a6a55304e6a597a4d6859584279596d4979494742685555466a4d794e6a635842674664556f7054565931535032516854686b334979784a4b315a494b443859546c494d544a5674624a6c524d794a6546783079586b4a6b6343515a584741414151416a2f2f514343674b5941436f41414155694a6963334668597a4d6a59314e43596e4a7934434e5451324e6a4d79466863484a69596a49675956464259584678595746525147426745555148387956434e574b4334744d7974564954776d4f326c454f484171537942414a7959744f5370554f305936626777774c6d55654a694964487830534a41347652693832574451734b6c305a47783863486834524968685552545a634f41414241426b4141414954416f7741427741414d78456a4e5345564978484d737748367377495166487a3938414141416742422f2f514346674b3941425141487741414253496d4a794d484978457a465163324e6a4d7946685956464159474a7a49324e54516a4967635646685942525346444851514d63354d454855516950466776504639594a6a5a574c436b554b417768494455437661784d4768302b6355785665543934526b79474c637353446741434143662f39414838417230414577416741414158496959314e4459324d7a4957467963314d78456a4a794d47426a63794e6a63314a69596a496759564642627958473837587a51704f426b476b33674b424270474168676e45684d7246434d324c77794c6556463150687759544b6e39517a45614933675547637353446b4e48535555414167416b2f2f51423451483841426741487741414253496d4a6a55304e6a597a4d6859574652514742794557466a4d794e78634742674d7a4e43596a4967594248306479516b4e734f3064644c7751432f74634b526a45314e6a456d5870717a4a7977694e67772b64464a526444382f613051544a516b324d79465a476834424f696b314c77442f2f7741334141414133514c544169594146414141414163414841434b41414141415142424141414348674b394141774141444d524d78457a4e7a4d4845794d6e427856426a7753646f4b36376e33412f4172332b6273584d2f747a4252336f41415142422f2f514245674b3941413841414263694a6a55524d784555466a4d794e6a6358426762495444755445516b46427759534443554d57307343492f33584678494241573046427741424145454141414d6441667741495141414d78457a467a4d324e6a4d79466863324e6a4d7946685552497845304a694d694278456a4554516d497949484555463443675166526a453151524d68536a465153354d64494355776b7830674a533842384541664c53736f496a46725866374d415345324b44442b735145684e6967772f7245414151424241414143414148384142514141444d524d78637a4e6a597a4d68595645534d524e43596a49675948455546344367516754544a52535a4d644942776f47414877507834746131332b7a4145684e69675a462f3678414141434143542f394149484166774144774162414141464969596d4e5451324e6a4d7946685956464159474a7a49324e54516d49794947465251574152592f62305245627a382f626b5245626a38744c6934744c69307444443131556c4e305054313055314a315058644e5145464d544546415451414141514242414141426a7748384142494141444d524d78637a4e6a597a4d6859584279596d497949474278464265416f454730776d4652774b4741305a4542773946414877567a49784251562f424151704d7637674141454146662f30415a38422f41416e414141584969596e4e7859574d7a49324e54516d4a696375416a55304e6a4d79466863484a69596a49685555466863654168555542744d785a795a43496a3866495234644c686f654f79687056546c58483049614e426f354f53596750536c6f4443596658426b6246784d5246684d4b444351354b5556574a7868594642596e47426b4f43794d354c6b4e64414141424142482f39414675416e5141467741414253496d4e54556a4e5463334d78557a46534d564642597a4d6a593346775947415142635430524d4558703364794d6444426b4b46784d3344477057795730476849527a78796f6c42675272426777414141454150502f304166674238414155414141584969593145544d524642597a4d6a593345544d524979636a4267625755556d54486941634a6861546541734448306f4d613130424e5037664e536b61485146492f6842464a5377414151414d2f7a34422f51487741427341414263694a6963334668597a4d6a59334e774d7a46785957467a4d324e6a63334d774d4f416e675749513861427849494a53674b42372b55527773534367514945516b386a6177584f452f43426752774151556b48526f42343955695269556a527950562f67732b56536f414141454151514141414e5142384141444141417a45544d52515a4d4238503451414145415350394e415367433377414e414141584a6959314e44593346775947465251574638772f5255552f584463794d6a657a5a393645684e356e4a6d485861327258596741424144442f545145514174384144514141467963324e6a55304a696333466859564641614d584467794d6a68635030564673795a69313270723132456d5a393645684e372f2f7741334141414133514c54416759414351414141414541502f2b6d414f6b423451414e414141584a6959314e445933467759474652515746356f724d4441725479496949694a61516f4a6157594a434944313951304e39506741424143502f7067444e4165454144514141467963324e6a55304a6963334668595646415a7a5543496949694a514b7938765769412b66554e4466543067516f4a5a576f4c2f2f77412f414b774136514c6e41676341474141414151622f2f77416a414b77417a514c6e41676341475141414151594141662b74416a6b4155774c5441417341414245694a6a55304e6a4d7946685555426955754c69556c4c6934434f536f6a49796f7149794d7141413d3d2920666f726d61742827747275657479706527293b7d5d5d3e3c2f7374796c653e3c2f7376673e3c7376672069643d22655932476a50376b355374312220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7376672220786d6c6e733a786c696e6b3d22687474703a2f2f7777772e77332e6f72672f313939392f786c696e6b222076696577426f783d22302030203531312e393939203531312e393939222073686170652d72656e646572696e673d2267656f6d6574726963507265636973696f6e2220746578742d72656e646572696e673d2267656f6d6574726963507265636973696f6e222077696474683d223531312e39393922206865696768743d223531312e393939223e3c7061746820643d224d3436302e3830332c3434362e373339682d3430392e3630364332322e3936372c3434362e3733392c302c3432332e3737322c302c3339352e353432762d3237392e30383543302c38382e3232372c32322e3936372c36352e32362c35312e3139372c36352e3236683430392e3630356332382e32332c302c35312e3139372c32322e3936372c35312e3139372c35312e313937763237392e303834632e3030312c32382e3233312d32322e3936362c35312e3139382d35312e3139362c35312e3139385a222066696c6c3d2223333961336462222f3e3c7061746820643d224d3436302e3830332c36352e3236682d3230342e383034763338312e343739683230342e3830326332382e32332c302c35312e3139372d32322e3936372c35312e3139372d35312e313937762d3237392e303835433531322c38382e3232372c3438392e3033332c36352e32362c3436302e3830332c36352e32365a222066696c6c3d2223333739376433222f3e3c7061746820643d224d3233372e3431332c3338312e313434682d3135362e313232632d31302e3236342c302d31382e3538362d382e3332322d31382e3538362d31382e353836762d3231332e31313963302d31302e3236342c382e3332322d31382e3538362c31382e3538362d31382e353836683135362e3132326331302e3236342c302c31382e3538362c382e3332322c31382e3538362c31382e353836763231332e31313963302c31302e3236362d382e33322c31382e3538362d31382e3538362c31382e3538365a222066696c6c3d2223383064306531222f3e3c673e3c636972636c6520723d2232372e32303422207472616e73666f726d3d227472616e736c617465283135392e333536203233372e33353529222066696c6c3d2223653866326662222f3e3c7061746820643d224d3136302e3431342c3238352e353539632d34302e3236312c302d37332e3330362c33302e392d37362e37312c37302e3237392d2e3331322c332e3631342c322e3535362c362e3732312c362e3138342c362e373231683134312e30353363332e3632382c302c362e3439362d332e3130362c362e3138342d362e3732312d332e3430352d33392e3337382d33362e3434392d37302e3237392d37362e3731312d37302e3237395a222066696c6c3d2223653866326662222f3e3c2f673e3c7061746820643d224d3433392e3030342c3233342e353836682d3134372e3138632d31302e3236342c302d31382e3538362d382e3332322d31382e3538362d31382e353836762d36362e35363163302d31302e3236342c382e3332322d31382e3538362c31382e3538362d31382e353836683134372e31386331302e3236342c302c31382e3538362c382e3332322c31382e3538362c31382e3538367636362e35363163302c31302e3236352d382e3332312c31382e3538362d31382e3538362c31382e3538365a22207472616e73666f726d3d226d617472697828312e30363537352030203020312e31353431362d32332e3134323833332d31342e37353032373829222066696c6c3d2223353162336461222f3e3c7061746820643d224d3433392e3030342c3238342e343937682d3134372e3138632d31302e3236342c302d31382e3538362d382e3332322d31382e3538362d31382e35383673382e3332322d31382e3538362c31382e3538362d31382e353836683134372e31386331302e3236342c302c31382e3538362c382e3332322c31382e3538362c31382e35383663302c31302e3236362d382e3332312c31382e3538362d31382e3538362c31382e3538365a22207472616e73666f726d3d226d617472697828312e3037353333312030203020312e3532363339352d32352e3736303732362d38312e38323632323129222066696c6c3d2223353162336461222f3e3c746578742064783d2230222064793d22302220666f6e742d66616d696c793d222671756f743b655932476a50376b355374313a3a3a536f757263652053616e732050726f2671756f743b2220666f6e742d73697a653d2232352e35393939352220666f6e742d7765696768743d2237303022207472616e73666f726d3d227472616e736c617465283237302e363036393738203138302e303431353529222066696c6c3d222366666622207374726f6b652d77696474683d2230223e3c747370616e20793d22302220666f6e742d7765696768743d2237303022207374726f6b652d77696474683d2230223e3c215b43444154415b4372656469742053797374656d5d5d3e3c2f747370616e3e3c747370616e20783d22302220793d2232352e35393939352220666f6e742d7765696768743d2237303022207374726f6b652d77696474683d2230223e3c215b43444154415b536f756c626f756e6420546f6b656e5d5d3e3c2f747370616e3e3c747370616e20783d22302220793d2235312e313939392220666f6e742d7765696768743d2237303022207374726f6b652d77696474683d2230223e3c215b43444154415b284353534254295d5d3e3c2f747370616e3e3c2f746578743e3c746578742064783d2230222064793d22302220666f6e742d66616d696c793d222671756f743b655932476a50376b355374313a3a3a536f757263652053616e732050726f2671756f743b2220666f6e742d73697a653d2232352e35393939352220666f6e742d7765696768743d2237303022207472616e73666f726d3d227472616e736c617465283239352e363933363739203333322e34343530393429222066696c6c3d222366666622207374726f6b652d77696474683d2230223e3c747370616e20793d22302220666f6e742d7765696768743d2237303022207374726f6b652d77696474683d2230223e3c215b43444154415ba26469706673582212202768012326fcab6fbb4815525c6bdb65726e6d6ec66ef5be846e0bbb18197ae564736f6c63430008130033", "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80636796b7dd14610030575b600080fd5b61004a60048036038101906100459190610339565b610060565b60405161005791906103f6565b60405180910390f35b6060600061006d836100dd565b905060006040518061096001604052806109318152602001611d7f610931913990506000604051806118c0016040528061189b81526020016104e461189b913990508183826040516020016100c493929190610454565b6040516020818303038152906040529350505050919050565b6060600060016100ec846101ab565b01905060008167ffffffffffffffff81111561010b5761010a610485565b5b6040519080825280601f01601f19166020018201604052801561013d5781602001600182028036833780820191505090505b509050600082602001820190505b6001156101a0578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581610194576101936104b4565b5b0494506000850361014b575b819350505050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310610209577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816101ff576101fe6104b4565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310610246576d04ee2d6d415b85acef8100000000838161023c5761023b6104b4565b5b0492506020810190505b662386f26fc10000831061027557662386f26fc10000838161026b5761026a6104b4565b5b0492506010810190505b6305f5e100831061029e576305f5e1008381610294576102936104b4565b5b0492506008810190505b61271083106102c35761271083816102b9576102b86104b4565b5b0492506004810190505b606483106102e657606483816102dc576102db6104b4565b5b0492506002810190505b600a83106102f5576001810190505b80915050919050565b600080fd5b6000819050919050565b61031681610303565b811461032157600080fd5b50565b6000813590506103338161030d565b92915050565b60006020828403121561034f5761034e6102fe565b5b600061035d84828501610324565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156103a0578082015181840152602081019050610385565b60008484015250505050565b6000601f19601f8301169050919050565b60006103c882610366565b6103d28185610371565b93506103e2818560208601610382565b6103eb816103ac565b840191505092915050565b6000602082019050818103600083015261041081846103bd565b905092915050565b600081905092915050565b600061042e82610366565b6104388185610418565b9350610448818560208601610382565b80840191505092915050565b60006104608286610423565b915061046c8285610423565b91506104788284610423565b9150819050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfe5d5d3e3c2f747370616e3e3c2f746578743e3c7374796c653e3c215b43444154415b40666f6e742d66616365207b666f6e742d66616d696c793a2027655932476a50376b355374313a3a3a536f757263652053616e732050726f273b666f6e742d7374796c653a206e6f726d616c3b666f6e742d7765696768743a203730303b7372633a2075726c28646174613a666f6e742f7474663b636861727365743d7574662d383b6261736536342c414145414141414e41494141417742515230524652674153414251414141446341414141466b645154314e53446b4733414141486141414141787848553156435a6e553268774141417951414141484954314d764d6c7842647134414141484d4141414159474e745958414345414d35414141436f4141414149526e62486c6d6e68456676514141436f514141416451614756685a42742f4874514141414659414141414e6d686f5a57454b66775863414141424e4141414143526f625852344d5230464167414141697741414142306247396a5952326748395941414147514141414150473168654841414e5144334141414139414141414342755957316c55755a7533674141424f774141414a386347397a64502f524144494141414555414141414941414241414141444141414141414141414143414145414167415441414541414141424141414148514351414177415977414841414541414141414141414141414141414141414241414441414d41414141414141442f7a674179414141414141414141414141414141414141414141414141414141414151414141396a2b37774141434a6a2b4e2f343343473041415141414141414141414141414141414141414141423041415141414141494c68645a7438343566447a7a314141454436414141414144595861434541414141414e316d4c7a622b4e2f3745434730443851414241414d41416741414141414141414141414377414c414267414977417a414464415134425141467a415838426c77477a416555434277497a416c4d436a674b7a4174554442414d5141796f4452414e4d4132594467414f4a413549447141414441696f43764141464141414369674a594141414153774b4b416c674141414665414449424b5141414167734841774d454177494342414141414363414141414441414141414141414141424252454a50414341414950372f4175372f426741414139674245534141415a384141414141416641436c4141414143414141774b794146414179414141416c304154514a47414334434c41416a4169774147514939414545435051416e416759414a414555414463434a4142424152344151514e5a4145454350414242416973414a41474f41454542757741564158384145514934414477434351414d41525141515146594145674257414177415251414e77454d414438424441416a415177415077454d41434d4141502b74414141414167414141414d414141415541414d41415141414142514142414277414141414741415141414d414341416741436b4151774255414749415a5142704147384164514235414b442f2f774141414341414b41424341464d415967426b41476b416177427941486b416f502f2f2f2b482f37662f412f37482f70502b6a2f36442f6e2f2b642f35722f595141424141414141414141414141414141414141414141414141414141414141414141414145414141414b414b41425441414552455a4d5641434759336c79624142325a334a6c6177426d62474630626741614145414141304661525341414d6b4e53564341414a46525353794141466741412f2f38414241414741413041454141584141442f2f77414541415541444141504142594141502f2f414151414241414c41413441465141412f2f38414177414441416f41464141454141414141502f2f41414d414167414a41424d41424141414141442f2f774144414145414341415341415141414141412f2f38414177414141416341455141595a4735766251436d5a4735766251436d5a4735766251436d5a4735766251436d5a4735766251436d5a4735766251436d5a4735766251436d5a6e4a68597743655a6e4a68597743655a6e4a68597743655a6e4a68597743655a6e4a68597743655a6e4a68597743655a6e4a68597743656247396a624143596247396a624143596247396a62414359626e567463674353626e567463674353626e567463674353626e567463674353626e567463674353626e567463674353626e56746367435341414141415141424141414141514141414141414167414241414d4141414142414149414251426f4146494152414161414177414151414141414541434141424143442f2f674147414141414151414941414d4141514161414145414567414141414541414141454141454141674161414273414151414341426741475141424141414141514149414145414641414441414541414141424141674141514147414155414151414341425541466741424141414141514149414145414267414f414145414151414a414141414341426d41414d414151514a414141417867465141414d414151514a414145414867457941414d414151514a414149414341457141414d414151514a41414d415267446b41414d414151514a414151414b41433841414d414151514a414155415a41425941414d414151514a414159414a41413041414d414151514a414134414e4141414147674164414230414841414f674176414338416377426a4148494161514277414851416377417541484d41615142734143344162774279414763414c7742504145594154414254414738416451427941474d415a514254414745416267427a41464141636742764143304151674276414777415a414257414755416367427a41476b4162774275414341414d674175414441414e414131414473416141427641485141597742764147344164674167414445414c674177414334414d51417741446b414f774274414745416177426c414738416441426d414755416541426c414341414d674175414455414c674132414455414e5141354144594155774276414855416367426a4147554149414254414745416267427a41434141554142794147384149414243414738416241426b414449414c674177414451414e5141374145454152414243414538414f774254414738416451427941474d415a514254414745416267427a41464141636742764143304151674276414777415a41413741454541524142504145494152514243414738416241426b41464d4162774231414849415977426c414341415577426841473441637741674146414163674276414b6b4149414179414441414d514177414341414c514167414449414d41417841446741494142424147514162774269414755414941425441486b4163774230414755416251427a414341415351427541474d41627742794148414162774279414745416441426c414751414941416f4147674164414230414841414f6741764143384164774233414863414c6742684147514162774269414755414c67426a414738416251417641436b414c41416741486341615142304147674149414253414755416377426c414849416467426c414751414941424741473841626742304143414154674268414730415a5141674942674155774276414855416367426a4147556747514175414145414141414b414651416441414552455a4d5641412b59336c79624141795a334a6c6177416d624746306267416141415141414141412f2f38414151414441415141414141412f2f38414151414341415141414141412f2f38414151414241415141414141412f2f384141514141414152725a584a75414270725a584a75414270725a584a75414270725a584a7541426f4141414142414141414151414541416b414141414341624941436741424141494141414149414149424d414145414141426467464741417741444141412f2b542f33662f4c2f2b3441414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141502f6b4141414141414141414141414141414141414141414141414141442f35762f4641414141414141412f2f674141502f3741414141414141412f2f59414141414141414141414141414141634141502f3441414141414141414141442f37502f6b4141414141414141414141414141414141414141414141414141442f35502f734141414141502f75414141414141414141414141414141412f2b372f37502f7541414141414141414141414141502f3241414141414141412f37542f394141412f39622f35502f6e2f2b674141502f452f395941414141414141414141502f734141414141414141414141414141414141414141414141412f2f674141502f73414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414341414d4142414147414141414367415441414d41465141564141304141514144414255414251414741414d41414141424141454143774141414141414367414b414145414367414a414149414241414841414141414141494141734141514145414249414267414941414d414141414141414141414141424141494141674144414151414251414841416b4143674141414173414151414341414141434141434149674142414141414d67416d41414641417741414141412f2f622f354141414141442f37762f75414141414141414141414141414141412f397a2f39502f624141442f37762f6b4141442f39674141414141414141414141414141414141414141414141414141414141414141414141414141414141412f2f622f354141414141442f2b762f734141414141414141414141414141414141414141414141414141414141414141414141414141414141414141415141474141494141774148414167414351415841414541417741564141514142774144414141414341414941416f41414141414141734143774149414173414251414341416b4142674141414141414151414b414149414251414441414d41415141484141634141674149414167414177414a41416b414241415841426341424141464146414141414a69417051414177414a41413841456741564141417a455345524a544d6e4a794d484e7a4d334e794d58417a636e41524548554149532f71576b4a796b454b536b454b694359483370665877464e58674b552f57786254574a69396c38374f2f36657562722b6a51467a756741414177424e4141414350414b4d41424541476741694141417a45544d794668595646415948465259574652514742694d444d7a49324e54516d49794d524d7a49314e43596a49303366524778414c53677951305279523139464e6a45794e455a546554773955774b4d4855592f4b314d504241314c51554e554b5147484b694d6d495035595743736c414141424143372f3941497741706741477741414253496d4a6a55304e6a597a4d6859584279596d4979494742685555466a4d794e6a635842674664556f7054565931535032516854686b334979784a4b315a494b443859546c494d544a5674624a6c524d794a6546783079586b4a6b6343515a584741414151416a2f2f514343674b5941436f41414155694a6963334668597a4d6a59314e43596e4a7934434e5451324e6a4d79466863484a69596a49675956464259584678595746525147426745555148387956434e574b4334744d7974564954776d4f326c454f484171537942414a7959744f5370554f305936626777774c6d55654a694964487830534a41347652693832574451734b6c305a47783863486834524968685552545a634f41414241426b4141414954416f7741427741414d78456a4e5345564978484d737748367377495166487a3938414141416742422f2f514346674b3941425141487741414253496d4a794d484978457a465163324e6a4d7946685956464159474a7a49324e54516a4967635646685942525346444851514d63354d454855516950466776504639594a6a5a574c436b554b417768494455437661784d4768302b6355785665543934526b79474c637353446741434143662f39414838417230414577416741414158496959314e4459324d7a4957467963314d78456a4a794d47426a63794e6a63314a69596a496759564642627958473837587a51704f426b476b33674b424270474168676e45684d7246434d324c77794c6556463150687759544b6e39517a45614933675547637353446b4e48535555414167416b2f2f51423451483841426741487741414253496d4a6a55304e6a597a4d6859574652514742794557466a4d794e78634742674d7a4e43596a4967594248306479516b4e734f3064644c7751432f74634b526a45314e6a456d5870717a4a7977694e67772b64464a526444382f613051544a516b324d79465a476834424f696b314c77442f2f7741334141414133514c544169594146414141414163414841434b41414141415142424141414348674b394141774141444d524d78457a4e7a4d4845794d6e427856426a7753646f4b36376e33412f4172332b6273584d2f747a4252336f41415142422f2f514245674b3941413841414263694a6a55524d784555466a4d794e6a6358426762495444755445516b46427759534443554d57307343492f33584678494241573046427741424145454141414d6441667741495141414d78457a467a4d324e6a4d79466863324e6a4d7946685552497845304a694d694278456a4554516d497949484555463443675166526a453151524d68536a465153354d64494355776b7830674a533842384541664c53736f496a46725866374d415345324b44442b735145684e6967772f7245414151424241414143414148384142514141444d524d78637a4e6a597a4d68595645534d524e43596a49675948455546344367516754544a52535a4d644942776f47414877507834746131332b7a4145684e69675a462f3678414141434143542f394149484166774144774162414141464969596d4e5451324e6a4d7946685956464159474a7a49324e54516d49794947465251574152592f62305245627a382f626b5245626a38744c6934744c69307444443131556c4e305054313055314a315058644e5145464d544546415451414141514242414141426a7748384142494141444d524d78637a4e6a597a4d6859584279596d497949474278464265416f454730776d4652774b4741305a4542773946414877567a49784251562f424151704d7637674141454146662f30415a38422f41416e414141584969596e4e7859574d7a49324e54516d4a696375416a55304e6a4d79466863484a69596a49685555466863654168555542744d785a795a43496a3866495234644c686f654f79687056546c58483049614e426f354f53596750536c6f4443596658426b6246784d5246684d4b444351354b5556574a7868594642596e47426b4f43794d354c6b4e64414141424142482f39414675416e5141467741414253496d4e54556a4e5463334d78557a46534d564642597a4d6a593346775947415142635430524d4558703364794d6444426b4b46784d3344477057795730476849527a78796f6c42675272426777414141454150502f304166674238414155414141584969593145544d524642597a4d6a593345544d524979636a4267625755556d54486941634a6861546541734448306f4d613130424e5037664e536b61485146492f6842464a5377414151414d2f7a34422f51487741427341414263694a6963334668597a4d6a59334e774d7a46785957467a4d324e6a63334d774d4f416e675749513861427849494a53674b42372b55527773534367514945516b386a6177584f452f43426752774151556b48526f42343955695269556a527950562f67732b56536f414141454151514141414e5142384141444141417a45544d52515a4d4238503451414145415350394e415367433377414e414141584a6959314e44593346775947465251574638772f5255552f584463794d6a657a5a393645684e356e4a6d485861327258596741424144442f545145514174384144514141467963324e6a55304a696333466859564641614d584467794d6a68635030564673795a69313270723132456d5a393645684e372f2f7741334141414133514c54416759414351414141414541502f2b6d414f6b423451414e414141584a6959314e445933467759474652515746356f724d4441725479496949694a61516f4a6157594a434944313951304e39506741424143502f7067444e4165454144514141467963324e6a55304a6963334668595646415a7a5543496949694a514b7938765769412b66554e4466543067516f4a5a576f4c2f2f77412f414b774136514c6e41676341474141414151622f2f77416a414b77417a514c6e41676341475141414151594141662b74416a6b4155774c5441417341414245694a6a55304e6a4d7946685555426955754c69556c4c6934434f536f6a49796f7149794d7141413d3d2920666f726d61742827747275657479706527293b7d5d5d3e3c2f7374796c653e3c2f7376673e3c7376672069643d22655932476a50376b355374312220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7376672220786d6c6e733a786c696e6b3d22687474703a2f2f7777772e77332e6f72672f313939392f786c696e6b222076696577426f783d22302030203531312e393939203531312e393939222073686170652d72656e646572696e673d2267656f6d6574726963507265636973696f6e2220746578742d72656e646572696e673d2267656f6d6574726963507265636973696f6e222077696474683d223531312e39393922206865696768743d223531312e393939223e3c7061746820643d224d3436302e3830332c3434362e373339682d3430392e3630364332322e3936372c3434362e3733392c302c3432332e3737322c302c3339352e353432762d3237392e30383543302c38382e3232372c32322e3936372c36352e32362c35312e3139372c36352e3236683430392e3630356332382e32332c302c35312e3139372c32322e3936372c35312e3139372c35312e313937763237392e303834632e3030312c32382e3233312d32322e3936362c35312e3139382d35312e3139362c35312e3139385a222066696c6c3d2223333961336462222f3e3c7061746820643d224d3436302e3830332c36352e3236682d3230342e383034763338312e343739683230342e3830326332382e32332c302c35312e3139372d32322e3936372c35312e3139372d35312e313937762d3237392e303835433531322c38382e3232372c3438392e3033332c36352e32362c3436302e3830332c36352e32365a222066696c6c3d2223333739376433222f3e3c7061746820643d224d3233372e3431332c3338312e313434682d3135362e313232632d31302e3236342c302d31382e3538362d382e3332322d31382e3538362d31382e353836762d3231332e31313963302d31302e3236342c382e3332322d31382e3538362c31382e3538362d31382e353836683135362e3132326331302e3236342c302c31382e3538362c382e3332322c31382e3538362c31382e353836763231332e31313963302c31302e3236362d382e33322c31382e3538362d31382e3538362c31382e3538365a222066696c6c3d2223383064306531222f3e3c673e3c636972636c6520723d2232372e32303422207472616e73666f726d3d227472616e736c617465283135392e333536203233372e33353529222066696c6c3d2223653866326662222f3e3c7061746820643d224d3136302e3431342c3238352e353539632d34302e3236312c302d37332e3330362c33302e392d37362e37312c37302e3237392d2e3331322c332e3631342c322e3535362c362e3732312c362e3138342c362e373231683134312e30353363332e3632382c302c362e3439362d332e3130362c362e3138342d362e3732312d332e3430352d33392e3337382d33362e3434392d37302e3237392d37362e3731312d37302e3237395a222066696c6c3d2223653866326662222f3e3c2f673e3c7061746820643d224d3433392e3030342c3233342e353836682d3134372e3138632d31302e3236342c302d31382e3538362d382e3332322d31382e3538362d31382e353836762d36362e35363163302d31302e3236342c382e3332322d31382e3538362c31382e3538362d31382e353836683134372e31386331302e3236342c302c31382e3538362c382e3332322c31382e3538362c31382e3538367636362e35363163302c31302e3236352d382e3332312c31382e3538362d31382e3538362c31382e3538365a22207472616e73666f726d3d226d617472697828312e30363537352030203020312e31353431362d32332e3134323833332d31342e37353032373829222066696c6c3d2223353162336461222f3e3c7061746820643d224d3433392e3030342c3238342e343937682d3134372e3138632d31302e3236342c302d31382e3538362d382e3332322d31382e3538362d31382e35383673382e3332322d31382e3538362c31382e3538362d31382e353836683134372e31386331302e3236342c302c31382e3538362c382e3332322c31382e3538362c31382e35383663302c31302e3236362d382e3332312c31382e3538362d31382e3538362c31382e3538365a22207472616e73666f726d3d226d617472697828312e3037353333312030203020312e3532363339352d32352e3736303732362d38312e38323632323129222066696c6c3d2223353162336461222f3e3c746578742064783d2230222064793d22302220666f6e742d66616d696c793d222671756f743b655932476a50376b355374313a3a3a536f757263652053616e732050726f2671756f743b2220666f6e742d73697a653d2232352e35393939352220666f6e742d7765696768743d2237303022207472616e73666f726d3d227472616e736c617465283237302e363036393738203138302e303431353529222066696c6c3d222366666622207374726f6b652d77696474683d2230223e3c747370616e20793d22302220666f6e742d7765696768743d2237303022207374726f6b652d77696474683d2230223e3c215b43444154415b4372656469742053797374656d5d5d3e3c2f747370616e3e3c747370616e20783d22302220793d2232352e35393939352220666f6e742d7765696768743d2237303022207374726f6b652d77696474683d2230223e3c215b43444154415b536f756c626f756e6420546f6b656e5d5d3e3c2f747370616e3e3c747370616e20783d22302220793d2235312e313939392220666f6e742d7765696768743d2237303022207374726f6b652d77696474683d2230223e3c215b43444154415b284353534254295d5d3e3c2f747370616e3e3c2f746578743e3c746578742064783d2230222064793d22302220666f6e742d66616d696c793d222671756f743b655932476a50376b355374313a3a3a536f757263652053616e732050726f2671756f743b2220666f6e742d73697a653d2232352e35393939352220666f6e742d7765696768743d2237303022207472616e73666f726d3d227472616e736c617465283239352e363933363739203333322e34343530393429222066696c6c3d222366666622207374726f6b652d77696474683d2230223e3c747370616e20793d22302220666f6e742d7765696768743d2237303022207374726f6b652d77696474683d2230223e3c215b43444154415ba26469706673582212202768012326fcab6fbb4815525c6bdb65726e6d6ec66ef5be846e0bbb18197ae564736f6c63430008130033", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:3887:15", "statements": [ { "body": { "nodeType": "YulBlock", "src": "47:35:15", "statements": [ { "nodeType": "YulAssignment", "src": "57:19:15", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "73:2:15", "type": "", "value": "64" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "67:5:15" }, "nodeType": "YulFunctionCall", "src": "67:9:15" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "57:6:15" } ] } ] }, "name": "allocate_unbounded", "nodeType": "YulFunctionDefinition", "returnVariables": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "40:6:15", "type": "" } ], "src": "7:75:15" }, { "body": { "nodeType": "YulBlock", "src": "177:28:15", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "194:1:15", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "197:1:15", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "187:6:15" }, "nodeType": "YulFunctionCall", "src": "187:12:15" }, "nodeType": "YulExpressionStatement", "src": "187:12:15" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulFunctionDefinition", "src": "88:117:15" }, { "body": { "nodeType": "YulBlock", "src": "300:28:15", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "317:1:15", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "320:1:15", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "310:6:15" }, "nodeType": "YulFunctionCall", "src": "310:12:15" }, "nodeType": "YulExpressionStatement", "src": "310:12:15" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulFunctionDefinition", "src": "211:117:15" }, { "body": { "nodeType": "YulBlock", "src": "379:32:15", "statements": [ { "nodeType": "YulAssignment", "src": "389:16:15", "value": { "name": "value", "nodeType": "YulIdentifier", "src": "400:5:15" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "389:7:15" } ] } ] }, "name": "cleanup_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "361:5:15", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "371:7:15", "type": "" } ], "src": "334:77:15" }, { "body": { "nodeType": "YulBlock", "src": "460:79:15", "statements": [ { "body": { "nodeType": "YulBlock", "src": "517:16:15", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "526:1:15", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "529:1:15", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "519:6:15" }, "nodeType": "YulFunctionCall", "src": "519:12:15" }, "nodeType": "YulExpressionStatement", "src": "519:12:15" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "483:5:15" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "508:5:15" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "490:17:15" }, "nodeType": "YulFunctionCall", "src": "490:24:15" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "480:2:15" }, "nodeType": "YulFunctionCall", "src": "480:35:15" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "473:6:15" }, "nodeType": "YulFunctionCall", "src": "473:43:15" }, "nodeType": "YulIf", "src": "470:63:15" } ] }, "name": "validator_revert_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "453:5:15", "type": "" } ], "src": "417:122:15" }, { "body": { "nodeType": "YulBlock", "src": "597:87:15", "statements": [ { "nodeType": "YulAssignment", "src": "607:29:15", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "629:6:15" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "616:12:15" }, "nodeType": "YulFunctionCall", "src": "616:20:15" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "607:5:15" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "672:5:15" } ], "functionName": { "name": "validator_revert_t_uint256", "nodeType": "YulIdentifier", "src": "645:26:15" }, "nodeType": "YulFunctionCall", "src": "645:33:15" }, "nodeType": "YulExpressionStatement", "src": "645:33:15" } ] }, "name": "abi_decode_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "575:6:15", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "583:3:15", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "591:5:15", "type": "" } ], "src": "545:139:15" }, { "body": { "nodeType": "YulBlock", "src": "756:263:15", "statements": [ { "body": { "nodeType": "YulBlock", "src": "802:83:15", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", "src": "804:77:15" }, "nodeType": "YulFunctionCall", "src": "804:79:15" }, "nodeType": "YulExpressionStatement", "src": "804:79:15" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "777:7:15" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "786:9:15" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "773:3:15" }, "nodeType": "YulFunctionCall", "src": "773:23:15" }, { "kind": "number", "nodeType": "YulLiteral", "src": "798:2:15", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "769:3:15" }, "nodeType": "YulFunctionCall", "src": "769:32:15" }, "nodeType": "YulIf", "src": "766:119:15" }, { "nodeType": "YulBlock", "src": "895:117:15", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "910:15:15", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "924:1:15", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "914:6:15", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "939:63:15", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "974:9:15" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "985:6:15" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "970:3:15" }, "nodeType": "YulFunctionCall", "src": "970:22:15" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "994:7:15" } ], "functionName": { "name": "abi_decode_t_uint256", "nodeType": "YulIdentifier", "src": "949:20:15" }, "nodeType": "YulFunctionCall", "src": "949:53:15" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "939:6:15" } ] } ] } ] }, "name": "abi_decode_tuple_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "726:9:15", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "737:7:15", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "749:6:15", "type": "" } ], "src": "690:329:15" }, { "body": { "nodeType": "YulBlock", "src": "1084:40:15", "statements": [ { "nodeType": "YulAssignment", "src": "1095:22:15", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1111:5:15" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "1105:5:15" }, "nodeType": "YulFunctionCall", "src": "1105:12:15" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "1095:6:15" } ] } ] }, "name": "array_length_t_string_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1067:5:15", "type": "" } ], "returnVariables": [ { "name": "length", "nodeType": "YulTypedName", "src": "1077:6:15", "type": "" } ], "src": "1025:99:15" }, { "body": { "nodeType": "YulBlock", "src": "1226:73:15", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1243:3:15" }, { "name": "length", "nodeType": "YulIdentifier", "src": "1248:6:15" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1236:6:15" }, "nodeType": "YulFunctionCall", "src": "1236:19:15" }, "nodeType": "YulExpressionStatement", "src": "1236:19:15" }, { "nodeType": "YulAssignment", "src": "1264:29:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1283:3:15" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1288:4:15", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1279:3:15" }, "nodeType": "YulFunctionCall", "src": "1279:14:15" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "1264:11:15" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "1198:3:15", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "1203:6:15", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "1214:11:15", "type": "" } ], "src": "1130:169:15" }, { "body": { "nodeType": "YulBlock", "src": "1367:184:15", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1377:10:15", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "1386:1:15", "type": "", "value": "0" }, "variables": [ { "name": "i", "nodeType": "YulTypedName", "src": "1381:1:15", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "1446:63:15", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "1471:3:15" }, { "name": "i", "nodeType": "YulIdentifier", "src": "1476:1:15" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1467:3:15" }, "nodeType": "YulFunctionCall", "src": "1467:11:15" }, { "arguments": [ { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "1490:3:15" }, { "name": "i", "nodeType": "YulIdentifier", "src": "1495:1:15" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1486:3:15" }, "nodeType": "YulFunctionCall", "src": "1486:11:15" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "1480:5:15" }, "nodeType": "YulFunctionCall", "src": "1480:18:15" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1460:6:15" }, "nodeType": "YulFunctionCall", "src": "1460:39:15" }, "nodeType": "YulExpressionStatement", "src": "1460:39:15" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "1407:1:15" }, { "name": "length", "nodeType": "YulIdentifier", "src": "1410:6:15" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "1404:2:15" }, "nodeType": "YulFunctionCall", "src": "1404:13:15" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", "src": "1418:19:15", "statements": [ { "nodeType": "YulAssignment", "src": "1420:15:15", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "1429:1:15" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1432:2:15", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1425:3:15" }, "nodeType": "YulFunctionCall", "src": "1425:10:15" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", "src": "1420:1:15" } ] } ] }, "pre": { "nodeType": "YulBlock", "src": "1400:3:15", "statements": [] }, "src": "1396:113:15" }, { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "1529:3:15" }, { "name": "length", "nodeType": "YulIdentifier", "src": "1534:6:15" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1525:3:15" }, "nodeType": "YulFunctionCall", "src": "1525:16:15" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1543:1:15", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1518:6:15" }, "nodeType": "YulFunctionCall", "src": "1518:27:15" }, "nodeType": "YulExpressionStatement", "src": "1518:27:15" } ] }, "name": "copy_memory_to_memory_with_cleanup", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "1349:3:15", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", "src": "1354:3:15", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "1359:6:15", "type": "" } ], "src": "1305:246:15" }, { "body": { "nodeType": "YulBlock", "src": "1605:54:15", "statements": [ { "nodeType": "YulAssignment", "src": "1615:38:15", "value": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1633:5:15" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1640:2:15", "type": "", "value": "31" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1629:3:15" }, "nodeType": "YulFunctionCall", "src": "1629:14:15" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1649:2:15", "type": "", "value": "31" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", "src": "1645:3:15" }, "nodeType": "YulFunctionCall", "src": "1645:7:15" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "1625:3:15" }, "nodeType": "YulFunctionCall", "src": "1625:28:15" }, "variableNames": [ { "name": "result", "nodeType": "YulIdentifier", "src": "1615:6:15" } ] } ] }, "name": "round_up_to_mul_of_32", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1588:5:15", "type": "" } ], "returnVariables": [ { "name": "result", "nodeType": "YulTypedName", "src": "1598:6:15", "type": "" } ], "src": "1557:102:15" }, { "body": { "nodeType": "YulBlock", "src": "1757:285:15", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1767:53:15", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1814:5:15" } ], "functionName": { "name": "array_length_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "1781:32:15" }, "nodeType": "YulFunctionCall", "src": "1781:39:15" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "1771:6:15", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "1829:78:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1895:3:15" }, { "name": "length", "nodeType": "YulIdentifier", "src": "1900:6:15" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "1836:58:15" }, "nodeType": "YulFunctionCall", "src": "1836:71:15" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1829:3:15" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1955:5:15" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1962:4:15", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1951:3:15" }, "nodeType": "YulFunctionCall", "src": "1951:16:15" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "1969:3:15" }, { "name": "length", "nodeType": "YulIdentifier", "src": "1974:6:15" } ], "functionName": { "name": "copy_memory_to_memory_with_cleanup", "nodeType": "YulIdentifier", "src": "1916:34:15" }, "nodeType": "YulFunctionCall", "src": "1916:65:15" }, "nodeType": "YulExpressionStatement", "src": "1916:65:15" }, { "nodeType": "YulAssignment", "src": "1990:46:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2001:3:15" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "2028:6:15" } ], "functionName": { "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", "src": "2006:21:15" }, "nodeType": "YulFunctionCall", "src": "2006:29:15" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1997:3:15" }, "nodeType": "YulFunctionCall", "src": "1997:39:15" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "1990:3:15" } ] } ] }, "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1738:5:15", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "1745:3:15", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "1753:3:15", "type": "" } ], "src": "1665:377:15" }, { "body": { "nodeType": "YulBlock", "src": "2166:195:15", "statements": [ { "nodeType": "YulAssignment", "src": "2176:26:15", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "2188:9:15" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2199:2:15", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2184:3:15" }, "nodeType": "YulFunctionCall", "src": "2184:18:15" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "2176:4:15" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "2223:9:15" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2234:1:15", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2219:3:15" }, "nodeType": "YulFunctionCall", "src": "2219:17:15" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "2242:4:15" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "2248:9:15" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "2238:3:15" }, "nodeType": "YulFunctionCall", "src": "2238:20:15" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2212:6:15" }, "nodeType": "YulFunctionCall", "src": "2212:47:15" }, "nodeType": "YulExpressionStatement", "src": "2212:47:15" }, { "nodeType": "YulAssignment", "src": "2268:86:15", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "2340:6:15" }, { "name": "tail", "nodeType": "YulIdentifier", "src": "2349:4:15" } ], "functionName": { "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "2276:63:15" }, "nodeType": "YulFunctionCall", "src": "2276:78:15" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "2268:4:15" } ] } ] }, "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "2138:9:15", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "2150:6:15", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "2161:4:15", "type": "" } ], "src": "2048:313:15" }, { "body": { "nodeType": "YulBlock", "src": "2481:34:15", "statements": [ { "nodeType": "YulAssignment", "src": "2491:18:15", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "2506:3:15" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "2491:11:15" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "2453:3:15", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "2458:6:15", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "2469:11:15", "type": "" } ], "src": "2367:148:15" }, { "body": { "nodeType": "YulBlock", "src": "2631:280:15", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "2641:53:15", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2688:5:15" } ], "functionName": { "name": "array_length_t_string_memory_ptr", "nodeType": "YulIdentifier", "src": "2655:32:15" }, "nodeType": "YulFunctionCall", "src": "2655:39:15" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "2645:6:15", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "2703:96:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2787:3:15" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2792:6:15" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "2710:76:15" }, "nodeType": "YulFunctionCall", "src": "2710:89:15" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2703:3:15" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2847:5:15" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2854:4:15", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2843:3:15" }, "nodeType": "YulFunctionCall", "src": "2843:16:15" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "2861:3:15" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2866:6:15" } ], "functionName": { "name": "copy_memory_to_memory_with_cleanup", "nodeType": "YulIdentifier", "src": "2808:34:15" }, "nodeType": "YulFunctionCall", "src": "2808:65:15" }, "nodeType": "YulExpressionStatement", "src": "2808:65:15" }, { "nodeType": "YulAssignment", "src": "2882:23:15", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2893:3:15" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2898:6:15" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2889:3:15" }, "nodeType": "YulFunctionCall", "src": "2889:16:15" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "2882:3:15" } ] } ] }, "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2612:5:15", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "2619:3:15", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "2627:3:15", "type": "" } ], "src": "2521:390:15" }, { "body": { "nodeType": "YulBlock", "src": "3149:363:15", "statements": [ { "nodeType": "YulAssignment", "src": "3160:102:15", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "3249:6:15" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "3258:3:15" } ], "functionName": { "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "3167:81:15" }, "nodeType": "YulFunctionCall", "src": "3167:95:15" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3160:3:15" } ] }, { "nodeType": "YulAssignment", "src": "3272:102:15", "value": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "3361:6:15" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "3370:3:15" } ], "functionName": { "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "3279:81:15" }, "nodeType": "YulFunctionCall", "src": "3279:95:15" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3272:3:15" } ] }, { "nodeType": "YulAssignment", "src": "3384:102:15", "value": { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", "src": "3473:6:15" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "3482:3:15" } ], "functionName": { "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "3391:81:15" }, "nodeType": "YulFunctionCall", "src": "3391:95:15" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3384:3:15" } ] }, { "nodeType": "YulAssignment", "src": "3496:10:15", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "3503:3:15" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "3496:3:15" } ] } ] }, "name": "abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "3112:3:15", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", "src": "3118:6:15", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "3126:6:15", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "3134:6:15", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "3145:3:15", "type": "" } ], "src": "2917:595:15" }, { "body": { "nodeType": "YulBlock", "src": "3546:152:15", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3563:1:15", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3566:77:15", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3556:6:15" }, "nodeType": "YulFunctionCall", "src": "3556:88:15" }, "nodeType": "YulExpressionStatement", "src": "3556:88:15" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3660:1:15", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3663:4:15", "type": "", "value": "0x41" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3653:6:15" }, "nodeType": "YulFunctionCall", "src": "3653:15:15" }, "nodeType": "YulExpressionStatement", "src": "3653:15:15" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3684:1:15", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3687:4:15", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "3677:6:15" }, "nodeType": "YulFunctionCall", "src": "3677:15:15" }, "nodeType": "YulExpressionStatement", "src": "3677:15:15" } ] }, "name": "panic_error_0x41", "nodeType": "YulFunctionDefinition", "src": "3518:180:15" }, { "body": { "nodeType": "YulBlock", "src": "3732:152:15", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3749:1:15", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3752:77:15", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3742:6:15" }, "nodeType": "YulFunctionCall", "src": "3742:88:15" }, "nodeType": "YulExpressionStatement", "src": "3742:88:15" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3846:1:15", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3849:4:15", "type": "", "value": "0x12" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3839:6:15" }, "nodeType": "YulFunctionCall", "src": "3839:15:15" }, "nodeType": "YulExpressionStatement", "src": "3839:15:15" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "3870:1:15", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3873:4:15", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "3863:6:15" }, "nodeType": "YulFunctionCall", "src": "3863:15:15" }, "nodeType": "YulExpressionStatement", "src": "3863:15:15" } ] }, "name": "panic_error_0x12", "nodeType": "YulFunctionDefinition", "src": "3704:180:15" } ] }, "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value2, pos)\n\n end := pos\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n}\n", "id": 15, "language": "Yul", "name": "#utility.yul" } ], "sourceMap": "118:8916:13:-:0;;;141:16;;;;;;;;;;118:8916;;;;;;", "deployedSourceMap": "118:8916:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;160:8872;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;214:13;232:21;256;273:3;256:16;:21::i;:::-;232:45;;281:15;:2373;;;;;;;;;;;;;;;;;;;2658:15;:6320;;;;;;;;;;;;;;;;;;;9013:1;9016:7;9025:1;8996:31;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8982:46;;;;;160:8872;;;:::o;447:696:8:-;503:13;552:14;589:1;569:17;580:5;569:10;:17::i;:::-;:21;552:38;;604:20;638:6;627:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;604:41;;659:11;785:6;781:2;777:15;769:6;765:28;758:35;;820:280;827:4;820:280;;;851:5;;;;;;;;990:8;985:2;978:5;974:14;969:30;964:3;956:44;1044:2;1035:11;;;;;;:::i;:::-;;;;;1077:1;1068:5;:10;820:280;1064:21;820:280;1120:6;1113:13;;;;;447:696;;;:::o;10139:916:11:-;10192:7;10211:14;10228:1;10211:18;;10276:8;10267:5;:17;10263:103;;10313:8;10304:17;;;;;;:::i;:::-;;;;;10349:2;10339:12;;;;10263:103;10392:8;10383:5;:17;10379:103;;10429:8;10420:17;;;;;;:::i;:::-;;;;;10465:2;10455:12;;;;10379:103;10508:8;10499:5;:17;10495:103;;10545:8;10536:17;;;;;;:::i;:::-;;;;;10581:2;10571:12;;;;10495:103;10624:7;10615:5;:16;10611:100;;10660:7;10651:16;;;;;;:::i;:::-;;;;;10695:1;10685:11;;;;10611:100;10737:7;10728:5;:16;10724:100;;10773:7;10764:16;;;;;;:::i;:::-;;;;;10808:1;10798:11;;;;10724:100;10850:7;10841:5;:16;10837:100;;10886:7;10877:16;;;;;;:::i;:::-;;;;;10921:1;10911:11;;;;10837:100;10963:7;10954:5;:16;10950:66;;11000:1;10990:11;;;;10950:66;11042:6;11035:13;;;10139:916;;;:::o;88:117:15:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:246::-;1386:1;1396:113;1410:6;1407:1;1404:13;1396:113;;;1495:1;1490:3;1486:11;1480:18;1476:1;1471:3;1467:11;1460:39;1432:2;1429:1;1425:10;1420:15;;1396:113;;;1543:1;1534:6;1529:3;1525:16;1518:27;1367:184;1305:246;;;:::o;1557:102::-;1598:6;1649:2;1645:7;1640:2;1633:5;1629:14;1625:28;1615:38;;1557:102;;;:::o;1665:377::-;1753:3;1781:39;1814:5;1781:39;:::i;:::-;1836:71;1900:6;1895:3;1836:71;:::i;:::-;1829:78;;1916:65;1974:6;1969:3;1962:4;1955:5;1951:16;1916:65;:::i;:::-;2006:29;2028:6;2006:29;:::i;:::-;2001:3;1997:39;1990:46;;1757:285;1665:377;;;;:::o;2048:313::-;2161:4;2199:2;2188:9;2184:18;2176:26;;2248:9;2242:4;2238:20;2234:1;2223:9;2219:17;2212:47;2276:78;2349:4;2340:6;2276:78;:::i;:::-;2268:86;;2048:313;;;;:::o;2367:148::-;2469:11;2506:3;2491:18;;2367:148;;;;:::o;2521:390::-;2627:3;2655:39;2688:5;2655:39;:::i;:::-;2710:89;2792:6;2787:3;2710:89;:::i;:::-;2703:96;;2808:65;2866:6;2861:3;2854:4;2847:5;2843:16;2808:65;:::i;:::-;2898:6;2893:3;2889:16;2882:23;;2631:280;2521:390;;;;:::o;2917:595::-;3145:3;3167:95;3258:3;3249:6;3167:95;:::i;:::-;3160:102;;3279:95;3370:3;3361:6;3279:95;:::i;:::-;3272:102;;3391:95;3482:3;3473:6;3391:95;:::i;:::-;3384:102;;3503:3;3496:10;;2917:595;;;;;;:::o;3518:180::-;3566:77;3563:1;3556:88;3663:4;3660:1;3653:15;3687:4;3684:1;3677:15;3704:180;3752:77;3749:1;3742:88;3849:4;3846:1;3839:15;3873:4;3870:1;3863:15", "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.22 <0.9.0;\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\n\ncontract OnChainSVG {\n\tconstructor() {}\n\n\tfunction getSvgImage(uint uid) external pure returns (string memory){\n\t\tstring memory uid_str = Strings.toString(uid);\n\t\tstring memory a = 'Credit SystemSoulbound Token(CSSBT)';\n\t\tstring memory b = \"\";\n\t\treturn string(abi.encodePacked(a, uid_str, b));\n\t}\n}\n", "sourcePath": "/home/snsd0805/code/1112_blockchain/Final/contracts/OnChainSVG.sol", "ast": { "absolutePath": "project:/contracts/OnChainSVG.sol", "exportedSymbols": { "Math": [ 2691 ], "OnChainSVG": [ 2837 ], "SignedMath": [ 2796 ], "Strings": [ 1789 ] }, "id": 2838, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 2798, "literals": [ "solidity", ">=", "0.4", ".22", "<", "0.9", ".0" ], "nodeType": "PragmaDirective", "src": "32:32:13" }, { "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", "file": "@openzeppelin/contracts/utils/Strings.sol", "id": 2799, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 2838, "sourceUnit": 1790, "src": "65:51:13", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [], "canonicalName": "OnChainSVG", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 2837, "linearizedBaseContracts": [ 2837 ], "name": "OnChainSVG", "nameLocation": "127:10:13", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 2802, "nodeType": "Block", "src": "155:2:13", "statements": [] }, "id": 2803, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { "id": 2800, "nodeType": "ParameterList", "parameters": [], "src": "152:2:13" }, "returnParameters": { "id": 2801, "nodeType": "ParameterList", "parameters": [], "src": "155:0:13" }, "scope": 2837, "src": "141:16:13", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 2835, "nodeType": "Block", "src": "228:8804:13", "statements": [ { "assignments": [ 2811 ], "declarations": [ { "constant": false, "id": 2811, "mutability": "mutable", "name": "uid_str", "nameLocation": "246:7:13", "nodeType": "VariableDeclaration", "scope": 2835, "src": "232:21:13", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2810, "name": "string", "nodeType": "ElementaryTypeName", "src": "232:6:13", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "id": 2816, "initialValue": { "arguments": [ { "id": 2814, "name": "uid", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2805, "src": "273:3:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 2812, "name": "Strings", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1789, "src": "256:7:13", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Strings_$1789_$", "typeString": "type(library Strings)" } }, "id": 2813, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "264:8:13", "memberName": "toString", "nodeType": "MemberAccess", "referencedDeclaration": 1619, "src": "256:16:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", "typeString": "function (uint256) pure returns (string memory)" } }, "id": 2815, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "256:21:13", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "nodeType": "VariableDeclarationStatement", "src": "232:45:13" }, { "assignments": [ 2818 ], "declarations": [ { "constant": false, "id": 2818, "mutability": "mutable", "name": "a", "nameLocation": "295:1:13", "nodeType": "VariableDeclaration", "scope": 2835, "src": "281:15:13", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2817, "name": "string", "nodeType": "ElementaryTypeName", "src": "281:6:13", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "id": 2820, "initialValue": { "hexValue": "3c7376672069643d22655932476a50376b355374312220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7376672220786d6c6e733a786c696e6b3d22687474703a2f2f7777772e77332e6f72672f313939392f786c696e6b222076696577426f783d22302030203531312e393939203531312e393939222073686170652d72656e646572696e673d2267656f6d6574726963507265636973696f6e2220746578742d72656e646572696e673d2267656f6d6574726963507265636973696f6e222077696474683d223531312e39393922206865696768743d223531312e393939223e3c7061746820643d224d3436302e3830332c3434362e373339682d3430392e3630364332322e3936372c3434362e3733392c302c3432332e3737322c302c3339352e353432762d3237392e30383543302c38382e3232372c32322e3936372c36352e32362c35312e3139372c36352e3236683430392e3630356332382e32332c302c35312e3139372c32322e3936372c35312e3139372c35312e313937763237392e303834632e3030312c32382e3233312d32322e3936362c35312e3139382d35312e3139362c35312e3139385a222066696c6c3d2223333961336462222f3e3c7061746820643d224d3436302e3830332c36352e3236682d3230342e383034763338312e343739683230342e3830326332382e32332c302c35312e3139372d32322e3936372c35312e3139372d35312e313937762d3237392e303835433531322c38382e3232372c3438392e3033332c36352e32362c3436302e3830332c36352e32365a222066696c6c3d2223333739376433222f3e3c7061746820643d224d3233372e3431332c3338312e313434682d3135362e313232632d31302e3236342c302d31382e3538362d382e3332322d31382e3538362d31382e353836762d3231332e31313963302d31302e3236342c382e3332322d31382e3538362c31382e3538362d31382e353836683135362e3132326331302e3236342c302c31382e3538362c382e3332322c31382e3538362c31382e353836763231332e31313963302c31302e3236362d382e33322c31382e3538362d31382e3538362c31382e3538365a222066696c6c3d2223383064306531222f3e3c673e3c636972636c6520723d2232372e32303422207472616e73666f726d3d227472616e736c617465283135392e333536203233372e33353529222066696c6c3d2223653866326662222f3e3c7061746820643d224d3136302e3431342c3238352e353539632d34302e3236312c302d37332e3330362c33302e392d37362e37312c37302e3237392d2e3331322c332e3631342c322e3535362c362e3732312c362e3138342c362e373231683134312e30353363332e3632382c302c362e3439362d332e3130362c362e3138342d362e3732312d332e3430352d33392e3337382d33362e3434392d37302e3237392d37362e3731312d37302e3237395a222066696c6c3d2223653866326662222f3e3c2f673e3c7061746820643d224d3433392e3030342c3233342e353836682d3134372e3138632d31302e3236342c302d31382e3538362d382e3332322d31382e3538362d31382e353836762d36362e35363163302d31302e3236342c382e3332322d31382e3538362c31382e3538362d31382e353836683134372e31386331302e3236342c302c31382e3538362c382e3332322c31382e3538362c31382e3538367636362e35363163302c31302e3236352d382e3332312c31382e3538362d31382e3538362c31382e3538365a22207472616e73666f726d3d226d617472697828312e30363537352030203020312e31353431362d32332e3134323833332d31342e37353032373829222066696c6c3d2223353162336461222f3e3c7061746820643d224d3433392e3030342c3238342e343937682d3134372e3138632d31302e3236342c302d31382e3538362d382e3332322d31382e3538362d31382e35383673382e3332322d31382e3538362c31382e3538362d31382e353836683134372e31386331302e3236342c302c31382e3538362c382e3332322c31382e3538362c31382e35383663302c31302e3236362d382e3332312c31382e3538362d31382e3538362c31382e3538365a22207472616e73666f726d3d226d617472697828312e3037353333312030203020312e3532363339352d32352e3736303732362d38312e38323632323129222066696c6c3d2223353162336461222f3e3c746578742064783d2230222064793d22302220666f6e742d66616d696c793d222671756f743b655932476a50376b355374313a3a3a536f757263652053616e732050726f2671756f743b2220666f6e742d73697a653d2232352e35393939352220666f6e742d7765696768743d2237303022207472616e73666f726d3d227472616e736c617465283237302e363036393738203138302e303431353529222066696c6c3d222366666622207374726f6b652d77696474683d2230223e3c747370616e20793d22302220666f6e742d7765696768743d2237303022207374726f6b652d77696474683d2230223e3c215b43444154415b4372656469742053797374656d5d5d3e3c2f747370616e3e3c747370616e20783d22302220793d2232352e35393939352220666f6e742d7765696768743d2237303022207374726f6b652d77696474683d2230223e3c215b43444154415b536f756c626f756e6420546f6b656e5d5d3e3c2f747370616e3e3c747370616e20783d22302220793d2235312e313939392220666f6e742d7765696768743d2237303022207374726f6b652d77696474683d2230223e3c215b43444154415b284353534254295d5d3e3c2f747370616e3e3c2f746578743e3c746578742064783d2230222064793d22302220666f6e742d66616d696c793d222671756f743b655932476a50376b355374313a3a3a536f757263652053616e732050726f2671756f743b2220666f6e742d73697a653d2232352e35393939352220666f6e742d7765696768743d2237303022207472616e73666f726d3d227472616e736c617465283239352e363933363739203333322e34343530393429222066696c6c3d222366666622207374726f6b652d77696474683d2230223e3c747370616e20793d22302220666f6e742d7765696768743d2237303022207374726f6b652d77696474683d2230223e3c215b43444154415b", "id": 2819, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "299:2355:13", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a20e4716261edec8361c36422842c58d1d5fc8b652496c3ad653882c41a61361", "typeString": "literal_string \"Credit SystemSoulbound Token(CSSBT)\"" }, "value": "<svg id=\"eY2GjP7k5St1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 511.999 511.999\" shape-rendering=\"geometricPrecision\" text-rendering=\"geometricPrecision\" width=\"511.999\" height=\"511.999\"><path d=\"M460.803,446.739h-409.606C22.967,446.739,0,423.772,0,395.542v-279.085C0,88.227,22.967,65.26,51.197,65.26h409.605c28.23,0,51.197,22.967,51.197,51.197v279.084c.001,28.231-22.966,51.198-51.196,51.198Z\" fill=\"#39a3db\"/><path d=\"M460.803,65.26h-204.804v381.479h204.802c28.23,0,51.197-22.967,51.197-51.197v-279.085C512,88.227,489.033,65.26,460.803,65.26Z\" fill=\"#3797d3\"/><path d=\"M237.413,381.144h-156.122c-10.264,0-18.586-8.322-18.586-18.586v-213.119c0-10.264,8.322-18.586,18.586-18.586h156.122c10.264,0,18.586,8.322,18.586,18.586v213.119c0,10.266-8.32,18.586-18.586,18.586Z\" fill=\"#80d0e1\"/><g><circle r=\"27.204\" transform=\"translate(159.356 237.355)\" fill=\"#e8f2fb\"/><path d=\"M160.414,285.559c-40.261,0-73.306,30.9-76.71,70.279-.312,3.614,2.556,6.721,6.184,6.721h141.053c3.628,0,6.496-3.106,6.184-6.721-3.405-39.378-36.449-70.279-76.711-70.279Z\" fill=\"#e8f2fb\"/></g><path d=\"M439.004,234.586h-147.18c-10.264,0-18.586-8.322-18.586-18.586v-66.561c0-10.264,8.322-18.586,18.586-18.586h147.18c10.264,0,18.586,8.322,18.586,18.586v66.561c0,10.265-8.321,18.586-18.586,18.586Z\" transform=\"matrix(1.06575 0 0 1.15416-23.142833-14.750278)\" fill=\"#51b3da\"/><path d=\"M439.004,284.497h-147.18c-10.264,0-18.586-8.322-18.586-18.586s8.322-18.586,18.586-18.586h147.18c10.264,0,18.586,8.322,18.586,18.586c0,10.266-8.321,18.586-18.586,18.586Z\" transform=\"matrix(1.075331 0 0 1.526395-25.760726-81.826221)\" fill=\"#51b3da\"/><text dx=\"0\" dy=\"0\" font-family=\"&quot;eY2GjP7k5St1:::Source Sans Pro&quot;\" font-size=\"25.59995\" font-weight=\"700\" transform=\"translate(270.606978 180.04155)\" fill=\"#fff\" stroke-width=\"0\"><tspan y=\"0\" font-weight=\"700\" stroke-width=\"0\"><![CDATA[Credit SystemSoulbound Token(CSSBT)" }, "nodeType": "VariableDeclarationStatement", "src": "281:2373:13" }, { "assignments": [ 2822 ], "declarations": [ { "constant": false, "id": 2822, "mutability": "mutable", "name": "b", "nameLocation": "2672:1:13", "nodeType": "VariableDeclaration", "scope": 2835, "src": "2658:15:13", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2821, "name": "string", "nodeType": "ElementaryTypeName", "src": "2658:6:13", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "id": 2824, "initialValue": { "hexValue": "5d5d3e3c2f747370616e3e3c2f746578743e3c7374796c653e3c215b43444154415b40666f6e742d66616365207b666f6e742d66616d696c793a2027655932476a50376b355374313a3a3a536f757263652053616e732050726f273b666f6e742d7374796c653a206e6f726d616c3b666f6e742d7765696768743a203730303b7372633a2075726c28646174613a666f6e742f7474663b636861727365743d7574662d383b6261736536342c414145414141414e41494141417742515230524652674153414251414141446341414141466b645154314e53446b4733414141486141414141787848553156435a6e553268774141417951414141484954314d764d6c7842647134414141484d4141414159474e745958414345414d35414141436f4141414149526e62486c6d6e68456676514141436f514141416451614756685a42742f4874514141414659414141414e6d686f5a57454b66775863414141424e4141414143526f625852344d5230464167414141697741414142306247396a5952326748395941414147514141414150473168654841414e5144334141414139414141414342755957316c55755a7533674141424f774141414a386347397a64502f524144494141414555414141414941414241414141444141414141414141414143414145414167415441414541414141424141414148514351414177415977414841414541414141414141414141414141414141414241414441414d41414141414141442f7a674179414141414141414141414141414141414141414141414141414141414151414141396a2b37774141434a6a2b4e2f343343473041415141414141414141414141414141414141414141423041415141414141494c68645a7438343566447a7a314141454436414141414144595861434541414141414e316d4c7a622b4e2f3745434730443851414241414d41416741414141414141414141414377414c414267414977417a414464415134425141467a415838426c77477a416555434277497a416c4d436a674b7a4174554442414d5141796f4452414e4d4132594467414f4a413549447141414441696f43764141464141414369674a594141414153774b4b416c674141414665414449424b5141414167734841774d454177494342414141414363414141414441414141414141414141424252454a50414341414950372f4175372f426741414139674245534141415a384141414141416641436c4141414143414141774b794146414179414141416c304154514a47414334434c41416a4169774147514939414545435051416e416759414a414555414463434a4142424152344151514e5a4145454350414242416973414a41474f41454542757741564158384145514934414477434351414d41525141515146594145674257414177415251414e77454d414438424441416a415177415077454d41434d4141502b74414141414167414141414d414141415541414d41415141414142514142414277414141414741415141414d414341416741436b4151774255414749415a5142704147384164514235414b442f2f774141414341414b41424341464d415967426b41476b416177427941486b416f502f2f2f2b482f37662f412f37482f70502b6a2f36442f6e2f2b642f35722f595141424141414141414141414141414141414141414141414141414141414141414141414145414141414b414b41425441414552455a4d5641434759336c79624142325a334a6c6177426d62474630626741614145414141304661525341414d6b4e53564341414a46525353794141466741412f2f38414241414741413041454141584141442f2f77414541415541444141504142594141502f2f414151414241414c41413441465141412f2f38414177414441416f41464141454141414141502f2f41414d414167414a41424d41424141414141442f2f774144414145414341415341415141414141412f2f38414177414141416341455141595a4735766251436d5a4735766251436d5a4735766251436d5a4735766251436d5a4735766251436d5a4735766251436d5a4735766251436d5a6e4a68597743655a6e4a68597743655a6e4a68597743655a6e4a68597743655a6e4a68597743655a6e4a68597743655a6e4a68597743656247396a624143596247396a624143596247396a62414359626e567463674353626e567463674353626e567463674353626e567463674353626e567463674353626e567463674353626e56746367435341414141415141424141414141514141414141414167414241414d4141414142414149414251426f4146494152414161414177414151414141414541434141424143442f2f674147414141414151414941414d4141514161414145414567414141414541414141454141454141674161414273414151414341426741475141424141414141514149414145414641414441414541414141424141674141514147414155414151414341425541466741424141414141514149414145414267414f414145414151414a414141414341426d41414d414151514a414141417867465141414d414151514a414145414867457941414d414151514a414149414341457141414d414151514a41414d415267446b41414d414151514a414151414b41433841414d414151514a414155415a41425941414d414151514a414159414a41413041414d414151514a414134414e4141414147674164414230414841414f674176414338416377426a4148494161514277414851416377417541484d41615142734143344162774279414763414c7742504145594154414254414738416451427941474d415a514254414745416267427a41464141636742764143304151674276414777415a414257414755416367427a41476b4162774275414341414d674175414441414e414131414473416141427641485141597742764147344164674167414445414c674177414334414d51417741446b414f774274414745416177426c414738416441426d414755416541426c414341414d674175414455414c674132414455414e5141354144594155774276414855416367426a4147554149414254414745416267427a41434141554142794147384149414243414738416241426b414449414c674177414451414e5141374145454152414243414538414f774254414738416451427941474d415a514254414745416267427a41464141636742764143304151674276414777415a41413741454541524142504145494152514243414738416241426b41464d4162774231414849415977426c414341415577426841473441637741674146414163674276414b6b4149414179414441414d514177414341414c514167414449414d41417841446741494142424147514162774269414755414941425441486b4163774230414755416251427a414341415351427541474d41627742794148414162774279414745416441426c414751414941416f4147674164414230414841414f6741764143384164774233414863414c6742684147514162774269414755414c67426a414738416251417641436b414c41416741486341615142304147674149414253414755416377426c414849416467426c414751414941424741473841626742304143414154674268414730415a5141674942674155774276414855416367426a4147556747514175414145414141414b414651416441414552455a4d5641412b59336c79624141795a334a6c6177416d624746306267416141415141414141412f2f38414151414441415141414141412f2f38414151414341415141414141412f2f38414151414241415141414141412f2f384141514141414152725a584a75414270725a584a75414270725a584a75414270725a584a7541426f4141414142414141414151414541416b414141414341624941436741424141494141414149414149424d414145414141426467464741417741444141412f2b542f33662f4c2f2b3441414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141502f6b4141414141414141414141414141414141414141414141414141442f35762f4641414141414141412f2f674141502f3741414141414141412f2f59414141414141414141414141414141634141502f3441414141414141414141442f37502f6b4141414141414141414141414141414141414141414141414141442f35502f734141414141502f75414141414141414141414141414141412f2b372f37502f7541414141414141414141414141502f3241414141414141412f37542f394141412f39622f35502f6e2f2b674141502f452f395941414141414141414141502f734141414141414141414141414141414141414141414141412f2f674141502f73414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414341414d4142414147414141414367415441414d41465141564141304141514144414255414251414741414d41414141424141454143774141414141414367414b414145414367414a414149414241414841414141414141494141734141514145414249414267414941414d414141414141414141414141424141494141674144414151414251414841416b4143674141414173414151414341414141434141434149674142414141414d67416d41414641417741414141412f2f622f354141414141442f37762f75414141414141414141414141414141412f397a2f39502f624141442f37762f6b4141442f39674141414141414141414141414141414141414141414141414141414141414141414141414141414141412f2f622f354141414141442f2b762f734141414141414141414141414141414141414141414141414141414141414141414141414141414141414141415141474141494141774148414167414351415841414541417741564141514142774144414141414341414941416f41414141414141734143774149414173414251414341416b4142674141414141414151414b414149414251414441414d41415141484141634141674149414167414177414a41416b414241415841426341424141464146414141414a69417051414177414a41413841456741564141417a455345524a544d6e4a794d484e7a4d334e794d58417a636e41524548554149532f71576b4a796b454b536b454b694359483370665877464e58674b552f57786254574a69396c38374f2f36657562722b6a51467a756741414177424e4141414350414b4d41424541476741694141417a45544d794668595646415948465259574652514742694d444d7a49324e54516d49794d524d7a49314e43596a49303366524778414c53677951305279523139464e6a45794e455a546554773955774b4d4855592f4b314d504241314c51554e554b5147484b694d6d495035595743736c414141424143372f3941497741706741477741414253496d4a6a55304e6a597a4d6859584279596d4979494742685555466a4d794e6a635842674664556f7054565931535032516854686b334979784a4b315a494b443859546c494d544a5674624a6c524d794a6546783079586b4a6b6343515a584741414151416a2f2f514343674b5941436f41414155694a6963334668597a4d6a59314e43596e4a7934434e5451324e6a4d79466863484a69596a49675956464259584678595746525147426745555148387956434e574b4334744d7974564954776d4f326c454f484171537942414a7959744f5370554f305936626777774c6d55654a694964487830534a41347652693832574451734b6c305a47783863486834524968685552545a634f41414241426b4141414954416f7741427741414d78456a4e5345564978484d737748367377495166487a3938414141416742422f2f514346674b3941425141487741414253496d4a794d484978457a465163324e6a4d7946685956464159474a7a49324e54516a4967635646685942525346444851514d63354d454855516950466776504639594a6a5a574c436b554b417768494455437661784d4768302b6355785665543934526b79474c637353446741434143662f39414838417230414577416741414158496959314e4459324d7a4957467963314d78456a4a794d47426a63794e6a63314a69596a496759564642627958473837587a51704f426b476b33674b424270474168676e45684d7246434d324c77794c6556463150687759544b6e39517a45614933675547637353446b4e48535555414167416b2f2f51423451483841426741487741414253496d4a6a55304e6a597a4d6859574652514742794557466a4d794e78634742674d7a4e43596a4967594248306479516b4e734f3064644c7751432f74634b526a45314e6a456d5870717a4a7977694e67772b64464a526444382f613051544a516b324d79465a476834424f696b314c77442f2f7741334141414133514c544169594146414141414163414841434b41414141415142424141414348674b394141774141444d524d78457a4e7a4d4845794d6e427856426a7753646f4b36376e33412f4172332b6273584d2f747a4252336f41415142422f2f514245674b3941413841414263694a6a55524d784555466a4d794e6a6358426762495444755445516b46427759534443554d57307343492f33584678494241573046427741424145454141414d6441667741495141414d78457a467a4d324e6a4d79466863324e6a4d7946685552497845304a694d694278456a4554516d497949484555463443675166526a453151524d68536a465153354d64494355776b7830674a533842384541664c53736f496a46725866374d415345324b44442b735145684e6967772f7245414151424241414143414148384142514141444d524d78637a4e6a597a4d68595645534d524e43596a49675948455546344367516754544a52535a4d644942776f47414877507834746131332b7a4145684e69675a462f3678414141434143542f394149484166774144774162414141464969596d4e5451324e6a4d7946685956464159474a7a49324e54516d49794947465251574152592f62305245627a382f626b5245626a38744c6934744c69307444443131556c4e305054313055314a315058644e5145464d544546415451414141514242414141426a7748384142494141444d524d78637a4e6a597a4d6859584279596d497949474278464265416f454730776d4652774b4741305a4542773946414877567a49784251562f424151704d7637674141454146662f30415a38422f41416e414141584969596e4e7859574d7a49324e54516d4a696375416a55304e6a4d79466863484a69596a49685555466863654168555542744d785a795a43496a3866495234644c686f654f79687056546c58483049614e426f354f53596750536c6f4443596658426b6246784d5246684d4b444351354b5556574a7868594642596e47426b4f43794d354c6b4e64414141424142482f39414675416e5141467741414253496d4e54556a4e5463334d78557a46534d564642597a4d6a593346775947415142635430524d4558703364794d6444426b4b46784d3344477057795730476849527a78796f6c42675272426777414141454150502f304166674238414155414141584969593145544d524642597a4d6a593345544d524979636a4267625755556d54486941634a6861546541734448306f4d613130424e5037664e536b61485146492f6842464a5377414151414d2f7a34422f51487741427341414263694a6963334668597a4d6a59334e774d7a46785957467a4d324e6a63334d774d4f416e675749513861427849494a53674b42372b55527773534367514945516b386a6177584f452f43426752774151556b48526f42343955695269556a527950562f67732b56536f414141454151514141414e5142384141444141417a45544d52515a4d4238503451414145415350394e415367433377414e414141584a6959314e44593346775947465251574638772f5255552f584463794d6a657a5a393645684e356e4a6d485861327258596741424144442f545145514174384144514141467963324e6a55304a696333466859564641614d584467794d6a68635030564673795a69313270723132456d5a393645684e372f2f7741334141414133514c54416759414351414141414541502f2b6d414f6b423451414e414141584a6959314e445933467759474652515746356f724d4441725479496949694a61516f4a6157594a434944313951304e39506741424143502f7067444e4165454144514141467963324e6a55304a6963334668595646415a7a5543496949694a514b7938765769412b66554e4466543067516f4a5a576f4c2f2f77412f414b774136514c6e41676341474141414151622f2f77416a414b77417a514c6e41676341475141414151594141662b74416a6b4155774c5441417341414245694a6a55304e6a4d7946685555426955754c69556c4c6934434f536f6a49796f7149794d7141413d3d2920666f726d61742827747275657479706527293b7d5d5d3e3c2f7374796c653e3c2f7376673e", "id": 2823, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2677:6301:13", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3b8052da42b9847f866978e427af2eeb6ff3d7c7469020abf02b901a8c834480", "typeString": "literal_string \"\"" }, "value": "]]>" }, "nodeType": "VariableDeclarationStatement", "src": "2658:6320:13" }, { "expression": { "arguments": [ { "arguments": [ { "id": 2829, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2818, "src": "9013:1:13", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "id": 2830, "name": "uid_str", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2811, "src": "9016:7:13", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "id": 2831, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2822, "src": "9025:1:13", "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" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "id": 2827, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967295, "src": "8996:3:13", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 2828, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "9000:12:13", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "8996:16:13", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 2832, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8996:31:13", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 2826, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8989:6:13", "typeDescriptions": { "typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)" }, "typeName": { "id": 2825, "name": "string", "nodeType": "ElementaryTypeName", "src": "8989:6:13", "typeDescriptions": {} } }, "id": 2833, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8989:39:13", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "functionReturnParameters": 2809, "id": 2834, "nodeType": "Return", "src": "8982:46:13" } ] }, "functionSelector": "6796b7dd", "id": 2836, "implemented": true, "kind": "function", "modifiers": [], "name": "getSvgImage", "nameLocation": "169:11:13", "nodeType": "FunctionDefinition", "parameters": { "id": 2806, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2805, "mutability": "mutable", "name": "uid", "nameLocation": "186:3:13", "nodeType": "VariableDeclaration", "scope": 2836, "src": "181:8:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 2804, "name": "uint", "nodeType": "ElementaryTypeName", "src": "181:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "180:10:13" }, "returnParameters": { "id": 2809, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2808, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 2836, "src": "214:13:13", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 2807, "name": "string", "nodeType": "ElementaryTypeName", "src": "214:6:13", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "213:15:13" }, "scope": 2837, "src": "160:8872:13", "stateMutability": "pure", "virtual": false, "visibility": "external" } ], "scope": 2838, "src": "118:8916:13", "usedErrors": [] } ], "src": "32:9003:13" }, "compiler": { "name": "solc", "version": "0.8.19+commit.7dd6d404.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.4.13", "updatedAt": "2023-06-04T09:28:33.990Z", "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }