File: blk03493.txt

DjB=:ETH.ETH:0xbc53d8aa8cfa414af3e5fa9736270de99ecd7176:45915518:t:30
CjA+:BTC.BTC:maya14dsp7ujkrxqzsv2h2x68ypaeevmg4r5z7500c9:wr:30:TIER1
EjCs:LTC.LTC:ltc1qg2g4k70wk7zzq264hzyr8svgnf6fyna8jwzsgy:81128131:ss:0
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Metrix by Takens Theorem</title>
        html, body {
            background: black;
            width: 100%;
            height: 100%;
            display: flex;
            margin:0px;
            justify-content: center;
            align-items: center;}
        .container {width: 100%;}
<div class="container">
    <svg width="100%" height="100%" version="1.1" viewBox="0 0 1280 720" xmlM
ns="http://www.w3.org/2000/svg" id="svg"></svg>
function mulberry32(e,t){return function(){var t=e+=1831565813,t=Math.imul(t^t>>>15,1|t);return(((t^=t+Math.imul(t^t>>>7,61|t))^t>>>14)>>>0)/4294967296}}function setMulberry(t){mathRand=mulberry32(t)}function cnvcm(t){if(ix1=Math.floor(mathRand()*metrics.length),ix2=Math.floor(mathRand()*metrics.length),mtx+=metrics[ix1]+" "+metrics[ix2]+" ",0==t.length)return[bucm[metrics[ix1]],bucm[metrics[ix2]]];for(sample=[[],[]],i=0;i<t.data.length-1;i++)v1=t.daM
ta[i][metrics[ix1]],v2=t.data[i][metrics[ix1]],null==v1&&(v1=0),null==v2&&(v2=0),sample[0].push(v1),sample[1].push(v1);return sample}bucm={AdrActCnt:[93.41,128.86,120.23,121.63,113.94,77.7,66.35,55.9,81.07,82.06,80.3,153.1,179.42,300.75,244.48,432.2,302.35,327.77,1074.97,624.42,745.83,823.06,953.63,1006.77,1606.77,2867.93,3915.1,4845.73,9833.55,24097.93,25022.97,20764.61,16546.1,12841.19,12603.33,11970.16,14210.65,15536.93,15267.52,16886.1,26021.19,34284.73,34995.1,44115.81,38789.83,42124.71,38951.17,39902.39,51753M
.32,54325.04,63891.1,94770.8,79724.9,64593.27,62659.71,76095,70859.13,86047.06,139175.63,148692.71,138905.1,169436,179112.06,167218.17,160659.39,170193.9,171732.97,184443.65,194345.43,201725,213475.47,225958.19,236083.26,249618.36,251993.87,254643.17,260316.97,286028.83,295134.94,286533.97,310574.37,335211.61,393149.4,449938.26,464577.03,512159.76,466616.68,468173.17,474928.55,522427.2,467523.16,496705,501396,558586.68,614381.17,637913.77,645091.03,674473.32,684799.42,691790.7,795171.77,732120,670758.55,685788.77,6M
96640.33,798356.26,901437.33,1085640.81,1000830.03,779834.82,679097.77,590225.4,605443.61,582270.6,641404.9,611519.74,601797.83,646632.71,654068.77,598767.87,585617.19,644804.11,680585.32,742951.4,813907.13,841842,740632.16,710044.84,717043.17,695897,720745.7,697138.42,712120.32,758550.1,737506.61,803426.3,895938.06,875518.33,957907.94,983687.45,981308.83,942010,1025807.93,1071402.65,1145268.55,1149194.54,1139499.81,1089593,1065783.48,849666.9,807850.55,848183.23,892718.17,965780.26,965284.87,972100.03,900129.29,92M
5290.68,934072.74,922190.17,943666.55,890182.23,871878.06,910605.68,917308.37,890408.1,959787.3,902979.13],BlkSizeMeanByte:[177.02,223.99,224.19,222.4,220.75,220.7,223.41,224.99,232.31,239.06,227.74,243.97,228.21,276.85,268.54,427.15,441.23,388.86,939.36,683.21,760.61,816.07,3332.99,947.34,2152.39,2660.78,5897.77,5714.93,8661.97,21863.75,23957.92,23792.54,21312.96,19277.19,17582.29,16776.61,20684.64,21819.06,20674.51,25033.99,68927.66,96450.42,82922.41,94988.97,88299.7,97129.25,99159.36,125764.38,147584.03,157295.9M
7,157676.54,170778.78,170183,126939.53,105646.17,135396.62,129550.18,129853.09,193411.03,177182.72,171422.36,212004.49,234926.14,221017.3,229519.78,214926.15,243428.5,242207.95,268805.53,297293.92,331219.42,350474.96,363821.17,377011.69,389165.66,407539.68,394938.63,457867.69,598414.09,466587,555373.72,546110.37,569581.5,627944.03,667807.82,742479.92,716368.85,747723.73,777612.69,824971.21,790399.01,782453.26,754429.47,831149.64,866830.71,877365.42,871524.25,949372.54,957356.8,958919.51,973215.31,972289.25,886421.1M
6,947871.3,814831.04,960722.52,1044183.33,1054553.06,1054057.53,1010005.5,819144.95,736326.51,738346.22,807193.33,864974.32,786069.74,818599.26,947461.92,1085504.33,998524.34,959338.19,1055050.41,1025518.07,1204285.38,1212589.31,1203777.72,1082143.16,1044402.52,1016420.81,1027506.86,1082110.16,984491.06,979314.85,1101620.02,1106707.76,1090824.24,1275752.09,1154400.09,1231561.2,1275403.48,1240623.99,1253806.63,1263286.93,1288197.42,1308849.56,1315904.01,1330120.14,1330584.99,1348360.72,1294771.08,1077233.12,1015988.M
36,1109384.19,1175939.97,1197503.36,1190462.45,1113670.15,1193973.84,1181147.1,1163355.79,1241628.89,1200295.47,1182238.28,1152240.13,1202179.99,1136125.97,1317040.62,1204398.53],FeeTotNtv:[0,.07,0,0,0,0,0,0,0,0,0,.01,.01,.02,0,.01,.33,.05,.31,.35,.07,.03,.17,.09,.27,.47,4.22,5.43,13.45,28.11,12.3,7.89,5.39,3.85,3.29,16.31,18.78,5.42,5.01,5.5,15.1,21.54,19.05,25.08,23.07,26.17,27.33,30.11,42.55,50.58,55.49,53.12,51.26,41.71,29.78,43.71,44.57,35.11,39.53,15.94,14.15,14.17,13.53,13.27,11.96,10.97,10.8,12,13.03,12.43,M
13.01,13.25,14.52,13.77,14.57,18.77,15.97,18.95,30.78,25.18,27.58,26.67,27.89,34.21,37.12,43.71,45.21,53.78,50.02,62.38,58.62,68.68,60.13,74.24,88.14,96.96,113.06,160.86,228.92,212.39,376.71,417.61,207.6,273.01,175.04,176.26,331.98,616.97,485.28,88.82,32.78,33.09,32.55,34.76,21.59,22.4,20.61,17.59,29.11,22.52,20.54,26.71,31.91,89.51,140.1,123.36,62.71,43.13,30.89,28.84,31.7,20.4,19.95,25.66,40.35,27.27,104.89,41.86,82.28,108.72,82.36,112.47,114.68,98.48,106.75,143.2,98.3,146.11,84.62,39.28,26.09,13.21,13.89,15.3,13M
.49,12.76,10.91,11.22,11.66,10.39,16.71,16.05,18.11,13.21,14.6,12.21,23.75,17.75],HashRate:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.01,.02,.05,.1,.15,.3,.53,.72,2.22,8.1,12.44,12.91,12.11,9.35,8.17,8.31,9.47,10.22,11.26,11.06,11.54,12.27,13.86,17.13,21.05,22.66,24.63,22.37,22.08,27.96,43.35,66.68,87.57,143.9,224.01,450.34,968.43,2414.23,4612.18,8393.81,15100.46,24222.61,34920.64,52780.15,71960.24,105509.49,132150.36,173876.52,231917.78,263539.42,288350.57,287113.17,306755.33,328990.34,343169.64,340822.52,344860.28M
,353738.35,372804.19,391332.19,427120.2,445767.41,510102.75,682195.17,865140.81,1126942.73,1190213.21,1279963.92,1406557.11,1487554.75,1490157.56,1570704.61,1709569.22,1840990.48,1986691.57,2256836.75,2731251.76,3209306.22,3469334.96,3766978.15,4351824.02,5047275.99,6031216.86,6329180.44,7934257.16,9262138.97,10058917.68,13336655.02,17694162.84,22126331.38,24798584.09,28359005.92,31370271.85,37218404.95,39608747.97,48676974.83,51316996.61,51294250.03,44556001.38,38341235.6,41797115.37,43756042.27,44859654.39,458374M
08.35,50592744.3,56176746.9,66689967.41,74479674.81,88386076.5,94980613.11,91544512.94,95372425.78,109247849.15,110430179.13,106848363.58,111395834.34,105723163.2,111613940.97,122218376.21,123700702.43,135729244.14,131980586.29,129004193.3,136509190.2,149214802.71,155108111.05,159602758.88,157248799.97,161224803.71,120055752.7,100343766.57,120734408.56,136618469.38,149131297.08,160891728.14,173207416.46,187556312.02,197761830.55,200793531.65,209062531.1,218666476.28,213559764.38,199931492.65,210641730.16,228320035.M
99,262486431.52,255261668.22,248417169.91],IssTotNtv:[4393.1,6035.71,5590.32,5736.67,5456.45,3726.67,3104.84,2522.58,3598.33,3429.03,3695,6529.03,8070.97,10005.36,8388.71,9296.67,7967.74,7910,12701.61,9703.23,9241.67,9508.06,9848.33,9045.16,8324.19,9939.29,7906.45,8480,10869.35,10426.67,7925.81,7053.23,6928.33,6046.77,6895,7395.16,7651.61,7508.62,7530.65,7016.67,7119.35,7558.33,7698.39,7869.35,7825,7432.26,7089.17,3397.58,3583.87,4158.93,4308.87,4139.17,4013.71,4340,4326.61,4707.26,4689.17,4999.19,4326.67,4529.03,4M
412.9,4376.79,4123.39,4191.67,4063.71,4266.67,3816.13,4134.68,3948.33,3766.13,3686.67,3627.42,3654.03,3766.96,3670.16,3545,3600.81,3651.67,3695.97,3705.65,3724.17,3677.42,3874.17,4083.06,3925,3924.14,3691.94,3715.83,3725.81,3720.83,2272.98,1874.6,1894.58,1832.26,1880.42,1891.94,1980.65,1899.55,1867.74,1849.17,1956.45,1862.92,1970.16,1776.61,2022.92,1942.74,1822.5,2027.82,2038.31,1950.45,1877.02,1920.83,1902.02,1916.67,1873.39,1936.69,1841.25,1765.73,1612.5,1764.11,1824.6,1841.52,1834.68,1807.5,1903.63,1882.92,1923.M
39,1885.48,1931.25,1824.19,1769.17,1856.05,1910.08,1790.52,1715.73,1880.42,1176.81,947.71,925.2,911.49,943.96,846.98,930.42,910.08,934.48,910.71,926.41,848.54,891.73,737.08,881.25,976.61,933.33,943.95,911.88,925,939.31,914.51,915.73,920.42,902.22,895.42,875.2,936.9,911.04,956.25,871.25,889.72],PriceUSD:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.03,.06,.06,.11,.26,.24,.37,.92,.85,1.25,6.21,18.03,14.03,10.01,5.94,3.63,2.69,3.49,6.13,5.12,4.91,4.99,5.07,6.04,7.93,10.92,11.63,11.74,11.48,13.37,15.62,26.09,57.66,128.51,117.6M
2,104.88,85.63,103.75,124.65,154.16,546.34,790.44,818.75,659.77,593.84,463.28,488.35,615.18,618.03,536.25,443.91,363,365.92,341.98,249.76,234.84,269.73,235.71,237.03,238.01,280,251.44,234.07,265.89,348.86,424.4,411.04,403.38,414.86,435.39,462.95,643.11,662.62,579.15,606.28,642.67,725.36,825.36,912.79,1066.56,1129.1,1220.1,1887.75,2616.2,2509.2,3874.59,4102.38,5348.38,7781.03,15194.1,12891.06,9396.6,8992.05,8018.05,8423.25,6769.32,7118.68,6677.73,6590.2,6415.11,5345.76,3665.74,3659.23,3659.2,3923.42,5145.8,7292.92,9M
393.02,10659.62,10628.74,9792.42,8387.16,8339.69,7246.17,8365.74,9646.19,6885.04,7224.35,9264.67,9478.76,9597.28,11648.21,10647.19,11895.13,16670.63,21995.87,34752.86,46316.12,54933.49,57105.46,46507.35,35811.81,34412.28,45746.96,45927.46,57915.47,60684.55,49356.95,41113.15,40756.41,41973.92,41441.34,31706.79,24352.58,21545.18,22362.42,19792.87,19647.72,17579.61,16937.16],SplyCur:[48472.41,217533.93,385161.29,558003.33,732780.65,866686.67,979861.29,1060854.84,1150851.67,1259630.65,1364338.33,1513251.61,1750829.03,2M
022058.93,2284479.03,2560345,2813829.03,3060308.33,3387316.13,3733400,4009745,4289282.26,4602420,4893245.16,5153132.26,5416044.64,5688846.77,5932185,6228667.74,6558259.99,6832253.22,7064993.54,7279301.66,7477649.99,7674893.32,7891479.02,8125303.22,8350007.82,8575120.98,8795640.33,9019411.29,9239973.59,9470443.37,9712677.16,9952911.66,10182023.85,10409127.45,10562093.96,10670972.14,10783889.83,10908831.75,11040121.46,11162675.29,11293814.8,11423218.84,11563366.41,11707331.46,11853870.44,11997602.29,12132910.76,12271M
143.02,12399857.65,12523758.34,12653091.46,12778066.4,12904248.96,13027276.08,13150059.14,13274829.79,13391349.46,13506284.79,13615768.82,13731066.4,13839725.49,13948418.8,14059199.77,14168386.54,14278983.1,14390960.73,14505020.41,14618817.36,14730907.12,14846277.8,14968574.84,15091112.75,15213323.2,15324244.18,15437875.28,15551782.88,15663992.77,15760772.8,15818854.65,15875754.02,15932871.18,15989329.85,16046986.91,16106919.97,16164321.81,16219694.57,16276511.1,16334217.14,16393699.43,16451714.72,16510038.11,16568M
276.93,16627851.01,16683959.84,16745046.17,16807270.36,16866142.78,16922822.78,16980601.09,17037893.75,17096913.38,17153645.16,17213641.12,17270775.25,17325895.15,17378468.58,17427499.18,17485133.05,17539109.29,17592928.62,17648502.74,17705044.74,17762412.32,17821320.95,17880261.68,17938737.32,17996058.45,18050278.15,18105546.35,18164472.97,18219539.74,18272946.76,18327464.82,18376875.39,18405657.32,18434308.81,18462521.56,18490779.42,18518608.36,18544908.53,18572936.56,18602055.51,18629098.91,18655853.55,18683427.M
92,18710778.26,18735584.63,18758486.13,18788190.77,18817268.79,18845770.61,18874466.29,18902540.36,18931245.4,18958554.87,18985341.37,19013231.35,19041460.53,19068609.26,19095446.82,19123500.64,19151919.67,19180835.52,19208536.13,19235283.22],TxCnt:[1.1,1.32,.68,.57,.58,.27,.16,.19,.37,.42,.5,1.16,1.68,5.29,6.42,135.03,41.06,64.4,600.52,192.13,254.53,273.87,1917.13,371.71,960.9,1485.32,2526.65,2296.17,4192.97,10376.33,8465.32,7481.84,6349.57,5319.1,5496.47,5413.32,6297.94,7035.72,6409.71,7364.13,21184.45,32733.63,2M
8904.61,35248.26,31363.63,29999.32,31414.23,36798.74,45864.74,56892.93,54636.29,56698.07,56195.65,46674.33,38778.19,55090.84,53076.33,52882.1,65216.8,62236.61,58445.65,65855.36,67592.16,62879.9,64114.29,60445.97,62196.48,67957.58,71325.13,76940.65,83624.83,87013.45,93180.35,94930.71,98231.29,106357.4,103357.9,116914.13,138948.48,115037.35,138094.07,137549.26,158677.57,196390.9,191582.48,218211.03,196442.48,214184.93,218745.71,228846.93,209706.26,225251.52,221677,237792.19,269506.6,275943.29,278120.13,295383.82,2858M
01.71,278101.93,324527.1,268803.13,231477.97,250545.39,244568.73,289925.23,311366.77,360737.26,286115.16,190908.43,183573.1,191719.63,197773.84,191591.5,206171.39,216955.06,228795.93,244411.16,268526.6,264226.77,297489.97,330719.07,305109.55,366547.33,370984.13,349382.8,332340.87,327664.74,326698.43,319038.32,308007.5,303824.61,309856,325428.66,287013.81,290103.9,293166.03,306327.6,327511.52,315791.71,316282.2,299383.65,304725.1,313649.52,324884.29,320256,301212.06,278230.13,251185.39,217024.07,219482.19,240515.81,M
253446.2,272549.32,276685.3,261549.13,249672.48,249881.89,257165.23,260568.57,259831.94,250418.47,247743.84,251990.06,256130.7,257047.55,262270,256464.77],TxTfrValAdjUSD:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,871.04,1662.68,2249.1,7990.17,14237.01,9168.08,29703.2,62572.94,100361.44,180311.86,1099744.9,6096337.45,2531728.14,1561333.32,878196.19,533059.16,941187.81,1329120.32,1002885.88,1071363.69,843894.12,1125682.36,1392549.16,1852637.7,2487627.54,4102542.34,4067535.35,4095100.82,3407931.22,4327679.04,7150454.87,1140M
1379.67,22518323.72,53859463.38,29506808.87,25176446.65,24590430.06,26296759.4,28920915.71,42198271.83,228286719.7,221061737.32,147043010.17,138037980.19,174943926.8,77371845.18,74105540.52,94837158.4,79975166.57,71254447.04,62324530.65,64739461.4,73348129.45,73436643.03,71240182.99,49283614.41,61961685.08,48191368.95,45694700.31,58071847.39,71069550.37,106123862.41,78078894.93,112920397.77,177530051.17,181867067.9,168274356.73,236057204.17,214628017.24,196540523.13,220125226.97,317659865.92,252407234.41,217839047.M
31,210587118.99,235578318.8,286145914.21,328777959.15,366046914.33,398632618.84,519263623.78,504768613.03,994318052.24,1459324825.09,1279146973.61,2326163813.87,1803597821.65,1953267730.32,3622323333.71,6705271837.39,5036770578.52,3667100683.22,2276319624.39,2024372634.97,2122490825.14,1472566794.25,1484905201.78,1482819910.38,1319061905.76,1382509230.49,1498108368.32,1097018221.94,997218308.28,1025645303.93,1053715559.05,1587849282.73,2162929009.61,2589348134.98,3014391807.75,2220189598.08,2177027776.2,1819091905.M
46,1995415336.45,1438185290.32,1738716838.09,2175105013.62,1956908194.37,1672510880.28,2186236439.62,2063638444.63,2133148577.16,2612623941.64,2589626609.13,2970690801.21,4523850542.13,6113893524.11,9594762016.42,11404244167.39,11815052253.58,14895276552.94,13137493405.62,9754301632.56,6845892300.89,8366655734.18,13868558524.51,18116168247.21,19774210764.42,15915882580.31,13095799799.14,15007638692.69,13561062710.44,21838437839.69,18814440105.04,12373468018.14,10222304474.11,9660009584.02,7836893813.86,5416357014.9M
2,4851782047.93,2769134603.66]},bgs=["#000000","#ffffff"],metrics=Object.keys(bucm),pals={ocean:["#F7FBFF","#ECF4FB","#E1EDF8","#D7E6F4","#CDE0F1","#C1D9ED","#B0D2E7","#A0CAE1","#8BBFDC","#75B3D8","#62A8D2","#519CCB","#4090C5","#3282BD","#2474B6","#1966AD","#0E59A2","#084B94","#083D7F","#08306B"],earth:["#4C00FF","#2100FF","#000BFF","#0037FF","#0062FF","#008EFF","#00BAFF","#00E5FF","#00FF4D","#00FF0F","#2EFF00","#6BFF00","#A8FF00","#E6FF00","#FFFF00","#FFED24","#FFE247","#FFDC6B","#FFDB8F","#FFE0B3"],wizard_1:["#21M
78E3","#3D96DF","#5AB5DC","#77D4D9","#69B2DE","#5283E5","#3B54EB","#5B5BC4","#967C85","#D19E46","#D19D47","#967887","#5C55C8","#384FDF","#4286A3","#4DBD68","#53E340","#47B778","#3A8BB0","#2E5FE8"],miami:["#031B81","#3D3565","#775049","#B26B2D","#DD7B1E","#CC5F41","#BB4365","#AA2688","#A81992","#BE2176","#D3295B","#E9313F","#DD2D46","#BB2064","#991483","#7607A1","#6031B7","#4D69CA","#3AA1DD","#28DAF1"],the_rainbow:["#FF0000","#FF4D00","#FF9900","#FFE500","#CCFF00","#80FF00","#33FF00","#00FF19","#00FF66","#00FFB2","#M
00FFFF","#00B3FF","#0066FF","#001AFF","#3300FF","#7F00FF","#CC00FF","#FF00E6","#FF0099","#FF004D"],lightning:["#D2D2D2","#D7D7D7","#DCDCDC","#E0E0E0","#E3E3E3","#E6E6E6","#E9E9E9","#EBEBEB","#EDEDED","#EEEEEE","#EFEFEF","#F0F0F0","#F1F1F1","#F1F1F1","#F2F2F2","#F2F2F2","#F2F2F2","#F2F2F2","#F8F87F","#FFFF00"],flare:["#FF0000","#FF1200","#FF2400","#FF3700","#FF4900","#FF5B00","#FF6D00","#FF8000","#FF9200","#FFA400","#FFB600","#FFC800","#FFDB00","#FFED00","#FFFF00","#FFFF19","#FFFF4D","#FFFF80","#FFFFB3","#FFFFE6"],pM
epe1:["#EDBF41","#DBBA3E","#C9B53C","#B7B139","#A6AC37","#94A834","#82A332","#719F30","#5F9A2D","#4D962B","#4D8E29","#5F8429","#707A28","#827028","#936627","#A55C27","#B65226","#C84826","#D93E25","#EB3425"],rollercoaster:["#88BECE","#8EB8C5","#93B2BD","#9AACB4","#A0A6AC","#A6A0A3","#AB9A9B","#B29493","#B88E8A","#BE8882","#C38279","#CA7C71","#D07668","#D57060","#DB6A58","#E2644F","#E75E47","#ED583E","#F35236","#FA4D2E"],casascius:["#2AF4F4","#55EAD5","#80E1B7","#ABD899","#D6CF7A","#F6C568","#F5B87A","#F4AC8C","#F39FM
9E","#F292B0","#F18DB3","#F191A6","#F09599","#EF998C","#EF9D7F","#EB968E","#E58DA7","#E083C0","#DB7AD9","#D671F2"],gox:["#8638E6","#8B3CDC","#9040D3","#9544C9","#9B48C0","#A04CB6","#A550AD","#AA54A4","#B0589A","#B55C91","#BA6087","#BF647E","#C56874","#CA6C6B","#CF7062","#D47458","#DA784F","#DF7C45","#E4803C","#EA8533"],laszlo:["#DB9328","#D68227","#D17126","#CC6125","#C7592E","#C0745E","#B8908E","#B1ABBE","#AEABC6","#B28293","#B5595F","#B9302C","#BF371D","#C65F26","#CE872F","#D5AF39","#D5A937","#D49732","#D3862D","M
#D27528"],first_logo:["#EEC51A","#EBBF15","#E8BA10","#E5B50B","#E2B006","#E1B006","#E7BC14","#EEC823","#F4D331","#FAE03F","#F9DE3F","#F1CE30","#E9BF21","#E1B012","#D9A003","#DBA505","#E2B00C","#E8BB13","#EFC61A","#F6D221"],silk_road:["#BCBDA2","#969684","#706F66","#4A4848","#24212A","#130F1E","#413E4A","#706D75","#9E9BA0","#CCCACC","#CCCECC","#9EA69F","#707F74","#425848","#14301C","#153815","#254F1C","#366722","#467E28","#57962F"]},s="http://www.w3.org/2000/svg";var url="https://community-api.coinmetrics.io/v4/timeM
series/asset-metrics?assets=btc&metrics=FeeTotNtv,AdrActCnt,TxTfrValAdjUSD,PriceUSD,TxCnt,HashRate,BlkSizeMeanByte,IssTotNtv,SplyCur&frequency=1d&pretty=true&start_time=stdt&end_time=endt&page_size=10000";function f(t,e,F){return e<.5&&("y"==F?t[3]=1-t[3]:t[2]=1-t[2]),t[0]*=1280,t[1]*=720,t[2]*=1280,t[3]*=720,t}function pp(e,F,n=30,a="77"){for(pal=(pal=mx&!homeColor?(pk=Object.keys(pals)[Math.floor(14*Math.random())],plshw+=pk+" ",pals[pk]):homeColor?(plshw=col,pals[col]):(plshw=pk,pals[pk])).map((t,e)=>t+a),l=F[0]M
.length,p_l=pal.length-1,m1=Math.max(...F[0]),m2=Math.max(...F[1]),k1=(Math.floor(7*mathRand())+1)/3,k2=(Math.floor(7*mathRand())+1)/3,d1=mathRand(),d2=mathRand(),i=0;i<F[0].length;i++)t=i/(l-1),d1<.5?pth(e,f([Math.pow(t,k1),0,Math.pow(t,k2),1],d2,"x"),F[0][i]/m1*n+1,pal[Math.floor(p_l*F[1][i]/m2)]):pth(e,f([0,Math.pow(t,k1),1,Math.pow(t,k2)],d2,"y"),F[0][i]/m1*n+1,pal[Math.floor(p_l*F[1][i]/m2)])}function dp(t,e,F,a){for(rct(t,bgs[Math.round(mathRand())],-10,-10,1290,730),256<=(F=F<=0?1:F)&&(F=255),j=1;j<=n;j++)alM
pha=(strt?Math.round(j/n*F)+1:F).toString(16),pp(t,cnvcm(e),a,("00"+alpha).slice(-2));showi(t)}dt1="20090101",dt=new Date,dt2=dt.getFullYear()+("0"+(dt.getMonth()+1)).slice(-2)+("0"+dt.getDate()).slice(-2);var advc=!1,cadvc=0;function advccl(){14==++cadvc&&(cadvc=0)}function bp(e){for(mtx="",plshw="";null!==e.firstChild;)e.removeChild(e.firstChild);pk=Object.keys(pals)[Math.floor(14*mathRand())],0==ch_ix?col=pk:advc&&(pk=Object.keys(pals)[cadvc]),"cm"==sce?null==cmfd?fetch(cmdf(dt1,dt2)).then(t=>t.json()).then(funcM
tion(t){cmfd=t,dp(e,cmfd,alphas[0],4)}):dp(e,cmfd,alphas[0],4):dp(e,[],alphas[1],30)}function rct(t,e,F,n,a,l){(r=document.createElementNS(s,"rect")).setAttributeNS(null,"x",F),r.setAttributeNS(null,"y",n),r.setAttributeNS(null,"width",a),r.setAttributeNS(null,"height",l),r.setAttributeNS(null,"stroke","none"),r.setAttributeNS(null,"fill",e),t.appendChild(r)}function pth(t,e,F,n){(p=document.createElementNS(s,"path")).setAttributeNS(null,"d","M"+e[0]+" "+e[1]+" "+e[2]+" "+e[3]),p.setAttributeNS(null,"stroke",n),p.sM
etAttributeNS(null,"stroke-width",F),t.appendChild(p)}function cmdf(t,e){return url.replace("stdt",t).replace("endt",e)}function stxt(t,e,F,n){(txt=document.createElementNS(s,"text")).setAttributeNS(null,"x",e),txt.setAttributeNS(null,"y",F),txt.setAttributeNS(null,"font-size","11pt"),txt.setAttributeNS(null,"stroke","none"),txt.setAttributeNS(null,"fill","#ffffff"),txt.innerHTML=n,t.appendChild(txt)}function showi(t){(g=document.createElementNS(s,"g")).setAttributeNS(null,"visibility",seei),g.setAttributeNS(null,"M
id","showi"),gm="",0<intvl&&(gm="| gallery on"),rct(g,"#00000099",-10,650,1290,730),stxt(g,20,670,`${tokenid} | nonce ${nonce} | chain index ${ch_ix} | source ${sce} | stratify ${strt} | mixed ${mx} | n ${n} `+gm),stxt(g,20,690,"palettes "+plshw),stxt(g,20,710,"cm "+mtx),t.appendChild(g)}function cd(){dt1=prompt("Set first date in a string format like this: 20230101","20090101"),dt2=prompt("Set first date in a string format like this: 20230101","20230311")}function churl(){url=prompt("Set the Coin Metrics CommunityM
 API URL using stdt and endt in place of literals on querystring")}function dl(){var F=new Image,t=(F.onload=function(){var t=document.createElement("canvas"),e=(t.width=1280,t.height=720,t.getContext("2d")),e=(e.fillStyle="#fff",e.fillRect(0,0,t.width,t.height),e.drawImage(F,0,0),document.createElement("a"));e.href=t.toDataURL("image/png"),e.download=tokenid+"-"+nonce+"-"+ch_ix+".png",document.body.appendChild(e),e.click(),document.body.removeChild(e)},document.querySelector(".container svg")),t=(new XMLSerializerM
).serializeToString(t);F.src="data:image/svg+xml;utf8,"+encodeURIComponent(t)}window.onkeydown=function(t){"r"==t.key?(ch_ix=0,setMulberry(nonce),bp(doc)):"n"==t.key?(ch_ix+=1,setMulberry(nonce+ch_ix),bp(doc)):"c"==t.key?sce=["cm","onchain"][Number("cm"==sce)]:"0"==t.key?(ch_ix+=10,setMulberry(nonce+ch_ix),bp(doc)):"d"==t.key?cd():"p"==t.key?(setMulberry(nonce+ch_ix),bp(doc)):"u"==t.key?churl():"i"==t.key?(seei=["visible","hidden"][Number("visible"==seei)],setMulberry(nonce+ch_ix),bp(doc)):"h"==t.key?(homeColor=!hoM
meColor,mx=advc=!1):"P"==t.key?(homeColor=!(advc=!0),mx=!1,advccl()):"a"==t.key?(alphas[0]+=Math.round(Math.abs(255-alphas[0])/10)+1,alphas[1]+=Math.round(Math.abs(255-alphas[1])/10)+1,256<=alphas[0]&&(alphas[0]=255),256<=alphas[1]&&(alphas[1]=255)):"A"==t.key?(alphas[0]-=Math.round(alphas[0]/10)+1,alphas[1]-=Math.round(alphas[1]/10)+1,alphas[0]<=0&&(alphas[0]=1),alphas[1]<=0&&(alphas[1]=1)):"1"==t.key?n=1:"2"==t.key?n=2:"3"==t.key?n=3:"4"==t.key?n=4:"5"==t.key?n=5:"6"==t.key?n=6:"-"==t.key?dl():("g"==t.key|"G"==t.M
key|"v"==t.key)&0==intvl?("v"==t.key&&(bgs=["#000000","#000000"]),intvl=setInterval(function(){ch_ix+=1,setMulberry(nonce+ch_ix),bp(doc)},1e4+5e4*Number("G"==t.key)-9850*Number("v"==t.key))):"x"==t.key?(clearInterval(intvl),intvl=0,bgs=["#000000","#ffffff"]):"m"==t.key?(mx=!0,homeColor=!1,advc=!1):"s"==t.key&&(strt=!strt)};
const tokenid = 'Metrix by Takens Theorem';
const nonce = 20090103;
var sce = 'onchain';
var homeColor = false;
var alphas = [20,140];
var seei = 'hidden';
var doc = document.getElementById("svg");
window.$generativeTraits = {
    "Nonce 0":nonce, "Metrics pairs": n, Palette: col
document.title=tokenid;
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vb26e4fa9e5134444860be286fd8771851679335129114" integrity="sha512-M3hN/6cva/SjwrOtyXeUa5IuCT0sedyfT+jK/OV+s+D0RnzrTfwjwJHhd+wYfMm9HJSrZ1IKksOdddLuN6KOzw==" dataL
-cf-beacon='{"rayId":"7ac26e93e807a24d","version":"2023.3.0","b":1,"token":"6c07c178c94442f695e7a0a2aaee641a","si":100}' crossorigin="anonymous"></script>
FjDOUT:E1F7EDAFBA38CD40FD9DD8A78299F63043C4ED9406BAD2994BB625C160C000DF
FjDOUT:C5A7AF1FAC5C15B4CB80B74662978805D1FD96E84BD8769C89EA98B86F7E4EE4
FjDOUT:0997FD8AA1B315D647E31B1A3F9182EC6B738C1B784B5B8146E74339F7CD889B
text/plain;charset=utf-8
  "name": "G11.sats",
FjDOUT:0116B7FF3C39EDB439791719A9A19C27280979C37265AF11009F2749F65FBBC1
FjDOUT:CA6DF1DAAEA0CC5F0A46616E393341B6D8F94B0577F72180902DD828FB764E3B
FjDOUT:CE37253971CF279FB5D5EE4B181F9E97122588DFCA15E68D48A62D203A13180F
Aj?=:ETH.ETH:0xC33De09A2c763b65Af7E9Cf253B2945a06a66076:4477929::0
Bj@=:ETH.ETH:0x3A4dd4381489695722877f325A98A444f253d708:48293572::0
text/html;charset=utf-8
    <title>Navigate to WhitePaper</title>
      display: flex;
      align-items: center;
      justify-content: center;
      height: 100vh;
      onclick="window.location.href='/content/85b10531435304cbe47d268106b58b57a4416c76573d4b50fa544432597ad670i0'"
      Goto Bitcoin WhitePaper
text/plain;charset=utf-8
text/html;charset=utf-8
    <title>Lingle's Ord Lava Lamp</title>
    <!-- Lingle's aka DJGIFTEDPROPHET's original code, see back log for comments - this was compiled from various open source code and refactored for ordinals--
      a Poem for you:
      A beautiful thing to see
you can only see it at night
that blinks just so quietly
all the data ordinarily
that could be art, or designs or anything
the one that wishes for
a peace for millenium and more
the universe and beyond
until next time which is infinity
Written 03.20.2023:04:20:00UTC
Signed via bitcoin blockchain
edition#2 experiment 4
predicted deviation, 3`
  box-sizing: border-box;
  background: #0b8ce2;
  min-height: 100vh;
  align-items: center;
  position: relative;
  overflow-x: hidden;
  position: absolute;
  transform: translate(-69.5%, -26%);
  height: calc(var(--height) * 1px);
  width: calc(var(--width) * 1px);
  position: relative;
  position: absolute;
  background: radial-gradient(circle at 50% 50%, #CCCCCC, transparent 60M
  transform: translate(-50%, -50%);
  filter: blur(10px);
  border-radius: 100%;
  background: radial-gradient(ellipse at 50% 50%, #fe9f19, transparent 60%);
  position: absolute;
  transform: translate(-50%, 0);
  filter: blur(10px);
  border-radius: 50% 50% 50% 50%/60% 60% 40% 40%;
  position: relative;
.lava-lamp__main:after,
.lava-lamp__main:before {
  position: absolute;
.lava-lamp__main:after {
.lava-lamp__main:before {
  background: radial-gradient(circle at 50% 50%, #3a539b 25%, #19b5fe);
  border-radius: 50%/10%;
  position: absoluteM
  position: absolute;
  border-radius: 0 0 50% 50%/0 0 35% 35%;
.lava-lamp__base:before {
  border-radius: 50% 50% 50% 50%/60% 60% 40% 40%;
  position: absolute;
  height: calc(var(--height) * 1px);
  width: calc(var(--width) * 1px);
  border-radius: 50%/10%;
  position: absolute;
  filter: url("#goo");
.lava-lamp__lava svg {
  -webkit-animation-delay: calc(var(--delay) * 1s);
          animation-delay: calc(var(--delay) * 1s);
  -webkit-animation-direction: var(--direction);
          animation-direction: var(--direction);
  -webkit-animation-duration: calc(var(--speed) * 1s);
          animation-duration: calc(var(--speed) * 1s);
  -webkit-animation-iteration-count: infinite;
on-iteration-count: infinite;
  -webkit-animation-name: blob;
          animation-name: blob;
  -webkit-animation-timing-function: linear;
          animation-timing-function: linear;
  transform-box: fill-box;
  -webkit-animation: none;
          animation: none;
  -webkit-animation: sway 20s infinite linear;
          animation: sway 20s infinite linear;
@-webkit-keyframes sway {
    transform: translate(50%, 0);
    transform: translate(50%, 0);
@-webkit-keyframes blob {
    transform: skew(calc(var(--skewX) * 1deg), calc(var(--skewY) * 1deg)) translate(0, 0);
    transform: skew(calc(var(--skewX) * 1deg), calc(var(--skewY) * 1deg)) translate(0, calc((400 + (var(--height) * 2)) * -1px));
    transform: skew(calc(var(--skewX) * 1deg), calc(var(--skewY) * 1deg)) translate(0, 0);
    transform: skew(calc(var(--skewM
X) * 1deg), calc(var(--skewY) * 1deg)) translate(0, calc((400 + (var(--height) * 2)) * -1px));
    <div class="scene">
        <div class="lava-lamp" style="--height: 400; --width: 150">
          <div class="lava-lamp__main">
            <div class="lava-lamp__glass">
                <div class="lava-lamp__lava">
                  <svg>
                    <ellipse class="blob blob--top" cx="35" cy="0" rx="35" ry="10"></ellipse>
                    <ellipse class="bM
lob blob--bottom" cx="75" cy="270" rx="75" ry="10"></ellipse>
                    <circle class="blob" r="21" cx="72" cy="400" style="--skewX: -5; --skewY: -1; --height: 42; --speed: 41; --delay: -5; --direction: alternate;"></circle>
                    <circle class="blob" r="16.5" cx="79" cy="400" style="--skewX: -5; --skewY: -1; --height: 33; --speed: 44; --delay: -6; --direction: alternate-reverse;"></circle>
                    <circle class="blob" r="23.5" cx="70" cy="400" style="--skewX: -4; --skewY: -4;M
 --height: 47; --speed: 40; --delay: -8; --direction: alternate;"></circle>
                  </svg>
                </div>
                <div class="lava-lamp__lava">
                  <svg>
                    <ellipse class="blob blob--top" cx="35" cy="0" rx="35" ry="10"></ellipse>
                    <ellipse class="blob blob--bottom" cx="75" cy="270" rx="75" ry="10"></ellipse>
                    <circle class="blob" r="38" cx="130" cy="400" style="--skewX: -3; --skewY: -2; --height: 76; --speed: 47; M
--delay: -7; --direction: alternate;"></circle>
                    <circle class="blob" r="17" cx="74" cy="400" style="--skewX: 2; --skewY: 5; --height: 34; --speed: 11; --delay: -10; --direction: alternate-reverse;"></circle>
                    <circle class="blob" r="26.5" cx="114" cy="400" style="--skewX: -5; --skewY: -4; --height: 53; --speed: 23; --delay: 0; --direction: alternate-reverse;"></circle>
                    <circle class="blob" r="37" cx="100" cy="400" style="--skewX: 2; --skewY: 3; --height:M
 74; --speed: 18; --delay: -6; --direction: alternate-reverse;"></circle>
                  </svg>
                </div>
                <div class="lava-lamp__lava">
                  <svg>
                    <ellipse class="blob blob--top" cx="35" cy="0" rx="35" ry="10"></ellipse>
                    <ellipse class="blob blob--bottom" cx="75" cy="270" rx="75" ry="10"></ellipse>
                    <circle class="blob" r="18" cx="118" cy="400" style="--skewX: -3; --skewY: 4; --height: 36; --speed: 37; --dM
elay: 0; --direction: alternate-reverse;"></circle>
                    <circle class="blob" r="18" cx="59" cy="400" style="--skewX: -3; --skewY: -3; --height: 36; --speed: 48; --delay: -7; --direction: alternate;"></circle>
                  </svg>
                </div>
                <div class="lava-lamp__lava">
                  <svg>
                    <ellipse class="blob blob--top" cx="35" cy="0" rx="35" ry="10"></ellipse>
                    <ellipse class="blob blob--bottom" cx="75" cy="270" rx="M
75" ry="10"></ellipse>
                    <circle class="blob" r="24" cx="94" cy="400" style="--skewX: 1; --skewY: -1; --height: 48; --speed: 31; --delay: -8; --direction: alternate;"></circle>
                  </svg>
                </div>
          <div class="lava-lamp__base"></div>
        <svg style="position: absolute; left: 100%">
            <filter id="goo">
              <feGaussianBlur in="SourceGraphic" stdDeviation="10" reMC
sult="BLUR"></feGaussianBlur>
              <feColorMatrix in="BLUR" mode="matrix" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 18 -7" result="GOO"></feColorMatrix>
              <feBlend in="SourceGraphic" in2="goo"></feBlend>
            </filter>
CjA=:ETH.ETH:0xC6606cA68B2738f3e47BB0e9658f840Df850CfB2:217097084::0
DjB=:ETH.ETH:0xDeF6005a573347D49c99946b3fC598175c8cd67E:1213248128::0
text/plain;charset=utf-8
FjDOUT:99FF62A903C31DC3B3D6244BE57EAB51587B4C9E105E96CF907AADEBBBAAE96A
FjDOUT:E1A376EA0EB6262C5371C8800CB1A70953DF97E59791856849D432C63094C50A
FjDOUT:9709C3C4C8C4D11DA8C58C1BC2E9B57121AA493ABC0FE3CF1025742A5ADF2F91
FjDOUT:B83CE971070CB9D8AA2CEFF4202080AF581B74B7B01808D7734426CA4B260472
MjKs:ETH.USDT-EC7:0xAb870Bdec8b315d7C155e7DE51435DB3d40c2D35:134893175722:ss:0
d/Foundry USA Pool #dropgold/
FjDOUT:540971E0DB42A6C3B9512E9A05B28AA24901B83A659C850AAFE90A0EF3B7D622
FjDOUT:A94C9C449006FDDEA651C7030B598D4C094A7F43E980393AF3FECDA472E84D86
Copyright (c) 1998 Hewlett-Packard Company
IEC http://www.iec.ch
IEC http://www.iec.ch
.IEC 61966-2.1 Default RGB colour space - sRGB
.IEC 61966-2.1 Default RGB colour space - sRGB
,Reference Viewing Condition in IEC61966-2.1
,Reference Viewing Condition in IEC61966-2.1
" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
mlns:xmp="http://ns.adobe.com/xap/1.0/">
         <xmp:CreatorTool>Adobe Photoshop CS6 (Windows)</xmp:CreatorTool>
         <xmp:CreateDate>2023-03-05T16:51:53+01:00</xmp:CreateDate>
         <xmp:MetadataDate>2023-03-13T16:16:15+01:00</xmp:MetadataDate>
         <xmp:ModifyDate>2023-03-13T16:16:15+01:00</xmp:ModifyDate>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:dc="http://purl.org/dc/elements/1.1/">
         <dc:format>image/tiff</dc:format>
      </rdf:Description>
Description rdf:about=""
            xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
            xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
            xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#">
         <xmpMM:InstanceID>xmp.iid:7BD7F1F4B1C1ED11A8FAE9B44C87C46F</xmpMM:InstanceID>
         <xmpMM:DocumentID>xmp.did:320066A66DBBED11A969CFDA1CE581CC</xmpMM:DocumentID>
         <xmpMM:OriginalDocumentID>xmp.did:320066A66DBBED11A969CFDA1CE581CC</xmpMM:OriginalDocumentID>
            <rdf:Seq>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>created</stEvt:action>
                  <stEvt:instanceID>xmp.iid:320066A66DBBED11A969CFDA1CE581CC</stEvt:instanceID>
                  <stEvt:when>2023-03-05T16:51:53+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CS6 (Windows)</stEvt:softwareAgent>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:actioM
                  <stEvt:instanceID>xmp.iid:330066A66DBBED11A969CFDA1CE581CC</stEvt:instanceID>
                  <stEvt:when>2023-03-05T16:55:34+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CS6 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:7AD7F1F4B1C1ED11A8FAE9B44C87C46F</stEvtM
                  <stEvt:when>2023-03-13T16:16:15+01:00</stEvt:when>
                  <stEvt:softwareAgent>Adobe Photoshop CS6 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>converted</stEvt:action>
                  <stEvt:parameters>from application/vnd.adobe.photoshop to image/tiff</stEvt:parameters>
               </rdf:li>
               <rdf:li rdf:parseTyM
                  <stEvt:action>derived</stEvt:action>
                  <stEvt:parameters>converted from application/vnd.adobe.photoshop to image/tiff</stEvt:parameters>
               </rdf:li>
               <rdf:li rdf:parseType="Resource">
                  <stEvt:action>saved</stEvt:action>
                  <stEvt:instanceID>xmp.iid:7BD7F1F4B1C1ED11A8FAE9B44C87C46F</stEvt:instanceID>
                  <stEvt:when>2023-03-13T16:16:15+01:00</stEvt:when>
                  <stEvt:softwareAgent>AdoM
be Photoshop CS6 (Windows)</stEvt:softwareAgent>
                  <stEvt:changed>/</stEvt:changed>
               </rdf:li>
            </rdf:Seq>
         </xmpMM:History>
         <xmpMM:DerivedFrom rdf:parseType="Resource">
            <stRef:instanceID>xmp.iid:7AD7F1F4B1C1ED11A8FAE9B44C87C46F</stRef:instanceID>
            <stRef:documentID>xmp.did:320066A66DBBED11A969CFDA1CE581CC</stRef:documentID>
            <stRef:originalDocumentID>xmp.did:320066A66DBBED11A969CFDA1CE581CC</stRef:originalDocumentID>
   </xmpMM:DerivedFrom>
      </rdf:Description>
      <rdf:Description rdf:about=""
            xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/">
         <photoshop:ColorMode>3</photoshop:ColorMode>
         <photoshop:ICCProfile>sRGB IEC61966-2.1</photoshop:ICCProfile>
         <photoshop:DocumentAncestors>
            <rdf:Bag>
               <rdf:li>xmp.did:320066A66DBBED11A969CFDA1CE581CC</rdf:li>
            </rdf:Bag>
         </photoshop:DocumentAncestors>
      </rdf:Description>










                        M





                                       M





                                                      M





                                                                     M





                                                                                    M




                                                                                                   M










                            M





                                           M





                                                          M





                                                                         M





                                                                                        M















                                M





                                               M





                                                              M





                                                                             M





                                                                                            M










                     M





                                    Lr

text/plain;charset=utf-8
   _||______||_0_||  _ _ _    _ _ _    _ _ _
  {B} | | |_|_____| |      | |      | |      |
 /------|-|_|_____|=|______|=|______|=|______|
#-(o)-(o)--(o)-(o)  (o)-(o)  (o)-(o)  (o)-(o)
FjDOUT:3289A63AF8F4A88A45E1504065614267261D8093C759A921ACFB959F2E3833FC
FjDOUT:1E0786D1CA909EEA2FBA2446DE7DF6372EC1E2F2DE67278E8B86007C51A6CF6B
FjDOUT:5E21483CB02544F727878C28152427D9E78E6E69DF2373BDCF0341EEAC19C93F
Bj@=:ETH.ETH:0x3c4947D7dDb02DdC0931881B79211509aA074733:23507207::0
MjKs:ETH.USDT-EC7:0xAb870Bdec8b315d7C155e7DE51435DB3d40c2D35:292448088707:ss:0
text/plain;charset=utf-8
J{"p":"brc-20","op":"deploy","tick":"grab","max":"1000000000","lim":"1000"}h!
CjA=:BNB.BNB:bnb1jp4scttts5dld7nfxk6hs5kdx07kyqvt8t3gax:516202204::0
text/plain;charset=utf-8
  "name": "qatari.sats"
DjB=:ETH.ETH:0xc6667e3fdE23c9775dC593c56Dbc4F6f1b182b7B:38809046:te:0
DjB=:ETH.ETH:0x1Dfd6c70279dA44b665BC280F395281dC2847E2E:47166824:te:0
text/plain;charset=utf-8
H{"p":"brc-20","op":"deploy","tick":"ORCH","max":"21000000","lim":"1000"}h!
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>ArboCinematica</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandbox="allow-scripts" type="text/M
javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="allow-scripts" type="text/jaM
vascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <script type="text/javascript">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed ==M
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274M
213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this M
function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
              width: 100%;
              height: 100%;
              margin: 0px;
              padding: 0;
              display: flex;
              justify-content: center;
              align-items: center;
              top: 0;
              bottom: 0;
              left: 0;
              right: 0;
              max-width: 100%;
              max-height: 100%;
              margin: auto;
              overflow: auto;
              object-fit: contain;
              position: fixed;
<script type="text/javascript">
    const rand = mathRand();
    const container = document.createElement("div")
    container.innerM
HTML = "<span>seed: " + seed + "</span><br>";
    console.log(container.innerHTML)
    let t,r,e,i,o=1e9*mathRand();function nRandom(t,r,e,i){return i===Math.floor?void 0!==e?Math.floor(random(r,e)):Math.floor(random(r)):void 0!==e?random(r,e):random(r)}function randomGaussian(t,r){return p5.prototype.randomGaussian(t,r)}function nRandomBoolean(t,r){return mathRand()<r}function random(t,r){return Array.isArray(t)?arrayPick(t):(void 0===r&&(r=void 0===t?1:t,t=0),mathRand()*(r-t)+t)}function roundVector(t){return t.M
x=Math.round(t.x),t.y=Math.round(t.y),t}function constrain(t,r,e){return Math.min(Math.max(t,r),e)}function nArrayPick(t,r,e){return void 0!==e?arrayPick(r,e):arrayPick(r)}function arrayPick(t,r){if(void 0===r){if(0===(r=t.slice()).length)return;t=[];for(let e=0;e<r.length;e++)t[e]=100*(e+1)/r.length}let e=100*random();if(r.length>0&&t.length==r.length){for(var i=[],o=0;o<t.length;o++)i.push({weight:t[o],element:r[o]});i.sort((function(t,r){return t.weight<r.weight?-1:t.weight==r.weight?0:1}));for(let t=0;t<i.lengtM
h;t++){if(t==i.length-1)return i[t].element;if(e<i[t].weight)return i[t].element}}}p5.prototype.randomSeed(o);let a,s,h,n,d,c,l,m,u,p,g,f,M,x,S,b,y,w,V,R,k,v,C,L,z,E,W,F,B,A,D,P,I=700,G=["#e9ecef","#F2F2F0","#f7fff7","#D9C6B0"],T=["#386641","#6a994e","#a7c957","#f2e8cf","#bc4749","#3c1642","#086375","#1dd3b0","#affc41","#b2ff9e"],H=["#A3B4BF","#D8EBF2","#1A3940","#4C6C73","#819FA6","#04301C","#0A572B","#30C771","#F2FFFA","#9EFCFF"],O=["#A0C603","#F2A81D","#734002","#F2985C","#D96A29","#E0FF84","#F2DA50","#D9BA55","M
#8C791B","#595911"],X=["#5A7302","#324001","#86A614","#B6D93B","#022601","#155902","#267302","#82BF26","#BFD962","#E7F2BD"],N=["#F0F0F0","#E3BF0D","#CACACA","#F2CF1D","#F2BD1D","#F28E13","#F24405"],_=["#592918","#8C564A","#8C3F3F","#792938","#AC566A","#AC3F5F"],j=["#2C4001","#364022","#5A7302","#93A603","#736830"],q=["#9CB0D9","#CEDEF2","#667302","#F2EFBD","#F2CA7E"],U=["#BF8756","#59412D","#A68C76","#402A1E","#F2F2F2","#D9843B","#F2CEAE","#BF5517","#8C260F","#590A0A"],Y=["#A60311","#8C0327","#BF046B","#A69B03","#FM
2A766","#730217","#F20544","#BF0436","#D9296A","#344973"],$=["#B07756","#55012D","#A65C66","#301A10","#C2C2B2","#C9542B","#F7BEAE","#CF5827","#7C361F","#790A2A"],J=20,K=[],Q=!0,Z=!0,tt=!0,rt=!0,et=!0,it=0,ot=[],at=[],st=["growth"],ht=0,nt=!0,dt=0,ct=[],lt=300,mt=["#0468BF","#0487D9","#05AFF2","#05C7F2"],ut=[],pt=1,gt=1,ft=.05,Mt=-.04,xt=[],St=!1,bt=!1,yt=[],wt=!1,Vt=!1,Rt=!0,kt=1/32,vt=!1,Ct="normal",Lt=[],zt=!1;const Et={season:nArrayPick("season",[50,75,92,100],["spring","summer","fall","winter"]),fruitsOn:nRandoM
mBoolean("fruit/fruitsOn",.6),maxTrees:nRandom("maxTrees",1,6,Math.floor),backgroundSun:nRandom("background/backgroundSun",0,5,Math.floor),sRadius:nRandom("sun/sRadius",.05,1/12),treeTrunkHeight:nRandom("treeTrunkHeight",.72,.85),treeColor0:nRandom("color/treeColor0",0,$.length-1,Math.floor),treeColor1:nRandom("color/treeColor1",0,U.length-1,Math.floor),leafColor:nRandom("color/leafColor",0,9,Math.floor)};window.$generativeTraits={...Et},console.log(window.$generativeTraits);const Wt={backgroundColor:nArrayPick("baM
ckground/backgroundColor",[25,50,75,100],G),treeRotation_conf:nRandom("treeRotation",Math.PI/10,Math.PI/3+Math.PI/10)*randomSign(),treeMaxFork_conf:nRandom("treeMaxFork",2,5,Math.floor),treeBranchHeight_conf:nRandom("treeBranchHeight",.45,.6),lengthError:nRandom("lengthError",.12,.22),forestMaxLevels:nRandom("maxLevels",5,7,Math.floor),colorSD:nRandom("color/colorSD",.9,3),fruitColor:nRandom("fruit/fruitColor",0,9,Math.floor),fruitLevelMinRange:[nRandom("fruit/fruitLevelMin",[2,3]),nRandom("fruitLevelRange",1,3,MatM
h.floor)],fruitFactor:nRandom("fruit/fruitFactor",2,2.5),fruitRatio:nRandom("fruit/fruitRatio",.5,1),maxFruitProb:nRandom("fruit/maxFruitProb",.6,.93),yzRatio:nRandom("yzRatio",.1,.4),brushRotationFactor:nRandom("brushRotationFactor",.6,1),dColorSD:nRandom("dColorSD",1,3),curvature:nRandom("curvature",.5,3),curveHeight:nRandom("curveHeight",.75,.88),fileNumber:(9999*random()>>0).toString(),highResInnerCanvas:nRandom("walls",[[3500,4e3],[3850,4400],[4200,4800],[4550,5200]]),sColorSD:nRandom("sun/sColorSD",2.5,6),sunM
Pos:[nRandom("sun/X",.2,.8),nRandom("sun/Y",.03,.12)],sunBrushFactor:nRandom("sun/sunBrushFactor",.3,.65),sunBrushes:getRandomArray("sun/SunBrush",2,0,7),gColorSD:nRandom("grass/gColorSD",3,15),maxGVariety:nRandom("grass/maxGVariety",1,4,Math.floor),gCurvature:nRandom("grass/gCurvature",.1,.8),maxGClumps:getRandomArray("grass/maxGClumps",2,1,4),maxGLeaves:nRandom("grass/maxGLeaves",4,7),maxGRange:nRandom("grass/maxGRange",.09,.35),filterSize:nRandom("filterSize",2,4,Math.floor),filterScale:[nRandom("filterScaleX",5M
,8,Math.floor),nRandom("filterScaleY",5,8,Math.floor)],filterAlpha:nRandom("filterAlpha",220,255,Math.floor),maxColorChanges:[nRandom("maxColorChanges0",15,35,Math.floor),nRandom("maxColorChanges1",15,35,Math.floor),nRandom("maxColorChanges2",15,35,Math.floor)],maxSplashWeight:nRandom("maxSplashWeight",7,10,Math.floor),suppressGammaAdjust:nRandomBoolean("suppressGammaAdjust",.35),gammaInv:nRandom("gammaInv",.02,1),triangleFilterMode:nRandomBoolean("triangleFilterMode",.33)};function getRandomArray(t,r,e,i,o){let a,M
s=[],h=void 0!==o;for(let o=0;o<r;o++)a=t+"_"+o,h?s.push(nRandom(a,e,i,h)):s.push(nRandom(a,e,i));return s}function standardizeDegree(t,r){let e=Math.pow(10,r),i=Math.sign(t);return Math.round((i*p5.prototype.fract(t)+t%360)*e)/e}function saveCanvas(e,i,o){vt=!0,Ct="freeze",null==W&&(z=kt*t,W=e.createGraphics(t+2*z>>0,r+2*z>>0),W.noStroke(),W.tint(255,255),W.fill(Wt.backgroundColor),W.rect(0,0,t+2*z>>0,r+2*z>>0),W.tint(255,230),W.image(n,z>>0,z>>0,n.width,n.height),W.noTint(),n.clear(),n.image(W,0,0,n.width,n.heighM
t),Rt&&P.drawFilter(n,p5)),o&&W.get().save(E+"_"+e.hex(i).toString(),"png"),vt=!1}function randomSign(){let t=Math.round(Math.abs(Math.sin(10*random())));return Math.cos(t*Math.PI)}function compare(t,r){return t.zShift>r.zShift?-1:1}var sketch=function(o){o.setup=function(){switch(E="ArboCinematica_"+Wt.fileNumber,t=Wt.highResInnerCanvas[0],r=Wt.highResInnerCanvas[1],e=Math.sqrt(Math.pow(t,2),Math.pow(r,2)),i=2*t+2*r,F=Math.max(Math.min(o.windowWidth,7*o.windowHeight/8>>0),I)>>0,B=8*F/7>>0,h=o.createCanvas(F,B),h.sM
tyle="",h.style.opacity="",h.style.filter="",h.style["-ms-filter"]="",h.id("ArboCinematica"),n=o.createGraphics(t,r),v=Wt.forestMaxLevels,o.frameRate(1),n.noStroke(),Et.season){case"winter":a=H,s=q;break;case"spring":a=X,s=j;break;case"fall":a=O,s=q;break;default:a=T,s=j}L=Et.fruitsOn,l="Ellipse",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],K.push(new Bt(l,m,u,p,g,d)),l="Ellipse",m=.5,u=.3*Wt.brushRotationFactor,p=!1,g=[random($)],K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,M
p=!1,g=[random($)],d=function(t,r,e){return Math.sin(2*t+r/10)},K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.cos(t)},K.push(new Bt(l,m,u,p,g,d)),o.noiseSeed(random()),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return o.noise(t+r/10)},K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.cos(e/10-Math.PI)},K.push(new Bt(M
l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.abs(Math.sin(t+r/10))},K.push(new Bt(l,m,u,p,g,d)),l="SplashRV",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],c=.1,d=function(t,r,e,i){return Math.sin(2*t+r/10)+randomGaussian(0,c)},K.push(new Bt(l,m,u,p,g,d,c)),l="RSphere",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($),random($)],d=function(){return[1-random(random(random())),random()]},K.push(new Bt(l,m,u,p,g,d)),l="RLSphere",m=.1,u=.1*Wt.bruM
shRotationFactor,p=!1,g=[random($),random($)],d=function(){return[1-random(random(random())),random()]},K.push(new Bt(l,m,u,p,g,d));let M=J,W=.5*J>>0,A=0,G=7,U=.05,Y=.3;if(ot.push(new Ft(M,W,A,G,U,Y)),M=J,W=.5*J>>0,A=0,G=7,U=.015,Y=.1,ot.push(new Ft(M,W,A,G,U,Y)),at[0]=[function(t){return Math.sin(Math.sin(1+.9*Math.sin(t+Math.PI)))},1],at[1]=[function(t){return 2*Math.cos(4*t)},1],at[2]=[function(t){return Math.exp(Math.cos(t))-.9*Math.cos(4*t)+Math.sin(t/12)^5},12],Z){n.angleMode(o.DEGREES),S=t/3.5>>0,b=.7*t+MathM
.sqrt(t*r)*random(),y=10+random(10)>>0,ut=[mt[random()*mt.length>>0],mt[random()*mt.length>>0]];let e=K[random(0,7)>>0],i=[new Bt(e.type,e.widthError,e.rotationError,e.strokeOn,ut,e.function,e.sd,1)];w=Wt.dColorSD;for(let r=0;r<1;r++)V=5+10*random()>>0,gt=t/700>>0,x=t/700+10*t/700>>0,k=t/100+random(t/300)>>0,R=standardizeDegree(random(360),5),xt.push(new It(pt,V,gt,x,R,S,b,y,ft,Mt,k,i));n.angleMode(o.RADIANS)}if(tt){n.angleMode(o.DEGREES),S=.65*t>>0,b=random(.8,1)*t>>0,y=4+random(4)>>0;let e=[random(_),random(_)],iM
=K[random(0,7)>>0],a=[];a.push(new Bt(i.type,i.widthError,i.rotationError,i.strokeOn,e,i.function,i.sd,1));let s=[random(_),random(_)];i=K[random(0,7)>>0],a.push(new Bt(i.type,i.widthError,i.rotationError,i.strokeOn,s,i.function,i.sd,1)),w=Wt.dColorSD,R=0;let h=Wt.curvature,d=Wt.curveHeight*r>>0;for(let r=0;r<1;r++)V=10+10*random()>>0,gt=t/150+random(t/100)>>0,x=gt+random(t/100)>>0,k=t/2e3+random(t/2e3)>>0,yt.push(new Tt(pt,V,gt,x,R,S,b,y,ft,Mt,k,a,h,d));n.angleMode(o.RADIANS)}if(et){n.angleMode(o.DEGREES);for(let M
r=0;r<Wt.maxGVariety;r++){let r;S=.09*t>>0,b=random(.15,.2)*t>>0,y=1;let e=[random(s),random(s)],i=Wt.gColorSD,a=random(0,7)>>0;r=5==a?K[random(0,5)>>0]:K[a];let h=[];h.push(new Bt(r.type,r.widthError,r.rotationError,r.strokeOn,e,r.function,i,1));let n=[random(s),random(s)];a=random(0,7)>>0,r=5==a?K[random(0,5)>>0]:K[a],h.push(new Bt(r.type,r.widthError,r.rotationError,r.strokeOn,n,r.function,i,1)),R=0;let d=Wt.gCurvature;V=15+15*random()>>0,pt=8,gt=t/700+random(t/700)>>0,x=gt+random(t/750)>>0,k=t/2e3+random(t/2e3)M
>>0;let c=o.createVector(0,0),l=0,m=.1;Lt.push(new Ht(pt,V,gt,x,R,S,b,y,ft,m,k,h,d,c,l))}n.angleMode(o.RADIANS)}if(rt){n.angleMode(o.DEGREES),S=.65*t>>0,b=random(.8,1)*t>>0,y=3;let e=Wt.sColorSD,i=[random(N),random(N)],a=K[Wt.sunBrushes[0]>>0],s=[];s.push(new Bt(a.type,a.widthError,a.rotationError,a.strokeOn,i,a.function,e,1));let h=[random(N),random(N)];a=Wt.sunBrushes[1]>>0==5?K[random(4)>>0]:K[Wt.sunBrushes[1]>>0],s.push(new Bt(a.type,a.widthError,a.rotationError,a.strokeOn,h,a.function,e,1));let d=0,c=Et.sRadiuM
s*t,l=o.createVector(Wt.sunPos[0]*t,Wt.sunPos[1]*r),m=Wt.sunBrushFactor;V=10+10*random()>>0,gt=t/150+random(t/100)>>0,x=gt+random(t/100)>>0,k=t/2e3+random(t/2e3)>>0,D=new Gt(pt,V,gt,x,d,S,b,y,ft,Mt,k,s,c,l,m),n.angleMode(o.RADIANS)}if(Q){ct.push(new Pt(t/20>>0,o.color("#c6d4ff"))),ct.push(new Pt(t/20>>0,o.color("#fffafb"))),ct[0].color.setAlpha(120),ct[1].color.setAlpha(130);let e=t/30>>0,i=t/900>>0,a=t/500>>0,s=st[0],h=Et.maxTrees,n=.12,d=Wt.lengthError;C=Wt.colorSD,f=new At(h,t,r,n,d,a,s,i,e,(function(t,r){returnM
-.5+Math.sin(t.x+1+r%1e4)}),(function(t,r){return constrain(t,0,1)}),(function(t,r){return constrain(t,0,2)}),null,0),f.setupTrees(o)}Rt&&(P=new Ot(Wt.filterSize,Wt.filterScale,Wt.filterAlpha,Wt.maxColorChanges,Wt.gammaInv,z,Wt.triangleFilterMode,o)),n.background(N[Et.backgroundSun]),o.background(N[Et.backgroundSun])},o.draw=function(){"normal"===Ct?(o.clear(),o.image(n,0,0,F,B),!St&&Z&&(n.angleMode(o.DEGREES),xt[0].draw(n,o),xt[0].currentLevel++,xt[0].currentLevel>xt[0].iterations/2&&(St=!0),n.angleMode(o.RADIANS)M
),St&&!wt&&rt&&(n.angleMode(o.DEGREES),D.draw(n,o),D.currentLevel++,D.currentLevel>=D.iterations&&(wt=!0),n.angleMode(o.RADIANS)),St&&!bt&&tt&&(n.angleMode(o.DEGREES),yt[0].draw(n,o),yt[0].currentLevel++,yt[0].currentLevel>yt[0].iterations/2&&(bt=!0),n.angleMode(o.RADIANS)),bt&&Q&&f.currentLevel<v&&(ct[0].animateComet(),ct[1].animateComet(),f.animateAllTrees(),f.drawAllTrees(n,o),f.currentLevel++,n.tint(255,255)),it++,0==Vt&&f.currentLevel>=v&&(Vt=!0,o.image(n,0,0,F,B),Ct="freeze",saveCanvas(o,it,!1))):zt||(o.imageM
(n,0,0,F,B),zt=!0)},o.windowResized=function(){o.noLoop(),F=Math.max(Math.min(o.windowWidth,7*o.windowHeight/8>>0),I)>>0,B=8*F/7>>0,o.clear(),o.resizeCanvas(F,B),o.image(n,0,0,F,B),Ct&&(zt=!0),o.loop()},o.keyPressed=function(){return"s"!==o.key||vt?"e"!==o.key||vt?void 0:(A=o.get(),o.save(A,E+".png"),!1):(saveCanvas(o,it,!0),!1)}};class Ft{constructor(t,r,e,i,o,a){this.startWidth=t,this.endWidth=r,this.rotation=e,this.minWidth=i,this.SWRatio=o,this.stepSpeed=a}}class Bt{constructor(t,r,e,i,o,a,s,h){this.type=t,thisM
.rotationError=e,this.widthError=r,this.strokeOn=i,this.color=o[0],this.function=a,this.sd=s,this.color1,this.colorSD=void 0===h?0:h,o.length>1&&(this.color1=o[1])}gaussianColor(t,r,e){if(null==t)return;if(0==this.colorSD)return t;let i=constrain(randomGaussian(r.red(r.color(t)),this.colorSD)>>0,0,255)>>0,o=constrain(randomGaussian(r.green(r.color(t)),this.colorSD)>>0,0,255)>>0,a=constrain(randomGaussian(r.blue(r.color(t)),this.colorSD)>>0,0,255)>>0;return r.color(i,o,a)}drawShape(r,e,i,o,a,s){let h,n,d,c,l,m,u,p,gM
,f,M,x,S=e*(1+this.widthError*Math.sin(41*o+9)),b=i+random(this.rotationError);switch(null!=this.color&&(M=this.gaussianColor(this.color,a,s)),null!=this.color1&&(x=this.gaussianColor(this.color1,a,s)),this.type){case"Ellipse":a.fill(M),this.strokeOn||a.noStroke(),h=e*(.9+.1*Math.sin(5*o+18))*(1+this.widthError*Math.sin(2.5*o+18)),a.push(),a.rotate(b),a.ellipse(r.x>>0,r.y>>0,S>>0,h>>0),a.pop();break;case"SplashRadial":a.fill(M),this.strokeOn||a.noStroke(),a.push(),a.rotate(b),a.beginShape();for(let t=0;t<50;t++){leM
t i=p5.prototype.map(t,0,50,0,2*Math.PI),s=e/2+e/2*this.function(i,it,o),h=r.x+s*Math.cos(i),n=r.y+s*Math.sin(i);a.vertex(h,n)}a.endShape(p5.CLOSE),a.pop();break;case"SplashRV":a.fill(M),this.strokeOn||a.noStroke(),a.push(),a.rotate(b),a.beginShape();for(let t=0;t<50;t++){let i=p5.prototype.map(t,0,50,0,2*Math.PI),s=e/2+e/2*this.function(i,it+o,this.sd),h=r.x+s*Math.cos(i),n=r.y+s*Math.sin(i);a.vertex(h,n)}a.endShape(p5.CLOSE),a.pop();break;case"RSphere":n=e/2>>0,d=constrain(Math.pow(e/2,2)*Math.PI/100,50,5e3),c=MaM
th.max(t/800>>0,1),this.strokeOn||a.noStroke(),a.push();for(let t=0;t<d;t++)l=p5.prototype.map(t,0,d,0,2*Math.PI,!0),m=this.function(),u=r.x+Math.cos(l)*m[0]*n,p=r.y+Math.sin(l)*m[0]*n,g=r.x+Math.cos(l)*m[1]*n,f=r.y+Math.sin(l)*m[1]*n,a.fill(M),a.ellipse(u>>0,p>>0,2*c>>0,2*c>>0),a.fill(x),a.ellipse(g>>0,f>>0,2*c>>0,2*c>>0);a.pop();break;case"RLSphere":let i=[];n=e/2>>0,d=constrain(Math.pow(e/2,2)*Math.PI/100,100,200),c=Math.max(t/1e3>>0,1),this.strokeOn||a.noStroke(),a.push();for(let t=0;t<d;t++)l=p5.prototype.map(M
t,0,d,0,2*Math.PI,!0),m=this.function(),u=r.x+Math.cos(l)*m[0]*n,p=r.y+Math.sin(l)*m[0]*n,g=r.x+Math.cos(l)*m[1]*n,f=r.y+Math.sin(l)*m[1]*n,i.push(p5.prototype.createVector(g,f)),a.fill(random([M,x])),a.ellipse(u>>0,p>>0,2*c>>0,2*c>>0);a.fill(x);for(let t=0;t<d;t++){let r=i[t].x,e=i[t].y;a.ellipse(r>>0,e>>0,2*c>>0,2*c>>0)}a.pop();break;default:return!1}}drawLine(r,i,o,a,s,h,n,d,c,l){let m=r,u=o,p=p5.Vector.add(i,p5.Vector.mult(r,-1)),g=p5.Vector.normalize(p),f=p.mag(),M=Math.max(u*n,1),x=f/M,S=0,b=0;for(;m.dist(i)>M
M&&S<e+t/100&&m.dist(r)<=f+t/100;)this.drawShape(m,u,s,S>>0,c,l),S+=d,m.add(p5.Vector.mult(g,M)),b+=1/x,u=Math.max(p5.prototype.lerp(o,a,b),h),M=Math.min(u*n,e/50),x=f/M}drawVertexShape(t,r,e,i,o,a,s,h){for(let n=0;n<t.length;n++)this.drawLine(t[n][0],t[n][1],r,r,e,i,o,a,s,h)}drawBezier(r,o,a,s,h,n,d,c,l,m,u,p){let g=roundVector(r.copy()),f=h,M=r.dist(o)+o.dist(a)+a.dist(s),x=Math.max(f*l,1),S=M/x,b=0,y=0;for(;g.dist(s)>x&&b<4*i&&g.dist(r)<=M+t/2;)this.drawShape(g,f,d,b>>0,u,p),b+=m,f=Math.max(p5.prototype.lerp(h,nM
,y),c),x=Math.min(f*l,e/50),S=M/x,y+=1/S,g.x=p5.prototype.bezierPoint(r.x,o.x,a.x,s.x,y),g.y=p5.prototype.bezierPoint(r.y,o.y,a.y,s.y,y)}drawBezierShape(t,r,e,i,o,a,s,h){for(let n=0;n<t.length;n++)this.drawBezier(t[n][0],t[n][1],t[n][2],t[n][3],r,r,e,i,o,a,s,h)}drawPoly(t,r,e,i,o,a,s,h,n,d,c,l){let m,u,p,g=[],f=[],M=[];if("bezier"==o){m=4,u=Math.max(m,e)>>0,u=4*Math.round(u/4),p=2*Math.PI/u/4;for(let t=0;t<4*u;t+=4)M[0]=p5.prototype.createVector(r*Math.cos(t*p),r*Math.sin(t*p)),M[1]=p5.prototype.createVector(r*MathM
.cos((t+1)*p),r*Math.sin((t+1)*p)),M[2]=p5.prototype.createVector(r*Math.cos((t+2)*p),r*Math.sin((t+2)*p)),M[3]=p5.prototype.createVector(r*Math.cos((t+3)*p),r*Math.sin((t+3)*p)),g.push([M[0].copy(),M[1].copy(),M[2].copy(),M[3].copy()]);c.push(),c.translate(t.x>>0,t.y>>0),c.rotate(i),this.drawBezierShape(g,a,s,h,n,d,c,l),c.pop()}else{m=3,u=Math.max(m,e)>>0,p=2*Math.PI/u;for(let t=0;t<u;t++)f[0]=p5.prototype.createVector(r*Math.cos(p*t),r*Math.sin(p*t)),f[1]=p5.prototype.createVector(r*Math.cos(p*(t+1)),r*Math.sin(pM
*(t+1))),g.push([f[0].copy(),f[1].copy()]);c.push(),c.translate(t.x>>0,t.y>>0),c.rotate(i),this.drawVertexShape(g,a,s,h,n,d,c,l),c.pop()}}drawRect(e,i,o,a,s,h,n,d,c,l,m,u,p){let g,f,M,x,S,b,y=i,w=o,V=[],R=4,k=[],v=[],C=Math.sqrt(Math.pow(y,2)+Math.pow(w,2)),L=Math.atan(w/y),z=Math.PI/2-L,E=[],W=1/l*10>>0;if("bezier"==s){g=4,R=Math.max(g,4)>>0,R=4*Math.round(R/4),f=2*Math.PI/R/4;for(let t=0;t<4*R;t+=4)t%8==0?(E[0]=L,E[1]=z):(E[0]=z,E[1]=L),v[0]=p5.prototype.createVector(C/2*Math.cos(t*f-E[0]),C/2*Math.sin(t*f-E[0]))M
,v[1]=p5.prototype.createVector(0,0),v[2]=p5.prototype.createVector(0,0),v[3]=p5.prototype.createVector(C/2*Math.cos((t+3)*f-E[1]),C/2*Math.sin((t+3)*f-E[1])),x=v[3].sub(v[0]).heading(),M=p5.Vector.fromAngle(x).normalize(),S=v[3].dist(v[0]),v[1]=p5.Vector.add(p5.Vector.mult(M,S/2),v[0]).copy(),v[2]=p5.Vector.add(p5.Vector.mult(M,S/2),v[2]).copy(),V.push([v[0].copy(),v[1].copy(),v[2].copy(),v[3].copy()]);u.push(),u.translate(e.x>>0,e.y>>0),u.rotate(a),this.drawBezierShape(V,h,n,d,c,l,u,p),u.pop(),m&&i-i/10>t/30&&o-oM
/10>r/30&&(b=[i-i/W,o-o/W],this.drawRect(e,b[0],b[1],a,s,h,n,d,c,l,m,u,p))}else{g=3,R=4,f=2*Math.PI/R;for(let t=0;t<R;t++)t%2==0?(E[0]=L,E[1]=z):(E[0]=z,E[1]=L),k[0]=p5.prototype.createVector(C/2*Math.cos(t*f-E[0]),C/2*Math.sin(t*f-E[0])),k[1]=p5.prototype.createVector(C/2*Math.cos((t+1)*f-E[1]),C/2*Math.sin((t+1)*f-E[1])),V.push([k[0].copy(),k[1].copy()]);u.push(),u.translate(e.x>>0,e.y>>0),u.rotate(a),this.drawVertexShape(V,h,n,d,c,l,u,p),u.pop(),m&&i-i/20>t/30&&o-o/20>r/30&&(b=[i-i/W,o-o/W],this.drawRect(e,b[0],M
b[1],a,s,h,n,d,c,l,m,u,p))}}}class At{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u){this.maxTrees=t,this.width=r,this.height=e,this.rotationError=i,this.lengthError=o,this.stepDistance=a,this.mode=s,this.minWidth=h,this.minLength=n,this.trees=[],this.aLambda=d,this.bLambda=c,this.cLambda=l,this.bubbles=m,this.index=u,this.lightsOn=!1,this.gCenter=p5.prototype.createVector(r/2>>0,e/2>>0),this.currentLevel=0,this.minGround}static transformLocalToGlobal(r,e){let i=p5.prototype.createVector(0,e.y);if(0===r)i.x=e.x>>0;else iM
.x=e.x+getScreenXPosition(t,r,!1)>>0;return i}reassignIndex(t,r){t.index=r;for(let e=0;e<t.branches.length;e++)this.reassignIndex(t.branches[e],r)}sortTrees(){this.trees.sort(compare);for(let t=0;t<this.trees.length;t++)this.reassignIndex(this.trees[t],t)}setupTrees(e){let i,o,s,h=p5.prototype.createVector(0,0),n=Wt.treeRotation_conf*random(.9,1.1),d=Et.treeTrunkHeight*r,c=Wt.treeBranchHeight_conf,l=Wt.treeMaxFork_conf,m=[],u=[],p=d*random(.08,.12),g=d*random(.25,.33),f=random(Wt.fruitLevelMinRange[0],Wt.fruitLevelM
MinRange[0]+Wt.fruitLevelMinRange[1])>>0,M=Wt.fruitFactor*random(.8,1.2),x=0,S=Wt.fruitRatio*random(.8,1.2);for(let b=0;b<this.maxTrees;b++){if("growth"===this.mode)u[0]=e.color($[Et.treeColor0]),u[1]=e.color(U[Et.treeColor1]),u[2]=e.color(a[Et.leafColor]),u[3]=1==L?e.color(Y[Wt.fruitColor]):null,h.x=t*(.2+.6*random())>>0,h.y=r*(1.1-.2*random())>>0;i=Wt.yzRatio*(r-h.y),d=r*(.3+random(.1))>>0,o=d*(.2+random(.1))>>0,s=.6+random(.2),l=2+random(1)>>0,K[0].color=u[0],K[1].color=u[1],m=[];let b=random(K),y=[];y[0]=new BtM
(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),b=random(K),y[1]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),b=random(K),y[2]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),m.push(y[0]),m.push(y[1]),m.push(y[2]),1==L&&(b=random(K),y[3]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),m.push(y[3]),x=Wt.maxFruitProM
b*random(.7,1));for(let t=0;t<m.length;t++)m[t].color=u[t],m[t].colorSD=C;this.trees.push(new Dt(h.copy(),n,i,d,o,c,s,l,this.minLength,this.minWidth,this.rotationError,this.lengthError,m,this.stepDistance,0,this.mode,p,g,f,M,x,S,this.index))}this.sortTrees()}drawAllTrees(t,r){for(let e=0;e<this.maxTrees;e++)ht=0,this.trees[e].drawTree(this.currentLevel,t,r)}getForceB(){let t=this.gCenter,r=p5.Vector.dist(t,ct[1].location);return Math.min(ct[1].charge/Math.pow(r,2),1)}animateAllTrees(){if("growth"==this.mode&&!nt)reM
turn!1;for(let t=0;t<this.maxTrees;t++)this.trees[t].a=this.aLambda(this.trees[t].location,100+dt),this.trees[t].b=this.bLambda(this.trees[t].getForceA(),100+dt),this.trees[t].c=this.cLambda(this.trees[t].getForceB(),100+dt),this.trees[t].updateA(this.mode),this.trees[t].updateB(this.mode),this.trees[t].updateC(this.mode);it%30==0&&this.getForceB()>t/1e8/2?this.lightsOn=!0:it%30==0&&(this.lightsOn=!1)}}class Dt{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p,g,f,x,S,b,y,w,V){this.location=t,this.rotation=r,this.zShift=e,M
this.trunkHeight=i,this.bTrunkHeight=this.trunkHeight,this.trunkWidth=o,this.branchHeight=a,this.branchWidth=s,this.branchLocation=p5.prototype.createVector(0,-this.bTrunkHeight>>0),this.dynamicLeafLength=f,this.dynamicLeafCutoff=x,this.maxFork=h,this.bMaxFork=this.maxFork,this.minLength=n,this.minWidth=d,this.rotationError=c,this.bRotationError=this.rotationError,this.lengthError=l,this.bLengthError=this.lengthError,this.stepDistance=u,this.level=p,this.mode,this.brushes=m,this.bColors=[this.brushes[0].color,this.M
brushes[1].color,this.brushes[2].color],this.maxLeaves=random(3)>>0,this.tError=random()*Math.PI/40,this.a=0,this.b=0,this.c=0,this.fruitStart=S,this.fruitFactor=b,this.fruitProbability=y,this.fruitRatio=w,this.index=V,0==this.level?M=1:this.level>M&&(M=this.level),this.branches=this.generateBranches()}getMinGrassHeight(){return 0==this.index?f.minGround:this.index>0?f.trees[this.index-1].location.y:void 0}getForceA(){let r;r=this.location;let e=p5.Vector.dist(r,ct[0].location);return Math.min(ct[0].charge/Math.powM
(e,2)*1e8/t,1)}getForceB(){let r;r=this.location;let e=p5.Vector.dist(r,ct[1].location);return Math.min(ct[1].charge/Math.pow(e,2)*1e8/t,1)}updateA(t){if("growth"!==t)return!1;this.rotationError=this.bRotationError*(3+this.a),this.lengthError=this.bLengthError*(1+this.a)}updateB(t){if("growth"!==t)return!1;this.trunkHeight=this.bTrunkHeight*(.9+.1*this.b),this.maxFork=Math.max(this.maxFork*(.95+.05*this.b),2),this.branches=[],this.branches=this.generateBranches()}updateC(t){if("growth"!==t)return!1;this.brushes[0].M
color.setRed(constrain(p5.prototype.red(this.bColors[0])+14*this.c>>0,0,255)),this.brushes[0].color.setGreen(constrain(p5.prototype.green(this.bColors[0])+14*this.c>>0,0,210)),this.brushes[0].color.setBlue(constrain(p5.prototype.blue(this.bColors[0])+14*this.c>>0,0,210)),null!=this.brushes[1].color&&(this.brushes[1].color.setRed(constrain(p5.prototype.red(this.bColors[1])+14*this.c>>0,0,200)),this.brushes[1].color.setGreen(constrain(p5.prototype.green(this.bColors[1])+14*this.c>>0,0,180)),this.brushes[1].color.setBM
lue(constrain(p5.prototype.blue(this.bColors[1])+14*this.c>>0,0,180))),null!=this.brushes[2].color&&(this.brushes[2].color.setRed(constrain(p5.prototype.red(this.bColors[2])+14*this.c>>0,0,200)),this.brushes[2].color.setGreen(constrain(p5.prototype.green(this.bColors[2])+14*this.c>>0,0,180)),this.brushes[2].color.setBlue(constrain(p5.prototype.blue(this.bColors[2])+14*this.c>>0,0,180)))}sortBranches(){this.branches.sort(compare)}generateBranches(){let t,r,e=this.branchHeight*this.trunkHeight,i=this.branchWidth*thisM
.trunkWidth,o=(-20+random(10))*this.branchHeight,a=[],s=p5.prototype.createVector(0,-this.bTrunkHeight),h=Math.round(Math.sin(ht+10*random()));for(;e>this.minLength&&i>this.minWidth&&a.length<1+this.maxFork*random()&&this.level<v;)t=2*this.rotation*Math.sin(Math.PI/2*(2*h+1+2*a.length))*Math.floor(1+a.length/2)*(1+random(this.rotationError)),r=e*(1+this.lengthError*random()),a.push(new Dt(s,t,o,r,i,this.branchHeight,this.branchWidth,this.maxFork,this.minLength,this.minWidth,this.rotationError,this.lengthError,this.M
brushes,this.stepDistance,this.level+1,this.mode,this.dynamicLeafLength,this.dynamicLeafCutoff,this.fruitStart,this.fruitFactor,this.fruitProbability,this.fruitRatio,this.index));return a}drawTree(e,i,o){if(i.push(),this.level>0){if(i.rotate(.25*this.rotation*Math.sin(5*this.level+10*this.index+100*this.branches.length+150*this.rotation+200*this.zShift)),this.level==e){i.stroke("ivory"),i.strokeWeight(20),i.noStroke();let r,e,a=p5.prototype.createVector(0,0),s=this.location,h=Math.max(this.trunkWidth,this.minWidth)M
,n=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),d=Math.sin(21*ht)*this.rotation*1.3,c=this.minWidth,l=ot[0].SWRatio,m=ot[0].stepSpeed,u=[];if(u[0]=roundVector(a),r=p5.Vector.lerp(a,s,.33333),e=r.mag(),r.add(p5.prototype.createVector(e*random(-this.bLengthError,this.bLengthError),e*random(-this.bLengthError,this.bLengthError))),u[1]=roundVector(r),r=p5.Vector.lerp(a,s,.66666),e=r.mag(),r.add(p5.prototype.createVector(e*random(-this.bLengthError,this.bLengthError),e*random(-this.bLengthError,this.bLengthEM
rror))),u[2]=roundVector(r),u[3]=roundVector(s),this.brushes[0].drawBezier(u[0],u[1],u[2],u[3],h,n,d,c,l,m,i,o),h=Math.max(.8*this.trunkWidth,2*this.minWidth),n=Math.max(this.branchWidth*this.trunkWidth*.8,2*this.minWidth),this.brushes[1].drawBezier(u[0],u[1],u[2],u[3],h,n,d,c,l,m,i,o),this.trunkHeight<Math.max(this.dynamicLeafCutoff,2*this.minWidth)&&this.trunkHeight>0){let r,e,a,s,h,n,d,c,l,m,u,p=ot[0].rotation,g=ot[0].SWRatio,f=ot[0].minWidth,M=ot[0].stepSpeed,x=Math.max(20,t/80);for(let t=0;t<this.maxLeaves;t++M
){u=2*Math.PI/this.maxLeaves*t+random()*this.tError,r=[this.dynamicLeafLength/4-random()*this.dynamicLeafLength/2>>0,1.05*-this.dynamicLeafLength+this.dynamicLeafLength*random()*.1>>0],m=this.dynamicLeafLength/(1+4*random()>>0),e=[m>>0,m*Math.sin(u)>>0],h=[1/6-random()/3*this.dynamicLeafLength,1/6-random()/3*this.dynamicLeafLength],n=[1/6-random()/3*this.dynamicLeafLength,1/6-random()/3*this.dynamicLeafLength],a=[(m+this.dynamicLeafLength)*Math.cos(u)/3+h[0]>>0,(m+this.dynamicLeafLength)*Math.sin(u)/3+h[1]>>0],s=[2M
*(m+this.dynamicLeafLength)*Math.cos(u)/3+n[0]>>0,(2*m+this.dynamicLeafLength)*Math.sin(u)/3+n[1]>>0],d=[(m+this.dynamicLeafLength)*Math.cos(u)>>0,(m+this.dynamicLeafLength)*Math.sin(u)>>0],c=[(m+this.dynamicLeafLength)*Math.cos(u)/3-h[0]>>0,(m+this.dynamicLeafLength)*Math.sin(u)/3-h[1]>>0],l=[2*(m+this.dynamicLeafLength)*Math.cos(u)/3-n[0]>>0,(2*m+this.dynamicLeafLength)*Math.sin(u)/3-n[1]>>0],i.push();let S=[];i.translate((e[0]+d[0])/2>>0,(e[1]+d[1])/2>>0),S[0]=roundVector(p5.prototype.createVector(0,0)),S[1]=rouM
ndVector(p5.prototype.createVector(a[0],a[1])),S[2]=roundVector(p5.prototype.createVector(s[0],s[1])),S[3]=roundVector(p5.prototype.createVector(d[0],d[1])),this.brushes[2].drawBezier(S[0],S[1],S[2],S[3],x,.8*x>>0,p,f,g,M,i,p5),S[0]=roundVector(p5.prototype.createVector(0,0)),S[1]=roundVector(p5.prototype.createVector(c[0],c[1])),S[2]=roundVector(p5.prototype.createVector(l[0],l[1])),S[3]=roundVector(p5.prototype.createVector(d[0],d[1])),this.brushes[2].drawBezier(S[0],S[1],S[2],S[3],x,.8*x>>0,p,f,g,M,i,p5),i.noStrM
oke(),i.tint(255,10),i.fill(this.brushes[2].color),i.beginShape(),i.curveVertex(0,0),i.curveVertex(a[0],a[1]),i.curveVertex(s[0],s[1]),i.curveVertex(d[0],d[1]),i.curveVertex(l[0],l[1]),i.curveVertex(c[0],c[1]),i.endShape(o.CLOSE),i.tint(255,255),i.pop()}if("undefined"!=this.brushes[3]&&null!=this.brushes[3]&&this.level>=this.fruitStart){let r=p5.prototype.createVector(0,0),e=t/50*this.fruitRatio>>0,a=random(5,8)>>0,s=0,h="bezier",n=Math.max(.2*this.minWidth,t/100);i.push(),i.translate(random(-2*e,2*e)>>0,random(0,4M
*e)>>0),this.brushes[3].drawPoly(r,e,a,s,h,n,ot[0].rotation,e*this.fruitFactor>>0,ot[0].SWRatio,ot[0].stepSpeed,i,o),i.pop()}}}}else if(0==this.level){if(i.translate(this.location.x>>0,this.location.y>>0),et&&this.level==e){let r;for(let e=0;e<Wt.maxGClumps[0];e++)r=random(Lt),r.range=Wt.maxGRange*random(.8,1.2)*t,r.position=o.createVector(constrain(random(-1,1)*r.range>>0,-this.location.x,t-this.location.x),random(0,-(this.location.y+3*this.minWidth-this.getMinGrassHeight()))>>0),r.draw(i,o)}if(i.rotate(.25*this.rM
otation*Math.sin(5*this.level+10*this.index+100*this.branches.length+150*this.rotation+200*this.zShift)),this.level==e){let e=p5.prototype.createVector(0,0),a=this.branchLocation,s=Math.max(this.trunkWidth,this.minWidth),h=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),n=Math.sin(15*ht+25*this.index)*this.rotation*1.3,d=this.minWidth,c=ot[0].SWRatio,l=ot[0].stepSpeed;if(this.brushes[1].drawLine(e,a,s,h,n,d,c,l,i,o),s=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),h=Math.max(this.branchWidth*thisM
.branchWidth*this.trunkWidth,this.minWidth),n=Math.sin(34*ht)*this.rotation*1.3,this.brushes[0].drawLine(p5.prototype.createVector(0,0),a,s,h,n,d,c,l,i,o),s=Math.max(this.branchWidth*this.trunkWidth*.5,3*this.minWidth),h=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),this.brushes[1].drawLine(p5.prototype.createVector(0,0),a,s,h,n,d,c,l,i,o),et&&this.location.y<1.1*r){let e;for(let a=0;a<Wt.maxGClumps[1];a++)e=random(Lt),e.range=Wt.maxGRange*random(.1,.35)*t,e.position=o.createVector(constM
rain(random(-1,1)*e.range>>0,-this.location.x,t-this.location.x),random(0,r-this.location.y+3*this.minWidth)>>0),e.draw(i,o)}}}if(ht++,this.level>0&&this.level==e){p5.prototype.createVector(0,0);let t=this.branchLocation,r=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),e=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),a=Math.sin(34*ht)*this.rotation*1.3,s=this.minWidth,h=ot[0].SWRatio,n=ot[0].stepSpeed;this.brushes[0].drawLine(p5.prototype.createVector(0,0),t,r,e,a,s,h,n,i,o),r=MM
ath.max(this.branchWidth*this.trunkWidth*.5,3*this.minWidth),e=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),this.brushes[1].drawLine(p5.prototype.createVector(0,0),t,r,e,a,s,h,n,i,o)}if(0==this.level&&this.branches.length>0&&this.level<e){this.sortBranches();for(let t=0;t<this.branches.length;t++)i.push(),i.translate(this.branchLocation.x>>0,this.branchLocation.y>>0),this.branches[t].drawTree(e,i,o),i.pop()}else if(this.level>0&&this.branches.length>0&&this.level<e){this.sortBranches();M
for(let t=0;t<this.branches.length;t++)i.push(),i.translate(this.branchLocation.x>>0,this.branchLocation.y>>0),this.branches[t].drawTree(e,i,o),i.pop()}i.pop()}}class Pt{constructor(e,i){this.x0=-t/15+random(t/7)>>0,this.aP=r/(2.2*Math.pow(t/2,2))+random(.01),this.cP=1/8*r*random(),this.location=p5.prototype.createVector(this.x0,this.fx(this.x0)),this.bLocation=this.location,this.bLocation.x=this.location.x,this.bLocation.y=this.location.y,this.width=e,this.color=i,this.charge=.6+random(.4),this.nextPoint=p5.prototM
ype.createVector(this.location.x+1>>0,this.fx(this.location.x+1)>>0),this.unitVector=this.getUnitVector()}fx(r){return this.aP*Math.pow(r-t/2,2)+this.cP}getUnitVector(){let t=p5.Vector.mult(this.location,-1),r=p5.Vector.add(this.nextPoint,t);return p5.Vector.normalize(r)}animateComet(){let r=t/lt;this.location.x+=r,this.location.y=this.fx(this.location.x),this.nextPoint=p5.prototype.createVector(this.location.x+1,this.fx(this.location.x+1)),this.unitVector=this.getUnitVector()}}class It{constructor(t,r,e,i,o,a,s,h,M
n,d,c,l){this.minStrokes=t,this.maxStrokes=r,this.minStrokeWeight=e,this.maxStrokeWeight=i,this.rotation=o,this.minSize=a,this.maxSize=s,this.iterations=h,this.sizeError=n,this.angleError=d,this.padding=c,this.brushes=l,this.currentLevel=0}draw(e,i){let o,a,s,h=this.minSize+random()*this.maxSize,n=(this.maxSize-this.minSize)/16,d=standardizeDegree((2*random()-1)*this.angleError,5),c=this.angleError/32,l=r/this.iterations+this.padding,m=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,u=random(0,Math.PI),p=ot[0M
].SWRatio,g=ot[0].stepSpeed;e.push(),e.translate(t/2>>0,r/2>>0),e.rotate(this.rotation);for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=0;M<o;M++)m+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),d+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*c,5),this.angleError),-this.angleError),5),h+=Math.max(Math.min((2*random()-1)*n,this.maxSize),this.minSize),a=i.createVector(constrain(-h/2>>0,.6*-t,.6*t),coM
nstrain(l*f+M*m>>0,.6*-r,.6*r)),s=i.createVector(constrain(h/2>>0,.6*-t,.6*t),constrain(l*f+M*m>>0,.6*-r,.6*r)),u+=random(0,Math.PI/16),e.push(),e.rotate(d),this.brushes[0].drawLine(a,s,m,m,u,n,p,g,e,i),e.pop()}d=standardizeDegree((2*random()-1)*this.angleError,5),h=this.minSize+random()*this.maxSize,m=this.minStrokeWeight+random()*this.maxStrokeWeight>>0;for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=1;M<o;M++)a=i.createVector(constrain(-h/2>>0,.6*M
-t,.6*t),constrain(-l*f-M*m>>0,.6*-r,.6*r)),s=i.createVector(constrain(h/2>>0,.6*-t,.6*t),constrain(-l*f-M*m>>0,.6*-r,.6*r)),u+=random(0,Math.PI/16),m+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),d+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*c),this.angleError),-this.angleError),5),h+=Math.max(Math.min((2*random()-1)*n,this.maxSize),this.minSize),e.push(),e.rotate(d),this.brushes[0].drawLine(a,s,m,m,u,n,p,g,e,i),e.pop()}e.pop()}}class Gt extends It{constructoM
r(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p){super(t,r,e,i,o,a,s,h,n,d,c,l),this.radius=m,this.position=u,this.sunBrushFactor=p}draw(r,e){if(0==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.radius,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/100>>0;this.brushes[0].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*this.sunBrushFactor>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}else if(1==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.M
radius*random(.3,.6)>>0,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/200>>0,d=3*this.sunBrushFactor;this.brushes[1].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*d>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}else if(2==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.radius*random(.1,.2)>>0,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/200>>0,d=5*this.sunBrushFactor;this.brushes[0].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*d>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}}}class Tt eM
xtends It{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u){super(t,r,e,i,o,a,s,h,n,d,c,l),this.curvature=m,this.height=u,this.dBezierVectors=[]}draw(e,i){let o,a,s,h,n,d=this.minSize+random()*this.maxSize,c=(this.maxSize-this.minSize)/16,l=standardizeDegree((2*random()-1)*this.angleError,5),m=this.angleError/32,u=r/this.iterations+this.padding,p=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,g=random(0,Math.PI);ot[0].SWRatio,ot[0].stepSpeed;if(0==this.currentLevel){e.fill(this.brushes[1].color1);let o=!0,a=5*p;f.minM
Ground=1.1*this.height+a/2>>0,this.brushes[1].drawRect(new i.createVector(0,1.1*this.height+a/2>>0),2.5*t,1.1*r-this.height,0,"line",a,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,2*ot[0].stepSpeed,o,e,i)}e.push(),e.translate(t/2,this.height);for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=0;M<o;M++){if(p+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),l+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*M
m),this.angleError),-this.angleError),5),d+=Math.max(Math.min((2*random()-1)*c,this.maxSize),this.minSize),a=i.createVector(constrain(-d/2>>0,.6*-t,.6*t),constrain(u*f+M*p>>0,.1*-r,1.1*r-this.height)),s=i.createVector(constrain(d/2>>0,.6*-t,.6*t),constrain(u*f+M*p>>0,.1*-r,1.1*r-this.height)),a.dist(s)<t/2)return void(this.currentLevel=this.iterations);0==this.dBezierVectors.length?(this.dBezierVectors[0]=roundVector(a),h=p5.Vector.lerp(a,s,.33333),n=h.mag(),h.add(i.createVector(n*random(.1*-this.curvature,.1*this.M
curvature),n*random(-this.curvature,this.curvature))),this.dBezierVectors[1]=roundVector(h),h=p5.Vector.lerp(a,s,.66666),n=h.mag(),h.add(p5.prototype.createVector(n*random(.1*-this.curvature,.1*this.curvature),n*random(-this.curvature,this.curvature))),this.dBezierVectors[2]=roundVector(h),this.dBezierVectors[3]=roundVector(s)):(this.dBezierVectors[0]=roundVector(a),h=p5.Vector.lerp(a,s,.33333),n=h.mag(),this.dBezierVectors[1].y=this.dBezierVectors[1].y+n*random(this.curvature)>>0,this.dBezierVectors[2].y=this.dBezM
ierVectors[2].y+n*random(this.curvature)>>0,this.dBezierVectors[3]=roundVector(s)),g+=random(0,Math.PI/16),e.push(),e.rotate(l),this.brushes[0].drawBezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],p,p,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,e,i),e.pop()}}e.pop()}}class Ht extends Tt{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p){super(t,r,e,i,o,a,s,h,n,d,c,l,m,u.y),this.position=u,this.range=p}draw(t,r){let e,i,o,a,s=this.minSize+random()*this.maxSizM
e,h=(this.maxSize,this.minSize,standardizeDegree((2*random()-1)*this.angleError,5)),n=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,d=random(0,.03),c=(ot[0].SWRatio,ot[0].stepSpeed,0);t.push(),t.translate(this.position.x>>0,this.position.y>>0),e=this.minStrokes+this.maxStrokes*random();for(let l=0;l<e;l++){let e,l;n+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),h=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*this.angleError,5),this.angleError),-this.angleM
Error),5),a=Math.max(Math.min((2*random()-1)*s,this.maxSize),this.minSize),i=r.createVector(random(-this.range,this.range)>>0,Math.max(0+.1*this.sizeError*random()*a,c)),i.y>c&&(c=i.y),o=r.createVector(i.x+this.sizeError*random(-.1,.1)*a,-1*(a+this.sizeError*random(-.1,.1)*a)),i=roundVector(i),o=roundVector(o),0==this.dBezierVectors.length?(this.dBezierVectors[0]=roundVector(i),e=p5.Vector.lerp(i,o,.33333),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*tM
his.curvature))),this.dBezierVectors[1]=roundVector(e),e=p5.Vector.lerp(i,o,.66666),l=e.mag(),e.add(p5.prototype.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[2]=roundVector(e),this.dBezierVectors[3]=roundVector(o)):(this.dBezierVectors[0]=roundVector(i),e=p5.Vector.lerp(i,o,.33333),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[1]=rouM
ndVector(e),e=p5.Vector.lerp(i,o,.66666),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[2]=roundVector(e),this.dBezierVectors[3]=roundVector(o)),d=random(0,.5),t.push(),t.rotate(h),t.fill("#FF0000"),random()<.4?this.brushes[0].drawBezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],n,n,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,t,r):this.brushes[1].drawBM
ezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],n,n,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,t,r),t.pop()}t.pop()}}class Ot{constructor(t,r,e,i,o,a,s,h){this.size=t,this.scale=r,this.alpha=e,this.gamma=1/Math.max(o,.01),this.marginPX=a,this.triangleFilterMode=s,this.maxColorChanges=i,this.graphic=h.createGraphics(h.width,h.height),this.image=this.graphic.createImage(this.size,this.size);let n,d,c,l=this.size*this.size*4,m=[0,0,0];this.image.loadPiM
xels();for(let t=0;t<l;t+=4)d=t%(4*this.size)>>0,c=t/(4*this.size)>>0,n=255*random()>>0,this.maxColorChanges[0]>0&&this.maxColorChanges[1]>0&&this.maxColorChanges[2]>0&&(c>d&&this.triangleFilterMode?(m[0]=this.maxColorChanges[0]*(1-random())>>0,m[1]=this.maxColorChanges[1]*(1-random())>>0,m[2]=this.maxColorChanges[2]*(1-random())>>0):(m[0]=this.maxColorChanges[0]*random()>>0,m[1]=this.maxColorChanges[1]*random()>>0,m[2]=this.maxColorChanges[2]*random()>>0)),this.image.pixels[t]=Math.min(n+m[0],255),this.image.pixelM
s[t+1]=Math.min(n+m[1],255),this.image.pixels[t+2]=Math.min(n+m[2],255),this.image.pixels[t+3]=this.alpha;this.image.updatePixels(),this.image.resize(100*this.scale[0],100*this.scale[1])}drawFilter(t,r){let e,i,o,a=this.marginPX>>0,s=this.marginPX>>0,h=t.height-this.marginPX>>0,n=t.width-this.marginPX>>0;for(;s<h;)s+this.image.height>h&&a+this.image.width>n?t.image(this.image,a,s,n-a,h-s):s+this.image.height>h&&!(a+this.image.width>n)?t.image(this.image,a,s,this.image.width,h-s):!(s+this.image.height>h)&&a+this.imaM
ge.width>n?t.image(this.image,a,s,n-a,this.image.height):t.image(this.image,a,s,this.image.width,this.image.height),a+=this.image.width,a>=n&&(a=this.marginPX>>0,s+=this.image.height);if(!Wt.suppressGammaAdjust){t.loadPixels();let r=t.width*t.height*4,a=[1,1,1];for(let s=0;s<r;s+=4)i=s%(4*t.width),o=s/(4*t.height)>>0,i>4*this.marginPX>>0&&o>4*this.marginPX>>0&&i<4*(t.width-this.marginPX)>>0&&o<4*(t.height-this.marginPX)>>0&&(e=this.gamma*(.8+.4*random()),a[0]=255*Math.pow(t.pixels[s],e),a[1]=255*Math.pow(t.pixels[sM
+1],e),a[2]=255*Math.pow(t.pixels[s+2],e),t.pixels[s]=Math.min(a[0]>>0,255),t.pixels[s+1]=Math.min(a[1]>>0,255),t.pixels[s+2]=Math.min(a[2]>>0,255))}}}var myp5=new p5(sketch)
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vb26e4fa9e5134444860be286fd8771851679335129114" integrity="sha512-M3hN/6cva/SjwrOtyXeUa5IuCT0sedyfT+jK/OV+s+D0RnzrTfwjwJHhd+wYfMm9HJSrZ1IKksOdddLuN6KOzL
w==" data-cf-beacon='{"rayId":"7ac2c38ca916cab4","version":"2023.3.0","b":1,"token":"6c07c178c94442f695e7a0a2aaee641a","si":100}' crossorigin="anonymous"></script>
Bj@=:ETH.ETH:0x73212D8549481fFa73F291E23e9a0ad23552eF16:14524757::0
Bj@=:BNB.BNB:bnb149m28tdw3p9weucul4d32v0wmj7acmtsy2jn4l:28144231::0
text/plain;charset=utf-8
5{"p":"brc-20","op":"mint","tick":"grab","amt":"1000"}h!
text/plain;charset=utf-8
5{"p":"brc-20","op":"mint","tick":"grab","amt":"1000"}h!
text/plain;charset=utf-8
5{"p":"brc-20","op":"mint","tick":"grab","amt":"1000"}h!
text/plain;charset=utf-8
5{"p":"brc-20","op":"mint","tick":"grab","amt":"1000"}h!
/ViaBTC/Mined by 6kvartal/,
text/plain;charset=utf-8
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"miller.sats"}h!
text/plain;charset=utf-8
G{"p":"brc-20","op":"deploy","tick":"pope","max":"31415000","lim":"999"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"zsg.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"gsz.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"tjz.sats"}h!
text/plain;charset=utf-8
0{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
+{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
/{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
/{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
3{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
3{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
.{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"xdf.sats"}h!
text/plain;charset=utf-8
0{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
.{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
.{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
0{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
2{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"gok.sats"}h!
text/plain;charset=utf-8
.{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
H{"p":"brc-20","op":"deploy","tick":"mama","max":"21000000","lim":"1000"}h!
text/plain;charset=utf-8
1{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"ll1.sats"}h!
text/plain;charset=utf-8
.{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
-{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
H{"p":"brc-20","op":"deploy","tick":"hsbc","max":"21000000","lim":"1000"}h!
text/plain;charset=utf-8
.{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
0{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
2{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
H{"p":"brc-20","op":"deploy","tick":"roku","max":"21000000","lim":"1000"}h!
text/plain;charset=utf-8
.{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
-{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
A{"p":"brc-20","op":"deploy","tick":"ACDC","max":"240","lim":"48"}h!
text/plain;charset=utf-8
4{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
-{"p": "tld", "op": "reg", "name":
text/plain;charset=utf-8
  "name": "drizzy.sats"
text/plain;charset=utf-8
LL{"p":"brc-20","op":"deploy","tick":"HEX","max":"528000000000","lim":"10000"}h!
text/plain;charset=utf-8
  "name": "akon.sats"
text/plain;charset=utf-8
.{"p": "tld", "op": "reg", "name":
WwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwAM
4WwwwwwwwwwwwwwwwwwwwwtF"9
wwwwwwwwwwwwwwwwt7]o
d/Foundry USA Pool #dropgold/
DjB=:ETH.ETH:0xf9B7A667586ea91451122F169E3299AC5C44FBd4:1045665035::0
text/plain;charset=utf-8
  "name": "cplover.sats",
CjA=:ETH.ETH:0xe67e63Fd1CCc1bb176870864c5b3A257899a6E27:1829191:te:0
!Powered by Luxor Tech1002
text/plain;charset=utf-8
  "name": "champagnepapi.sats"
text/plain;charset=utf-8
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"china1.sats"}h!
d/Foundry USA Pool #dropgold/
FjDOUT:744445640F3C8C808AF9C40BC051DB07B050FFD6943D3D0674D0D3481B31BAAE
FjDOUT:927EB3A73762626F37E1EDDA68D54ED9A734543C464F0EAC24226D50AD18D56B
FjDOUT:2331E88C10028989AB576BA488DFF846F35701A005B2BCFBBE120545E9540174
MjK=:BNB.BUSD-BD1:bnb1aer7e8t99suq49x5dwxmw5qrj0ad53h3rf4jcu:295883152156:te:0
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"napoli.sats"}h!
text/plain;charset=utf-8
.{"p":"sns","op":"reg","name":"esselunga.sats"}h!
text/plain;charset=utf-8
*{"p":"sns","op":"reg","name":"lazio.sats"}h!
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"torino.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"psc.sats"}h!
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"milano.sats"}h!
text/plain;charset=utf-8
/{"p":"sns","op":"reg","name":"fiorentina.sats"}h!
text/plain;charset=utf-8
  "name": "dl881018.sats",
/ViaBTC/Mined by doorpool/,
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"LFG
text/plain;charset=utf-8
  "name": "hmrc.sats"
FjD=:AVAX.AVAX:0x0ddff5eb2dde8aac788377d69e88b4fbb78e5040:311170221:t:0
text/plain;charset=utf-8
  "name": "decrypted.sats"
d/Foundry USA Pool #dropgold/
 7ee13c9009d1ac5e862374f469521280H0E
Aj?=:ETH.ETH:0x47b93d81041E432e19B0dc7C03b7e8Fb26Ea1865:4013832::0
text/plain;charset=utf-8
XMP DataXMP<?xpacket begin="
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c140 79.160451, 2017/05/06-01:08:21        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmpMM:OriginalDocumentID="xmp.did:e47b44ab-1eed-4839-a02f-e8dM
c2713865d" xmpMM:DocumentID="xmp.did:1F34D0DEB4D311EDB983BC3DB5DF0EDE" xmpMM:InstanceID="xmp.iid:1F34D0DDB4D311EDB983BC3DB5DF0EDE" xmp:CreatorTool="Adobe Photoshop CC (Macintosh)"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:83b0bb6c-ba5b-4c79-b9f9-bbe82197be79" stRef:documentID="adobe:docid:photoshop:de9d2c88-2f27-8a45-94bc-ec62f0d32c69"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!
FjDOUT:4802821B8A4B47EE60E5012DB8C03FB00624412A094022F4B21508F13E84292D
KjISWAPTX:0x30708da0ec249bbd2ad05512fe3d3e0cbaaacf4e9709eddf0f13f40fd92c4b08D}}A
text/plain;charset=utf-8
.{"p":"sns","op":"reg","name":"incentive.sats"}h!
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"neuron.sats"}h!
FjDOUT:ACA34DECD3403F190340814901B28E1867065A5C538E464C70E5C4F9E1E4E0AA
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"pattern.sats"}h!
text/plain;charset=utf-8
/{"p":"sns","op":"reg","name":"validation.sats"}h!
IjGREFUND:DF3C8E1972229F8F60FC0CACA0DF9E3A4C2F05BE6B308E8265CFCA6CDE4954D1
FjDOUT:4DBB714F85B18B36B8C7E955863E77334C648BC5568FF7AFBA9944A493431008
d/Foundry USA Pool #dropgold/
FjDOUT:5857C4EDC7DD905C7761BFF6CD4BEEBD337CCB160770A7297F4F0242BF697FCF
d/Foundry USA Pool #dropgold/
DjB+:BTC.BTC:maya1fuzrgzqau5t8ks7l8wvyq2ydsct5f954kx3ldy:wr:100:TIER1
7j5ion:23.QmXWjMQTJwb2mZGqWBhZqB3R2363zZ8uKsfpLk8s2GChnXv
FjDOUT:FCA24BCBF6CA82DCEA0C4FEC725F36C71DF929C283B98CF7DC6751432AC329CC
Bj@=:ETH.ETH:0xb217885dDa055d5d6cA276c009e31D8a157E15E2:14816490::0
text/plain; charset=utf-8
FjDOUT:72CB020524429C53A1CD918AC2E42158230020B99DE9D062FC5C8C661226142A
FjDOUT:4CBFA70F91EBD8E23B36BC31A5DC0BC9AB00998EE18E3120675F079EC42F1A8B
(:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc
/cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYM
KjI=:BNB.BUSD-BD1:bnb1xxa3tj58e5m9l4flk6x053zmxw7spq2n0wnj67:5103245730:te:0
text/plain;charset=utf-8
  "name": "ttnb.sats",
text/plain;charset=utf-8
KERSER IS THE SICKEST
d/Foundry USA Pool #dropgold/
EjC=:ETH.ETH:0x7A589F899143E61a4a87BA91694765fAf536513C:172985356:te:0
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"
?(QS'Q[/QW/Q]'Q]'P[g
2OS{W2P6&3V?*=&-6*8a
[^^Nyy9%%%TTTPSSCii)
d/Foundry USA Pool #dropgold/
JJJj~kcuyiYirVnQpzv!
Bj@=:ETH.ETH:0xE36c30fecEB9656Cde97765230e31C66e034d831:41390469::0
text/plain;charset=utf-8
  "name": "xixi520.sats",
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>ArboCinematica</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandbox="allow-scripts" type="text/M
javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="allow-scripts" type="text/jaM
vascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <script type="text/javascript">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed ==M
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274M
213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this M
function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
              width: 100%;
              height: 100%;
              margin: 0px;
              padding: 0;
              display: flex;
              justify-content: center;
              align-items: center;
              top: 0;
              bottom: 0;
              left: 0;
              right: 0;
              max-width: 100%;
              max-height: 100%;
              margin: auto;
              overflow: auto;
              object-fit: contain;
              position: fixed;
<script type="text/javascript">
    const rand = mathRand();
    const container = document.createElement("div")
    container.innerM
HTML = "<span>seed: " + seed + "</span><br>";
    console.log(container.innerHTML)
    let t,r,e,i,o=1e9*mathRand();function nRandom(t,r,e,i){return i===Math.floor?void 0!==e?Math.floor(random(r,e)):Math.floor(random(r)):void 0!==e?random(r,e):random(r)}function randomGaussian(t,r){return p5.prototype.randomGaussian(t,r)}function nRandomBoolean(t,r){return mathRand()<r}function random(t,r){return Array.isArray(t)?arrayPick(t):(void 0===r&&(r=void 0===t?1:t,t=0),mathRand()*(r-t)+t)}function roundVector(t){return t.M
x=Math.round(t.x),t.y=Math.round(t.y),t}function constrain(t,r,e){return Math.min(Math.max(t,r),e)}function nArrayPick(t,r,e){return void 0!==e?arrayPick(r,e):arrayPick(r)}function arrayPick(t,r){if(void 0===r){if(0===(r=t.slice()).length)return;t=[];for(let e=0;e<r.length;e++)t[e]=100*(e+1)/r.length}let e=100*random();if(r.length>0&&t.length==r.length){for(var i=[],o=0;o<t.length;o++)i.push({weight:t[o],element:r[o]});i.sort((function(t,r){return t.weight<r.weight?-1:t.weight==r.weight?0:1}));for(let t=0;t<i.lengtM
h;t++){if(t==i.length-1)return i[t].element;if(e<i[t].weight)return i[t].element}}}p5.prototype.randomSeed(o);let a,s,h,n,d,c,l,m,u,p,g,f,M,x,S,b,y,w,V,R,k,v,C,L,z,E,W,F,B,A,D,P,I=700,G=["#e9ecef","#F2F2F0","#f7fff7","#D9C6B0"],T=["#386641","#6a994e","#a7c957","#f2e8cf","#bc4749","#3c1642","#086375","#1dd3b0","#affc41","#b2ff9e"],H=["#A3B4BF","#D8EBF2","#1A3940","#4C6C73","#819FA6","#04301C","#0A572B","#30C771","#F2FFFA","#9EFCFF"],O=["#A0C603","#F2A81D","#734002","#F2985C","#D96A29","#E0FF84","#F2DA50","#D9BA55","M
#8C791B","#595911"],X=["#5A7302","#324001","#86A614","#B6D93B","#022601","#155902","#267302","#82BF26","#BFD962","#E7F2BD"],N=["#F0F0F0","#E3BF0D","#CACACA","#F2CF1D","#F2BD1D","#F28E13","#F24405"],_=["#592918","#8C564A","#8C3F3F","#792938","#AC566A","#AC3F5F"],j=["#2C4001","#364022","#5A7302","#93A603","#736830"],q=["#9CB0D9","#CEDEF2","#667302","#F2EFBD","#F2CA7E"],U=["#BF8756","#59412D","#A68C76","#402A1E","#F2F2F2","#D9843B","#F2CEAE","#BF5517","#8C260F","#590A0A"],Y=["#A60311","#8C0327","#BF046B","#A69B03","#FM
2A766","#730217","#F20544","#BF0436","#D9296A","#344973"],$=["#B07756","#55012D","#A65C66","#301A10","#C2C2B2","#C9542B","#F7BEAE","#CF5827","#7C361F","#790A2A"],J=20,K=[],Q=!0,Z=!0,tt=!0,rt=!0,et=!0,it=0,ot=[],at=[],st=["growth"],ht=0,nt=!0,dt=0,ct=[],lt=300,mt=["#0468BF","#0487D9","#05AFF2","#05C7F2"],ut=[],pt=1,gt=1,ft=.05,Mt=-.04,xt=[],St=!1,bt=!1,yt=[],wt=!1,Vt=!1,Rt=!0,kt=1/32,vt=!1,Ct="normal",Lt=[],zt=!1;const Et={season:nArrayPick("season",[50,75,92,100],["spring","summer","fall","winter"]),fruitsOn:nRandoM
mBoolean("fruit/fruitsOn",.6),maxTrees:nRandom("maxTrees",1,6,Math.floor),backgroundSun:nRandom("background/backgroundSun",0,5,Math.floor),sRadius:nRandom("sun/sRadius",.05,1/12),treeTrunkHeight:nRandom("treeTrunkHeight",.72,.85),treeColor0:nRandom("color/treeColor0",0,$.length-1,Math.floor),treeColor1:nRandom("color/treeColor1",0,U.length-1,Math.floor),leafColor:nRandom("color/leafColor",0,9,Math.floor)};window.$generativeTraits={...Et},console.log(window.$generativeTraits);const Wt={backgroundColor:nArrayPick("baM
ckground/backgroundColor",[25,50,75,100],G),treeRotation_conf:nRandom("treeRotation",Math.PI/10,Math.PI/3+Math.PI/10)*randomSign(),treeMaxFork_conf:nRandom("treeMaxFork",2,5,Math.floor),treeBranchHeight_conf:nRandom("treeBranchHeight",.45,.6),lengthError:nRandom("lengthError",.12,.22),forestMaxLevels:nRandom("maxLevels",5,7,Math.floor),colorSD:nRandom("color/colorSD",.9,3),fruitColor:nRandom("fruit/fruitColor",0,9,Math.floor),fruitLevelMinRange:[nRandom("fruit/fruitLevelMin",[2,3]),nRandom("fruitLevelRange",1,3,MatM
h.floor)],fruitFactor:nRandom("fruit/fruitFactor",2,2.5),fruitRatio:nRandom("fruit/fruitRatio",.5,1),maxFruitProb:nRandom("fruit/maxFruitProb",.6,.93),yzRatio:nRandom("yzRatio",.1,.4),brushRotationFactor:nRandom("brushRotationFactor",.6,1),dColorSD:nRandom("dColorSD",1,3),curvature:nRandom("curvature",.5,3),curveHeight:nRandom("curveHeight",.75,.88),fileNumber:(9999*random()>>0).toString(),highResInnerCanvas:nRandom("walls",[[3500,4e3],[3850,4400],[4200,4800],[4550,5200]]),sColorSD:nRandom("sun/sColorSD",2.5,6),sunM
Pos:[nRandom("sun/X",.2,.8),nRandom("sun/Y",.03,.12)],sunBrushFactor:nRandom("sun/sunBrushFactor",.3,.65),sunBrushes:getRandomArray("sun/SunBrush",2,0,7),gColorSD:nRandom("grass/gColorSD",3,15),maxGVariety:nRandom("grass/maxGVariety",1,4,Math.floor),gCurvature:nRandom("grass/gCurvature",.1,.8),maxGClumps:getRandomArray("grass/maxGClumps",2,1,4),maxGLeaves:nRandom("grass/maxGLeaves",4,7),maxGRange:nRandom("grass/maxGRange",.09,.35),filterSize:nRandom("filterSize",2,4,Math.floor),filterScale:[nRandom("filterScaleX",5M
,8,Math.floor),nRandom("filterScaleY",5,8,Math.floor)],filterAlpha:nRandom("filterAlpha",220,255,Math.floor),maxColorChanges:[nRandom("maxColorChanges0",15,35,Math.floor),nRandom("maxColorChanges1",15,35,Math.floor),nRandom("maxColorChanges2",15,35,Math.floor)],maxSplashWeight:nRandom("maxSplashWeight",7,10,Math.floor),suppressGammaAdjust:nRandomBoolean("suppressGammaAdjust",.35),gammaInv:nRandom("gammaInv",.02,1),triangleFilterMode:nRandomBoolean("triangleFilterMode",.33)};function getRandomArray(t,r,e,i,o){let a,M
s=[],h=void 0!==o;for(let o=0;o<r;o++)a=t+"_"+o,h?s.push(nRandom(a,e,i,h)):s.push(nRandom(a,e,i));return s}function standardizeDegree(t,r){let e=Math.pow(10,r),i=Math.sign(t);return Math.round((i*p5.prototype.fract(t)+t%360)*e)/e}function saveCanvas(e,i,o){vt=!0,Ct="freeze",null==W&&(z=kt*t,W=e.createGraphics(t+2*z>>0,r+2*z>>0),W.noStroke(),W.tint(255,255),W.fill(Wt.backgroundColor),W.rect(0,0,t+2*z>>0,r+2*z>>0),W.tint(255,230),W.image(n,z>>0,z>>0,n.width,n.height),W.noTint(),n.clear(),n.image(W,0,0,n.width,n.heighM
t),Rt&&P.drawFilter(n,p5)),o&&W.get().save(E+"_"+e.hex(i).toString(),"png"),vt=!1}function randomSign(){let t=Math.round(Math.abs(Math.sin(10*random())));return Math.cos(t*Math.PI)}function compare(t,r){return t.zShift>r.zShift?-1:1}var sketch=function(o){o.setup=function(){switch(E="ArboCinematica_"+Wt.fileNumber,t=Wt.highResInnerCanvas[0],r=Wt.highResInnerCanvas[1],e=Math.sqrt(Math.pow(t,2),Math.pow(r,2)),i=2*t+2*r,F=Math.max(Math.min(o.windowWidth,7*o.windowHeight/8>>0),I)>>0,B=8*F/7>>0,h=o.createCanvas(F,B),h.sM
tyle="",h.style.opacity="",h.style.filter="",h.style["-ms-filter"]="",h.id("ArboCinematica"),n=o.createGraphics(t,r),v=Wt.forestMaxLevels,o.frameRate(1),n.noStroke(),Et.season){case"winter":a=H,s=q;break;case"spring":a=X,s=j;break;case"fall":a=O,s=q;break;default:a=T,s=j}L=Et.fruitsOn,l="Ellipse",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],K.push(new Bt(l,m,u,p,g,d)),l="Ellipse",m=.5,u=.3*Wt.brushRotationFactor,p=!1,g=[random($)],K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,M
p=!1,g=[random($)],d=function(t,r,e){return Math.sin(2*t+r/10)},K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.cos(t)},K.push(new Bt(l,m,u,p,g,d)),o.noiseSeed(random()),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return o.noise(t+r/10)},K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.cos(e/10-Math.PI)},K.push(new Bt(M
l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.abs(Math.sin(t+r/10))},K.push(new Bt(l,m,u,p,g,d)),l="SplashRV",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],c=.1,d=function(t,r,e,i){return Math.sin(2*t+r/10)+randomGaussian(0,c)},K.push(new Bt(l,m,u,p,g,d,c)),l="RSphere",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($),random($)],d=function(){return[1-random(random(random())),random()]},K.push(new Bt(l,m,u,p,g,d)),l="RLSphere",m=.1,u=.1*Wt.bruM
shRotationFactor,p=!1,g=[random($),random($)],d=function(){return[1-random(random(random())),random()]},K.push(new Bt(l,m,u,p,g,d));let M=J,W=.5*J>>0,A=0,G=7,U=.05,Y=.3;if(ot.push(new Ft(M,W,A,G,U,Y)),M=J,W=.5*J>>0,A=0,G=7,U=.015,Y=.1,ot.push(new Ft(M,W,A,G,U,Y)),at[0]=[function(t){return Math.sin(Math.sin(1+.9*Math.sin(t+Math.PI)))},1],at[1]=[function(t){return 2*Math.cos(4*t)},1],at[2]=[function(t){return Math.exp(Math.cos(t))-.9*Math.cos(4*t)+Math.sin(t/12)^5},12],Z){n.angleMode(o.DEGREES),S=t/3.5>>0,b=.7*t+MathM
.sqrt(t*r)*random(),y=10+random(10)>>0,ut=[mt[random()*mt.length>>0],mt[random()*mt.length>>0]];let e=K[random(0,7)>>0],i=[new Bt(e.type,e.widthError,e.rotationError,e.strokeOn,ut,e.function,e.sd,1)];w=Wt.dColorSD;for(let r=0;r<1;r++)V=5+10*random()>>0,gt=t/700>>0,x=t/700+10*t/700>>0,k=t/100+random(t/300)>>0,R=standardizeDegree(random(360),5),xt.push(new It(pt,V,gt,x,R,S,b,y,ft,Mt,k,i));n.angleMode(o.RADIANS)}if(tt){n.angleMode(o.DEGREES),S=.65*t>>0,b=random(.8,1)*t>>0,y=4+random(4)>>0;let e=[random(_),random(_)],iM
=K[random(0,7)>>0],a=[];a.push(new Bt(i.type,i.widthError,i.rotationError,i.strokeOn,e,i.function,i.sd,1));let s=[random(_),random(_)];i=K[random(0,7)>>0],a.push(new Bt(i.type,i.widthError,i.rotationError,i.strokeOn,s,i.function,i.sd,1)),w=Wt.dColorSD,R=0;let h=Wt.curvature,d=Wt.curveHeight*r>>0;for(let r=0;r<1;r++)V=10+10*random()>>0,gt=t/150+random(t/100)>>0,x=gt+random(t/100)>>0,k=t/2e3+random(t/2e3)>>0,yt.push(new Tt(pt,V,gt,x,R,S,b,y,ft,Mt,k,a,h,d));n.angleMode(o.RADIANS)}if(et){n.angleMode(o.DEGREES);for(let M
r=0;r<Wt.maxGVariety;r++){let r;S=.09*t>>0,b=random(.15,.2)*t>>0,y=1;let e=[random(s),random(s)],i=Wt.gColorSD,a=random(0,7)>>0;r=5==a?K[random(0,5)>>0]:K[a];let h=[];h.push(new Bt(r.type,r.widthError,r.rotationError,r.strokeOn,e,r.function,i,1));let n=[random(s),random(s)];a=random(0,7)>>0,r=5==a?K[random(0,5)>>0]:K[a],h.push(new Bt(r.type,r.widthError,r.rotationError,r.strokeOn,n,r.function,i,1)),R=0;let d=Wt.gCurvature;V=15+15*random()>>0,pt=8,gt=t/700+random(t/700)>>0,x=gt+random(t/750)>>0,k=t/2e3+random(t/2e3)M
>>0;let c=o.createVector(0,0),l=0,m=.1;Lt.push(new Ht(pt,V,gt,x,R,S,b,y,ft,m,k,h,d,c,l))}n.angleMode(o.RADIANS)}if(rt){n.angleMode(o.DEGREES),S=.65*t>>0,b=random(.8,1)*t>>0,y=3;let e=Wt.sColorSD,i=[random(N),random(N)],a=K[Wt.sunBrushes[0]>>0],s=[];s.push(new Bt(a.type,a.widthError,a.rotationError,a.strokeOn,i,a.function,e,1));let h=[random(N),random(N)];a=Wt.sunBrushes[1]>>0==5?K[random(4)>>0]:K[Wt.sunBrushes[1]>>0],s.push(new Bt(a.type,a.widthError,a.rotationError,a.strokeOn,h,a.function,e,1));let d=0,c=Et.sRadiuM
s*t,l=o.createVector(Wt.sunPos[0]*t,Wt.sunPos[1]*r),m=Wt.sunBrushFactor;V=10+10*random()>>0,gt=t/150+random(t/100)>>0,x=gt+random(t/100)>>0,k=t/2e3+random(t/2e3)>>0,D=new Gt(pt,V,gt,x,d,S,b,y,ft,Mt,k,s,c,l,m),n.angleMode(o.RADIANS)}if(Q){ct.push(new Pt(t/20>>0,o.color("#c6d4ff"))),ct.push(new Pt(t/20>>0,o.color("#fffafb"))),ct[0].color.setAlpha(120),ct[1].color.setAlpha(130);let e=t/30>>0,i=t/900>>0,a=t/500>>0,s=st[0],h=Et.maxTrees,n=.12,d=Wt.lengthError;C=Wt.colorSD,f=new At(h,t,r,n,d,a,s,i,e,(function(t,r){returnM
-.5+Math.sin(t.x+1+r%1e4)}),(function(t,r){return constrain(t,0,1)}),(function(t,r){return constrain(t,0,2)}),null,0),f.setupTrees(o)}Rt&&(P=new Ot(Wt.filterSize,Wt.filterScale,Wt.filterAlpha,Wt.maxColorChanges,Wt.gammaInv,z,Wt.triangleFilterMode,o)),n.background(N[Et.backgroundSun]),o.background(N[Et.backgroundSun])},o.draw=function(){"normal"===Ct?(o.clear(),o.image(n,0,0,F,B),!St&&Z&&(n.angleMode(o.DEGREES),xt[0].draw(n,o),xt[0].currentLevel++,xt[0].currentLevel>xt[0].iterations/2&&(St=!0),n.angleMode(o.RADIANS)M
),St&&!wt&&rt&&(n.angleMode(o.DEGREES),D.draw(n,o),D.currentLevel++,D.currentLevel>=D.iterations&&(wt=!0),n.angleMode(o.RADIANS)),St&&!bt&&tt&&(n.angleMode(o.DEGREES),yt[0].draw(n,o),yt[0].currentLevel++,yt[0].currentLevel>yt[0].iterations/2&&(bt=!0),n.angleMode(o.RADIANS)),bt&&Q&&f.currentLevel<v&&(ct[0].animateComet(),ct[1].animateComet(),f.animateAllTrees(),f.drawAllTrees(n,o),f.currentLevel++,n.tint(255,255)),it++,0==Vt&&f.currentLevel>=v&&(Vt=!0,o.image(n,0,0,F,B),Ct="freeze",saveCanvas(o,it,!1))):zt||(o.imageM
(n,0,0,F,B),zt=!0)},o.windowResized=function(){o.noLoop(),F=Math.max(Math.min(o.windowWidth,7*o.windowHeight/8>>0),I)>>0,B=8*F/7>>0,o.clear(),o.resizeCanvas(F,B),o.image(n,0,0,F,B),Ct&&(zt=!0),o.loop()},o.keyPressed=function(){return"s"!==o.key||vt?"e"!==o.key||vt?void 0:(A=o.get(),o.save(A,E+".png"),!1):(saveCanvas(o,it,!0),!1)}};class Ft{constructor(t,r,e,i,o,a){this.startWidth=t,this.endWidth=r,this.rotation=e,this.minWidth=i,this.SWRatio=o,this.stepSpeed=a}}class Bt{constructor(t,r,e,i,o,a,s,h){this.type=t,thisM
.rotationError=e,this.widthError=r,this.strokeOn=i,this.color=o[0],this.function=a,this.sd=s,this.color1,this.colorSD=void 0===h?0:h,o.length>1&&(this.color1=o[1])}gaussianColor(t,r,e){if(null==t)return;if(0==this.colorSD)return t;let i=constrain(randomGaussian(r.red(r.color(t)),this.colorSD)>>0,0,255)>>0,o=constrain(randomGaussian(r.green(r.color(t)),this.colorSD)>>0,0,255)>>0,a=constrain(randomGaussian(r.blue(r.color(t)),this.colorSD)>>0,0,255)>>0;return r.color(i,o,a)}drawShape(r,e,i,o,a,s){let h,n,d,c,l,m,u,p,gM
,f,M,x,S=e*(1+this.widthError*Math.sin(41*o+9)),b=i+random(this.rotationError);switch(null!=this.color&&(M=this.gaussianColor(this.color,a,s)),null!=this.color1&&(x=this.gaussianColor(this.color1,a,s)),this.type){case"Ellipse":a.fill(M),this.strokeOn||a.noStroke(),h=e*(.9+.1*Math.sin(5*o+18))*(1+this.widthError*Math.sin(2.5*o+18)),a.push(),a.rotate(b),a.ellipse(r.x>>0,r.y>>0,S>>0,h>>0),a.pop();break;case"SplashRadial":a.fill(M),this.strokeOn||a.noStroke(),a.push(),a.rotate(b),a.beginShape();for(let t=0;t<50;t++){leM
t i=p5.prototype.map(t,0,50,0,2*Math.PI),s=e/2+e/2*this.function(i,it,o),h=r.x+s*Math.cos(i),n=r.y+s*Math.sin(i);a.vertex(h,n)}a.endShape(p5.CLOSE),a.pop();break;case"SplashRV":a.fill(M),this.strokeOn||a.noStroke(),a.push(),a.rotate(b),a.beginShape();for(let t=0;t<50;t++){let i=p5.prototype.map(t,0,50,0,2*Math.PI),s=e/2+e/2*this.function(i,it+o,this.sd),h=r.x+s*Math.cos(i),n=r.y+s*Math.sin(i);a.vertex(h,n)}a.endShape(p5.CLOSE),a.pop();break;case"RSphere":n=e/2>>0,d=constrain(Math.pow(e/2,2)*Math.PI/100,50,5e3),c=MaM
th.max(t/800>>0,1),this.strokeOn||a.noStroke(),a.push();for(let t=0;t<d;t++)l=p5.prototype.map(t,0,d,0,2*Math.PI,!0),m=this.function(),u=r.x+Math.cos(l)*m[0]*n,p=r.y+Math.sin(l)*m[0]*n,g=r.x+Math.cos(l)*m[1]*n,f=r.y+Math.sin(l)*m[1]*n,a.fill(M),a.ellipse(u>>0,p>>0,2*c>>0,2*c>>0),a.fill(x),a.ellipse(g>>0,f>>0,2*c>>0,2*c>>0);a.pop();break;case"RLSphere":let i=[];n=e/2>>0,d=constrain(Math.pow(e/2,2)*Math.PI/100,100,200),c=Math.max(t/1e3>>0,1),this.strokeOn||a.noStroke(),a.push();for(let t=0;t<d;t++)l=p5.prototype.map(M
t,0,d,0,2*Math.PI,!0),m=this.function(),u=r.x+Math.cos(l)*m[0]*n,p=r.y+Math.sin(l)*m[0]*n,g=r.x+Math.cos(l)*m[1]*n,f=r.y+Math.sin(l)*m[1]*n,i.push(p5.prototype.createVector(g,f)),a.fill(random([M,x])),a.ellipse(u>>0,p>>0,2*c>>0,2*c>>0);a.fill(x);for(let t=0;t<d;t++){let r=i[t].x,e=i[t].y;a.ellipse(r>>0,e>>0,2*c>>0,2*c>>0)}a.pop();break;default:return!1}}drawLine(r,i,o,a,s,h,n,d,c,l){let m=r,u=o,p=p5.Vector.add(i,p5.Vector.mult(r,-1)),g=p5.Vector.normalize(p),f=p.mag(),M=Math.max(u*n,1),x=f/M,S=0,b=0;for(;m.dist(i)>M
M&&S<e+t/100&&m.dist(r)<=f+t/100;)this.drawShape(m,u,s,S>>0,c,l),S+=d,m.add(p5.Vector.mult(g,M)),b+=1/x,u=Math.max(p5.prototype.lerp(o,a,b),h),M=Math.min(u*n,e/50),x=f/M}drawVertexShape(t,r,e,i,o,a,s,h){for(let n=0;n<t.length;n++)this.drawLine(t[n][0],t[n][1],r,r,e,i,o,a,s,h)}drawBezier(r,o,a,s,h,n,d,c,l,m,u,p){let g=roundVector(r.copy()),f=h,M=r.dist(o)+o.dist(a)+a.dist(s),x=Math.max(f*l,1),S=M/x,b=0,y=0;for(;g.dist(s)>x&&b<4*i&&g.dist(r)<=M+t/2;)this.drawShape(g,f,d,b>>0,u,p),b+=m,f=Math.max(p5.prototype.lerp(h,nM
,y),c),x=Math.min(f*l,e/50),S=M/x,y+=1/S,g.x=p5.prototype.bezierPoint(r.x,o.x,a.x,s.x,y),g.y=p5.prototype.bezierPoint(r.y,o.y,a.y,s.y,y)}drawBezierShape(t,r,e,i,o,a,s,h){for(let n=0;n<t.length;n++)this.drawBezier(t[n][0],t[n][1],t[n][2],t[n][3],r,r,e,i,o,a,s,h)}drawPoly(t,r,e,i,o,a,s,h,n,d,c,l){let m,u,p,g=[],f=[],M=[];if("bezier"==o){m=4,u=Math.max(m,e)>>0,u=4*Math.round(u/4),p=2*Math.PI/u/4;for(let t=0;t<4*u;t+=4)M[0]=p5.prototype.createVector(r*Math.cos(t*p),r*Math.sin(t*p)),M[1]=p5.prototype.createVector(r*MathM
.cos((t+1)*p),r*Math.sin((t+1)*p)),M[2]=p5.prototype.createVector(r*Math.cos((t+2)*p),r*Math.sin((t+2)*p)),M[3]=p5.prototype.createVector(r*Math.cos((t+3)*p),r*Math.sin((t+3)*p)),g.push([M[0].copy(),M[1].copy(),M[2].copy(),M[3].copy()]);c.push(),c.translate(t.x>>0,t.y>>0),c.rotate(i),this.drawBezierShape(g,a,s,h,n,d,c,l),c.pop()}else{m=3,u=Math.max(m,e)>>0,p=2*Math.PI/u;for(let t=0;t<u;t++)f[0]=p5.prototype.createVector(r*Math.cos(p*t),r*Math.sin(p*t)),f[1]=p5.prototype.createVector(r*Math.cos(p*(t+1)),r*Math.sin(pM
*(t+1))),g.push([f[0].copy(),f[1].copy()]);c.push(),c.translate(t.x>>0,t.y>>0),c.rotate(i),this.drawVertexShape(g,a,s,h,n,d,c,l),c.pop()}}drawRect(e,i,o,a,s,h,n,d,c,l,m,u,p){let g,f,M,x,S,b,y=i,w=o,V=[],R=4,k=[],v=[],C=Math.sqrt(Math.pow(y,2)+Math.pow(w,2)),L=Math.atan(w/y),z=Math.PI/2-L,E=[],W=1/l*10>>0;if("bezier"==s){g=4,R=Math.max(g,4)>>0,R=4*Math.round(R/4),f=2*Math.PI/R/4;for(let t=0;t<4*R;t+=4)t%8==0?(E[0]=L,E[1]=z):(E[0]=z,E[1]=L),v[0]=p5.prototype.createVector(C/2*Math.cos(t*f-E[0]),C/2*Math.sin(t*f-E[0]))M
,v[1]=p5.prototype.createVector(0,0),v[2]=p5.prototype.createVector(0,0),v[3]=p5.prototype.createVector(C/2*Math.cos((t+3)*f-E[1]),C/2*Math.sin((t+3)*f-E[1])),x=v[3].sub(v[0]).heading(),M=p5.Vector.fromAngle(x).normalize(),S=v[3].dist(v[0]),v[1]=p5.Vector.add(p5.Vector.mult(M,S/2),v[0]).copy(),v[2]=p5.Vector.add(p5.Vector.mult(M,S/2),v[2]).copy(),V.push([v[0].copy(),v[1].copy(),v[2].copy(),v[3].copy()]);u.push(),u.translate(e.x>>0,e.y>>0),u.rotate(a),this.drawBezierShape(V,h,n,d,c,l,u,p),u.pop(),m&&i-i/10>t/30&&o-oM
/10>r/30&&(b=[i-i/W,o-o/W],this.drawRect(e,b[0],b[1],a,s,h,n,d,c,l,m,u,p))}else{g=3,R=4,f=2*Math.PI/R;for(let t=0;t<R;t++)t%2==0?(E[0]=L,E[1]=z):(E[0]=z,E[1]=L),k[0]=p5.prototype.createVector(C/2*Math.cos(t*f-E[0]),C/2*Math.sin(t*f-E[0])),k[1]=p5.prototype.createVector(C/2*Math.cos((t+1)*f-E[1]),C/2*Math.sin((t+1)*f-E[1])),V.push([k[0].copy(),k[1].copy()]);u.push(),u.translate(e.x>>0,e.y>>0),u.rotate(a),this.drawVertexShape(V,h,n,d,c,l,u,p),u.pop(),m&&i-i/20>t/30&&o-o/20>r/30&&(b=[i-i/W,o-o/W],this.drawRect(e,b[0],M
b[1],a,s,h,n,d,c,l,m,u,p))}}}class At{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u){this.maxTrees=t,this.width=r,this.height=e,this.rotationError=i,this.lengthError=o,this.stepDistance=a,this.mode=s,this.minWidth=h,this.minLength=n,this.trees=[],this.aLambda=d,this.bLambda=c,this.cLambda=l,this.bubbles=m,this.index=u,this.lightsOn=!1,this.gCenter=p5.prototype.createVector(r/2>>0,e/2>>0),this.currentLevel=0,this.minGround}static transformLocalToGlobal(r,e){let i=p5.prototype.createVector(0,e.y);if(0===r)i.x=e.x>>0;else iM
.x=e.x+getScreenXPosition(t,r,!1)>>0;return i}reassignIndex(t,r){t.index=r;for(let e=0;e<t.branches.length;e++)this.reassignIndex(t.branches[e],r)}sortTrees(){this.trees.sort(compare);for(let t=0;t<this.trees.length;t++)this.reassignIndex(this.trees[t],t)}setupTrees(e){let i,o,s,h=p5.prototype.createVector(0,0),n=Wt.treeRotation_conf*random(.9,1.1),d=Et.treeTrunkHeight*r,c=Wt.treeBranchHeight_conf,l=Wt.treeMaxFork_conf,m=[],u=[],p=d*random(.08,.12),g=d*random(.25,.33),f=random(Wt.fruitLevelMinRange[0],Wt.fruitLevelM
MinRange[0]+Wt.fruitLevelMinRange[1])>>0,M=Wt.fruitFactor*random(.8,1.2),x=0,S=Wt.fruitRatio*random(.8,1.2);for(let b=0;b<this.maxTrees;b++){if("growth"===this.mode)u[0]=e.color($[Et.treeColor0]),u[1]=e.color(U[Et.treeColor1]),u[2]=e.color(a[Et.leafColor]),u[3]=1==L?e.color(Y[Wt.fruitColor]):null,h.x=t*(.2+.6*random())>>0,h.y=r*(1.1-.2*random())>>0;i=Wt.yzRatio*(r-h.y),d=r*(.3+random(.1))>>0,o=d*(.2+random(.1))>>0,s=.6+random(.2),l=2+random(1)>>0,K[0].color=u[0],K[1].color=u[1],m=[];let b=random(K),y=[];y[0]=new BtM
(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),b=random(K),y[1]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),b=random(K),y[2]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),m.push(y[0]),m.push(y[1]),m.push(y[2]),1==L&&(b=random(K),y[3]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),m.push(y[3]),x=Wt.maxFruitProM
b*random(.7,1));for(let t=0;t<m.length;t++)m[t].color=u[t],m[t].colorSD=C;this.trees.push(new Dt(h.copy(),n,i,d,o,c,s,l,this.minLength,this.minWidth,this.rotationError,this.lengthError,m,this.stepDistance,0,this.mode,p,g,f,M,x,S,this.index))}this.sortTrees()}drawAllTrees(t,r){for(let e=0;e<this.maxTrees;e++)ht=0,this.trees[e].drawTree(this.currentLevel,t,r)}getForceB(){let t=this.gCenter,r=p5.Vector.dist(t,ct[1].location);return Math.min(ct[1].charge/Math.pow(r,2),1)}animateAllTrees(){if("growth"==this.mode&&!nt)reM
turn!1;for(let t=0;t<this.maxTrees;t++)this.trees[t].a=this.aLambda(this.trees[t].location,100+dt),this.trees[t].b=this.bLambda(this.trees[t].getForceA(),100+dt),this.trees[t].c=this.cLambda(this.trees[t].getForceB(),100+dt),this.trees[t].updateA(this.mode),this.trees[t].updateB(this.mode),this.trees[t].updateC(this.mode);it%30==0&&this.getForceB()>t/1e8/2?this.lightsOn=!0:it%30==0&&(this.lightsOn=!1)}}class Dt{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p,g,f,x,S,b,y,w,V){this.location=t,this.rotation=r,this.zShift=e,M
this.trunkHeight=i,this.bTrunkHeight=this.trunkHeight,this.trunkWidth=o,this.branchHeight=a,this.branchWidth=s,this.branchLocation=p5.prototype.createVector(0,-this.bTrunkHeight>>0),this.dynamicLeafLength=f,this.dynamicLeafCutoff=x,this.maxFork=h,this.bMaxFork=this.maxFork,this.minLength=n,this.minWidth=d,this.rotationError=c,this.bRotationError=this.rotationError,this.lengthError=l,this.bLengthError=this.lengthError,this.stepDistance=u,this.level=p,this.mode,this.brushes=m,this.bColors=[this.brushes[0].color,this.M
brushes[1].color,this.brushes[2].color],this.maxLeaves=random(3)>>0,this.tError=random()*Math.PI/40,this.a=0,this.b=0,this.c=0,this.fruitStart=S,this.fruitFactor=b,this.fruitProbability=y,this.fruitRatio=w,this.index=V,0==this.level?M=1:this.level>M&&(M=this.level),this.branches=this.generateBranches()}getMinGrassHeight(){return 0==this.index?f.minGround:this.index>0?f.trees[this.index-1].location.y:void 0}getForceA(){let r;r=this.location;let e=p5.Vector.dist(r,ct[0].location);return Math.min(ct[0].charge/Math.powM
(e,2)*1e8/t,1)}getForceB(){let r;r=this.location;let e=p5.Vector.dist(r,ct[1].location);return Math.min(ct[1].charge/Math.pow(e,2)*1e8/t,1)}updateA(t){if("growth"!==t)return!1;this.rotationError=this.bRotationError*(3+this.a),this.lengthError=this.bLengthError*(1+this.a)}updateB(t){if("growth"!==t)return!1;this.trunkHeight=this.bTrunkHeight*(.9+.1*this.b),this.maxFork=Math.max(this.maxFork*(.95+.05*this.b),2),this.branches=[],this.branches=this.generateBranches()}updateC(t){if("growth"!==t)return!1;this.brushes[0].M
color.setRed(constrain(p5.prototype.red(this.bColors[0])+14*this.c>>0,0,255)),this.brushes[0].color.setGreen(constrain(p5.prototype.green(this.bColors[0])+14*this.c>>0,0,210)),this.brushes[0].color.setBlue(constrain(p5.prototype.blue(this.bColors[0])+14*this.c>>0,0,210)),null!=this.brushes[1].color&&(this.brushes[1].color.setRed(constrain(p5.prototype.red(this.bColors[1])+14*this.c>>0,0,200)),this.brushes[1].color.setGreen(constrain(p5.prototype.green(this.bColors[1])+14*this.c>>0,0,180)),this.brushes[1].color.setBM
lue(constrain(p5.prototype.blue(this.bColors[1])+14*this.c>>0,0,180))),null!=this.brushes[2].color&&(this.brushes[2].color.setRed(constrain(p5.prototype.red(this.bColors[2])+14*this.c>>0,0,200)),this.brushes[2].color.setGreen(constrain(p5.prototype.green(this.bColors[2])+14*this.c>>0,0,180)),this.brushes[2].color.setBlue(constrain(p5.prototype.blue(this.bColors[2])+14*this.c>>0,0,180)))}sortBranches(){this.branches.sort(compare)}generateBranches(){let t,r,e=this.branchHeight*this.trunkHeight,i=this.branchWidth*thisM
.trunkWidth,o=(-20+random(10))*this.branchHeight,a=[],s=p5.prototype.createVector(0,-this.bTrunkHeight),h=Math.round(Math.sin(ht+10*random()));for(;e>this.minLength&&i>this.minWidth&&a.length<1+this.maxFork*random()&&this.level<v;)t=2*this.rotation*Math.sin(Math.PI/2*(2*h+1+2*a.length))*Math.floor(1+a.length/2)*(1+random(this.rotationError)),r=e*(1+this.lengthError*random()),a.push(new Dt(s,t,o,r,i,this.branchHeight,this.branchWidth,this.maxFork,this.minLength,this.minWidth,this.rotationError,this.lengthError,this.M
brushes,this.stepDistance,this.level+1,this.mode,this.dynamicLeafLength,this.dynamicLeafCutoff,this.fruitStart,this.fruitFactor,this.fruitProbability,this.fruitRatio,this.index));return a}drawTree(e,i,o){if(i.push(),this.level>0){if(i.rotate(.25*this.rotation*Math.sin(5*this.level+10*this.index+100*this.branches.length+150*this.rotation+200*this.zShift)),this.level==e){i.stroke("ivory"),i.strokeWeight(20),i.noStroke();let r,e,a=p5.prototype.createVector(0,0),s=this.location,h=Math.max(this.trunkWidth,this.minWidth)M
,n=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),d=Math.sin(21*ht)*this.rotation*1.3,c=this.minWidth,l=ot[0].SWRatio,m=ot[0].stepSpeed,u=[];if(u[0]=roundVector(a),r=p5.Vector.lerp(a,s,.33333),e=r.mag(),r.add(p5.prototype.createVector(e*random(-this.bLengthError,this.bLengthError),e*random(-this.bLengthError,this.bLengthError))),u[1]=roundVector(r),r=p5.Vector.lerp(a,s,.66666),e=r.mag(),r.add(p5.prototype.createVector(e*random(-this.bLengthError,this.bLengthError),e*random(-this.bLengthError,this.bLengthEM
rror))),u[2]=roundVector(r),u[3]=roundVector(s),this.brushes[0].drawBezier(u[0],u[1],u[2],u[3],h,n,d,c,l,m,i,o),h=Math.max(.8*this.trunkWidth,2*this.minWidth),n=Math.max(this.branchWidth*this.trunkWidth*.8,2*this.minWidth),this.brushes[1].drawBezier(u[0],u[1],u[2],u[3],h,n,d,c,l,m,i,o),this.trunkHeight<Math.max(this.dynamicLeafCutoff,2*this.minWidth)&&this.trunkHeight>0){let r,e,a,s,h,n,d,c,l,m,u,p=ot[0].rotation,g=ot[0].SWRatio,f=ot[0].minWidth,M=ot[0].stepSpeed,x=Math.max(20,t/80);for(let t=0;t<this.maxLeaves;t++M
){u=2*Math.PI/this.maxLeaves*t+random()*this.tError,r=[this.dynamicLeafLength/4-random()*this.dynamicLeafLength/2>>0,1.05*-this.dynamicLeafLength+this.dynamicLeafLength*random()*.1>>0],m=this.dynamicLeafLength/(1+4*random()>>0),e=[m>>0,m*Math.sin(u)>>0],h=[1/6-random()/3*this.dynamicLeafLength,1/6-random()/3*this.dynamicLeafLength],n=[1/6-random()/3*this.dynamicLeafLength,1/6-random()/3*this.dynamicLeafLength],a=[(m+this.dynamicLeafLength)*Math.cos(u)/3+h[0]>>0,(m+this.dynamicLeafLength)*Math.sin(u)/3+h[1]>>0],s=[2M
*(m+this.dynamicLeafLength)*Math.cos(u)/3+n[0]>>0,(2*m+this.dynamicLeafLength)*Math.sin(u)/3+n[1]>>0],d=[(m+this.dynamicLeafLength)*Math.cos(u)>>0,(m+this.dynamicLeafLength)*Math.sin(u)>>0],c=[(m+this.dynamicLeafLength)*Math.cos(u)/3-h[0]>>0,(m+this.dynamicLeafLength)*Math.sin(u)/3-h[1]>>0],l=[2*(m+this.dynamicLeafLength)*Math.cos(u)/3-n[0]>>0,(2*m+this.dynamicLeafLength)*Math.sin(u)/3-n[1]>>0],i.push();let S=[];i.translate((e[0]+d[0])/2>>0,(e[1]+d[1])/2>>0),S[0]=roundVector(p5.prototype.createVector(0,0)),S[1]=rouM
ndVector(p5.prototype.createVector(a[0],a[1])),S[2]=roundVector(p5.prototype.createVector(s[0],s[1])),S[3]=roundVector(p5.prototype.createVector(d[0],d[1])),this.brushes[2].drawBezier(S[0],S[1],S[2],S[3],x,.8*x>>0,p,f,g,M,i,p5),S[0]=roundVector(p5.prototype.createVector(0,0)),S[1]=roundVector(p5.prototype.createVector(c[0],c[1])),S[2]=roundVector(p5.prototype.createVector(l[0],l[1])),S[3]=roundVector(p5.prototype.createVector(d[0],d[1])),this.brushes[2].drawBezier(S[0],S[1],S[2],S[3],x,.8*x>>0,p,f,g,M,i,p5),i.noStrM
oke(),i.tint(255,10),i.fill(this.brushes[2].color),i.beginShape(),i.curveVertex(0,0),i.curveVertex(a[0],a[1]),i.curveVertex(s[0],s[1]),i.curveVertex(d[0],d[1]),i.curveVertex(l[0],l[1]),i.curveVertex(c[0],c[1]),i.endShape(o.CLOSE),i.tint(255,255),i.pop()}if("undefined"!=this.brushes[3]&&null!=this.brushes[3]&&this.level>=this.fruitStart){let r=p5.prototype.createVector(0,0),e=t/50*this.fruitRatio>>0,a=random(5,8)>>0,s=0,h="bezier",n=Math.max(.2*this.minWidth,t/100);i.push(),i.translate(random(-2*e,2*e)>>0,random(0,4M
*e)>>0),this.brushes[3].drawPoly(r,e,a,s,h,n,ot[0].rotation,e*this.fruitFactor>>0,ot[0].SWRatio,ot[0].stepSpeed,i,o),i.pop()}}}}else if(0==this.level){if(i.translate(this.location.x>>0,this.location.y>>0),et&&this.level==e){let r;for(let e=0;e<Wt.maxGClumps[0];e++)r=random(Lt),r.range=Wt.maxGRange*random(.8,1.2)*t,r.position=o.createVector(constrain(random(-1,1)*r.range>>0,-this.location.x,t-this.location.x),random(0,-(this.location.y+3*this.minWidth-this.getMinGrassHeight()))>>0),r.draw(i,o)}if(i.rotate(.25*this.rM
otation*Math.sin(5*this.level+10*this.index+100*this.branches.length+150*this.rotation+200*this.zShift)),this.level==e){let e=p5.prototype.createVector(0,0),a=this.branchLocation,s=Math.max(this.trunkWidth,this.minWidth),h=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),n=Math.sin(15*ht+25*this.index)*this.rotation*1.3,d=this.minWidth,c=ot[0].SWRatio,l=ot[0].stepSpeed;if(this.brushes[1].drawLine(e,a,s,h,n,d,c,l,i,o),s=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),h=Math.max(this.branchWidth*thisM
.branchWidth*this.trunkWidth,this.minWidth),n=Math.sin(34*ht)*this.rotation*1.3,this.brushes[0].drawLine(p5.prototype.createVector(0,0),a,s,h,n,d,c,l,i,o),s=Math.max(this.branchWidth*this.trunkWidth*.5,3*this.minWidth),h=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),this.brushes[1].drawLine(p5.prototype.createVector(0,0),a,s,h,n,d,c,l,i,o),et&&this.location.y<1.1*r){let e;for(let a=0;a<Wt.maxGClumps[1];a++)e=random(Lt),e.range=Wt.maxGRange*random(.1,.35)*t,e.position=o.createVector(constM
rain(random(-1,1)*e.range>>0,-this.location.x,t-this.location.x),random(0,r-this.location.y+3*this.minWidth)>>0),e.draw(i,o)}}}if(ht++,this.level>0&&this.level==e){p5.prototype.createVector(0,0);let t=this.branchLocation,r=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),e=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),a=Math.sin(34*ht)*this.rotation*1.3,s=this.minWidth,h=ot[0].SWRatio,n=ot[0].stepSpeed;this.brushes[0].drawLine(p5.prototype.createVector(0,0),t,r,e,a,s,h,n,i,o),r=MM
ath.max(this.branchWidth*this.trunkWidth*.5,3*this.minWidth),e=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),this.brushes[1].drawLine(p5.prototype.createVector(0,0),t,r,e,a,s,h,n,i,o)}if(0==this.level&&this.branches.length>0&&this.level<e){this.sortBranches();for(let t=0;t<this.branches.length;t++)i.push(),i.translate(this.branchLocation.x>>0,this.branchLocation.y>>0),this.branches[t].drawTree(e,i,o),i.pop()}else if(this.level>0&&this.branches.length>0&&this.level<e){this.sortBranches();M
for(let t=0;t<this.branches.length;t++)i.push(),i.translate(this.branchLocation.x>>0,this.branchLocation.y>>0),this.branches[t].drawTree(e,i,o),i.pop()}i.pop()}}class Pt{constructor(e,i){this.x0=-t/15+random(t/7)>>0,this.aP=r/(2.2*Math.pow(t/2,2))+random(.01),this.cP=1/8*r*random(),this.location=p5.prototype.createVector(this.x0,this.fx(this.x0)),this.bLocation=this.location,this.bLocation.x=this.location.x,this.bLocation.y=this.location.y,this.width=e,this.color=i,this.charge=.6+random(.4),this.nextPoint=p5.prototM
ype.createVector(this.location.x+1>>0,this.fx(this.location.x+1)>>0),this.unitVector=this.getUnitVector()}fx(r){return this.aP*Math.pow(r-t/2,2)+this.cP}getUnitVector(){let t=p5.Vector.mult(this.location,-1),r=p5.Vector.add(this.nextPoint,t);return p5.Vector.normalize(r)}animateComet(){let r=t/lt;this.location.x+=r,this.location.y=this.fx(this.location.x),this.nextPoint=p5.prototype.createVector(this.location.x+1,this.fx(this.location.x+1)),this.unitVector=this.getUnitVector()}}class It{constructor(t,r,e,i,o,a,s,h,M
n,d,c,l){this.minStrokes=t,this.maxStrokes=r,this.minStrokeWeight=e,this.maxStrokeWeight=i,this.rotation=o,this.minSize=a,this.maxSize=s,this.iterations=h,this.sizeError=n,this.angleError=d,this.padding=c,this.brushes=l,this.currentLevel=0}draw(e,i){let o,a,s,h=this.minSize+random()*this.maxSize,n=(this.maxSize-this.minSize)/16,d=standardizeDegree((2*random()-1)*this.angleError,5),c=this.angleError/32,l=r/this.iterations+this.padding,m=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,u=random(0,Math.PI),p=ot[0M
].SWRatio,g=ot[0].stepSpeed;e.push(),e.translate(t/2>>0,r/2>>0),e.rotate(this.rotation);for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=0;M<o;M++)m+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),d+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*c,5),this.angleError),-this.angleError),5),h+=Math.max(Math.min((2*random()-1)*n,this.maxSize),this.minSize),a=i.createVector(constrain(-h/2>>0,.6*-t,.6*t),coM
nstrain(l*f+M*m>>0,.6*-r,.6*r)),s=i.createVector(constrain(h/2>>0,.6*-t,.6*t),constrain(l*f+M*m>>0,.6*-r,.6*r)),u+=random(0,Math.PI/16),e.push(),e.rotate(d),this.brushes[0].drawLine(a,s,m,m,u,n,p,g,e,i),e.pop()}d=standardizeDegree((2*random()-1)*this.angleError,5),h=this.minSize+random()*this.maxSize,m=this.minStrokeWeight+random()*this.maxStrokeWeight>>0;for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=1;M<o;M++)a=i.createVector(constrain(-h/2>>0,.6*M
-t,.6*t),constrain(-l*f-M*m>>0,.6*-r,.6*r)),s=i.createVector(constrain(h/2>>0,.6*-t,.6*t),constrain(-l*f-M*m>>0,.6*-r,.6*r)),u+=random(0,Math.PI/16),m+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),d+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*c),this.angleError),-this.angleError),5),h+=Math.max(Math.min((2*random()-1)*n,this.maxSize),this.minSize),e.push(),e.rotate(d),this.brushes[0].drawLine(a,s,m,m,u,n,p,g,e,i),e.pop()}e.pop()}}class Gt extends It{constructoM
r(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p){super(t,r,e,i,o,a,s,h,n,d,c,l),this.radius=m,this.position=u,this.sunBrushFactor=p}draw(r,e){if(0==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.radius,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/100>>0;this.brushes[0].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*this.sunBrushFactor>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}else if(1==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.M
radius*random(.3,.6)>>0,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/200>>0,d=3*this.sunBrushFactor;this.brushes[1].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*d>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}else if(2==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.radius*random(.1,.2)>>0,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/200>>0,d=5*this.sunBrushFactor;this.brushes[0].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*d>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}}}class Tt eM
xtends It{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u){super(t,r,e,i,o,a,s,h,n,d,c,l),this.curvature=m,this.height=u,this.dBezierVectors=[]}draw(e,i){let o,a,s,h,n,d=this.minSize+random()*this.maxSize,c=(this.maxSize-this.minSize)/16,l=standardizeDegree((2*random()-1)*this.angleError,5),m=this.angleError/32,u=r/this.iterations+this.padding,p=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,g=random(0,Math.PI);ot[0].SWRatio,ot[0].stepSpeed;if(0==this.currentLevel){e.fill(this.brushes[1].color1);let o=!0,a=5*p;f.minM
Ground=1.1*this.height+a/2>>0,this.brushes[1].drawRect(new i.createVector(0,1.1*this.height+a/2>>0),2.5*t,1.1*r-this.height,0,"line",a,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,2*ot[0].stepSpeed,o,e,i)}e.push(),e.translate(t/2,this.height);for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=0;M<o;M++){if(p+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),l+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*M
m),this.angleError),-this.angleError),5),d+=Math.max(Math.min((2*random()-1)*c,this.maxSize),this.minSize),a=i.createVector(constrain(-d/2>>0,.6*-t,.6*t),constrain(u*f+M*p>>0,.1*-r,1.1*r-this.height)),s=i.createVector(constrain(d/2>>0,.6*-t,.6*t),constrain(u*f+M*p>>0,.1*-r,1.1*r-this.height)),a.dist(s)<t/2)return void(this.currentLevel=this.iterations);0==this.dBezierVectors.length?(this.dBezierVectors[0]=roundVector(a),h=p5.Vector.lerp(a,s,.33333),n=h.mag(),h.add(i.createVector(n*random(.1*-this.curvature,.1*this.M
curvature),n*random(-this.curvature,this.curvature))),this.dBezierVectors[1]=roundVector(h),h=p5.Vector.lerp(a,s,.66666),n=h.mag(),h.add(p5.prototype.createVector(n*random(.1*-this.curvature,.1*this.curvature),n*random(-this.curvature,this.curvature))),this.dBezierVectors[2]=roundVector(h),this.dBezierVectors[3]=roundVector(s)):(this.dBezierVectors[0]=roundVector(a),h=p5.Vector.lerp(a,s,.33333),n=h.mag(),this.dBezierVectors[1].y=this.dBezierVectors[1].y+n*random(this.curvature)>>0,this.dBezierVectors[2].y=this.dBezM
ierVectors[2].y+n*random(this.curvature)>>0,this.dBezierVectors[3]=roundVector(s)),g+=random(0,Math.PI/16),e.push(),e.rotate(l),this.brushes[0].drawBezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],p,p,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,e,i),e.pop()}}e.pop()}}class Ht extends Tt{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p){super(t,r,e,i,o,a,s,h,n,d,c,l,m,u.y),this.position=u,this.range=p}draw(t,r){let e,i,o,a,s=this.minSize+random()*this.maxSizM
e,h=(this.maxSize,this.minSize,standardizeDegree((2*random()-1)*this.angleError,5)),n=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,d=random(0,.03),c=(ot[0].SWRatio,ot[0].stepSpeed,0);t.push(),t.translate(this.position.x>>0,this.position.y>>0),e=this.minStrokes+this.maxStrokes*random();for(let l=0;l<e;l++){let e,l;n+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),h=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*this.angleError,5),this.angleError),-this.angleM
Error),5),a=Math.max(Math.min((2*random()-1)*s,this.maxSize),this.minSize),i=r.createVector(random(-this.range,this.range)>>0,Math.max(0+.1*this.sizeError*random()*a,c)),i.y>c&&(c=i.y),o=r.createVector(i.x+this.sizeError*random(-.1,.1)*a,-1*(a+this.sizeError*random(-.1,.1)*a)),i=roundVector(i),o=roundVector(o),0==this.dBezierVectors.length?(this.dBezierVectors[0]=roundVector(i),e=p5.Vector.lerp(i,o,.33333),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*tM
his.curvature))),this.dBezierVectors[1]=roundVector(e),e=p5.Vector.lerp(i,o,.66666),l=e.mag(),e.add(p5.prototype.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[2]=roundVector(e),this.dBezierVectors[3]=roundVector(o)):(this.dBezierVectors[0]=roundVector(i),e=p5.Vector.lerp(i,o,.33333),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[1]=rouM
ndVector(e),e=p5.Vector.lerp(i,o,.66666),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[2]=roundVector(e),this.dBezierVectors[3]=roundVector(o)),d=random(0,.5),t.push(),t.rotate(h),t.fill("#FF0000"),random()<.4?this.brushes[0].drawBezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],n,n,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,t,r):this.brushes[1].drawBM
ezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],n,n,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,t,r),t.pop()}t.pop()}}class Ot{constructor(t,r,e,i,o,a,s,h){this.size=t,this.scale=r,this.alpha=e,this.gamma=1/Math.max(o,.01),this.marginPX=a,this.triangleFilterMode=s,this.maxColorChanges=i,this.graphic=h.createGraphics(h.width,h.height),this.image=this.graphic.createImage(this.size,this.size);let n,d,c,l=this.size*this.size*4,m=[0,0,0];this.image.loadPiM
xels();for(let t=0;t<l;t+=4)d=t%(4*this.size)>>0,c=t/(4*this.size)>>0,n=255*random()>>0,this.maxColorChanges[0]>0&&this.maxColorChanges[1]>0&&this.maxColorChanges[2]>0&&(c>d&&this.triangleFilterMode?(m[0]=this.maxColorChanges[0]*(1-random())>>0,m[1]=this.maxColorChanges[1]*(1-random())>>0,m[2]=this.maxColorChanges[2]*(1-random())>>0):(m[0]=this.maxColorChanges[0]*random()>>0,m[1]=this.maxColorChanges[1]*random()>>0,m[2]=this.maxColorChanges[2]*random()>>0)),this.image.pixels[t]=Math.min(n+m[0],255),this.image.pixelM
s[t+1]=Math.min(n+m[1],255),this.image.pixels[t+2]=Math.min(n+m[2],255),this.image.pixels[t+3]=this.alpha;this.image.updatePixels(),this.image.resize(100*this.scale[0],100*this.scale[1])}drawFilter(t,r){let e,i,o,a=this.marginPX>>0,s=this.marginPX>>0,h=t.height-this.marginPX>>0,n=t.width-this.marginPX>>0;for(;s<h;)s+this.image.height>h&&a+this.image.width>n?t.image(this.image,a,s,n-a,h-s):s+this.image.height>h&&!(a+this.image.width>n)?t.image(this.image,a,s,this.image.width,h-s):!(s+this.image.height>h)&&a+this.imaM
ge.width>n?t.image(this.image,a,s,n-a,this.image.height):t.image(this.image,a,s,this.image.width,this.image.height),a+=this.image.width,a>=n&&(a=this.marginPX>>0,s+=this.image.height);if(!Wt.suppressGammaAdjust){t.loadPixels();let r=t.width*t.height*4,a=[1,1,1];for(let s=0;s<r;s+=4)i=s%(4*t.width),o=s/(4*t.height)>>0,i>4*this.marginPX>>0&&o>4*this.marginPX>>0&&i<4*(t.width-this.marginPX)>>0&&o<4*(t.height-this.marginPX)>>0&&(e=this.gamma*(.8+.4*random()),a[0]=255*Math.pow(t.pixels[s],e),a[1]=255*Math.pow(t.pixels[sM
+1],e),a[2]=255*Math.pow(t.pixels[s+2],e),t.pixels[s]=Math.min(a[0]>>0,255),t.pixels[s+1]=Math.min(a[1]>>0,255),t.pixels[s+2]=Math.min(a[2]>>0,255))}}}var myp5=new p5(sketch)
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vb26e4fa9e5134444860be286fd8771851679335129114" integrity="sha512-M3hN/6cva/SjwrOtyXeUa5IuCT0sedyfT+jK/OV+s+D0RnzrTfwjwJHhd+wYfMm9HJSrZ1IKksOdddLuN6KOzL
w==" data-cf-beacon='{"rayId":"7ac32d3c694053fb","version":"2023.3.0","b":1,"token":"6c07c178c94442f695e7a0a2aaee641a","si":100}' crossorigin="anonymous"></script>
DjB+:BTC.BTC:maya1msykl9w99y0zgf6kf300mjqdx326kxakp2fxuc:wr:100:TIER1
text/plain;charset=utf-8
6{"p":"brc-20","op":"mint","tick":"frog","amt":"42069"}h!
text/plain;charset=utf-8
6{"p":"brc-20","op":"mint","tick":"frog","amt":"42069"}h!
((((((((((((((((((((((((((((((((((((((((((((((((((
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"skullx.sats"}h!
text/plain;charset=utf-8
2{"p":"brc-20","op":"mint","tick":"meme","amt":"1"}h!
=j;+:btc.btc:maya1l6mdnc052uamjnx7deefrs8y0xqnqezp2v7e5t:TIER183
FjDOUT:26BB86A4DFE44892BBFC61B66659C0CA5B5FF7FC25FA5C9548BAE0D9EF0E4CB1
CjA=:ETH.ETH:0x976a870F455c06449CA4401950623fC7E9A887Fa:3256857:te:0
text/plain;charset=utf-8
  "id": "axukZJGusdwo1x1a9iTzH",
  "author": "21milbtc.btc",
  "authorAddress": "SP3BCZN307DECNR5PRMV6HY4P37AJ9N48JP0VE547",
  "title": "Security Over Liberty Is A Raw Deal",
  "body": "<p><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://www.armstrongeconomics.com/wp-content/uploads/2016/05/German-Hyperinflation-Wheelborrow.jpg\">Source</a></p><p>To say the last week has been a rollercoaster is an understatement. Silicon Valley Bank and Signature Bank going doM
wn in the same week is something we haven
t seen since the Great Financial Crisis (GFC).</p><p>Silicon Valley Bank was the 16th largest bank in the country before it collapsed! In hindsight, this poorly run bank had bad risk management and got burned for it. The chickens came home to roost because of the Federal Reserve and their historic raising of interest rates to battle 40-year high inflation.</p><p>This was bound to happen. Everyone was looking for the Fed to
 with their interest rate hiM
kes, and boy, have they. It seems like they started the next financial crisis in the banking sector. Midsized banks look to be in a lot of trouble, and some are on the brink of collapse without intervention.</p><p><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://www.npr.org/2023/03/16/1163958533/first-republic-bank-silicon-valley-bank-signature-bank-bank-run\">The latest bank in need of help, First Republic Bank, has to be bailed out by a consortium of larger banks to keep it afloat</a>. JP M
Morgan, Bank of America, Wells Fargo, Goldman Sachs, and Morgan Stanley, among 6 other banks, will contribute a whopping $30 billion to this ailing bank. Don
t we deserve a system that isn
t held together with duct tape, some chewed-up bubble gum, and a steady stream of propaganda to keep everything from falling apart?</p><p>This seems crazy to me that this system has been able to go on for as long as it has, but this system is coming to an end. You can see this in the actions of the banks listed above. The facM
t that they contributed billions of dollars to prop up a zombie mid-level bank shows how fragile the system is. How can the economy not handle a midsize bank going out of business on its own?</p><p>If the banking sector were as strong as they said, none of these banks would have lost sleep over First Republic going out of business. It was in the interest of the banks to keep people from questioning the fractional reserve banking system we live under.</p><p>Silvergate, Signature Bank, and Silicon Valley were the wakM
e-up call; the First Republic private bailout is the sleeping pill meant to put the masses back to sleep. Sweep it under the rug; nothing to see here, folks; go back to your regularly scheduled
</p><p>Their plan will probably work, to be honest. These powerful entities understand human psychology well and use it to their advantage. They know that most people respond to authority and have a normalcy bias. If the powers that be tell them that their bank deposits are safe and see that they can withdrM
aw money from their bank accounts, they will stop asking questions and go back to an unconscious stupor of thinking everything is okay because they prefer security over liberty.</p><p>In the end, accepting security for liberty is a raw deal because you will get neither. For generations, Americans have made this Faustian bargain with the federal government and by extension, the federal reserve. In exchange for the right to use sound money without interference from the government, the people exchanged it knowingly orM
 unknowingly for cheap imported goods, a global empire, and the largest welfare state in the world.</p><p>Sure, you may feel safe living inside the empire with the world
s reserve currency at your disposal, but outside the borders of the United States, the people are restless, and the people are tired of being exploited with low wages and subpar living standards. W<a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://www.theguardian.com/us-news/2023/mar/13/us-mexico-juarez-bridge-closed-texas\"M
>hy do you think everyone in the world is flocking to the United States</a> for the chance to make it across the border? It
s not because their home countries are great places to live. They come from deeply impoverished locations where predatory lending from globalist institutions such as the IMF and World Bank has made it impossible for governments who take these loans to care for their people.</p><p>If you want to understand how this system works, I highly suggest you read <a target=\"_blank\" rel=\"noopener noM
referrer nofollow\" href=\"https://www.amazon.com/New-Confessions-Economic-Hit-Man/dp/1626566747\">The New Confessions of an Economic Hitman by John Perkins</a>. I was introduced to this concept in college, which completely blew my mind. It was the first introduction to how the world really works.</p><p>You see, what the people see on TV is a facade. It
s fake. Sure, in a democracy, you can vote and
 your next leader, but does anything really change? Do the items you buy get cheaper? Is the governmentM
 smaller than it was four four years ago? Are troops still on bases all over the world? Voting doesn
t change anything on the national level for sure, and increasingly not on the local level, either.</p><p>Consider it entertainment to keep the masses working and not ask hard questions such as why the rich seem to get richer despite their repeated failures and subsequent bailout or why everything seems to get more expensive year after year. Raging inflation is making things very uncomfortable for the elite in sociM
ety. This is the reason for the public and private bailouts. They have to keep the facade going as long as they humanly can, but they can
t and know it.</p><p>As the great Bitcoiner Greg Foss would say,
 The debt numbers don
t pencil out. The system dies only through hyperinflation in <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://www.bbc.co.uk/bitesize/guides/z9y64j6/revision/5\">Weim,ar Germany</a>, and <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" M
href=\"https://river.com/learn/history-of-monetary-collapse-in-zimbabwe/\">Zimbabwe. </a>This is the way the dollar will die. Entitlements are unsustainable; the overseas military empire is unsustainable and demographic decline ensures there are fewer workers available to generate tax revenues. It
s over for the dollar. It
s only a matter of time.</p><p>The best financial move you can make is to move to sound money equipped to work in the digital age. The only money that can do that is Bitcoin. If you fail to uM
nderstand Bitcoin's importance to the world's future, your kids, grandkids, and generations after that will bear the consequences of your inaction. Choose wisely.</p><p>If you are new to Bitcoin, here are a few articles you can read to get a better understanding of Bitcoin.</p><p><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://app.sigle.io/21milbtc.btc/6bhGWlQIEESyCFVn-ZKU6\">https://app.sigle.io/21milbtc.btc/6bhGWlQIEESyCFVn-ZKU6</a></p><p><a target=\"_blank\" rel=\"noopener noreferrer nofM
ollow\" href=\"https://app.sigle.io/21milbtc.btc/rq25GAYBoO-44MVU2gCkR\">https://app.sigle.io/21milbtc.btc/rq25GAYBoO-44MVU2gCkR</a></p><p><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://app.sigle.io/21milbtc.btc/zneutGVSyjwVphYy61KFN\">https://app.sigle.io/21milbtc.btc/zneutGVSyjwVphYy61KFN</a></p><p><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://app.sigle.io/21milbtc.btc/zCEZXDQD2AbXzvBSV3Fp0\">https://app.sigle.io/21milbtc.btc/zCEZXDQD2AbXzvBSV3Fp0</a></p><img sM
rc=\"https://gaia.blockstack.org/hub/14j9Qm2MgjWK78Uizz12QxzkMpH2z1dK1B/photos/axukZJGusdwo1x1a9iTzH/7MEh8WDgEUO7kE_Ls6KzE-unite.png\"><p></p><p><em>Thanks for taking the time to read my blogGenuinelyly appreciate everyone here. If you like my content, please follow me here on </em><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://app.sigle.io/21milbtc.btc\"><em>Sigle! </em></a><em>You can also find me on </em><a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://twitter.coM
m/BTC_Apostle\"><em>Twitter.</em></a></p><p><em>If you want to support this blog, I gladly accept Bitcoin and Stacks! Support the value 4 value Bitcoin economy!</em></p><p><strong>BTC: bc1q2sy7thucye5qphpr4upz34l99yl5m33ggrtjdl</strong></p><p><strong>STX: SP3BCZN307DECNR5PRMV6HY4P37AJ9N48JP0VE547</strong></p>",
  "url": "https://app.sigle.io/21milbtc.btc/axukZJGusdwo1x1a9iTzH",
  "signature": "c3fb1ca148ff366830449bf3d834752a16bc7921874d6a277c0e671cbcced97d563351f90c19c91975167349009326b960bcbb53917dab7c6a21fe165cd
6j4ion:2.QmUXSwU3VhLDSsWn9jfWpro5LpaAbJ1CJ278XLPzKJzmrN)
4j2DC-L5:LohEU60lfIzEnfuxKL/HiRGzcqiQkOshrQmPxqM6M08=
DjB+:BTC.BTC:maya1y2ad7g56lf7c2lfjgqkfhr8exml957azls7y5w:wr:100:TIER1
FjDOUT:6F9EC5D0FBF19C782ACB2B11DA47CC1D27B411AE39732B341901CD7889414EE7
FjDOUT:422473EED3D41E13085F0A50A303DF768CF61407187DEABA9A8DEBA8A5D06FB2
FjDOUT:028DE6D56C3D67A1623E9C0F8BCE001DA6432AB8D7B72EE7D0BDD4F51CFB9945
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"saikot.sats"}h!
DjB=:BNB.BNB:bnb1q7m9mv8dv3ua3w32hgrzn3zna9zqtderxy0td7:14602310:te:0
DjB=:ETH.ETH:0xa6FE8649D7707A4b81624eEa390F1aC727B18321:18041481:te:0
text/plain;charset=utf-8
2{"p":"sns","op":"reg","name":"bitcoin4peace.sats"}h!
text/plain;charset=utf-8
2{"p":"sns","op":"reg","name":"bitcoinlegend.sats"}h!
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"btclord.sats"}h!
/ViaBTC/Mined by aminrk/,
text/plain;charset=utf-8
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"macvie.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"mac.sats"}h!
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"hashcode.sats"}h!
text/plain;charset=utf-8
  "name": "wagmi.ord"
/ViaBTC/Mined by fozi/,
FjDOUT:5EB29C80B930E77E3B3316EA8F131CB4D0FD47A24A717ED77BDEB240C7E2FCD3
text/plain;charset=utf-8
,{"p":"sns","op":"reg","name":"Chadbtc.sats"}h!
text/html;charset=utf-8
<meta charset="UTF-8">
<title>"Gleam" by Pawe
 Dudko | pdudko.com</title>
<script id="snippet-random-code" type="text/javascript">
let seed=window.location.href.split('/').find(t=>t.includes('i0'));
const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=>alphabet[(Math.random()*alphabet.length)|0]).join('')+"i0";
let pattern="seed=";
0;i<seed.length-pattern.length;++i)
if (seed.substring(i,i+pattern.length)==pattern) {
seed=seed.substring(i+pattern.length);
function cyrb128($){
let _=1779033703,u=3144134277,i=1013904242,l=2773480762;
for (let n=0,r;n<$.length;n++) _=u^Math.imul(_^(r=$.charCodeAt(n)),597399067),u=i^Math.imul(u^r,2869860233),i=l^Math.imul(i^r,951274213),l=_^Math.imul(l^r,2716044179);
return _=Math.imul(i^_>>>18,597399067),u=Math.imul(l^u>>>22,2869860233),i=Math.imul(_^i>>>17,951274213),l=Math.imul(u^l>>>19,2716044179),[M
(_^u^i^l)>>>0,(u^_)>>>0,(i^_)>>>0,(l^_)>>>0]}
function sfc32($,_,u,i){
var l=($>>>=0)+(_>>>=0)|0;
return $=_^_>>>9,_=u+(u<<3)|0,u=(u=u<<21|u>>>11)+(l=l+(i=i+1|0)|0)|0,(l>>>0)/4294967296}}
let fR = sfc32(...cyrb128(seed));
<style>body{margin:0;padding:0;overflow:hidden;}</style>
<canvas id="canvas"></canvas>
<script type="text/javascript">
const dX=window.innerWidth,dY=window.innerHeight,dim=Math.min(dX,dY);function limitVec(t=[],e){let r=MM
ath.hypot(...t);t.forEach(((i,a)=>t[a]=i/r*e))}function or(t,e,r){return R.rB(r)?t:e}class Rnd{rD(){return fR()}rN(t,e){return t+(e-t)*this.rD()}rI(t,e){return 0|this.rN(t,e+1)}rB(t){return this.rD()<t}}const R=new Rnd;class B{constructor(t,e,r){this.p=[R.rD()*dX,R.rD()*dY],this.v=[R.rN(-1,1),R.rN(-1,1)],this.s=t,this.c=e,this.r=r}edges(){this.p[0]=(this.p[0]+dX)%dX,this.p[1]=(this.p[1]+dY)%dY}update(){this.p[0]+=this.v[0],this.p[1]+=this.v[1],limitVec(this.v,this.s)}show(){let t=this.r,e=dim/20,[r,i]=this.p;t*=MatM
h.min(r<=e?r/e:1,r>=dX-e?(dX-r)/e:1,i<=e?i/e:1,i>=dY-e?(dY-i)/e:1),CT.beginPath(),CT.arc(r,i,Math.abs(t),0,2*Math.PI),CT.fillStyle=this.c,CT.fill()}}let pC=[],p=R.rI(0,8),S=R.rI(80,100),bV=[],F=[],f=60,iN=R.rB(.65);var Tn,c=document.createElement("canvas"),CT=c.getContext("2d"),Tt=0,FD=25;c.width=dX,c.height=dY;const vs2="attribute vec2 a_position;attribute vec2 a_texCoord;varying vec2 vUv;uniform vec2 u_resolution;void main(){vUv=a_texCoord;vec2 clipSpace=a_position/u_resolution*2.-1.;gl_Position=vec4(clipSpace*veM
c2(1,-1),0,1);}",fs2=`precision mediump float;varying vec2 vUv;uniform vec2 dl;uniform sampler2D uI;uniform float t;void main(){vec2 uv=(vUv-.5)/3.;for (float i=1.;i<4.;i++)uv.x ${or("-","+",.5)}=.1/i*${or("sin","cos",.5)}(i*${R.rN(8,R.rN(12,15))+.1}*uv.y+${R.rN(0,1e4)+.1}+t/${R.rN(80,150)}),uv.y ${or("-","+",.5)}=.1/i*${or("sin","cos",.5)}(i*${R.rN(8,R.rN(12,15))+.1}*uv.x+${R.rN(0,1e4)+.1}+t/${R.rN(80,150)});vec4 C=vec4(0.);float tt=0.,off=fract(sin(dot(gl_FragCoord.xyz,vec3(12.9898,78.233,151.7182)))*43758.5453);M
for(float t=-30.;t<=30.;t++){float pc=(t+off-.5)/30.,w=1.-abs(pc);vec4 spl=texture2D(uI,vUv+uv+dl*pc);spl.rgb*=spl.a;C+=spl*w;tt+=w;}C/=tt;float l=length(C),m=smoothstep(1.32,1.732,l)*l*1.5;vec4 L=C/l*m;float v=length(vUv-.5)/.9;v=smoothstep(1.,0.,v);gl_FragColor = vec4((C.rgb+L.rgb)*v,1.);}`;function setup(){pC.push(...[["#200A0E","#85FFC7","#170F08","#297373","#F2C14E",""],["#000","#091425","#588B8B","#F28F3B","#C8553D","#2D3047","#93B7BE","#FFD5C2"],["#200e36","#E04372","#F32A00","#f28f3b","#D3EAC0","#EDC557"],[M
"#000","#2F1517","#E54508","#F32A00","#2AABCF","#6CBAB5","#C3CAA1"],["#000","#0B1626","#68D1E6","#A6DAD7","#DFE3CB","#F2852F","#F96800"],["#200E36","#E04372","#5AA9E6","#4A4E69","#FBFBD6","#E04372","#E6B953"],["#1E1E3D","#002030","#009FAF","#CB323E","#EA6740","#ECC850","#C4DFDB"],["#0B1626","#2F1517","#4599B5","#A84B28","#B4DDDD","#C4E4A2"],["#200e36","#2B0426","#366290","#E27D52","#D3EAC0","#EDC557","#A8DAB9"]][p]);let t=pC.length-1;for(ii=0;ii<3;ii++)for(i=t-1;i<=t;i++)pC.push(pC[i]);CT.beginPath(),CT.rect(0,0,c.M
width,c.height),CT.fillStyle="#000",CT.fill();let e=[0,0],r=R.rN(1,3);for(let t=0;t<S;t++){let i=iN?r:R.rN(1,4),a=pC[R.rI(0,pC.length-1)],l=R.rI(dim/20,R.rI(dim/20,dim/5));F.push(new B(i,a,l)),e.forEach(((e,r,i)=>i[r]+=F[t].v[r]))}e.forEach(((t,e,r)=>r[e]/=S)),limitVec(e,.4),bV=e}function draw(){if((Tn=Date.now())-Tt>FD){Tt=Tn-Tt%FD,CT.beginPath(),CT.rect(0,0,c.width,c.height),CT.globalAlpha=f>50?1:.05,CT.fillStyle="#000",CT.fill(),CT.globalAlpha=f<0?1:f>50?0:(50-f)/50;for(let t of F)t.edges(),t.update(),t.show();rM
ender(),f--}window.requestAnimationFrame(draw)}function createShader(t,e,r){var i=t.createShader(e);return t.shaderSource(i,r),t.compileShader(i),t.getShaderParameter(i,t.COMPILE_STATUS)?i:t.deleteShader(i)}function createProgram(t,e,r){var i=t.createProgram();return t.attachShader(i,e),t.attachShader(i,r),t.linkProgram(i),t.getProgramParameter(i,t.LINK_STATUS)?i:t.deleteProgram(i)}function setRectangle(t,e,r,i,a){t.bufferData(t.ARRAY_BUFFER,new Float32Array([e,r,e+i,r,e,r+a,e,r+a,e+i,r,e+i,r+a]),t.STATIC_DRAW)}conM
st gl=document.getElementById("canvas").getContext("webgl");canvas.width=dX,canvas.height=dY;const PR=createProgram(gl,createShader(gl,gl.VERTEX_SHADER,vs2),createShader(gl,gl.FRAGMENT_SHADER,fs2)),PL=gl.getAttribLocation(PR,"a_position"),tcL=gl.getAttribLocation(PR,"a_texCoord"),pB=gl.createBuffer(),tcB=gl.createBuffer(),t=gl.createTexture(),rL=gl.getUniformLocation(PR,"u_resolution"),bVL=gl.getUniformLocation(PR,"dl"),tFL=gl.getUniformLocation(PR,"t");function render(){if(!gl)return console.log("WebGL is not avaiM
lable");gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,CT.canvas),gl.useProgram(PR),[PL,tcL].forEach(((t,e)=>{gl.enableVertexAttribArray(t),gl.bindBuffer(gl.ARRAY_BUFFER,[pB,tcB][e]),gl.vertexAttribPointer(t,2,gl.FLOAT,!1,0,0)})),gl.uniform2fv(rL,[gl.canvas.width,gl.canvas.height]),gl.uniform2fv(bVL,bV),gl.uniform1f(tFL,Math.abs(f-60)),gl.drawArrays(gl.TRIANGLES,0,6)}gl.bindBuffer(gl.ARRAY_BUFFER,pB),setRectangle(gl,0,0,c.width,c.height),gl.bindBuffer(gl.ARRAY_BUFFER,tcB),gl.bufferData(gl.ARRAY_BUFFM
ER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),gl.STATIC_DRAW),gl.bindTexture(gl.TEXTURE_2D,t),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST),gl.viewport(0,0,gl.canvas.width,gl.canvas.height),setup(),window.requestAnimationFrame(draw),window.$generativeTraits={Palette:p,Lights:S,Individual:iN},console.M
log(window.$generativeTraits);
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vb26e4fa9e5134444860be286fd8771851679335129114" integrity="sha512-M3hN/6cva/SjwrOtyXeUa5IuCT0sedyfT+jK/OV+s+D0RnzrTfwjwJHhd+wYfMm9HJSrZ1IKksOdddLuN6KOzw==" data-cf-beacon='{"rayId":"7ac3a263287b54b5","version":"2023.3.0","b":1,"token":"6c07c178c94442f695e7a0a2aaee641a","si":100}' crossorigin="anonymous"></script>
text/plain;charset=utf-8
text/plain;charset=utf-8
"The number one threat to cryptocurrency is crypto. Bitcoin could be displaced by Ether, which could be displaced by Doge which could be displaced by HamsterCoin and then there's CobraCoin what could MongooseCoin do to CryptoCoin?" Congressman Brad Shermanh!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"mia.sats"}h!
text/plain;charset=utf-8
text/plain;charset=utf-8
"Indeed, crypto assets to date do not appear to offer investments with any fundamental value, nor do they act as an effective alternative to fiat money, improve financial inclusion, or make payments more efficient; instead, their innovation has been mostly about creating artificial scarcity in order to support crypto assets
and many of them have no fundamental value." Economic Report Of The Presidenth!
Mined by AntPool965K
CjA+:BTC.BTC:maya183frtejj5ay6wg5h5z9nll46z57hh35t3q8ssv:wr:30:TIER1
<j:=:RUNE:thor1tk8nqwyhayesj8xk6n7f805s4xcn5txlzewtas::wr:100
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"chubby.sats"}h!
text/plain;charset=utf-8
text/plain;charset=utf-8
  "name": "btc235.sats",
CjA+:BTC.BTC:maya1w0mwu4hp3l4jgeeqgj6ed469mwzx5he9cr0ve0:wr:30:TIER1
6j4ion:1.QmcTbhTv3WgqsfM5HcS67tKgJUcoGC19z2LTxbV6F8j3MQ
Bj@=:BNB.BNB:bnb1svuv6sck8frj5ea6r5zw30dxgsmj2ymzqmx37s:16001321::0
Bj@=:BNB.BNB:bnb19q95zgcntvnqjnqpughn6n3fs808k7w4rkm86p:22334001::0
text/plain;charset=utf-8
.{"p":"sns","op":"reg","name":"onlygreen.sats"}h!
text/plain;charset=utf-8
&{"p":"sns","op":"reg","name":"1.sats"}h!
FjDOUT:21966276F600574852121D2D9E5AD1584B0BF28A560548816F812787AB030997
FjDOUT:A7F1D7FBB620314C5757ABA2CC3B9A4F20F2E8213CD5FFDEE9471CECB934B041
Aj?=:ETH.ETH:0x07b844CD79018399B53d6C9b920c512f7e7f3516:4335923::0
text/plain;charset=utf-8
*{"p":"sns","op":"reg","name":"kippo.sats"}h!
text/plain;charset=utf-8
*{"p":"sns","op":"reg","name":"paidy.sats"}h!
DjB=:ETH.ETH:0x9D4D9D17661d1Db75dd7Fa0C79DAe2aA359d37A3:76003686:te:0
text/plain;charset=utf-8
  "name": "helloworld.sats",
GjE=:BNB.BTCB-1DE:bnb15837sx60tj3dm9nyptazjc93mdmehlpd3emsn9:462244:te:0
text/plain;charset=utf-8
+{"p":"sns","op":"reg","name":"harman.sats"}h!
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"nri.sats"}h!
0:`thdt(`t(`t(`t(`t(`t(`M
t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t~
 0d478f4fff53e09ac417459042d72484H0E
 faeb088d9713b41a509b9130ea8cb2ccG0D
DjB=:ETH.ETH:0x8d6a5a9b8a2af3f61491e09f173f01b00d57d65f:8085022:ej:50
 337c54a15cb2ce40da1188679258d809G0D
text/plain;charset=utf-8
  "name": "btckt.sats",
FjDOUT:7FFB1C9C81146E608ADB16F3F4D94A6CA0F34461EBC24C17B19A5DDC28499528
Aj?=:ETH.ETH:0xC1FA50470395Eeb657F42532c80d817F1614F84C:4548152::0
DjB=:ETH.ETH:0xf9B7A667586ea91451122F169E3299AC5C44FBd4:1568223806::0
Bj@=:BNB.BNB:bnb1vagx836ezs3szxtg328twxh82cyg2u6raa2k0r:77011425::0
text/plain;charset=utf-8
  "name": "btcbb.sats",
text/plain;charset=utf-8
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>ArboCinematica</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandbox="allow-scripts" type="text/M
javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="allow-scripts" type="text/jaM
vascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <script type="text/javascript">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed ==M
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274M
213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this M
function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
              width: 100%;
              height: 100%;
              margin: 0px;
              padding: 0;
              display: flex;
              justify-content: center;
              align-items: center;
              top: 0;
              bottom: 0;
              left: 0;
              right: 0;
              max-width: 100%;
              max-height: 100%;
              margin: auto;
              overflow: auto;
              object-fit: contain;
              position: fixed;
<script type="text/javascript">
    const rand = mathRand();
    const container = document.createElement("div")
    container.innerM
HTML = "<span>seed: " + seed + "</span><br>";
    console.log(container.innerHTML)
    let t,r,e,i,o=1e9*mathRand();function nRandom(t,r,e,i){return i===Math.floor?void 0!==e?Math.floor(random(r,e)):Math.floor(random(r)):void 0!==e?random(r,e):random(r)}function randomGaussian(t,r){return p5.prototype.randomGaussian(t,r)}function nRandomBoolean(t,r){return mathRand()<r}function random(t,r){return Array.isArray(t)?arrayPick(t):(void 0===r&&(r=void 0===t?1:t,t=0),mathRand()*(r-t)+t)}function roundVector(t){return t.M
x=Math.round(t.x),t.y=Math.round(t.y),t}function constrain(t,r,e){return Math.min(Math.max(t,r),e)}function nArrayPick(t,r,e){return void 0!==e?arrayPick(r,e):arrayPick(r)}function arrayPick(t,r){if(void 0===r){if(0===(r=t.slice()).length)return;t=[];for(let e=0;e<r.length;e++)t[e]=100*(e+1)/r.length}let e=100*random();if(r.length>0&&t.length==r.length){for(var i=[],o=0;o<t.length;o++)i.push({weight:t[o],element:r[o]});i.sort((function(t,r){return t.weight<r.weight?-1:t.weight==r.weight?0:1}));for(let t=0;t<i.lengtM
h;t++){if(t==i.length-1)return i[t].element;if(e<i[t].weight)return i[t].element}}}p5.prototype.randomSeed(o);let a,s,h,n,d,c,l,m,u,p,g,f,M,x,S,b,y,w,V,R,k,v,C,L,z,E,W,F,B,A,D,P,I=700,G=["#e9ecef","#F2F2F0","#f7fff7","#D9C6B0"],T=["#386641","#6a994e","#a7c957","#f2e8cf","#bc4749","#3c1642","#086375","#1dd3b0","#affc41","#b2ff9e"],H=["#A3B4BF","#D8EBF2","#1A3940","#4C6C73","#819FA6","#04301C","#0A572B","#30C771","#F2FFFA","#9EFCFF"],O=["#A0C603","#F2A81D","#734002","#F2985C","#D96A29","#E0FF84","#F2DA50","#D9BA55","M
#8C791B","#595911"],X=["#5A7302","#324001","#86A614","#B6D93B","#022601","#155902","#267302","#82BF26","#BFD962","#E7F2BD"],N=["#F0F0F0","#E3BF0D","#CACACA","#F2CF1D","#F2BD1D","#F28E13","#F24405"],_=["#592918","#8C564A","#8C3F3F","#792938","#AC566A","#AC3F5F"],j=["#2C4001","#364022","#5A7302","#93A603","#736830"],q=["#9CB0D9","#CEDEF2","#667302","#F2EFBD","#F2CA7E"],U=["#BF8756","#59412D","#A68C76","#402A1E","#F2F2F2","#D9843B","#F2CEAE","#BF5517","#8C260F","#590A0A"],Y=["#A60311","#8C0327","#BF046B","#A69B03","#FM
2A766","#730217","#F20544","#BF0436","#D9296A","#344973"],$=["#B07756","#55012D","#A65C66","#301A10","#C2C2B2","#C9542B","#F7BEAE","#CF5827","#7C361F","#790A2A"],J=20,K=[],Q=!0,Z=!0,tt=!0,rt=!0,et=!0,it=0,ot=[],at=[],st=["growth"],ht=0,nt=!0,dt=0,ct=[],lt=300,mt=["#0468BF","#0487D9","#05AFF2","#05C7F2"],ut=[],pt=1,gt=1,ft=.05,Mt=-.04,xt=[],St=!1,bt=!1,yt=[],wt=!1,Vt=!1,Rt=!0,kt=1/32,vt=!1,Ct="normal",Lt=[],zt=!1;const Et={season:nArrayPick("season",[50,75,92,100],["spring","summer","fall","winter"]),fruitsOn:nRandoM
mBoolean("fruit/fruitsOn",.6),maxTrees:nRandom("maxTrees",1,6,Math.floor),backgroundSun:nRandom("background/backgroundSun",0,5,Math.floor),sRadius:nRandom("sun/sRadius",.05,1/12),treeTrunkHeight:nRandom("treeTrunkHeight",.72,.85),treeColor0:nRandom("color/treeColor0",0,$.length-1,Math.floor),treeColor1:nRandom("color/treeColor1",0,U.length-1,Math.floor),leafColor:nRandom("color/leafColor",0,9,Math.floor)};window.$generativeTraits={...Et},console.log(window.$generativeTraits);const Wt={backgroundColor:nArrayPick("baM
ckground/backgroundColor",[25,50,75,100],G),treeRotation_conf:nRandom("treeRotation",Math.PI/10,Math.PI/3+Math.PI/10)*randomSign(),treeMaxFork_conf:nRandom("treeMaxFork",2,5,Math.floor),treeBranchHeight_conf:nRandom("treeBranchHeight",.45,.6),lengthError:nRandom("lengthError",.12,.22),forestMaxLevels:nRandom("maxLevels",5,7,Math.floor),colorSD:nRandom("color/colorSD",.9,3),fruitColor:nRandom("fruit/fruitColor",0,9,Math.floor),fruitLevelMinRange:[nRandom("fruit/fruitLevelMin",[2,3]),nRandom("fruitLevelRange",1,3,MatM
h.floor)],fruitFactor:nRandom("fruit/fruitFactor",2,2.5),fruitRatio:nRandom("fruit/fruitRatio",.5,1),maxFruitProb:nRandom("fruit/maxFruitProb",.6,.93),yzRatio:nRandom("yzRatio",.1,.4),brushRotationFactor:nRandom("brushRotationFactor",.6,1),dColorSD:nRandom("dColorSD",1,3),curvature:nRandom("curvature",.5,3),curveHeight:nRandom("curveHeight",.75,.88),fileNumber:(9999*random()>>0).toString(),highResInnerCanvas:nRandom("walls",[[3500,4e3],[3850,4400],[4200,4800],[4550,5200]]),sColorSD:nRandom("sun/sColorSD",2.5,6),sunM
Pos:[nRandom("sun/X",.2,.8),nRandom("sun/Y",.03,.12)],sunBrushFactor:nRandom("sun/sunBrushFactor",.3,.65),sunBrushes:getRandomArray("sun/SunBrush",2,0,7),gColorSD:nRandom("grass/gColorSD",3,15),maxGVariety:nRandom("grass/maxGVariety",1,4,Math.floor),gCurvature:nRandom("grass/gCurvature",.1,.8),maxGClumps:getRandomArray("grass/maxGClumps",2,1,4),maxGLeaves:nRandom("grass/maxGLeaves",4,7),maxGRange:nRandom("grass/maxGRange",.09,.35),filterSize:nRandom("filterSize",2,4,Math.floor),filterScale:[nRandom("filterScaleX",5M
,8,Math.floor),nRandom("filterScaleY",5,8,Math.floor)],filterAlpha:nRandom("filterAlpha",220,255,Math.floor),maxColorChanges:[nRandom("maxColorChanges0",15,35,Math.floor),nRandom("maxColorChanges1",15,35,Math.floor),nRandom("maxColorChanges2",15,35,Math.floor)],maxSplashWeight:nRandom("maxSplashWeight",7,10,Math.floor),suppressGammaAdjust:nRandomBoolean("suppressGammaAdjust",.35),gammaInv:nRandom("gammaInv",.02,1),triangleFilterMode:nRandomBoolean("triangleFilterMode",.33)};function getRandomArray(t,r,e,i,o){let a,M
s=[],h=void 0!==o;for(let o=0;o<r;o++)a=t+"_"+o,h?s.push(nRandom(a,e,i,h)):s.push(nRandom(a,e,i));return s}function standardizeDegree(t,r){let e=Math.pow(10,r),i=Math.sign(t);return Math.round((i*p5.prototype.fract(t)+t%360)*e)/e}function saveCanvas(e,i,o){vt=!0,Ct="freeze",null==W&&(z=kt*t,W=e.createGraphics(t+2*z>>0,r+2*z>>0),W.noStroke(),W.tint(255,255),W.fill(Wt.backgroundColor),W.rect(0,0,t+2*z>>0,r+2*z>>0),W.tint(255,230),W.image(n,z>>0,z>>0,n.width,n.height),W.noTint(),n.clear(),n.image(W,0,0,n.width,n.heighM
t),Rt&&P.drawFilter(n,p5)),o&&W.get().save(E+"_"+e.hex(i).toString(),"png"),vt=!1}function randomSign(){let t=Math.round(Math.abs(Math.sin(10*random())));return Math.cos(t*Math.PI)}function compare(t,r){return t.zShift>r.zShift?-1:1}var sketch=function(o){o.setup=function(){switch(E="ArboCinematica_"+Wt.fileNumber,t=Wt.highResInnerCanvas[0],r=Wt.highResInnerCanvas[1],e=Math.sqrt(Math.pow(t,2),Math.pow(r,2)),i=2*t+2*r,F=Math.max(Math.min(o.windowWidth,7*o.windowHeight/8>>0),I)>>0,B=8*F/7>>0,h=o.createCanvas(F,B),h.sM
tyle="",h.style.opacity="",h.style.filter="",h.style["-ms-filter"]="",h.id("ArboCinematica"),n=o.createGraphics(t,r),v=Wt.forestMaxLevels,o.frameRate(1),n.noStroke(),Et.season){case"winter":a=H,s=q;break;case"spring":a=X,s=j;break;case"fall":a=O,s=q;break;default:a=T,s=j}L=Et.fruitsOn,l="Ellipse",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],K.push(new Bt(l,m,u,p,g,d)),l="Ellipse",m=.5,u=.3*Wt.brushRotationFactor,p=!1,g=[random($)],K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,M
p=!1,g=[random($)],d=function(t,r,e){return Math.sin(2*t+r/10)},K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.cos(t)},K.push(new Bt(l,m,u,p,g,d)),o.noiseSeed(random()),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return o.noise(t+r/10)},K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.cos(e/10-Math.PI)},K.push(new Bt(M
l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.abs(Math.sin(t+r/10))},K.push(new Bt(l,m,u,p,g,d)),l="SplashRV",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],c=.1,d=function(t,r,e,i){return Math.sin(2*t+r/10)+randomGaussian(0,c)},K.push(new Bt(l,m,u,p,g,d,c)),l="RSphere",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($),random($)],d=function(){return[1-random(random(random())),random()]},K.push(new Bt(l,m,u,p,g,d)),l="RLSphere",m=.1,u=.1*Wt.bruM
shRotationFactor,p=!1,g=[random($),random($)],d=function(){return[1-random(random(random())),random()]},K.push(new Bt(l,m,u,p,g,d));let M=J,W=.5*J>>0,A=0,G=7,U=.05,Y=.3;if(ot.push(new Ft(M,W,A,G,U,Y)),M=J,W=.5*J>>0,A=0,G=7,U=.015,Y=.1,ot.push(new Ft(M,W,A,G,U,Y)),at[0]=[function(t){return Math.sin(Math.sin(1+.9*Math.sin(t+Math.PI)))},1],at[1]=[function(t){return 2*Math.cos(4*t)},1],at[2]=[function(t){return Math.exp(Math.cos(t))-.9*Math.cos(4*t)+Math.sin(t/12)^5},12],Z){n.angleMode(o.DEGREES),S=t/3.5>>0,b=.7*t+MathM
.sqrt(t*r)*random(),y=10+random(10)>>0,ut=[mt[random()*mt.length>>0],mt[random()*mt.length>>0]];let e=K[random(0,7)>>0],i=[new Bt(e.type,e.widthError,e.rotationError,e.strokeOn,ut,e.function,e.sd,1)];w=Wt.dColorSD;for(let r=0;r<1;r++)V=5+10*random()>>0,gt=t/700>>0,x=t/700+10*t/700>>0,k=t/100+random(t/300)>>0,R=standardizeDegree(random(360),5),xt.push(new It(pt,V,gt,x,R,S,b,y,ft,Mt,k,i));n.angleMode(o.RADIANS)}if(tt){n.angleMode(o.DEGREES),S=.65*t>>0,b=random(.8,1)*t>>0,y=4+random(4)>>0;let e=[random(_),random(_)],iM
=K[random(0,7)>>0],a=[];a.push(new Bt(i.type,i.widthError,i.rotationError,i.strokeOn,e,i.function,i.sd,1));let s=[random(_),random(_)];i=K[random(0,7)>>0],a.push(new Bt(i.type,i.widthError,i.rotationError,i.strokeOn,s,i.function,i.sd,1)),w=Wt.dColorSD,R=0;let h=Wt.curvature,d=Wt.curveHeight*r>>0;for(let r=0;r<1;r++)V=10+10*random()>>0,gt=t/150+random(t/100)>>0,x=gt+random(t/100)>>0,k=t/2e3+random(t/2e3)>>0,yt.push(new Tt(pt,V,gt,x,R,S,b,y,ft,Mt,k,a,h,d));n.angleMode(o.RADIANS)}if(et){n.angleMode(o.DEGREES);for(let M
r=0;r<Wt.maxGVariety;r++){let r;S=.09*t>>0,b=random(.15,.2)*t>>0,y=1;let e=[random(s),random(s)],i=Wt.gColorSD,a=random(0,7)>>0;r=5==a?K[random(0,5)>>0]:K[a];let h=[];h.push(new Bt(r.type,r.widthError,r.rotationError,r.strokeOn,e,r.function,i,1));let n=[random(s),random(s)];a=random(0,7)>>0,r=5==a?K[random(0,5)>>0]:K[a],h.push(new Bt(r.type,r.widthError,r.rotationError,r.strokeOn,n,r.function,i,1)),R=0;let d=Wt.gCurvature;V=15+15*random()>>0,pt=8,gt=t/700+random(t/700)>>0,x=gt+random(t/750)>>0,k=t/2e3+random(t/2e3)M
>>0;let c=o.createVector(0,0),l=0,m=.1;Lt.push(new Ht(pt,V,gt,x,R,S,b,y,ft,m,k,h,d,c,l))}n.angleMode(o.RADIANS)}if(rt){n.angleMode(o.DEGREES),S=.65*t>>0,b=random(.8,1)*t>>0,y=3;let e=Wt.sColorSD,i=[random(N),random(N)],a=K[Wt.sunBrushes[0]>>0],s=[];s.push(new Bt(a.type,a.widthError,a.rotationError,a.strokeOn,i,a.function,e,1));let h=[random(N),random(N)];a=Wt.sunBrushes[1]>>0==5?K[random(4)>>0]:K[Wt.sunBrushes[1]>>0],s.push(new Bt(a.type,a.widthError,a.rotationError,a.strokeOn,h,a.function,e,1));let d=0,c=Et.sRadiuM
s*t,l=o.createVector(Wt.sunPos[0]*t,Wt.sunPos[1]*r),m=Wt.sunBrushFactor;V=10+10*random()>>0,gt=t/150+random(t/100)>>0,x=gt+random(t/100)>>0,k=t/2e3+random(t/2e3)>>0,D=new Gt(pt,V,gt,x,d,S,b,y,ft,Mt,k,s,c,l,m),n.angleMode(o.RADIANS)}if(Q){ct.push(new Pt(t/20>>0,o.color("#c6d4ff"))),ct.push(new Pt(t/20>>0,o.color("#fffafb"))),ct[0].color.setAlpha(120),ct[1].color.setAlpha(130);let e=t/30>>0,i=t/900>>0,a=t/500>>0,s=st[0],h=Et.maxTrees,n=.12,d=Wt.lengthError;C=Wt.colorSD,f=new At(h,t,r,n,d,a,s,i,e,(function(t,r){returnM
-.5+Math.sin(t.x+1+r%1e4)}),(function(t,r){return constrain(t,0,1)}),(function(t,r){return constrain(t,0,2)}),null,0),f.setupTrees(o)}Rt&&(P=new Ot(Wt.filterSize,Wt.filterScale,Wt.filterAlpha,Wt.maxColorChanges,Wt.gammaInv,z,Wt.triangleFilterMode,o)),n.background(N[Et.backgroundSun]),o.background(N[Et.backgroundSun])},o.draw=function(){"normal"===Ct?(o.clear(),o.image(n,0,0,F,B),!St&&Z&&(n.angleMode(o.DEGREES),xt[0].draw(n,o),xt[0].currentLevel++,xt[0].currentLevel>xt[0].iterations/2&&(St=!0),n.angleMode(o.RADIANS)M
),St&&!wt&&rt&&(n.angleMode(o.DEGREES),D.draw(n,o),D.currentLevel++,D.currentLevel>=D.iterations&&(wt=!0),n.angleMode(o.RADIANS)),St&&!bt&&tt&&(n.angleMode(o.DEGREES),yt[0].draw(n,o),yt[0].currentLevel++,yt[0].currentLevel>yt[0].iterations/2&&(bt=!0),n.angleMode(o.RADIANS)),bt&&Q&&f.currentLevel<v&&(ct[0].animateComet(),ct[1].animateComet(),f.animateAllTrees(),f.drawAllTrees(n,o),f.currentLevel++,n.tint(255,255)),it++,0==Vt&&f.currentLevel>=v&&(Vt=!0,o.image(n,0,0,F,B),Ct="freeze",saveCanvas(o,it,!1))):zt||(o.imageM
(n,0,0,F,B),zt=!0)},o.windowResized=function(){o.noLoop(),F=Math.max(Math.min(o.windowWidth,7*o.windowHeight/8>>0),I)>>0,B=8*F/7>>0,o.clear(),o.resizeCanvas(F,B),o.image(n,0,0,F,B),Ct&&(zt=!0),o.loop()},o.keyPressed=function(){return"s"!==o.key||vt?"e"!==o.key||vt?void 0:(A=o.get(),o.save(A,E+".png"),!1):(saveCanvas(o,it,!0),!1)}};class Ft{constructor(t,r,e,i,o,a){this.startWidth=t,this.endWidth=r,this.rotation=e,this.minWidth=i,this.SWRatio=o,this.stepSpeed=a}}class Bt{constructor(t,r,e,i,o,a,s,h){this.type=t,thisM
.rotationError=e,this.widthError=r,this.strokeOn=i,this.color=o[0],this.function=a,this.sd=s,this.color1,this.colorSD=void 0===h?0:h,o.length>1&&(this.color1=o[1])}gaussianColor(t,r,e){if(null==t)return;if(0==this.colorSD)return t;let i=constrain(randomGaussian(r.red(r.color(t)),this.colorSD)>>0,0,255)>>0,o=constrain(randomGaussian(r.green(r.color(t)),this.colorSD)>>0,0,255)>>0,a=constrain(randomGaussian(r.blue(r.color(t)),this.colorSD)>>0,0,255)>>0;return r.color(i,o,a)}drawShape(r,e,i,o,a,s){let h,n,d,c,l,m,u,p,gM
,f,M,x,S=e*(1+this.widthError*Math.sin(41*o+9)),b=i+random(this.rotationError);switch(null!=this.color&&(M=this.gaussianColor(this.color,a,s)),null!=this.color1&&(x=this.gaussianColor(this.color1,a,s)),this.type){case"Ellipse":a.fill(M),this.strokeOn||a.noStroke(),h=e*(.9+.1*Math.sin(5*o+18))*(1+this.widthError*Math.sin(2.5*o+18)),a.push(),a.rotate(b),a.ellipse(r.x>>0,r.y>>0,S>>0,h>>0),a.pop();break;case"SplashRadial":a.fill(M),this.strokeOn||a.noStroke(),a.push(),a.rotate(b),a.beginShape();for(let t=0;t<50;t++){leM
t i=p5.prototype.map(t,0,50,0,2*Math.PI),s=e/2+e/2*this.function(i,it,o),h=r.x+s*Math.cos(i),n=r.y+s*Math.sin(i);a.vertex(h,n)}a.endShape(p5.CLOSE),a.pop();break;case"SplashRV":a.fill(M),this.strokeOn||a.noStroke(),a.push(),a.rotate(b),a.beginShape();for(let t=0;t<50;t++){let i=p5.prototype.map(t,0,50,0,2*Math.PI),s=e/2+e/2*this.function(i,it+o,this.sd),h=r.x+s*Math.cos(i),n=r.y+s*Math.sin(i);a.vertex(h,n)}a.endShape(p5.CLOSE),a.pop();break;case"RSphere":n=e/2>>0,d=constrain(Math.pow(e/2,2)*Math.PI/100,50,5e3),c=MaM
th.max(t/800>>0,1),this.strokeOn||a.noStroke(),a.push();for(let t=0;t<d;t++)l=p5.prototype.map(t,0,d,0,2*Math.PI,!0),m=this.function(),u=r.x+Math.cos(l)*m[0]*n,p=r.y+Math.sin(l)*m[0]*n,g=r.x+Math.cos(l)*m[1]*n,f=r.y+Math.sin(l)*m[1]*n,a.fill(M),a.ellipse(u>>0,p>>0,2*c>>0,2*c>>0),a.fill(x),a.ellipse(g>>0,f>>0,2*c>>0,2*c>>0);a.pop();break;case"RLSphere":let i=[];n=e/2>>0,d=constrain(Math.pow(e/2,2)*Math.PI/100,100,200),c=Math.max(t/1e3>>0,1),this.strokeOn||a.noStroke(),a.push();for(let t=0;t<d;t++)l=p5.prototype.map(M
t,0,d,0,2*Math.PI,!0),m=this.function(),u=r.x+Math.cos(l)*m[0]*n,p=r.y+Math.sin(l)*m[0]*n,g=r.x+Math.cos(l)*m[1]*n,f=r.y+Math.sin(l)*m[1]*n,i.push(p5.prototype.createVector(g,f)),a.fill(random([M,x])),a.ellipse(u>>0,p>>0,2*c>>0,2*c>>0);a.fill(x);for(let t=0;t<d;t++){let r=i[t].x,e=i[t].y;a.ellipse(r>>0,e>>0,2*c>>0,2*c>>0)}a.pop();break;default:return!1}}drawLine(r,i,o,a,s,h,n,d,c,l){let m=r,u=o,p=p5.Vector.add(i,p5.Vector.mult(r,-1)),g=p5.Vector.normalize(p),f=p.mag(),M=Math.max(u*n,1),x=f/M,S=0,b=0;for(;m.dist(i)>M
M&&S<e+t/100&&m.dist(r)<=f+t/100;)this.drawShape(m,u,s,S>>0,c,l),S+=d,m.add(p5.Vector.mult(g,M)),b+=1/x,u=Math.max(p5.prototype.lerp(o,a,b),h),M=Math.min(u*n,e/50),x=f/M}drawVertexShape(t,r,e,i,o,a,s,h){for(let n=0;n<t.length;n++)this.drawLine(t[n][0],t[n][1],r,r,e,i,o,a,s,h)}drawBezier(r,o,a,s,h,n,d,c,l,m,u,p){let g=roundVector(r.copy()),f=h,M=r.dist(o)+o.dist(a)+a.dist(s),x=Math.max(f*l,1),S=M/x,b=0,y=0;for(;g.dist(s)>x&&b<4*i&&g.dist(r)<=M+t/2;)this.drawShape(g,f,d,b>>0,u,p),b+=m,f=Math.max(p5.prototype.lerp(h,nM
,y),c),x=Math.min(f*l,e/50),S=M/x,y+=1/S,g.x=p5.prototype.bezierPoint(r.x,o.x,a.x,s.x,y),g.y=p5.prototype.bezierPoint(r.y,o.y,a.y,s.y,y)}drawBezierShape(t,r,e,i,o,a,s,h){for(let n=0;n<t.length;n++)this.drawBezier(t[n][0],t[n][1],t[n][2],t[n][3],r,r,e,i,o,a,s,h)}drawPoly(t,r,e,i,o,a,s,h,n,d,c,l){let m,u,p,g=[],f=[],M=[];if("bezier"==o){m=4,u=Math.max(m,e)>>0,u=4*Math.round(u/4),p=2*Math.PI/u/4;for(let t=0;t<4*u;t+=4)M[0]=p5.prototype.createVector(r*Math.cos(t*p),r*Math.sin(t*p)),M[1]=p5.prototype.createVector(r*MathM
.cos((t+1)*p),r*Math.sin((t+1)*p)),M[2]=p5.prototype.createVector(r*Math.cos((t+2)*p),r*Math.sin((t+2)*p)),M[3]=p5.prototype.createVector(r*Math.cos((t+3)*p),r*Math.sin((t+3)*p)),g.push([M[0].copy(),M[1].copy(),M[2].copy(),M[3].copy()]);c.push(),c.translate(t.x>>0,t.y>>0),c.rotate(i),this.drawBezierShape(g,a,s,h,n,d,c,l),c.pop()}else{m=3,u=Math.max(m,e)>>0,p=2*Math.PI/u;for(let t=0;t<u;t++)f[0]=p5.prototype.createVector(r*Math.cos(p*t),r*Math.sin(p*t)),f[1]=p5.prototype.createVector(r*Math.cos(p*(t+1)),r*Math.sin(pM
*(t+1))),g.push([f[0].copy(),f[1].copy()]);c.push(),c.translate(t.x>>0,t.y>>0),c.rotate(i),this.drawVertexShape(g,a,s,h,n,d,c,l),c.pop()}}drawRect(e,i,o,a,s,h,n,d,c,l,m,u,p){let g,f,M,x,S,b,y=i,w=o,V=[],R=4,k=[],v=[],C=Math.sqrt(Math.pow(y,2)+Math.pow(w,2)),L=Math.atan(w/y),z=Math.PI/2-L,E=[],W=1/l*10>>0;if("bezier"==s){g=4,R=Math.max(g,4)>>0,R=4*Math.round(R/4),f=2*Math.PI/R/4;for(let t=0;t<4*R;t+=4)t%8==0?(E[0]=L,E[1]=z):(E[0]=z,E[1]=L),v[0]=p5.prototype.createVector(C/2*Math.cos(t*f-E[0]),C/2*Math.sin(t*f-E[0]))M
,v[1]=p5.prototype.createVector(0,0),v[2]=p5.prototype.createVector(0,0),v[3]=p5.prototype.createVector(C/2*Math.cos((t+3)*f-E[1]),C/2*Math.sin((t+3)*f-E[1])),x=v[3].sub(v[0]).heading(),M=p5.Vector.fromAngle(x).normalize(),S=v[3].dist(v[0]),v[1]=p5.Vector.add(p5.Vector.mult(M,S/2),v[0]).copy(),v[2]=p5.Vector.add(p5.Vector.mult(M,S/2),v[2]).copy(),V.push([v[0].copy(),v[1].copy(),v[2].copy(),v[3].copy()]);u.push(),u.translate(e.x>>0,e.y>>0),u.rotate(a),this.drawBezierShape(V,h,n,d,c,l,u,p),u.pop(),m&&i-i/10>t/30&&o-oM
/10>r/30&&(b=[i-i/W,o-o/W],this.drawRect(e,b[0],b[1],a,s,h,n,d,c,l,m,u,p))}else{g=3,R=4,f=2*Math.PI/R;for(let t=0;t<R;t++)t%2==0?(E[0]=L,E[1]=z):(E[0]=z,E[1]=L),k[0]=p5.prototype.createVector(C/2*Math.cos(t*f-E[0]),C/2*Math.sin(t*f-E[0])),k[1]=p5.prototype.createVector(C/2*Math.cos((t+1)*f-E[1]),C/2*Math.sin((t+1)*f-E[1])),V.push([k[0].copy(),k[1].copy()]);u.push(),u.translate(e.x>>0,e.y>>0),u.rotate(a),this.drawVertexShape(V,h,n,d,c,l,u,p),u.pop(),m&&i-i/20>t/30&&o-o/20>r/30&&(b=[i-i/W,o-o/W],this.drawRect(e,b[0],M
b[1],a,s,h,n,d,c,l,m,u,p))}}}class At{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u){this.maxTrees=t,this.width=r,this.height=e,this.rotationError=i,this.lengthError=o,this.stepDistance=a,this.mode=s,this.minWidth=h,this.minLength=n,this.trees=[],this.aLambda=d,this.bLambda=c,this.cLambda=l,this.bubbles=m,this.index=u,this.lightsOn=!1,this.gCenter=p5.prototype.createVector(r/2>>0,e/2>>0),this.currentLevel=0,this.minGround}static transformLocalToGlobal(r,e){let i=p5.prototype.createVector(0,e.y);if(0===r)i.x=e.x>>0;else iM
.x=e.x+getScreenXPosition(t,r,!1)>>0;return i}reassignIndex(t,r){t.index=r;for(let e=0;e<t.branches.length;e++)this.reassignIndex(t.branches[e],r)}sortTrees(){this.trees.sort(compare);for(let t=0;t<this.trees.length;t++)this.reassignIndex(this.trees[t],t)}setupTrees(e){let i,o,s,h=p5.prototype.createVector(0,0),n=Wt.treeRotation_conf*random(.9,1.1),d=Et.treeTrunkHeight*r,c=Wt.treeBranchHeight_conf,l=Wt.treeMaxFork_conf,m=[],u=[],p=d*random(.08,.12),g=d*random(.25,.33),f=random(Wt.fruitLevelMinRange[0],Wt.fruitLevelM
MinRange[0]+Wt.fruitLevelMinRange[1])>>0,M=Wt.fruitFactor*random(.8,1.2),x=0,S=Wt.fruitRatio*random(.8,1.2);for(let b=0;b<this.maxTrees;b++){if("growth"===this.mode)u[0]=e.color($[Et.treeColor0]),u[1]=e.color(U[Et.treeColor1]),u[2]=e.color(a[Et.leafColor]),u[3]=1==L?e.color(Y[Wt.fruitColor]):null,h.x=t*(.2+.6*random())>>0,h.y=r*(1.1-.2*random())>>0;i=Wt.yzRatio*(r-h.y),d=r*(.3+random(.1))>>0,o=d*(.2+random(.1))>>0,s=.6+random(.2),l=2+random(1)>>0,K[0].color=u[0],K[1].color=u[1],m=[];let b=random(K),y=[];y[0]=new BtM
(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),b=random(K),y[1]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),b=random(K),y[2]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),m.push(y[0]),m.push(y[1]),m.push(y[2]),1==L&&(b=random(K),y[3]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),m.push(y[3]),x=Wt.maxFruitProM
b*random(.7,1));for(let t=0;t<m.length;t++)m[t].color=u[t],m[t].colorSD=C;this.trees.push(new Dt(h.copy(),n,i,d,o,c,s,l,this.minLength,this.minWidth,this.rotationError,this.lengthError,m,this.stepDistance,0,this.mode,p,g,f,M,x,S,this.index))}this.sortTrees()}drawAllTrees(t,r){for(let e=0;e<this.maxTrees;e++)ht=0,this.trees[e].drawTree(this.currentLevel,t,r)}getForceB(){let t=this.gCenter,r=p5.Vector.dist(t,ct[1].location);return Math.min(ct[1].charge/Math.pow(r,2),1)}animateAllTrees(){if("growth"==this.mode&&!nt)reM
turn!1;for(let t=0;t<this.maxTrees;t++)this.trees[t].a=this.aLambda(this.trees[t].location,100+dt),this.trees[t].b=this.bLambda(this.trees[t].getForceA(),100+dt),this.trees[t].c=this.cLambda(this.trees[t].getForceB(),100+dt),this.trees[t].updateA(this.mode),this.trees[t].updateB(this.mode),this.trees[t].updateC(this.mode);it%30==0&&this.getForceB()>t/1e8/2?this.lightsOn=!0:it%30==0&&(this.lightsOn=!1)}}class Dt{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p,g,f,x,S,b,y,w,V){this.location=t,this.rotation=r,this.zShift=e,M
this.trunkHeight=i,this.bTrunkHeight=this.trunkHeight,this.trunkWidth=o,this.branchHeight=a,this.branchWidth=s,this.branchLocation=p5.prototype.createVector(0,-this.bTrunkHeight>>0),this.dynamicLeafLength=f,this.dynamicLeafCutoff=x,this.maxFork=h,this.bMaxFork=this.maxFork,this.minLength=n,this.minWidth=d,this.rotationError=c,this.bRotationError=this.rotationError,this.lengthError=l,this.bLengthError=this.lengthError,this.stepDistance=u,this.level=p,this.mode,this.brushes=m,this.bColors=[this.brushes[0].color,this.M
brushes[1].color,this.brushes[2].color],this.maxLeaves=random(3)>>0,this.tError=random()*Math.PI/40,this.a=0,this.b=0,this.c=0,this.fruitStart=S,this.fruitFactor=b,this.fruitProbability=y,this.fruitRatio=w,this.index=V,0==this.level?M=1:this.level>M&&(M=this.level),this.branches=this.generateBranches()}getMinGrassHeight(){return 0==this.index?f.minGround:this.index>0?f.trees[this.index-1].location.y:void 0}getForceA(){let r;r=this.location;let e=p5.Vector.dist(r,ct[0].location);return Math.min(ct[0].charge/Math.powM
(e,2)*1e8/t,1)}getForceB(){let r;r=this.location;let e=p5.Vector.dist(r,ct[1].location);return Math.min(ct[1].charge/Math.pow(e,2)*1e8/t,1)}updateA(t){if("growth"!==t)return!1;this.rotationError=this.bRotationError*(3+this.a),this.lengthError=this.bLengthError*(1+this.a)}updateB(t){if("growth"!==t)return!1;this.trunkHeight=this.bTrunkHeight*(.9+.1*this.b),this.maxFork=Math.max(this.maxFork*(.95+.05*this.b),2),this.branches=[],this.branches=this.generateBranches()}updateC(t){if("growth"!==t)return!1;this.brushes[0].M
color.setRed(constrain(p5.prototype.red(this.bColors[0])+14*this.c>>0,0,255)),this.brushes[0].color.setGreen(constrain(p5.prototype.green(this.bColors[0])+14*this.c>>0,0,210)),this.brushes[0].color.setBlue(constrain(p5.prototype.blue(this.bColors[0])+14*this.c>>0,0,210)),null!=this.brushes[1].color&&(this.brushes[1].color.setRed(constrain(p5.prototype.red(this.bColors[1])+14*this.c>>0,0,200)),this.brushes[1].color.setGreen(constrain(p5.prototype.green(this.bColors[1])+14*this.c>>0,0,180)),this.brushes[1].color.setBM
lue(constrain(p5.prototype.blue(this.bColors[1])+14*this.c>>0,0,180))),null!=this.brushes[2].color&&(this.brushes[2].color.setRed(constrain(p5.prototype.red(this.bColors[2])+14*this.c>>0,0,200)),this.brushes[2].color.setGreen(constrain(p5.prototype.green(this.bColors[2])+14*this.c>>0,0,180)),this.brushes[2].color.setBlue(constrain(p5.prototype.blue(this.bColors[2])+14*this.c>>0,0,180)))}sortBranches(){this.branches.sort(compare)}generateBranches(){let t,r,e=this.branchHeight*this.trunkHeight,i=this.branchWidth*thisM
.trunkWidth,o=(-20+random(10))*this.branchHeight,a=[],s=p5.prototype.createVector(0,-this.bTrunkHeight),h=Math.round(Math.sin(ht+10*random()));for(;e>this.minLength&&i>this.minWidth&&a.length<1+this.maxFork*random()&&this.level<v;)t=2*this.rotation*Math.sin(Math.PI/2*(2*h+1+2*a.length))*Math.floor(1+a.length/2)*(1+random(this.rotationError)),r=e*(1+this.lengthError*random()),a.push(new Dt(s,t,o,r,i,this.branchHeight,this.branchWidth,this.maxFork,this.minLength,this.minWidth,this.rotationError,this.lengthError,this.M
brushes,this.stepDistance,this.level+1,this.mode,this.dynamicLeafLength,this.dynamicLeafCutoff,this.fruitStart,this.fruitFactor,this.fruitProbability,this.fruitRatio,this.index));return a}drawTree(e,i,o){if(i.push(),this.level>0){if(i.rotate(.25*this.rotation*Math.sin(5*this.level+10*this.index+100*this.branches.length+150*this.rotation+200*this.zShift)),this.level==e){i.stroke("ivory"),i.strokeWeight(20),i.noStroke();let r,e,a=p5.prototype.createVector(0,0),s=this.location,h=Math.max(this.trunkWidth,this.minWidth)M
,n=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),d=Math.sin(21*ht)*this.rotation*1.3,c=this.minWidth,l=ot[0].SWRatio,m=ot[0].stepSpeed,u=[];if(u[0]=roundVector(a),r=p5.Vector.lerp(a,s,.33333),e=r.mag(),r.add(p5.prototype.createVector(e*random(-this.bLengthError,this.bLengthError),e*random(-this.bLengthError,this.bLengthError))),u[1]=roundVector(r),r=p5.Vector.lerp(a,s,.66666),e=r.mag(),r.add(p5.prototype.createVector(e*random(-this.bLengthError,this.bLengthError),e*random(-this.bLengthError,this.bLengthEM
rror))),u[2]=roundVector(r),u[3]=roundVector(s),this.brushes[0].drawBezier(u[0],u[1],u[2],u[3],h,n,d,c,l,m,i,o),h=Math.max(.8*this.trunkWidth,2*this.minWidth),n=Math.max(this.branchWidth*this.trunkWidth*.8,2*this.minWidth),this.brushes[1].drawBezier(u[0],u[1],u[2],u[3],h,n,d,c,l,m,i,o),this.trunkHeight<Math.max(this.dynamicLeafCutoff,2*this.minWidth)&&this.trunkHeight>0){let r,e,a,s,h,n,d,c,l,m,u,p=ot[0].rotation,g=ot[0].SWRatio,f=ot[0].minWidth,M=ot[0].stepSpeed,x=Math.max(20,t/80);for(let t=0;t<this.maxLeaves;t++M
){u=2*Math.PI/this.maxLeaves*t+random()*this.tError,r=[this.dynamicLeafLength/4-random()*this.dynamicLeafLength/2>>0,1.05*-this.dynamicLeafLength+this.dynamicLeafLength*random()*.1>>0],m=this.dynamicLeafLength/(1+4*random()>>0),e=[m>>0,m*Math.sin(u)>>0],h=[1/6-random()/3*this.dynamicLeafLength,1/6-random()/3*this.dynamicLeafLength],n=[1/6-random()/3*this.dynamicLeafLength,1/6-random()/3*this.dynamicLeafLength],a=[(m+this.dynamicLeafLength)*Math.cos(u)/3+h[0]>>0,(m+this.dynamicLeafLength)*Math.sin(u)/3+h[1]>>0],s=[2M
*(m+this.dynamicLeafLength)*Math.cos(u)/3+n[0]>>0,(2*m+this.dynamicLeafLength)*Math.sin(u)/3+n[1]>>0],d=[(m+this.dynamicLeafLength)*Math.cos(u)>>0,(m+this.dynamicLeafLength)*Math.sin(u)>>0],c=[(m+this.dynamicLeafLength)*Math.cos(u)/3-h[0]>>0,(m+this.dynamicLeafLength)*Math.sin(u)/3-h[1]>>0],l=[2*(m+this.dynamicLeafLength)*Math.cos(u)/3-n[0]>>0,(2*m+this.dynamicLeafLength)*Math.sin(u)/3-n[1]>>0],i.push();let S=[];i.translate((e[0]+d[0])/2>>0,(e[1]+d[1])/2>>0),S[0]=roundVector(p5.prototype.createVector(0,0)),S[1]=rouM
ndVector(p5.prototype.createVector(a[0],a[1])),S[2]=roundVector(p5.prototype.createVector(s[0],s[1])),S[3]=roundVector(p5.prototype.createVector(d[0],d[1])),this.brushes[2].drawBezier(S[0],S[1],S[2],S[3],x,.8*x>>0,p,f,g,M,i,p5),S[0]=roundVector(p5.prototype.createVector(0,0)),S[1]=roundVector(p5.prototype.createVector(c[0],c[1])),S[2]=roundVector(p5.prototype.createVector(l[0],l[1])),S[3]=roundVector(p5.prototype.createVector(d[0],d[1])),this.brushes[2].drawBezier(S[0],S[1],S[2],S[3],x,.8*x>>0,p,f,g,M,i,p5),i.noStrM
oke(),i.tint(255,10),i.fill(this.brushes[2].color),i.beginShape(),i.curveVertex(0,0),i.curveVertex(a[0],a[1]),i.curveVertex(s[0],s[1]),i.curveVertex(d[0],d[1]),i.curveVertex(l[0],l[1]),i.curveVertex(c[0],c[1]),i.endShape(o.CLOSE),i.tint(255,255),i.pop()}if("undefined"!=this.brushes[3]&&null!=this.brushes[3]&&this.level>=this.fruitStart){let r=p5.prototype.createVector(0,0),e=t/50*this.fruitRatio>>0,a=random(5,8)>>0,s=0,h="bezier",n=Math.max(.2*this.minWidth,t/100);i.push(),i.translate(random(-2*e,2*e)>>0,random(0,4M
*e)>>0),this.brushes[3].drawPoly(r,e,a,s,h,n,ot[0].rotation,e*this.fruitFactor>>0,ot[0].SWRatio,ot[0].stepSpeed,i,o),i.pop()}}}}else if(0==this.level){if(i.translate(this.location.x>>0,this.location.y>>0),et&&this.level==e){let r;for(let e=0;e<Wt.maxGClumps[0];e++)r=random(Lt),r.range=Wt.maxGRange*random(.8,1.2)*t,r.position=o.createVector(constrain(random(-1,1)*r.range>>0,-this.location.x,t-this.location.x),random(0,-(this.location.y+3*this.minWidth-this.getMinGrassHeight()))>>0),r.draw(i,o)}if(i.rotate(.25*this.rM
otation*Math.sin(5*this.level+10*this.index+100*this.branches.length+150*this.rotation+200*this.zShift)),this.level==e){let e=p5.prototype.createVector(0,0),a=this.branchLocation,s=Math.max(this.trunkWidth,this.minWidth),h=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),n=Math.sin(15*ht+25*this.index)*this.rotation*1.3,d=this.minWidth,c=ot[0].SWRatio,l=ot[0].stepSpeed;if(this.brushes[1].drawLine(e,a,s,h,n,d,c,l,i,o),s=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),h=Math.max(this.branchWidth*thisM
.branchWidth*this.trunkWidth,this.minWidth),n=Math.sin(34*ht)*this.rotation*1.3,this.brushes[0].drawLine(p5.prototype.createVector(0,0),a,s,h,n,d,c,l,i,o),s=Math.max(this.branchWidth*this.trunkWidth*.5,3*this.minWidth),h=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),this.brushes[1].drawLine(p5.prototype.createVector(0,0),a,s,h,n,d,c,l,i,o),et&&this.location.y<1.1*r){let e;for(let a=0;a<Wt.maxGClumps[1];a++)e=random(Lt),e.range=Wt.maxGRange*random(.1,.35)*t,e.position=o.createVector(constM
rain(random(-1,1)*e.range>>0,-this.location.x,t-this.location.x),random(0,r-this.location.y+3*this.minWidth)>>0),e.draw(i,o)}}}if(ht++,this.level>0&&this.level==e){p5.prototype.createVector(0,0);let t=this.branchLocation,r=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),e=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),a=Math.sin(34*ht)*this.rotation*1.3,s=this.minWidth,h=ot[0].SWRatio,n=ot[0].stepSpeed;this.brushes[0].drawLine(p5.prototype.createVector(0,0),t,r,e,a,s,h,n,i,o),r=MM
ath.max(this.branchWidth*this.trunkWidth*.5,3*this.minWidth),e=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),this.brushes[1].drawLine(p5.prototype.createVector(0,0),t,r,e,a,s,h,n,i,o)}if(0==this.level&&this.branches.length>0&&this.level<e){this.sortBranches();for(let t=0;t<this.branches.length;t++)i.push(),i.translate(this.branchLocation.x>>0,this.branchLocation.y>>0),this.branches[t].drawTree(e,i,o),i.pop()}else if(this.level>0&&this.branches.length>0&&this.level<e){this.sortBranches();M
for(let t=0;t<this.branches.length;t++)i.push(),i.translate(this.branchLocation.x>>0,this.branchLocation.y>>0),this.branches[t].drawTree(e,i,o),i.pop()}i.pop()}}class Pt{constructor(e,i){this.x0=-t/15+random(t/7)>>0,this.aP=r/(2.2*Math.pow(t/2,2))+random(.01),this.cP=1/8*r*random(),this.location=p5.prototype.createVector(this.x0,this.fx(this.x0)),this.bLocation=this.location,this.bLocation.x=this.location.x,this.bLocation.y=this.location.y,this.width=e,this.color=i,this.charge=.6+random(.4),this.nextPoint=p5.prototM
ype.createVector(this.location.x+1>>0,this.fx(this.location.x+1)>>0),this.unitVector=this.getUnitVector()}fx(r){return this.aP*Math.pow(r-t/2,2)+this.cP}getUnitVector(){let t=p5.Vector.mult(this.location,-1),r=p5.Vector.add(this.nextPoint,t);return p5.Vector.normalize(r)}animateComet(){let r=t/lt;this.location.x+=r,this.location.y=this.fx(this.location.x),this.nextPoint=p5.prototype.createVector(this.location.x+1,this.fx(this.location.x+1)),this.unitVector=this.getUnitVector()}}class It{constructor(t,r,e,i,o,a,s,h,M
n,d,c,l){this.minStrokes=t,this.maxStrokes=r,this.minStrokeWeight=e,this.maxStrokeWeight=i,this.rotation=o,this.minSize=a,this.maxSize=s,this.iterations=h,this.sizeError=n,this.angleError=d,this.padding=c,this.brushes=l,this.currentLevel=0}draw(e,i){let o,a,s,h=this.minSize+random()*this.maxSize,n=(this.maxSize-this.minSize)/16,d=standardizeDegree((2*random()-1)*this.angleError,5),c=this.angleError/32,l=r/this.iterations+this.padding,m=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,u=random(0,Math.PI),p=ot[0M
].SWRatio,g=ot[0].stepSpeed;e.push(),e.translate(t/2>>0,r/2>>0),e.rotate(this.rotation);for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=0;M<o;M++)m+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),d+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*c,5),this.angleError),-this.angleError),5),h+=Math.max(Math.min((2*random()-1)*n,this.maxSize),this.minSize),a=i.createVector(constrain(-h/2>>0,.6*-t,.6*t),coM
nstrain(l*f+M*m>>0,.6*-r,.6*r)),s=i.createVector(constrain(h/2>>0,.6*-t,.6*t),constrain(l*f+M*m>>0,.6*-r,.6*r)),u+=random(0,Math.PI/16),e.push(),e.rotate(d),this.brushes[0].drawLine(a,s,m,m,u,n,p,g,e,i),e.pop()}d=standardizeDegree((2*random()-1)*this.angleError,5),h=this.minSize+random()*this.maxSize,m=this.minStrokeWeight+random()*this.maxStrokeWeight>>0;for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=1;M<o;M++)a=i.createVector(constrain(-h/2>>0,.6*M
-t,.6*t),constrain(-l*f-M*m>>0,.6*-r,.6*r)),s=i.createVector(constrain(h/2>>0,.6*-t,.6*t),constrain(-l*f-M*m>>0,.6*-r,.6*r)),u+=random(0,Math.PI/16),m+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),d+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*c),this.angleError),-this.angleError),5),h+=Math.max(Math.min((2*random()-1)*n,this.maxSize),this.minSize),e.push(),e.rotate(d),this.brushes[0].drawLine(a,s,m,m,u,n,p,g,e,i),e.pop()}e.pop()}}class Gt extends It{constructoM
r(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p){super(t,r,e,i,o,a,s,h,n,d,c,l),this.radius=m,this.position=u,this.sunBrushFactor=p}draw(r,e){if(0==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.radius,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/100>>0;this.brushes[0].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*this.sunBrushFactor>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}else if(1==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.M
radius*random(.3,.6)>>0,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/200>>0,d=3*this.sunBrushFactor;this.brushes[1].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*d>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}else if(2==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.radius*random(.1,.2)>>0,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/200>>0,d=5*this.sunBrushFactor;this.brushes[0].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*d>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}}}class Tt eM
xtends It{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u){super(t,r,e,i,o,a,s,h,n,d,c,l),this.curvature=m,this.height=u,this.dBezierVectors=[]}draw(e,i){let o,a,s,h,n,d=this.minSize+random()*this.maxSize,c=(this.maxSize-this.minSize)/16,l=standardizeDegree((2*random()-1)*this.angleError,5),m=this.angleError/32,u=r/this.iterations+this.padding,p=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,g=random(0,Math.PI);ot[0].SWRatio,ot[0].stepSpeed;if(0==this.currentLevel){e.fill(this.brushes[1].color1);let o=!0,a=5*p;f.minM
Ground=1.1*this.height+a/2>>0,this.brushes[1].drawRect(new i.createVector(0,1.1*this.height+a/2>>0),2.5*t,1.1*r-this.height,0,"line",a,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,2*ot[0].stepSpeed,o,e,i)}e.push(),e.translate(t/2,this.height);for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=0;M<o;M++){if(p+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),l+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*M
m),this.angleError),-this.angleError),5),d+=Math.max(Math.min((2*random()-1)*c,this.maxSize),this.minSize),a=i.createVector(constrain(-d/2>>0,.6*-t,.6*t),constrain(u*f+M*p>>0,.1*-r,1.1*r-this.height)),s=i.createVector(constrain(d/2>>0,.6*-t,.6*t),constrain(u*f+M*p>>0,.1*-r,1.1*r-this.height)),a.dist(s)<t/2)return void(this.currentLevel=this.iterations);0==this.dBezierVectors.length?(this.dBezierVectors[0]=roundVector(a),h=p5.Vector.lerp(a,s,.33333),n=h.mag(),h.add(i.createVector(n*random(.1*-this.curvature,.1*this.M
curvature),n*random(-this.curvature,this.curvature))),this.dBezierVectors[1]=roundVector(h),h=p5.Vector.lerp(a,s,.66666),n=h.mag(),h.add(p5.prototype.createVector(n*random(.1*-this.curvature,.1*this.curvature),n*random(-this.curvature,this.curvature))),this.dBezierVectors[2]=roundVector(h),this.dBezierVectors[3]=roundVector(s)):(this.dBezierVectors[0]=roundVector(a),h=p5.Vector.lerp(a,s,.33333),n=h.mag(),this.dBezierVectors[1].y=this.dBezierVectors[1].y+n*random(this.curvature)>>0,this.dBezierVectors[2].y=this.dBezM
ierVectors[2].y+n*random(this.curvature)>>0,this.dBezierVectors[3]=roundVector(s)),g+=random(0,Math.PI/16),e.push(),e.rotate(l),this.brushes[0].drawBezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],p,p,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,e,i),e.pop()}}e.pop()}}class Ht extends Tt{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p){super(t,r,e,i,o,a,s,h,n,d,c,l,m,u.y),this.position=u,this.range=p}draw(t,r){let e,i,o,a,s=this.minSize+random()*this.maxSizM
e,h=(this.maxSize,this.minSize,standardizeDegree((2*random()-1)*this.angleError,5)),n=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,d=random(0,.03),c=(ot[0].SWRatio,ot[0].stepSpeed,0);t.push(),t.translate(this.position.x>>0,this.position.y>>0),e=this.minStrokes+this.maxStrokes*random();for(let l=0;l<e;l++){let e,l;n+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),h=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*this.angleError,5),this.angleError),-this.angleM
Error),5),a=Math.max(Math.min((2*random()-1)*s,this.maxSize),this.minSize),i=r.createVector(random(-this.range,this.range)>>0,Math.max(0+.1*this.sizeError*random()*a,c)),i.y>c&&(c=i.y),o=r.createVector(i.x+this.sizeError*random(-.1,.1)*a,-1*(a+this.sizeError*random(-.1,.1)*a)),i=roundVector(i),o=roundVector(o),0==this.dBezierVectors.length?(this.dBezierVectors[0]=roundVector(i),e=p5.Vector.lerp(i,o,.33333),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*tM
his.curvature))),this.dBezierVectors[1]=roundVector(e),e=p5.Vector.lerp(i,o,.66666),l=e.mag(),e.add(p5.prototype.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[2]=roundVector(e),this.dBezierVectors[3]=roundVector(o)):(this.dBezierVectors[0]=roundVector(i),e=p5.Vector.lerp(i,o,.33333),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[1]=rouM
ndVector(e),e=p5.Vector.lerp(i,o,.66666),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[2]=roundVector(e),this.dBezierVectors[3]=roundVector(o)),d=random(0,.5),t.push(),t.rotate(h),t.fill("#FF0000"),random()<.4?this.brushes[0].drawBezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],n,n,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,t,r):this.brushes[1].drawBM
ezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],n,n,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,t,r),t.pop()}t.pop()}}class Ot{constructor(t,r,e,i,o,a,s,h){this.size=t,this.scale=r,this.alpha=e,this.gamma=1/Math.max(o,.01),this.marginPX=a,this.triangleFilterMode=s,this.maxColorChanges=i,this.graphic=h.createGraphics(h.width,h.height),this.image=this.graphic.createImage(this.size,this.size);let n,d,c,l=this.size*this.size*4,m=[0,0,0];this.image.loadPiM
xels();for(let t=0;t<l;t+=4)d=t%(4*this.size)>>0,c=t/(4*this.size)>>0,n=255*random()>>0,this.maxColorChanges[0]>0&&this.maxColorChanges[1]>0&&this.maxColorChanges[2]>0&&(c>d&&this.triangleFilterMode?(m[0]=this.maxColorChanges[0]*(1-random())>>0,m[1]=this.maxColorChanges[1]*(1-random())>>0,m[2]=this.maxColorChanges[2]*(1-random())>>0):(m[0]=this.maxColorChanges[0]*random()>>0,m[1]=this.maxColorChanges[1]*random()>>0,m[2]=this.maxColorChanges[2]*random()>>0)),this.image.pixels[t]=Math.min(n+m[0],255),this.image.pixelM
s[t+1]=Math.min(n+m[1],255),this.image.pixels[t+2]=Math.min(n+m[2],255),this.image.pixels[t+3]=this.alpha;this.image.updatePixels(),this.image.resize(100*this.scale[0],100*this.scale[1])}drawFilter(t,r){let e,i,o,a=this.marginPX>>0,s=this.marginPX>>0,h=t.height-this.marginPX>>0,n=t.width-this.marginPX>>0;for(;s<h;)s+this.image.height>h&&a+this.image.width>n?t.image(this.image,a,s,n-a,h-s):s+this.image.height>h&&!(a+this.image.width>n)?t.image(this.image,a,s,this.image.width,h-s):!(s+this.image.height>h)&&a+this.imaM
ge.width>n?t.image(this.image,a,s,n-a,this.image.height):t.image(this.image,a,s,this.image.width,this.image.height),a+=this.image.width,a>=n&&(a=this.marginPX>>0,s+=this.image.height);if(!Wt.suppressGammaAdjust){t.loadPixels();let r=t.width*t.height*4,a=[1,1,1];for(let s=0;s<r;s+=4)i=s%(4*t.width),o=s/(4*t.height)>>0,i>4*this.marginPX>>0&&o>4*this.marginPX>>0&&i<4*(t.width-this.marginPX)>>0&&o<4*(t.height-this.marginPX)>>0&&(e=this.gamma*(.8+.4*random()),a[0]=255*Math.pow(t.pixels[s],e),a[1]=255*Math.pow(t.pixels[sM
+1],e),a[2]=255*Math.pow(t.pixels[s+2],e),t.pixels[s]=Math.min(a[0]>>0,255),t.pixels[s+1]=Math.min(a[1]>>0,255),t.pixels[s+2]=Math.min(a[2]>>0,255))}}}var myp5=new p5(sketch)
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vb26e4fa9e5134444860be286fd8771851679335129114" integrity="sha512-M3hN/6cva/SjwrOtyXeUa5IuCT0sedyfT+jK/OV+s+D0RnzrTfwjwJHhd+wYfMm9HJSrZ1IKksOdddLuN6KOzL
w==" data-cf-beacon='{"rayId":"7ac3ee6d4817a20e","version":"2023.3.0","b":1,"token":"6c07c178c94442f695e7a0a2aaee641a","si":100}' crossorigin="anonymous"></script>
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>ArboCinematica</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandbox="allow-scripts" type="text/M
javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="allow-scripts" type="text/jaM
vascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <script type="text/javascript">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed ==M
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274M
213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this M
function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
              width: 100%;
              height: 100%;
              margin: 0px;
              padding: 0;
              display: flex;
              justify-content: center;
              align-items: center;
              top: 0;
              bottom: 0;
              left: 0;
              right: 0;
              max-width: 100%;
              max-height: 100%;
              margin: auto;
              overflow: auto;
              object-fit: contain;
              position: fixed;
<script type="text/javascript">
    const rand = mathRand();
    const container = document.createElement("div")
    container.innerM
HTML = "<span>seed: " + seed + "</span><br>";
    console.log(container.innerHTML)
    let t,r,e,i,o=1e9*mathRand();function nRandom(t,r,e,i){return i===Math.floor?void 0!==e?Math.floor(random(r,e)):Math.floor(random(r)):void 0!==e?random(r,e):random(r)}function randomGaussian(t,r){return p5.prototype.randomGaussian(t,r)}function nRandomBoolean(t,r){return mathRand()<r}function random(t,r){return Array.isArray(t)?arrayPick(t):(void 0===r&&(r=void 0===t?1:t,t=0),mathRand()*(r-t)+t)}function roundVector(t){return t.M
x=Math.round(t.x),t.y=Math.round(t.y),t}function constrain(t,r,e){return Math.min(Math.max(t,r),e)}function nArrayPick(t,r,e){return void 0!==e?arrayPick(r,e):arrayPick(r)}function arrayPick(t,r){if(void 0===r){if(0===(r=t.slice()).length)return;t=[];for(let e=0;e<r.length;e++)t[e]=100*(e+1)/r.length}let e=100*random();if(r.length>0&&t.length==r.length){for(var i=[],o=0;o<t.length;o++)i.push({weight:t[o],element:r[o]});i.sort((function(t,r){return t.weight<r.weight?-1:t.weight==r.weight?0:1}));for(let t=0;t<i.lengtM
h;t++){if(t==i.length-1)return i[t].element;if(e<i[t].weight)return i[t].element}}}p5.prototype.randomSeed(o);let a,s,h,n,d,c,l,m,u,p,g,f,M,x,S,b,y,w,V,R,k,v,C,L,z,E,W,F,B,A,D,P,I=700,G=["#e9ecef","#F2F2F0","#f7fff7","#D9C6B0"],T=["#386641","#6a994e","#a7c957","#f2e8cf","#bc4749","#3c1642","#086375","#1dd3b0","#affc41","#b2ff9e"],H=["#A3B4BF","#D8EBF2","#1A3940","#4C6C73","#819FA6","#04301C","#0A572B","#30C771","#F2FFFA","#9EFCFF"],O=["#A0C603","#F2A81D","#734002","#F2985C","#D96A29","#E0FF84","#F2DA50","#D9BA55","M
#8C791B","#595911"],X=["#5A7302","#324001","#86A614","#B6D93B","#022601","#155902","#267302","#82BF26","#BFD962","#E7F2BD"],N=["#F0F0F0","#E3BF0D","#CACACA","#F2CF1D","#F2BD1D","#F28E13","#F24405"],_=["#592918","#8C564A","#8C3F3F","#792938","#AC566A","#AC3F5F"],j=["#2C4001","#364022","#5A7302","#93A603","#736830"],q=["#9CB0D9","#CEDEF2","#667302","#F2EFBD","#F2CA7E"],U=["#BF8756","#59412D","#A68C76","#402A1E","#F2F2F2","#D9843B","#F2CEAE","#BF5517","#8C260F","#590A0A"],Y=["#A60311","#8C0327","#BF046B","#A69B03","#FM
2A766","#730217","#F20544","#BF0436","#D9296A","#344973"],$=["#B07756","#55012D","#A65C66","#301A10","#C2C2B2","#C9542B","#F7BEAE","#CF5827","#7C361F","#790A2A"],J=20,K=[],Q=!0,Z=!0,tt=!0,rt=!0,et=!0,it=0,ot=[],at=[],st=["growth"],ht=0,nt=!0,dt=0,ct=[],lt=300,mt=["#0468BF","#0487D9","#05AFF2","#05C7F2"],ut=[],pt=1,gt=1,ft=.05,Mt=-.04,xt=[],St=!1,bt=!1,yt=[],wt=!1,Vt=!1,Rt=!0,kt=1/32,vt=!1,Ct="normal",Lt=[],zt=!1;const Et={season:nArrayPick("season",[50,75,92,100],["spring","summer","fall","winter"]),fruitsOn:nRandoM
mBoolean("fruit/fruitsOn",.6),maxTrees:nRandom("maxTrees",1,6,Math.floor),backgroundSun:nRandom("background/backgroundSun",0,5,Math.floor),sRadius:nRandom("sun/sRadius",.05,1/12),treeTrunkHeight:nRandom("treeTrunkHeight",.72,.85),treeColor0:nRandom("color/treeColor0",0,$.length-1,Math.floor),treeColor1:nRandom("color/treeColor1",0,U.length-1,Math.floor),leafColor:nRandom("color/leafColor",0,9,Math.floor)};window.$generativeTraits={...Et},console.log(window.$generativeTraits);const Wt={backgroundColor:nArrayPick("baM
ckground/backgroundColor",[25,50,75,100],G),treeRotation_conf:nRandom("treeRotation",Math.PI/10,Math.PI/3+Math.PI/10)*randomSign(),treeMaxFork_conf:nRandom("treeMaxFork",2,5,Math.floor),treeBranchHeight_conf:nRandom("treeBranchHeight",.45,.6),lengthError:nRandom("lengthError",.12,.22),forestMaxLevels:nRandom("maxLevels",5,7,Math.floor),colorSD:nRandom("color/colorSD",.9,3),fruitColor:nRandom("fruit/fruitColor",0,9,Math.floor),fruitLevelMinRange:[nRandom("fruit/fruitLevelMin",[2,3]),nRandom("fruitLevelRange",1,3,MatM
h.floor)],fruitFactor:nRandom("fruit/fruitFactor",2,2.5),fruitRatio:nRandom("fruit/fruitRatio",.5,1),maxFruitProb:nRandom("fruit/maxFruitProb",.6,.93),yzRatio:nRandom("yzRatio",.1,.4),brushRotationFactor:nRandom("brushRotationFactor",.6,1),dColorSD:nRandom("dColorSD",1,3),curvature:nRandom("curvature",.5,3),curveHeight:nRandom("curveHeight",.75,.88),fileNumber:(9999*random()>>0).toString(),highResInnerCanvas:nRandom("walls",[[3500,4e3],[3850,4400],[4200,4800],[4550,5200]]),sColorSD:nRandom("sun/sColorSD",2.5,6),sunM
Pos:[nRandom("sun/X",.2,.8),nRandom("sun/Y",.03,.12)],sunBrushFactor:nRandom("sun/sunBrushFactor",.3,.65),sunBrushes:getRandomArray("sun/SunBrush",2,0,7),gColorSD:nRandom("grass/gColorSD",3,15),maxGVariety:nRandom("grass/maxGVariety",1,4,Math.floor),gCurvature:nRandom("grass/gCurvature",.1,.8),maxGClumps:getRandomArray("grass/maxGClumps",2,1,4),maxGLeaves:nRandom("grass/maxGLeaves",4,7),maxGRange:nRandom("grass/maxGRange",.09,.35),filterSize:nRandom("filterSize",2,4,Math.floor),filterScale:[nRandom("filterScaleX",5M
,8,Math.floor),nRandom("filterScaleY",5,8,Math.floor)],filterAlpha:nRandom("filterAlpha",220,255,Math.floor),maxColorChanges:[nRandom("maxColorChanges0",15,35,Math.floor),nRandom("maxColorChanges1",15,35,Math.floor),nRandom("maxColorChanges2",15,35,Math.floor)],maxSplashWeight:nRandom("maxSplashWeight",7,10,Math.floor),suppressGammaAdjust:nRandomBoolean("suppressGammaAdjust",.35),gammaInv:nRandom("gammaInv",.02,1),triangleFilterMode:nRandomBoolean("triangleFilterMode",.33)};function getRandomArray(t,r,e,i,o){let a,M
s=[],h=void 0!==o;for(let o=0;o<r;o++)a=t+"_"+o,h?s.push(nRandom(a,e,i,h)):s.push(nRandom(a,e,i));return s}function standardizeDegree(t,r){let e=Math.pow(10,r),i=Math.sign(t);return Math.round((i*p5.prototype.fract(t)+t%360)*e)/e}function saveCanvas(e,i,o){vt=!0,Ct="freeze",null==W&&(z=kt*t,W=e.createGraphics(t+2*z>>0,r+2*z>>0),W.noStroke(),W.tint(255,255),W.fill(Wt.backgroundColor),W.rect(0,0,t+2*z>>0,r+2*z>>0),W.tint(255,230),W.image(n,z>>0,z>>0,n.width,n.height),W.noTint(),n.clear(),n.image(W,0,0,n.width,n.heighM
t),Rt&&P.drawFilter(n,p5)),o&&W.get().save(E+"_"+e.hex(i).toString(),"png"),vt=!1}function randomSign(){let t=Math.round(Math.abs(Math.sin(10*random())));return Math.cos(t*Math.PI)}function compare(t,r){return t.zShift>r.zShift?-1:1}var sketch=function(o){o.setup=function(){switch(E="ArboCinematica_"+Wt.fileNumber,t=Wt.highResInnerCanvas[0],r=Wt.highResInnerCanvas[1],e=Math.sqrt(Math.pow(t,2),Math.pow(r,2)),i=2*t+2*r,F=Math.max(Math.min(o.windowWidth,7*o.windowHeight/8>>0),I)>>0,B=8*F/7>>0,h=o.createCanvas(F,B),h.sM
tyle="",h.style.opacity="",h.style.filter="",h.style["-ms-filter"]="",h.id("ArboCinematica"),n=o.createGraphics(t,r),v=Wt.forestMaxLevels,o.frameRate(1),n.noStroke(),Et.season){case"winter":a=H,s=q;break;case"spring":a=X,s=j;break;case"fall":a=O,s=q;break;default:a=T,s=j}L=Et.fruitsOn,l="Ellipse",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],K.push(new Bt(l,m,u,p,g,d)),l="Ellipse",m=.5,u=.3*Wt.brushRotationFactor,p=!1,g=[random($)],K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,M
p=!1,g=[random($)],d=function(t,r,e){return Math.sin(2*t+r/10)},K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.cos(t)},K.push(new Bt(l,m,u,p,g,d)),o.noiseSeed(random()),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return o.noise(t+r/10)},K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.cos(e/10-Math.PI)},K.push(new Bt(M
l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.abs(Math.sin(t+r/10))},K.push(new Bt(l,m,u,p,g,d)),l="SplashRV",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],c=.1,d=function(t,r,e,i){return Math.sin(2*t+r/10)+randomGaussian(0,c)},K.push(new Bt(l,m,u,p,g,d,c)),l="RSphere",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($),random($)],d=function(){return[1-random(random(random())),random()]},K.push(new Bt(l,m,u,p,g,d)),l="RLSphere",m=.1,u=.1*Wt.bruM
shRotationFactor,p=!1,g=[random($),random($)],d=function(){return[1-random(random(random())),random()]},K.push(new Bt(l,m,u,p,g,d));let M=J,W=.5*J>>0,A=0,G=7,U=.05,Y=.3;if(ot.push(new Ft(M,W,A,G,U,Y)),M=J,W=.5*J>>0,A=0,G=7,U=.015,Y=.1,ot.push(new Ft(M,W,A,G,U,Y)),at[0]=[function(t){return Math.sin(Math.sin(1+.9*Math.sin(t+Math.PI)))},1],at[1]=[function(t){return 2*Math.cos(4*t)},1],at[2]=[function(t){return Math.exp(Math.cos(t))-.9*Math.cos(4*t)+Math.sin(t/12)^5},12],Z){n.angleMode(o.DEGREES),S=t/3.5>>0,b=.7*t+MathM
.sqrt(t*r)*random(),y=10+random(10)>>0,ut=[mt[random()*mt.length>>0],mt[random()*mt.length>>0]];let e=K[random(0,7)>>0],i=[new Bt(e.type,e.widthError,e.rotationError,e.strokeOn,ut,e.function,e.sd,1)];w=Wt.dColorSD;for(let r=0;r<1;r++)V=5+10*random()>>0,gt=t/700>>0,x=t/700+10*t/700>>0,k=t/100+random(t/300)>>0,R=standardizeDegree(random(360),5),xt.push(new It(pt,V,gt,x,R,S,b,y,ft,Mt,k,i));n.angleMode(o.RADIANS)}if(tt){n.angleMode(o.DEGREES),S=.65*t>>0,b=random(.8,1)*t>>0,y=4+random(4)>>0;let e=[random(_),random(_)],iM
=K[random(0,7)>>0],a=[];a.push(new Bt(i.type,i.widthError,i.rotationError,i.strokeOn,e,i.function,i.sd,1));let s=[random(_),random(_)];i=K[random(0,7)>>0],a.push(new Bt(i.type,i.widthError,i.rotationError,i.strokeOn,s,i.function,i.sd,1)),w=Wt.dColorSD,R=0;let h=Wt.curvature,d=Wt.curveHeight*r>>0;for(let r=0;r<1;r++)V=10+10*random()>>0,gt=t/150+random(t/100)>>0,x=gt+random(t/100)>>0,k=t/2e3+random(t/2e3)>>0,yt.push(new Tt(pt,V,gt,x,R,S,b,y,ft,Mt,k,a,h,d));n.angleMode(o.RADIANS)}if(et){n.angleMode(o.DEGREES);for(let M
r=0;r<Wt.maxGVariety;r++){let r;S=.09*t>>0,b=random(.15,.2)*t>>0,y=1;let e=[random(s),random(s)],i=Wt.gColorSD,a=random(0,7)>>0;r=5==a?K[random(0,5)>>0]:K[a];let h=[];h.push(new Bt(r.type,r.widthError,r.rotationError,r.strokeOn,e,r.function,i,1));let n=[random(s),random(s)];a=random(0,7)>>0,r=5==a?K[random(0,5)>>0]:K[a],h.push(new Bt(r.type,r.widthError,r.rotationError,r.strokeOn,n,r.function,i,1)),R=0;let d=Wt.gCurvature;V=15+15*random()>>0,pt=8,gt=t/700+random(t/700)>>0,x=gt+random(t/750)>>0,k=t/2e3+random(t/2e3)M
>>0;let c=o.createVector(0,0),l=0,m=.1;Lt.push(new Ht(pt,V,gt,x,R,S,b,y,ft,m,k,h,d,c,l))}n.angleMode(o.RADIANS)}if(rt){n.angleMode(o.DEGREES),S=.65*t>>0,b=random(.8,1)*t>>0,y=3;let e=Wt.sColorSD,i=[random(N),random(N)],a=K[Wt.sunBrushes[0]>>0],s=[];s.push(new Bt(a.type,a.widthError,a.rotationError,a.strokeOn,i,a.function,e,1));let h=[random(N),random(N)];a=Wt.sunBrushes[1]>>0==5?K[random(4)>>0]:K[Wt.sunBrushes[1]>>0],s.push(new Bt(a.type,a.widthError,a.rotationError,a.strokeOn,h,a.function,e,1));let d=0,c=Et.sRadiuM
s*t,l=o.createVector(Wt.sunPos[0]*t,Wt.sunPos[1]*r),m=Wt.sunBrushFactor;V=10+10*random()>>0,gt=t/150+random(t/100)>>0,x=gt+random(t/100)>>0,k=t/2e3+random(t/2e3)>>0,D=new Gt(pt,V,gt,x,d,S,b,y,ft,Mt,k,s,c,l,m),n.angleMode(o.RADIANS)}if(Q){ct.push(new Pt(t/20>>0,o.color("#c6d4ff"))),ct.push(new Pt(t/20>>0,o.color("#fffafb"))),ct[0].color.setAlpha(120),ct[1].color.setAlpha(130);let e=t/30>>0,i=t/900>>0,a=t/500>>0,s=st[0],h=Et.maxTrees,n=.12,d=Wt.lengthError;C=Wt.colorSD,f=new At(h,t,r,n,d,a,s,i,e,(function(t,r){returnM
-.5+Math.sin(t.x+1+r%1e4)}),(function(t,r){return constrain(t,0,1)}),(function(t,r){return constrain(t,0,2)}),null,0),f.setupTrees(o)}Rt&&(P=new Ot(Wt.filterSize,Wt.filterScale,Wt.filterAlpha,Wt.maxColorChanges,Wt.gammaInv,z,Wt.triangleFilterMode,o)),n.background(N[Et.backgroundSun]),o.background(N[Et.backgroundSun])},o.draw=function(){"normal"===Ct?(o.clear(),o.image(n,0,0,F,B),!St&&Z&&(n.angleMode(o.DEGREES),xt[0].draw(n,o),xt[0].currentLevel++,xt[0].currentLevel>xt[0].iterations/2&&(St=!0),n.angleMode(o.RADIANS)M
),St&&!wt&&rt&&(n.angleMode(o.DEGREES),D.draw(n,o),D.currentLevel++,D.currentLevel>=D.iterations&&(wt=!0),n.angleMode(o.RADIANS)),St&&!bt&&tt&&(n.angleMode(o.DEGREES),yt[0].draw(n,o),yt[0].currentLevel++,yt[0].currentLevel>yt[0].iterations/2&&(bt=!0),n.angleMode(o.RADIANS)),bt&&Q&&f.currentLevel<v&&(ct[0].animateComet(),ct[1].animateComet(),f.animateAllTrees(),f.drawAllTrees(n,o),f.currentLevel++,n.tint(255,255)),it++,0==Vt&&f.currentLevel>=v&&(Vt=!0,o.image(n,0,0,F,B),Ct="freeze",saveCanvas(o,it,!1))):zt||(o.imageM
(n,0,0,F,B),zt=!0)},o.windowResized=function(){o.noLoop(),F=Math.max(Math.min(o.windowWidth,7*o.windowHeight/8>>0),I)>>0,B=8*F/7>>0,o.clear(),o.resizeCanvas(F,B),o.image(n,0,0,F,B),Ct&&(zt=!0),o.loop()},o.keyPressed=function(){return"s"!==o.key||vt?"e"!==o.key||vt?void 0:(A=o.get(),o.save(A,E+".png"),!1):(saveCanvas(o,it,!0),!1)}};class Ft{constructor(t,r,e,i,o,a){this.startWidth=t,this.endWidth=r,this.rotation=e,this.minWidth=i,this.SWRatio=o,this.stepSpeed=a}}class Bt{constructor(t,r,e,i,o,a,s,h){this.type=t,thisM
.rotationError=e,this.widthError=r,this.strokeOn=i,this.color=o[0],this.function=a,this.sd=s,this.color1,this.colorSD=void 0===h?0:h,o.length>1&&(this.color1=o[1])}gaussianColor(t,r,e){if(null==t)return;if(0==this.colorSD)return t;let i=constrain(randomGaussian(r.red(r.color(t)),this.colorSD)>>0,0,255)>>0,o=constrain(randomGaussian(r.green(r.color(t)),this.colorSD)>>0,0,255)>>0,a=constrain(randomGaussian(r.blue(r.color(t)),this.colorSD)>>0,0,255)>>0;return r.color(i,o,a)}drawShape(r,e,i,o,a,s){let h,n,d,c,l,m,u,p,gM
,f,M,x,S=e*(1+this.widthError*Math.sin(41*o+9)),b=i+random(this.rotationError);switch(null!=this.color&&(M=this.gaussianColor(this.color,a,s)),null!=this.color1&&(x=this.gaussianColor(this.color1,a,s)),this.type){case"Ellipse":a.fill(M),this.strokeOn||a.noStroke(),h=e*(.9+.1*Math.sin(5*o+18))*(1+this.widthError*Math.sin(2.5*o+18)),a.push(),a.rotate(b),a.ellipse(r.x>>0,r.y>>0,S>>0,h>>0),a.pop();break;case"SplashRadial":a.fill(M),this.strokeOn||a.noStroke(),a.push(),a.rotate(b),a.beginShape();for(let t=0;t<50;t++){leM
t i=p5.prototype.map(t,0,50,0,2*Math.PI),s=e/2+e/2*this.function(i,it,o),h=r.x+s*Math.cos(i),n=r.y+s*Math.sin(i);a.vertex(h,n)}a.endShape(p5.CLOSE),a.pop();break;case"SplashRV":a.fill(M),this.strokeOn||a.noStroke(),a.push(),a.rotate(b),a.beginShape();for(let t=0;t<50;t++){let i=p5.prototype.map(t,0,50,0,2*Math.PI),s=e/2+e/2*this.function(i,it+o,this.sd),h=r.x+s*Math.cos(i),n=r.y+s*Math.sin(i);a.vertex(h,n)}a.endShape(p5.CLOSE),a.pop();break;case"RSphere":n=e/2>>0,d=constrain(Math.pow(e/2,2)*Math.PI/100,50,5e3),c=MaM
th.max(t/800>>0,1),this.strokeOn||a.noStroke(),a.push();for(let t=0;t<d;t++)l=p5.prototype.map(t,0,d,0,2*Math.PI,!0),m=this.function(),u=r.x+Math.cos(l)*m[0]*n,p=r.y+Math.sin(l)*m[0]*n,g=r.x+Math.cos(l)*m[1]*n,f=r.y+Math.sin(l)*m[1]*n,a.fill(M),a.ellipse(u>>0,p>>0,2*c>>0,2*c>>0),a.fill(x),a.ellipse(g>>0,f>>0,2*c>>0,2*c>>0);a.pop();break;case"RLSphere":let i=[];n=e/2>>0,d=constrain(Math.pow(e/2,2)*Math.PI/100,100,200),c=Math.max(t/1e3>>0,1),this.strokeOn||a.noStroke(),a.push();for(let t=0;t<d;t++)l=p5.prototype.map(M
t,0,d,0,2*Math.PI,!0),m=this.function(),u=r.x+Math.cos(l)*m[0]*n,p=r.y+Math.sin(l)*m[0]*n,g=r.x+Math.cos(l)*m[1]*n,f=r.y+Math.sin(l)*m[1]*n,i.push(p5.prototype.createVector(g,f)),a.fill(random([M,x])),a.ellipse(u>>0,p>>0,2*c>>0,2*c>>0);a.fill(x);for(let t=0;t<d;t++){let r=i[t].x,e=i[t].y;a.ellipse(r>>0,e>>0,2*c>>0,2*c>>0)}a.pop();break;default:return!1}}drawLine(r,i,o,a,s,h,n,d,c,l){let m=r,u=o,p=p5.Vector.add(i,p5.Vector.mult(r,-1)),g=p5.Vector.normalize(p),f=p.mag(),M=Math.max(u*n,1),x=f/M,S=0,b=0;for(;m.dist(i)>M
M&&S<e+t/100&&m.dist(r)<=f+t/100;)this.drawShape(m,u,s,S>>0,c,l),S+=d,m.add(p5.Vector.mult(g,M)),b+=1/x,u=Math.max(p5.prototype.lerp(o,a,b),h),M=Math.min(u*n,e/50),x=f/M}drawVertexShape(t,r,e,i,o,a,s,h){for(let n=0;n<t.length;n++)this.drawLine(t[n][0],t[n][1],r,r,e,i,o,a,s,h)}drawBezier(r,o,a,s,h,n,d,c,l,m,u,p){let g=roundVector(r.copy()),f=h,M=r.dist(o)+o.dist(a)+a.dist(s),x=Math.max(f*l,1),S=M/x,b=0,y=0;for(;g.dist(s)>x&&b<4*i&&g.dist(r)<=M+t/2;)this.drawShape(g,f,d,b>>0,u,p),b+=m,f=Math.max(p5.prototype.lerp(h,nM
,y),c),x=Math.min(f*l,e/50),S=M/x,y+=1/S,g.x=p5.prototype.bezierPoint(r.x,o.x,a.x,s.x,y),g.y=p5.prototype.bezierPoint(r.y,o.y,a.y,s.y,y)}drawBezierShape(t,r,e,i,o,a,s,h){for(let n=0;n<t.length;n++)this.drawBezier(t[n][0],t[n][1],t[n][2],t[n][3],r,r,e,i,o,a,s,h)}drawPoly(t,r,e,i,o,a,s,h,n,d,c,l){let m,u,p,g=[],f=[],M=[];if("bezier"==o){m=4,u=Math.max(m,e)>>0,u=4*Math.round(u/4),p=2*Math.PI/u/4;for(let t=0;t<4*u;t+=4)M[0]=p5.prototype.createVector(r*Math.cos(t*p),r*Math.sin(t*p)),M[1]=p5.prototype.createVector(r*MathM
.cos((t+1)*p),r*Math.sin((t+1)*p)),M[2]=p5.prototype.createVector(r*Math.cos((t+2)*p),r*Math.sin((t+2)*p)),M[3]=p5.prototype.createVector(r*Math.cos((t+3)*p),r*Math.sin((t+3)*p)),g.push([M[0].copy(),M[1].copy(),M[2].copy(),M[3].copy()]);c.push(),c.translate(t.x>>0,t.y>>0),c.rotate(i),this.drawBezierShape(g,a,s,h,n,d,c,l),c.pop()}else{m=3,u=Math.max(m,e)>>0,p=2*Math.PI/u;for(let t=0;t<u;t++)f[0]=p5.prototype.createVector(r*Math.cos(p*t),r*Math.sin(p*t)),f[1]=p5.prototype.createVector(r*Math.cos(p*(t+1)),r*Math.sin(pM
*(t+1))),g.push([f[0].copy(),f[1].copy()]);c.push(),c.translate(t.x>>0,t.y>>0),c.rotate(i),this.drawVertexShape(g,a,s,h,n,d,c,l),c.pop()}}drawRect(e,i,o,a,s,h,n,d,c,l,m,u,p){let g,f,M,x,S,b,y=i,w=o,V=[],R=4,k=[],v=[],C=Math.sqrt(Math.pow(y,2)+Math.pow(w,2)),L=Math.atan(w/y),z=Math.PI/2-L,E=[],W=1/l*10>>0;if("bezier"==s){g=4,R=Math.max(g,4)>>0,R=4*Math.round(R/4),f=2*Math.PI/R/4;for(let t=0;t<4*R;t+=4)t%8==0?(E[0]=L,E[1]=z):(E[0]=z,E[1]=L),v[0]=p5.prototype.createVector(C/2*Math.cos(t*f-E[0]),C/2*Math.sin(t*f-E[0]))M
,v[1]=p5.prototype.createVector(0,0),v[2]=p5.prototype.createVector(0,0),v[3]=p5.prototype.createVector(C/2*Math.cos((t+3)*f-E[1]),C/2*Math.sin((t+3)*f-E[1])),x=v[3].sub(v[0]).heading(),M=p5.Vector.fromAngle(x).normalize(),S=v[3].dist(v[0]),v[1]=p5.Vector.add(p5.Vector.mult(M,S/2),v[0]).copy(),v[2]=p5.Vector.add(p5.Vector.mult(M,S/2),v[2]).copy(),V.push([v[0].copy(),v[1].copy(),v[2].copy(),v[3].copy()]);u.push(),u.translate(e.x>>0,e.y>>0),u.rotate(a),this.drawBezierShape(V,h,n,d,c,l,u,p),u.pop(),m&&i-i/10>t/30&&o-oM
/10>r/30&&(b=[i-i/W,o-o/W],this.drawRect(e,b[0],b[1],a,s,h,n,d,c,l,m,u,p))}else{g=3,R=4,f=2*Math.PI/R;for(let t=0;t<R;t++)t%2==0?(E[0]=L,E[1]=z):(E[0]=z,E[1]=L),k[0]=p5.prototype.createVector(C/2*Math.cos(t*f-E[0]),C/2*Math.sin(t*f-E[0])),k[1]=p5.prototype.createVector(C/2*Math.cos((t+1)*f-E[1]),C/2*Math.sin((t+1)*f-E[1])),V.push([k[0].copy(),k[1].copy()]);u.push(),u.translate(e.x>>0,e.y>>0),u.rotate(a),this.drawVertexShape(V,h,n,d,c,l,u,p),u.pop(),m&&i-i/20>t/30&&o-o/20>r/30&&(b=[i-i/W,o-o/W],this.drawRect(e,b[0],M
b[1],a,s,h,n,d,c,l,m,u,p))}}}class At{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u){this.maxTrees=t,this.width=r,this.height=e,this.rotationError=i,this.lengthError=o,this.stepDistance=a,this.mode=s,this.minWidth=h,this.minLength=n,this.trees=[],this.aLambda=d,this.bLambda=c,this.cLambda=l,this.bubbles=m,this.index=u,this.lightsOn=!1,this.gCenter=p5.prototype.createVector(r/2>>0,e/2>>0),this.currentLevel=0,this.minGround}static transformLocalToGlobal(r,e){let i=p5.prototype.createVector(0,e.y);if(0===r)i.x=e.x>>0;else iM
.x=e.x+getScreenXPosition(t,r,!1)>>0;return i}reassignIndex(t,r){t.index=r;for(let e=0;e<t.branches.length;e++)this.reassignIndex(t.branches[e],r)}sortTrees(){this.trees.sort(compare);for(let t=0;t<this.trees.length;t++)this.reassignIndex(this.trees[t],t)}setupTrees(e){let i,o,s,h=p5.prototype.createVector(0,0),n=Wt.treeRotation_conf*random(.9,1.1),d=Et.treeTrunkHeight*r,c=Wt.treeBranchHeight_conf,l=Wt.treeMaxFork_conf,m=[],u=[],p=d*random(.08,.12),g=d*random(.25,.33),f=random(Wt.fruitLevelMinRange[0],Wt.fruitLevelM
MinRange[0]+Wt.fruitLevelMinRange[1])>>0,M=Wt.fruitFactor*random(.8,1.2),x=0,S=Wt.fruitRatio*random(.8,1.2);for(let b=0;b<this.maxTrees;b++){if("growth"===this.mode)u[0]=e.color($[Et.treeColor0]),u[1]=e.color(U[Et.treeColor1]),u[2]=e.color(a[Et.leafColor]),u[3]=1==L?e.color(Y[Wt.fruitColor]):null,h.x=t*(.2+.6*random())>>0,h.y=r*(1.1-.2*random())>>0;i=Wt.yzRatio*(r-h.y),d=r*(.3+random(.1))>>0,o=d*(.2+random(.1))>>0,s=.6+random(.2),l=2+random(1)>>0,K[0].color=u[0],K[1].color=u[1],m=[];let b=random(K),y=[];y[0]=new BtM
(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),b=random(K),y[1]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),b=random(K),y[2]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),m.push(y[0]),m.push(y[1]),m.push(y[2]),1==L&&(b=random(K),y[3]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),m.push(y[3]),x=Wt.maxFruitProM
b*random(.7,1));for(let t=0;t<m.length;t++)m[t].color=u[t],m[t].colorSD=C;this.trees.push(new Dt(h.copy(),n,i,d,o,c,s,l,this.minLength,this.minWidth,this.rotationError,this.lengthError,m,this.stepDistance,0,this.mode,p,g,f,M,x,S,this.index))}this.sortTrees()}drawAllTrees(t,r){for(let e=0;e<this.maxTrees;e++)ht=0,this.trees[e].drawTree(this.currentLevel,t,r)}getForceB(){let t=this.gCenter,r=p5.Vector.dist(t,ct[1].location);return Math.min(ct[1].charge/Math.pow(r,2),1)}animateAllTrees(){if("growth"==this.mode&&!nt)reM
turn!1;for(let t=0;t<this.maxTrees;t++)this.trees[t].a=this.aLambda(this.trees[t].location,100+dt),this.trees[t].b=this.bLambda(this.trees[t].getForceA(),100+dt),this.trees[t].c=this.cLambda(this.trees[t].getForceB(),100+dt),this.trees[t].updateA(this.mode),this.trees[t].updateB(this.mode),this.trees[t].updateC(this.mode);it%30==0&&this.getForceB()>t/1e8/2?this.lightsOn=!0:it%30==0&&(this.lightsOn=!1)}}class Dt{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p,g,f,x,S,b,y,w,V){this.location=t,this.rotation=r,this.zShift=e,M
this.trunkHeight=i,this.bTrunkHeight=this.trunkHeight,this.trunkWidth=o,this.branchHeight=a,this.branchWidth=s,this.branchLocation=p5.prototype.createVector(0,-this.bTrunkHeight>>0),this.dynamicLeafLength=f,this.dynamicLeafCutoff=x,this.maxFork=h,this.bMaxFork=this.maxFork,this.minLength=n,this.minWidth=d,this.rotationError=c,this.bRotationError=this.rotationError,this.lengthError=l,this.bLengthError=this.lengthError,this.stepDistance=u,this.level=p,this.mode,this.brushes=m,this.bColors=[this.brushes[0].color,this.M
brushes[1].color,this.brushes[2].color],this.maxLeaves=random(3)>>0,this.tError=random()*Math.PI/40,this.a=0,this.b=0,this.c=0,this.fruitStart=S,this.fruitFactor=b,this.fruitProbability=y,this.fruitRatio=w,this.index=V,0==this.level?M=1:this.level>M&&(M=this.level),this.branches=this.generateBranches()}getMinGrassHeight(){return 0==this.index?f.minGround:this.index>0?f.trees[this.index-1].location.y:void 0}getForceA(){let r;r=this.location;let e=p5.Vector.dist(r,ct[0].location);return Math.min(ct[0].charge/Math.powM
(e,2)*1e8/t,1)}getForceB(){let r;r=this.location;let e=p5.Vector.dist(r,ct[1].location);return Math.min(ct[1].charge/Math.pow(e,2)*1e8/t,1)}updateA(t){if("growth"!==t)return!1;this.rotationError=this.bRotationError*(3+this.a),this.lengthError=this.bLengthError*(1+this.a)}updateB(t){if("growth"!==t)return!1;this.trunkHeight=this.bTrunkHeight*(.9+.1*this.b),this.maxFork=Math.max(this.maxFork*(.95+.05*this.b),2),this.branches=[],this.branches=this.generateBranches()}updateC(t){if("growth"!==t)return!1;this.brushes[0].M
color.setRed(constrain(p5.prototype.red(this.bColors[0])+14*this.c>>0,0,255)),this.brushes[0].color.setGreen(constrain(p5.prototype.green(this.bColors[0])+14*this.c>>0,0,210)),this.brushes[0].color.setBlue(constrain(p5.prototype.blue(this.bColors[0])+14*this.c>>0,0,210)),null!=this.brushes[1].color&&(this.brushes[1].color.setRed(constrain(p5.prototype.red(this.bColors[1])+14*this.c>>0,0,200)),this.brushes[1].color.setGreen(constrain(p5.prototype.green(this.bColors[1])+14*this.c>>0,0,180)),this.brushes[1].color.setBM
lue(constrain(p5.prototype.blue(this.bColors[1])+14*this.c>>0,0,180))),null!=this.brushes[2].color&&(this.brushes[2].color.setRed(constrain(p5.prototype.red(this.bColors[2])+14*this.c>>0,0,200)),this.brushes[2].color.setGreen(constrain(p5.prototype.green(this.bColors[2])+14*this.c>>0,0,180)),this.brushes[2].color.setBlue(constrain(p5.prototype.blue(this.bColors[2])+14*this.c>>0,0,180)))}sortBranches(){this.branches.sort(compare)}generateBranches(){let t,r,e=this.branchHeight*this.trunkHeight,i=this.branchWidth*thisM
.trunkWidth,o=(-20+random(10))*this.branchHeight,a=[],s=p5.prototype.createVector(0,-this.bTrunkHeight),h=Math.round(Math.sin(ht+10*random()));for(;e>this.minLength&&i>this.minWidth&&a.length<1+this.maxFork*random()&&this.level<v;)t=2*this.rotation*Math.sin(Math.PI/2*(2*h+1+2*a.length))*Math.floor(1+a.length/2)*(1+random(this.rotationError)),r=e*(1+this.lengthError*random()),a.push(new Dt(s,t,o,r,i,this.branchHeight,this.branchWidth,this.maxFork,this.minLength,this.minWidth,this.rotationError,this.lengthError,this.M
brushes,this.stepDistance,this.level+1,this.mode,this.dynamicLeafLength,this.dynamicLeafCutoff,this.fruitStart,this.fruitFactor,this.fruitProbability,this.fruitRatio,this.index));return a}drawTree(e,i,o){if(i.push(),this.level>0){if(i.rotate(.25*this.rotation*Math.sin(5*this.level+10*this.index+100*this.branches.length+150*this.rotation+200*this.zShift)),this.level==e){i.stroke("ivory"),i.strokeWeight(20),i.noStroke();let r,e,a=p5.prototype.createVector(0,0),s=this.location,h=Math.max(this.trunkWidth,this.minWidth)M
,n=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),d=Math.sin(21*ht)*this.rotation*1.3,c=this.minWidth,l=ot[0].SWRatio,m=ot[0].stepSpeed,u=[];if(u[0]=roundVector(a),r=p5.Vector.lerp(a,s,.33333),e=r.mag(),r.add(p5.prototype.createVector(e*random(-this.bLengthError,this.bLengthError),e*random(-this.bLengthError,this.bLengthError))),u[1]=roundVector(r),r=p5.Vector.lerp(a,s,.66666),e=r.mag(),r.add(p5.prototype.createVector(e*random(-this.bLengthError,this.bLengthError),e*random(-this.bLengthError,this.bLengthEM
rror))),u[2]=roundVector(r),u[3]=roundVector(s),this.brushes[0].drawBezier(u[0],u[1],u[2],u[3],h,n,d,c,l,m,i,o),h=Math.max(.8*this.trunkWidth,2*this.minWidth),n=Math.max(this.branchWidth*this.trunkWidth*.8,2*this.minWidth),this.brushes[1].drawBezier(u[0],u[1],u[2],u[3],h,n,d,c,l,m,i,o),this.trunkHeight<Math.max(this.dynamicLeafCutoff,2*this.minWidth)&&this.trunkHeight>0){let r,e,a,s,h,n,d,c,l,m,u,p=ot[0].rotation,g=ot[0].SWRatio,f=ot[0].minWidth,M=ot[0].stepSpeed,x=Math.max(20,t/80);for(let t=0;t<this.maxLeaves;t++M
){u=2*Math.PI/this.maxLeaves*t+random()*this.tError,r=[this.dynamicLeafLength/4-random()*this.dynamicLeafLength/2>>0,1.05*-this.dynamicLeafLength+this.dynamicLeafLength*random()*.1>>0],m=this.dynamicLeafLength/(1+4*random()>>0),e=[m>>0,m*Math.sin(u)>>0],h=[1/6-random()/3*this.dynamicLeafLength,1/6-random()/3*this.dynamicLeafLength],n=[1/6-random()/3*this.dynamicLeafLength,1/6-random()/3*this.dynamicLeafLength],a=[(m+this.dynamicLeafLength)*Math.cos(u)/3+h[0]>>0,(m+this.dynamicLeafLength)*Math.sin(u)/3+h[1]>>0],s=[2M
*(m+this.dynamicLeafLength)*Math.cos(u)/3+n[0]>>0,(2*m+this.dynamicLeafLength)*Math.sin(u)/3+n[1]>>0],d=[(m+this.dynamicLeafLength)*Math.cos(u)>>0,(m+this.dynamicLeafLength)*Math.sin(u)>>0],c=[(m+this.dynamicLeafLength)*Math.cos(u)/3-h[0]>>0,(m+this.dynamicLeafLength)*Math.sin(u)/3-h[1]>>0],l=[2*(m+this.dynamicLeafLength)*Math.cos(u)/3-n[0]>>0,(2*m+this.dynamicLeafLength)*Math.sin(u)/3-n[1]>>0],i.push();let S=[];i.translate((e[0]+d[0])/2>>0,(e[1]+d[1])/2>>0),S[0]=roundVector(p5.prototype.createVector(0,0)),S[1]=rouM
ndVector(p5.prototype.createVector(a[0],a[1])),S[2]=roundVector(p5.prototype.createVector(s[0],s[1])),S[3]=roundVector(p5.prototype.createVector(d[0],d[1])),this.brushes[2].drawBezier(S[0],S[1],S[2],S[3],x,.8*x>>0,p,f,g,M,i,p5),S[0]=roundVector(p5.prototype.createVector(0,0)),S[1]=roundVector(p5.prototype.createVector(c[0],c[1])),S[2]=roundVector(p5.prototype.createVector(l[0],l[1])),S[3]=roundVector(p5.prototype.createVector(d[0],d[1])),this.brushes[2].drawBezier(S[0],S[1],S[2],S[3],x,.8*x>>0,p,f,g,M,i,p5),i.noStrM
oke(),i.tint(255,10),i.fill(this.brushes[2].color),i.beginShape(),i.curveVertex(0,0),i.curveVertex(a[0],a[1]),i.curveVertex(s[0],s[1]),i.curveVertex(d[0],d[1]),i.curveVertex(l[0],l[1]),i.curveVertex(c[0],c[1]),i.endShape(o.CLOSE),i.tint(255,255),i.pop()}if("undefined"!=this.brushes[3]&&null!=this.brushes[3]&&this.level>=this.fruitStart){let r=p5.prototype.createVector(0,0),e=t/50*this.fruitRatio>>0,a=random(5,8)>>0,s=0,h="bezier",n=Math.max(.2*this.minWidth,t/100);i.push(),i.translate(random(-2*e,2*e)>>0,random(0,4M
*e)>>0),this.brushes[3].drawPoly(r,e,a,s,h,n,ot[0].rotation,e*this.fruitFactor>>0,ot[0].SWRatio,ot[0].stepSpeed,i,o),i.pop()}}}}else if(0==this.level){if(i.translate(this.location.x>>0,this.location.y>>0),et&&this.level==e){let r;for(let e=0;e<Wt.maxGClumps[0];e++)r=random(Lt),r.range=Wt.maxGRange*random(.8,1.2)*t,r.position=o.createVector(constrain(random(-1,1)*r.range>>0,-this.location.x,t-this.location.x),random(0,-(this.location.y+3*this.minWidth-this.getMinGrassHeight()))>>0),r.draw(i,o)}if(i.rotate(.25*this.rM
otation*Math.sin(5*this.level+10*this.index+100*this.branches.length+150*this.rotation+200*this.zShift)),this.level==e){let e=p5.prototype.createVector(0,0),a=this.branchLocation,s=Math.max(this.trunkWidth,this.minWidth),h=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),n=Math.sin(15*ht+25*this.index)*this.rotation*1.3,d=this.minWidth,c=ot[0].SWRatio,l=ot[0].stepSpeed;if(this.brushes[1].drawLine(e,a,s,h,n,d,c,l,i,o),s=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),h=Math.max(this.branchWidth*thisM
.branchWidth*this.trunkWidth,this.minWidth),n=Math.sin(34*ht)*this.rotation*1.3,this.brushes[0].drawLine(p5.prototype.createVector(0,0),a,s,h,n,d,c,l,i,o),s=Math.max(this.branchWidth*this.trunkWidth*.5,3*this.minWidth),h=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),this.brushes[1].drawLine(p5.prototype.createVector(0,0),a,s,h,n,d,c,l,i,o),et&&this.location.y<1.1*r){let e;for(let a=0;a<Wt.maxGClumps[1];a++)e=random(Lt),e.range=Wt.maxGRange*random(.1,.35)*t,e.position=o.createVector(constM
rain(random(-1,1)*e.range>>0,-this.location.x,t-this.location.x),random(0,r-this.location.y+3*this.minWidth)>>0),e.draw(i,o)}}}if(ht++,this.level>0&&this.level==e){p5.prototype.createVector(0,0);let t=this.branchLocation,r=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),e=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),a=Math.sin(34*ht)*this.rotation*1.3,s=this.minWidth,h=ot[0].SWRatio,n=ot[0].stepSpeed;this.brushes[0].drawLine(p5.prototype.createVector(0,0),t,r,e,a,s,h,n,i,o),r=MM
ath.max(this.branchWidth*this.trunkWidth*.5,3*this.minWidth),e=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),this.brushes[1].drawLine(p5.prototype.createVector(0,0),t,r,e,a,s,h,n,i,o)}if(0==this.level&&this.branches.length>0&&this.level<e){this.sortBranches();for(let t=0;t<this.branches.length;t++)i.push(),i.translate(this.branchLocation.x>>0,this.branchLocation.y>>0),this.branches[t].drawTree(e,i,o),i.pop()}else if(this.level>0&&this.branches.length>0&&this.level<e){this.sortBranches();M
for(let t=0;t<this.branches.length;t++)i.push(),i.translate(this.branchLocation.x>>0,this.branchLocation.y>>0),this.branches[t].drawTree(e,i,o),i.pop()}i.pop()}}class Pt{constructor(e,i){this.x0=-t/15+random(t/7)>>0,this.aP=r/(2.2*Math.pow(t/2,2))+random(.01),this.cP=1/8*r*random(),this.location=p5.prototype.createVector(this.x0,this.fx(this.x0)),this.bLocation=this.location,this.bLocation.x=this.location.x,this.bLocation.y=this.location.y,this.width=e,this.color=i,this.charge=.6+random(.4),this.nextPoint=p5.prototM
ype.createVector(this.location.x+1>>0,this.fx(this.location.x+1)>>0),this.unitVector=this.getUnitVector()}fx(r){return this.aP*Math.pow(r-t/2,2)+this.cP}getUnitVector(){let t=p5.Vector.mult(this.location,-1),r=p5.Vector.add(this.nextPoint,t);return p5.Vector.normalize(r)}animateComet(){let r=t/lt;this.location.x+=r,this.location.y=this.fx(this.location.x),this.nextPoint=p5.prototype.createVector(this.location.x+1,this.fx(this.location.x+1)),this.unitVector=this.getUnitVector()}}class It{constructor(t,r,e,i,o,a,s,h,M
n,d,c,l){this.minStrokes=t,this.maxStrokes=r,this.minStrokeWeight=e,this.maxStrokeWeight=i,this.rotation=o,this.minSize=a,this.maxSize=s,this.iterations=h,this.sizeError=n,this.angleError=d,this.padding=c,this.brushes=l,this.currentLevel=0}draw(e,i){let o,a,s,h=this.minSize+random()*this.maxSize,n=(this.maxSize-this.minSize)/16,d=standardizeDegree((2*random()-1)*this.angleError,5),c=this.angleError/32,l=r/this.iterations+this.padding,m=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,u=random(0,Math.PI),p=ot[0M
].SWRatio,g=ot[0].stepSpeed;e.push(),e.translate(t/2>>0,r/2>>0),e.rotate(this.rotation);for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=0;M<o;M++)m+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),d+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*c,5),this.angleError),-this.angleError),5),h+=Math.max(Math.min((2*random()-1)*n,this.maxSize),this.minSize),a=i.createVector(constrain(-h/2>>0,.6*-t,.6*t),coM
nstrain(l*f+M*m>>0,.6*-r,.6*r)),s=i.createVector(constrain(h/2>>0,.6*-t,.6*t),constrain(l*f+M*m>>0,.6*-r,.6*r)),u+=random(0,Math.PI/16),e.push(),e.rotate(d),this.brushes[0].drawLine(a,s,m,m,u,n,p,g,e,i),e.pop()}d=standardizeDegree((2*random()-1)*this.angleError,5),h=this.minSize+random()*this.maxSize,m=this.minStrokeWeight+random()*this.maxStrokeWeight>>0;for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=1;M<o;M++)a=i.createVector(constrain(-h/2>>0,.6*M
-t,.6*t),constrain(-l*f-M*m>>0,.6*-r,.6*r)),s=i.createVector(constrain(h/2>>0,.6*-t,.6*t),constrain(-l*f-M*m>>0,.6*-r,.6*r)),u+=random(0,Math.PI/16),m+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),d+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*c),this.angleError),-this.angleError),5),h+=Math.max(Math.min((2*random()-1)*n,this.maxSize),this.minSize),e.push(),e.rotate(d),this.brushes[0].drawLine(a,s,m,m,u,n,p,g,e,i),e.pop()}e.pop()}}class Gt extends It{constructoM
r(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p){super(t,r,e,i,o,a,s,h,n,d,c,l),this.radius=m,this.position=u,this.sunBrushFactor=p}draw(r,e){if(0==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.radius,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/100>>0;this.brushes[0].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*this.sunBrushFactor>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}else if(1==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.M
radius*random(.3,.6)>>0,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/200>>0,d=3*this.sunBrushFactor;this.brushes[1].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*d>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}else if(2==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.radius*random(.1,.2)>>0,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/200>>0,d=5*this.sunBrushFactor;this.brushes[0].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*d>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}}}class Tt eM
xtends It{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u){super(t,r,e,i,o,a,s,h,n,d,c,l),this.curvature=m,this.height=u,this.dBezierVectors=[]}draw(e,i){let o,a,s,h,n,d=this.minSize+random()*this.maxSize,c=(this.maxSize-this.minSize)/16,l=standardizeDegree((2*random()-1)*this.angleError,5),m=this.angleError/32,u=r/this.iterations+this.padding,p=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,g=random(0,Math.PI);ot[0].SWRatio,ot[0].stepSpeed;if(0==this.currentLevel){e.fill(this.brushes[1].color1);let o=!0,a=5*p;f.minM
Ground=1.1*this.height+a/2>>0,this.brushes[1].drawRect(new i.createVector(0,1.1*this.height+a/2>>0),2.5*t,1.1*r-this.height,0,"line",a,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,2*ot[0].stepSpeed,o,e,i)}e.push(),e.translate(t/2,this.height);for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=0;M<o;M++){if(p+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),l+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*M
m),this.angleError),-this.angleError),5),d+=Math.max(Math.min((2*random()-1)*c,this.maxSize),this.minSize),a=i.createVector(constrain(-d/2>>0,.6*-t,.6*t),constrain(u*f+M*p>>0,.1*-r,1.1*r-this.height)),s=i.createVector(constrain(d/2>>0,.6*-t,.6*t),constrain(u*f+M*p>>0,.1*-r,1.1*r-this.height)),a.dist(s)<t/2)return void(this.currentLevel=this.iterations);0==this.dBezierVectors.length?(this.dBezierVectors[0]=roundVector(a),h=p5.Vector.lerp(a,s,.33333),n=h.mag(),h.add(i.createVector(n*random(.1*-this.curvature,.1*this.M
curvature),n*random(-this.curvature,this.curvature))),this.dBezierVectors[1]=roundVector(h),h=p5.Vector.lerp(a,s,.66666),n=h.mag(),h.add(p5.prototype.createVector(n*random(.1*-this.curvature,.1*this.curvature),n*random(-this.curvature,this.curvature))),this.dBezierVectors[2]=roundVector(h),this.dBezierVectors[3]=roundVector(s)):(this.dBezierVectors[0]=roundVector(a),h=p5.Vector.lerp(a,s,.33333),n=h.mag(),this.dBezierVectors[1].y=this.dBezierVectors[1].y+n*random(this.curvature)>>0,this.dBezierVectors[2].y=this.dBezM
ierVectors[2].y+n*random(this.curvature)>>0,this.dBezierVectors[3]=roundVector(s)),g+=random(0,Math.PI/16),e.push(),e.rotate(l),this.brushes[0].drawBezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],p,p,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,e,i),e.pop()}}e.pop()}}class Ht extends Tt{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p){super(t,r,e,i,o,a,s,h,n,d,c,l,m,u.y),this.position=u,this.range=p}draw(t,r){let e,i,o,a,s=this.minSize+random()*this.maxSizM
e,h=(this.maxSize,this.minSize,standardizeDegree((2*random()-1)*this.angleError,5)),n=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,d=random(0,.03),c=(ot[0].SWRatio,ot[0].stepSpeed,0);t.push(),t.translate(this.position.x>>0,this.position.y>>0),e=this.minStrokes+this.maxStrokes*random();for(let l=0;l<e;l++){let e,l;n+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),h=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*this.angleError,5),this.angleError),-this.angleM
Error),5),a=Math.max(Math.min((2*random()-1)*s,this.maxSize),this.minSize),i=r.createVector(random(-this.range,this.range)>>0,Math.max(0+.1*this.sizeError*random()*a,c)),i.y>c&&(c=i.y),o=r.createVector(i.x+this.sizeError*random(-.1,.1)*a,-1*(a+this.sizeError*random(-.1,.1)*a)),i=roundVector(i),o=roundVector(o),0==this.dBezierVectors.length?(this.dBezierVectors[0]=roundVector(i),e=p5.Vector.lerp(i,o,.33333),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*tM
his.curvature))),this.dBezierVectors[1]=roundVector(e),e=p5.Vector.lerp(i,o,.66666),l=e.mag(),e.add(p5.prototype.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[2]=roundVector(e),this.dBezierVectors[3]=roundVector(o)):(this.dBezierVectors[0]=roundVector(i),e=p5.Vector.lerp(i,o,.33333),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[1]=rouM
ndVector(e),e=p5.Vector.lerp(i,o,.66666),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[2]=roundVector(e),this.dBezierVectors[3]=roundVector(o)),d=random(0,.5),t.push(),t.rotate(h),t.fill("#FF0000"),random()<.4?this.brushes[0].drawBezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],n,n,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,t,r):this.brushes[1].drawBM
ezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],n,n,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,t,r),t.pop()}t.pop()}}class Ot{constructor(t,r,e,i,o,a,s,h){this.size=t,this.scale=r,this.alpha=e,this.gamma=1/Math.max(o,.01),this.marginPX=a,this.triangleFilterMode=s,this.maxColorChanges=i,this.graphic=h.createGraphics(h.width,h.height),this.image=this.graphic.createImage(this.size,this.size);let n,d,c,l=this.size*this.size*4,m=[0,0,0];this.image.loadPiM
xels();for(let t=0;t<l;t+=4)d=t%(4*this.size)>>0,c=t/(4*this.size)>>0,n=255*random()>>0,this.maxColorChanges[0]>0&&this.maxColorChanges[1]>0&&this.maxColorChanges[2]>0&&(c>d&&this.triangleFilterMode?(m[0]=this.maxColorChanges[0]*(1-random())>>0,m[1]=this.maxColorChanges[1]*(1-random())>>0,m[2]=this.maxColorChanges[2]*(1-random())>>0):(m[0]=this.maxColorChanges[0]*random()>>0,m[1]=this.maxColorChanges[1]*random()>>0,m[2]=this.maxColorChanges[2]*random()>>0)),this.image.pixels[t]=Math.min(n+m[0],255),this.image.pixelM
s[t+1]=Math.min(n+m[1],255),this.image.pixels[t+2]=Math.min(n+m[2],255),this.image.pixels[t+3]=this.alpha;this.image.updatePixels(),this.image.resize(100*this.scale[0],100*this.scale[1])}drawFilter(t,r){let e,i,o,a=this.marginPX>>0,s=this.marginPX>>0,h=t.height-this.marginPX>>0,n=t.width-this.marginPX>>0;for(;s<h;)s+this.image.height>h&&a+this.image.width>n?t.image(this.image,a,s,n-a,h-s):s+this.image.height>h&&!(a+this.image.width>n)?t.image(this.image,a,s,this.image.width,h-s):!(s+this.image.height>h)&&a+this.imaM
ge.width>n?t.image(this.image,a,s,n-a,this.image.height):t.image(this.image,a,s,this.image.width,this.image.height),a+=this.image.width,a>=n&&(a=this.marginPX>>0,s+=this.image.height);if(!Wt.suppressGammaAdjust){t.loadPixels();let r=t.width*t.height*4,a=[1,1,1];for(let s=0;s<r;s+=4)i=s%(4*t.width),o=s/(4*t.height)>>0,i>4*this.marginPX>>0&&o>4*this.marginPX>>0&&i<4*(t.width-this.marginPX)>>0&&o<4*(t.height-this.marginPX)>>0&&(e=this.gamma*(.8+.4*random()),a[0]=255*Math.pow(t.pixels[s],e),a[1]=255*Math.pow(t.pixels[sM
+1],e),a[2]=255*Math.pow(t.pixels[s+2],e),t.pixels[s]=Math.min(a[0]>>0,255),t.pixels[s+1]=Math.min(a[1]>>0,255),t.pixels[s+2]=Math.min(a[2]>>0,255))}}}var myp5=new p5(sketch)
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vb26e4fa9e5134444860be286fd8771851679335129114" integrity="sha512-M3hN/6cva/SjwrOtyXeUa5IuCT0sedyfT+jK/OV+s+D0RnzrTfwjwJHhd+wYfMm9HJSrZ1IKksOdddLuN6KOzL
w==" data-cf-beacon='{"rayId":"7ac3eb9a0dbaa222","version":"2023.3.0","b":1,"token":"6c07c178c94442f695e7a0a2aaee641a","si":100}' crossorigin="anonymous"></script>
FjDOUT:B6A9196D072B57D990D33A66548B618D8B0DD40BC0219F48C5DCDAD21FCDB8CF
text/plain;charset=utf-8
  "name": "btcbbc.sats",
7j5+:BTC.BTC:thor1szrq0atq2ahrg0lccfmvk4k9jjqqg6ngmcau5ce
text/plain;charset=utf-8
text/plain;charset=utf-8
FjDOUT:A27B620B254905AB667C5B0CFEE1A592A87D855018469633695BEEA9EEB570C6
Mined by AntPool964K
CjA+:BTC.BTC:maya1d2960a9m20l2m0k7wrd9fr5f3spfjvmn0lcm6s:wr:30:TIER1
FjDOUT:4048344621CEE5CF02AAD3364FE68F310CA631D6C22564E960DE01083475E75F
FjDOUT:85A5EC33FF2B9DB42FBBB2976489DDB903A50FC9035E0037165321A7D882D1E4
FjDOUT:00C007341EE8789FD5E4B7E26F266E0AF68F75BA3E8DD4AA9AF474704CB8E2E9
FjDOUT:8C75B31E275F117A7E314688541D1E85A394211C37FCC416BA26F0768B6255CB
0:`thdt(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`
0:`thdt(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t~
0:`thdt(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t(`t~
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>ArboCinematica</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandbox="allow-scripts" type="text/M
javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="allow-scripts" type="text/jaM
vascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <script type="text/javascript">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed ==M
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274M
213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this M
function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
              width: 100%;
              height: 100%;
              margin: 0px;
              padding: 0;
              display: flex;
              justify-content: center;
              align-items: center;
              top: 0;
              bottom: 0;
              left: 0;
              right: 0;
              max-width: 100%;
              max-height: 100%;
              margin: auto;
              overflow: auto;
              object-fit: contain;
              position: fixed;
<script type="text/javascript">
    const rand = mathRand();
    const container = document.createElement("div")
    container.innerM
HTML = "<span>seed: " + seed + "</span><br>";
    console.log(container.innerHTML)
    let t,r,e,i,o=1e9*mathRand();function nRandom(t,r,e,i){return i===Math.floor?void 0!==e?Math.floor(random(r,e)):Math.floor(random(r)):void 0!==e?random(r,e):random(r)}function randomGaussian(t,r){return p5.prototype.randomGaussian(t,r)}function nRandomBoolean(t,r){return mathRand()<r}function random(t,r){return Array.isArray(t)?arrayPick(t):(void 0===r&&(r=void 0===t?1:t,t=0),mathRand()*(r-t)+t)}function roundVector(t){return t.M
x=Math.round(t.x),t.y=Math.round(t.y),t}function constrain(t,r,e){return Math.min(Math.max(t,r),e)}function nArrayPick(t,r,e){return void 0!==e?arrayPick(r,e):arrayPick(r)}function arrayPick(t,r){if(void 0===r){if(0===(r=t.slice()).length)return;t=[];for(let e=0;e<r.length;e++)t[e]=100*(e+1)/r.length}let e=100*random();if(r.length>0&&t.length==r.length){for(var i=[],o=0;o<t.length;o++)i.push({weight:t[o],element:r[o]});i.sort((function(t,r){return t.weight<r.weight?-1:t.weight==r.weight?0:1}));for(let t=0;t<i.lengtM
h;t++){if(t==i.length-1)return i[t].element;if(e<i[t].weight)return i[t].element}}}p5.prototype.randomSeed(o);let a,s,h,n,d,c,l,m,u,p,g,f,M,x,S,b,y,w,V,R,k,v,C,L,z,E,W,F,B,A,D,P,I=700,G=["#e9ecef","#F2F2F0","#f7fff7","#D9C6B0"],T=["#386641","#6a994e","#a7c957","#f2e8cf","#bc4749","#3c1642","#086375","#1dd3b0","#affc41","#b2ff9e"],H=["#A3B4BF","#D8EBF2","#1A3940","#4C6C73","#819FA6","#04301C","#0A572B","#30C771","#F2FFFA","#9EFCFF"],O=["#A0C603","#F2A81D","#734002","#F2985C","#D96A29","#E0FF84","#F2DA50","#D9BA55","M
#8C791B","#595911"],X=["#5A7302","#324001","#86A614","#B6D93B","#022601","#155902","#267302","#82BF26","#BFD962","#E7F2BD"],N=["#F0F0F0","#E3BF0D","#CACACA","#F2CF1D","#F2BD1D","#F28E13","#F24405"],_=["#592918","#8C564A","#8C3F3F","#792938","#AC566A","#AC3F5F"],j=["#2C4001","#364022","#5A7302","#93A603","#736830"],q=["#9CB0D9","#CEDEF2","#667302","#F2EFBD","#F2CA7E"],U=["#BF8756","#59412D","#A68C76","#402A1E","#F2F2F2","#D9843B","#F2CEAE","#BF5517","#8C260F","#590A0A"],Y=["#A60311","#8C0327","#BF046B","#A69B03","#FM
2A766","#730217","#F20544","#BF0436","#D9296A","#344973"],$=["#B07756","#55012D","#A65C66","#301A10","#C2C2B2","#C9542B","#F7BEAE","#CF5827","#7C361F","#790A2A"],J=20,K=[],Q=!0,Z=!0,tt=!0,rt=!0,et=!0,it=0,ot=[],at=[],st=["growth"],ht=0,nt=!0,dt=0,ct=[],lt=300,mt=["#0468BF","#0487D9","#05AFF2","#05C7F2"],ut=[],pt=1,gt=1,ft=.05,Mt=-.04,xt=[],St=!1,bt=!1,yt=[],wt=!1,Vt=!1,Rt=!0,kt=1/32,vt=!1,Ct="normal",Lt=[],zt=!1;const Et={season:nArrayPick("season",[50,75,92,100],["spring","summer","fall","winter"]),fruitsOn:nRandoM
mBoolean("fruit/fruitsOn",.6),maxTrees:nRandom("maxTrees",1,6,Math.floor),backgroundSun:nRandom("background/backgroundSun",0,5,Math.floor),sRadius:nRandom("sun/sRadius",.05,1/12),treeTrunkHeight:nRandom("treeTrunkHeight",.72,.85),treeColor0:nRandom("color/treeColor0",0,$.length-1,Math.floor),treeColor1:nRandom("color/treeColor1",0,U.length-1,Math.floor),leafColor:nRandom("color/leafColor",0,9,Math.floor)};window.$generativeTraits={...Et},console.log(window.$generativeTraits);const Wt={backgroundColor:nArrayPick("baM
ckground/backgroundColor",[25,50,75,100],G),treeRotation_conf:nRandom("treeRotation",Math.PI/10,Math.PI/3+Math.PI/10)*randomSign(),treeMaxFork_conf:nRandom("treeMaxFork",2,5,Math.floor),treeBranchHeight_conf:nRandom("treeBranchHeight",.45,.6),lengthError:nRandom("lengthError",.12,.22),forestMaxLevels:nRandom("maxLevels",5,7,Math.floor),colorSD:nRandom("color/colorSD",.9,3),fruitColor:nRandom("fruit/fruitColor",0,9,Math.floor),fruitLevelMinRange:[nRandom("fruit/fruitLevelMin",[2,3]),nRandom("fruitLevelRange",1,3,MatM
h.floor)],fruitFactor:nRandom("fruit/fruitFactor",2,2.5),fruitRatio:nRandom("fruit/fruitRatio",.5,1),maxFruitProb:nRandom("fruit/maxFruitProb",.6,.93),yzRatio:nRandom("yzRatio",.1,.4),brushRotationFactor:nRandom("brushRotationFactor",.6,1),dColorSD:nRandom("dColorSD",1,3),curvature:nRandom("curvature",.5,3),curveHeight:nRandom("curveHeight",.75,.88),fileNumber:(9999*random()>>0).toString(),highResInnerCanvas:nRandom("walls",[[3500,4e3],[3850,4400],[4200,4800],[4550,5200]]),sColorSD:nRandom("sun/sColorSD",2.5,6),sunM
Pos:[nRandom("sun/X",.2,.8),nRandom("sun/Y",.03,.12)],sunBrushFactor:nRandom("sun/sunBrushFactor",.3,.65),sunBrushes:getRandomArray("sun/SunBrush",2,0,7),gColorSD:nRandom("grass/gColorSD",3,15),maxGVariety:nRandom("grass/maxGVariety",1,4,Math.floor),gCurvature:nRandom("grass/gCurvature",.1,.8),maxGClumps:getRandomArray("grass/maxGClumps",2,1,4),maxGLeaves:nRandom("grass/maxGLeaves",4,7),maxGRange:nRandom("grass/maxGRange",.09,.35),filterSize:nRandom("filterSize",2,4,Math.floor),filterScale:[nRandom("filterScaleX",5M
,8,Math.floor),nRandom("filterScaleY",5,8,Math.floor)],filterAlpha:nRandom("filterAlpha",220,255,Math.floor),maxColorChanges:[nRandom("maxColorChanges0",15,35,Math.floor),nRandom("maxColorChanges1",15,35,Math.floor),nRandom("maxColorChanges2",15,35,Math.floor)],maxSplashWeight:nRandom("maxSplashWeight",7,10,Math.floor),suppressGammaAdjust:nRandomBoolean("suppressGammaAdjust",.35),gammaInv:nRandom("gammaInv",.02,1),triangleFilterMode:nRandomBoolean("triangleFilterMode",.33)};function getRandomArray(t,r,e,i,o){let a,M
s=[],h=void 0!==o;for(let o=0;o<r;o++)a=t+"_"+o,h?s.push(nRandom(a,e,i,h)):s.push(nRandom(a,e,i));return s}function standardizeDegree(t,r){let e=Math.pow(10,r),i=Math.sign(t);return Math.round((i*p5.prototype.fract(t)+t%360)*e)/e}function saveCanvas(e,i,o){vt=!0,Ct="freeze",null==W&&(z=kt*t,W=e.createGraphics(t+2*z>>0,r+2*z>>0),W.noStroke(),W.tint(255,255),W.fill(Wt.backgroundColor),W.rect(0,0,t+2*z>>0,r+2*z>>0),W.tint(255,230),W.image(n,z>>0,z>>0,n.width,n.height),W.noTint(),n.clear(),n.image(W,0,0,n.width,n.heighM
t),Rt&&P.drawFilter(n,p5)),o&&W.get().save(E+"_"+e.hex(i).toString(),"png"),vt=!1}function randomSign(){let t=Math.round(Math.abs(Math.sin(10*random())));return Math.cos(t*Math.PI)}function compare(t,r){return t.zShift>r.zShift?-1:1}var sketch=function(o){o.setup=function(){switch(E="ArboCinematica_"+Wt.fileNumber,t=Wt.highResInnerCanvas[0],r=Wt.highResInnerCanvas[1],e=Math.sqrt(Math.pow(t,2),Math.pow(r,2)),i=2*t+2*r,F=Math.max(Math.min(o.windowWidth,7*o.windowHeight/8>>0),I)>>0,B=8*F/7>>0,h=o.createCanvas(F,B),h.sM
tyle="",h.style.opacity="",h.style.filter="",h.style["-ms-filter"]="",h.id("ArboCinematica"),n=o.createGraphics(t,r),v=Wt.forestMaxLevels,o.frameRate(1),n.noStroke(),Et.season){case"winter":a=H,s=q;break;case"spring":a=X,s=j;break;case"fall":a=O,s=q;break;default:a=T,s=j}L=Et.fruitsOn,l="Ellipse",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],K.push(new Bt(l,m,u,p,g,d)),l="Ellipse",m=.5,u=.3*Wt.brushRotationFactor,p=!1,g=[random($)],K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,M
p=!1,g=[random($)],d=function(t,r,e){return Math.sin(2*t+r/10)},K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.cos(t)},K.push(new Bt(l,m,u,p,g,d)),o.noiseSeed(random()),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return o.noise(t+r/10)},K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.cos(e/10-Math.PI)},K.push(new Bt(M
l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.abs(Math.sin(t+r/10))},K.push(new Bt(l,m,u,p,g,d)),l="SplashRV",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],c=.1,d=function(t,r,e,i){return Math.sin(2*t+r/10)+randomGaussian(0,c)},K.push(new Bt(l,m,u,p,g,d,c)),l="RSphere",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($),random($)],d=function(){return[1-random(random(random())),random()]},K.push(new Bt(l,m,u,p,g,d)),l="RLSphere",m=.1,u=.1*Wt.bruM
shRotationFactor,p=!1,g=[random($),random($)],d=function(){return[1-random(random(random())),random()]},K.push(new Bt(l,m,u,p,g,d));let M=J,W=.5*J>>0,A=0,G=7,U=.05,Y=.3;if(ot.push(new Ft(M,W,A,G,U,Y)),M=J,W=.5*J>>0,A=0,G=7,U=.015,Y=.1,ot.push(new Ft(M,W,A,G,U,Y)),at[0]=[function(t){return Math.sin(Math.sin(1+.9*Math.sin(t+Math.PI)))},1],at[1]=[function(t){return 2*Math.cos(4*t)},1],at[2]=[function(t){return Math.exp(Math.cos(t))-.9*Math.cos(4*t)+Math.sin(t/12)^5},12],Z){n.angleMode(o.DEGREES),S=t/3.5>>0,b=.7*t+MathM
.sqrt(t*r)*random(),y=10+random(10)>>0,ut=[mt[random()*mt.length>>0],mt[random()*mt.length>>0]];let e=K[random(0,7)>>0],i=[new Bt(e.type,e.widthError,e.rotationError,e.strokeOn,ut,e.function,e.sd,1)];w=Wt.dColorSD;for(let r=0;r<1;r++)V=5+10*random()>>0,gt=t/700>>0,x=t/700+10*t/700>>0,k=t/100+random(t/300)>>0,R=standardizeDegree(random(360),5),xt.push(new It(pt,V,gt,x,R,S,b,y,ft,Mt,k,i));n.angleMode(o.RADIANS)}if(tt){n.angleMode(o.DEGREES),S=.65*t>>0,b=random(.8,1)*t>>0,y=4+random(4)>>0;let e=[random(_),random(_)],iM
=K[random(0,7)>>0],a=[];a.push(new Bt(i.type,i.widthError,i.rotationError,i.strokeOn,e,i.function,i.sd,1));let s=[random(_),random(_)];i=K[random(0,7)>>0],a.push(new Bt(i.type,i.widthError,i.rotationError,i.strokeOn,s,i.function,i.sd,1)),w=Wt.dColorSD,R=0;let h=Wt.curvature,d=Wt.curveHeight*r>>0;for(let r=0;r<1;r++)V=10+10*random()>>0,gt=t/150+random(t/100)>>0,x=gt+random(t/100)>>0,k=t/2e3+random(t/2e3)>>0,yt.push(new Tt(pt,V,gt,x,R,S,b,y,ft,Mt,k,a,h,d));n.angleMode(o.RADIANS)}if(et){n.angleMode(o.DEGREES);for(let M
r=0;r<Wt.maxGVariety;r++){let r;S=.09*t>>0,b=random(.15,.2)*t>>0,y=1;let e=[random(s),random(s)],i=Wt.gColorSD,a=random(0,7)>>0;r=5==a?K[random(0,5)>>0]:K[a];let h=[];h.push(new Bt(r.type,r.widthError,r.rotationError,r.strokeOn,e,r.function,i,1));let n=[random(s),random(s)];a=random(0,7)>>0,r=5==a?K[random(0,5)>>0]:K[a],h.push(new Bt(r.type,r.widthError,r.rotationError,r.strokeOn,n,r.function,i,1)),R=0;let d=Wt.gCurvature;V=15+15*random()>>0,pt=8,gt=t/700+random(t/700)>>0,x=gt+random(t/750)>>0,k=t/2e3+random(t/2e3)M
>>0;let c=o.createVector(0,0),l=0,m=.1;Lt.push(new Ht(pt,V,gt,x,R,S,b,y,ft,m,k,h,d,c,l))}n.angleMode(o.RADIANS)}if(rt){n.angleMode(o.DEGREES),S=.65*t>>0,b=random(.8,1)*t>>0,y=3;let e=Wt.sColorSD,i=[random(N),random(N)],a=K[Wt.sunBrushes[0]>>0],s=[];s.push(new Bt(a.type,a.widthError,a.rotationError,a.strokeOn,i,a.function,e,1));let h=[random(N),random(N)];a=Wt.sunBrushes[1]>>0==5?K[random(4)>>0]:K[Wt.sunBrushes[1]>>0],s.push(new Bt(a.type,a.widthError,a.rotationError,a.strokeOn,h,a.function,e,1));let d=0,c=Et.sRadiuM
s*t,l=o.createVector(Wt.sunPos[0]*t,Wt.sunPos[1]*r),m=Wt.sunBrushFactor;V=10+10*random()>>0,gt=t/150+random(t/100)>>0,x=gt+random(t/100)>>0,k=t/2e3+random(t/2e3)>>0,D=new Gt(pt,V,gt,x,d,S,b,y,ft,Mt,k,s,c,l,m),n.angleMode(o.RADIANS)}if(Q){ct.push(new Pt(t/20>>0,o.color("#c6d4ff"))),ct.push(new Pt(t/20>>0,o.color("#fffafb"))),ct[0].color.setAlpha(120),ct[1].color.setAlpha(130);let e=t/30>>0,i=t/900>>0,a=t/500>>0,s=st[0],h=Et.maxTrees,n=.12,d=Wt.lengthError;C=Wt.colorSD,f=new At(h,t,r,n,d,a,s,i,e,(function(t,r){returnM
-.5+Math.sin(t.x+1+r%1e4)}),(function(t,r){return constrain(t,0,1)}),(function(t,r){return constrain(t,0,2)}),null,0),f.setupTrees(o)}Rt&&(P=new Ot(Wt.filterSize,Wt.filterScale,Wt.filterAlpha,Wt.maxColorChanges,Wt.gammaInv,z,Wt.triangleFilterMode,o)),n.background(N[Et.backgroundSun]),o.background(N[Et.backgroundSun])},o.draw=function(){"normal"===Ct?(o.clear(),o.image(n,0,0,F,B),!St&&Z&&(n.angleMode(o.DEGREES),xt[0].draw(n,o),xt[0].currentLevel++,xt[0].currentLevel>xt[0].iterations/2&&(St=!0),n.angleMode(o.RADIANS)M
),St&&!wt&&rt&&(n.angleMode(o.DEGREES),D.draw(n,o),D.currentLevel++,D.currentLevel>=D.iterations&&(wt=!0),n.angleMode(o.RADIANS)),St&&!bt&&tt&&(n.angleMode(o.DEGREES),yt[0].draw(n,o),yt[0].currentLevel++,yt[0].currentLevel>yt[0].iterations/2&&(bt=!0),n.angleMode(o.RADIANS)),bt&&Q&&f.currentLevel<v&&(ct[0].animateComet(),ct[1].animateComet(),f.animateAllTrees(),f.drawAllTrees(n,o),f.currentLevel++,n.tint(255,255)),it++,0==Vt&&f.currentLevel>=v&&(Vt=!0,o.image(n,0,0,F,B),Ct="freeze",saveCanvas(o,it,!1))):zt||(o.imageM
(n,0,0,F,B),zt=!0)},o.windowResized=function(){o.noLoop(),F=Math.max(Math.min(o.windowWidth,7*o.windowHeight/8>>0),I)>>0,B=8*F/7>>0,o.clear(),o.resizeCanvas(F,B),o.image(n,0,0,F,B),Ct&&(zt=!0),o.loop()},o.keyPressed=function(){return"s"!==o.key||vt?"e"!==o.key||vt?void 0:(A=o.get(),o.save(A,E+".png"),!1):(saveCanvas(o,it,!0),!1)}};class Ft{constructor(t,r,e,i,o,a){this.startWidth=t,this.endWidth=r,this.rotation=e,this.minWidth=i,this.SWRatio=o,this.stepSpeed=a}}class Bt{constructor(t,r,e,i,o,a,s,h){this.type=t,thisM
.rotationError=e,this.widthError=r,this.strokeOn=i,this.color=o[0],this.function=a,this.sd=s,this.color1,this.colorSD=void 0===h?0:h,o.length>1&&(this.color1=o[1])}gaussianColor(t,r,e){if(null==t)return;if(0==this.colorSD)return t;let i=constrain(randomGaussian(r.red(r.color(t)),this.colorSD)>>0,0,255)>>0,o=constrain(randomGaussian(r.green(r.color(t)),this.colorSD)>>0,0,255)>>0,a=constrain(randomGaussian(r.blue(r.color(t)),this.colorSD)>>0,0,255)>>0;return r.color(i,o,a)}drawShape(r,e,i,o,a,s){let h,n,d,c,l,m,u,p,gM
,f,M,x,S=e*(1+this.widthError*Math.sin(41*o+9)),b=i+random(this.rotationError);switch(null!=this.color&&(M=this.gaussianColor(this.color,a,s)),null!=this.color1&&(x=this.gaussianColor(this.color1,a,s)),this.type){case"Ellipse":a.fill(M),this.strokeOn||a.noStroke(),h=e*(.9+.1*Math.sin(5*o+18))*(1+this.widthError*Math.sin(2.5*o+18)),a.push(),a.rotate(b),a.ellipse(r.x>>0,r.y>>0,S>>0,h>>0),a.pop();break;case"SplashRadial":a.fill(M),this.strokeOn||a.noStroke(),a.push(),a.rotate(b),a.beginShape();for(let t=0;t<50;t++){leM
t i=p5.prototype.map(t,0,50,0,2*Math.PI),s=e/2+e/2*this.function(i,it,o),h=r.x+s*Math.cos(i),n=r.y+s*Math.sin(i);a.vertex(h,n)}a.endShape(p5.CLOSE),a.pop();break;case"SplashRV":a.fill(M),this.strokeOn||a.noStroke(),a.push(),a.rotate(b),a.beginShape();for(let t=0;t<50;t++){let i=p5.prototype.map(t,0,50,0,2*Math.PI),s=e/2+e/2*this.function(i,it+o,this.sd),h=r.x+s*Math.cos(i),n=r.y+s*Math.sin(i);a.vertex(h,n)}a.endShape(p5.CLOSE),a.pop();break;case"RSphere":n=e/2>>0,d=constrain(Math.pow(e/2,2)*Math.PI/100,50,5e3),c=MaM
th.max(t/800>>0,1),this.strokeOn||a.noStroke(),a.push();for(let t=0;t<d;t++)l=p5.prototype.map(t,0,d,0,2*Math.PI,!0),m=this.function(),u=r.x+Math.cos(l)*m[0]*n,p=r.y+Math.sin(l)*m[0]*n,g=r.x+Math.cos(l)*m[1]*n,f=r.y+Math.sin(l)*m[1]*n,a.fill(M),a.ellipse(u>>0,p>>0,2*c>>0,2*c>>0),a.fill(x),a.ellipse(g>>0,f>>0,2*c>>0,2*c>>0);a.pop();break;case"RLSphere":let i=[];n=e/2>>0,d=constrain(Math.pow(e/2,2)*Math.PI/100,100,200),c=Math.max(t/1e3>>0,1),this.strokeOn||a.noStroke(),a.push();for(let t=0;t<d;t++)l=p5.prototype.map(M
t,0,d,0,2*Math.PI,!0),m=this.function(),u=r.x+Math.cos(l)*m[0]*n,p=r.y+Math.sin(l)*m[0]*n,g=r.x+Math.cos(l)*m[1]*n,f=r.y+Math.sin(l)*m[1]*n,i.push(p5.prototype.createVector(g,f)),a.fill(random([M,x])),a.ellipse(u>>0,p>>0,2*c>>0,2*c>>0);a.fill(x);for(let t=0;t<d;t++){let r=i[t].x,e=i[t].y;a.ellipse(r>>0,e>>0,2*c>>0,2*c>>0)}a.pop();break;default:return!1}}drawLine(r,i,o,a,s,h,n,d,c,l){let m=r,u=o,p=p5.Vector.add(i,p5.Vector.mult(r,-1)),g=p5.Vector.normalize(p),f=p.mag(),M=Math.max(u*n,1),x=f/M,S=0,b=0;for(;m.dist(i)>M
M&&S<e+t/100&&m.dist(r)<=f+t/100;)this.drawShape(m,u,s,S>>0,c,l),S+=d,m.add(p5.Vector.mult(g,M)),b+=1/x,u=Math.max(p5.prototype.lerp(o,a,b),h),M=Math.min(u*n,e/50),x=f/M}drawVertexShape(t,r,e,i,o,a,s,h){for(let n=0;n<t.length;n++)this.drawLine(t[n][0],t[n][1],r,r,e,i,o,a,s,h)}drawBezier(r,o,a,s,h,n,d,c,l,m,u,p){let g=roundVector(r.copy()),f=h,M=r.dist(o)+o.dist(a)+a.dist(s),x=Math.max(f*l,1),S=M/x,b=0,y=0;for(;g.dist(s)>x&&b<4*i&&g.dist(r)<=M+t/2;)this.drawShape(g,f,d,b>>0,u,p),b+=m,f=Math.max(p5.prototype.lerp(h,nM
,y),c),x=Math.min(f*l,e/50),S=M/x,y+=1/S,g.x=p5.prototype.bezierPoint(r.x,o.x,a.x,s.x,y),g.y=p5.prototype.bezierPoint(r.y,o.y,a.y,s.y,y)}drawBezierShape(t,r,e,i,o,a,s,h){for(let n=0;n<t.length;n++)this.drawBezier(t[n][0],t[n][1],t[n][2],t[n][3],r,r,e,i,o,a,s,h)}drawPoly(t,r,e,i,o,a,s,h,n,d,c,l){let m,u,p,g=[],f=[],M=[];if("bezier"==o){m=4,u=Math.max(m,e)>>0,u=4*Math.round(u/4),p=2*Math.PI/u/4;for(let t=0;t<4*u;t+=4)M[0]=p5.prototype.createVector(r*Math.cos(t*p),r*Math.sin(t*p)),M[1]=p5.prototype.createVector(r*MathM
.cos((t+1)*p),r*Math.sin((t+1)*p)),M[2]=p5.prototype.createVector(r*Math.cos((t+2)*p),r*Math.sin((t+2)*p)),M[3]=p5.prototype.createVector(r*Math.cos((t+3)*p),r*Math.sin((t+3)*p)),g.push([M[0].copy(),M[1].copy(),M[2].copy(),M[3].copy()]);c.push(),c.translate(t.x>>0,t.y>>0),c.rotate(i),this.drawBezierShape(g,a,s,h,n,d,c,l),c.pop()}else{m=3,u=Math.max(m,e)>>0,p=2*Math.PI/u;for(let t=0;t<u;t++)f[0]=p5.prototype.createVector(r*Math.cos(p*t),r*Math.sin(p*t)),f[1]=p5.prototype.createVector(r*Math.cos(p*(t+1)),r*Math.sin(pM
*(t+1))),g.push([f[0].copy(),f[1].copy()]);c.push(),c.translate(t.x>>0,t.y>>0),c.rotate(i),this.drawVertexShape(g,a,s,h,n,d,c,l),c.pop()}}drawRect(e,i,o,a,s,h,n,d,c,l,m,u,p){let g,f,M,x,S,b,y=i,w=o,V=[],R=4,k=[],v=[],C=Math.sqrt(Math.pow(y,2)+Math.pow(w,2)),L=Math.atan(w/y),z=Math.PI/2-L,E=[],W=1/l*10>>0;if("bezier"==s){g=4,R=Math.max(g,4)>>0,R=4*Math.round(R/4),f=2*Math.PI/R/4;for(let t=0;t<4*R;t+=4)t%8==0?(E[0]=L,E[1]=z):(E[0]=z,E[1]=L),v[0]=p5.prototype.createVector(C/2*Math.cos(t*f-E[0]),C/2*Math.sin(t*f-E[0]))M
,v[1]=p5.prototype.createVector(0,0),v[2]=p5.prototype.createVector(0,0),v[3]=p5.prototype.createVector(C/2*Math.cos((t+3)*f-E[1]),C/2*Math.sin((t+3)*f-E[1])),x=v[3].sub(v[0]).heading(),M=p5.Vector.fromAngle(x).normalize(),S=v[3].dist(v[0]),v[1]=p5.Vector.add(p5.Vector.mult(M,S/2),v[0]).copy(),v[2]=p5.Vector.add(p5.Vector.mult(M,S/2),v[2]).copy(),V.push([v[0].copy(),v[1].copy(),v[2].copy(),v[3].copy()]);u.push(),u.translate(e.x>>0,e.y>>0),u.rotate(a),this.drawBezierShape(V,h,n,d,c,l,u,p),u.pop(),m&&i-i/10>t/30&&o-oM
/10>r/30&&(b=[i-i/W,o-o/W],this.drawRect(e,b[0],b[1],a,s,h,n,d,c,l,m,u,p))}else{g=3,R=4,f=2*Math.PI/R;for(let t=0;t<R;t++)t%2==0?(E[0]=L,E[1]=z):(E[0]=z,E[1]=L),k[0]=p5.prototype.createVector(C/2*Math.cos(t*f-E[0]),C/2*Math.sin(t*f-E[0])),k[1]=p5.prototype.createVector(C/2*Math.cos((t+1)*f-E[1]),C/2*Math.sin((t+1)*f-E[1])),V.push([k[0].copy(),k[1].copy()]);u.push(),u.translate(e.x>>0,e.y>>0),u.rotate(a),this.drawVertexShape(V,h,n,d,c,l,u,p),u.pop(),m&&i-i/20>t/30&&o-o/20>r/30&&(b=[i-i/W,o-o/W],this.drawRect(e,b[0],M
b[1],a,s,h,n,d,c,l,m,u,p))}}}class At{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u){this.maxTrees=t,this.width=r,this.height=e,this.rotationError=i,this.lengthError=o,this.stepDistance=a,this.mode=s,this.minWidth=h,this.minLength=n,this.trees=[],this.aLambda=d,this.bLambda=c,this.cLambda=l,this.bubbles=m,this.index=u,this.lightsOn=!1,this.gCenter=p5.prototype.createVector(r/2>>0,e/2>>0),this.currentLevel=0,this.minGround}static transformLocalToGlobal(r,e){let i=p5.prototype.createVector(0,e.y);if(0===r)i.x=e.x>>0;else iM
.x=e.x+getScreenXPosition(t,r,!1)>>0;return i}reassignIndex(t,r){t.index=r;for(let e=0;e<t.branches.length;e++)this.reassignIndex(t.branches[e],r)}sortTrees(){this.trees.sort(compare);for(let t=0;t<this.trees.length;t++)this.reassignIndex(this.trees[t],t)}setupTrees(e){let i,o,s,h=p5.prototype.createVector(0,0),n=Wt.treeRotation_conf*random(.9,1.1),d=Et.treeTrunkHeight*r,c=Wt.treeBranchHeight_conf,l=Wt.treeMaxFork_conf,m=[],u=[],p=d*random(.08,.12),g=d*random(.25,.33),f=random(Wt.fruitLevelMinRange[0],Wt.fruitLevelM
MinRange[0]+Wt.fruitLevelMinRange[1])>>0,M=Wt.fruitFactor*random(.8,1.2),x=0,S=Wt.fruitRatio*random(.8,1.2);for(let b=0;b<this.maxTrees;b++){if("growth"===this.mode)u[0]=e.color($[Et.treeColor0]),u[1]=e.color(U[Et.treeColor1]),u[2]=e.color(a[Et.leafColor]),u[3]=1==L?e.color(Y[Wt.fruitColor]):null,h.x=t*(.2+.6*random())>>0,h.y=r*(1.1-.2*random())>>0;i=Wt.yzRatio*(r-h.y),d=r*(.3+random(.1))>>0,o=d*(.2+random(.1))>>0,s=.6+random(.2),l=2+random(1)>>0,K[0].color=u[0],K[1].color=u[1],m=[];let b=random(K),y=[];y[0]=new BtM
(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),b=random(K),y[1]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),b=random(K),y[2]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),m.push(y[0]),m.push(y[1]),m.push(y[2]),1==L&&(b=random(K),y[3]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),m.push(y[3]),x=Wt.maxFruitProM
b*random(.7,1));for(let t=0;t<m.length;t++)m[t].color=u[t],m[t].colorSD=C;this.trees.push(new Dt(h.copy(),n,i,d,o,c,s,l,this.minLength,this.minWidth,this.rotationError,this.lengthError,m,this.stepDistance,0,this.mode,p,g,f,M,x,S,this.index))}this.sortTrees()}drawAllTrees(t,r){for(let e=0;e<this.maxTrees;e++)ht=0,this.trees[e].drawTree(this.currentLevel,t,r)}getForceB(){let t=this.gCenter,r=p5.Vector.dist(t,ct[1].location);return Math.min(ct[1].charge/Math.pow(r,2),1)}animateAllTrees(){if("growth"==this.mode&&!nt)reM
turn!1;for(let t=0;t<this.maxTrees;t++)this.trees[t].a=this.aLambda(this.trees[t].location,100+dt),this.trees[t].b=this.bLambda(this.trees[t].getForceA(),100+dt),this.trees[t].c=this.cLambda(this.trees[t].getForceB(),100+dt),this.trees[t].updateA(this.mode),this.trees[t].updateB(this.mode),this.trees[t].updateC(this.mode);it%30==0&&this.getForceB()>t/1e8/2?this.lightsOn=!0:it%30==0&&(this.lightsOn=!1)}}class Dt{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p,g,f,x,S,b,y,w,V){this.location=t,this.rotation=r,this.zShift=e,M
this.trunkHeight=i,this.bTrunkHeight=this.trunkHeight,this.trunkWidth=o,this.branchHeight=a,this.branchWidth=s,this.branchLocation=p5.prototype.createVector(0,-this.bTrunkHeight>>0),this.dynamicLeafLength=f,this.dynamicLeafCutoff=x,this.maxFork=h,this.bMaxFork=this.maxFork,this.minLength=n,this.minWidth=d,this.rotationError=c,this.bRotationError=this.rotationError,this.lengthError=l,this.bLengthError=this.lengthError,this.stepDistance=u,this.level=p,this.mode,this.brushes=m,this.bColors=[this.brushes[0].color,this.M
brushes[1].color,this.brushes[2].color],this.maxLeaves=random(3)>>0,this.tError=random()*Math.PI/40,this.a=0,this.b=0,this.c=0,this.fruitStart=S,this.fruitFactor=b,this.fruitProbability=y,this.fruitRatio=w,this.index=V,0==this.level?M=1:this.level>M&&(M=this.level),this.branches=this.generateBranches()}getMinGrassHeight(){return 0==this.index?f.minGround:this.index>0?f.trees[this.index-1].location.y:void 0}getForceA(){let r;r=this.location;let e=p5.Vector.dist(r,ct[0].location);return Math.min(ct[0].charge/Math.powM
(e,2)*1e8/t,1)}getForceB(){let r;r=this.location;let e=p5.Vector.dist(r,ct[1].location);return Math.min(ct[1].charge/Math.pow(e,2)*1e8/t,1)}updateA(t){if("growth"!==t)return!1;this.rotationError=this.bRotationError*(3+this.a),this.lengthError=this.bLengthError*(1+this.a)}updateB(t){if("growth"!==t)return!1;this.trunkHeight=this.bTrunkHeight*(.9+.1*this.b),this.maxFork=Math.max(this.maxFork*(.95+.05*this.b),2),this.branches=[],this.branches=this.generateBranches()}updateC(t){if("growth"!==t)return!1;this.brushes[0].M
color.setRed(constrain(p5.prototype.red(this.bColors[0])+14*this.c>>0,0,255)),this.brushes[0].color.setGreen(constrain(p5.prototype.green(this.bColors[0])+14*this.c>>0,0,210)),this.brushes[0].color.setBlue(constrain(p5.prototype.blue(this.bColors[0])+14*this.c>>0,0,210)),null!=this.brushes[1].color&&(this.brushes[1].color.setRed(constrain(p5.prototype.red(this.bColors[1])+14*this.c>>0,0,200)),this.brushes[1].color.setGreen(constrain(p5.prototype.green(this.bColors[1])+14*this.c>>0,0,180)),this.brushes[1].color.setBM
lue(constrain(p5.prototype.blue(this.bColors[1])+14*this.c>>0,0,180))),null!=this.brushes[2].color&&(this.brushes[2].color.setRed(constrain(p5.prototype.red(this.bColors[2])+14*this.c>>0,0,200)),this.brushes[2].color.setGreen(constrain(p5.prototype.green(this.bColors[2])+14*this.c>>0,0,180)),this.brushes[2].color.setBlue(constrain(p5.prototype.blue(this.bColors[2])+14*this.c>>0,0,180)))}sortBranches(){this.branches.sort(compare)}generateBranches(){let t,r,e=this.branchHeight*this.trunkHeight,i=this.branchWidth*thisM
.trunkWidth,o=(-20+random(10))*this.branchHeight,a=[],s=p5.prototype.createVector(0,-this.bTrunkHeight),h=Math.round(Math.sin(ht+10*random()));for(;e>this.minLength&&i>this.minWidth&&a.length<1+this.maxFork*random()&&this.level<v;)t=2*this.rotation*Math.sin(Math.PI/2*(2*h+1+2*a.length))*Math.floor(1+a.length/2)*(1+random(this.rotationError)),r=e*(1+this.lengthError*random()),a.push(new Dt(s,t,o,r,i,this.branchHeight,this.branchWidth,this.maxFork,this.minLength,this.minWidth,this.rotationError,this.lengthError,this.M
brushes,this.stepDistance,this.level+1,this.mode,this.dynamicLeafLength,this.dynamicLeafCutoff,this.fruitStart,this.fruitFactor,this.fruitProbability,this.fruitRatio,this.index));return a}drawTree(e,i,o){if(i.push(),this.level>0){if(i.rotate(.25*this.rotation*Math.sin(5*this.level+10*this.index+100*this.branches.length+150*this.rotation+200*this.zShift)),this.level==e){i.stroke("ivory"),i.strokeWeight(20),i.noStroke();let r,e,a=p5.prototype.createVector(0,0),s=this.location,h=Math.max(this.trunkWidth,this.minWidth)M
,n=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),d=Math.sin(21*ht)*this.rotation*1.3,c=this.minWidth,l=ot[0].SWRatio,m=ot[0].stepSpeed,u=[];if(u[0]=roundVector(a),r=p5.Vector.lerp(a,s,.33333),e=r.mag(),r.add(p5.prototype.createVector(e*random(-this.bLengthError,this.bLengthError),e*random(-this.bLengthError,this.bLengthError))),u[1]=roundVector(r),r=p5.Vector.lerp(a,s,.66666),e=r.mag(),r.add(p5.prototype.createVector(e*random(-this.bLengthError,this.bLengthError),e*random(-this.bLengthError,this.bLengthEM
rror))),u[2]=roundVector(r),u[3]=roundVector(s),this.brushes[0].drawBezier(u[0],u[1],u[2],u[3],h,n,d,c,l,m,i,o),h=Math.max(.8*this.trunkWidth,2*this.minWidth),n=Math.max(this.branchWidth*this.trunkWidth*.8,2*this.minWidth),this.brushes[1].drawBezier(u[0],u[1],u[2],u[3],h,n,d,c,l,m,i,o),this.trunkHeight<Math.max(this.dynamicLeafCutoff,2*this.minWidth)&&this.trunkHeight>0){let r,e,a,s,h,n,d,c,l,m,u,p=ot[0].rotation,g=ot[0].SWRatio,f=ot[0].minWidth,M=ot[0].stepSpeed,x=Math.max(20,t/80);for(let t=0;t<this.maxLeaves;t++M
){u=2*Math.PI/this.maxLeaves*t+random()*this.tError,r=[this.dynamicLeafLength/4-random()*this.dynamicLeafLength/2>>0,1.05*-this.dynamicLeafLength+this.dynamicLeafLength*random()*.1>>0],m=this.dynamicLeafLength/(1+4*random()>>0),e=[m>>0,m*Math.sin(u)>>0],h=[1/6-random()/3*this.dynamicLeafLength,1/6-random()/3*this.dynamicLeafLength],n=[1/6-random()/3*this.dynamicLeafLength,1/6-random()/3*this.dynamicLeafLength],a=[(m+this.dynamicLeafLength)*Math.cos(u)/3+h[0]>>0,(m+this.dynamicLeafLength)*Math.sin(u)/3+h[1]>>0],s=[2M
*(m+this.dynamicLeafLength)*Math.cos(u)/3+n[0]>>0,(2*m+this.dynamicLeafLength)*Math.sin(u)/3+n[1]>>0],d=[(m+this.dynamicLeafLength)*Math.cos(u)>>0,(m+this.dynamicLeafLength)*Math.sin(u)>>0],c=[(m+this.dynamicLeafLength)*Math.cos(u)/3-h[0]>>0,(m+this.dynamicLeafLength)*Math.sin(u)/3-h[1]>>0],l=[2*(m+this.dynamicLeafLength)*Math.cos(u)/3-n[0]>>0,(2*m+this.dynamicLeafLength)*Math.sin(u)/3-n[1]>>0],i.push();let S=[];i.translate((e[0]+d[0])/2>>0,(e[1]+d[1])/2>>0),S[0]=roundVector(p5.prototype.createVector(0,0)),S[1]=rouM
ndVector(p5.prototype.createVector(a[0],a[1])),S[2]=roundVector(p5.prototype.createVector(s[0],s[1])),S[3]=roundVector(p5.prototype.createVector(d[0],d[1])),this.brushes[2].drawBezier(S[0],S[1],S[2],S[3],x,.8*x>>0,p,f,g,M,i,p5),S[0]=roundVector(p5.prototype.createVector(0,0)),S[1]=roundVector(p5.prototype.createVector(c[0],c[1])),S[2]=roundVector(p5.prototype.createVector(l[0],l[1])),S[3]=roundVector(p5.prototype.createVector(d[0],d[1])),this.brushes[2].drawBezier(S[0],S[1],S[2],S[3],x,.8*x>>0,p,f,g,M,i,p5),i.noStrM
oke(),i.tint(255,10),i.fill(this.brushes[2].color),i.beginShape(),i.curveVertex(0,0),i.curveVertex(a[0],a[1]),i.curveVertex(s[0],s[1]),i.curveVertex(d[0],d[1]),i.curveVertex(l[0],l[1]),i.curveVertex(c[0],c[1]),i.endShape(o.CLOSE),i.tint(255,255),i.pop()}if("undefined"!=this.brushes[3]&&null!=this.brushes[3]&&this.level>=this.fruitStart){let r=p5.prototype.createVector(0,0),e=t/50*this.fruitRatio>>0,a=random(5,8)>>0,s=0,h="bezier",n=Math.max(.2*this.minWidth,t/100);i.push(),i.translate(random(-2*e,2*e)>>0,random(0,4M
*e)>>0),this.brushes[3].drawPoly(r,e,a,s,h,n,ot[0].rotation,e*this.fruitFactor>>0,ot[0].SWRatio,ot[0].stepSpeed,i,o),i.pop()}}}}else if(0==this.level){if(i.translate(this.location.x>>0,this.location.y>>0),et&&this.level==e){let r;for(let e=0;e<Wt.maxGClumps[0];e++)r=random(Lt),r.range=Wt.maxGRange*random(.8,1.2)*t,r.position=o.createVector(constrain(random(-1,1)*r.range>>0,-this.location.x,t-this.location.x),random(0,-(this.location.y+3*this.minWidth-this.getMinGrassHeight()))>>0),r.draw(i,o)}if(i.rotate(.25*this.rM
otation*Math.sin(5*this.level+10*this.index+100*this.branches.length+150*this.rotation+200*this.zShift)),this.level==e){let e=p5.prototype.createVector(0,0),a=this.branchLocation,s=Math.max(this.trunkWidth,this.minWidth),h=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),n=Math.sin(15*ht+25*this.index)*this.rotation*1.3,d=this.minWidth,c=ot[0].SWRatio,l=ot[0].stepSpeed;if(this.brushes[1].drawLine(e,a,s,h,n,d,c,l,i,o),s=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),h=Math.max(this.branchWidth*thisM
.branchWidth*this.trunkWidth,this.minWidth),n=Math.sin(34*ht)*this.rotation*1.3,this.brushes[0].drawLine(p5.prototype.createVector(0,0),a,s,h,n,d,c,l,i,o),s=Math.max(this.branchWidth*this.trunkWidth*.5,3*this.minWidth),h=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),this.brushes[1].drawLine(p5.prototype.createVector(0,0),a,s,h,n,d,c,l,i,o),et&&this.location.y<1.1*r){let e;for(let a=0;a<Wt.maxGClumps[1];a++)e=random(Lt),e.range=Wt.maxGRange*random(.1,.35)*t,e.position=o.createVector(constM
rain(random(-1,1)*e.range>>0,-this.location.x,t-this.location.x),random(0,r-this.location.y+3*this.minWidth)>>0),e.draw(i,o)}}}if(ht++,this.level>0&&this.level==e){p5.prototype.createVector(0,0);let t=this.branchLocation,r=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),e=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),a=Math.sin(34*ht)*this.rotation*1.3,s=this.minWidth,h=ot[0].SWRatio,n=ot[0].stepSpeed;this.brushes[0].drawLine(p5.prototype.createVector(0,0),t,r,e,a,s,h,n,i,o),r=MM
ath.max(this.branchWidth*this.trunkWidth*.5,3*this.minWidth),e=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),this.brushes[1].drawLine(p5.prototype.createVector(0,0),t,r,e,a,s,h,n,i,o)}if(0==this.level&&this.branches.length>0&&this.level<e){this.sortBranches();for(let t=0;t<this.branches.length;t++)i.push(),i.translate(this.branchLocation.x>>0,this.branchLocation.y>>0),this.branches[t].drawTree(e,i,o),i.pop()}else if(this.level>0&&this.branches.length>0&&this.level<e){this.sortBranches();M
for(let t=0;t<this.branches.length;t++)i.push(),i.translate(this.branchLocation.x>>0,this.branchLocation.y>>0),this.branches[t].drawTree(e,i,o),i.pop()}i.pop()}}class Pt{constructor(e,i){this.x0=-t/15+random(t/7)>>0,this.aP=r/(2.2*Math.pow(t/2,2))+random(.01),this.cP=1/8*r*random(),this.location=p5.prototype.createVector(this.x0,this.fx(this.x0)),this.bLocation=this.location,this.bLocation.x=this.location.x,this.bLocation.y=this.location.y,this.width=e,this.color=i,this.charge=.6+random(.4),this.nextPoint=p5.prototM
ype.createVector(this.location.x+1>>0,this.fx(this.location.x+1)>>0),this.unitVector=this.getUnitVector()}fx(r){return this.aP*Math.pow(r-t/2,2)+this.cP}getUnitVector(){let t=p5.Vector.mult(this.location,-1),r=p5.Vector.add(this.nextPoint,t);return p5.Vector.normalize(r)}animateComet(){let r=t/lt;this.location.x+=r,this.location.y=this.fx(this.location.x),this.nextPoint=p5.prototype.createVector(this.location.x+1,this.fx(this.location.x+1)),this.unitVector=this.getUnitVector()}}class It{constructor(t,r,e,i,o,a,s,h,M
n,d,c,l){this.minStrokes=t,this.maxStrokes=r,this.minStrokeWeight=e,this.maxStrokeWeight=i,this.rotation=o,this.minSize=a,this.maxSize=s,this.iterations=h,this.sizeError=n,this.angleError=d,this.padding=c,this.brushes=l,this.currentLevel=0}draw(e,i){let o,a,s,h=this.minSize+random()*this.maxSize,n=(this.maxSize-this.minSize)/16,d=standardizeDegree((2*random()-1)*this.angleError,5),c=this.angleError/32,l=r/this.iterations+this.padding,m=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,u=random(0,Math.PI),p=ot[0M
].SWRatio,g=ot[0].stepSpeed;e.push(),e.translate(t/2>>0,r/2>>0),e.rotate(this.rotation);for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=0;M<o;M++)m+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),d+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*c,5),this.angleError),-this.angleError),5),h+=Math.max(Math.min((2*random()-1)*n,this.maxSize),this.minSize),a=i.createVector(constrain(-h/2>>0,.6*-t,.6*t),coM
nstrain(l*f+M*m>>0,.6*-r,.6*r)),s=i.createVector(constrain(h/2>>0,.6*-t,.6*t),constrain(l*f+M*m>>0,.6*-r,.6*r)),u+=random(0,Math.PI/16),e.push(),e.rotate(d),this.brushes[0].drawLine(a,s,m,m,u,n,p,g,e,i),e.pop()}d=standardizeDegree((2*random()-1)*this.angleError,5),h=this.minSize+random()*this.maxSize,m=this.minStrokeWeight+random()*this.maxStrokeWeight>>0;for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=1;M<o;M++)a=i.createVector(constrain(-h/2>>0,.6*M
-t,.6*t),constrain(-l*f-M*m>>0,.6*-r,.6*r)),s=i.createVector(constrain(h/2>>0,.6*-t,.6*t),constrain(-l*f-M*m>>0,.6*-r,.6*r)),u+=random(0,Math.PI/16),m+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),d+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*c),this.angleError),-this.angleError),5),h+=Math.max(Math.min((2*random()-1)*n,this.maxSize),this.minSize),e.push(),e.rotate(d),this.brushes[0].drawLine(a,s,m,m,u,n,p,g,e,i),e.pop()}e.pop()}}class Gt extends It{constructoM
r(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p){super(t,r,e,i,o,a,s,h,n,d,c,l),this.radius=m,this.position=u,this.sunBrushFactor=p}draw(r,e){if(0==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.radius,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/100>>0;this.brushes[0].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*this.sunBrushFactor>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}else if(1==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.M
radius*random(.3,.6)>>0,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/200>>0,d=3*this.sunBrushFactor;this.brushes[1].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*d>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}else if(2==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.radius*random(.1,.2)>>0,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/200>>0,d=5*this.sunBrushFactor;this.brushes[0].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*d>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}}}class Tt eM
xtends It{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u){super(t,r,e,i,o,a,s,h,n,d,c,l),this.curvature=m,this.height=u,this.dBezierVectors=[]}draw(e,i){let o,a,s,h,n,d=this.minSize+random()*this.maxSize,c=(this.maxSize-this.minSize)/16,l=standardizeDegree((2*random()-1)*this.angleError,5),m=this.angleError/32,u=r/this.iterations+this.padding,p=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,g=random(0,Math.PI);ot[0].SWRatio,ot[0].stepSpeed;if(0==this.currentLevel){e.fill(this.brushes[1].color1);let o=!0,a=5*p;f.minM
Ground=1.1*this.height+a/2>>0,this.brushes[1].drawRect(new i.createVector(0,1.1*this.height+a/2>>0),2.5*t,1.1*r-this.height,0,"line",a,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,2*ot[0].stepSpeed,o,e,i)}e.push(),e.translate(t/2,this.height);for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=0;M<o;M++){if(p+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),l+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*M
m),this.angleError),-this.angleError),5),d+=Math.max(Math.min((2*random()-1)*c,this.maxSize),this.minSize),a=i.createVector(constrain(-d/2>>0,.6*-t,.6*t),constrain(u*f+M*p>>0,.1*-r,1.1*r-this.height)),s=i.createVector(constrain(d/2>>0,.6*-t,.6*t),constrain(u*f+M*p>>0,.1*-r,1.1*r-this.height)),a.dist(s)<t/2)return void(this.currentLevel=this.iterations);0==this.dBezierVectors.length?(this.dBezierVectors[0]=roundVector(a),h=p5.Vector.lerp(a,s,.33333),n=h.mag(),h.add(i.createVector(n*random(.1*-this.curvature,.1*this.M
curvature),n*random(-this.curvature,this.curvature))),this.dBezierVectors[1]=roundVector(h),h=p5.Vector.lerp(a,s,.66666),n=h.mag(),h.add(p5.prototype.createVector(n*random(.1*-this.curvature,.1*this.curvature),n*random(-this.curvature,this.curvature))),this.dBezierVectors[2]=roundVector(h),this.dBezierVectors[3]=roundVector(s)):(this.dBezierVectors[0]=roundVector(a),h=p5.Vector.lerp(a,s,.33333),n=h.mag(),this.dBezierVectors[1].y=this.dBezierVectors[1].y+n*random(this.curvature)>>0,this.dBezierVectors[2].y=this.dBezM
ierVectors[2].y+n*random(this.curvature)>>0,this.dBezierVectors[3]=roundVector(s)),g+=random(0,Math.PI/16),e.push(),e.rotate(l),this.brushes[0].drawBezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],p,p,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,e,i),e.pop()}}e.pop()}}class Ht extends Tt{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p){super(t,r,e,i,o,a,s,h,n,d,c,l,m,u.y),this.position=u,this.range=p}draw(t,r){let e,i,o,a,s=this.minSize+random()*this.maxSizM
e,h=(this.maxSize,this.minSize,standardizeDegree((2*random()-1)*this.angleError,5)),n=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,d=random(0,.03),c=(ot[0].SWRatio,ot[0].stepSpeed,0);t.push(),t.translate(this.position.x>>0,this.position.y>>0),e=this.minStrokes+this.maxStrokes*random();for(let l=0;l<e;l++){let e,l;n+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),h=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*this.angleError,5),this.angleError),-this.angleM
Error),5),a=Math.max(Math.min((2*random()-1)*s,this.maxSize),this.minSize),i=r.createVector(random(-this.range,this.range)>>0,Math.max(0+.1*this.sizeError*random()*a,c)),i.y>c&&(c=i.y),o=r.createVector(i.x+this.sizeError*random(-.1,.1)*a,-1*(a+this.sizeError*random(-.1,.1)*a)),i=roundVector(i),o=roundVector(o),0==this.dBezierVectors.length?(this.dBezierVectors[0]=roundVector(i),e=p5.Vector.lerp(i,o,.33333),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*tM
his.curvature))),this.dBezierVectors[1]=roundVector(e),e=p5.Vector.lerp(i,o,.66666),l=e.mag(),e.add(p5.prototype.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[2]=roundVector(e),this.dBezierVectors[3]=roundVector(o)):(this.dBezierVectors[0]=roundVector(i),e=p5.Vector.lerp(i,o,.33333),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[1]=rouM
ndVector(e),e=p5.Vector.lerp(i,o,.66666),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[2]=roundVector(e),this.dBezierVectors[3]=roundVector(o)),d=random(0,.5),t.push(),t.rotate(h),t.fill("#FF0000"),random()<.4?this.brushes[0].drawBezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],n,n,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,t,r):this.brushes[1].drawBM
ezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],n,n,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,t,r),t.pop()}t.pop()}}class Ot{constructor(t,r,e,i,o,a,s,h){this.size=t,this.scale=r,this.alpha=e,this.gamma=1/Math.max(o,.01),this.marginPX=a,this.triangleFilterMode=s,this.maxColorChanges=i,this.graphic=h.createGraphics(h.width,h.height),this.image=this.graphic.createImage(this.size,this.size);let n,d,c,l=this.size*this.size*4,m=[0,0,0];this.image.loadPiM
xels();for(let t=0;t<l;t+=4)d=t%(4*this.size)>>0,c=t/(4*this.size)>>0,n=255*random()>>0,this.maxColorChanges[0]>0&&this.maxColorChanges[1]>0&&this.maxColorChanges[2]>0&&(c>d&&this.triangleFilterMode?(m[0]=this.maxColorChanges[0]*(1-random())>>0,m[1]=this.maxColorChanges[1]*(1-random())>>0,m[2]=this.maxColorChanges[2]*(1-random())>>0):(m[0]=this.maxColorChanges[0]*random()>>0,m[1]=this.maxColorChanges[1]*random()>>0,m[2]=this.maxColorChanges[2]*random()>>0)),this.image.pixels[t]=Math.min(n+m[0],255),this.image.pixelM
s[t+1]=Math.min(n+m[1],255),this.image.pixels[t+2]=Math.min(n+m[2],255),this.image.pixels[t+3]=this.alpha;this.image.updatePixels(),this.image.resize(100*this.scale[0],100*this.scale[1])}drawFilter(t,r){let e,i,o,a=this.marginPX>>0,s=this.marginPX>>0,h=t.height-this.marginPX>>0,n=t.width-this.marginPX>>0;for(;s<h;)s+this.image.height>h&&a+this.image.width>n?t.image(this.image,a,s,n-a,h-s):s+this.image.height>h&&!(a+this.image.width>n)?t.image(this.image,a,s,this.image.width,h-s):!(s+this.image.height>h)&&a+this.imaM
ge.width>n?t.image(this.image,a,s,n-a,this.image.height):t.image(this.image,a,s,this.image.width,this.image.height),a+=this.image.width,a>=n&&(a=this.marginPX>>0,s+=this.image.height);if(!Wt.suppressGammaAdjust){t.loadPixels();let r=t.width*t.height*4,a=[1,1,1];for(let s=0;s<r;s+=4)i=s%(4*t.width),o=s/(4*t.height)>>0,i>4*this.marginPX>>0&&o>4*this.marginPX>>0&&i<4*(t.width-this.marginPX)>>0&&o<4*(t.height-this.marginPX)>>0&&(e=this.gamma*(.8+.4*random()),a[0]=255*Math.pow(t.pixels[s],e),a[1]=255*Math.pow(t.pixels[sM
+1],e),a[2]=255*Math.pow(t.pixels[s+2],e),t.pixels[s]=Math.min(a[0]>>0,255),t.pixels[s+1]=Math.min(a[1]>>0,255),t.pixels[s+2]=Math.min(a[2]>>0,255))}}}var myp5=new p5(sketch)
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vb26e4fa9e5134444860be286fd8771851679335129114" integrity="sha512-M3hN/6cva/SjwrOtyXeUa5IuCT0sedyfT+jK/OV+s+D0RnzrTfwjwJHhd+wYfMm9HJSrZ1IKksOdddLuN6KOzL
w==" data-cf-beacon='{"rayId":"7ac4262a0f41a1ed","version":"2023.3.0","b":1,"token":"6c07c178c94442f695e7a0a2aaee641a","si":100}' crossorigin="anonymous"></script>
text/plain;charset=utf-8
text/plain;charset=utf-8
You can't stop fighting.
The competition devours those who came to stroll.
Do we want to win, but at the cost of the other? It's an ugly moment.
Those who hold criticize those who sell, the one who invests destroys the one who builds, and the one who builds deflects attention by attacking another sector.
Defi looks down on the NFT that, without resentment, devours retail in search of colorful trinkets.
You can't stop fighting.
Brothers should be united because that is the first law. Have true unity at any timL_e because if they fight among themselves, those from outside will devour them. - Martin Fierro.h!
FjDOUT:A13429131F4BA9FE769DA28816AD989590CC5FFC505631DCC726454F0163EBEE
text/plain;charset=utf-8
d/Foundry USA Pool #dropgold/
DjB+:BTC.BTC:maya1kj0kxul6ul8fr5mpq50u8kl066kk64gpun0cw7:wr:100:TIER1
FjDOUT:298C969F80D499698916751807CE330040AFDFB37F76FBD04A59FBC85555C837
FjDOUT:9E46C8A87C4A9016CF5DE13B7EC85543B6E05F37B031DD1B0E72FB9AC69A8BDA
FjDOUT:EDE63DCD008A57FCCD937B8487237B61526155762FFBB2594DFD5EDDB8D14E04
text/plain;charset=utf-8
({"p":"sns","op":"reg","name":"o8o.sats"}h!
d/Foundry USA Pool #dropgold/
: th$t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t( t
text/plain;charset=utf-8
# Seven Theses on Intelligence and Science
***Gregory F. Coppola***
Apocalypse Like Right Now
We will present seven theses on the topics of *******science******* and ************intelligence************.
**The Common Theme of Intelligence**
These theses explore links between the concepts of *********intelligent design*********, ******************human intelligence****************** and ************************artificial intelligence************************.
The common theme betM
ween these topics is: ************intelligence************.
**Intelligent Design is Such a Science *Right Now***
There is a widespread perception that
intelligent design is not a science
For example, in the ****ACLU****
s handy primer *Frequently Asked Questions About "Intelligent Design"*, we read:
> A scientific theory makes predictions about occurrences in the natural world that can then be tested through scientific experimentation. ID makes no predictions and cannot be scrutinized using the scientiM
The overarching thesis of the enclosed seven theses is that the ACLU
s statement just listed is *****wrong*****, because intelligent design ************is a science************.
In more detail, the overarching thesis is:
- *intelligent design* is a *science*
    - it can make forward-looking predictions
        - as well as model the past
    - it has a better fit to the past than Darwin
s random/gradual evolution
    - it has finite size
    - it is provably more parsimonious than the
nite universes hypothesis
 invoked by atheists to counter the
finely tuned universe
## Science and its Prerequisites
We begin with a meditation on the notion of
### The Vienna Circle
The Vienna Circle met in the city of Vienna over the period 1924-1936 to discuss the
philosophy of science
The goal of the group was to separate those intuitively
 pursuits going on at a university, like science and mathematics, from those
For example, the existentialist philosopher Martin Heidegger famously asserted that ********************the nothing nothings********************.
According to the Vienna circle, ********************the nothing nothings******************** was intuitively a
 statement, and they sought a criterion by which to formally say so.
The conclusion of the Vienna Circle was that scientific pursuits are those that predict
empirical quantitiesM
, or, in other words
observable quantities
verifiable statements
Science is, intuitively, the business of predicting
empirically observable quantities
We might imagine that the stereotypical scientist is a person in a laboratory, wearing a lab coat, holding perhaps a beaker, collecting ****data****.
But, the collection of data is perhaps the least controversial part of science.
**Modeling and Predictions**
The ultimate goal of science is to makM
e *models*, which make *predictions*.
In other words, science is done scribbling at the chalkboard as much as it is in the lab coat collecting data.
The models scientists conceive of are inspired by past data, and the predictions are evaluated against both ****past**** and ******future****** data.
Here, *past data* is data we have already seen, and *future data* is data we have not yet seen.
**A Theory can be Falsified but never Proven
Science can never prove a theory to be ****true****, but can oM
nly can, at best, conclude that one theory is the *most likely*.
Typically, we expect all theories to be proven
 in the future, in the sense that they must at least be refined, and made more precise.
all models are wrong, but some are useful
Finally, we note that speaking of statements as
 is somewhat pre-statistical, because the more general way would be to talk in terms of probabilistic observations.
**Non-Intuitive Nature of Science**
e of the 20th century in physics showed that reality turned out to be much more ************unusual************ than would have been expected at the end of the 19th century.
It turned out that time and space were related, energy and mass were the same, and truth was in some quantum sense
Each of these realizations was an upheaval, to the point where physicists were forced to realize that the philosophers
 practice of reasoning based on
reasonable assumption
 is of no use in science.
iels Bohr is said to have said to his colleague Wolfgang Pauli:
> We all agree that your theory is crazy. The only question is whether it is *crazy enough* to be correct.
Scientific theories are not required to be, nor rewarded for being,
The only criterion is the *********************empirical fit********************* of the theory (traded against theory complexity).
Atheist philosophers would do well to remember that
reasonable assumptions
 have no place in science, when considering M
the problem of intelligent design.
Mathematics involves the creation of abstract objects, like numbers or sets, and the proving of truths that follow by the definitions of such objects.
If something is true in mathematics, it is always true, because it follows by definitions, no matter what observations are ever made.
**Some Mathematics is Inspired by Science**
In some cases, the inspiration for a branch of mathematics might come from science, or the need for applications.
For example, it is sM
peculated that the Pythagorean theorem was first known empirically before it was formalized as a theorem by the Ancient Greeks and recorded by the mathematician Euclid in 300 BCE.
**Sometimes Science Leverages Previously Unused Math**
In other cases, including important cases in physics, the mathematics are invented first, and then, by an act of true
, someone finds a way to apply those results.
So, it is actually an ******************empirical question****************** in and of itself which mathematM
ics will be useful to describe nature.
- any branch mathematics *****could*****, in principle, be useful in modeling the
    - no branch of mathematics can be ruled out of describing
 ********a priori********
Thus, in principle, all mathematics (the proving of theorems based on definitions) is considered legitimate, from the perspective of science.
This does not preclude the judgement that a branch of mathematics is not worth pursuing given finite resources based on expert judgemenM
t, but only says that, in principle, no branch of mathematics can be definitively judged useless.
### Legitimate Non-Scientific Philosophy
To single out science and its pre-requisites as special is ***not*** to say that non-scientific intelectual endeavors are not important.
For example, art, music and literature are clearly very important to human civilization.
By the same token, the critical analysis of art, music and literature are important.
Religious thought and
, like the Bible, the TorahM
, the Vedas, the Dao De Ching, shamanic traditions, the Quran, etc., are valuable because, we suppose, the collective
 of human civilization are a better source of data than the
 made to any individual.
It is possible that someday there will be a scientific interpretation of these various
But, until that time, we are not advocating that people don
, whatever that word ultimately means.
As William James argued in
, we have to act, especially with regards to religious questions, without having all of the data available.
The non-scientific intellectual pursuits can be called *philosophy*.
There are many legitimate uses of philosophy.
### The Philosophy of Science
But, there are also many cases in which
 are just wasting time.
There is ********a priori******** no way to say exactly which philosophy is useful, in general.
There is however, one kind of
, which is special forM
 the practice of science.
This is the so-called
philosophy of science
This branch of philosophy answers the question,
how do we do science?
In other words, the output of the
philosophy of science
 is a *********procedure********* for doing science.
While all other forms of philosophy must be evaluated on their own merits, the
philosophy of science
 was included by the Vienna Circle as a special kind of philosophy, because it is the one branch of
 that is a prerequisite forM
## The Modeling of Intelligence
The trend in cognitive science, starting in the 20th century, has been steadily toward more use of the use of concepts from computer science and statistics in the study of the brain or mind.
We examine this story of the role of computer science in cognitive science through the story of the most influential cognitive scientist of the 20th century, Professor Noam Chomsky, of the Massachusetts Institute of Technology.
### A Fascinating Case Study in Stagnation
f Chomskyan linguistics, we believe, is an interesting example of
 in a scientific discipline (linguistics), and is a further data towards Max Planck
s aphoristic theory that science proceeds (if it must)
one funeral at a time
This is relevant to the question of intelligent design, because Darwinism is a theory that one could say is
, with still no clear story of how exactly evolution happened, over 160 years after the theory was first proposed in 1859.
Thus, we propose thM
at the stagnation of Chomskyan linguistics may be a model for the stagnation of the Darwinian theory.
### **Vienna Circle Revisited**
s conclusion was popularly taken to be:
- in order for a statement to meaningful, there must be a way to ****verify that statement****
This rule, as stated, has a *****fatal***** flaw, because it is not *********************individual statements********************* that make verifiable predictions, but instead it is ********theories******** which make predictM
Behaviorists like B. F. Skinner were limited by their incorrect ideas of what was required to do
 in the field of psychology and cognition.
Skinner interpreted the conclusions of the Vienna Circle to mean that, if one was going to make a science of
, this would require that *each individual statement* would be verified.
Skinner would discourage talk of
Instead, the only way to do psychology in his interpretation, M
was with simple experiments that could, Skinner thought, be
 described, like with rats in cages doing simple stimulus-response experiments.
Skinner argued in ***************Verbal Behavior*************** (1957) that it was not only possible to understand ********************human language******************** through stimulus-response experiments with rats, but that he thought he ***********already had*********** understood human language through such experiments.
Of course, this was wrong: it is nM
ot possible to understand human language through experiments with rats.
s 1957 Revolution in Linguistics
s innovation in cognitive science was to take concepts from computer science, especially from Turing and Church, and apply these to the study of language.
Chomsky (1957) was able to show that this kind of theory can be
, by showing that his theory, though it posited
 like a grammatical faculty, could predict syntactic
which are a kind of data.
s review of ***************Verbal Behavior***************, he made a variety of arguments, e.g., about the
poverty of the stimulus
But, from our point of view, the implicit argument in Chomsky
s review is that it is *********theories********* that make predictions, not individual statements.
t worry that **************each statement************** on its own needed to be
s expanded notion of what
 what made progress possible.
From our perspective, the main contributions Chomsky made in 1957 were:
- use of computer science
    - Chomsky introduced the use computer science to empirically model natural language
    - this turned out to *very* effective
    - Chomsky was able to realize that Skinner
s restriction on the enterprise of psychology were too strict
### The Empirical Failure of Chomsky
s Post-1957 Linguistics
**Post-1957 Stagnation**
957 ********************Syntactic Structures******************** was so important it was called a
Copernican revolution
 in linguistics (Putnam).
Chomsky was considered the leading linguist in the field until at least the 1990
s, and some still think he is the leader in the field.
Ironically, however, in retrospect, 1957 could actually be ****last**** year that Noam Chomsky actually did any work in the field of linguistics that has had any practical use, judged in terms of history.
His subsequent ideas ofM
transformational grammar
principles and parameters
 have found no use that we can see in 2023.
**Principles and Parameters**
We can generously (to Chomksy) date to 1981 (the roots are presumably later) the proposal of Chomsky
principles and parameters
principles and parameters
    - all human languages vary only a finite number of finitely-valued parameters
Chomsky and his disciples have pursued this thesis, under various guises, including rebranding M
the minimalist program
, over the last 42 years, at least.
finite number of finitely valued parameters
 have never, it seems, been found.
Many linguists predicted language could not work this
finite principles and parameters
 way already in the 1980
But, Chomsky plowed ahead anyway, and seems to still never have acknowledge clearly the failure of this theory.
This is a potentially vivid example of the powerful role that ego plays in science, with the power to cause stagnation M
among large sections of the academic system.
### The Rise of Artificial Intelligence for Language Processing
It has been apparent to many linguists since the at least the 1980
s program of searching for a
finite number of finitely valued parameters
 would never succeed.
**Computationally Realistic Symbolic Grammars**
More realistic, and more practically computational, alternatives to Chomsky
principles and parameters
 theory were developed already in the 1980
SG (Pollard and Sag), CCG (Steedman) and TAG (Joshi).
However, for practical purposes in natural language processing engineering, it has turned out that
attention is all you need
, and products like ChatGPT do not make use of traditional symbolic grammars at all, though the use of symbolic grammars be still be useful for understanding human language, or further developing A. I.
**Statistical Natural Language Processing**
s also saw the dawn of computational linguistics, where many reM
searchers like Jelinek, Charniak, Collins and Pereira showed that one could successfully apply machine learning and artificial intelligence to the problem of **natural language processing**.
s brought a renewed interest in neural networks for artificial intelligence, at last, realizing the potential in work by Hinton, LeCunn and Bengio.
Neural networks can find not only find patterns in the data, but can even find their own *representations* of data, that their programmers didn
The combination of neural networks with computational linguistics has resulted in powerful applications like ChatGPT.
In contrast to Chomsky
principles and parameters
 theory which has, as far as we are aware, no serious implementation, ChatGPT can both understand ****************and generate**************** human language.
By any objective metric, the artificial intelligence-driven approach to language is infinitely more successful in modeling both the production and the interpretation of language, M
than anything Chomsky has ever produced.
But, as a Professor Emeritus, no one can literally *****force***** Chomsky to recognize this.
### Chomsky Refuses to Recognize Scientific Importance of Artificial Intelligence
Chomsky has always insisted that statistical approaches to natural language processing are, at most,
, and are not relevant to the study of human language, according to how Chomsky defines the field.
In his March 8, 2023 paper in The New York Times, entitled **Noam Chomsky: The FalsM
e Promise of ChatGPT**, Chomsky is on his usual tip:
> Roughly speaking, [GPT models] take huge amounts of data, search for patterns in it and become increasingly proficient at generating statistically probable outputs
 such as seemingly humanlike language and thought.
This is meant as a *********criticism*********.
But, to anyone who ******isn
t****** Noam Chomsky, the goal of cognitive science would seem to be *precisely* to understand exactly how the *****brain***** can
take huge amounts of data
search for patterns in it
statistically probable outputs
human language and thought
If ChatGPT can do these things, then that would seem to be pretty relevant indeed to the study of cognition!
Chomsky goes on to make it explicit:
> The human mind is not, like ChatGPT and its ilk, a lumbering statistical engine for pattern matching, gorging on hundreds of terabytes of data and extrapolating the most likely conversational response or most probable answer to a scientific M
This passage is an excellent illustration of the error in Chomsky
    - the human mind *is not* a (
?) statistical engine
        - note: it is not clear what the empirical meaning of
Virtually all data from cognitive science, artificial intelligence, natural language processing, and common everyday experience itself refute this bizarre thesis:
- the brain is precisely a statistical engine
### Lessons for the Future from tM
he Story of Noam Chomsky
**The Role of the Philosophy of Science**
s intellectual victory over Skinner
s behaviorism was as a result largely, we have posited, of the fact that Chomsky realized that Skinner
s assumptions about
what constitutes science
 were overly strict.
The ongoing intellectual triumph of artificial intelligence over Chomsky
s pre-statistical ways is, in some sense, the reverse story.
Now, it is Chomsky who is imposing unnecessary constraints on what
constitutes linguisM
, and thus he has been able to make any empirical progress for 40, if not 60, years.
Thus, we see that the question of
what constitutes science
what constitutes cognitive science
 can actually be quite controversial, even among leaders in the field, even up until the present day.
And, it is the group that is less encumbered by unnecessary constraints that, in each case, was able to make progress.
With respect to the question of intelligent design, we will thus closely scrutinize exactly whatM
 is necessary in order to
, and wonder if the constraints some atheist philosophers propose are actually necessary.
**The Possibility of Lengthy Stagnation in Science**
The story of Noam Chomsky shows the potential for a field, e.g., post-1957 Chomskyan linguistics, to totally stagnate for a period of even 40-60 years.
It seems we will never find Chomsky
finite number of finitely valued parameters
, but Chomsky has never explicitly admitted this fact, and neither have many in the generatM
ions of grad students he has produced in his line.
This is despite the fact that, not only has
principles and parameters
 failed to materialize as a falsifiable theory, but a competing theory (artificial intelligence demonstrated by ChatGPT) is succeeding wildly, and drawing massive financial investment and talent inflow as well.
s followers admit the
principles and parameters
 theory must be abandoned, in favor of an artificial intelligence-based approach, they must now accommodate the facM
t that their primary skill (that they know
principles and parameters
) is not marketable once the theory has officially collapsed.
This is a general problem in science: what to do with scientists who have specialized in a field that has collapsed?
And, if it is true that Chomsky has not contributed to linguistics post-1957, the realization of this fact must be a difficult one to accept for Chomsky, who has invested so much of his time and effort since then.
**Science Proceeds (if it Must)
Max Planck is attributed (perhaps apocryphally) to have (darkly) said:
> A new scientific truth does not triumph by convincing its opponents and making them see the light, but rather because its opponents eventually die, and a new generation grows up that is familiar with it.
The story of Noam Chomsky versus statistical methods (artificial intelligence) for cognitive science seems to be a data point in favor of Planck
s macabre but apparently evergreen aphorism.
Skinner apparently went to his gM
rave without ever admitting that Chomsky was right to use the methods of computer science to empirical study of cognition.
Chomsky may well go this grave without acknowledging the statistical contribution artificial intelligence theorists have made to the empirical study of cognition.
But, in the end, the science train keeps rolling down the track, one funeral at a time, if need be.
### Computer Science and the Modeling of Intelligence
In conclusion, the seven theses that we will review below adopt the followinM
g framework for the role of computer science for the modeling of intelligence:
- intelligence is to be modeled using the tools of computer science
    - there is an abstract model of computation called the **************Turing Machine************** (Turing, 1936)
        - according to the Church-Turing thesis, all conceivable universal computers are equivalent to the Turing Machine
        - the Turing Machine can be used to model ***any*** intelligence, including
            - human intelligence
tificial intelligence
            - the potential
 which designed humans and our universe
- intelligence crucially involves *statistical* reasoning, modeling and information
    - this is closely related to Shannon
s (1948) definition of ***********information*********** in statistical terms
    - artificial intelligence models, especially ***************neural networks*************** (Hinton, LeCunn, Bengio), are relevant for the study of intelligence
 Science and the Minimum DeM
scription Length Principle
We reiterate the, already existing, proposal that
minimal description length
, in the sense of Kolmogorov or Solomonoff is the optimal principle for doing science.
Though this idea dates back to the 1950
s, the fact that it is evidently not universally accepted, or even widely known, outside of the field of computer science, necessitates to us that it be restated.
This formal understanding of the
optimal theory for a data set
 will be the basis for several origiM
nal results that follow.
### Informal Understanding of Science
The intuitive principles of the *****************scientific method***************** are well-known and agreed upon, especially:
- an emphasis on empirical observations
- the formulation of models that make predictions
- the testing of models using experiments
- openness to changing one
- parsimony in explanations (Ockham
However, it is the formalization of these principles that, we believe, is not universally known, oM
In order to formalize the notion of science, one would have to be able to explain as an algorithm how to do science.
But, the vast majority of people who practice science are able to practice science perfectly well, without being able to give an algorithm for doing so.
For example, in 1977 the philosopher Hilary Putnam expressed in a televised interview to Bryan Magee his surprise at the fact that there was then no known way of expressing the scientific method as an algorithm, but that the vast maM
jority of scientists were not bothered or encumbered by this at all.
s Razor as an Informal Principle
William of Ockham, the 14th century English philosopher is credited with the following principle for comparing theories:
    - among theories which *fit the facts equally*, prefer the ********simplest******** theory
However, there have always been two major difficulties in implementing this principle precisely:
1. How does one measure the
 we do when one theory is less simple but fits more facts?
    - In other words, how does one assess the benefit of fitting more facts, versus the cost of a more complex theory?
### Minimum Description Length
The principle of *******minimum description length******* dates back to the work of Kolmogorov (1965) and Solomonoff (1964).
It says that the optimal theory is the one which compresses the data the most.
In particular, the ***description length*** of a data set is broken into two parts:
 needed to encode the model
        - a larger model will need more space, and be penalized for this
    - the amount of
 needed to encode the data, given the model
        - a better model will need less space, and be rewarded for this
This provides a principled way to trade off model complexity versus data fit.
The optimal theory is:
- optimal theory using MDL
    - the theory that uses the least total space to encode the data
imality of Minimum Description Length
The concept of Kolmogorov complexity is one of the central concepts in computer science.
Intuitively, as scientists, we feel better knowing that we can reuse core concepts.
In the words of Richard Feynman:
> Nature uses only the longest threads to weave her patterns, so that each small piece of her fabric reveals the organization of the entire tapestry.
The idea that we prefer to reuse concepts is actually just a statement Ockham
s razor, in a different guise.
rmal Optimality of Minimum Description Length
Minimum description length can be shown to be optimal under the following conditions (see *Advances in Minimum Description Length*, Gr
nwald et al., 2005.):
1. The true data generating process is included in the set of models under consideration.
2. The set of models under consideration is finite.
3. The data are generated independently and identically according to the true data generating process.
no free lunch theorem
 in machine learning (Wolpert and MacM
ready, 1997) says that, without making assumptions, we cannot predict the future.
Thus, it seems that the assumptions required by minimum description length optimality proof are as good as can be expected.
The minimum description length principle allows us to formalize Ockham
s razor, and many other informal aspects of the
philosophy of science
We stress that we are ****not**** the first to propose the minimum description length principle.
The novelty is in the *use* of this framework toM
 assess the complexity of the
minimum description length
 the only provably optimal framework for general theorizing, it is, as far as we are aware, the only practical formal framework for measuring theory complexity that exists at all.
We therefore adopt in the following theses:
    - the minimum description length criterion is the optimal one for measuring theory complexity in science
# The Finite Complexity of the God Hypothesis
m description length framework, we show that the
 has finite complexity, on three different levels.
### Complexity of a Theoretical Entity
The cost of a theory using minimum description length is just the sum of:
- the space needed to express that theory
- the space needed to encode the mis-predictions of the theory
As such, the important point to understand is:
- important note about theory cost
    - the cost of a theoretical entity is a function of the *************theory itsM
    - the cost of a theoretical entity ******is not****** inherent in the complexity of the object itself
### Even Ordinary Objects have Infinite Complexity
Atheist philosophers will object that the theory of God is
 complex, because God must be infinitely complex.
However, using the minimum description length framework, we see that we are not penalized for the infinite complexity that an object has, but only for the complexity of the ******theory****** we use to model this objecM
Thus, we are not penalized for the complexity of
 the object, only for the complexity of ***********our theory*********** of God.
But, even ordinary objects have
 complexity, in principle.
Aldous Huxley famously wrote:
> If the doors of perception were cleansed everything would appear to man as it is, infinite.
In other words, even ordinary objects have
, but this does not preclude us from dealing with them using finite theories.
Atheist philosophers like M
Dawkins, Harris, Dennett or Hitchens
typically not the strongest on the topic of mathematical understanding
have not proposed any other rigorous theory to measure the size of theories, as far as we are aware.
### Finite Complexity of the God Hypothesis
**Argument From Intelligent Design**
The argument made by intelligent designers like Meyer, Lennox or Behe would be of the following form:
- argument for intelligence from DNA
    - we see that human DNA is
 can create non-trivial computer code
        - in particular, computer code cannot evolve randomly
    - therefore, human DNA must be a result of an intelligent cause
**A Minimal Theory of an Intelligence**
The complexity of the God (intelligent design) hypothesis is only the amount of space needed to write the theory:
- an intelligent being can write computer code
- DNA is computer code
- therefore, an intelligent being can be the cause of computer code
Measured in ASCII, this little theory takes M
up 132 bytes on disk.
This is not only finite but very small!
Of course, we would use a different coding scheme that ASCII for both theoretical and technical reasons.
But, the point remains, this
 theory of intelligence is very small.
**A Theory to Recognize Intelligence**
It may seem like a trick to use the word
 without actually specifying how to *********recognize********* intelligence.
This would be an interesting point to philosophize on.
But, it is no problem, because we M
can, in practice, also specify a *****************recognition***************** function for intelligence.
Throughout human history, all humans have been able to recognize other intelligent objects, even though, except for perhaps a handful of scientists and only recently, no one would claim to
Assuming humans are finitely specifiable programs, which a materialistic viewpoint would necessitate, humans prove we can give a finite specification of a theory to
****************************A Theory to Explain Intelligence****************************
Though it is in no way necessary to do so for the purposes of intelligent design, it is even possible to *******explain******* intelligence with a finite theory.
That is, to the extent that ChatGPT
, we can say that artificial intelligence theory in 2023 gives us the ability to
explain intelligence
Since ChatGPT takes up finite disk space, this is a finite theory as well.
 is arguably limited by the fact that ChatGPT is not yet
However, current trends suggest that
 will eventually be achieved by these methods.
This will imply that even
 has a finite description.
Though atheist philosophers fret about the
 of the God hypothesis, we have seen three different levels at which the theory of intelligence is actually finite.
# Infinite Universes is More Complex than the God HyM
Using the framework for measuring theory complexity implied by
minimum description length
, we can show that the
infinite universes hypothesis
 commonly invoked by atheists to explain the
 universe, if modeled faithfully, is mathematically more expensive (in fact infinitely more expensive) than the
### The Problem for Atheism of the Finely-Tuned Universe
Empirical investigation into physics, chemistry and biology has shown that thM
 of the physical universe are
 in the sense that, if the constants were changed slightly, the universe would not support life (Barrow, Davies, Rees).
In fact, if one were sampling physical parameters entirely at random, the chance of selecting a universe that would support life is, in ordinary parlance, effectively zero.
Assuming this is true, it is in conflict with the
, which states that life can plausibly evolve
### Atheist Resort to M
The atheist response to the finely tuned universe is that there must be
 universes, each running with their own set of physical parameters.
We just happen to be in one universe that supports life, so we are here to investigate our own origins.
In infinitely many other universes, there is no life, so no one to wonder.
Informally, this is an obvious violation of Ockham
s razor, because these extra universes don
t do anything except for save the atheist theory from a mispM
However, using the minimum description length framework, we can quantify the size of this
 hypothesis, and see that it is infinite, which makes it strictly worse than the finitely specifiable God hypothesis.
### A Simulation Model of the Universe
We note that there are believed to be a finite number of atoms in the universe, each containing a finite number of indivisible particles.
Thus, the total number of indivisible particles in the universe is finite.
Assuming each particM
le can be represented by a vector of real values with finite dimension, the entire state of the universe can be represented on a Turing machine (a computer) with finite storage space.
There is believed to be a
smallest possible unit of time
, called *****Planck time***** (1899), smaller than which it is not possible to detect.
If this is true, then it is possible to represent the universe as a state machine in the following way:
- the universe as a state machine
        - the state is a finite nM
umber of real-valued (or perhaps just scalar-valued) parameters
    - discrete state transitions
        - the state transitions can take at discrete intervals, at a frequency that makes it impossible for observers inside the universe to notice that there are discrete updates going on
Thus, we can represent the universe with a finite amount of space.
Thus, the minimal description length description of the entire universe could, in principle, be given with a finite size.
We also saw in the last thesis that the
### Infinite Universes is a Infinitely Complex
A theory that posits an
 of universes might seem ***********intuitively*********** simpler than the God hypothesis, because it is, one could argue, made up of
But, this analysis is based on a *vague* notion of how to assess theories.
We have agreed that minimum description length is the optimal theory for describing science.
We saw that we can represent one universe with finite space.
ut, an infinite number of universes, modeled in the same way, would require infinite space.
In general, $K$ universes will take $K$ times more space than one universe to represent.
Comparing the infinite size of the infinite universes hypothesis to the finitely-sized God hypothesis, we can say that from the perspective of minimum description length:
- the theory of infinite universes is more complex (infinitely more complex) than the God hypothesis
From the perspective of minimum description lengM
 requires infinite theory complexity.
Since an intelligent designer has already been shown to have finite complexity, therefore the infinite universes theory is mathematically a more complex theory, according to minimum description length, than the intelligent design theory.
# Predicting the Future with Intelligent Design
One of the most serious criticisms of intelligent design is the idea that intelligent design is
 because intelligent desM
does not predict the future
To remedy this, we present a forward-looking, *falsifiable* prediction (i.e., a prediction about the future that could be wrong) based on intelligent design.
### Predicting the Future versus Modeling the Past
Predicting the future and modeling the past are two fundamentally different things.
The no free lunch theorem suggests that, without assumptions about the predicability of the future, we can
History is an example of an examM
ple of an empirical inquiry where it is not always possible to use the future to resolve theories.
However, for all laws in the
, it is possible to predict the future, and thus we consider it a requirement for intelligent design to predict the future in order to be a
### Past Work on Predictions of Intelligent Design
**Fitting Past Data**
Most aspects of the
 hypothesis effectively fit past data (e.g. Meyer *********Darwin
- the ability for new fossil forms to arise suddenly
    - this is what we find in the fossil record (Gould, 1995)
- the ability for new animal forms to arise with arbitrary complexity
    - DNA code seems to jump in large gaps (Behe, 1996)
- the ability for irreducibly complex structures to arise (Behe, 1996)
    - e.g., that a machine of separate parts including A and B can arise, when neither of A or B on its own would confer an advantage
Meyer has suggested the following
 of intelligent design:
- junk DNA is expected to be
That is, non-coding portions of DNA were presumed by Darwinists to be
, and Darwinian theory basically requires that
 of DNA be junk, or the probabilistic pressure on random mutation to find human DNA would be too great.
It has turned out that
 than was previously thought, and Meyer says this is a correct prediction of intelligent design.
Perhaps it is more accurate to say that the junk DNM
A data point is more of a *misprediction* of Darwinism than a positive prediction of intelligent design.
While the junk DNA argument may certainly add value in the long run, there are two drawbacks to this prediction:
- not easy to say how much DNA is junk
    - individual nucleotides are not labeled in nature as
    - it will presumably be along time before every least nucleotide can be proven to have or not have a function
        - and this is kind of question where debate can be made to drag out
not an exact prediction
    - we intuitively think that
 would leave less DNA than Darwin
    - but, how much
 DNA would we expect God to leave?
        - this is not clear from any theory, so this prediction is somewhat fuzzy
The pattern in the fossil record is *******lengthy periods of stasis******* (Gould, Meyer).
This also commonly accepted to the pattern in human history.
That is, humans have not evolved throughout human histoM
Neither have we observed, we believe, any truly
 macro-evolution in any other animals.
, measured in bits, would be between 6 to 7 billion bits.
The age of the Earth is meant to be around 4.5 billion years old.
A time frame on the order of tens of billions of years is nowhere near enough time to
 7 billion bits worth of functional computer software.
The Darwinian hope is that most of this DNA will turn out to be
very small part of DNA might be
The realization that DNA was 7 billion bits of non-reducible information would surely sink the Darwinian process outright, because the odds that one can evolve this complex of a program is, in ordinary parlance, effectively zero.
In any case, the apparent high complexity of DNA puts a heavy pressure on both the random and gradual aspects of Darwin
### ****************************************Darwin
s Random and/or Gradual Evolution*******************M
*********************
There are two standard, but in some ways separable, dimensions of modern interpretations a Darwinian thesis:
- undirected, or random
 aspect of evolution has created humans and other species
        - this would be equivalent to choosing mutations
    - evolution takes place in very small increments
t happening randomly, then it would probably be happening according to small accumulations in the normal M
course of genetic variation that we see, otherwise called
### Intelligent Design
Intelligent Design solves the problems of the the origin of life by postulating that the source of the computer code of DNA is actually created by an
something that is able to write computer code
Since the intelligence can write computer code, we are not surprised to find the computer code that is DNA.
 is explaining who this
Two options for the intelligent source of Earth life are:
This paper is agnostic as to which it is: we are only considering the hypothesis that the source of life is
 in an abstract sense.
### A Falsifiable Future Prediction of Intelligent Design
Consider the following prediction of stasis *********into the future*********:
- theory based on intelligent design
    - suppose that the only way for a
    - then, in the future, we expect that any newly observed
- we do *****not***** expect to see species just randomly
 into different species, as Darwin
    - that is, we do not expect to see new genes with N different co-ordinated nucleotide changes, where N is non-trivially large, e.g., 12, or even 1000
- we **do** expect that, if there is a
meaningfully new species
his will have an intelligent cause, either:
In other words, this theory can be falsified if:
- falsifiability criterion
    - if we observe any new
 that has arisen from a non-intelligent (i.e., random, or undirected) cause (i.e., Darwinian ************macro-species************ evolution)
**Past Performance**
Suppose we had made this prediction at any time in the last 2500 years.
We have assumed that there has been no
 macro-evolution ofM
 any species in this time.
Thus, on a historical basis, the prediction of intelligent design ******is not****** falsified.
s predictions that we will always have
 arising has never actually been observed, and so has been false every year for the last 2500 years.
We have provided a prediction of intelligent design that can be investigated in the future.
On a historical basis, the theory of intelligent design is a better fit for the data than the Darwinian hypM
# The Mathematical Relationship Between Truth and God
It is intuitively grasped that there is a relationship between God and the concept of objective Truth, and that, e.g., the post-modernist rejection of Truth is somehow a consequence of their rejecting God.
We use a mathematical result due to G
del and Tarski to show that this relationship between Truth and God is true in a precise sense.
### Intuitive Relationship Between God and Truth
Intuitively, if there is to be a
 answer to an empirical question, the only person that could actually know the answer for sure is an omniscient being.
If we assume that all
our ordinary experience
 are fallible, and infallibility is required in order to accurately judge what is
, then we can, intuitively, only have a notion of
 if someone in the system if infallible.
However, this kind of thinking relies on an informal notion of truth, and we propose to strengthen this using the mathematicalM
### The Wait for a Theory of Truth
 is extremely slippery, from both an empirical and a mathematical perspective.
 are ones that are used by all people from all walks of life, without requiring any technical background.
But, to give a non-trivial and non-vacuous accounts of these words took until the 20th century, relatively late compared to, e.g., physics.
s Definition of Truth
 modern definition of
 that is used in mathematics is the notion of *********************model-theoretic truth********************* proposed by Tarski, based on G
This theory says that, in order to evaluate the
 of a statement $s$, we need:
- some other language, called a *************meta-language*************, in which to interpret $s$
- a ********universe******** U of objects onto which to map the objects and predicates named in $s$
- a way to map sentences from the language that coM
ntains $s$ to be a sentence about the universe U
### Mathematical Requirement for God to have Truth
Thus, we cannot, according to this view of
 speak of truth coherently unless there is a being who:
- has its own language
- has its own universe of objects which is the
- has a way to map human utterances into its own language, about its own universe
Thus, we have a formal notion of what kind of
 would be required in order to speak of
d colloquially be referred to as
Based on the work of Tarski, we have given precise properties that omniscience would need to have in order to define the concept of
# A Scientific Theory of the Meaning of Natural Language
Concepts get their meanings from:
- their relation to other concepts
- their relations to the sensory functions
- the mechanism of inference
A scientific theory of
 can be built on these concepts, without reference to the relatioM
n between a word and the
, with applications to cognitive science and artificial intelligence.
### Background on Meaning
**************************************Semantic Primitives**************************************
Katz and Fodor (1963) proposed that words can be made out of semantic primitives.
But, no such primitives have been found to exist.
Indeed it would seem that no set of primitives available to humans before the start of human history could explain the new, exotic, andM
 manifold concepts available in the information age.
**Meaning in the Outside World**
Another approach to meaning that we feel is not fruitful, from a scientific perspective, is to refer to the
 of an object as being that set of things which the word names
in the outside world
That is the meaning of the word *****apple***** is the actual
This has been a popular view among philosophers such as Russell, Frege and Montague.
But, the problem is tM
hat only omniscience can know the extension of a word in the
, and we cannot appeal to omniscience in testing or applying a theory, and so this is not a scientific way of thinking about language.
**Holistic Theories of Meaning**
Holistic theories of meaning are ones in which the
 of a word comes from its relationships to other words.
This, some philosophers worry, could cause an
 in the definition, because A gets its meaning from B, and B gets its meaning from AM
The challenge is to show how a
 theory of meaning can be coherent.
### A Computational Theory of Meaning
A theory of meaning can be given in purely computational terms as follows:
    - concepts are like nodes in (graph theoretic) graph
    - concepts are related to one another
    - concepts are ***************linguistic*************** in nature
    - sense organs label sensory input with the linguistic concepts that are sensed
    - some kind of logical oM
r inferential system allows a certain set of
 propositions to active additional
    - this can be thought of in logical terms, or in neural network terms
For example, suppose we have a theory T and a sentence s.
The assumption of T along with s allows for more inferences than assuming T alone.
We can then say that the
 of s, relative to T, is the **********difference********** in what is implied by knowing T and s, compared to knowingM
We propose that this theory has the following applications:
- allows us to settle long-running philosophical confusions around the word *******meaning*******
- gives a model for doing cognitive science
- gives a model for understanding the behavior of artificial neural networks
    - i.e., interpret them as logical inference
# Quantifying the Amount of Information in a Computer Program
One conundrum in the field of intelligent design is how to describe the
 of DNA, since it is the assumed
high quantity of information
 in DNA, that points to an intelligent designer.
 of entropy is not suitable for measuring the amount of information in a computer program, in this case, because God, if there is one, would presumably not need to work through a noisy channel.
We propose a scheme for measuring the information in a computer program relative to the tests that that computer program passes, i.e.,M
 in terms of its ********function********, and discuss an example application of this.
t for Intelligent Design
Shannon summarized the problem of **************communication************** that he was trying to solve as:
> The fundamental problem of communication is that of reproducing at one point either exactly or approximately a message selected at another point. Frequently the messages have meaning; that is they refer to or are correlated according to some system M
with certain physical or conceptual entities. These semantic aspects of communication are irrelevant to the engineering problem.
This is an inappropriate model for the study of
    - the assumption of a God who is
, or at least very powerful, and perhaps omniscient, calls into question whether God would really be limited by
 DNA through noisy channel
    - presumably an infinite God could communicate exactly the pM
rogram that they want
- any given program is arbitrary
    - Shannon explicitly denies the role of
 in the bits that are communicated
    - however, infinitely many computer programs have the same meaning, so it is unclear which program God would have theoretically given for us, and whether this program is the shortest possible
s model is inappropriate precisely because it ********does not******** model the meaning, whereas in the field of intelligent design we are interested in M
the complexity of the underlying
 that it represents.
### Formalizing the Notion
The Meaning of a Program is its Function
For use in the field of intelligent design, we propose to formalize the following intuition:
- the meaning of a computer program is its behavior
We can formalize this by speaking of, for any program P, the set of all tests that P can pass.
- definition of the amount of information in a program
    - the amount of information contained in a program P is the smallestM
 program (i.e., with the lowest Kolmogorov complexity) that can pass all the same tests that P can pass
This solves the problems that Shannon
s model has when applied for intelligent design purposes:
    - this definition does not depend on a noisy channel
    - we are taking the shortest program, and we know there must be ****some**** shortest program
    - Shannon explicitly said he was ***not*** interested in the actual
e underlying comunication
    - we equate the
 with the passing of tests
### On the Application of this Theory
We believe this theory can be very productive.
To apply the theory, one must note that has certain inherent behavior with respect to one-way boundedness:
- no upper limit on the number of tests that a program can empirically pass
    - the full set of tests that a program (e.g., humans) can pass is an empirical question
    - at any given time, we only know a ****part**** of what humans caM
    - thus, at any given time, we can only give a ***********lower bound*********** on the tests that a program (e.g., human) can pass
- now lower limit on the shortest program that can pass a given set of tests
    - Kolmogorov showed that we cannot know exactly what the shortest program that will pass a set of tests is
    - thus, given a set of tests, we can only ever ***********upper bound*********** the shortest program, by providing an example program
        - but, we are free to always look for shorterM
 programs to achieve the same result
### A Method for Practical Application
Here is one application of the framework just given.
t know all of the tests that a human can pass, but we ***can*** know that a human can speak language.
And, we have programs like ChatGPT that, almost, can speak language.
If we assume that ChatGPT is basically the smallest program that can do what ChatGPT does, then we can use the size of the ChatGPT program as a lower bound on the complexity of language use, and thus on amoL
unt of information contained in human DNA.
We have given a way to measure the amount of
 in human DNA that does not rely on Shannon
text/plain;charset=utf-8
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"flyerboy.sats"}h!
Mined by AntPool965K
FjDOUT:006F6E8E979550958659318702591C3001D6740143F95C8FE5016DE546D5A333
text/plain;charset=utf-8
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>ArboCinematica</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandbox="allow-scripts" type="text/M
javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="allow-scripts" type="text/jaM
vascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <script type="text/javascript">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed ==M
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274M
213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this M
function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
              width: 100%;
              height: 100%;
              margin: 0px;
              padding: 0;
              display: flex;
              justify-content: center;
              align-items: center;
              top: 0;
              bottom: 0;
              left: 0;
              right: 0;
              max-width: 100%;
              max-height: 100%;
              margin: auto;
              overflow: auto;
              object-fit: contain;
              position: fixed;
<script type="text/javascript">
    const rand = mathRand();
    const container = document.createElement("div")
    container.innerM
HTML = "<span>seed: " + seed + "</span><br>";
    console.log(container.innerHTML)
    let t,r,e,i,o=1e9*mathRand();function nRandom(t,r,e,i){return i===Math.floor?void 0!==e?Math.floor(random(r,e)):Math.floor(random(r)):void 0!==e?random(r,e):random(r)}function randomGaussian(t,r){return p5.prototype.randomGaussian(t,r)}function nRandomBoolean(t,r){return mathRand()<r}function random(t,r){return Array.isArray(t)?arrayPick(t):(void 0===r&&(r=void 0===t?1:t,t=0),mathRand()*(r-t)+t)}function roundVector(t){return t.M
x=Math.round(t.x),t.y=Math.round(t.y),t}function constrain(t,r,e){return Math.min(Math.max(t,r),e)}function nArrayPick(t,r,e){return void 0!==e?arrayPick(r,e):arrayPick(r)}function arrayPick(t,r){if(void 0===r){if(0===(r=t.slice()).length)return;t=[];for(let e=0;e<r.length;e++)t[e]=100*(e+1)/r.length}let e=100*random();if(r.length>0&&t.length==r.length){for(var i=[],o=0;o<t.length;o++)i.push({weight:t[o],element:r[o]});i.sort((function(t,r){return t.weight<r.weight?-1:t.weight==r.weight?0:1}));for(let t=0;t<i.lengtM
h;t++){if(t==i.length-1)return i[t].element;if(e<i[t].weight)return i[t].element}}}p5.prototype.randomSeed(o);let a,s,h,n,d,c,l,m,u,p,g,f,M,x,S,b,y,w,V,R,k,v,C,L,z,E,W,F,B,A,D,P,I=700,G=["#e9ecef","#F2F2F0","#f7fff7","#D9C6B0"],T=["#386641","#6a994e","#a7c957","#f2e8cf","#bc4749","#3c1642","#086375","#1dd3b0","#affc41","#b2ff9e"],H=["#A3B4BF","#D8EBF2","#1A3940","#4C6C73","#819FA6","#04301C","#0A572B","#30C771","#F2FFFA","#9EFCFF"],O=["#A0C603","#F2A81D","#734002","#F2985C","#D96A29","#E0FF84","#F2DA50","#D9BA55","M
#8C791B","#595911"],X=["#5A7302","#324001","#86A614","#B6D93B","#022601","#155902","#267302","#82BF26","#BFD962","#E7F2BD"],N=["#F0F0F0","#E3BF0D","#CACACA","#F2CF1D","#F2BD1D","#F28E13","#F24405"],_=["#592918","#8C564A","#8C3F3F","#792938","#AC566A","#AC3F5F"],j=["#2C4001","#364022","#5A7302","#93A603","#736830"],q=["#9CB0D9","#CEDEF2","#667302","#F2EFBD","#F2CA7E"],U=["#BF8756","#59412D","#A68C76","#402A1E","#F2F2F2","#D9843B","#F2CEAE","#BF5517","#8C260F","#590A0A"],Y=["#A60311","#8C0327","#BF046B","#A69B03","#FM
2A766","#730217","#F20544","#BF0436","#D9296A","#344973"],$=["#B07756","#55012D","#A65C66","#301A10","#C2C2B2","#C9542B","#F7BEAE","#CF5827","#7C361F","#790A2A"],J=20,K=[],Q=!0,Z=!0,tt=!0,rt=!0,et=!0,it=0,ot=[],at=[],st=["growth"],ht=0,nt=!0,dt=0,ct=[],lt=300,mt=["#0468BF","#0487D9","#05AFF2","#05C7F2"],ut=[],pt=1,gt=1,ft=.05,Mt=-.04,xt=[],St=!1,bt=!1,yt=[],wt=!1,Vt=!1,Rt=!0,kt=1/32,vt=!1,Ct="normal",Lt=[],zt=!1;const Et={season:nArrayPick("season",[50,75,92,100],["spring","summer","fall","winter"]),fruitsOn:nRandoM
mBoolean("fruit/fruitsOn",.6),maxTrees:nRandom("maxTrees",1,6,Math.floor),backgroundSun:nRandom("background/backgroundSun",0,5,Math.floor),sRadius:nRandom("sun/sRadius",.05,1/12),treeTrunkHeight:nRandom("treeTrunkHeight",.72,.85),treeColor0:nRandom("color/treeColor0",0,$.length-1,Math.floor),treeColor1:nRandom("color/treeColor1",0,U.length-1,Math.floor),leafColor:nRandom("color/leafColor",0,9,Math.floor)};window.$generativeTraits={...Et},console.log(window.$generativeTraits);const Wt={backgroundColor:nArrayPick("baM
ckground/backgroundColor",[25,50,75,100],G),treeRotation_conf:nRandom("treeRotation",Math.PI/10,Math.PI/3+Math.PI/10)*randomSign(),treeMaxFork_conf:nRandom("treeMaxFork",2,5,Math.floor),treeBranchHeight_conf:nRandom("treeBranchHeight",.45,.6),lengthError:nRandom("lengthError",.12,.22),forestMaxLevels:nRandom("maxLevels",5,7,Math.floor),colorSD:nRandom("color/colorSD",.9,3),fruitColor:nRandom("fruit/fruitColor",0,9,Math.floor),fruitLevelMinRange:[nRandom("fruit/fruitLevelMin",[2,3]),nRandom("fruitLevelRange",1,3,MatM
h.floor)],fruitFactor:nRandom("fruit/fruitFactor",2,2.5),fruitRatio:nRandom("fruit/fruitRatio",.5,1),maxFruitProb:nRandom("fruit/maxFruitProb",.6,.93),yzRatio:nRandom("yzRatio",.1,.4),brushRotationFactor:nRandom("brushRotationFactor",.6,1),dColorSD:nRandom("dColorSD",1,3),curvature:nRandom("curvature",.5,3),curveHeight:nRandom("curveHeight",.75,.88),fileNumber:(9999*random()>>0).toString(),highResInnerCanvas:nRandom("walls",[[3500,4e3],[3850,4400],[4200,4800],[4550,5200]]),sColorSD:nRandom("sun/sColorSD",2.5,6),sunM
Pos:[nRandom("sun/X",.2,.8),nRandom("sun/Y",.03,.12)],sunBrushFactor:nRandom("sun/sunBrushFactor",.3,.65),sunBrushes:getRandomArray("sun/SunBrush",2,0,7),gColorSD:nRandom("grass/gColorSD",3,15),maxGVariety:nRandom("grass/maxGVariety",1,4,Math.floor),gCurvature:nRandom("grass/gCurvature",.1,.8),maxGClumps:getRandomArray("grass/maxGClumps",2,1,4),maxGLeaves:nRandom("grass/maxGLeaves",4,7),maxGRange:nRandom("grass/maxGRange",.09,.35),filterSize:nRandom("filterSize",2,4,Math.floor),filterScale:[nRandom("filterScaleX",5M
,8,Math.floor),nRandom("filterScaleY",5,8,Math.floor)],filterAlpha:nRandom("filterAlpha",220,255,Math.floor),maxColorChanges:[nRandom("maxColorChanges0",15,35,Math.floor),nRandom("maxColorChanges1",15,35,Math.floor),nRandom("maxColorChanges2",15,35,Math.floor)],maxSplashWeight:nRandom("maxSplashWeight",7,10,Math.floor),suppressGammaAdjust:nRandomBoolean("suppressGammaAdjust",.35),gammaInv:nRandom("gammaInv",.02,1),triangleFilterMode:nRandomBoolean("triangleFilterMode",.33)};function getRandomArray(t,r,e,i,o){let a,M
s=[],h=void 0!==o;for(let o=0;o<r;o++)a=t+"_"+o,h?s.push(nRandom(a,e,i,h)):s.push(nRandom(a,e,i));return s}function standardizeDegree(t,r){let e=Math.pow(10,r),i=Math.sign(t);return Math.round((i*p5.prototype.fract(t)+t%360)*e)/e}function saveCanvas(e,i,o){vt=!0,Ct="freeze",null==W&&(z=kt*t,W=e.createGraphics(t+2*z>>0,r+2*z>>0),W.noStroke(),W.tint(255,255),W.fill(Wt.backgroundColor),W.rect(0,0,t+2*z>>0,r+2*z>>0),W.tint(255,230),W.image(n,z>>0,z>>0,n.width,n.height),W.noTint(),n.clear(),n.image(W,0,0,n.width,n.heighM
t),Rt&&P.drawFilter(n,p5)),o&&W.get().save(E+"_"+e.hex(i).toString(),"png"),vt=!1}function randomSign(){let t=Math.round(Math.abs(Math.sin(10*random())));return Math.cos(t*Math.PI)}function compare(t,r){return t.zShift>r.zShift?-1:1}var sketch=function(o){o.setup=function(){switch(E="ArboCinematica_"+Wt.fileNumber,t=Wt.highResInnerCanvas[0],r=Wt.highResInnerCanvas[1],e=Math.sqrt(Math.pow(t,2),Math.pow(r,2)),i=2*t+2*r,F=Math.max(Math.min(o.windowWidth,7*o.windowHeight/8>>0),I)>>0,B=8*F/7>>0,h=o.createCanvas(F,B),h.sM
tyle="",h.style.opacity="",h.style.filter="",h.style["-ms-filter"]="",h.id("ArboCinematica"),n=o.createGraphics(t,r),v=Wt.forestMaxLevels,o.frameRate(1),n.noStroke(),Et.season){case"winter":a=H,s=q;break;case"spring":a=X,s=j;break;case"fall":a=O,s=q;break;default:a=T,s=j}L=Et.fruitsOn,l="Ellipse",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],K.push(new Bt(l,m,u,p,g,d)),l="Ellipse",m=.5,u=.3*Wt.brushRotationFactor,p=!1,g=[random($)],K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,M
p=!1,g=[random($)],d=function(t,r,e){return Math.sin(2*t+r/10)},K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.cos(t)},K.push(new Bt(l,m,u,p,g,d)),o.noiseSeed(random()),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return o.noise(t+r/10)},K.push(new Bt(l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.cos(e/10-Math.PI)},K.push(new Bt(M
l,m,u,p,g,d)),l="SplashRadial",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],d=function(t,r,e){return Math.abs(Math.sin(t+r/10))},K.push(new Bt(l,m,u,p,g,d)),l="SplashRV",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($)],c=.1,d=function(t,r,e,i){return Math.sin(2*t+r/10)+randomGaussian(0,c)},K.push(new Bt(l,m,u,p,g,d,c)),l="RSphere",m=.1,u=.1*Wt.brushRotationFactor,p=!1,g=[random($),random($)],d=function(){return[1-random(random(random())),random()]},K.push(new Bt(l,m,u,p,g,d)),l="RLSphere",m=.1,u=.1*Wt.bruM
shRotationFactor,p=!1,g=[random($),random($)],d=function(){return[1-random(random(random())),random()]},K.push(new Bt(l,m,u,p,g,d));let M=J,W=.5*J>>0,A=0,G=7,U=.05,Y=.3;if(ot.push(new Ft(M,W,A,G,U,Y)),M=J,W=.5*J>>0,A=0,G=7,U=.015,Y=.1,ot.push(new Ft(M,W,A,G,U,Y)),at[0]=[function(t){return Math.sin(Math.sin(1+.9*Math.sin(t+Math.PI)))},1],at[1]=[function(t){return 2*Math.cos(4*t)},1],at[2]=[function(t){return Math.exp(Math.cos(t))-.9*Math.cos(4*t)+Math.sin(t/12)^5},12],Z){n.angleMode(o.DEGREES),S=t/3.5>>0,b=.7*t+MathM
.sqrt(t*r)*random(),y=10+random(10)>>0,ut=[mt[random()*mt.length>>0],mt[random()*mt.length>>0]];let e=K[random(0,7)>>0],i=[new Bt(e.type,e.widthError,e.rotationError,e.strokeOn,ut,e.function,e.sd,1)];w=Wt.dColorSD;for(let r=0;r<1;r++)V=5+10*random()>>0,gt=t/700>>0,x=t/700+10*t/700>>0,k=t/100+random(t/300)>>0,R=standardizeDegree(random(360),5),xt.push(new It(pt,V,gt,x,R,S,b,y,ft,Mt,k,i));n.angleMode(o.RADIANS)}if(tt){n.angleMode(o.DEGREES),S=.65*t>>0,b=random(.8,1)*t>>0,y=4+random(4)>>0;let e=[random(_),random(_)],iM
=K[random(0,7)>>0],a=[];a.push(new Bt(i.type,i.widthError,i.rotationError,i.strokeOn,e,i.function,i.sd,1));let s=[random(_),random(_)];i=K[random(0,7)>>0],a.push(new Bt(i.type,i.widthError,i.rotationError,i.strokeOn,s,i.function,i.sd,1)),w=Wt.dColorSD,R=0;let h=Wt.curvature,d=Wt.curveHeight*r>>0;for(let r=0;r<1;r++)V=10+10*random()>>0,gt=t/150+random(t/100)>>0,x=gt+random(t/100)>>0,k=t/2e3+random(t/2e3)>>0,yt.push(new Tt(pt,V,gt,x,R,S,b,y,ft,Mt,k,a,h,d));n.angleMode(o.RADIANS)}if(et){n.angleMode(o.DEGREES);for(let M
r=0;r<Wt.maxGVariety;r++){let r;S=.09*t>>0,b=random(.15,.2)*t>>0,y=1;let e=[random(s),random(s)],i=Wt.gColorSD,a=random(0,7)>>0;r=5==a?K[random(0,5)>>0]:K[a];let h=[];h.push(new Bt(r.type,r.widthError,r.rotationError,r.strokeOn,e,r.function,i,1));let n=[random(s),random(s)];a=random(0,7)>>0,r=5==a?K[random(0,5)>>0]:K[a],h.push(new Bt(r.type,r.widthError,r.rotationError,r.strokeOn,n,r.function,i,1)),R=0;let d=Wt.gCurvature;V=15+15*random()>>0,pt=8,gt=t/700+random(t/700)>>0,x=gt+random(t/750)>>0,k=t/2e3+random(t/2e3)M
>>0;let c=o.createVector(0,0),l=0,m=.1;Lt.push(new Ht(pt,V,gt,x,R,S,b,y,ft,m,k,h,d,c,l))}n.angleMode(o.RADIANS)}if(rt){n.angleMode(o.DEGREES),S=.65*t>>0,b=random(.8,1)*t>>0,y=3;let e=Wt.sColorSD,i=[random(N),random(N)],a=K[Wt.sunBrushes[0]>>0],s=[];s.push(new Bt(a.type,a.widthError,a.rotationError,a.strokeOn,i,a.function,e,1));let h=[random(N),random(N)];a=Wt.sunBrushes[1]>>0==5?K[random(4)>>0]:K[Wt.sunBrushes[1]>>0],s.push(new Bt(a.type,a.widthError,a.rotationError,a.strokeOn,h,a.function,e,1));let d=0,c=Et.sRadiuM
s*t,l=o.createVector(Wt.sunPos[0]*t,Wt.sunPos[1]*r),m=Wt.sunBrushFactor;V=10+10*random()>>0,gt=t/150+random(t/100)>>0,x=gt+random(t/100)>>0,k=t/2e3+random(t/2e3)>>0,D=new Gt(pt,V,gt,x,d,S,b,y,ft,Mt,k,s,c,l,m),n.angleMode(o.RADIANS)}if(Q){ct.push(new Pt(t/20>>0,o.color("#c6d4ff"))),ct.push(new Pt(t/20>>0,o.color("#fffafb"))),ct[0].color.setAlpha(120),ct[1].color.setAlpha(130);let e=t/30>>0,i=t/900>>0,a=t/500>>0,s=st[0],h=Et.maxTrees,n=.12,d=Wt.lengthError;C=Wt.colorSD,f=new At(h,t,r,n,d,a,s,i,e,(function(t,r){returnM
-.5+Math.sin(t.x+1+r%1e4)}),(function(t,r){return constrain(t,0,1)}),(function(t,r){return constrain(t,0,2)}),null,0),f.setupTrees(o)}Rt&&(P=new Ot(Wt.filterSize,Wt.filterScale,Wt.filterAlpha,Wt.maxColorChanges,Wt.gammaInv,z,Wt.triangleFilterMode,o)),n.background(N[Et.backgroundSun]),o.background(N[Et.backgroundSun])},o.draw=function(){"normal"===Ct?(o.clear(),o.image(n,0,0,F,B),!St&&Z&&(n.angleMode(o.DEGREES),xt[0].draw(n,o),xt[0].currentLevel++,xt[0].currentLevel>xt[0].iterations/2&&(St=!0),n.angleMode(o.RADIANS)M
),St&&!wt&&rt&&(n.angleMode(o.DEGREES),D.draw(n,o),D.currentLevel++,D.currentLevel>=D.iterations&&(wt=!0),n.angleMode(o.RADIANS)),St&&!bt&&tt&&(n.angleMode(o.DEGREES),yt[0].draw(n,o),yt[0].currentLevel++,yt[0].currentLevel>yt[0].iterations/2&&(bt=!0),n.angleMode(o.RADIANS)),bt&&Q&&f.currentLevel<v&&(ct[0].animateComet(),ct[1].animateComet(),f.animateAllTrees(),f.drawAllTrees(n,o),f.currentLevel++,n.tint(255,255)),it++,0==Vt&&f.currentLevel>=v&&(Vt=!0,o.image(n,0,0,F,B),Ct="freeze",saveCanvas(o,it,!1))):zt||(o.imageM
(n,0,0,F,B),zt=!0)},o.windowResized=function(){o.noLoop(),F=Math.max(Math.min(o.windowWidth,7*o.windowHeight/8>>0),I)>>0,B=8*F/7>>0,o.clear(),o.resizeCanvas(F,B),o.image(n,0,0,F,B),Ct&&(zt=!0),o.loop()},o.keyPressed=function(){return"s"!==o.key||vt?"e"!==o.key||vt?void 0:(A=o.get(),o.save(A,E+".png"),!1):(saveCanvas(o,it,!0),!1)}};class Ft{constructor(t,r,e,i,o,a){this.startWidth=t,this.endWidth=r,this.rotation=e,this.minWidth=i,this.SWRatio=o,this.stepSpeed=a}}class Bt{constructor(t,r,e,i,o,a,s,h){this.type=t,thisM
.rotationError=e,this.widthError=r,this.strokeOn=i,this.color=o[0],this.function=a,this.sd=s,this.color1,this.colorSD=void 0===h?0:h,o.length>1&&(this.color1=o[1])}gaussianColor(t,r,e){if(null==t)return;if(0==this.colorSD)return t;let i=constrain(randomGaussian(r.red(r.color(t)),this.colorSD)>>0,0,255)>>0,o=constrain(randomGaussian(r.green(r.color(t)),this.colorSD)>>0,0,255)>>0,a=constrain(randomGaussian(r.blue(r.color(t)),this.colorSD)>>0,0,255)>>0;return r.color(i,o,a)}drawShape(r,e,i,o,a,s){let h,n,d,c,l,m,u,p,gM
,f,M,x,S=e*(1+this.widthError*Math.sin(41*o+9)),b=i+random(this.rotationError);switch(null!=this.color&&(M=this.gaussianColor(this.color,a,s)),null!=this.color1&&(x=this.gaussianColor(this.color1,a,s)),this.type){case"Ellipse":a.fill(M),this.strokeOn||a.noStroke(),h=e*(.9+.1*Math.sin(5*o+18))*(1+this.widthError*Math.sin(2.5*o+18)),a.push(),a.rotate(b),a.ellipse(r.x>>0,r.y>>0,S>>0,h>>0),a.pop();break;case"SplashRadial":a.fill(M),this.strokeOn||a.noStroke(),a.push(),a.rotate(b),a.beginShape();for(let t=0;t<50;t++){leM
t i=p5.prototype.map(t,0,50,0,2*Math.PI),s=e/2+e/2*this.function(i,it,o),h=r.x+s*Math.cos(i),n=r.y+s*Math.sin(i);a.vertex(h,n)}a.endShape(p5.CLOSE),a.pop();break;case"SplashRV":a.fill(M),this.strokeOn||a.noStroke(),a.push(),a.rotate(b),a.beginShape();for(let t=0;t<50;t++){let i=p5.prototype.map(t,0,50,0,2*Math.PI),s=e/2+e/2*this.function(i,it+o,this.sd),h=r.x+s*Math.cos(i),n=r.y+s*Math.sin(i);a.vertex(h,n)}a.endShape(p5.CLOSE),a.pop();break;case"RSphere":n=e/2>>0,d=constrain(Math.pow(e/2,2)*Math.PI/100,50,5e3),c=MaM
th.max(t/800>>0,1),this.strokeOn||a.noStroke(),a.push();for(let t=0;t<d;t++)l=p5.prototype.map(t,0,d,0,2*Math.PI,!0),m=this.function(),u=r.x+Math.cos(l)*m[0]*n,p=r.y+Math.sin(l)*m[0]*n,g=r.x+Math.cos(l)*m[1]*n,f=r.y+Math.sin(l)*m[1]*n,a.fill(M),a.ellipse(u>>0,p>>0,2*c>>0,2*c>>0),a.fill(x),a.ellipse(g>>0,f>>0,2*c>>0,2*c>>0);a.pop();break;case"RLSphere":let i=[];n=e/2>>0,d=constrain(Math.pow(e/2,2)*Math.PI/100,100,200),c=Math.max(t/1e3>>0,1),this.strokeOn||a.noStroke(),a.push();for(let t=0;t<d;t++)l=p5.prototype.map(M
t,0,d,0,2*Math.PI,!0),m=this.function(),u=r.x+Math.cos(l)*m[0]*n,p=r.y+Math.sin(l)*m[0]*n,g=r.x+Math.cos(l)*m[1]*n,f=r.y+Math.sin(l)*m[1]*n,i.push(p5.prototype.createVector(g,f)),a.fill(random([M,x])),a.ellipse(u>>0,p>>0,2*c>>0,2*c>>0);a.fill(x);for(let t=0;t<d;t++){let r=i[t].x,e=i[t].y;a.ellipse(r>>0,e>>0,2*c>>0,2*c>>0)}a.pop();break;default:return!1}}drawLine(r,i,o,a,s,h,n,d,c,l){let m=r,u=o,p=p5.Vector.add(i,p5.Vector.mult(r,-1)),g=p5.Vector.normalize(p),f=p.mag(),M=Math.max(u*n,1),x=f/M,S=0,b=0;for(;m.dist(i)>M
M&&S<e+t/100&&m.dist(r)<=f+t/100;)this.drawShape(m,u,s,S>>0,c,l),S+=d,m.add(p5.Vector.mult(g,M)),b+=1/x,u=Math.max(p5.prototype.lerp(o,a,b),h),M=Math.min(u*n,e/50),x=f/M}drawVertexShape(t,r,e,i,o,a,s,h){for(let n=0;n<t.length;n++)this.drawLine(t[n][0],t[n][1],r,r,e,i,o,a,s,h)}drawBezier(r,o,a,s,h,n,d,c,l,m,u,p){let g=roundVector(r.copy()),f=h,M=r.dist(o)+o.dist(a)+a.dist(s),x=Math.max(f*l,1),S=M/x,b=0,y=0;for(;g.dist(s)>x&&b<4*i&&g.dist(r)<=M+t/2;)this.drawShape(g,f,d,b>>0,u,p),b+=m,f=Math.max(p5.prototype.lerp(h,nM
,y),c),x=Math.min(f*l,e/50),S=M/x,y+=1/S,g.x=p5.prototype.bezierPoint(r.x,o.x,a.x,s.x,y),g.y=p5.prototype.bezierPoint(r.y,o.y,a.y,s.y,y)}drawBezierShape(t,r,e,i,o,a,s,h){for(let n=0;n<t.length;n++)this.drawBezier(t[n][0],t[n][1],t[n][2],t[n][3],r,r,e,i,o,a,s,h)}drawPoly(t,r,e,i,o,a,s,h,n,d,c,l){let m,u,p,g=[],f=[],M=[];if("bezier"==o){m=4,u=Math.max(m,e)>>0,u=4*Math.round(u/4),p=2*Math.PI/u/4;for(let t=0;t<4*u;t+=4)M[0]=p5.prototype.createVector(r*Math.cos(t*p),r*Math.sin(t*p)),M[1]=p5.prototype.createVector(r*MathM
.cos((t+1)*p),r*Math.sin((t+1)*p)),M[2]=p5.prototype.createVector(r*Math.cos((t+2)*p),r*Math.sin((t+2)*p)),M[3]=p5.prototype.createVector(r*Math.cos((t+3)*p),r*Math.sin((t+3)*p)),g.push([M[0].copy(),M[1].copy(),M[2].copy(),M[3].copy()]);c.push(),c.translate(t.x>>0,t.y>>0),c.rotate(i),this.drawBezierShape(g,a,s,h,n,d,c,l),c.pop()}else{m=3,u=Math.max(m,e)>>0,p=2*Math.PI/u;for(let t=0;t<u;t++)f[0]=p5.prototype.createVector(r*Math.cos(p*t),r*Math.sin(p*t)),f[1]=p5.prototype.createVector(r*Math.cos(p*(t+1)),r*Math.sin(pM
*(t+1))),g.push([f[0].copy(),f[1].copy()]);c.push(),c.translate(t.x>>0,t.y>>0),c.rotate(i),this.drawVertexShape(g,a,s,h,n,d,c,l),c.pop()}}drawRect(e,i,o,a,s,h,n,d,c,l,m,u,p){let g,f,M,x,S,b,y=i,w=o,V=[],R=4,k=[],v=[],C=Math.sqrt(Math.pow(y,2)+Math.pow(w,2)),L=Math.atan(w/y),z=Math.PI/2-L,E=[],W=1/l*10>>0;if("bezier"==s){g=4,R=Math.max(g,4)>>0,R=4*Math.round(R/4),f=2*Math.PI/R/4;for(let t=0;t<4*R;t+=4)t%8==0?(E[0]=L,E[1]=z):(E[0]=z,E[1]=L),v[0]=p5.prototype.createVector(C/2*Math.cos(t*f-E[0]),C/2*Math.sin(t*f-E[0]))M
,v[1]=p5.prototype.createVector(0,0),v[2]=p5.prototype.createVector(0,0),v[3]=p5.prototype.createVector(C/2*Math.cos((t+3)*f-E[1]),C/2*Math.sin((t+3)*f-E[1])),x=v[3].sub(v[0]).heading(),M=p5.Vector.fromAngle(x).normalize(),S=v[3].dist(v[0]),v[1]=p5.Vector.add(p5.Vector.mult(M,S/2),v[0]).copy(),v[2]=p5.Vector.add(p5.Vector.mult(M,S/2),v[2]).copy(),V.push([v[0].copy(),v[1].copy(),v[2].copy(),v[3].copy()]);u.push(),u.translate(e.x>>0,e.y>>0),u.rotate(a),this.drawBezierShape(V,h,n,d,c,l,u,p),u.pop(),m&&i-i/10>t/30&&o-oM
/10>r/30&&(b=[i-i/W,o-o/W],this.drawRect(e,b[0],b[1],a,s,h,n,d,c,l,m,u,p))}else{g=3,R=4,f=2*Math.PI/R;for(let t=0;t<R;t++)t%2==0?(E[0]=L,E[1]=z):(E[0]=z,E[1]=L),k[0]=p5.prototype.createVector(C/2*Math.cos(t*f-E[0]),C/2*Math.sin(t*f-E[0])),k[1]=p5.prototype.createVector(C/2*Math.cos((t+1)*f-E[1]),C/2*Math.sin((t+1)*f-E[1])),V.push([k[0].copy(),k[1].copy()]);u.push(),u.translate(e.x>>0,e.y>>0),u.rotate(a),this.drawVertexShape(V,h,n,d,c,l,u,p),u.pop(),m&&i-i/20>t/30&&o-o/20>r/30&&(b=[i-i/W,o-o/W],this.drawRect(e,b[0],M
b[1],a,s,h,n,d,c,l,m,u,p))}}}class At{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u){this.maxTrees=t,this.width=r,this.height=e,this.rotationError=i,this.lengthError=o,this.stepDistance=a,this.mode=s,this.minWidth=h,this.minLength=n,this.trees=[],this.aLambda=d,this.bLambda=c,this.cLambda=l,this.bubbles=m,this.index=u,this.lightsOn=!1,this.gCenter=p5.prototype.createVector(r/2>>0,e/2>>0),this.currentLevel=0,this.minGround}static transformLocalToGlobal(r,e){let i=p5.prototype.createVector(0,e.y);if(0===r)i.x=e.x>>0;else iM
.x=e.x+getScreenXPosition(t,r,!1)>>0;return i}reassignIndex(t,r){t.index=r;for(let e=0;e<t.branches.length;e++)this.reassignIndex(t.branches[e],r)}sortTrees(){this.trees.sort(compare);for(let t=0;t<this.trees.length;t++)this.reassignIndex(this.trees[t],t)}setupTrees(e){let i,o,s,h=p5.prototype.createVector(0,0),n=Wt.treeRotation_conf*random(.9,1.1),d=Et.treeTrunkHeight*r,c=Wt.treeBranchHeight_conf,l=Wt.treeMaxFork_conf,m=[],u=[],p=d*random(.08,.12),g=d*random(.25,.33),f=random(Wt.fruitLevelMinRange[0],Wt.fruitLevelM
MinRange[0]+Wt.fruitLevelMinRange[1])>>0,M=Wt.fruitFactor*random(.8,1.2),x=0,S=Wt.fruitRatio*random(.8,1.2);for(let b=0;b<this.maxTrees;b++){if("growth"===this.mode)u[0]=e.color($[Et.treeColor0]),u[1]=e.color(U[Et.treeColor1]),u[2]=e.color(a[Et.leafColor]),u[3]=1==L?e.color(Y[Wt.fruitColor]):null,h.x=t*(.2+.6*random())>>0,h.y=r*(1.1-.2*random())>>0;i=Wt.yzRatio*(r-h.y),d=r*(.3+random(.1))>>0,o=d*(.2+random(.1))>>0,s=.6+random(.2),l=2+random(1)>>0,K[0].color=u[0],K[1].color=u[1],m=[];let b=random(K),y=[];y[0]=new BtM
(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),b=random(K),y[1]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),b=random(K),y[2]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),m.push(y[0]),m.push(y[1]),m.push(y[2]),1==L&&(b=random(K),y[3]=new Bt(b.type,b.widthError,b.rotationError,b.strokeOn,[b.color,b.color1],b.function,b.sd,b.colorSD),m.push(y[3]),x=Wt.maxFruitProM
b*random(.7,1));for(let t=0;t<m.length;t++)m[t].color=u[t],m[t].colorSD=C;this.trees.push(new Dt(h.copy(),n,i,d,o,c,s,l,this.minLength,this.minWidth,this.rotationError,this.lengthError,m,this.stepDistance,0,this.mode,p,g,f,M,x,S,this.index))}this.sortTrees()}drawAllTrees(t,r){for(let e=0;e<this.maxTrees;e++)ht=0,this.trees[e].drawTree(this.currentLevel,t,r)}getForceB(){let t=this.gCenter,r=p5.Vector.dist(t,ct[1].location);return Math.min(ct[1].charge/Math.pow(r,2),1)}animateAllTrees(){if("growth"==this.mode&&!nt)reM
turn!1;for(let t=0;t<this.maxTrees;t++)this.trees[t].a=this.aLambda(this.trees[t].location,100+dt),this.trees[t].b=this.bLambda(this.trees[t].getForceA(),100+dt),this.trees[t].c=this.cLambda(this.trees[t].getForceB(),100+dt),this.trees[t].updateA(this.mode),this.trees[t].updateB(this.mode),this.trees[t].updateC(this.mode);it%30==0&&this.getForceB()>t/1e8/2?this.lightsOn=!0:it%30==0&&(this.lightsOn=!1)}}class Dt{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p,g,f,x,S,b,y,w,V){this.location=t,this.rotation=r,this.zShift=e,M
this.trunkHeight=i,this.bTrunkHeight=this.trunkHeight,this.trunkWidth=o,this.branchHeight=a,this.branchWidth=s,this.branchLocation=p5.prototype.createVector(0,-this.bTrunkHeight>>0),this.dynamicLeafLength=f,this.dynamicLeafCutoff=x,this.maxFork=h,this.bMaxFork=this.maxFork,this.minLength=n,this.minWidth=d,this.rotationError=c,this.bRotationError=this.rotationError,this.lengthError=l,this.bLengthError=this.lengthError,this.stepDistance=u,this.level=p,this.mode,this.brushes=m,this.bColors=[this.brushes[0].color,this.M
brushes[1].color,this.brushes[2].color],this.maxLeaves=random(3)>>0,this.tError=random()*Math.PI/40,this.a=0,this.b=0,this.c=0,this.fruitStart=S,this.fruitFactor=b,this.fruitProbability=y,this.fruitRatio=w,this.index=V,0==this.level?M=1:this.level>M&&(M=this.level),this.branches=this.generateBranches()}getMinGrassHeight(){return 0==this.index?f.minGround:this.index>0?f.trees[this.index-1].location.y:void 0}getForceA(){let r;r=this.location;let e=p5.Vector.dist(r,ct[0].location);return Math.min(ct[0].charge/Math.powM
(e,2)*1e8/t,1)}getForceB(){let r;r=this.location;let e=p5.Vector.dist(r,ct[1].location);return Math.min(ct[1].charge/Math.pow(e,2)*1e8/t,1)}updateA(t){if("growth"!==t)return!1;this.rotationError=this.bRotationError*(3+this.a),this.lengthError=this.bLengthError*(1+this.a)}updateB(t){if("growth"!==t)return!1;this.trunkHeight=this.bTrunkHeight*(.9+.1*this.b),this.maxFork=Math.max(this.maxFork*(.95+.05*this.b),2),this.branches=[],this.branches=this.generateBranches()}updateC(t){if("growth"!==t)return!1;this.brushes[0].M
color.setRed(constrain(p5.prototype.red(this.bColors[0])+14*this.c>>0,0,255)),this.brushes[0].color.setGreen(constrain(p5.prototype.green(this.bColors[0])+14*this.c>>0,0,210)),this.brushes[0].color.setBlue(constrain(p5.prototype.blue(this.bColors[0])+14*this.c>>0,0,210)),null!=this.brushes[1].color&&(this.brushes[1].color.setRed(constrain(p5.prototype.red(this.bColors[1])+14*this.c>>0,0,200)),this.brushes[1].color.setGreen(constrain(p5.prototype.green(this.bColors[1])+14*this.c>>0,0,180)),this.brushes[1].color.setBM
lue(constrain(p5.prototype.blue(this.bColors[1])+14*this.c>>0,0,180))),null!=this.brushes[2].color&&(this.brushes[2].color.setRed(constrain(p5.prototype.red(this.bColors[2])+14*this.c>>0,0,200)),this.brushes[2].color.setGreen(constrain(p5.prototype.green(this.bColors[2])+14*this.c>>0,0,180)),this.brushes[2].color.setBlue(constrain(p5.prototype.blue(this.bColors[2])+14*this.c>>0,0,180)))}sortBranches(){this.branches.sort(compare)}generateBranches(){let t,r,e=this.branchHeight*this.trunkHeight,i=this.branchWidth*thisM
.trunkWidth,o=(-20+random(10))*this.branchHeight,a=[],s=p5.prototype.createVector(0,-this.bTrunkHeight),h=Math.round(Math.sin(ht+10*random()));for(;e>this.minLength&&i>this.minWidth&&a.length<1+this.maxFork*random()&&this.level<v;)t=2*this.rotation*Math.sin(Math.PI/2*(2*h+1+2*a.length))*Math.floor(1+a.length/2)*(1+random(this.rotationError)),r=e*(1+this.lengthError*random()),a.push(new Dt(s,t,o,r,i,this.branchHeight,this.branchWidth,this.maxFork,this.minLength,this.minWidth,this.rotationError,this.lengthError,this.M
brushes,this.stepDistance,this.level+1,this.mode,this.dynamicLeafLength,this.dynamicLeafCutoff,this.fruitStart,this.fruitFactor,this.fruitProbability,this.fruitRatio,this.index));return a}drawTree(e,i,o){if(i.push(),this.level>0){if(i.rotate(.25*this.rotation*Math.sin(5*this.level+10*this.index+100*this.branches.length+150*this.rotation+200*this.zShift)),this.level==e){i.stroke("ivory"),i.strokeWeight(20),i.noStroke();let r,e,a=p5.prototype.createVector(0,0),s=this.location,h=Math.max(this.trunkWidth,this.minWidth)M
,n=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),d=Math.sin(21*ht)*this.rotation*1.3,c=this.minWidth,l=ot[0].SWRatio,m=ot[0].stepSpeed,u=[];if(u[0]=roundVector(a),r=p5.Vector.lerp(a,s,.33333),e=r.mag(),r.add(p5.prototype.createVector(e*random(-this.bLengthError,this.bLengthError),e*random(-this.bLengthError,this.bLengthError))),u[1]=roundVector(r),r=p5.Vector.lerp(a,s,.66666),e=r.mag(),r.add(p5.prototype.createVector(e*random(-this.bLengthError,this.bLengthError),e*random(-this.bLengthError,this.bLengthEM
rror))),u[2]=roundVector(r),u[3]=roundVector(s),this.brushes[0].drawBezier(u[0],u[1],u[2],u[3],h,n,d,c,l,m,i,o),h=Math.max(.8*this.trunkWidth,2*this.minWidth),n=Math.max(this.branchWidth*this.trunkWidth*.8,2*this.minWidth),this.brushes[1].drawBezier(u[0],u[1],u[2],u[3],h,n,d,c,l,m,i,o),this.trunkHeight<Math.max(this.dynamicLeafCutoff,2*this.minWidth)&&this.trunkHeight>0){let r,e,a,s,h,n,d,c,l,m,u,p=ot[0].rotation,g=ot[0].SWRatio,f=ot[0].minWidth,M=ot[0].stepSpeed,x=Math.max(20,t/80);for(let t=0;t<this.maxLeaves;t++M
){u=2*Math.PI/this.maxLeaves*t+random()*this.tError,r=[this.dynamicLeafLength/4-random()*this.dynamicLeafLength/2>>0,1.05*-this.dynamicLeafLength+this.dynamicLeafLength*random()*.1>>0],m=this.dynamicLeafLength/(1+4*random()>>0),e=[m>>0,m*Math.sin(u)>>0],h=[1/6-random()/3*this.dynamicLeafLength,1/6-random()/3*this.dynamicLeafLength],n=[1/6-random()/3*this.dynamicLeafLength,1/6-random()/3*this.dynamicLeafLength],a=[(m+this.dynamicLeafLength)*Math.cos(u)/3+h[0]>>0,(m+this.dynamicLeafLength)*Math.sin(u)/3+h[1]>>0],s=[2M
*(m+this.dynamicLeafLength)*Math.cos(u)/3+n[0]>>0,(2*m+this.dynamicLeafLength)*Math.sin(u)/3+n[1]>>0],d=[(m+this.dynamicLeafLength)*Math.cos(u)>>0,(m+this.dynamicLeafLength)*Math.sin(u)>>0],c=[(m+this.dynamicLeafLength)*Math.cos(u)/3-h[0]>>0,(m+this.dynamicLeafLength)*Math.sin(u)/3-h[1]>>0],l=[2*(m+this.dynamicLeafLength)*Math.cos(u)/3-n[0]>>0,(2*m+this.dynamicLeafLength)*Math.sin(u)/3-n[1]>>0],i.push();let S=[];i.translate((e[0]+d[0])/2>>0,(e[1]+d[1])/2>>0),S[0]=roundVector(p5.prototype.createVector(0,0)),S[1]=rouM
ndVector(p5.prototype.createVector(a[0],a[1])),S[2]=roundVector(p5.prototype.createVector(s[0],s[1])),S[3]=roundVector(p5.prototype.createVector(d[0],d[1])),this.brushes[2].drawBezier(S[0],S[1],S[2],S[3],x,.8*x>>0,p,f,g,M,i,p5),S[0]=roundVector(p5.prototype.createVector(0,0)),S[1]=roundVector(p5.prototype.createVector(c[0],c[1])),S[2]=roundVector(p5.prototype.createVector(l[0],l[1])),S[3]=roundVector(p5.prototype.createVector(d[0],d[1])),this.brushes[2].drawBezier(S[0],S[1],S[2],S[3],x,.8*x>>0,p,f,g,M,i,p5),i.noStrM
oke(),i.tint(255,10),i.fill(this.brushes[2].color),i.beginShape(),i.curveVertex(0,0),i.curveVertex(a[0],a[1]),i.curveVertex(s[0],s[1]),i.curveVertex(d[0],d[1]),i.curveVertex(l[0],l[1]),i.curveVertex(c[0],c[1]),i.endShape(o.CLOSE),i.tint(255,255),i.pop()}if("undefined"!=this.brushes[3]&&null!=this.brushes[3]&&this.level>=this.fruitStart){let r=p5.prototype.createVector(0,0),e=t/50*this.fruitRatio>>0,a=random(5,8)>>0,s=0,h="bezier",n=Math.max(.2*this.minWidth,t/100);i.push(),i.translate(random(-2*e,2*e)>>0,random(0,4M
*e)>>0),this.brushes[3].drawPoly(r,e,a,s,h,n,ot[0].rotation,e*this.fruitFactor>>0,ot[0].SWRatio,ot[0].stepSpeed,i,o),i.pop()}}}}else if(0==this.level){if(i.translate(this.location.x>>0,this.location.y>>0),et&&this.level==e){let r;for(let e=0;e<Wt.maxGClumps[0];e++)r=random(Lt),r.range=Wt.maxGRange*random(.8,1.2)*t,r.position=o.createVector(constrain(random(-1,1)*r.range>>0,-this.location.x,t-this.location.x),random(0,-(this.location.y+3*this.minWidth-this.getMinGrassHeight()))>>0),r.draw(i,o)}if(i.rotate(.25*this.rM
otation*Math.sin(5*this.level+10*this.index+100*this.branches.length+150*this.rotation+200*this.zShift)),this.level==e){let e=p5.prototype.createVector(0,0),a=this.branchLocation,s=Math.max(this.trunkWidth,this.minWidth),h=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),n=Math.sin(15*ht+25*this.index)*this.rotation*1.3,d=this.minWidth,c=ot[0].SWRatio,l=ot[0].stepSpeed;if(this.brushes[1].drawLine(e,a,s,h,n,d,c,l,i,o),s=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),h=Math.max(this.branchWidth*thisM
.branchWidth*this.trunkWidth,this.minWidth),n=Math.sin(34*ht)*this.rotation*1.3,this.brushes[0].drawLine(p5.prototype.createVector(0,0),a,s,h,n,d,c,l,i,o),s=Math.max(this.branchWidth*this.trunkWidth*.5,3*this.minWidth),h=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),this.brushes[1].drawLine(p5.prototype.createVector(0,0),a,s,h,n,d,c,l,i,o),et&&this.location.y<1.1*r){let e;for(let a=0;a<Wt.maxGClumps[1];a++)e=random(Lt),e.range=Wt.maxGRange*random(.1,.35)*t,e.position=o.createVector(constM
rain(random(-1,1)*e.range>>0,-this.location.x,t-this.location.x),random(0,r-this.location.y+3*this.minWidth)>>0),e.draw(i,o)}}}if(ht++,this.level>0&&this.level==e){p5.prototype.createVector(0,0);let t=this.branchLocation,r=Math.max(this.branchWidth*this.trunkWidth,this.minWidth),e=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),a=Math.sin(34*ht)*this.rotation*1.3,s=this.minWidth,h=ot[0].SWRatio,n=ot[0].stepSpeed;this.brushes[0].drawLine(p5.prototype.createVector(0,0),t,r,e,a,s,h,n,i,o),r=MM
ath.max(this.branchWidth*this.trunkWidth*.5,3*this.minWidth),e=Math.max(this.branchWidth*this.branchWidth*this.trunkWidth,this.minWidth),this.brushes[1].drawLine(p5.prototype.createVector(0,0),t,r,e,a,s,h,n,i,o)}if(0==this.level&&this.branches.length>0&&this.level<e){this.sortBranches();for(let t=0;t<this.branches.length;t++)i.push(),i.translate(this.branchLocation.x>>0,this.branchLocation.y>>0),this.branches[t].drawTree(e,i,o),i.pop()}else if(this.level>0&&this.branches.length>0&&this.level<e){this.sortBranches();M
for(let t=0;t<this.branches.length;t++)i.push(),i.translate(this.branchLocation.x>>0,this.branchLocation.y>>0),this.branches[t].drawTree(e,i,o),i.pop()}i.pop()}}class Pt{constructor(e,i){this.x0=-t/15+random(t/7)>>0,this.aP=r/(2.2*Math.pow(t/2,2))+random(.01),this.cP=1/8*r*random(),this.location=p5.prototype.createVector(this.x0,this.fx(this.x0)),this.bLocation=this.location,this.bLocation.x=this.location.x,this.bLocation.y=this.location.y,this.width=e,this.color=i,this.charge=.6+random(.4),this.nextPoint=p5.prototM
ype.createVector(this.location.x+1>>0,this.fx(this.location.x+1)>>0),this.unitVector=this.getUnitVector()}fx(r){return this.aP*Math.pow(r-t/2,2)+this.cP}getUnitVector(){let t=p5.Vector.mult(this.location,-1),r=p5.Vector.add(this.nextPoint,t);return p5.Vector.normalize(r)}animateComet(){let r=t/lt;this.location.x+=r,this.location.y=this.fx(this.location.x),this.nextPoint=p5.prototype.createVector(this.location.x+1,this.fx(this.location.x+1)),this.unitVector=this.getUnitVector()}}class It{constructor(t,r,e,i,o,a,s,h,M
n,d,c,l){this.minStrokes=t,this.maxStrokes=r,this.minStrokeWeight=e,this.maxStrokeWeight=i,this.rotation=o,this.minSize=a,this.maxSize=s,this.iterations=h,this.sizeError=n,this.angleError=d,this.padding=c,this.brushes=l,this.currentLevel=0}draw(e,i){let o,a,s,h=this.minSize+random()*this.maxSize,n=(this.maxSize-this.minSize)/16,d=standardizeDegree((2*random()-1)*this.angleError,5),c=this.angleError/32,l=r/this.iterations+this.padding,m=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,u=random(0,Math.PI),p=ot[0M
].SWRatio,g=ot[0].stepSpeed;e.push(),e.translate(t/2>>0,r/2>>0),e.rotate(this.rotation);for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=0;M<o;M++)m+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),d+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*c,5),this.angleError),-this.angleError),5),h+=Math.max(Math.min((2*random()-1)*n,this.maxSize),this.minSize),a=i.createVector(constrain(-h/2>>0,.6*-t,.6*t),coM
nstrain(l*f+M*m>>0,.6*-r,.6*r)),s=i.createVector(constrain(h/2>>0,.6*-t,.6*t),constrain(l*f+M*m>>0,.6*-r,.6*r)),u+=random(0,Math.PI/16),e.push(),e.rotate(d),this.brushes[0].drawLine(a,s,m,m,u,n,p,g,e,i),e.pop()}d=standardizeDegree((2*random()-1)*this.angleError,5),h=this.minSize+random()*this.maxSize,m=this.minStrokeWeight+random()*this.maxStrokeWeight>>0;for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=1;M<o;M++)a=i.createVector(constrain(-h/2>>0,.6*M
-t,.6*t),constrain(-l*f-M*m>>0,.6*-r,.6*r)),s=i.createVector(constrain(h/2>>0,.6*-t,.6*t),constrain(-l*f-M*m>>0,.6*-r,.6*r)),u+=random(0,Math.PI/16),m+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),d+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*c),this.angleError),-this.angleError),5),h+=Math.max(Math.min((2*random()-1)*n,this.maxSize),this.minSize),e.push(),e.rotate(d),this.brushes[0].drawLine(a,s,m,m,u,n,p,g,e,i),e.pop()}e.pop()}}class Gt extends It{constructoM
r(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p){super(t,r,e,i,o,a,s,h,n,d,c,l),this.radius=m,this.position=u,this.sunBrushFactor=p}draw(r,e){if(0==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.radius,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/100>>0;this.brushes[0].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*this.sunBrushFactor>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}else if(1==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.M
radius*random(.3,.6)>>0,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/200>>0,d=3*this.sunBrushFactor;this.brushes[1].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*d>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}else if(2==this.currentLevel){this.minStrokeWeight,random(.5,1),this.maxStrokeWeight;let i=this.position,o=this.radius*random(.1,.2)>>0,a=random(8,11)>>0,s=random(0,180),h="bezier",n=t/200>>0,d=5*this.sunBrushFactor;this.brushes[0].drawPoly(i,o,a,s,h,n,ot[0].rotation,o*d>>0,ot[0].SWRatio,ot[0].stepSpeed,r,e)}}}class Tt eM
xtends It{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u){super(t,r,e,i,o,a,s,h,n,d,c,l),this.curvature=m,this.height=u,this.dBezierVectors=[]}draw(e,i){let o,a,s,h,n,d=this.minSize+random()*this.maxSize,c=(this.maxSize-this.minSize)/16,l=standardizeDegree((2*random()-1)*this.angleError,5),m=this.angleError/32,u=r/this.iterations+this.padding,p=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,g=random(0,Math.PI);ot[0].SWRatio,ot[0].stepSpeed;if(0==this.currentLevel){e.fill(this.brushes[1].color1);let o=!0,a=5*p;f.minM
Ground=1.1*this.height+a/2>>0,this.brushes[1].drawRect(new i.createVector(0,1.1*this.height+a/2>>0),2.5*t,1.1*r-this.height,0,"line",a,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,2*ot[0].stepSpeed,o,e,i)}e.push(),e.translate(t/2,this.height);for(let f=0;f<this.iterations/2;f++)if(this.currentLevel==f){o=this.minStrokes+this.maxStrokes*random();for(let M=0;M<o;M++){if(p+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),l+=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*M
m),this.angleError),-this.angleError),5),d+=Math.max(Math.min((2*random()-1)*c,this.maxSize),this.minSize),a=i.createVector(constrain(-d/2>>0,.6*-t,.6*t),constrain(u*f+M*p>>0,.1*-r,1.1*r-this.height)),s=i.createVector(constrain(d/2>>0,.6*-t,.6*t),constrain(u*f+M*p>>0,.1*-r,1.1*r-this.height)),a.dist(s)<t/2)return void(this.currentLevel=this.iterations);0==this.dBezierVectors.length?(this.dBezierVectors[0]=roundVector(a),h=p5.Vector.lerp(a,s,.33333),n=h.mag(),h.add(i.createVector(n*random(.1*-this.curvature,.1*this.M
curvature),n*random(-this.curvature,this.curvature))),this.dBezierVectors[1]=roundVector(h),h=p5.Vector.lerp(a,s,.66666),n=h.mag(),h.add(p5.prototype.createVector(n*random(.1*-this.curvature,.1*this.curvature),n*random(-this.curvature,this.curvature))),this.dBezierVectors[2]=roundVector(h),this.dBezierVectors[3]=roundVector(s)):(this.dBezierVectors[0]=roundVector(a),h=p5.Vector.lerp(a,s,.33333),n=h.mag(),this.dBezierVectors[1].y=this.dBezierVectors[1].y+n*random(this.curvature)>>0,this.dBezierVectors[2].y=this.dBezM
ierVectors[2].y+n*random(this.curvature)>>0,this.dBezierVectors[3]=roundVector(s)),g+=random(0,Math.PI/16),e.push(),e.rotate(l),this.brushes[0].drawBezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],p,p,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,e,i),e.pop()}}e.pop()}}class Ht extends Tt{constructor(t,r,e,i,o,a,s,h,n,d,c,l,m,u,p){super(t,r,e,i,o,a,s,h,n,d,c,l,m,u.y),this.position=u,this.range=p}draw(t,r){let e,i,o,a,s=this.minSize+random()*this.maxSizM
e,h=(this.maxSize,this.minSize,standardizeDegree((2*random()-1)*this.angleError,5)),n=this.minStrokeWeight+random()*this.maxStrokeWeight>>0,d=random(0,.03),c=(ot[0].SWRatio,ot[0].stepSpeed,0);t.push(),t.translate(this.position.x>>0,this.position.y>>0),e=this.minStrokes+this.maxStrokes*random();for(let l=0;l<e;l++){let e,l;n+=Math.max(Math.min(2*random()-1,this.maxStrokeWeight),this.minStrokeWeight),h=standardizeDegree(Math.max(Math.min(standardizeDegree((2*random()-1)*this.angleError,5),this.angleError),-this.angleM
Error),5),a=Math.max(Math.min((2*random()-1)*s,this.maxSize),this.minSize),i=r.createVector(random(-this.range,this.range)>>0,Math.max(0+.1*this.sizeError*random()*a,c)),i.y>c&&(c=i.y),o=r.createVector(i.x+this.sizeError*random(-.1,.1)*a,-1*(a+this.sizeError*random(-.1,.1)*a)),i=roundVector(i),o=roundVector(o),0==this.dBezierVectors.length?(this.dBezierVectors[0]=roundVector(i),e=p5.Vector.lerp(i,o,.33333),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*tM
his.curvature))),this.dBezierVectors[1]=roundVector(e),e=p5.Vector.lerp(i,o,.66666),l=e.mag(),e.add(p5.prototype.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[2]=roundVector(e),this.dBezierVectors[3]=roundVector(o)):(this.dBezierVectors[0]=roundVector(i),e=p5.Vector.lerp(i,o,.33333),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[1]=rouM
ndVector(e),e=p5.Vector.lerp(i,o,.66666),l=e.mag(),e.add(r.createVector(l*random(.5*-this.curvature,.5*this.curvature),l*random(.1*-this.curvature,.1*this.curvature))),this.dBezierVectors[2]=roundVector(e),this.dBezierVectors[3]=roundVector(o)),d=random(0,.5),t.push(),t.rotate(h),t.fill("#FF0000"),random()<.4?this.brushes[0].drawBezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],n,n,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,t,r):this.brushes[1].drawBM
ezier(this.dBezierVectors[0],this.dBezierVectors[1],this.dBezierVectors[2],this.dBezierVectors[3],n,n,ot[0].rotation,ot[0].minWidth,ot[0].SWRatio,ot[0].stepSpeed,t,r),t.pop()}t.pop()}}class Ot{constructor(t,r,e,i,o,a,s,h){this.size=t,this.scale=r,this.alpha=e,this.gamma=1/Math.max(o,.01),this.marginPX=a,this.triangleFilterMode=s,this.maxColorChanges=i,this.graphic=h.createGraphics(h.width,h.height),this.image=this.graphic.createImage(this.size,this.size);let n,d,c,l=this.size*this.size*4,m=[0,0,0];this.image.loadPiM
xels();for(let t=0;t<l;t+=4)d=t%(4*this.size)>>0,c=t/(4*this.size)>>0,n=255*random()>>0,this.maxColorChanges[0]>0&&this.maxColorChanges[1]>0&&this.maxColorChanges[2]>0&&(c>d&&this.triangleFilterMode?(m[0]=this.maxColorChanges[0]*(1-random())>>0,m[1]=this.maxColorChanges[1]*(1-random())>>0,m[2]=this.maxColorChanges[2]*(1-random())>>0):(m[0]=this.maxColorChanges[0]*random()>>0,m[1]=this.maxColorChanges[1]*random()>>0,m[2]=this.maxColorChanges[2]*random()>>0)),this.image.pixels[t]=Math.min(n+m[0],255),this.image.pixelM
s[t+1]=Math.min(n+m[1],255),this.image.pixels[t+2]=Math.min(n+m[2],255),this.image.pixels[t+3]=this.alpha;this.image.updatePixels(),this.image.resize(100*this.scale[0],100*this.scale[1])}drawFilter(t,r){let e,i,o,a=this.marginPX>>0,s=this.marginPX>>0,h=t.height-this.marginPX>>0,n=t.width-this.marginPX>>0;for(;s<h;)s+this.image.height>h&&a+this.image.width>n?t.image(this.image,a,s,n-a,h-s):s+this.image.height>h&&!(a+this.image.width>n)?t.image(this.image,a,s,this.image.width,h-s):!(s+this.image.height>h)&&a+this.imaM
ge.width>n?t.image(this.image,a,s,n-a,this.image.height):t.image(this.image,a,s,this.image.width,this.image.height),a+=this.image.width,a>=n&&(a=this.marginPX>>0,s+=this.image.height);if(!Wt.suppressGammaAdjust){t.loadPixels();let r=t.width*t.height*4,a=[1,1,1];for(let s=0;s<r;s+=4)i=s%(4*t.width),o=s/(4*t.height)>>0,i>4*this.marginPX>>0&&o>4*this.marginPX>>0&&i<4*(t.width-this.marginPX)>>0&&o<4*(t.height-this.marginPX)>>0&&(e=this.gamma*(.8+.4*random()),a[0]=255*Math.pow(t.pixels[s],e),a[1]=255*Math.pow(t.pixels[sM
+1],e),a[2]=255*Math.pow(t.pixels[s+2],e),t.pixels[s]=Math.min(a[0]>>0,255),t.pixels[s+1]=Math.min(a[1]>>0,255),t.pixels[s+2]=Math.min(a[2]>>0,255))}}}var myp5=new p5(sketch)
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vb26e4fa9e5134444860be286fd8771851679335129114" integrity="sha512-M3hN/6cva/SjwrOtyXeUa5IuCT0sedyfT+jK/OV+s+D0RnzrTfwjwJHhd+wYfMm9HJSrZ1IKksOdddLuN6KOzL
w==" data-cf-beacon='{"rayId":"7ac454a7da1aa208","version":"2023.3.0","b":1,"token":"6c07c178c94442f695e7a0a2aaee641a","si":100}' crossorigin="anonymous"></script>
 9657c95c641f37bdf6e99e66cd957521H0E
text/plain;charset=utf-8
  "name": "btcoo.sats",
text/plain;charset=utf-8
  "name": "btcccc.sats",
text/plain;charset=utf-8
oldValidiumVaultRoot: 0x4a275a4beddba872a8cdb210a9b7f8ac1211abb019d3e7782abc12a982abc121, newValidiumVaultRoot: 0x1b77abc810ab3d7369f182e73ec8a820bca01293bca5fde678a91bc11205aa1f, oldRollupVaultRoot: 0x4a275a4beddba872a8cdb210a9b7f8ac1211abb019d3e7782abc12a982abc121, newRollupVaultRoot: 0x1b77abc810ab3d7369f182e73ec8a820bca01293bca5fde678a91bc11205aa1f, oldOrderRoot: 0x0000000000000000000000000000000000000000000000000000000000000000, newOrderRoot: 0x0000000000000000000000000000000000000000000000000000000000000000, M
Proof packages: 0x3fe317a6000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000033c0000000000000000000000000000000000000000000000000000000000000001e24788d0045c7fd471f44ea3927000c4acdc04eef000000000000000000000000000000000000000000000000000000000000000000000000000000000000019966e894f2333fc55052c2b6cc1d4a3fbfac501f25000000000000000000000000fb9154894b826272b09c1aceb54b2525f35653240000000000000000000000006ba75c12ad2763eee31a5af72c023f535eb266aa000000M
00000000000000000002ddaf56233607e06363a20eaa46122a41dea6fe0000000000000000000000007a4e61292d3cbd8344c3bca2d1f7a9cd54310cc00000000000000000000000008617a3547a938c8373256e6d283158ab0e77deba0000000000000000000000007f5a1eda60f248bde29e74194ac4a81d888516940000000000000000000000002a66477523d5503aa270ef107e24bd3f928d13de000000000000000000000000c1ff2ff648ed53075712287700711cb2b8e51fa3000000000000000000000000913283769715d5db8da39f7dbda9746ecd269180000000000000000000000000f7e7d95a47777a621ef0bc43f537b3a98142ea8400000000000000M
0000000000628ef192c9ffa1ae09ba146ef6d73e4ac08c8f8d000000000000000000000000f3fb561ef7c075b4f1ba7490f3e76bda81f761120000000000000000000000001513946b9b50976469578502226a2f7c6e1a64e5000000000000000000000000bf5f549bf3a1389cba8c1c6a15d0e41b1bf099710000000000000000000000009cd286e6de9ac0f5756c79d37edd75ea839449e2000000000000000000000000be5c5f9874a3581f5f30517688faac46ab169cdf0000000000000000000000005bb1818dcb72aebc99a7af36d38d03b7f15b5d0500000000000000000000000088b6c28c50e0f96d52140ace4e923a592bf56dbc0000000000000000000000M
002b9dbcdd0648e6e02367d7e1ce58613cbbbe83c100000000000000000000000039cb223ef3520747431156f878b4e9b06c07e0ed000000000000000000000000c0c071142d65d919d366876b1f1fc5c034ee0ad60000000000000000000000008a27b0599fa0faa374f317e78072f9c54e138dd60000000000000000000000001deaec09c009aa2adc019f37b1e14f961ab92f80000000000000000000000000d426ea47fbd07c662b56c68d7bbad4c22d57510a000000000000000000000000e9692c73476488db87baa4f0c66a1299b47a7b9800000000000000000000000002f3eb335c386128fc5a83a634682c2718cb930c000000000000000000000000bfaaf3M
10445b0fcf534691980ccae70098cdd21f0000000000000000000000004ff83738f51558328a0fd0794a47d07de95682d400000000000000000000000052fb7a38c75c2f19e965014164abcd8b8ea6adcb000000000000000000000000964eb664132da3d5b52608ce9ad7a74f9ce24568000000000000000000000000506421cd78a6cd04d55986308fd89360da2649f50000000000000000000000001559dd6fefe237aa7e2811d15aca413b7f58b61e0000000000000000000000001fc0346378096ea252510bf4117affa073aa5761000000000000000000000000a3147fd5b72d41b2a915ba87c0ea6e33c0971e9c0000000000000000000000008013d4258d7574M
6a32d5f6c9f6d7c43a63e05f6700000000000000000000000029026ab9c0ae0c97f89d14ed7467261746cecf98000000000000000000000000d929ad5445d2d4061db25c56a266fb1ab21a900a0000000000000000000000005be146c68a773a8ab821d42acb614362f84ad8cb000000000000000000000000d41da0da63e6b781a8aa0791f44f192c44d71823000000000000000000000000d7998145cd7d8eea5bfb3695a4acf41dcabb4a000000000000000000000000004ec6a62177da069e2e192b4a5a537228467ebd4a00000000000000000000000062600e05a4c6aeb09868f2abac9473844fe7a4c100000000000000000000000041770f021eeace7022f30aM
d5084b59ba0d13d1160000000000000000000000004417320ab690f90069326bb7efbf372a9404584f00000000000000000000000093379e01eec83ae624c57aec2402d07b5237a8370000000000000000000000006a78005b43ed6d30f5e7d4d5db33c717b827f7f00000000000000000000000002efe2455cc881190cb6cb80ff4503b1cffa581fb000000000000000000000000613e38969eee12b9b595562dd172e022e9c94e7c00000000000000000000000070ae8084009939497a97c5b971f7f90e51713362000000000000000000000000fbdb787a4191b1977bcdc43eb70a30ce83e242d80000000000000000000000003e393d880aab8f75afc9a9a632ec49M
6227f57497000000000000000000000000d796aa3d06689a5a471564417536d6e2666185b0000000000000000000000000ac9d478a7286440a9d65840f6e756b60d22f84350000000000000000000000003cb83fa80238ecc5bf51f2b997fdbca095afb1b4000000000000000000000000cb1d91894207811515b7df6cdfd259f4c4f50bfd00000000000000000000000007fda7dc0e0cddeaa81cfa8ed636e2ba94c5552e000000000000000000000000e333ff338ef09416b20b342a4413b6b3675b9ae50000000000000000000000002ef2c97ce4bbd34ecb389eac6e7c667ad6c175400000000000000000000000009fcce7718ddf9e9136f53b447da761751c21f0M
f3000000000000000000000000f7fd058771d27b8d51f064ff4b1b249c89d7c67b000000000000000000000000b050adbe66e98473127cc40a444637195408861d000000000000000000000000145d91adf27426b8eca690b07b8c7935ba26c81a00000000000000000000000010d90a38db3023e904b9120f08f9b49ccc7eeb840000000000000000000000005f00a5d2c52db075a0b0fecae458cadbb111fd99000000000000000000000000fd25f8371352b469345af5dcbc33b8da11821c5500000000000000000000000018c71e7b54a1ea2a5c6adc5e64d256866c7e54700000000000000000000000006d5f130ddeb1fadfe5678664d4f5cc411565dd5d000000M
000000000000000000a4a3d7d9b19d10a636b40808b2a29675e0ae099c000000000000000000000000cf357d5dfcb004984e60d355cba2ca988c03240f000000000000000000000000ae1b42780132c2aca9e35d1f2bbce88c184790c100000000000000000000000036dcc5e73ca69a5a0ceda34529c2bcfa320ca52100000000000000000000000060bc745058c055bb24dc8757a038b0ddd9f141de000000000000000000000000944627652d02082c6f932b135a220dc87681df340000000000000000000000002a20b1db5de3c4e59c34fe2d4dbc3a97ca460f4e0000000000000000000000007c3c7c4dbe8ec223bb0b3e36da5ddbf1ed17a83300000000000000M
0000000000debc32f2545fb1eb85a99c723386d6f5f3e0d853000000000000000000000000957c3b50d709e03ec3f2a2ac260690825dfd1799000000000000000000000000a002ce8f17e33ba79576345a1fb611ab30985a08000000000000000000000000613dcf54e5fb72ec1e98409851893fc5f541777d000000000000000000000000f0c4fc3f76882649845d74d1e42471081d7968ff000000000000000000000000223d14d0c1290d7eb596de6183fd1a2d93ad96e100000000000000000000000032961a38155bb505d9da353cd177b72a3b9031030000000000000000000000004c3b39692fc6028036e4eff003d1f9a4236207770000000000000000000000M
00aa697bf964b72b92aa83a2356b710d4ae4a2799100000000000000000000000011de58db0cd2ee06c084b1298413e7b89656c422000000000000000000000000188f61b162b670bde7a6608d2655636c8ea9285400000000000000000000000054d1205863a67c8f7973e4ae5b9f218c71076be800000000000000000000000067fae4cff43f3ae86bac3380024e360e0ffc631d00000000000000000000000000d2c2d436495f32c15b9cf130248cd1b9c87a0500000000000000000000000009de8ea8b3c466884eeab11053adc277f5a4e69c0000000000000000000000001884e1db834a631a2dcc03ddb20a2fe139b6b244000000000000000000000000bb0afbM
7ee9239b176e5093934b3ffab86040af40000000000000000000000000576658b61b30a9f089d2fdb6be499b2d31907a03000000000000000000000000de05d0e2008a444ea54394845cca45925ec60a520000000000000,  0x5578ceae000000000000000000000000000000000000000000000000000000000025457a00000000000000000000000000000000000000000000000000000000000000a00583eb57859f482ed2ccddf0c032c590742f58c35e0b9d086b2f0e159e8641c707375162c16443088f0610a71560ca2b805778fbec6b0426e46c824c90ed86140800000000000011000000000000000000000000000000000000000000000001000000000000M
00000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000005000121108c052bbd5b273223043ad58a7e51c55ef454f3e02b0a0b4c559a925d400000000000000000000000000000000000000000000802b0000000000000000001f1f6637ef3104eb47f830314809132c967a5b139bacc1b9d957b906423b8600000000000000000000000000000000000000000000000000000000000000030264f875c359fb1d2c597f0b1a74d9c95289d0f1bc8237e82e82562ed813a8e200000000000000000000000000000000000000000007681763eff68f9b842df405fff2cf8c50d9fbdaacM
cb7a17692fc95c96efe89d433e0c017f4d624669b15300000000000000000000000000000000000000000009204e705203976f3c8dcb076069039ec893b2759134a962c5637244cc273efb5aebe6e57815f377bfa5c90000000000000000000000000000000000000000000000b52a25c9a4da18055c0029fd090a27fc937b6328c89c1a228811c3b221ef5ed19186e08a368de72a2f0000000000000000000000000000000000000000000000000000000000000001067a3bd6af9fde7b9613c2dcb7b0c20fc194b30f86b6e024675a3132287b4b9e0000000000000000000000000000000000000000000000000000000000000001003fab14e57ef125b25e2dfa0daeM
bdd929fabf7ca923a52c041f241905d9f56000000000000000000000000000000000000000000000001600000000000000000040c301fdfcd02b18b2a306c08c83f9997ad7c52a2e55d4137d91c31f011a01000000000000000000000000000000000000000000000000000000000000001000ad9116063aef1472d30d44bc1df30e9818284ffb167f18818d74b8c098704000000000000000000000000000000000000000000000000000000d50a3ffe000015f59f5ab0c1cc6db2537109f723077a6ae4aac273ec5652b021d7954e6fd5b00000000000000000000000000000000000000000000000000000295f90eef00015f59f5ab0c1cc6db2537109f723077a6aeM
4aac273ec5652b021d7954e6fd5c00000000000000000000000000000000000000000000000000000000000bf34a015f59f5ab0c1cc6db2537109f723077a6ae4aac273ec5652b021d7954e6fd5d00000000000000000000000000000000000000000000000000000000641b4e83015f59f5ab0c1cc6db2537109f723077a6ae4aac273ec5652b021d7954e6fd5e00000000000000000000000000000000000000000000000000000000641b4e3c026526ad453a2d9a6d67f503906195e7140cb6fdefe316991cc81e19029eee8600000000000000000000000000000000000000000000000000000000044b090402d4f4137a5d8f306b43b856fb7e2549c3004ed30be0M
ffc3a0b017f964cc2494000000000000000000000000000000000000000000000000000012dbf9ea000003ee13dc8eb78d7debc594922e985298b9a4d1c95d84cac6eb352fa565c564610000000000000000000000000000000000000000000000000000000000010445065dfc3e7f2a615ac6f2506cf1fee74d449e8fdcd003b1ea28e2411d0eb9c46c000000000000000000000000000000000000000000000000000002967f753af2065dfc3e7f2a615ac6f2506cf1fee74d449e8fdcd003b1ea28e2411d0eb9c46d00000000000000000000000000000000000000000000000000000000000bf34a065dfc3e7f2a615ac6f2506cf1fee74d449e8fdcd003b1ea28e2M
411d0eb9c46e00000000000000000000000000000000000000000000000000000000641b4e54065dfc3e7f2a615ac6f2506cf1fee74d449e8fdcd003b1ea28e2411d0eb9c46f00000000000000000000000000000000000000000000000000000000641b4e3c077d2a5eb881ee1d4bbb275676f0bef7930a458e6201ae8808edf57fef7ad5a20000000000000000000000000000000000000000000000000000029689e22850077d2a5eb881ee1d4bbb275676f0bef7930a458e6201ae8808edf57fef7ad5a300000000000000000000000000000000000000000000000000000000000bf34a077d2a5eb881ee1d4bbb275676f0bef7930a458e6201ae8808edf57fef7aM
d5a400000000000000000000000000000000000000000000000000000000641b4e6e077d2a5eb881ee1d4bbb275676f0bef7930a458e6201ae8808edf57fef7ad5a500000000000000000000000000000000000000000000000000000000641b4e3c005a643907b9a4bc6a55e9069c4fd5fd1f5c79a22470690f75556c4736e34426000000000000000000000000000000000000000000000000000000000000000d009bb23656010faf83bb6cec36fca0da988c835cc8a11a511d12ad8b136fa388000000000000000000000000000000000000000000000000000000004b44d0c900c086f00348a382b0380480adea9198053c1839165997a0d22eafc16eda21730000M
000000000000000000000000000000000000000000000000000025a5c6210149f6de36e7132820066ace38028c695179780fc860d9b37adf8d4058f8f5fb000000000000000000000000000000000000000000000000000006b2f08744dd018c1b2525dc28bed29d1856f3f8716d31880c656a5e65af75081391c8821d2e0000000000000000000000000000000000000000000000000000000000000000018cfc96d17afd5dee89670a550b981315869b0ac919d586d13b8dacfbe7c08d000000000000000000000000000000000000000000000000000000004d8346380234d516887a700965be2471d9f7a16171a4bfd11f9d3bbbabf12edf3b5989c0000000000000M
00000000000000000000000000000000000000000dab4089b87402b046e5ab3fe2f1c740a5898d2504ebf1353a0688159a772b1435d55bb015a8000000000000000000000000000000000000000000000000000000000000000003eb556ce3256e525a05f08a25d071eb1a66cb1f430cab91907a6b31413aa8360000000000000000000000000000000000000000000000000000000000c4c24c046668a428b026db0d9838dfa1f95dbf89bfbd8f49720a80f9c341e467ae67a600000000000000000000000000000000000000000000000000000000c055089d05326d1b52f378a7ecc9583f4aee3d6ea7cb7cba6a5b53563fba85a2395c1fc300000000000000000000M
000000000000000000000000000000000011fd6f472e05890edfbb6f1d1df20ba61a9973671c421543572289c1d7e2bb2b84216c32f500000000000000000000000000000000000000000000000000000000004c4b40069e5fb43e00e2f275a8f6e127881af6ffdde080c09b66b74e045d80f1e834f00000000000000000000000000000000000000000000000000000039f81de56cf073d7c37eff0d9e27be09cb10002c4e7b3a86784601a4365a9a39a741a8c6602000000000000000000000000000000000000000000000000000000c6c1f7234a005b32b8118e0eab101936d20b2ca3f489b0343f44f54bb662adfa55932b005b0000000000000000000000000000M
000000000000000000090000000000000000005dc687af554664861727c909269dbc339e876bc70352efd64b8d057ddfb285000000000000000000000000000000000000000000000000000000000000000203b64fbc4502d9f00ea46442534233604d6cafae0ad584981640b2dc5163ba10000000000000000000000000000000000000000000000000000000000000000806cc6d101bdb223e419ebb639fee6578445d1aeb2ef931954cefb37b842df5d7000000000000000000000000000000000000000000000000000000000000000e00aa77901620bdae04ffe72235a50f53c02c4bdfccbe00e86f99ae6373064d3c000000000000000000000000000000000000M
00000000000000000000000000040057c60b189063035eed65879a14ad5f6e718027a212dafbe52f9bcd79e9f4fa000000000000000000000000000000000000000000000000000000012977b08201e6f3e4333da349f86a03f030be7f2c76d8266a97c625746ebb9d3220a39d870000000000000000000000000000000000000000000005c5dc6d581225dbf78a03351bce4793f90e4aa00447357c2d34ac08611756193d8249009e0396dd7b4100000000000000000000000000000000000000000000000000000000641b4e3c03b3a699bb6ef37ff4b9c4e14319c7d8e9c9bdd10ff402d1ebde18c62ae5838100000000000000000000000000000000000000000000M
00066f7895df33a929d100ae03fdc26e3f86c1e68832c8f17f519d1744c04e5450c3f11a4331099d8e9d00000000000000000000000000000000000000000000000f000000000000000000ce75703ce3feb532ccdb25b159ae87ea23d315577e21c0bcc5846fd4f2bc69000000000000000000000000000000010000000000000001000000000000000703131fa018d520a037686ce3efddeab8f28895662f019ca3ca18a626650f7d1e0010064c6264bc3361adf2b26fd01272239473906cb7bbc183b1819e751884510000000000000000000000000000000000000000003030302e3030302e30303900b4243e5c50fe8b1ec72787e8bdc6875d9e0ac2cf01c216a384M
98dad9576672000000000000000000000000000000000000000000000000000000000005460000ee2b6c840729051a0d06a623ff093dcc01e03f2e0c0e07114ac2440394b88900ce75703ce3feb532ccdb25b159ae87ea23d315577e21c0bcc5846fd4f2bc6901f23302c120008f28b62f70efc67ccd75cfe0b9631d77df231d78b0538dcd8f034445d355314fb91c5466145cb14c250bf10a20b58f2a2d79c33ff4e9fb3e1301f23302c120008f28b62f70efc67ccd75cfe0b9631d77df231d78b0538dcd9300000000000000000000000000000000000000000000000000000000000000010387c153462d309d4b5a1fc5f90e85bc59eeb2094b2fcef46513ea5f1d1cM
9b85000000000000000000000000000000000000000000000000000000000000000103ad34fad732b51fe0d1a1350f149f21a0cf14a9382c9c6e7b262c4e0c8dbf1802fe77380d0e5919191210a0374ace48f785e6cda2d7feeedf492e0a5e7e61a800da995fddda9ca9f2fea0f4d75368c99efdc61c42e2ab509722e3df2bd7953c000000000000000000000000000000000000000000000000000000000000000a0029e8f4b3fda084f36882e4c6c35640013f7ce8e81fb6223c502ba239bc8f870000000000000000000000000000000000000000000000000000000000000003005f715ad4dd026a6d60f26e1f78d3b91c9dcd162b6a3649f12e874dd411fc3d0000M
0000000000000000000000000000000000000000000000000000000024e101873a6bad2f857d828341444e94e78f71466b9b99ca4131b7b1b2a3666be4d300000000000000000000000000000000000000000000000000000000000000010381c71b8d726326c1748e3a215eb46ce314ac06251a21ba1fabbc0029b648b5000000000000000000000000000000000000000000000000000000000000095503fd812fcf2299e7fea6173ae0a21de1d56ca272f1e03dbe12bd6babdf89476f000000000000000000000000000000000000000000000000000000000000091a041727371e702b8898c0bf4af393210078e40b853703d2458713d1763dd47138000000000000M
000000000000000000000000000000000000000000000000000104d8f93743ea77f0b9242f15b507b8a92c62acff48fd0c66b694b2b2aa7589f30000000000000000000000000000000000000000000000000000000000000a06057010e193f33f20fa338a1d95ec257c1aa9ba942e4d38cd975afb2254d654bc0000000000000000000000000000000000000000000000000000000000000c2d0609101882df76cfbcd14cfd3858b2a44676867ae7554b88b999a538005798a200000000000000000000000000000000000000000000000000000000000008680782859cc642c0c65018f56dd343d1e4086db73914fe9e47adf3fae67a4097b000000000000000000000M
0000000000000000000000000000000000000000075a00ffb8e53a608fda5b464f6570d6524d4f82dd99631fe0022a011b977722e41400000000000000000000000000000000000000000000000e0000000000000000010fe9d5af7a51945d67e72167b57a856736a792b873407363f8ff81244c4bbb000000000000000000000000000000000000000000000000000000000000000503f4bb10a68f4e591ee94e94546ce408da0dc22eb52f265ffdf1fb192372303600000000000000000000000000000000000000000000000000000000641b4e3c03f4bb10a68f4e591ee94e94546ce408da0dc22eb52f265ffdf1fb19237230370000000000000000000000000000M
00000000000005006112b2c65aebcc26cfca03f4bb10a68f4e591ee94e94546ce408da0dc22eb52f265ffdf1fb192372303800000000000000000000000000000000000000000504b0c721f90f6f42cc2be903f4bb10a68f4e591ee94e94546ce408da0dc22eb52f265ffdf1fb19237230390000000000000000000000000000000000000000037d474530565d82b76de59803f4bb10a68f4e591ee94e94546ce408da0dc22eb52f265ffdf1fb192372303a0000000000000000000000000000000000000000037d4ca74c1fe902211ec2a8012d537dc323c439dc65c976fad242d5610d27cfb5f31689a0a319b8be7f3d56000000000000000000000000000000000000M
000000000000000000000000000200e3c940905ea593ee191d57193cc9a476c24f0703242134aa50d1b86b3d22fe00000000000000000000000000000000000000000000000000000078f2934278046668a428b026db0d9838dfa1f95dbf89bfbd8f49720a80f9c341e467ae67a60000000000000000000000000000000000000000000000000000000c738fcc4b012e0839c07c8fac67dd47a88e38317e0a56180faacf5e81f78d09a4c633802100000000000000000000000000000000000000000000009500000000000000000158661da12de026507e020fd240501b240ea4897ee80f683de4e85e879efe0400000000000000000000000000000000000000000000M
00050000000000000000016a9bc11b4098dbb79669b5dc42971ed0291a16be6ca1a6329216176d268a130000000000000000000000000000000000000000000000030000000000000000018a439bcbb1b3535a6145c1dc9bc6366267d923f60a84bd0c7618f33c81d334000000000000000000000000000000000000000000000000000000000000000401ad3df05efc666ba2485bdc6b5b8066672d5295c5de6f5e8eb603dc92c69ea200000000000000000000000000000000000000000000000000000aad4eefd42d03c1194881af9a1f0fd460853e1941683e7ef8fdf5f6f1f9c807ada1a043f18100000000000000000000000000000000000000000000000f385aM
817151dbfaa6057171ee67e3809849c5b7a4220b6443e34608f56cae78ba0f37709cf4c31f530000000000000000000000000000000000000000000000050cbc50ec77fbe38005d8e8f80101275f6921e7b7ad8540b9fe9147aef8c63200b99700343d39b917000000000000000000000000000000000000000000000e46863ff64df3db3a53019ae7a920f716623ae90bd3b87f7eecb7d4c44e92c009061b36f83faf23bc2a0000000000000000000000000000000000000000000000000000000000000002079821dfd12a4ffcb98102f441cc2c239d772982b573b5eb9c6adc06c6496dee05115fc3390795902303b5874b3c86732a3e2d81ac2a7c72f1c375cf1cb3M
62ab079821dfd12a4ffcb98102f441cc2c239d772982b573b5eb9c6adc06c6496def00acaf69dc1702fc9b2482101eb006edbcaadf416ffa5b0bfcc41cab1abd4f4801d0c625bf36c0bcadd6b2f58a81797258f3209d2803d572df678231c5027c6f0000000000000000000000000000000000000000000000000000000000000004001e27d21fd654237c0991cd35a9fea20aac2f82d158210e68a50ef9eb5884bd0000000000000000000000000000000000000000000000000000000000000002001e27d21fd654237c0991cd35a9fea20aac2f82d158210e68a50ef9eb5884be00000000000000000000000000000000000000000000000000000000641b4e3c001eM
27d21fd654237c0991cd35a9fea20aac2f82d158210e68a50ef9eb5884bf0000000000000000000000000000000000000000000000053922c8a0c1bc7a1003c486349d9bddbec2c706bc24505e065d7cf665e5b9bf9009d24fa8264f79cc00000000000000000000000000000000000000000011b5ba8478079fe34b443001e6cac1e9865c80fa03cf77b24cfde519ada323c363250a9b07b2bc71c05cef000000000000000000000000000000000000000000006de3000000000000000001e712d5a075ed1ceff7fd4dc911e9de4666c4ded168422d9ff6ae8acea5ccc200000000000000000000000000000000000000000000000900000000000000000229eb538f82M
0dfe439e04e16bd896e970b32f69452cb23e85f1f9d8742e5cd90000000000000000000000000000000000000000000000080000000000000000023b0ecaa5b5aa243ea6fdde0e5b0a8e0905a6eb6bd179d6bd228c12a0707a2a000000000000000000000000000000010000000000000001000000000000000703131fa018d520a037686ce3efddeab8f28895662f019ca3ca18a626650f7d1e0010064c6264bc3361adf2b26fd01272239473906cb7bbc183b1819e751884510000000000000000000000000000000000000000003030302e3030302,  0x5578ceae000000000000000000000000000000000000000000000000000000000025496200000000000000M
000000000000000000000000000000000000000000000000a00583eb57859f482ed2ccddf0c032c590742f58c35e0b9d086b2f0e159e8641c707375162c16443088f0610a71560ca2b805778fbec6b0426e46c824c90ed86140800000000000011000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002c02a64c6b59e6c54d1514304b92a92e7ce18eab68dcf88c60813448838a5dbe4f00000000000000000000000000000000000000000000000000000000641c9fbc0761b04b53668ee5098c0d1f3d1c380b9d524b602569638012a6d6eb45fb6d1f0000000000000000000000M
00000000000000000000000000000000000000000201e39af32bd0cc2d5f8ad822a3afcd7fe8d7211e4ca7c42654cdbda7a9b745160000000000000000000000000000000000000000000000007299c77ed7ced8d001e39af32bd0cc2d5f8ad822a3afcd7fe8d7211e4ca7c42654cdbda7a9b7451700000000000000000000000000000000000000021bbc26e5e60614c21bbc26e5077d1612ccac2b9a054985eea62d23f66ee920d3c7c95a40323ca81f9547a8720000000000000000000000000000000000000000000000000000000000000004002ec31623436b0fbcbbd71b2b3eed2887c8156077098a52a9256a9e0edb833f000000000000000000000000000000M
0000000000000000001d31fb67ab4f7a9c01e6f3e4333da349f86a03f030be7f2c76d8266a97c625746ebb9d3220a39d87000000000000000000000000000000000000000000000000000000c6c1f7234a03351bce4793f90e4aa00447357c2d34ac08611756193d8249009e0396dd7b4100000000000000000000000000000000000000000000000000000000641b4e3c03b3a699bb6ef37ff4b9c4e14319c7d8e9c9bdd10ff402d1ebde18c62ae5838100000000000000000000000000000000000000000000004fc6511933ea066c010783a9097b26eae0586373b2ce0ed3529ddc44069d1e0fbc4f66d42b69d6850d00000000000000000000000000000000000000M
0000000000000000000000000304483a1c246b67ecc35b76e8ed119176cd18a597aad0831b524eea4605466be100000000000000000000000000000000000000000000000000000000000000020764907cd1204ee3048858978306e9157cc882c790bb6f25dac217f31bccfd0000000000000000000000000000000000000000000000000000000000000000010787a0690bf9d047efb8a2c77eb7eae760a2c54f854782a34dac0b1dec91c67200ffb8e53a608fda5b464f6570d6524d4f82dd99631fe0022a011b977722e41407a816059304c8263f61b7c510c3d0d7c9db2c7c5005c8d97e3d1443625cf0d10000000000000000000000000000000000000000000000M
0000000000000000040319f5fbe05c3887c4f8478a5ea837169d5eba5e638e6aba848b0c8d4d619b2600000000000000000000000000000000000000000000000029a2241af62c0000048c45fd766d33073da679bdbbf86353c72a0ae7e0e2fac8a28e45ac7728f8d80000000000000000000000000000000000000000002917af426cff6292f80000050954431ee8caaaf248d305892bb893268e4d58928a3fc547cbf31404fd430900000000000000000000000000000000000000000000308055bd0a81ac0227d0052ca19433eb8f7e1685af737fd8f0976d688760e9fde4d7065541b861e3e770000000000000000000000000000000000000000000000000000000M
000000000007dd8da4e3e871d80a2fe200ad304d386e8fd16de713e15fadbaade9552f31290000000000000000000000000000000100000000000000020000000000000002025ec026985a3bf9d0cc1fe17326b245dfdc3ff89b8fde106542a3ea56c5a91800f920571b9f85bdd92a867cfdc73319d0f8836f0e69e06e4c5566b6203f75cc033434ad846cdd5f23eb73ff09fe6fddd568284a0fb7d1be20ee482f044dabe201ccc09c8a19948e048de7add6929589945e25f22059c7345aaf7837188d8d050769f00f1abb7170ad68da756491c53f4f7de70b1e270a68e296e68e07a2125e00000000000000000000000000000000000000000000000000000000000000M
00,  0x5578ceae000000000000000000000000000000000000000000000000000000000025499000000000000000000000000000000000000000000000000000000000000000a00583eb57859f482ed2ccddf0c032c590742f58c35e0b9d086b2f0e159e8641c707375162c16443088f0610a71560ca2b805778fbec6b0426e46c824c90ed861408000000000000110000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000006011eba104c39e4ca5b621d91b27ce6596162f21463389ae195835c81fc78ac63037893bc62921d1d6ed2313ffeee02d9c2b146542a2c5c1fbf32adfa1M
045809500000000000000000000000000000000000000000000000000000000000173c304752422aeb949603d5e60bbd3f880ef4e8f523fa22f983386877fa5c19c2b7200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,  0x5578ceae000000000000000000000000000000000000000000000000000000000025499600000000000000000000000000000000000000000000000000000000000000a00583eb57859f482ed2ccddf0c032c590742f58c35e0b9d086b2f0e159e8641c707375162c16443088f0610a71560ca2b805778fbec6b0426e46cM
824c90ed8614080000000000001100000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004031e5cab729a9ca2014eb5c58a94c82bffbf71d90a172f76183acb518a2f2f1400000000000000000000000000000000000000000000002c0000000000000000049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7000000000000000000000000000000000000000000000000000000000000000203c6b5510b1ddd838c7afecbb89bbe8e9c0338f321e3a7b10f384c4595ebM
d1920000000000000000000000000000000000000000000000001600fccb0009de0a05496768776e3db30053404f18067d81a6e06f5a2b0de326e21298fd9d569a9a0000000000000000000000000000000000000000000000003a3c90b5d819f579052a66f640741c556afad6be5f4e25ce08bb56392eee322a11cfbf62220eef99000000000000000000000000000000000000000000000000000000000000000104489292a29f63b6c78efb706fac5471a71cf238153d6df336f2d643f7fcce0a0000000000000000000000000000000000000000000000000000000000000000071abc4e151a4be1e98b8cb02c2faf0660a3bc6c5885aa0136b102b6f0a2338d0000M
000000000000000000000000000000000000000000000000000000000002026e5ea8ab85d0a03e14fe46e864a3c8ce1cfa4af8e32760ad541d637778aa0200000000000000000000000000000000000000000000000000000000000f4240049eff2bd88bb981ed662c57d8b83ae9a9e1ebd7397afc0886dd3d795e01eec700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,  0x5578ceae00000000000000000000000000000000000000000000000000000000002549ac00000000000000000000000000000000000000000000000000000000000000aM
00583eb57859f482ed2ccddf0c032c590742f58c35e0b9d086b2f0e159e8641c707375162c16443088f0610a71560ca2b805778fbec6b0426e46c824c90ed861408000000000000110000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000006012b6966de03f2fb700ca7576fd572a4329c9055252cc708140b5af0d1f996e202a5bf0f6031ae46741a60c2bbbe0566798b73ac317554b78c2797f88715e59b00000000000000000000000000000000000000000000000000000000000079c501592943e4c981b89b01aa919098ed6fcf0bec5df965a940c77e4c7c3c7f26b60000000M
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,  0x5578ceae00000000000000000000000000000000000000000000000000000000002549b200000000000000000000000000000000000000000000000000000000000000a00583eb57859f482ed2ccddf0c032c590742f58c35e0b9d086b2f0e159e8641c707375162c16443088f0610a71560ca2b805778fbec6b0426e46c824c90ed86140800000000000011000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002600M
0000000000000000000000000000000000000000000000000000000000000500f553411e5b4fac9631d5e313e1a87f885fb4e94bbb0118510f624a0ce46dfc000000000000000000000000000000000000000000018ffe0000000000000000017820addfc436bad60215dd206e86efb0e837ea31d708de56e8b6760798512a0000000000000000000000000000000000000000000000000000000000000005007f5ff348b05cd2fa57385a02cd159cf026e887f86185afaf9de3a07e416d9300000000000000000000000000000000000000000000000000000000641b50c80170d451c8a75cea25cb0e08ad5d7506b8c5ea414899bb7ab31eaea0a0f563fe0000000000M
00000000000000000000000000000000000000000005785a5ab3b70170d451c8a75cea25cb0e08ad5d7506b8c5ea414899bb7ab31eaea0a0f5640000000000000000000000000000000000000000000000000000000000641b4f05023b62d60fddc45131c8a5729d0bac477ec8dfe422f776d49d3381ba4c63395100000000000000000000000000000000000000000000000000000000641b50c8078b16af28e546d9234046ba2b9cdbfceb16805c059b54027cd460bdd19f3a8600000000000000000000000000000000000000000000000000000000641b50c802e14fbcb1c9b1b31e09beaa717a7d4bb12379358fd53e451d4204d6c5ac064c000000000000000000M
00000000000000000000000001a36d0000000000000000047e245213614357227baa507a9d641ae294d0cb409f1fd103afbeedcd261c210000000000000000000000000000000000000000000000000000000000000005007f5ff348b05cd2fa57385a02cd159cf026e887f86185afaf9de3a07e416d9300000000000000000000000000000000000000000000000000000000641b50e40170d451c8a75cea25cb0e08ad5d7506b8c5ea414899bb7ab31eaea0a0f563fe0800000000000010ffffffffffffffffffffffffffffffffffffffa6a13cd1080170d451c8a75cea25cb0e08ad5d7506b8c5ea414899bb7ab31eaea0a0f5640000000000000000000000000000M
000000000000000000000000000000641b4f05023b62d60fddc45131c8a5729d0bac477ec8dfe422f776d49d3381ba4c63395100000000000000000000000000000000000000000000000000000000641b50e4078b16af28e546d9234046ba2b9cdbfceb16805c059b54027cd460bdd19f3a8600000000000000000000000000000000000000000000000000000000641b50e406e037b5b3b9bb1a09ba0abff2df1bb9b44be2f563c656d7b9822f8524eebb20000000000000000000000000000000000000000000000000000000000000000301385ff7ae75d9249cda6b5e247f1872add4f7de09f3677a77a57934aaf053890000000000000000000000000000000000M
00000000000004a64593dff1effa4d048e3426cfff518cb97998a29da47874171880da2a5b5da4e1b91d6f91dd59ce0000000000000000000000000000000000000000000000070e338487eaecb38907d63b8d960ee1f3922b633c067fd2c306854cec9290b078d26d1cff6374e24c000000000000000000000000000000000000000000000003e2a2ac31d31d7f9a0000000000000000000000000000000000000000000000000000000000000000.Main  0x9b3b76cc00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000M
000000000000000000000000000000000003b8000000000000000000000000000000000000000000000000000000000000072800000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000d0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000M
0000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000M
0000000000000000000000200000000000000000000000000000000000000000000000000000000000001c824788d0045c7fd471f44ea3927000c4acdc04eef000000000000000000000000eae5a072b352e188653522cf52652f1609cd034f00000000000000000000000025613f3412857609cf30d47ce1281d73d81777a000000000000000000000000003d57f13496fd16e5118a797f828b7898435629292765357a98a2098bddbe200052b55b207f1573622e007035d73314cf923554ceb97221032d4f54b8172bb51001f0958b3f273cb4a53b8fcd611c5782e23064cf3829c00e2255b4836e70f7604cf4de49c88d45f3a76fc20caa43881c205f8d267ce4610eM
6dd1b9ba236b24606b990ca3059ab68fc5b4fd979eaee362dc7dee8243af1a750d65915dc333dbf01f0f94f085b38fa71a008e38e787eb5448a4368c75718f27cc55afed69f74be008e01750601c06f2a4f038590672a0c3e8057c14eeada70034111e50912ea7001e758de7d5e762caabcfc314b5bafa2b79add14c14d4810bcd5061b908e095b03792f3c75ab6cbea9b3389d2a66f80e93f87bcf5037b113afbe86e72c95e0b9054ea0fac01f9dcb404aa7705365a79c0e0e6a395c90761bb5a18221ca67a527077499368de697880d40ea0039a1acd1ea937d7c6e57a128924190ddee576caf01f8d2946e0c428a377757f36164f782f4267a2639d15edc9ebeb9969M
1779a7006e06b14eb559ffddd62b288951545185e0f9cabdccfd9d1ec0ca1c4573f0feb06969ce05edec046c97f9c1f52df1391fa5da0d49f161b2d555ed48073c214eb028b9c0f16f5a34a9d5de9fb189e849aff3325387eb132ef11b5068b6534f98801e33295f0de5e9f711ec3e04194b65688a384fefc859f9d9beb21f00fa8ecd70277794637a60347f29ebe899a3ade4713046f3c6a5d7e792dedce7cd967db2c001d8a4fc8c8c300b14e306a89b60260363fcdb11fe7c300a11e8797588947b60223af2960ddbfd01a2ad2a6b4d834ec9b9b335b2601cc488fa299e78294dca7016aacd51b4a866c4696e302be71d83813be4bf74613aa52db6a5de87d8a23ed0M
099bee8bf5db6d0be00f81e74df6698153af3ec7df76d82eb0e27b522909062046097b108d3831ebe322012aabcacb60b5d8efbd06cf2ccf84d4e659b1d9892012c1af5051a5a47b50442f4d48a10d63eaed1efd64597066fc30e936184df9b071f5b5547e832c8562bc9ef2d4014285da851b5960f1a00201a49facc20e214017d130733ddc817321a8d18729636ded712fbc99f3680ab6455a9bef2488058043964ac4e38083191bb7ddad81037d813aeace2dc64567af04f3716e7d6a77904400b8a1ebb8574bb8acc3e0031c6a6f1e0b5382ca5b09b0a5849899df72d6701f42ad38b60cb2c4ea8d2bc99135c7bba265a2b66af0d82ce3b6ba1001ca31001e14d23aM
f49ec7dc1edb43a965af87357a7cb728e9d401cfb261a55dbd6893d0793be1abb5e888804ce32438dc69da060f76a7e15c62aa800a9091d966e77bd05cea0e6bcf4dec02711793c0cb2e2c4a51a21679df7560b6d144c8814cfefa100add135b158a4a71c34c86d8653b3a06f396836fd9d7cc3737db961c1b2726403ab93fac2c4e5f0447bc51646a8f24c8ec3e0aac3c54391264cf53badfff9790701b19e50c0ed1c509d74f6ce3c9829b9dfba5ffcabe1eba6b3153b335deace04d94ebb79551dded556ab1f41bc5e6cd521a29c8cfe0734f12bfd98b6d5ec40003092979e0481caa06c5ecf7ebfe9b52119d155eeb5c2d05d85bf4599a75163073d483718fd67e01M
ed0ba275dff7f82f12a97d057ede401dc0bd0126ad5d25d054daf92469bd5a24059b57c467596b09d7553382c8b10f99dabed278efdbc0a0263284fa194db5fe52652735dcd6cfdca139ffe3cbb1b744ca9f807b433f61f031bc11974d379aefcfbd5512c20e18b93550493edc7b415df7d16293ffdf3e0031468a5ea07bca10fe1619eff867c759f3d0e2ebfdcd75bf424da7993aa26fb02c82dbfd1341e462229a0780e2d42429fd7846f57d574ce8976567c0cb962a9002bdc88092d2715455abb013d35f2dc723558b0c6e4fc8677283e52909dfe560767f91005dda1088228c7c6c868228d3137c5d2ea16e3fbd75cf3ccac21f54c02b1f460f9a13df31cf202bfbM
b91801385ca2dd83efffca49cfd4b73fafdb76301889fae1142d489e3b809711b2455aa4f7375317ab93b9f561603b801c8c8c0053e4a2783228fb6399c1452c556cd5dd0aecd25f122bc36e5cd0e30c182bbfc02c896395fc5ea513ce2ce0a2daac8d950d0317992294878649aec2f2ce26c0300eae148b9750391aa9e1e2e88aba10b1eec8ede7c04325cf5c14e2184ef769202ca726be5f6a35c9cc635e6cd3b25ae0b60f1ebad94a4a8187c20159b8d686907fa2f88f0e5e51c810748bf0eca7740a5fdf956ab4534ee25a6ed612a21c30c01ad00017a5ba01f7184aba359cd5b5c5108a344b74dd0c8d3afc76afe610847040644a794546608140a876e132b68632M
5441e595b70d7ffb500533dd90e57e8079332e5add03c5ed18a9e40c2be541efb1842b1a658a7f82b528b78fe198f760490fe00980f0f36cd2d845b35d6f67d8d43b53742f3121fd4fd621eeda2420d0740b0de4d79d89117f30ccfed82b7190932dc9fa59bbdc4e3a031e79b9dafce0649f32ae9a2905ccbc7e4a4f790d1a27230742e0c0e930641586a58fa7414ad0212832a763b79a385f5e2536d6c3632279f871f05df106ac847739ac2d22a0e01559d216bbd12e1fa5a7922d8c40cf00c3d1834e9ef25054fb2c6942e650fdd01bf1cdcca305865d35674a3b655c5be2a576757b9e453d7dde071ba91d41b1f056b6899fe831997d0d22fb60b2a71d6a6d51abb6M
94071d8a3cb20dba775a40b02937b690a01deba0761a885faf4ab304e30e567f74ff5a3bae0fb7f919d3e97067af05584ab768d2fe699d2c8770132c87bd7cde57ea224e282838daa2a2e2e042109b9b3e989159c6a2d1dd1f6d5193dfd56555db68c6272e2ecd311183f52058f213f43acd45027a4a4a3207b69b1e7dcbdd1c5de9e379a1882cb137ea73104f1e33cd0318c82cb39d087c977c37a255962a3c8f0a6e6f131f70cc1cf10b1040ebb4ddc3868e42c5902780f411a3dbe997768adf34bab57b0c746fa56fc5e006927482217289e73d90a53ff98c7f19d8b3dd951fb211a0dc9efb14064ef99015a2b681c1acb21c4886bf7f1757e5d33236c2a687269d85M
785fafbe24f2d4d0169363ba2b025074c5b5d0349e33c715e2cac78bf37b836642114d5cf7f66b4034ad8596169d487d5d69b588339b140614458880dab524d490e3fafcfdda36800ee803b81e36669579fa5653efa94ae0b5ee59644c4a10809ae5dc32f96c4af070af4227cbdafe99b93224d937d2f54c32a3cd1aca17992f52382dc36a44cfb032f64138f58404798a1cdcbb3cb29b5d6e6c721e91c477d434d959fafd3eb52031fa0716f3032a1fa427feb49560d350abb7044e9ac0be0126cb981f901010b03616c3d32f11e22708b0c074718536f97e2517eb2caf4aee958e53532889b9e019659994264ec8137bf151ffb56ea48e4016b9669b3bb7c9b716576fM
2d080cb068c2447ff1df6a1073624c11b357326b0587fa4ce6da39c68d03cfe43a6ce9d07e1821a30139fef09d44ff4726d3a105bf3fb0d307d7f1899e3d47bcd8869c2068eb67a2dfcc26c6376c16b6042cfa0401f0f96075d74b5ff32d84030e6815a04e874022e70aade35ae04f76cb6d2e32fdc0c6780cf2aa16592676e971d7f78078540886939668396d01fc546e14aab3b0f0d0aebd9826d903f73f66ec23777075ef7ef4810ddd0199d42339a192dcb5e8c9af1945c0a07174d9b55b5073dff019d7d783cee6f52d55a3590f098f6992cc30f3aa09caad684e86977cb87ccac06f9c1e7a4d2d1fa08624d4c9618e4b7d504cca0e16f4e035fa0b021ba4193ad0M
45ee21de7961e39c5b21db384289ddbb96726f113202778017924123c5ac0ea06167daa89e5d0d8881c9964185f6738d7870e282b020eaea7ade844ed99d74901f80517bb3fc194a58d2f8022df2fe1e785cf31b73d53f7e85d30ca6b4c2e3705b4640de90f7e7758418f8829b24a45366735316463bf23ae7c6c51526fd4a901ad506e518b0143828b311f2f7a971ad1602eec3cea985b8e4a100f5349532a026a30b6c881f49ec1a5b8b0f2002d74304afb8723277f45ac7f6e8cee726bce04880f5e543eb127703f225870524766509a6bbc8591254d3f758093f936ab7b013b93d964681d1d318812c811a98b89e95891f95cbe27413edc4c30f7283ec00710f2711M
c038512cb8973b9e6455dd3313849dc42fae7e9299290bf14d54c0000d18463ccbfd136424eec59001c005b1d2c5fa326d7d962f1dd1de17bde3a8b054d359e3d0ecc0cd3d89df6d3869c709374d64ef6006d1cf91f8351d8d2b0a4019a990a1993544d0c1c6990cb9c48e8502b0cfedf8517c86a28eb5d566e240404cace726b4f15811eababa4bf2f63ff172e86d73aed8aa897f53f46c6d9781607a5f1417155c558661af91aa0e4c3b038e01513cae7c20a333e47f96be7313606b5ebf2e18b797ecadda3e35828dc967701a1cf6497a16eac79832e01830da20397f9ca869868b920c3f3b0ddbf93a04341f33f333a1f2aa82a5643fbbd055802b20ff559bf71909M
65809288a40dd123deb73b567ffe2fe40182d7a904011640423ed6180e4f562fdd3b68c1a2e0299af16a45930cb3f314cb63f892de56b4d02a5169cdd25c8a475fc81ba02126987daca5711bd115eb98051c1d97c7cf81f038ec4607f37ba1fd4aab5638e181b9e89be228401da2395588fdd5d68a1c8300048fed7312bd4783b9a244925f819aa58b0b8e76e7a9cbd94c7a1c5699ea8e003127c25ae6266d41c42a880c39f0eb3ff1941f686ba696bc962f5f688a4ca5e066a5d132273a7bbbc9a6d63bb5955190ea5f701a616ba7146facdec389945b00351de865f3498dfa73260035a02413128efe4ae9e07967a5660c288446f820403023a9b99ca8263f6b503b1aM
994b2eafaff54258023c4a6f8472928eac11607042374f7f349364a3a40c34f601322c02364438506b13e23b9ddde4b645089b800cb3cac2847bc98e15e6d406faedeb5bcfd43508dcf723418f8784f40d8a1a707eec6e5b11674d651b1062ea37188eded3f2279ed3a43fbafcb84a225a1c91705b6b0b4a0ffe3054903766e82a710e05a1fd116fd83997f22e27fb6c9d70d530236b1204a1973d9047a5a9209a140410179a0cd795c5ff15f01d3824cf2157905f12e41ccac108445bfd4476c06b47ad2aa6f5abf45e1db0bc092a596f9b6ea058cd7aa8ea036bbc4466af4905cc56c85c9936612d89ee51a940432f7ccf18801563c94ece881623596bb798b81f9e25M
68de98c079cbc851932de736369a9e4038931501d3c97af147488e93ea159a2c5679efc62bc5cdc656c4d3493a573f70458871c32095b9a4b7e2bf19e36468f08794704f6cfc648b9d1d814bf4f715104f4dea1f68e2af0a4fcb3da12f5f6b7f18b9b0f74e5bad3c5700069802dbd2a06b17043ac4b5bc4854721851238023bd22c11924135ac3a60ae1695e727652601e082a90a09c2d84411f5dc46c21488a900a025392a6e6fcb3505ce9f9fbcd20711c60d84c98bd00d33ef7b2514266a07a6247e6083a524a63f76410c96c6ec0476bca667ceb2d7730a5dbb195a1e341e4a8e461bb31573c85ee63132938af9021385d03f61e4717277a29664f96d49b17457247M6
7ffe30730ba38f96da14bb5045871e84e5daf92982746585d77c8ae3059aaeb47d4d6fdcfb216b367a5e16701f1bafc77a9f99259e8bf26f28c158041d188d3990d326c0c964210ff92d05b01f5db0d741b95c257d87f0efbdf678752117d8076e8f2e9ae16a5810f83ed7e02f6b46c6c3972690bd2821a8b329b60fba49d40c940983783cf67a7546290e302f0282c04a56b40d16b053e16cd556h!
d/Foundry USA Pool #dropgold/
6j4ion:4.QmbTmozdyGeaZ8Vd1RNeAXEcGXwx3pjtmN6xrrBUgTGmDoeC
4j2DC-L5:5Uyqn0wfpyJlMNfXM9/FcQnvqkiJcY7QKyJTPe+x9TE=
text/plain;charset=utf-8
  "name": "btc00.sats",
FjDOUT:BB3E5F21A2C82BDE4FCA42D6D92D7D3AC70A8419E059447411D252FA39F7B461
FjDOUT:26199A8195F1B806F012B13A5C69E8F4F8897AC91BF076F7404F0BCB24C5615A
FjDOUT:AC46F4C5A53235E941F459F4BEF677CDAB75D7D90D048CD5491F36B3BD4963CB
text/plain;charset=utf-8
2{"p":"brc-20","op":"mint","tick":"meme","amt":"1"}h!
d/Foundry USA Pool #dropgold/
>j<=:ETH.ETH:0xd513e19d801ba6f5e137c6d99ed17b6c611dafba::wr:100
FjDOUT:E56DB3E6FEE80BB2F1BD79DF19063696D228BEFAD7DDAA3380DF6A0B5117FA1D
text/plain;charset=utf-8
  "name": "btc008.sats",
((((((((((((((((((((((((((((((((((((((((((((((((((
FjDOUT:961E23D7150E0ECF395E4BB3EE74197EBD4D6765ABE41050D0F8AB5E75732ECC
FjDOUT:6CE88BC5406BD88DFC4D888AAA0640FA7FA2A0C7CB1413DE68F0D12F5AD80B26
DjB=:ETH.ETH:0x387835178AF1dbf504b3aBe4dfF2AF220d740b12:5934296552::0
Bj@=:ETH.ETH:0x2B905389190d1d048D8BE3FFf180f87935DAFbb9:61335188::0
text/plain;charset=utf-8
*{"p":"sns","op":"reg","name":"ivish.sats"}h!
d/Foundry USA Pool #dropgold/
text/plain;charset=utf-8
  "name": "btcwin.sats",
text/plain;charset=utf-8
  "name": "btc128.sats",
text/plain;charset=utf-8
){"op":"reg","p":"sns","name":"aven.sats"}h!
kLnlTlyGwG~kKwyZzB~8
text/plain;charset=utf-8
  "name": "888btc123.sats",
text/plain;charset=utf-8
  "name": "btc126.sats",
MjK=:BNB.BUSD-BD1:bnb12n3c9xjnwq8lyfpz9epmhfzs769kk03yfn7exm:303397542493:te:0
FjDOUT:856EDC3070F231E2B3399FE375363A72E116B082779383250D9A9CA7F8736A65
CjA=:ETH.ETH:0xCcB8DC42736A009bE41Bef88394ccAe1643438d5:2971968:te:0
FjDOUT:A22E46EA3FCB11778D1621F1A3CA2365B5C56E18C62A13D48901A84A6F9B8A90
FjDOUT:CBE22525D34F18745A1CC454E6D3B97F7688CD3FCDA0A4E291C0DF642A1641A5
text/plain;charset=utf-8
-{"p":"sns","op":"reg","name":"kasumisk.sats"}h!
DjB=:BNB.BNB:bnb1xdw2m3utjghaczggguev74fy6kxg4dmsrd9q2r:65670338:te:0
text/plain;charset=utf-8
6{"p":"sns","op":"reg","name":"

blk00000.txt blk00001.txt blk00002.txt blk00003.txt blk00004.txt blk00005.txt blk00006.txt blk00007.txt blk00008.txt blk00009.txt blk00010.txt blk00011.txt blk00012.txt blk00013.txt blk00014.txt blk00015.txt blk00016.txt blk00017.txt blk00018.txt blk00019.txt blk00020.txt blk00021.txt blk00022.txt blk00023.txt blk00024.txt blk00025.txt blk00026.txt blk00027.txt blk00028.txt blk00029.txt blk00030.txt blk00031.txt blk00032.txt blk00033.txt blk00034.txt blk00035.txt blk00036.txt blk00037.txt blk00038.txt blk00039.txt blk00040.txt blk00041.txt blk00042.txt blk00043.txt blk00044.txt blk00045.txt blk00046.txt blk00047.txt blk00048.txt blk00049.txt blk00050.txt blk00051.txt blk00052.txt blk00053.txt blk00054.txt blk00055.txt blk00056.txt blk00057.txt blk00058.txt blk00059.txt blk00060.txt blk00061.txt blk00062.txt blk00063.txt blk00064.txt blk00065.txt blk00066.txt blk00067.txt blk00068.txt blk00069.txt blk00070.txt blk00071.txt blk00072.txt blk00073.txt blk00074.txt blk00075.txt blk00076.txt blk00077.txt blk00078.txt blk00079.txt blk00080.txt blk00081.txt blk00082.txt blk00083.txt blk00084.txt blk00085.txt blk00086.txt blk00087.txt blk00088.txt blk00089.txt blk00090.txt blk00091.txt blk00092.txt blk00093.txt blk00094.txt blk00095.txt blk00096.txt blk00097.txt blk00098.txt blk00099.txt blk00100.txt blk00101.txt blk00102.txt blk00103.txt blk00104.txt blk00105.txt blk00106.txt blk00107.txt blk00108.txt blk00109.txt blk00110.txt blk00111.txt blk00112.txt blk00113.txt blk00114.txt blk00115.txt blk00116.txt blk00117.txt blk00118.txt blk00119.txt blk00120.txt blk00121.txt blk00122.txt blk00123.txt blk00124.txt blk00125.txt blk00126.txt blk00127.txt blk00128.txt blk00129.txt blk00130.txt blk00131.txt blk00132.txt blk00133.txt blk00134.txt blk00135.txt blk00136.txt blk00137.txt blk00138.txt blk00139.txt blk00140.txt blk00141.txt blk00142.txt blk00143.txt blk00144.txt blk00145.txt blk00146.txt blk00147.txt blk00148.txt blk00149.txt blk00150.txt blk00151.txt blk00152.txt blk00153.txt blk00154.txt blk00155.txt blk00156.txt blk00157.txt blk00158.txt blk00159.txt blk00160.txt blk00161.txt blk00162.txt blk00163.txt blk00164.txt blk00165.txt blk00166.txt blk00167.txt blk00168.txt blk00169.txt blk00170.txt blk00171.txt blk00172.txt blk00173.txt blk00174.txt blk00175.txt blk00176.txt blk00177.txt blk00178.txt blk00179.txt blk00180.txt blk00181.txt blk00182.txt blk00183.txt blk00184.txt blk00185.txt blk00186.txt blk00187.txt blk00188.txt blk00189.txt blk00190.txt blk00191.txt blk00192.txt blk00193.txt blk00194.txt blk00195.txt blk00196.txt blk00197.txt blk00198.txt blk00199.txt blk00200.txt blk00201.txt blk00202.txt blk00203.txt blk00204.txt blk00205.txt blk00206.txt blk00207.txt blk00208.txt blk00209.txt blk00210.txt blk00211.txt blk00212.txt blk00213.txt blk00214.txt blk00215.txt blk00216.txt blk00217.txt blk00218.txt blk00219.txt blk00220.txt blk00221.txt blk00222.txt blk00223.txt blk00224.txt blk00225.txt blk00226.txt blk00227.txt blk00228.txt blk00229.txt blk00230.txt blk00231.txt blk00232.txt blk00233.txt blk00234.txt blk00235.txt blk00236.txt blk00237.txt blk00238.txt blk00239.txt blk00240.txt blk00241.txt blk00242.txt blk00243.txt blk00244.txt blk00245.txt blk00246.txt blk00247.txt blk00248.txt blk00249.txt blk00250.txt blk00251.txt blk00252.txt blk00253.txt blk00254.txt blk00255.txt blk00256.txt blk00257.txt blk00258.txt blk00259.txt blk00260.txt blk00261.txt blk00262.txt blk00263.txt blk00264.txt blk00265.txt blk00266.txt blk00267.txt blk00268.txt blk00269.txt blk00270.txt blk00271.txt blk00272.txt blk00273.txt blk00274.txt blk00275.txt blk00276.txt blk00277.txt blk00278.txt blk00279.txt blk00280.txt blk00281.txt blk00282.txt blk00283.txt blk00284.txt blk00285.txt blk00286.txt blk00287.txt blk00288.txt blk00289.txt blk00290.txt blk00291.txt blk00292.txt blk00293.txt blk00294.txt blk00295.txt blk00296.txt blk00297.txt blk00298.txt blk00299.txt blk00300.txt blk00301.txt blk00302.txt blk00303.txt blk00304.txt blk00305.txt blk00306.txt blk00307.txt blk00308.txt blk00309.txt blk00310.txt blk00311.txt blk00312.txt blk00313.txt blk00314.txt blk00315.txt blk00316.txt blk00317.txt blk00318.txt blk00319.txt blk00320.txt blk00321.txt blk00322.txt blk00323.txt blk00324.txt blk00325.txt blk00326.txt blk00327.txt blk00328.txt blk00329.txt blk00330.txt blk00331.txt blk00332.txt blk00333.txt blk00334.txt blk00335.txt blk00336.txt blk00337.txt blk00338.txt blk00339.txt blk00340.txt blk00341.txt blk00342.txt blk00343.txt blk00344.txt blk00345.txt blk00346.txt blk00347.txt blk00348.txt blk00349.txt blk00350.txt blk00351.txt blk00352.txt blk00353.txt blk00354.txt blk00355.txt blk00356.txt blk00357.txt blk00358.txt blk00359.txt blk00360.txt blk00361.txt blk00362.txt blk00363.txt blk00364.txt blk00365.txt blk00366.txt blk00367.txt blk00368.txt blk00369.txt blk00370.txt blk00371.txt blk00372.txt blk00373.txt blk00374.txt blk00375.txt blk00376.txt blk00377.txt blk00378.txt blk00379.txt blk00380.txt blk00381.txt blk00382.txt blk00383.txt blk00384.txt blk00385.txt blk00386.txt blk00387.txt blk00388.txt blk00389.txt blk00390.txt blk00391.txt blk00392.txt blk00393.txt blk00394.txt blk00395.txt blk00396.txt blk00397.txt blk00398.txt blk00399.txt blk00400.txt blk00401.txt blk00402.txt blk00403.txt blk00404.txt blk00405.txt blk00406.txt blk00407.txt blk00408.txt blk00409.txt blk00410.txt blk00411.txt blk00412.txt blk00413.txt blk00414.txt blk00415.txt blk00416.txt blk00417.txt blk00418.txt blk00419.txt blk00420.txt blk00421.txt blk00422.txt blk00423.txt blk00424.txt blk00425.txt blk00426.txt blk00427.txt blk00428.txt blk00429.txt blk00430.txt blk00431.txt blk00432.txt blk00433.txt blk00434.txt blk00435.txt blk00436.txt blk00437.txt blk00438.txt blk00439.txt blk00440.txt blk00441.txt blk00442.txt blk00443.txt blk00444.txt blk00445.txt blk00446.txt blk00447.txt blk00448.txt blk00449.txt blk00450.txt blk00451.txt blk00452.txt blk00453.txt blk00454.txt blk00455.txt blk00456.txt blk00457.txt blk00458.txt blk00459.txt blk00460.txt blk00461.txt blk00462.txt blk00463.txt blk00464.txt blk00465.txt blk00466.txt blk00467.txt blk00468.txt blk00469.txt blk00470.txt blk00471.txt blk00472.txt blk00473.txt blk00474.txt blk00475.txt blk00476.txt blk00477.txt blk00478.txt blk00479.txt blk00480.txt blk00481.txt blk00482.txt blk00483.txt blk00484.txt blk00485.txt blk00486.txt blk00487.txt blk00488.txt blk00489.txt blk00490.txt blk00491.txt blk00492.txt blk00493.txt blk00494.txt blk00495.txt blk00496.txt blk00497.txt blk00498.txt blk00499.txt blk00500.txt blk00501.txt blk00502.txt blk00503.txt blk00504.txt blk00505.txt blk00506.txt blk00507.txt blk00508.txt blk00509.txt blk00510.txt blk00511.txt blk00512.txt blk00513.txt blk00514.txt blk00515.txt blk00516.txt blk00517.txt blk00518.txt blk00519.txt blk00520.txt blk00521.txt blk00522.txt blk00523.txt blk00524.txt blk00525.txt blk00526.txt blk00527.txt blk00528.txt blk00529.txt blk00530.txt blk00531.txt blk00532.txt blk00533.txt blk00534.txt blk00535.txt blk00536.txt blk00537.txt blk00538.txt blk00539.txt blk00540.txt blk00541.txt blk00542.txt blk00543.txt blk00544.txt blk00545.txt blk00546.txt blk00547.txt blk00548.txt blk00549.txt blk00550.txt blk00551.txt blk00552.txt blk00553.txt blk00554.txt blk00555.txt blk00556.txt blk00557.txt blk00558.txt blk00559.txt blk00560.txt blk00561.txt blk00562.txt blk00563.txt blk00564.txt blk00565.txt blk00566.txt blk00567.txt blk00568.txt blk00569.txt blk00570.txt blk00571.txt blk00572.txt blk00573.txt blk00574.txt blk00575.txt blk00576.txt blk00577.txt blk00578.txt blk00579.txt blk00580.txt blk00581.txt blk00582.txt blk00583.txt blk00584.txt blk00585.txt blk00586.txt blk00587.txt blk00588.txt blk00589.txt blk00590.txt blk00591.txt blk00592.txt blk00593.txt blk00594.txt blk00595.txt blk00596.txt blk00597.txt blk00598.txt blk00599.txt blk00600.txt blk00601.txt blk00602.txt blk00603.txt blk00604.txt blk00605.txt blk00606.txt blk00607.txt blk00608.txt blk00609.txt blk00610.txt blk00611.txt blk00612.txt blk00613.txt blk00614.txt blk00615.txt blk00616.txt blk00617.txt blk00618.txt blk00619.txt blk00620.txt blk00621.txt blk00622.txt blk00623.txt blk00624.txt blk00625.txt blk00626.txt blk00627.txt blk00628.txt blk00629.txt blk00630.txt blk00631.txt blk00632.txt blk00633.txt blk00634.txt blk00635.txt blk00636.txt blk00637.txt blk00638.txt blk00639.txt blk00640.txt blk00641.txt blk00642.txt blk00643.txt blk00644.txt blk00645.txt blk00646.txt blk00647.txt blk00648.txt blk00649.txt blk00650.txt blk00651.txt blk00652.txt blk00653.txt blk00654.txt blk00655.txt blk00656.txt blk00657.txt blk00658.txt blk00659.txt blk00660.txt blk00661.txt blk00662.txt blk00663.txt blk00664.txt blk00665.txt blk00666.txt blk00667.txt blk00668.txt blk00669.txt blk00670.txt blk00671.txt blk00672.txt blk00673.txt blk00674.txt blk00675.txt blk00676.txt blk00677.txt blk00678.txt blk00679.txt blk00680.txt blk00681.txt blk00682.txt blk00683.txt blk00684.txt blk00685.txt blk00686.txt blk00687.txt blk00688.txt blk00689.txt blk00690.txt blk00691.txt blk00692.txt blk00693.txt blk00694.txt blk00695.txt blk00696.txt blk00697.txt blk00698.txt blk00699.txt blk00700.txt blk00701.txt blk00702.txt blk00703.txt blk00704.txt blk00705.txt blk00706.txt blk00707.txt blk00708.txt blk00709.txt blk00710.txt blk00711.txt blk00712.txt blk00713.txt blk00714.txt blk00715.txt blk00716.txt blk00717.txt blk00718.txt blk00719.txt blk00720.txt blk00721.txt blk00722.txt blk00723.txt blk00724.txt blk00725.txt blk00726.txt blk00727.txt blk00728.txt blk00729.txt blk00730.txt blk00731.txt blk00732.txt blk00733.txt blk00734.txt blk00735.txt blk00736.txt blk00737.txt blk00738.txt blk00739.txt blk00740.txt blk00741.txt blk00742.txt blk00743.txt blk00744.txt blk00745.txt blk00746.txt blk00747.txt blk00748.txt blk00749.txt blk00750.txt blk00751.txt blk00752.txt blk00753.txt blk00754.txt blk00755.txt blk00756.txt blk00757.txt blk00758.txt blk00759.txt blk00760.txt blk00761.txt blk00762.txt blk00763.txt blk00764.txt blk00765.txt blk00766.txt blk00767.txt blk00768.txt blk00769.txt blk00770.txt blk00771.txt blk00772.txt blk00773.txt blk00774.txt blk00775.txt blk00776.txt blk00777.txt blk00778.txt blk00779.txt blk00780.txt blk00781.txt blk00782.txt blk00783.txt blk00784.txt blk00785.txt blk00786.txt blk00787.txt blk00788.txt blk00789.txt blk00790.txt blk00791.txt blk00792.txt blk00793.txt blk00794.txt blk00795.txt blk00796.txt blk00797.txt blk00798.txt blk00799.txt blk00800.txt blk00801.txt blk00802.txt blk00803.txt blk00804.txt blk00805.txt blk00806.txt blk00807.txt blk00808.txt blk00809.txt blk00810.txt blk00811.txt blk00812.txt blk00813.txt blk00814.txt blk00815.txt blk00816.txt blk00817.txt blk00818.txt blk00819.txt blk00820.txt blk00821.txt blk00822.txt blk00823.txt blk00824.txt blk00825.txt blk00826.txt blk00827.txt blk00828.txt blk00829.txt blk00830.txt blk00831.txt blk00832.txt blk00833.txt blk00834.txt blk00835.txt blk00836.txt blk00837.txt blk00838.txt blk00839.txt blk00840.txt blk00841.txt blk00842.txt blk00843.txt blk00844.txt blk00845.txt blk00846.txt blk00847.txt blk00848.txt blk00849.txt blk00850.txt blk00851.txt blk00852.txt blk00853.txt blk00854.txt blk00855.txt blk00856.txt blk00857.txt blk00858.txt blk00859.txt blk00860.txt blk00861.txt blk00862.txt blk00863.txt blk00864.txt blk00865.txt blk00866.txt blk00867.txt blk00868.txt blk00869.txt blk00870.txt blk00871.txt blk00872.txt blk00873.txt blk00874.txt blk00875.txt blk00876.txt blk00877.txt blk00878.txt blk00879.txt blk00880.txt blk00881.txt blk00882.txt blk00883.txt blk00884.txt blk00885.txt blk00886.txt blk00887.txt blk00888.txt blk00889.txt blk00890.txt blk00891.txt blk00892.txt blk00893.txt blk00894.txt blk00895.txt blk00896.txt blk00897.txt blk00898.txt blk00899.txt blk00900.txt blk00901.txt blk00902.txt blk00903.txt blk00904.txt blk00905.txt blk00906.txt blk00907.txt blk00908.txt blk00909.txt blk00910.txt blk00911.txt blk00912.txt blk00913.txt blk00914.txt blk00915.txt blk00916.txt blk00917.txt blk00918.txt blk00919.txt blk00920.txt blk00921.txt blk00922.txt blk00923.txt blk00924.txt blk00925.txt blk00926.txt blk00927.txt blk00928.txt blk00929.txt blk00930.txt blk00931.txt blk00932.txt blk00933.txt blk00934.txt blk00935.txt blk00936.txt blk00937.txt blk00938.txt blk00939.txt blk00940.txt blk00941.txt blk00942.txt blk00943.txt blk00944.txt blk00945.txt blk00946.txt blk00947.txt blk00948.txt blk00949.txt blk00950.txt blk00951.txt blk00952.txt blk00953.txt blk00954.txt blk00955.txt blk00956.txt blk00957.txt blk00958.txt blk00959.txt blk00960.txt blk00961.txt blk00962.txt blk00963.txt blk00964.txt blk00965.txt blk00966.txt blk00967.txt blk00968.txt blk00969.txt blk00970.txt blk00971.txt blk00972.txt blk00973.txt blk00974.txt blk00975.txt blk00976.txt blk00977.txt blk00978.txt blk00979.txt blk00980.txt blk00981.txt blk00982.txt blk00983.txt blk00984.txt blk00985.txt blk00986.txt blk00987.txt blk00988.txt blk00989.txt blk00990.txt blk00991.txt blk00992.txt blk00993.txt blk00994.txt blk00995.txt blk00996.txt blk00997.txt blk00998.txt blk00999.txt blk01000.txt blk01001.txt blk01002.txt blk01003.txt blk01004.txt blk01005.txt blk01006.txt blk01007.txt blk01008.txt blk01009.txt blk01010.txt blk01011.txt blk01012.txt blk01013.txt blk01014.txt blk01015.txt blk01016.txt blk01017.txt blk01018.txt blk01019.txt blk01020.txt blk01021.txt blk01022.txt blk01023.txt blk01024.txt blk01025.txt blk01026.txt blk01027.txt blk01028.txt blk01029.txt blk01030.txt blk01031.txt blk01032.txt blk01033.txt blk01034.txt blk01035.txt blk01036.txt blk01037.txt blk01038.txt blk01039.txt blk01040.txt blk01041.txt blk01042.txt blk01043.txt blk01044.txt blk01045.txt blk01046.txt blk01047.txt blk01048.txt blk01049.txt blk01050.txt blk01051.txt blk01052.txt blk01053.txt blk01054.txt blk01055.txt blk01056.txt blk01057.txt blk01058.txt blk01059.txt blk01060.txt blk01061.txt blk01062.txt blk01063.txt blk01064.txt blk01065.txt blk01066.txt blk01067.txt blk01068.txt blk01069.txt blk01070.txt blk01071.txt blk01072.txt blk01073.txt blk01074.txt blk01075.txt blk01076.txt blk01077.txt blk01078.txt blk01079.txt blk01080.txt blk01081.txt blk01082.txt blk01083.txt blk01084.txt blk01085.txt blk01086.txt blk01087.txt blk01088.txt blk01089.txt blk01090.txt blk01091.txt blk01092.txt blk01093.txt blk01094.txt blk01095.txt blk01096.txt blk01097.txt blk01098.txt blk01099.txt blk01100.txt blk01101.txt blk01102.txt blk01103.txt blk01104.txt blk01105.txt blk01106.txt blk01107.txt blk01108.txt blk01109.txt blk01110.txt blk01111.txt blk01112.txt blk01113.txt blk01114.txt blk01115.txt blk01116.txt blk01117.txt blk01118.txt blk01119.txt blk01120.txt blk01121.txt blk01122.txt blk01123.txt blk01124.txt blk01125.txt blk01126.txt blk01127.txt blk01128.txt blk01129.txt blk01130.txt blk01131.txt blk01132.txt blk01133.txt blk01134.txt blk01135.txt blk01136.txt blk01137.txt blk01138.txt blk01139.txt blk01140.txt blk01141.txt blk01142.txt blk01143.txt blk01144.txt blk01145.txt blk01146.txt blk01147.txt blk01148.txt blk01149.txt blk01150.txt blk01151.txt blk01152.txt blk01153.txt blk01154.txt blk01155.txt blk01156.txt blk01157.txt blk01158.txt blk01159.txt blk01160.txt blk01161.txt blk01162.txt blk01163.txt blk01164.txt blk01165.txt blk01166.txt blk01167.txt blk01168.txt blk01169.txt blk01170.txt blk01171.txt blk01172.txt blk01173.txt blk01174.txt blk01175.txt blk01176.txt blk01177.txt blk01178.txt blk01179.txt blk01180.txt blk01181.txt blk01182.txt blk01183.txt blk01184.txt blk01185.txt blk01186.txt blk01187.txt blk01188.txt blk01189.txt blk01190.txt blk01191.txt blk01192.txt blk01193.txt blk01194.txt blk01195.txt blk01196.txt blk01197.txt blk01198.txt blk01199.txt blk01200.txt blk01201.txt blk01202.txt blk01203.txt blk01204.txt blk01205.txt blk01206.txt blk01207.txt blk01208.txt blk01209.txt blk01210.txt blk01211.txt blk01212.txt blk01213.txt blk01214.txt blk01215.txt blk01216.txt blk01217.txt blk01218.txt blk01219.txt blk01220.txt blk01221.txt blk01222.txt blk01223.txt blk01224.txt blk01225.txt blk01226.txt blk01227.txt blk01228.txt blk01229.txt blk01230.txt blk01231.txt blk01232.txt blk01233.txt blk01234.txt blk01235.txt blk01236.txt blk01237.txt blk01238.txt blk01239.txt blk01240.txt blk01241.txt blk01242.txt blk01243.txt blk01244.txt blk01245.txt blk01246.txt blk01247.txt blk01248.txt blk01249.txt blk01250.txt blk01251.txt blk01252.txt blk01253.txt blk01254.txt blk01255.txt blk01256.txt blk01257.txt blk01258.txt blk01259.txt blk01260.txt blk01261.txt blk01262.txt blk01263.txt blk01264.txt blk01265.txt blk01266.txt blk01267.txt blk01268.txt blk01269.txt blk01270.txt blk01271.txt blk01272.txt blk01273.txt blk01274.txt blk01275.txt blk01276.txt blk01277.txt blk01278.txt blk01279.txt blk01280.txt blk01281.txt blk01282.txt blk01283.txt blk01284.txt blk01285.txt blk01286.txt blk01287.txt blk01288.txt blk01289.txt blk01290.txt blk01291.txt blk01292.txt blk01293.txt blk01294.txt blk01295.txt blk01296.txt blk01297.txt blk01298.txt blk01299.txt blk01300.txt blk01301.txt blk01302.txt blk01303.txt blk01304.txt blk01305.txt blk01306.txt blk01307.txt blk01308.txt blk01309.txt blk01310.txt blk01311.txt blk01312.txt blk01313.txt blk01314.txt blk01315.txt blk01316.txt blk01317.txt blk01318.txt blk01319.txt blk01320.txt blk01321.txt blk01322.txt blk01323.txt blk01324.txt blk01325.txt blk01326.txt blk01327.txt blk01328.txt blk01329.txt blk01330.txt blk01331.txt blk01332.txt blk01333.txt blk01334.txt blk01335.txt blk01336.txt blk01337.txt blk01338.txt blk01339.txt blk01340.txt blk01341.txt blk01342.txt blk01343.txt blk01344.txt blk01345.txt blk01346.txt blk01347.txt blk01348.txt blk01349.txt blk01350.txt blk01351.txt blk01352.txt blk01353.txt blk01354.txt blk01355.txt blk01356.txt blk01357.txt blk01358.txt blk01359.txt blk01360.txt blk01361.txt blk01362.txt blk01363.txt blk01364.txt blk01365.txt blk01366.txt blk01367.txt blk01368.txt blk01369.txt blk01370.txt blk01371.txt blk01372.txt blk01373.txt blk01374.txt blk01375.txt blk01376.txt blk01377.txt blk01378.txt blk01379.txt blk01380.txt blk01381.txt blk01382.txt blk01383.txt blk01384.txt blk01385.txt blk01386.txt blk01387.txt blk01388.txt blk01389.txt blk01390.txt blk01391.txt blk01392.txt blk01393.txt blk01394.txt blk01395.txt blk01396.txt blk01397.txt blk01398.txt blk01399.txt blk01400.txt blk01401.txt blk01402.txt blk01403.txt blk01404.txt blk01405.txt blk01406.txt blk01407.txt blk01408.txt blk01409.txt blk01410.txt blk01411.txt blk01412.txt blk01413.txt blk01414.txt blk01415.txt blk01416.txt blk01417.txt blk01418.txt blk01419.txt blk01420.txt blk01421.txt blk01422.txt blk01423.txt blk01424.txt blk01425.txt blk01426.txt blk01427.txt blk01428.txt blk01429.txt blk01430.txt blk01431.txt blk01432.txt blk01433.txt blk01434.txt blk01435.txt blk01436.txt blk01437.txt blk01438.txt blk01439.txt blk01440.txt blk01441.txt blk01442.txt blk01443.txt blk01444.txt blk01445.txt blk01446.txt blk01447.txt blk01448.txt blk01449.txt blk01450.txt blk01451.txt blk01452.txt blk01453.txt blk01454.txt blk01455.txt blk01456.txt blk01457.txt blk01458.txt blk01459.txt blk01460.txt blk01461.txt blk01462.txt blk01463.txt blk01464.txt blk01465.txt blk01466.txt blk01467.txt blk01468.txt blk01469.txt blk01470.txt blk01471.txt blk01472.txt blk01473.txt blk01474.txt blk01475.txt blk01476.txt blk01477.txt blk01478.txt blk01479.txt blk01480.txt blk01481.txt blk01482.txt blk01483.txt blk01484.txt blk01485.txt blk01486.txt blk01487.txt blk01488.txt blk01489.txt blk01490.txt blk01491.txt blk01492.txt blk01493.txt blk01494.txt blk01495.txt blk01496.txt blk01497.txt blk01498.txt blk01499.txt blk01500.txt blk01501.txt blk01502.txt blk01503.txt blk01504.txt blk01505.txt blk01506.txt blk01507.txt blk01508.txt blk01509.txt blk01510.txt blk01511.txt blk01512.txt blk01513.txt blk01514.txt blk01515.txt blk01516.txt blk01517.txt blk01518.txt blk01519.txt blk01520.txt blk01521.txt blk01522.txt blk01523.txt blk01524.txt blk01525.txt blk01526.txt blk01527.txt blk01528.txt blk01529.txt blk01530.txt blk01531.txt blk01532.txt blk01533.txt blk01534.txt blk01535.txt blk01536.txt blk01537.txt blk01538.txt blk01539.txt blk01540.txt blk01541.txt blk01542.txt blk01543.txt blk01544.txt blk01545.txt blk01546.txt blk01547.txt blk01548.txt blk01549.txt blk01550.txt blk01551.txt blk01552.txt blk01553.txt blk01554.txt blk01555.txt blk01556.txt blk01557.txt blk01558.txt blk01559.txt blk01560.txt blk01561.txt blk01562.txt blk01563.txt blk01564.txt blk01565.txt blk01566.txt blk01567.txt blk01568.txt blk01569.txt blk01570.txt blk01571.txt blk01572.txt blk01573.txt blk01574.txt blk01575.txt blk01576.txt blk01577.txt blk01578.txt blk01579.txt blk01580.txt blk01581.txt blk01582.txt blk01583.txt blk01584.txt blk01585.txt blk01586.txt blk01587.txt blk01588.txt blk01589.txt blk01590.txt blk01591.txt blk01592.txt blk01593.txt blk01594.txt blk01595.txt blk01596.txt blk01597.txt blk01598.txt blk01599.txt blk01600.txt blk01601.txt blk01602.txt blk01603.txt blk01604.txt blk01605.txt blk01606.txt blk01607.txt blk01608.txt blk01609.txt blk01610.txt blk01611.txt blk01612.txt blk01613.txt blk01614.txt blk01615.txt blk01616.txt blk01617.txt blk01618.txt blk01619.txt blk01620.txt blk01621.txt blk01622.txt blk01623.txt blk01624.txt blk01625.txt blk01626.txt blk01627.txt blk01628.txt blk01629.txt blk01630.txt blk01631.txt blk01632.txt blk01633.txt blk01634.txt blk01635.txt blk01636.txt blk01637.txt blk01638.txt blk01639.txt blk01640.txt blk01641.txt blk01642.txt blk01643.txt blk01644.txt blk01645.txt blk01646.txt blk01647.txt blk01648.txt blk01649.txt blk01650.txt blk01651.txt blk01652.txt blk01653.txt blk01654.txt blk01655.txt blk01656.txt blk01657.txt blk01658.txt blk01659.txt blk01660.txt blk01661.txt blk01662.txt blk01663.txt blk01664.txt blk01665.txt blk01666.txt blk01667.txt blk01668.txt blk01669.txt blk01670.txt blk01671.txt blk01672.txt blk01673.txt blk01674.txt blk01675.txt blk01676.txt blk01677.txt blk01678.txt blk01679.txt blk01680.txt blk01681.txt blk01682.txt blk01683.txt blk01684.txt blk01685.txt blk01686.txt blk01687.txt blk01688.txt blk01689.txt blk01690.txt blk01691.txt blk01692.txt blk01693.txt blk01694.txt blk01695.txt blk01696.txt blk01697.txt blk01698.txt blk01699.txt blk01700.txt blk01701.txt blk01702.txt blk01703.txt blk01704.txt blk01705.txt blk01706.txt blk01707.txt blk01708.txt blk01709.txt blk01710.txt blk01711.txt blk01712.txt blk01713.txt blk01714.txt blk01715.txt blk01716.txt blk01717.txt blk01718.txt blk01719.txt blk01720.txt blk01721.txt blk01722.txt blk01723.txt blk01724.txt blk01725.txt blk01726.txt blk01727.txt blk01728.txt blk01729.txt blk01730.txt blk01731.txt blk01732.txt blk01733.txt blk01734.txt blk01735.txt blk01736.txt blk01737.txt blk01738.txt blk01739.txt blk01740.txt blk01741.txt blk01742.txt blk01743.txt blk01744.txt blk01745.txt blk01746.txt blk01747.txt blk01748.txt blk01749.txt blk01750.txt blk01751.txt blk01752.txt blk01753.txt blk01754.txt blk01755.txt blk01756.txt blk01757.txt blk01758.txt blk01759.txt blk01760.txt blk01761.txt blk01762.txt blk01763.txt blk01764.txt blk01765.txt blk01766.txt blk01767.txt blk01768.txt blk01769.txt blk01770.txt blk01771.txt blk01772.txt blk01773.txt blk01774.txt blk01775.txt blk01776.txt blk01777.txt blk01778.txt blk01779.txt blk01780.txt blk01781.txt blk01782.txt blk01783.txt blk01784.txt blk01785.txt blk01786.txt blk01787.txt blk01788.txt blk01789.txt blk01790.txt blk01791.txt blk01792.txt blk01793.txt blk01794.txt blk01795.txt blk01796.txt blk01797.txt blk01798.txt blk01799.txt blk01800.txt blk01801.txt blk01802.txt blk01803.txt blk01804.txt blk01805.txt blk01806.txt blk01807.txt blk01808.txt blk01809.txt blk01810.txt blk01811.txt blk01812.txt blk01813.txt blk01814.txt blk01815.txt blk01816.txt blk01817.txt blk01818.txt blk01819.txt blk01820.txt blk01821.txt blk01822.txt blk01823.txt blk01824.txt blk01825.txt blk01826.txt blk01827.txt blk01828.txt blk01829.txt blk01830.txt blk01831.txt blk01832.txt blk01833.txt blk01834.txt blk01835.txt blk01836.txt blk01837.txt blk01838.txt blk01839.txt blk01840.txt blk01841.txt blk01842.txt blk01843.txt blk01844.txt blk01845.txt blk01846.txt blk01847.txt blk01848.txt blk01849.txt blk01850.txt blk01851.txt blk01852.txt blk01853.txt blk01854.txt blk01855.txt blk01856.txt blk01857.txt blk01858.txt blk01859.txt blk01860.txt blk01861.txt blk01862.txt blk01863.txt blk01864.txt blk01865.txt blk01866.txt blk01867.txt blk01868.txt blk01869.txt blk01870.txt blk01871.txt blk01872.txt blk01873.txt blk01874.txt blk01875.txt blk01876.txt blk01877.txt blk01878.txt blk01879.txt blk01880.txt blk01881.txt blk01882.txt blk01883.txt blk01884.txt blk01885.txt blk01886.txt blk01887.txt blk01888.txt blk01889.txt blk01890.txt blk01891.txt blk01892.txt blk01893.txt blk01894.txt blk01895.txt blk01896.txt blk01897.txt blk01898.txt blk01899.txt blk01900.txt blk01901.txt blk01902.txt blk01903.txt blk01904.txt blk01905.txt blk01906.txt blk01907.txt blk01908.txt blk01909.txt blk01910.txt blk01911.txt blk01912.txt blk01913.txt blk01914.txt blk01915.txt blk01916.txt blk01917.txt blk01918.txt blk01919.txt blk01920.txt blk01921.txt blk01922.txt blk01923.txt blk01924.txt blk01925.txt blk01926.txt blk01927.txt blk01928.txt blk01929.txt blk01930.txt blk01931.txt blk01932.txt blk01933.txt blk01934.txt blk01935.txt blk01936.txt blk01937.txt blk01938.txt blk01939.txt blk01940.txt blk01941.txt blk01942.txt blk01943.txt blk01944.txt blk01945.txt blk01946.txt blk01947.txt blk01948.txt blk01949.txt blk01950.txt blk01951.txt blk01952.txt blk01953.txt blk01954.txt blk01955.txt blk01956.txt blk01957.txt blk01958.txt blk01959.txt blk01960.txt blk01961.txt blk01962.txt blk01963.txt blk01964.txt blk01965.txt blk01966.txt blk01967.txt blk01968.txt blk01969.txt blk01970.txt blk01971.txt blk01972.txt blk01973.txt blk01974.txt blk01975.txt blk01976.txt blk01977.txt blk01978.txt blk01979.txt blk01980.txt blk01981.txt blk01982.txt blk01983.txt blk01984.txt blk01985.txt blk01986.txt blk01987.txt blk01988.txt blk01989.txt blk01990.txt blk01991.txt blk01992.txt blk01993.txt blk01994.txt blk01995.txt blk01996.txt blk01997.txt blk01998.txt blk01999.txt blk02000.txt blk02001.txt blk02002.txt blk02003.txt blk02004.txt blk02005.txt blk02006.txt blk02007.txt blk02008.txt blk02009.txt blk02010.txt blk02011.txt blk02012.txt blk02013.txt blk02014.txt blk02015.txt blk02016.txt blk02017.txt blk02018.txt blk02019.txt blk02020.txt blk02021.txt blk02022.txt blk02023.txt blk02024.txt blk02025.txt blk02026.txt blk02027.txt blk02028.txt blk02029.txt blk02030.txt blk02031.txt blk02032.txt blk02033.txt blk02034.txt blk02035.txt blk02036.txt blk02037.txt blk02038.txt blk02039.txt blk02040.txt blk02041.txt blk02042.txt blk02043.txt blk02044.txt blk02045.txt blk02046.txt blk02047.txt blk02048.txt blk02049.txt blk02050.txt blk02051.txt blk02052.txt blk02053.txt blk02054.txt blk02055.txt blk02056.txt blk02057.txt blk02058.txt blk02059.txt blk02060.txt blk02061.txt blk02062.txt blk02063.txt blk02064.txt blk02065.txt blk02066.txt blk02067.txt blk02068.txt blk02069.txt blk02070.txt blk02071.txt blk02072.txt blk02073.txt blk02074.txt blk02075.txt blk02076.txt blk02077.txt blk02078.txt blk02079.txt blk02080.txt blk02081.txt blk02082.txt blk02083.txt blk02084.txt blk02085.txt blk02086.txt blk02087.txt blk02088.txt blk02089.txt blk02090.txt blk02091.txt blk02092.txt blk02093.txt blk02094.txt blk02095.txt blk02096.txt blk02097.txt blk02098.txt blk02099.txt blk02100.txt blk02101.txt blk02102.txt blk02103.txt blk02104.txt blk02105.txt blk02106.txt blk02107.txt blk02108.txt blk02109.txt blk02110.txt blk02111.txt blk02112.txt blk02113.txt blk02114.txt blk02115.txt blk02116.txt blk02117.txt blk02118.txt blk02119.txt blk02120.txt blk02121.txt blk02122.txt blk02123.txt blk02124.txt blk02125.txt blk02126.txt blk02127.txt blk02128.txt blk02129.txt blk02130.txt blk02131.txt blk02132.txt blk02133.txt blk02134.txt blk02135.txt blk02136.txt blk02137.txt blk02138.txt blk02139.txt blk02140.txt blk02141.txt blk02142.txt blk02143.txt blk02144.txt blk02145.txt blk02146.txt blk02147.txt blk02148.txt blk02149.txt blk02150.txt blk02151.txt blk02152.txt blk02153.txt blk02154.txt blk02155.txt blk02156.txt blk02157.txt blk02158.txt blk02159.txt blk02160.txt blk02161.txt blk02162.txt blk02163.txt blk02164.txt blk02165.txt blk02166.txt blk02167.txt blk02168.txt blk02169.txt blk02170.txt blk02171.txt blk02172.txt blk02173.txt blk02174.txt blk02175.txt blk02176.txt blk02177.txt blk02178.txt blk02179.txt blk02180.txt blk02181.txt blk02182.txt blk02183.txt blk02184.txt blk02185.txt blk02186.txt blk02187.txt blk02188.txt blk02189.txt blk02190.txt blk02191.txt blk02192.txt blk02193.txt blk02194.txt blk02195.txt blk02196.txt blk02197.txt blk02198.txt blk02199.txt blk02200.txt blk02201.txt blk02202.txt blk02203.txt blk02204.txt blk02205.txt blk02206.txt blk02207.txt blk02208.txt blk02209.txt blk02210.txt blk02211.txt blk02212.txt blk02213.txt blk02214.txt blk02215.txt blk02216.txt blk02217.txt blk02218.txt blk02219.txt blk02220.txt blk02221.txt blk02222.txt blk02223.txt blk02224.txt blk02225.txt blk02226.txt blk02227.txt blk02228.txt blk02229.txt blk02230.txt blk02231.txt blk02232.txt blk02233.txt blk02234.txt blk02235.txt blk02236.txt blk02237.txt blk02238.txt blk02239.txt blk02240.txt blk02241.txt blk02242.txt blk02243.txt blk02244.txt blk02245.txt blk02246.txt blk02247.txt blk02248.txt blk02249.txt blk02250.txt blk02251.txt blk02252.txt blk02253.txt blk02254.txt blk02255.txt blk02256.txt blk02257.txt blk02258.txt blk02259.txt blk02260.txt blk02261.txt blk02262.txt blk02263.txt blk02264.txt blk02265.txt blk02266.txt blk02267.txt blk02268.txt blk02269.txt blk02270.txt blk02271.txt blk02272.txt blk02273.txt blk02274.txt blk02275.txt blk02276.txt blk02277.txt blk02278.txt blk02279.txt blk02280.txt blk02281.txt blk02282.txt blk02283.txt blk02284.txt blk02285.txt blk02286.txt blk02287.txt blk02288.txt blk02289.txt blk02290.txt blk02291.txt blk02292.txt blk02293.txt blk02294.txt blk02295.txt blk02296.txt blk02297.txt blk02298.txt blk02299.txt blk02300.txt blk02301.txt blk02302.txt blk02303.txt blk02304.txt blk02305.txt blk02306.txt blk02307.txt blk02308.txt blk02309.txt blk02310.txt blk02311.txt blk02312.txt blk02313.txt blk02314.txt blk02315.txt blk02316.txt blk02317.txt blk02318.txt blk02319.txt blk02320.txt blk02321.txt blk02322.txt blk02323.txt blk02324.txt blk02325.txt blk02326.txt blk02327.txt blk02328.txt blk02329.txt blk02330.txt blk02331.txt blk02332.txt blk02333.txt blk02334.txt blk02335.txt blk02336.txt blk02337.txt blk02338.txt blk02339.txt blk02340.txt blk02341.txt blk02342.txt blk02343.txt blk02344.txt blk02345.txt blk02346.txt blk02347.txt blk02348.txt blk02349.txt blk02350.txt blk02351.txt blk02352.txt blk02353.txt blk02354.txt blk02355.txt blk02356.txt blk02357.txt blk02358.txt blk02359.txt blk02360.txt blk02361.txt blk02362.txt blk02363.txt blk02364.txt blk02365.txt blk02366.txt blk02367.txt blk02368.txt blk02369.txt blk02370.txt blk02371.txt blk02372.txt blk02373.txt blk02374.txt blk02375.txt blk02376.txt blk02377.txt blk02378.txt blk02379.txt blk02380.txt blk02381.txt blk02382.txt blk02383.txt blk02384.txt blk02385.txt blk02386.txt blk02387.txt blk02388.txt blk02389.txt blk02390.txt blk02391.txt blk02392.txt blk02393.txt blk02394.txt blk02395.txt blk02396.txt blk02397.txt blk02398.txt blk02399.txt blk02400.txt blk02401.txt blk02402.txt blk02403.txt blk02404.txt blk02405.txt blk02406.txt blk02407.txt blk02408.txt blk02409.txt blk02410.txt blk02411.txt blk02412.txt blk02413.txt blk02414.txt blk02415.txt blk02416.txt blk02417.txt blk02418.txt blk02419.txt blk02420.txt blk02421.txt blk02422.txt blk02423.txt blk02424.txt blk02425.txt blk02426.txt blk02427.txt blk02428.txt blk02429.txt blk02430.txt blk02431.txt blk02432.txt blk02433.txt blk02434.txt blk02435.txt blk02436.txt blk02437.txt blk02438.txt blk02439.txt blk02440.txt blk02441.txt blk02442.txt blk02443.txt blk02444.txt blk02445.txt blk02446.txt blk02447.txt blk02448.txt blk02449.txt blk02450.txt blk02451.txt blk02452.txt blk02453.txt blk02454.txt blk02455.txt blk02456.txt blk02457.txt blk02458.txt blk02459.txt blk02460.txt blk02461.txt blk02462.txt blk02463.txt blk02464.txt blk02465.txt blk02466.txt blk02467.txt blk02468.txt blk02469.txt blk02470.txt blk02471.txt blk02472.txt blk02473.txt blk02474.txt blk02475.txt blk02476.txt blk02477.txt blk02478.txt blk02479.txt blk02480.txt blk02481.txt blk02482.txt blk02483.txt blk02484.txt blk02485.txt blk02486.txt blk02487.txt blk02488.txt blk02489.txt blk02490.txt blk02491.txt blk02492.txt blk02493.txt blk02494.txt blk02495.txt blk02496.txt blk02497.txt blk02498.txt blk02499.txt blk02500.txt blk02501.txt blk02502.txt blk02503.txt blk02504.txt blk02505.txt blk02506.txt blk02507.txt blk02508.txt blk02509.txt blk02510.txt blk02511.txt blk02512.txt blk02513.txt blk02514.txt blk02515.txt blk02516.txt blk02517.txt blk02518.txt blk02519.txt blk02520.txt blk02521.txt blk02522.txt blk02523.txt blk02524.txt blk02525.txt blk02526.txt blk02527.txt blk02528.txt blk02529.txt blk02530.txt blk02531.txt blk02532.txt blk02533.txt blk02534.txt blk02535.txt blk02536.txt blk02537.txt blk02538.txt blk02539.txt blk02540.txt blk02541.txt blk02542.txt blk02543.txt blk02544.txt blk02545.txt blk02546.txt blk02547.txt blk02548.txt blk02549.txt blk02550.txt blk02551.txt blk02552.txt blk02553.txt blk02554.txt blk02555.txt blk02556.txt blk02557.txt blk02558.txt blk02559.txt blk02560.txt blk02561.txt blk02562.txt blk02563.txt blk02564.txt blk02565.txt blk02566.txt blk02567.txt blk02568.txt blk02569.txt blk02570.txt blk02571.txt blk02572.txt blk02573.txt blk02574.txt blk02575.txt blk02576.txt blk02577.txt blk02578.txt blk02579.txt blk02580.txt blk02581.txt blk02582.txt blk02583.txt blk02584.txt blk02585.txt blk02586.txt blk02587.txt blk02588.txt blk02589.txt blk02590.txt blk02591.txt blk02592.txt blk02593.txt blk02594.txt blk02595.txt blk02596.txt blk02597.txt blk02598.txt blk02599.txt blk02600.txt blk02601.txt blk02602.txt blk02603.txt blk02604.txt blk02605.txt blk02606.txt blk02607.txt blk02608.txt blk02609.txt blk02610.txt blk02611.txt blk02612.txt blk02613.txt blk02614.txt blk02615.txt blk02616.txt blk02617.txt blk02618.txt blk02619.txt blk02620.txt blk02621.txt blk02622.txt blk02623.txt blk02624.txt blk02625.txt blk02626.txt blk02627.txt blk02628.txt blk02629.txt blk02630.txt blk02631.txt blk02632.txt blk02633.txt blk02634.txt blk02635.txt blk02636.txt blk02637.txt blk02638.txt blk02639.txt blk02640.txt blk02641.txt blk02642.txt blk02643.txt blk02644.txt blk02645.txt blk02646.txt blk02647.txt blk02648.txt blk02649.txt blk02650.txt blk02651.txt blk02652.txt blk02653.txt blk02654.txt blk02655.txt blk02656.txt blk02657.txt blk02658.txt blk02659.txt blk02660.txt blk02661.txt blk02662.txt blk02663.txt blk02664.txt blk02665.txt blk02666.txt blk02667.txt blk02668.txt blk02669.txt blk02670.txt blk02671.txt blk02672.txt blk02673.txt blk02674.txt blk02675.txt blk02676.txt blk02677.txt blk02678.txt blk02679.txt blk02680.txt blk02681.txt blk02682.txt blk02683.txt blk02684.txt blk02685.txt blk02686.txt blk02687.txt blk02688.txt blk02689.txt blk02690.txt blk02691.txt blk02692.txt blk02693.txt blk02694.txt blk02695.txt blk02696.txt blk02697.txt blk02698.txt blk02699.txt blk02700.txt blk02701.txt blk02702.txt blk02703.txt blk02704.txt blk02705.txt blk02706.txt blk02707.txt blk02708.txt blk02709.txt blk02710.txt blk02711.txt blk02712.txt blk02713.txt blk02714.txt blk02715.txt blk02716.txt blk02717.txt blk02718.txt blk02719.txt blk02720.txt blk02721.txt blk02722.txt blk02723.txt blk02724.txt blk02725.txt blk02726.txt blk02727.txt blk02728.txt blk02729.txt blk02730.txt blk02731.txt blk02732.txt blk02733.txt blk02734.txt blk02735.txt blk02736.txt blk02737.txt blk02738.txt blk02739.txt blk02740.txt blk02741.txt blk02742.txt blk02743.txt blk02744.txt blk02745.txt blk02746.txt blk02747.txt blk02748.txt blk02749.txt blk02750.txt blk02751.txt blk02752.txt blk02753.txt blk02754.txt blk02755.txt blk02756.txt blk02757.txt blk02758.txt blk02759.txt blk02760.txt blk02761.txt blk02762.txt blk02763.txt blk02764.txt blk02765.txt blk02766.txt blk02767.txt blk02768.txt blk02769.txt blk02770.txt blk02771.txt blk02772.txt blk02773.txt blk02774.txt blk02775.txt blk02776.txt blk02777.txt blk02778.txt blk02779.txt blk02780.txt blk02781.txt blk02782.txt blk02783.txt blk02784.txt blk02785.txt blk02786.txt blk02787.txt blk02788.txt blk02789.txt blk02790.txt blk02791.txt blk02792.txt blk02793.txt blk02794.txt blk02795.txt blk02796.txt blk02797.txt blk02798.txt blk02799.txt blk02800.txt blk02801.txt blk02802.txt blk02803.txt blk02804.txt blk02805.txt blk02806.txt blk02807.txt blk02808.txt blk02809.txt blk02810.txt blk02811.txt blk02812.txt blk02813.txt blk02814.txt blk02815.txt blk02816.txt blk02817.txt blk02818.txt blk02819.txt blk02820.txt blk02821.txt blk02822.txt blk02823.txt blk02824.txt blk02825.txt blk02826.txt blk02827.txt blk02828.txt blk02829.txt blk02830.txt blk02831.txt blk02832.txt blk02833.txt blk02834.txt blk02835.txt blk02836.txt blk02837.txt blk02838.txt blk02839.txt blk02840.txt blk02841.txt blk02842.txt blk02843.txt blk02844.txt blk02845.txt blk02846.txt blk02847.txt blk02848.txt blk02849.txt blk02850.txt blk02851.txt blk02852.txt blk02853.txt blk02854.txt blk02855.txt blk02856.txt blk02857.txt blk02858.txt blk02859.txt blk02860.txt blk02861.txt blk02862.txt blk02863.txt blk02864.txt blk02865.txt blk02866.txt blk02867.txt blk02868.txt blk02869.txt blk02870.txt blk02871.txt blk02872.txt blk02873.txt blk02874.txt blk02875.txt blk02876.txt blk02877.txt blk02878.txt blk02879.txt blk02880.txt blk02881.txt blk02882.txt blk02883.txt blk02884.txt blk02885.txt blk02886.txt blk02887.txt blk02888.txt blk02889.txt blk02890.txt blk02891.txt blk02892.txt blk02893.txt blk02894.txt blk02895.txt blk02896.txt blk02897.txt blk02898.txt blk02899.txt blk02900.txt blk02901.txt blk02902.txt blk02903.txt blk02904.txt blk02905.txt blk02906.txt blk02907.txt blk02908.txt blk02909.txt blk02910.txt blk02911.txt blk02912.txt blk02913.txt blk02914.txt blk02915.txt blk02916.txt blk02917.txt blk02918.txt blk02919.txt blk02920.txt blk02921.txt blk02922.txt blk02923.txt blk02924.txt blk02925.txt blk02926.txt blk02927.txt blk02928.txt blk02929.txt blk02930.txt blk02931.txt blk02932.txt blk02933.txt blk02934.txt blk02935.txt blk02936.txt blk02937.txt blk02938.txt blk02939.txt blk02940.txt blk02941.txt blk02942.txt blk02943.txt blk02944.txt blk02945.txt blk02946.txt blk02947.txt blk02948.txt blk02949.txt blk02950.txt blk02951.txt blk02952.txt blk02953.txt blk02954.txt blk02955.txt blk02956.txt blk02957.txt blk02958.txt blk02959.txt blk02960.txt blk02961.txt blk02962.txt blk02963.txt blk02964.txt blk02965.txt blk02966.txt blk02967.txt blk02968.txt blk02969.txt blk02970.txt blk02971.txt blk02972.txt blk02973.txt blk02974.txt blk02975.txt blk02976.txt blk02977.txt blk02978.txt blk02979.txt blk02980.txt blk02981.txt blk02982.txt blk02983.txt blk02984.txt blk02985.txt blk02986.txt blk02987.txt blk02988.txt blk02989.txt blk02990.txt blk02991.txt blk02992.txt blk02993.txt blk02994.txt blk02995.txt blk02996.txt blk02997.txt blk02998.txt blk02999.txt blk03000.txt blk03001.txt blk03002.txt blk03003.txt blk03004.txt blk03005.txt blk03006.txt blk03007.txt blk03008.txt blk03009.txt blk03010.txt blk03011.txt blk03012.txt blk03013.txt blk03014.txt blk03015.txt blk03016.txt blk03017.txt blk03018.txt blk03019.txt blk03020.txt blk03021.txt blk03022.txt blk03023.txt blk03024.txt blk03025.txt blk03026.txt blk03027.txt blk03028.txt blk03029.txt blk03030.txt blk03031.txt blk03032.txt blk03033.txt blk03034.txt blk03035.txt blk03036.txt blk03037.txt blk03038.txt blk03039.txt blk03040.txt blk03041.txt blk03042.txt blk03043.txt blk03044.txt blk03045.txt blk03046.txt blk03047.txt blk03048.txt blk03049.txt blk03050.txt blk03051.txt blk03052.txt blk03053.txt blk03054.txt blk03055.txt blk03056.txt blk03057.txt blk03058.txt blk03059.txt blk03060.txt blk03061.txt blk03062.txt blk03063.txt blk03064.txt blk03065.txt blk03066.txt blk03067.txt blk03068.txt blk03069.txt blk03070.txt blk03071.txt blk03072.txt blk03073.txt blk03074.txt blk03075.txt blk03076.txt blk03077.txt blk03078.txt blk03079.txt blk03080.txt blk03081.txt blk03082.txt blk03083.txt blk03084.txt blk03085.txt blk03086.txt blk03087.txt blk03088.txt blk03089.txt blk03090.txt blk03091.txt blk03092.txt blk03093.txt blk03094.txt blk03095.txt blk03096.txt blk03097.txt blk03098.txt blk03099.txt blk03100.txt blk03101.txt blk03102.txt blk03103.txt blk03104.txt blk03105.txt blk03106.txt blk03107.txt blk03108.txt blk03109.txt blk03110.txt blk03111.txt blk03112.txt blk03113.txt blk03114.txt blk03115.txt blk03116.txt blk03117.txt blk03118.txt blk03119.txt blk03120.txt blk03121.txt blk03122.txt blk03123.txt blk03124.txt blk03125.txt blk03126.txt blk03127.txt blk03128.txt blk03129.txt blk03130.txt blk03131.txt blk03132.txt blk03133.txt blk03134.txt blk03135.txt blk03136.txt blk03137.txt blk03138.txt blk03139.txt blk03140.txt blk03141.txt blk03142.txt blk03143.txt blk03144.txt blk03145.txt blk03146.txt blk03147.txt blk03148.txt blk03149.txt blk03150.txt blk03151.txt blk03152.txt blk03153.txt blk03154.txt blk03155.txt blk03156.txt blk03157.txt blk03158.txt blk03159.txt blk03160.txt blk03161.txt blk03162.txt blk03163.txt blk03164.txt blk03165.txt blk03166.txt blk03167.txt blk03168.txt blk03169.txt blk03170.txt blk03171.txt blk03172.txt blk03173.txt blk03174.txt blk03175.txt blk03176.txt blk03177.txt blk03178.txt blk03179.txt blk03180.txt blk03181.txt blk03182.txt blk03183.txt blk03184.txt blk03185.txt blk03186.txt blk03187.txt blk03188.txt blk03189.txt blk03190.txt blk03191.txt blk03192.txt blk03193.txt blk03194.txt blk03195.txt blk03196.txt blk03197.txt blk03198.txt blk03199.txt blk03200.txt blk03201.txt blk03202.txt blk03203.txt blk03204.txt blk03205.txt blk03206.txt blk03207.txt blk03208.txt blk03209.txt blk03210.txt blk03211.txt blk03212.txt blk03213.txt blk03214.txt blk03215.txt blk03216.txt blk03217.txt blk03218.txt blk03219.txt blk03220.txt blk03221.txt blk03222.txt blk03223.txt blk03224.txt blk03225.txt blk03226.txt blk03227.txt blk03228.txt blk03229.txt blk03230.txt blk03231.txt blk03232.txt blk03233.txt blk03234.txt blk03235.txt blk03236.txt blk03237.txt blk03238.txt blk03239.txt blk03240.txt blk03241.txt blk03242.txt blk03243.txt blk03244.txt blk03245.txt blk03246.txt blk03247.txt blk03248.txt blk03249.txt blk03250.txt blk03251.txt blk03252.txt blk03253.txt blk03254.txt blk03255.txt blk03256.txt blk03257.txt blk03258.txt blk03259.txt blk03260.txt blk03261.txt blk03262.txt blk03263.txt blk03264.txt blk03265.txt blk03266.txt blk03267.txt blk03268.txt blk03269.txt blk03270.txt blk03271.txt blk03272.txt blk03273.txt blk03274.txt blk03275.txt blk03276.txt blk03277.txt blk03278.txt blk03279.txt blk03280.txt blk03281.txt blk03282.txt blk03283.txt blk03284.txt blk03285.txt blk03286.txt blk03287.txt blk03288.txt blk03289.txt blk03290.txt blk03291.txt blk03292.txt blk03293.txt blk03294.txt blk03295.txt blk03296.txt blk03297.txt blk03298.txt blk03299.txt blk03300.txt blk03301.txt blk03302.txt blk03303.txt blk03304.txt blk03305.txt blk03306.txt blk03307.txt blk03308.txt blk03309.txt blk03310.txt blk03311.txt blk03312.txt blk03313.txt blk03314.txt blk03315.txt blk03316.txt blk03317.txt blk03318.txt blk03319.txt blk03320.txt blk03321.txt blk03322.txt blk03323.txt blk03324.txt blk03325.txt blk03326.txt blk03327.txt blk03328.txt blk03329.txt blk03330.txt blk03331.txt blk03332.txt blk03333.txt blk03334.txt blk03335.txt blk03336.txt blk03337.txt blk03338.txt blk03339.txt blk03340.txt blk03341.txt blk03342.txt blk03343.txt blk03344.txt blk03345.txt blk03346.txt blk03347.txt blk03348.txt blk03349.txt blk03350.txt blk03351.txt blk03352.txt blk03353.txt blk03354.txt blk03355.txt blk03356.txt blk03357.txt blk03358.txt blk03359.txt blk03360.txt blk03361.txt blk03362.txt blk03363.txt blk03364.txt blk03365.txt blk03366.txt blk03367.txt blk03368.txt blk03369.txt blk03370.txt blk03371.txt blk03372.txt blk03373.txt blk03374.txt blk03375.txt blk03376.txt blk03377.txt blk03378.txt blk03379.txt blk03380.txt blk03381.txt blk03382.txt blk03383.txt blk03384.txt blk03385.txt blk03386.txt blk03387.txt blk03388.txt blk03389.txt blk03390.txt blk03391.txt blk03392.txt blk03393.txt blk03394.txt blk03395.txt blk03396.txt blk03397.txt blk03398.txt blk03399.txt blk03400.txt blk03401.txt blk03402.txt blk03403.txt blk03404.txt blk03405.txt blk03406.txt blk03407.txt blk03408.txt blk03409.txt blk03410.txt blk03411.txt blk03412.txt blk03413.txt blk03414.txt blk03415.txt blk03416.txt blk03417.txt blk03418.txt blk03419.txt blk03420.txt blk03421.txt blk03422.txt blk03423.txt blk03424.txt blk03425.txt blk03426.txt blk03427.txt blk03428.txt blk03429.txt blk03430.txt blk03431.txt blk03432.txt blk03433.txt blk03434.txt blk03435.txt blk03436.txt blk03437.txt blk03438.txt blk03439.txt blk03440.txt blk03441.txt blk03442.txt blk03443.txt blk03444.txt blk03445.txt blk03446.txt blk03447.txt blk03448.txt blk03449.txt blk03450.txt blk03451.txt blk03452.txt blk03453.txt blk03454.txt blk03455.txt blk03456.txt blk03457.txt blk03458.txt blk03459.txt blk03460.txt blk03461.txt blk03462.txt blk03463.txt blk03464.txt blk03465.txt blk03466.txt blk03467.txt blk03468.txt blk03469.txt blk03470.txt blk03471.txt blk03472.txt blk03473.txt blk03474.txt blk03475.txt blk03476.txt blk03477.txt blk03478.txt blk03479.txt blk03480.txt blk03481.txt blk03482.txt blk03483.txt blk03484.txt blk03485.txt blk03486.txt blk03487.txt blk03488.txt blk03489.txt blk03490.txt blk03491.txt blk03492.txt blk03493.txt blk03494.txt blk03495.txt blk03496.txt blk03497.txt blk03498.txt blk03499.txt blk03500.txt blk03501.txt blk03502.txt blk03503.txt blk03504.txt blk03505.txt blk03506.txt blk03507.txt blk03508.txt blk03509.txt blk03510.txt blk03511.txt blk03512.txt blk03513.txt blk03514.txt blk03515.txt blk03516.txt blk03517.txt blk03518.txt blk03519.txt blk03520.txt blk03521.txt blk03522.txt blk03523.txt blk03524.txt blk03525.txt blk03526.txt blk03527.txt blk03528.txt blk03529.txt blk03530.txt blk03531.txt blk03532.txt blk03533.txt blk03534.txt blk03535.txt blk03536.txt blk03537.txt blk03538.txt blk03539.txt blk03540.txt blk03541.txt blk03542.txt blk03543.txt blk03544.txt blk03545.txt blk03546.txt blk03547.txt blk03548.txt blk03549.txt blk03550.txt blk03551.txt blk03552.txt blk03553.txt blk03554.txt blk03555.txt blk03556.txt blk03557.txt blk03558.txt blk03559.txt blk03560.txt blk03561.txt blk03562.txt blk03563.txt blk03564.txt blk03565.txt blk03566.txt blk03567.txt blk03568.txt blk03569.txt blk03570.txt blk03571.txt blk03572.txt blk03573.txt blk03574.txt blk03575.txt blk03576.txt blk03577.txt blk03578.txt blk03579.txt blk03580.txt blk03581.txt blk03582.txt blk03583.txt blk03584.txt blk03585.txt blk03586.txt blk03587.txt blk03588.txt blk03589.txt blk03590.txt blk03591.txt blk03592.txt blk03593.txt blk03594.txt blk03595.txt blk03596.txt blk03597.txt blk03598.txt blk03599.txt blk03600.txt blk03601.txt blk03602.txt blk03603.txt blk03604.txt blk03605.txt blk03606.txt blk03607.txt blk03608.txt blk03609.txt blk03610.txt blk03611.txt blk03612.txt blk03613.txt blk03614.txt blk03615.txt blk03616.txt blk03617.txt blk03618.txt blk03619.txt blk03620.txt blk03621.txt blk03622.txt blk03623.txt blk03624.txt blk03625.txt blk03626.txt blk03627.txt blk03628.txt blk03629.txt blk03630.txt blk03631.txt blk03632.txt blk03633.txt blk03634.txt blk03635.txt blk03636.txt blk03637.txt blk03638.txt blk03639.txt blk03640.txt blk03641.txt blk03642.txt blk03643.txt blk03644.txt blk03645.txt blk03646.txt blk03647.txt blk03648.txt blk03649.txt blk03650.txt blk03651.txt blk03652.txt blk03653.txt blk03654.txt blk03655.txt blk03656.txt blk03657.txt blk03658.txt blk03659.txt blk03660.txt blk03661.txt blk03662.txt blk03663.txt blk03664.txt blk03665.txt blk03666.txt blk03667.txt blk03668.txt blk03669.txt blk03670.txt blk03671.txt blk03672.txt blk03673.txt blk03674.txt blk03675.txt blk03676.txt blk03677.txt blk03678.txt blk03679.txt blk03680.txt blk03681.txt blk03682.txt blk03683.txt blk03684.txt blk03685.txt blk03686.txt blk03687.txt blk03688.txt blk03689.txt blk03690.txt blk03691.txt blk03692.txt blk03693.txt blk03694.txt blk03695.txt blk03696.txt blk03697.txt blk03698.txt blk03699.txt blk03700.txt blk03701.txt blk03702.txt blk03703.txt blk03704.txt blk03705.txt blk03706.txt blk03707.txt blk03708.txt blk03709.txt blk03710.txt blk03711.txt blk03712.txt blk03713.txt blk03714.txt blk03715.txt blk03716.txt blk03717.txt blk03718.txt blk03719.txt blk03720.txt blk03721.txt blk03722.txt blk03723.txt blk03724.txt blk03725.txt blk03726.txt blk03727.txt blk03728.txt blk03729.txt blk03730.txt blk03731.txt blk03732.txt blk03733.txt blk03734.txt blk03735.txt blk03736.txt blk03737.txt blk03738.txt blk03739.txt blk03740.txt blk03741.txt blk03742.txt blk03743.txt blk03744.txt blk03745.txt blk03746.txt blk03747.txt blk03748.txt blk03749.txt blk03750.txt blk03751.txt blk03752.txt blk03753.txt blk03754.txt blk03755.txt blk03756.txt blk03757.txt blk03758.txt blk03759.txt blk03760.txt blk03761.txt blk03762.txt blk03763.txt blk03764.txt blk03765.txt blk03766.txt blk03767.txt blk03768.txt blk03769.txt blk03770.txt blk03771.txt blk03772.txt blk03773.txt blk03774.txt blk03775.txt blk03776.txt blk03777.txt blk03778.txt blk03779.txt blk03780.txt blk03781.txt blk03782.txt blk03783.txt blk03784.txt blk03785.txt blk03786.txt blk03787.txt blk03788.txt blk03789.txt blk03790.txt blk03791.txt blk03792.txt blk03793.txt blk03794.txt blk03795.txt blk03796.txt blk03797.txt blk03798.txt blk03799.txt blk03800.txt blk03801.txt blk03802.txt blk03803.txt blk03804.txt blk03805.txt blk03806.txt blk03807.txt blk03808.txt blk03809.txt blk03810.txt blk03811.txt blk03812.txt blk03813.txt blk03814.txt blk03815.txt blk03816.txt blk03817.txt blk03818.txt blk03819.txt blk03820.txt blk03821.txt blk03822.txt blk03823.txt blk03824.txt blk03825.txt blk03826.txt blk03827.txt blk03828.txt blk03829.txt blk03830.txt blk03831.txt blk03832.txt blk03833.txt blk03834.txt blk03835.txt blk03836.txt blk03837.txt blk03838.txt blk03839.txt blk03840.txt blk03841.txt blk03842.txt blk03843.txt blk03844.txt blk03845.txt blk03846.txt blk03847.txt blk03848.txt blk03849.txt blk03850.txt blk03851.txt blk03852.txt blk03853.txt blk03854.txt blk03855.txt blk03856.txt blk03857.txt blk03858.txt blk03859.txt blk03860.txt blk03861.txt blk03862.txt blk03863.txt blk03864.txt blk03865.txt blk03866.txt blk03867.txt blk03868.txt blk03869.txt blk03870.txt blk03871.txt blk03872.txt blk03873.txt blk03874.txt blk03875.txt blk03876.txt blk03877.txt blk03878.txt blk03879.txt blk03880.txt blk03881.txt blk03882.txt blk03883.txt blk03884.txt blk03885.txt blk03886.txt blk03887.txt blk03888.txt blk03889.txt blk03890.txt blk03891.txt blk03892.txt blk03893.txt blk03894.txt blk03895.txt blk03896.txt blk03897.txt blk03898.txt blk03899.txt blk03900.txt blk03901.txt blk03902.txt blk03903.txt blk03904.txt blk03905.txt blk03906.txt blk03907.txt blk03908.txt blk03909.txt blk03910.txt blk03911.txt blk03912.txt blk03913.txt blk03914.txt blk03915.txt blk03916.txt blk03917.txt blk03918.txt blk03919.txt blk03920.txt blk03921.txt blk03922.txt blk03923.txt blk03924.txt blk03925.txt blk03926.txt blk03927.txt blk03928.txt blk03929.txt blk03930.txt blk03931.txt blk03932.txt blk03933.txt blk03934.txt blk03935.txt blk03936.txt blk03937.txt blk03938.txt blk03939.txt blk03940.txt blk03941.txt blk03942.txt blk03943.txt blk03944.txt blk03945.txt blk03946.txt blk03947.txt blk03948.txt blk03949.txt blk03950.txt blk03951.txt blk03952.txt blk03953.txt blk03954.txt blk03955.txt blk03956.txt blk03957.txt blk03958.txt blk03959.txt blk03960.txt blk03961.txt blk03962.txt blk03963.txt blk03964.txt blk03965.txt blk03966.txt blk03967.txt blk03968.txt blk03969.txt blk03970.txt blk03971.txt blk03972.txt blk03973.txt blk03974.txt blk03975.txt blk03976.txt blk03977.txt blk03978.txt blk03979.txt blk03980.txt blk03981.txt blk03982.txt blk03983.txt blk03984.txt blk03985.txt blk03986.txt blk03987.txt blk03988.txt blk03989.txt blk03990.txt blk03991.txt blk03992.txt blk03993.txt blk03994.txt blk03995.txt blk03996.txt blk03997.txt blk03998.txt blk03999.txt blk04000.txt blk04001.txt blk04002.txt blk04003.txt blk04004.txt blk04005.txt blk04006.txt blk04007.txt blk04008.txt blk04009.txt blk04010.txt blk04011.txt blk04012.txt blk04013.txt blk04014.txt blk04015.txt blk04016.txt blk04017.txt blk04018.txt blk04019.txt blk04020.txt blk04021.txt blk04022.txt blk04023.txt blk04024.txt blk04025.txt blk04026.txt blk04027.txt blk04028.txt blk04029.txt blk04030.txt blk04031.txt blk04032.txt blk04033.txt blk04034.txt blk04035.txt blk04036.txt blk04037.txt blk04038.txt blk04039.txt blk04040.txt blk04041.txt blk04042.txt blk04043.txt blk04044.txt blk04045.txt blk04046.txt blk04047.txt blk04048.txt blk04049.txt blk04050.txt blk04051.txt blk04052.txt blk04053.txt blk04054.txt blk04055.txt blk04056.txt blk04057.txt blk04058.txt blk04059.txt blk04060.txt blk04061.txt blk04062.txt blk04063.txt blk04064.txt blk04065.txt blk04066.txt blk04067.txt blk04068.txt blk04069.txt blk04070.txt blk04071.txt blk04072.txt blk04073.txt blk04074.txt blk04075.txt blk04076.txt blk04077.txt blk04078.txt blk04079.txt blk04080.txt blk04081.txt blk04082.txt blk04083.txt blk04084.txt blk04085.txt blk04086.txt blk04087.txt blk04088.txt blk04089.txt blk04090.txt blk04091.txt blk04092.txt blk04093.txt blk04094.txt blk04095.txt blk04096.txt blk04097.txt blk04098.txt blk04099.txt blk04100.txt blk04101.txt blk04102.txt blk04103.txt blk04104.txt blk04105.txt blk04106.txt blk04107.txt blk04108.txt blk04109.txt blk04110.txt blk04111.txt blk04112.txt blk04113.txt blk04114.txt blk04115.txt blk04116.txt blk04117.txt blk04118.txt blk04119.txt blk04120.txt blk04121.txt blk04122.txt blk04123.txt blk04124.txt blk04125.txt blk04126.txt blk04127.txt blk04128.txt blk04129.txt blk04130.txt blk04131.txt blk04132.txt blk04133.txt blk04134.txt blk04135.txt blk04136.txt blk04137.txt blk04138.txt blk04139.txt blk04140.txt blk04141.txt blk04142.txt blk04143.txt blk04144.txt blk04145.txt blk04146.txt blk04147.txt blk04148.txt blk04149.txt blk04150.txt blk04151.txt blk04152.txt blk04153.txt blk04154.txt blk04155.txt blk04156.txt blk04157.txt blk04158.txt blk04159.txt blk04160.txt blk04161.txt blk04162.txt blk04163.txt blk04164.txt blk04165.txt blk04166.txt blk04167.txt blk04168.txt blk04169.txt blk04170.txt blk04171.txt blk04172.txt blk04173.txt blk04174.txt blk04175.txt Show all files
Advertisement: