A ⁵⁄₉-themed NFT to commemorate me running 10000km in 555 days of running everyday.

555 (1000 × ⁵⁄₉) NFTs
A ⁵⁄₉-themed NFT to commemorate me running 10000km in 555 days of running everyday.
$$\texttt{0x555555554F0ef522f41B2C46D941DEB4d731eB65}$$
For each token, in addition to displaying information about the day's run with a themeable color palette, the metadata of each token contains a 100% onchain-generated 24.832 second long audio of a 5-part arrangement of “Gonna Fly Now” by Bill Conti, popularly known as the theme song from the movie Rocky (1976), at 117.1875 BPM.
https://github.com/fiveoutofnine/555/assets/66016924/fe3e8553-bc45-4810-92db-fce5f5437481
Onchain audio generation
Bytebeat generation
Definition [Source]
Bytebeat music (or one-liner music) was invented in September 2011. They're generally a piece of rhythmic and somewhat melodic music with no score, no instruments, and no real oscillators. It's simply a single-line formula that defines a waveform as a function of time, processed (usually) 8000 times per second, resulting in an audible waveform with a 256-step resolution from silence (0) to full amplitude (256). If you put that formula into a program with a loop that increments time variable (t), you can generate the headerless unsigned 8 bit mono 8kHz audio stream on output, like in this application. Since these directly output a waveform, they have great performance in compiled languages and can often be ran on even the weakest embedded devices.
The following is a JavaScript bytebeat format implementation for the audio in this project (24.832 second long audio of a 5-part arrangement of “Gonna Fly Now” by Bill Conti, popularly known as the theme song from the movie Rocky (1976), at 117.1875 BPM):
f=(t>>10)%776,i=f>>2,v='repeat',e='charCodeAt',o=u=>1-u2/2+u4/24-u6/720,T=O=>o((O%4)-2)(((O&3)>>2)-1),F=n=>n.split`CŃŃŃ${'ʃÀʃӀʃÀ'v}ŃŃŃŃŃŃʃÀ.map(x=>'1'v)&63)+'0'v).join,I=n=>n.split.map(x=>String.fromCharCode((y=xe)&4095)v).join,E=(x,y=0)=>.392(t+12T(t/1600))2(x/12-y)&32,((x=F(I("⁇⁃၇⁃၇⁃ぇ⁃၇⁃၇⁃ቇ၇⁃၇၃၇၃၏⁇ぃ၇ၓ၃။ၯ၃။ၯ၃။ၯ၃။ቿ⁃။⁃ቛ⁃၇၃၇၃၏灇ဠူ")))[f])E(I("ꀵ‹䀵ꀹ‼쀹쀹ꀹ၅え큊が큅え큊が쁅恅့ဵ〷ဵ့瀹쁁⁁⁆쁅쁅聅")e-48)+(i>15&&x[f])E(I("쀠䀠ꀵ‹䀵쀴쀴怴္〼쀹ှ쀵္〼쀹ှ쀹怹့ဵ〷ဵ့瀹䀵〴〲䀰怵")e-48)+(i>165)E('579:<>@ACEFGIKLN'e-332)-48)+(i>173)E(21)+(F(I("ኀ⿀ၯ၏ဿ၀⁇၏⁃假၏⁃假။ぃ假။ぃ၇䁃ၛ၃၇။၇၃၇ၛ၃၇䁃၇⁃䁇ဠူ"))[f])E(I("퀠퀠耠쁀䀺耹耹‷‵䀷⁁⁂⁃‷‹‷䀹⁃⁄⁅‹‷‵〷ှ၁ှ⁂⁃‷‹‷〹၀၃၀⁄၅၀္ဵ耷耹逺䁆〺‹恅쀹쀹")e-48,2)+F(I("ᾀ⽀၏ဠၟ큏恏⁃၇၃၇၃၏ぇ၃။၇၃ဠဴ"))[f]E(I("퀠퀠퀠瀠䁆쁅䁅쁆䁆쁈䁈쁆䁆쁈䁈聊聈ꁊ큈큈쁈")e-48,2)+(i>58&&i<178&&F()[f-236])((2e11(t/(1<<14))**2)&255)/5</code></pre>tokenURIGenerating the audio
The audio file for this project has a sample rate of 32000Hz, and each loop is $776\cdot2^{10}$ samples long, so to generate the audio file, compute the value returned by the expression for $\texttt{t}\in[0, 776\cdot2^{10}-1]$ (you can query any $\texttt{t}$, but this is what's outputted by this project). Then, concatenate the results and prefix it with a WAVE file header.
For practicality, the metadata returned by
accomplishes this with JavaScript, but the same result can be yielded directly from the smart contract viagetSoundValueAt(uint256 tick)andgetAudioFileWavHeader().GenerateAudioOutputScriptto generate and write the audio file to./output/wav/rocky.wav. To run the script, run the following command:FiveFiveFive<pre><code class="lang-sh">forge script script/GenerateAudioOutput.s.sol:GenerateAudioOutputScript --via-ir --memory-limit="50000000000"</code></pre>
You can listen to the generated output here.
Deployment
deployment requires the public librariesFiveFiveFiveConstantsandFiveFiveFiveArtto be deployed to avoid the Spurious Dragon code size limit.v0.8.21+commit.d9974bedAll 3 contracts were compiled with the compiler version
with55555555optimizer runs andvia-ir=true, and they were all deployed on Base byfiveoutofnine.eththrough theImmutableCreate2Factoryat0x0000000000FFe8B47B3e2130213B802212439497:FiveFiveFiveFiveFiveFivewas deployed to0x555555554F0ef522f41B2C46D941DEB4d731eB65with the saltFiveFiveFiveArt<pre><code class="lang-">0xa85572cd96f1643458f17340b6f0d6549af482f5e2cfb88de1ab65fff1bb9fa8</code></pre>
and the bytecode
<pre><code class="lang-">0x6080346200149a576040906001600160401b03908083018281118282101762001484578352601781526020917f35353520283130303020c39720e281b5e28184e28289290000000000000000008383015283519084820182811082821117620014845785526003938483526235353560e81b8184015283519180831162001484576000938454936001968786811c9616801562001479575b8587101462001465578190601f9687811162001412575b508590878311600114620013af578892620013a3575b5050600019828a1b1c191690871b1785555b80519182116200138f5785548681811c9116801562001384575b8482101462001370579081858493116200131d575b508390858311600114620012ba578692620012ae575b505060001982881b1c191690851b1784555b73a85572cd96f1643458f17340b6f0d6549af482f59360018060a01b0319918583600654161760065585857f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a360356008558185526002808252888620546001600160a01b0398919391908916620012795773afdc1a3ef3992f53c10fc798d242e15e2f0df51a958688528184528a88208381540190558288528484528a88208787825416179055827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9789898180a4848852898b8920541662001244578888528184528a88208381540190558488528484528a88208987825416179055848989898180a4818852898b8920541662001244578888528184528a88208381540190558188528484528a88208987825416179055818989898180a46004908189528a8c8a20541662001210578989528285528b89208481540190558189528585528b89208a88825416179055818a8a8a8180a4600589528a8c8a20541662001210578989528285528b8920848154019055600589528585528b89208a8882541617905560058a8a8a8180a4600689528a8c8a20541662001210578989528285528b8920848154019055600689528585528b89208a8882541617905560068a8a8a8180a4600789528a8c8a20541662001210578989528285528b8920848154019055600789528585528b89208a8882541617905560078a8a8a8180a4600889528a8c8a20541662001210578989528285528b8920848154019055600889528585528b89208a8882541617905560088a8a8a8180a4600989528a8c8a2054166200121057600972cda37bfc3dd20349aa901fe8646688218d8772808b528487528d8b20868154019055818b528787528d8b20818a8254161790558a8a8180a4600a89528a8c8a2054166200121057600a730734d56da60852a03e2aafae8a36ffd8c12b32f1808b528487528d8b20868154019055818b528787528d8b20818a8254161790558a8a8180a4600b89528a8c8a2054166200121057600b7316ccd2a1346978e27fdcbda43569e251c4227341808b528487528d8b20868154019055818b528787528d8b20818a8254161790558a8a8180a4600c89528a8c8a2054166200121057600c731a8906a0ebb799ed4c0e385d7493d11701700d3a808b528487528d8b20868154019055818b528787528d8b20818a8254161790558a8a8180a4600d89528a8c8a2054166200121057600d731b7688538170e98856ea86d0a68c7e407d49c5c3808b528487528d8b20868154019055818b528787528d8b20818a8254161790558a8a8180a4600e90818a528b8d8b205416620011dc57818d73230d31eec85f4063a405b0f95bde509c0d0a8b5d90818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a4600f8a528b8d8b205416620011dc57600f8d732abc80332a8dfa064bd2f361e8b72d76ef8637c590818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460108a528b8d8b205416620011dc5760108d732bda41589fc6b86d17f9adb4cc90313799d5f6e590818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460118a528b8d8b205416620011dc5760118d73317bc38b66566566529c41462ba774f489b4a63f90818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460128a528b8d8b205416620011dc5760128d7334aa3f359a9d614239015126635ce7732c18fdf390818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460138a528b8d8b205416620011dc5760138d734a69b81a2cbeb3581c61d5087484fbda2ed3960590818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460148a528b8d8b205416620011dc5760148d735c227217875d0bc94aeee8798af9de3935cff0f290818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460158a528b8d8b205416620011dc5760158d735dffd5527551888c2ac47f799c4dc8e830decee790818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460168a528b8d8b205416620011dc5760168d7361e2029e46a9d2584bad8093b19bc53572e95d5d90818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460178a528b8d8b205416620011dc5760178d73655af72e1500eb8a8d1c90856ae3b8f148a7847190818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460188a528b8d8b205416620011dc5760188d7366810420d110919a0e8b550fde3fe24d50ef0e2690818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460198a528b8d8b205416620011dc5760198d7366bf25e328156ef5d08404094ae2532d8592f87d90818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a4601a8a528b8d8b205416620011dc57601a8d736dacb7352b4ec1e2b979a05e3cf1f126ad64111090818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a4601b8a528b8d8b205416620011dc57601b8d7375d4bdbf6593ed463e9625694272a0ff9a6d346f90818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a4601c8a528b8d8b205416620011dc57601c8d7379d31bfca5fda7a4f15b36763d2e44c99d811a6c90818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a4601d8a528b8d8b205416620011dc57601d8d737ed52863829ab99354f3a0503a622e82acd5f7d390818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a4601e8a528b8d8b205416620011dc57601e8d73849151d7d0bf1f34b70d5cad5149d28cc2308bf190818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a4808a528b8d8b205416620011dc577385c153aae1f101af08151863306d9e0b823ea1b5808b528487528d8b20868154019055818b528787528d8b20818a8254161790558a8a8180a48489528a8c8a205416620011a957847388f09bdc8e99272588242a808052eb32702f88d0808b528482528d8b20868154019055818b528782528d8b20818a8254161790558a8a8180a4602189528a8c8a205416620011a9576021738e10ff7d1195484a3fdd5b19d48e2f394a88fad3808b528487528d8b20868154019055818b528787528d8b20818a8254161790558a8a8180a4602289528a8c8a205416620011a9576022738fc68a56f9682312953a1730ae62afd1a99fdc4f808b528487528d8b20868154019055818b528787528d8b20818a8254161790558a8a8180a4602389528a8c8a205416620011a95760237391031dcfdea024b4d51e775486111d2b2a715871808b528487528d8b20868154019055818b528787528d8b20818a8254161790558a8a8180a46024808a528b8d8b2054166200114657808d73a35156ca4294c13fe256b10091f3d6595e3bf7d790818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460258a528b8d8b205416620011465760258d73b0623c91c65621df716ab8afe5f66656b21a910890818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460268a528b8d8b205416620011465760268d73b95777719ae59ea47a99e744afa59cdcf1c410a190818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460278a528b8d8b205416620011465760278d73bad58e133138549936d2576ebc33251be841d3e990818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460288a528b8d8b205416620011465760288d73bc955ed49f1cd4595953873bbf9b90afaf45e99690818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460298a528b8d8b205416620011465760298d73c95c558daa63b1a79331b2ab4a2a7af375384d3b90818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a4602a8a528b8d8b2054166200114657602a8d73d7029bdea1c17493893aafe29aad69ef892b8ff290818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a4602b8a528b8d8b2054166200114657602b8d73d7b8865970528b0cc372ce380d64a864039c2b9e90818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a4602c8a528b8d8b2054166200114657602c8d73dbaacdcadd7c51a325b771ff75b261a1e7bae11c90818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a4602d8a528b8d8b2054166200114657602d8d73dc40cbf86727093c52582405703e5b97d5c64b6690818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a4602e8a528b8d8b2054166200114657602e8d73e340b00b6b622c136ffa5cff130ec8edcddcb39d90818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a4602f8a528b8d8b2054166200114657602f8d73eee718c1e522ecb4b609265db7a83ab48ea0b06f90818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460308a528b8d8b205416620011465760308d73f196b0b975b0fd11df1936c3a35cf10ea218f28390818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460318a528b8d8b205416620011465760318d73f1b0e893ea21e95763577cec398ea0af5db7903790818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460328a528b8d8b205416620011465760328d73f2829e74c8a8709e170e21979a482f88c607b63290818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460338a528b8d8b205416620011465760338d73f32dd1bd55bd14d929218499a2e7d106f72f79c790818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a460348a528b8d8b205416620011465760348d73faadaab725709f9ac6d5c03d9c6a6f5e3511fd7090818d52868952808d20888154019055828d528989528c20818b8254161790558b8b8180a4610177808b528d8b20548d166200117757734fd9d0ee6d6564e80a9ee00c0163fc952d0a45ed808c528588528e8c20805488019055818c528888528e8c2080548b16821790558b8b8180a46101cb808b528d8b20548d1662001177578b8b528487528d8b20868154019055808b528787528d8b208c8a8254161790558b8b8b8180a461022b9b8c8b528d8b205416620011465750505087875282528886209081540190558685525283868420918254161790558180a4516143119081620014a08239f35b8c5162461bcd60e51b81529283018690528201526d1053149150511657d3525395115160921b604482015260649150fd5b508c5162461bcd60e51b81529283018690528201526d1053149150511657d3525395115160921b604482015260649150fd5b8b5162461bcd60e51b815291820185905260248201526d1053149150511657d3525395115160921b604482015260649150fd5b508b5162461bcd60e51b815291820185905260248201526d1053149150511657d3525395115160921b604482015260649150fd5b8b5162461bcd60e51b8152808301869052600e60248201526d1053149150511657d3525395115160921b6044820152606490fd5b8a5162461bcd60e51b815260048101859052600e60248201526d1053149150511657d3525395115160921b6044820152606490fd5b895162461bcd60e51b815260048101849052600e60248201526d1053149150511657d3525395115160921b6044820152606490fd5b0151905038806200011b565b8787528487208894509190601f198416885b87828210620013065750508411620012ed575b505050811b0184556200012d565b0151600019838a1b60f8161c19169055388080620012df565b8385015186558b97909501949384019301620012cc565b9091508686528386208580850160051c82019286861062001366575b918991869594930160051c01915b8281106200135757505062000105565b88815585945089910162001347565b9250819262001339565b634e487b7160e01b86526022600452602486fd5b90607f1690620000f0565b634e487b7160e01b85526041600452602485fd5b015190503880620000c4565b8880528689208a94509190601f1984168a5b89828210620013fb5750508411620013e2575b505050811b018555620000d6565b0151600019838c1b60f8161c19169055388080620013d4565b8385015186558d97909501949384019301620013c1565b9091508780528588208780850160051c8201928886106200145b575b918b91869594930160051c01915b8281106200144c575050620000ae565b8a81558594508b91016200143c565b925081926200142e565b634e487b7160e01b87526022600452602487fd5b95607f169562000097565b634e487b7160e01b600052604160045260246000fd5b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146130ae5750806306fdde0314612fe6578063081812fc14612f86578063095ea7b314612e885780631249c58b14612cba57806323b872dd14612ca3578063333a700414611b7d57806342842e0e14611a8457806351cff8d9146119f957806355f804b31461178e5780636352211e146116c95780636c0360eb146115fe57806370a08231146115355780638a9aa438146111515780638da5cb5b146110ff57806395d89b4114610ff9578063a22cb46514610f2a578063b88d4fde14610dbe578063bd59342414610d1c578063c87b56dd14610804578063e7d4a5aa14610737578063e8a3d4851461025e578063e985e9c5146101dc5763f2fde38b1461012757600080fd5b346101d75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d7577fffffffffffffffffffffffff000000000000000000000000000000000000000061017f613307565b6006549073ffffffffffffffffffffffffffffffffffffffff906101a682841633146133db565b169182911617600655337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b600080fd5b346101d75760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d757610213613307565b61021b61332a565b9073ffffffffffffffffffffffffffffffffffffffff809116600052600560205260406000209116600052602052602060ff604060002054166040519015158152f35b346101d75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d7576040516101e081019080821067ffffffffffffffff83111761070857610536916040526101a7815261056c60536020928381017f4120e281b5e28184e282892d7468656d6564204e465420746f20636f6d6d656d81527f6f72617465206d652072756e6e696e672031303030306b6d20696e203535352060408301527f64617973206f662072756e6e696e672065766572796461792e20466f7220656160608301527f636820746f6b656e2c20696e206164646974696f6e20746f20646973706c617960808301527f696e6720696e666f726d6174696f6e2061626f7574207468652064617927732060a08301527f72756e20776974682061207468656d6561626c6520636f6c6f722070616c657460c08301527f74652c20746865206d65746164617461206f66206561636820746f6b656e206360e08301527f6f6e7461696e7320612031303025206f6e636861696e2d67656e6572617465646101008301527f2032342e383332207365636f6e64206c6f6e6720617564696f206f66206120356101208301527f2d7061727420617272616e67656d656e74206f6620e2809c476f6e6e6120466c6101408301527f79204e6f77e2809d2062792042696c6c20436f6e74692c20706f70756c61726c6101608301527f79206b6e6f776e20617320746865207468656d6520736f6e672066726f6d20746101808301527f6865206d6f76696520526f636b79202831393736292c206174203131372e31386101a08301527f37352042504d2e000000000000000000000000000000000000000000000000006101c08301526040519586927f7b226e616d65223a2235353520283130303020c39720e281b5e28184e2828929878501527f222c226465736372697074696f6e223a22000000000000000000000000000000604085015251809260518501906132a1565b81017f227d0000000000000000000000000000000000000000000000000000000000006051820152036033810185520183613260565b8160609281518061060a575b5050506105f2604b60405180947f646174613a6170706c69636174696f6e2f6a736f6e3b636861727365743d7574858301527f662d383b6261736536342c00000000000000000000000000000000000000000060408301526105e2815180928786860191016132a1565b810103602b810185520183613260565b6106066040519282849384528301906132c4565b0390f35b6040517f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f603f908152938201850180516000825291965060036002808501829004811b9689880196878a01969294918a8c019160049086905b0192828451818160121c16516000538181600c1c1651600153818160061c16518a531651875360005181520191888310156106c6576004908690610687565b505095506000967f3d3d000000000000000000000000000000000000000000000000000000000000956040925201604052069004820352528252828080610578565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b346101d75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d7576101606107746004356137b3565b610802604051809262ffffff8082511683528060208301511660208401528060408301511660408401528060608301511660608401528060808301511660808401528060a08301511660a08401528060c08301511660c08401528060e08301511660e08401526101008181840151169084015261012090818301511690830152610140809101511515910152565bf35b346101d7576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d757600435806000526002825273ffffffffffffffffffffffffffffffffffffffff6040600020541615610cf25760075461086c8161319b565b610b5a5750806000526009825260406000206040519061088b826131ee565b5462ffffff908181168352818160181c1685840152818160301c166040840152818160481c166060840152818160601c166080840152818160781c1660a0840152818160901c1660c0840152818160a81c1660e084015261010091808260c01c1683850152610120908260d81c168185015260ff6101409260f01c16159384158382015293610af0575b5050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8201918211610ac157604080517fe3287ab00000000000000000000000000000000000000000000000000000000081526004810193909352815162ffffff908116602485015260208301518116604485015290820151811660648401526060820151811660848401526080820151811660a484015260a0820151811660c484015260c0820151811660e484015260e082015181166101048401526101008201518116610124840152610120820151166101448301526101400151151561016482015260008161018481733f2666d91f3047314402b8a482baaae3ffdf1b785af4908115610ab557600091610a3e575b50906106066040519282849384528301906132c4565b90503d806000833e610a508183613260565b81019082818303126101d75780519067ffffffffffffffff82116101d7570181601f820112156101d7578051610a8581613779565b92610a936040519485613260565b8184528482840101116101d757610aaf918480850191016132a1565b82610a28565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092935062ff63699060405194610b07866131ee565b84865262161616888701526190ff604087015262ededed606087015262a0a0a0608087015262ff8b3e908160a0880152624cc38a60c088015262f0c00060e0880152860152840152820152838080610915565b90604051907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608083019160a0840160405260008352915b0190600a90818106603001835304908115610bce577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90610b92565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090608081838101940301835260405193849186600092610c108161319b565b90600190818116908115610cb55750600114610c4f575b505050610c3c8291610c4996519384916132a1565b0103908101835282613260565b906105f2565b90919692935060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688906000915b838310610c9f57505050610c4995610c3c918501019291958891610c27565b80548a84018a0152899650918801918101610c80565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001687850152505080151502840101915086610c49610c3c610c27565b60046040517f15893638000000000000000000000000000000000000000000000000000000008152fd5b346101d75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d757610606604051610d5a81613227565b602d81527f524946462e200c0057415645666d74201000000001000100007d0000007d000060208201527f010008006461746100200c00800000000000000000000000000000000000000060408201526040519182916020835260208301906132c4565b346101d75760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d757610df5613307565b610dfd61332a565b6044359160643567ffffffffffffffff81116101d757610e219036906004016133ad565b92610e2d85828561350a565b803b15938415610e43575b610e41856136d5565b005b60209394506000610eb69673ffffffffffffffffffffffffffffffffffffffff9060405198899687958693857f150b7a02000000000000000000000000000000000000000000000000000000009c8d8752336004880152166024860152604485015260806064850152608484019161373a565b0393165af1918215610ab557610e41927fffffffff0000000000000000000000000000000000000000000000000000000091600091610efc575b50161482808080610e38565b610f1d915060203d8111610f23575b610f158183613260565b81019061369d565b84610ef0565b503d610f0b565b346101d75760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d757610f61613307565b6024358015158091036101d75733600052600560205273ffffffffffffffffffffffffffffffffffffffff60406000209216918260005260205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b346101d75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d757604051600060018281549261103c8461319b565b928383526020948582821691826000146110c1575050600114611067575b506105f292500383613260565b6000818152859250907fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8583106110a95750506105f293508201018561105a565b80548389018501528794508693909201918101611092565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016858201526105f295151560051b850101925087915061105a9050565b346101d75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d757602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b346101d7576101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d75760243562ffffff811681036101d75760443562ffffff811681036101d75760643562ffffff811681036101d75760843562ffffff811681036101d75760a43562ffffff811681036101d75760c43562ffffff811681036101d75760e4359162ffffff831683036101d757610104359362ffffff851685036101d757610124359562ffffff871687036101d757610144359762ffffff891689036101d757600435600052600260205273ffffffffffffffffffffffffffffffffffffffff60406000205416330361150b57604051996112588b6131ee565b62ffffff168a5262ffffff1660208a015262ffffff16604089015262ffffff16606088015262ffffff16608087015262ffffff1660a086015262ffffff1660c085015262ffffff1660e084015262ffffff1661010083015262ffffff166101208201526101408101600190526004356000526009602052604060002090805162ffffff16918054602083015160181b65ffffff00000016604084015160301b68ffffff00000000000016606085015160481b6bffffff00000000000000000016608086015160601b6effffff0000000000000000000000001660a087015160781b71ffffff0000000000000000000000000000001660c088015160901b74ffffff000000000000000000000000000000000000169160e089015160a81b77ffffff00000000000000000000000000000000000000000016936101008a015160c01b7affffff00000000000000000000000000000000000000000000000016956101208b015160d81b7dffffff00000000000000000000000000000000000000000000000000000016978c6101408d0151151560f01b7eff000000000000000000000000000000000000000000000000000000000000169a7fff000000000000000000000000000000000000000000000000000000000000001617171717171717171717179055604051918252602081015162ffffff166020830152604081015162ffffff166040830152606081015162ffffff166060830152608081015162ffffff16608083015260a081015162ffffff1660a083015260c081015162ffffff1660c083015260e081015162ffffff1660e083015261010081015162ffffff1661010083015261012081015162ffffff166101208301526101400151151561014082015261016090206004357fff677cd17c9dbf0b85bd835daca374c944578edde9a762eab09bd9ab74c3b7c2600080a3005b60046040517f82b42900000000000000000000000000000000000000000000000000000000008152fd5b346101d75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d75773ffffffffffffffffffffffffffffffffffffffff611581613307565b1680156115a05760005260036020526020604060002054604051908152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f5a45524f5f4144445245535300000000000000000000000000000000000000006044820152fd5b346101d75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d75760405160075460008261163f8361319b565b918282526020936001908582821691826000146110c157505060011461166c57506105f292500383613260565b84915060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688906000915b8583106116b15750506105f293508201018561105a565b8054838901850152879450869390920191810161169a565b346101d75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d757600435600052600260205273ffffffffffffffffffffffffffffffffffffffff60406000205416801561173057602090604051908152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e4f545f4d494e544544000000000000000000000000000000000000000000006044820152fd5b346101d7576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d75767ffffffffffffffff906004358281116101d7576117e09036906004016133ad565b91909261180673ffffffffffffffffffffffffffffffffffffffff6006541633146133db565b82116107085761181760075461319b565b601f8111611995575b506000601f83116001146118b1577f23c8c9488efebfd474e85a7956de6f39b17c7ab88502d42a623db2d8e382bbaa93836118a1926000916118a6575b508460011b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8660031b1c1916176007555b60405193838594855284019161373a565b0390a1005b90508101358661185d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083169060076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889160005b81811061197e5750917f23c8c9488efebfd474e85a7956de6f39b17c7ab88502d42a623db2d8e382bbaa9591856118a19410611946575b5050600184811b01600755611890565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88760031b161c19908301351690558580611936565b91928460018192868a0135815501940192016118ff565b60076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f840160051c8101918385106119ef575b601f0160051c01905b8181106119e35750611820565b600081556001016119d6565b90915081906119cd565b346101d75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d7576000808080611a35613307565b73ffffffffffffffffffffffffffffffffffffffff611a59816006541633146133db565b4791165af13d15611a7f57611a78611a703d613779565b604051613260565b156101d757005b611a78565b346101d757611a923661334d565b91611a9e83838361350a565b813b15918215611ab2575b610e41836136d5565b602091925060a473ffffffffffffffffffffffffffffffffffffffff9460006040519687948593827f150b7a0200000000000000000000000000000000000000000000000000000000998a8752336004880152166024860152604485015260806064850152826084850152165af1918215610ab557610e41927fffffffff0000000000000000000000000000000000000000000000000000000091600091611b5f575b5016148280611aa9565b611b77915060203d8111610f2357610f158183613260565b84611b55565b346101d75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d757611c6f604051611bbb8161320b565b606181527ffefeeefeeefeeefefefeeefeeefeeefe00feeefeefeefffefefeeeefeffffeef60208201527ffefffffffffffeeffefffffffffffeeffefffffffffffeeffeffffffffffffff60408201527ffe00eeffeeeffffffe00eefeefeefffefefefefefefefeffffffffffffffffff60608201527fff000000000000000000000000000000000000000000000000000000000000006080820152610308620c200060043506600a1c0660031c90613954565b516001611d1e604051611c818161320b565b6061815268fffeffffffffffffff60208201527ffefffefffefffefffefffefffefffefffefffefffefffefffefffefffefffeff60408201527ffefffefffefffefffe00eefeefeefffefefefeeffefeefffffffffffffffffff60608201527fff000000000000000000000000000000000000000000000000000000000000006080820152610308620c200060043506600a1c0660031c90613954565b5160f81c6007610308620c200060043506600a1c06166007031c161515906001611df0604051611d4d8161320b565b606181526efffffffffffefffeffffffffffffff60208201527ffefefefffeeefefefefefefffeeefefefefefeffeeeefefefefefeffeeeefeee60408201527feeffffffeefeffefeefeffffffeefeeeeefeeefefefefeffffffffffffffffff60608201527fff000000000000000000000000000000000000000000000000000000000000006080820152610308620c200060043506600a1c0660031c90613954565b5160f81c6007610308620c200060043506600a1c06166007031c161515603a610308620c200060043506600a1c0660021c1180612c88575b8080612ba3575b5060018360f81c6007610308620c200060043506600a1c06166007031c161515600014612b9b57611fb3611f8e604051611e6881613243565b60c281527f05050505050505050505090905050505090909090909090909090c0c0909090960208201527f090909090909090909090909090909090909090909090909090909090909151860408201527f18181a1a1a1a1a1a1a1a1a1a1a1a1a1c1c1c151515151515151515151515151860608201527f18181a1a1a1a1a1a1a1a1a1a1a1a1a1c1c1c151515151515151515151515151560808201527f151515150705070707050709090909090909111111111111111111111111111160a08201527f161615151515151515151515151515151515151515151515151515151515151560c08201527f151500000000000000000000000000000000000000000000000000000000000060e0820152610308620c200060043506600a1c0660021c90613954565b5160f81c670de0b6b3a764000002670de0b6b3a7640000620c20006004350602613a11565b925b60f81c6007610308620c200060043506600a1c068181169091039190911c6001161515600f60029290921c91821160a6909210919091161615612b93576040518060e081011067ffffffffffffffff60e083011117610708578060e0612119920160405260a681527f080808080808080808080808080808081d1d1d1d1d1d1d1d1d1d21211d1d1d1d60208201527f1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c212460408201527f2424212121212121212121212121262828281d1d1d1d1d1d1d1d1d1d1d1d212460608201527f242421212121212121212121212126282828212121212121212121212121212160808201527f212121211f1d1f1f1f1d1f212121212121211d1d1d1d1c1c1c1a1a1a1818181860a08201527f1d1d1d1d1d1d000000000000000000000000000000000000000000000000000060c0820152610308620c200060043506600a1c0660021c90613954565b5160f81c670de0b6b3a764000002612141670de0b6b3a7640000620c20006004350602613994565b6122096121f07fffffffffffffffffffffffffffffffffffffffffffffffffe43e9298b13800009260017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60026003670de0b6b3a76400006121af89673782dace9d90000088060180614042565b6121b98180614042565b906121df6121d96121d36121cd8585614042565b93614256565b9361428b565b916142b3565b918303010395041611020102613fa2565b670de0b6b3a7640000620c2000600435060201926139d3565b017c7e63153c7f302f2d71f802e86a9a830cb0a6b2c040877e03184d6821586c01bc16d674ec800000000000007ffffffffffffffff5f6af8f7b3396644f18e15796000000000000000000000000787d08509902966378cdc65fee42d5fffea1580000000000000060601d6d0388eaa27412d5aca026815d636e01820260601d6d0df99ac502031bf953eff472fdcc01820260601d6d13cdffb29d51d99322bdff5f221101820260601d6d0a0f742023def783a307a986912e01820260601d6d01920d8043ca89b5239253284e4201820260601d6c0b7a86d7375468fac667a0a52701917fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832817ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f817fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc98180784aadc582f1d8bc491e7bc949e15040342ddc0000000000000060601d6d0139601a2efabe717e604cbb4894010260601d6d02247f7a7b6594320649aa03aba1010260601d010260601d010260601d01020105711340daa0d5f769dba1915cef59f0815a5506020160ae1d907f800000000000000000000000000000000000000000000000000000000000000081146000831216610ac1578181810205811482151715610ac15760109261242061241a670de0b6b3a76400006124259481960205614089565b91613fd8565b614042565b048060ff1c6000039081011860011c16935b15612b8b5761259961257460405161244e81613243565b60c281527f080808080808080808080808080808080808080808080808080808080808080860208201527f08080808080808080808080808082e2e2e2e2d2d2d2d2d2d2d2d2d2d2d2d2d2d60408201527f2d2d2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e303030303030303030303030303060608201527f30302e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e303030303030303030303030303060808201527f303032323232323232323030303030303030323232323232323232323030303060a08201527f303030303030303030303030303030303030303030303030303030303030303060c08201527f303000000000000000000000000000000000000000000000000000000000000060e0820152610308620c200060043506600a1c0660021c90613954565b5160f81c670de0b6b3a764000002670de0b6b3a7640000620c20006004350602613cff565b915b15612b84576126d86125746040516125b281613243565b60c281527f080808080808080808080808080808080808080808080808080808080808080860208201527f080828282828282828282828282822222222212121212121212121212121212160408201527f21211f1f1d1d1f1f1f1f29292a2a2b2b1f1f21211f1f212121212b2b2c2c2d2d60608201527f21211f1f1d1d1f1f1f2629262a2a2b2b1f1f21211f1f212121282b282c2c2d2860808201527f211d1f1f1f1f1f1f1f1f21212121212121212222222222222222222e2e2e2e2260a08201527f222221212d2d2d2d2d2d2121212121212121212121212121212121212121212160c08201527f212100000000000000000000000000000000000000000000000000000000000060e0820152610308620c200060043506600a1c0660021c90613954565b600091612a94575b60a5610308620c200060043506600a1c0660021c1180612a79575b15612a715760405180604081011067ffffffffffffffff60408301111761070857611f8e81604061278e9301604052601081527f0507090a0c0e101113151617191b1c1e0000000000000000000000000000000060208201527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeb4610308620c200060043506600a1c0660011c0190613954565b915b60ad610308620c200060043506600a1c0660021c1115612a635761282d6127c7670de0b6b3a7640000620c20006004350602613994565b60017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60026003670de0b6b3a76400006121af7fffffffffffffffffffffffffffffffffffffffffffffffffe43e9298b1380000673782dace9d90000088060180614042565b670de0b6b3a7640000620c2000600435060201937c7e63153c7f302f2d71f802e86a9a830cb0a6b2c040877e03184d6821586c01bc16d674ec800000000000007ffffffffffffffff5f6af8f7b3396644f18e15796000000000000000000000000787d08509902966378cdc65fee42d5fffea1580000000000000060601d6d0388eaa27412d5aca026815d636e01820260601d6d0df99ac502031bf953eff472fdcc01820260601d6d13cdffb29d51d99322bdff5f221101820260601d6d0a0f742023def783a307a986912e01820260601d6d01920d8043ca89b5239253284e4201820260601d6c0b7a86d7375468fac667a0a52701917fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832817ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f817fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc98180784aadc582f1d8bc491e7bc949e15040342ddc0000000000000060601d6d0139601a2efabe717e604cbb4894010260601d6d02247f7a7b6594320649aa03aba1010260601d010260601d010260601d01020105711340daa0d5f769dba1915cef59f0815a5506020160ae1d966718493fba64ef00009788810298818a051490151715610ac1576010670de0b6b3a7640000612a3260ff9861242061241a8460209e05614089565b0480881c6000039081011860011c16965b8680808080806040519d169a169816951693169116010101010101168152f35b60ff93602096600096612a43565b600091612790565b5060ae610308620c200060043506600a1c0660021c106126fb565b90506903782dace9d9000000007812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f21670de0b6b3a7640000620c2000600435060211670de0b6b3a76400000215810215612b76576ec097ce7bc90715b34b9f1000000000620c20006004350602047fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff906c02863c1f5cdae42f95400000009080830482118102612b6857670de0b6b3a764000091020480910481118102612b685760ff670de0b6b3a76400008083600a940204041604906126e0565b63bac65e5b6000526004601cfd5b637c5f487d6000526004601cfd5b60006126d8565b60009161259b565b600093612437565b600092611fb5565b600191506007612c43604051612bb881613227565b603c81527fee0e0e0e000e0000000e000e000e0000000e000e000e0000000e000e000e000060208201527e0e000e000e0000000e000e000e0000000e000e0e0e0e0e0e0e00000000000060408201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610308620c200060043506600a1c0601840260031c90613954565b5160f81c917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610308620c200060043506600a1c060102166007031c16151584611e2f565b5060b2610308620c200060043506600a1c0660021c10611e28565b346101d757610e41612cb43661334d565b9161350a565b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d75760085461022a8111612e5e5766c55f7bc23038e33410612e345761017681148015612e29575b15612e205760ff60025b168101600855612d253315156134a5565b80600052600260205273ffffffffffffffffffffffffffffffffffffffff60406000205416612dc2573360005260036020526040600020600181540190558060005260026020526040600020337fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790553360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f414c52454144595f4d494e5445440000000000000000000000000000000000006044820152fd5b60ff6001612d14565b506101ca8114612d0a565b60046040517f356680b7000000000000000000000000000000000000000000000000000000008152fd5b60046040517ff48339e4000000000000000000000000000000000000000000000000000000008152fd5b346101d75760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d757612ebf613307565b6024359081600052600260205273ffffffffffffffffffffffffffffffffffffffff8060406000205416908133148015612f5d575b612efd90613440565b8360005260046020526040600020921691827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b50816000526005602052604060002033600052602052612efd60ff604060002054169050612ef4565b346101d75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d7576004356000526004602052602073ffffffffffffffffffffffffffffffffffffffff60406000205416604051908152f35b346101d75760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d7576040516000805490826130278361319b565b918282526020936001908582821691826000146110c157505060011461305457506105f292500383613260565b6000808052859250907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8583106130965750506105f293508201018561105a565b8054838901850152879450869390920191810161307f565b346101d75760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101d757600435907fffffffff0000000000000000000000000000000000000000000000000000000082168092036101d757817f01ffc9a70000000000000000000000000000000000000000000000000000000060209314908115613171575b8115613147575b5015158152f35b7f5b5e139f0000000000000000000000000000000000000000000000000000000091501483613140565b7f80ac58cd0000000000000000000000000000000000000000000000000000000081149150613139565b90600182811c921680156131e4575b60208310146131b557565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f16916131aa565b610160810190811067ffffffffffffffff82111761070857604052565b60a0810190811067ffffffffffffffff82111761070857604052565b6060810190811067ffffffffffffffff82111761070857604052565b610100810190811067ffffffffffffffff82111761070857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761070857604052565b60005b8381106132b45750506000910152565b81810151838201526020016132a4565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093613300815180928187528780880191016132a1565b0116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101d757565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101d757565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126101d75773ffffffffffffffffffffffffffffffffffffffff9060043582811681036101d7579160243590811681036101d7579060443590565b9181601f840112156101d75782359167ffffffffffffffff83116101d757602083818601950101116101d757565b156133e257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152fd5b1561344757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152fd5b156134ac57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f494e56414c49445f524543495049454e540000000000000000000000000000006044820152fd5b600083815260206002815273ffffffffffffffffffffffffffffffffffffffff93604090858083862054169516948503613640579061358c867fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95949316966135748815156134a5565b863314908115613623575b811561360d575b50613440565b848352600382528083207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff815401905585835280832060018154019055868352600282526004818420927fffffffffffffffffffffffff000000000000000000000000000000000000000093888582541617905552822090815416905580a4565b9050888552600484528285205416331438613586565b8786526005855283862033875285528386205460ff16915061357f565b6064838351907f08c379a00000000000000000000000000000000000000000000000000000000082526004820152600a60248201527f57524f4e475f46524f4d000000000000000000000000000000000000000000006044820152fd5b908160209103126101d757517fffffffff00000000000000000000000000000000000000000000000000000000811681036101d75790565b156136dc57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b67ffffffffffffffff811161070857601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b604080516137c0816131ee565b60009081815281602082015281838201528160608201528160808201528160a08201528160c08201528160e08201526101009382858301526101209083828401528361014080940152808452600260205273ffffffffffffffffffffffffffffffffffffffff85852054161561392b57835260096020528383209460ff855196613849886131ee565b5462ffffff8082168952808260181c1660208a0152808260301c16888a0152808260481c1660608a0152808260601c1660808a0152808260781c1660a08a0152808260901c1660c08a0152808260a81c1660e08a0152808260c01c16848a01528160d81c168489015260f01c16158015848801526138c957505050505090565b8495506190ff62ff636993949551966138e1886131ee565b86885262161616602089015287015262ededed606087015262a0a0a0608087015262ff8b3e908160a0880152624cc38a60c088015262f0c00060e088015286015284015282015290565b600485517f15893638000000000000000000000000000000000000000000000000000000008152fd5b908151811015613965570160200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b670de0b6b3a76400006856bc75e2d631000000917812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218111820215830215612b7657020490565b670de0b6b3a764000067a688906bd8b00000917812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218111820215830215612b7657020490565b613a90613a1d82613994565b91613a89670de0b6b3a76400009360017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60026003886121af7fffffffffffffffffffffffffffffffffffffffffffffffffe43e9298b1380000673782dace9d90000088060180614042565b01926139d3565b917c7e63153c7f302f2d71f802e86a9a830cb0a6b2c040877e03184d6821586c01bc16d674ec800000000000007ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000006060917fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832787d08509902966378cdc65fee42d5fffea15800000000000000841d6d0388eaa27412d5aca026815d636e018202841d6d0df99ac502031bf953eff472fdcc018202841d6d13cdffb29d51d99322bdff5f2211018202841d6d0a0f742023def783a307a986912e018202841d6d01920d8043ca89b5239253284e42018202841d6c0b7a86d7375468fac667a0a5270193827ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f817fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc98180784aadc582f1d8bc491e7bc949e15040342ddc00000000000000871d6d0139601a2efabe717e604cbb48940102861d6d02247f7a7b6594320649aa03aba10102851d0102831d0102901d01020105711340daa0d5f769dba1915cef59f0815a5506020160ae1d838102906000947f8000000000000000000000000000000000000000000000000000000000000000811486831216613cd2578183051490151715613ca557829161242061241a60109695613c929405614089565b04908160ff1c90039081011860011c1690565b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffc87d253162700000613d9f613d2c83613994565b92613d98670de0b6b3a76400009460017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60026003896121af7fffffffffffffffffffffffffffffffffffffffffffffffffe43e9298b1380000673782dace9d90000088060180614042565b01936139d3565b01917c7e63153c7f302f2d71f802e86a9a830cb0a6b2c040877e03184d6821586c01bc16d674ec800000000000007ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000006060917fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832787d08509902966378cdc65fee42d5fffea15800000000000000841d6d0388eaa27412d5aca026815d636e018202841d6d0df99ac502031bf953eff472fdcc018202841d6d13cdffb29d51d99322bdff5f2211018202841d6d0a0f742023def783a307a986912e018202841d6d01920d8043ca89b5239253284e42018202841d6c0b7a86d7375468fac667a0a5270193827ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f817fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc98180784aadc582f1d8bc491e7bc949e15040342ddc00000000000000871d6d0139601a2efabe717e604cbb48940102861d6d02247f7a7b6594320649aa03aba10102851d0102831d0102901d01020105711340daa0d5f769dba1915cef59f0815a5506020160ae1d838102906000947f8000000000000000000000000000000000000000000000000000000000000000811486831216613cd2578183051490151715613ca557829161242061241a60109695613c929405614089565b67a688906bd8b0000090818102918183051490151715613fca57670de0b6b3a7640000900590565b63edcd4dd46000526004601cfd5b670570a9ec4ff40000818102917f800000000000000000000000000000000000000000000000000000000000000081147ffffffffffffffffffffffffffffffffffffffffffffffffffa8f5613b00bffff10918305141115613fca57670de0b6b3a7640000900590565b90808202917f8000000000000000000000000000000000000000000000000000000000000000821481191091818405149015171115613fca57670de0b6b3a7640000900590565b7ffffffffffffffffffffffffffffffffffffffffffffffffdc0d0570925a462d781131561425057680755bf798b4a1bf1e5811215614242576503782dace9d990604e1b0574029d9dc38563c32e5c2f6dc192ee70ef65f9978af36bb17217f7d1cf79abc9e3b3989179d835ebba824c98fb31b83b2ca45c0000000000000000000000006060916b8000000000000000000000008582851b0501831d94850290036e0587f503bb6ea29d25fcb740196450816c10fe68e7fd37d0007b713f7650810102841d936e05180bb14799ab47a8a8cb2a527d57837ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb816db1bbb201f443cf962f1a1d3db4a5817fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c816d0277594991cfc85f6e2461837cd9817fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a55048101028a1d0102881d0102861d0102841d0102821d01947ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e846d02d16720577bd19bf614176fe9ea830192010102901d01020105029060c3031c90565b63a37bfec96000526004601cfd5b50600090565b670de0b6b3a764000090818102918205146001161561427d57671bc16d674ec80000900590565b635c43740d6000526004601cfd5b670de0b6b3a764000090818102918205146001161561427d5768014d1120d7b1600000900590565b670de0b6b3a764000090818102918205146001161561427d5768270801d946c940000090059056fea2646970667358221220b567013f8ca19aec2ba0f6a956467ca620d7149f064e16ae02c1982ce77c310764736f6c63430008150033</code></pre>
FiveFiveFiveArtwas deployed to0x3f2666d91f3047314402b8A482bAaAe3fFdF1b78with the salt`` 0x6080806040523461001a5761415f9081610020823930815050f35b600080fdfe600436101561000d57600080fd5b60003560e01c63e3287ab01461002257600080fd5b6101807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112612f2b57610160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112612f2b5761024001610240811067ffffffffffffffff821117612f305760405260243562ffffff81168103612f2b576102405260443562ffffff81168103612f2b576102605260643562ffffff81168103612f2b576102805260843562ffffff81168103612f2b576102a05260a43562ffffff81168103612f2b576102c05260c43562ffffff81168103612f2b576102e05260e43562ffffff81168103612f2b57610300526101043562ffffff81168103612f2b57610320526101243562ffffff81168103612f2b57610340526101443562ffffff81169003612f2b576101443561036052610164358015159003612f2b5761016435610380526004356001810110612bbc576101866004356140be565b610191600435613734565b9060043515612fb2576004357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810111612bbc576101fb6101f57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600435016140be565b84613058565b60016004351115612fa6576004357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe810111612bbc57610268906102627ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe600435016140be565b90613058565b60026004351115612f9a576004357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd810111612bbc576102cf906102627ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd600435016140be565b60036004351115612f8e576004357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc810111612bbc57610336906102627ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc600435016140be565b600480351115612f82576004357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb810111612bbc5761039c906102627ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb600435016140be565b60056004351115612f76576004357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa810111612bbc57610403906102627ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa600435016140be565b600061022052611f40811115612f6b57807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0c0810111612bbc576101d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0c0820104610220525b6040519061047582612fbc565b606082526040517f7bc40c740000000000000000000000000000000000000000000000000000000081526000816004817315a6c830e04646cee9db230135fe3b1b910b4df75af4908115612f5f57600091612e67575b506105a06108d86101776108de936104ed62ffffff6020610240015116613446565b6102a0516104ff9062ffffff16613446565b6102c0516105119062ffffff16613446565b610280516105239062ffffff16613446565b6102e0516105359062ffffff16613446565b610300516105479062ffffff16613446565b9161055c62ffffff60e0610240015116613446565b9361057262ffffff610100610240015116613446565b9561058862ffffff610120610240015116613446565b9760206040519d8e8c83829e51948593019101613035565b8a016105b58251809360208085019101613035565b017f3b77696474683a32383070783b70616464696e673a30203870783b6d6172676960208201527f6e3a303b6865696768743a31383870783b646973706c61793a666c65783b7d6360408201527f6f64657b666f6e742d73697a653a313270783b6d617267696e3a6175746f7d7360608201527f70616e7b666f6e742d76617269616e742d6c69676174757265733a6e6f6e657d60808201527f2e667b636f6c6f723a230000000000000000000000000000000000000000000060a082015261068882518093602060aa85019101613035565b017f7d2e697b636f6c6f723a2300000000000000000000000000000000000000000060aa8201526106c382518093602060b585019101613035565b017f7d2e767b636f6c6f723a2300000000000000000000000000000000000000000060b58201526106fe82518093602060c085019101613035565b017f7d2e657b636f6c6f723a2300000000000000000000000000000000000000000060c082015261073982518093602060cb85019101613035565b017f7d2e6f7b636f6c6f723a2300000000000000000000000000000000000000000060cb82015261077482518093602060d685019101613035565b017f7d2e757b636f6c6f723a2300000000000000000000000000000000000000000060d68201526107af82518093602060e185019101613035565b017f7d2e747b636f6c6f723a2300000000000000000000000000000000000000000060e18201526107ea82518093602060ec85019101613035565b017f7d2e787b636f6c6f723a2300000000000000000000000000000000000000000060ec82015261082582518093602060f785019101613035565b7f7d2e797b666f6e742d66616d696c793a417d2e6e7b666f6e742d66616d696c7960f783830101527f3a427d2e7a7b706f736974696f6e3a6162736f6c7574653b6d617267696e3a6161011783830101527f75746f20303b626f726465722d7261646975733a313030253b746f703a36707861013783830101527f3b77696474683a313270783b6865696768743a313270787d3c2f7374796c653e61015783830101520103610157810184520182612ff4565b83613254565b50604051936108ec85612fbc565b6060855261090162ffffff6102405116613446565b61012052600a6004356001011015612e075760405161091f81612fd8565b601b81527f3c7370616e20636c6173733d22792069223e30303c2f7370616e3e00000000006020820152905b6109596001600435016133a3565b6101405260006101c052600a606488041015612dee57610977613065565b6101c0525b610988606488046133a3565b61020052600a606488061015612dd9576109a061309e565b6109ac606489066133a3565b91601181810311612bbc576109cb906011036109c6613065565b613522565b9360648082041015612dc3576040516109e381612fd8565b600381527fe2948000000000000000000000000000000000000000000000000000000000006020820152935b610a446064610a1f8185046133a3565b60006101a05293600a8282061015612daa57610a3961309e565b6101a0525b066133a3565b9460066102205110600014612da057610a5f610220516135d6565b90600b6102205111600014612d8b57610a766130d7565b60076102205110600014612d7557610a8c613110565b915b6006610220511180612d68575b15612d5257610220517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa810111612bbc57610afa7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa61022051016135d6565b935b600060805260116102205111600014612d3a57610b176130d7565b6080525b600060a052600d6102205110600014612d2257610b36613110565b60a0525b600c610220511180612d15575b600060e05215612cfd57610220517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4810111612bbc57610bab7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff461022051016135d6565b60e0525b60006101605260176102205111600014612ce457610bcb6130d7565b610160525b60006101e05260136102205110600014612ccb57610bec613110565b6101e0525b8c6012610220511180612cbe575b60006101805215612beb5750610220517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee810111612bbc577f3c7370616e20636c6173733d22792069223e6b6d3c2f7370616e3e3c2f7370616105d69a7f3c7370616e20636c6173733d22792069223e2e3c2f7370616e3e0000000000008f6119889e7f3c7370616e20636c6173733d226e2066223e00000000000000000000000000007f3c2f7370616e3e3c7370616e20636c6173733d2275223e0000000000000000009760129f9360389f946020957f3c2f7370616e3e3c7370616e20636c6173733d2274223e0000000000000000009f610d207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee61022051016135d6565b610180525b61028051610d379062ffffff16613446565b6101005260405160c0527f3c646976207374796c653d226261636b67726f756e643a2300000000000000008860c0510152856101205151603881610d849160c051018c6101205101613035565b60c051019160387f3b626f726465722d7261646975733a3870783b77696474683a6669742d636f6e908401527f74656e743b6865696768743a6669742d636f6e74656e743b6f766572666c6f7760588401527f3a68696464656e3b626f726465723a31707820736f6c6964202333343334333460788401527f223e3c646976207374796c653d22706f736974696f6e3a72656c61746976653b60988401527f646973706c61793a666c65783b6865696768743a323470783b6261636b67726f60b88401527f756e643a236461646164613b70616464696e672d6c6566743a3670783b70616460d88401527f64696e672d72696768743a367078223e3c636f6465207374796c653d22666f6e60f88401527f742d66616d696c793a433b6d617267696e3a6175746f3b636f6c6f723a2334386101188401527f34383438223e3130303020c39720e281b5e28184e28289203d2035353520e2806101388401527f94203336c39731313c2f636f64653e3c646976207374796c653d226261636b676101588401527f726f756e643a236564366135653b6c6566743a3670782220636c6173733d227a6101788401527f223e3c2f6469763e3c646976207374796c653d226261636b67726f756e643a2361019<pre><code class="lang-">0x0000000000000000000000000000000000000000000000000000000000000000</code></pre>
and the bytecode
README truncated. View on GitHub