From 57b25ff7b10f9c792be7cc523db2a37c82a224c8 Mon Sep 17 00:00:00 2001 From: tropicananass Date: Wed, 6 Feb 2019 09:03:52 +0100 Subject: [PATCH] starting final code : Keyboard class --- .pioenvs/.sconsign.dblite | Bin 101200 -> 93974 bytes .pioenvs/micro/firmware.elf | Bin 26900 -> 27324 bytes .pioenvs/micro/firmware.hex | 995 ++++++++++++++++++------------------ .pioenvs/structure.hash | 6 +- lib/Keyboard.cpp | 0 lib/Keyboard.h | 15 + src/main.cpp | 34 +- src/mainTest.cpp | 182 +++++++ 8 files changed, 731 insertions(+), 501 deletions(-) create mode 100644 lib/Keyboard.cpp create mode 100644 lib/Keyboard.h create mode 100644 src/mainTest.cpp diff --git a/.pioenvs/.sconsign.dblite b/.pioenvs/.sconsign.dblite index 8021e246c3bd97cc17bf6c85f6e5a56183ffcea1..8eb84ccee6633c933902d72971efbd866d96ccf1 100644 GIT binary patch literal 93974 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 literal 101200 zcmeEv2YejIb-t})Q4}dsy-^ZHQ4%B;Y%ii333d@AMdH+9Xe$>I2yhml`pU9ZE!&c8 zx%Y0zy>}DZaZBttiS5`<;`IObW_Ryq=MJ|7cud0o&n~wE?(W++GjG}}-^}u4=efa=&td(WnmpYdD~oeXfQJ3?;RbR8XX@QnLFX%7zI;v*E!6d_{eC;j=21g#^K|mod~0q>vzswKROmsc@yr> zWk)8Q%G`_{)z>(3YIJurIpyu%!{%*%%MaIHpAf0Tg2~ZcY<^?0)P#y^!;ILUS~<#>&cstrA-IqKsYK&haG~yHw`bGjz?3 zqsR~3Q1>Fs@nTgAJu5U+OR?;LT?UR9%B{OPV{16a1H|!K;&@%j@%n<}4aD(A;&|`M z#_22fj7~)3H&6EO9t~1H4S2EHzivFh*hz=pIlma`M-~6FGT5`{ARFOF{74?*f$y1W z;Khy;dycKTZe)aNq-#nLE1s|0tr33tzaNAHe7?|ED<{}lg8VJX*xBv!w=`qtko+yY zdMBR?X>_}$?ijHh`>JO$8EZ!5>bhqes%f%wA%7p3Cyki%GS zECr3kie2E5&@St1tenxS30vOSI_(>Kyx=BpS2Wolr{3=9mWlMH6jRYbZP`tu$X!wDD*cjoe_o6aZK{*-aS(zSc~J)T_B+}E}kU`stpLJjmESDX42jp z(J;4oX|yv!n~j06))?#w;l|E2tG90gLA`NBPY7N$ka#H;+b9K5qetR))y}DObewv` z>`}e36YGbp;fqqsJj z3_$V1#+F&OXLW|zjt<9ui>+#G?;SnQAER1d)VQpk=G4T*Sde(5<14(W-O(7$fe@O0 zTvzN`wv1gI(U#$oa?5aOvZ%4xj4aJEJk`_#*A5*&@NM6)y#U)$NB3hBI}z;JR`&_p z#WfilparE|dTBv1gDAHAKyxFhubojTzfSbpG>sKfk7= z6S$V`S#A`$e&k!O6RC===!UB4o}(Cs%Ql0~>#@NX__;h|TjY8jzmu-~=9FhpxRY$xbkb4G>EP{tZWM{H-$@IGorjOF(77sOSIcxFLkVpw)-=b7jMy=(&`~v84Se0O z(O(X`26XnGT%mJq#;%j;D50yVfo+Eogi&(?-LW0VF+)=|4BOXCc0K6)_?QZv;fy_5 zrsKGls)snC7{2D{n(w);rx;#@s`-HuX>0^^-gj<=&J7v!WI7R!JUA$tmah1rZ8|2} z%5W9cuyrep;(+;}^W|j~Izh%lq9e+o?&EA?E7)~gQLKil1IY=g^DxFt--=lTIuBR* zi8HoK<|lTwI5trO-3biawe`SuLdVcF$hD;h21`KaEhkm@8O_*@GMxZtUdWK5Mw(&; zKE|09sF8#7oo(T$r?HzrXD5!5!nhdA*lwAQZQHu3xu&7{p<-HbWa?TF<6wx5r4lP9 z8wZ`=(2=V(-X}7)N2U|Rj_IlBbw3PM)wUtos)Dn*XZWsxxr8y$dF-ePoit;UG94w3 zs6jkEz`PSeXnargEyIWvJ2ouWW>cVJSNYkSv73pG`i6(DE$0ozR~$n}U)zD{SPJ?a zbYe9yalni%HDb3U3pQ{6@VqDN^`pjNbV6shHr%BHS6{t&#l+&JL#uaeSU0qIMX;Fu zY5kVf8+M{JP!vW61_rhb;(v>m?%dYcF|ckYyN!-(w+oGQN5<|XrdpG0a&)qQPAXn; zsOz709VoRtSSv?1tyR&Gq~sZT*Aw|MuW=-4fN&41$syC9@(!)j;~dsek8?Qbah{a1 zBP2b}oR%Kv$fQZTvmR$|!l@jUv3V6e&iu`Xe*V5|5+arBagJ^*jv@>w3v;LEMyifE z(f2(+QVk6w7Xu<-3kp5X!oih`TF1O&I`bgtagNQII4)zyi+Y?BhS`at9_OTCcCw(y zIc1og${DQaaZVd%i&}b|)7$hoXAHA5t9qQp!|W{T=gF0g743(2+l$-OcpIa!Jy4qs zd50B;`Gp&ABh^ndIXX!Puay(i_jOaRR;ud$FX-&fD$c1botY{hyQM@kH> z6efrmGpXT*meo4Z4=%z|+#8+UhT35!D^rV}=&!avJJFNnrmwNC7sL~GN)I-Lr$&Mp zlfcqc2%#)AludPGQyqCGc4?*&TCS?Zs_v_5WJeCxAw4#H9qYF48*H(xu{>*-6pyX7 zpp(im4zPwm!>C!bFN&cRQ?T+XfuaUb+1ff+IWBo(Wi7}Rjx(IY``YI4^Y>>Czo0sV zmywFIRnrw2TS*gosfwoEa_B%^sc4ZGU_a^ju5CNIqbmkl(114DWc^sJ?m$iXoZmQF zk|>497aCnPV_Lh;C)aI?A5BV<6@9IlF^g+->;w~j;4v~hvf&#_4 zt!R$03JnX^go9`mTDEVi&>C<2rpcj=ONupUF8%%g$?D?-E>26>zZ)i28&82@1V5@8 zXc5kUnkTG2Az0XvMde%=H8m#bSltvYLFyy~=%*;8uNi#4nz?9^E-eyzIg zjK-icoghWsX^ksqT%Qg$oc=Z&6!vV__JneWuYvE=yJ+vq9lX4?=s>Bz-OvZ4;Pi^8 z=}4Dd43jA-wu=dR1S-+-U8HzAa~Az2(HtCTfY9Q`)iZ9@l2B>0mi`_Y81p7cXMNTz zWP#J#L<)4MJzytT8~J;8RsRu`mvqrFcWqLEavRaJXCVSrB9r~OTD|(O;CE>k+s3}~ zi!)*y-E$i2XV-hVSHWa4%)sHfU9_!TIV>ry**i5gF+S))zYdErJFhYGtvat>NpJ1w zuF)xOq3COD+P_K`qy`4S*ZKQf&w|(%Zz@PY?}Em*{bO#!lYrTH*{O>WsNTt;?A zQ}E!}MFN-?z}o+;iEf{Sg!gbcnKj*4V4|D37?ywl8%h!DNLT29Y-(aAOv$S4l%S zb&(NodMosF%v5HX%B)2OacjnwaQi@6W}O~c{m^f@W!CMoYIc{nszt40nZ2+}7tDxg z(=xlNNA+%6W-scp`gUirX_?JEbtJRw#XVxQX_mdDv2)si*`3j92W=nQyK5JjDDxqE z>3(}aT(SLqWXx%D0E;+Q(Tx;TsVH(nr6T{ z=lh0cS*8+mtM2QJ3Z2rbE7GZT%p|KWcg$?@Q(ARJI<@YSWYy*Fk}W!=Rac}_>(okC zUGCJ{qElLRMLK@yM!FHgA{Z-%3Cl7ZC}8A;)2SN5TIh4D?yXg8b!pWV>FBU?JFsHd z5sY=J4Uc3e)T|Ixlo*O{n_G34oKk7$(yA-cfh{?Xqd1IX4aRQOS5Q!OJA_L|0N0L? zTXoYzDs)P#u1F{FVHOUc!gt^m?P%}>iCoo%i(m{NO0rgyRriLYD|AY$u1H7G9UtNX zb+!h7Rv*40F>D18BTIvwPO-UFcWKqzp|t9Xbl`xZnvo4(4i_#3@WOE5uuXP!=vuYN z%&odk)jC{SbwxTJhNojHI;7cC6<;?aRdW?IvkI3C-BZb`JNTh0KeuM=Hd$|vufiw5 zwG^1+9XIklEsWGCRy19;4R8rd?t;PZSG_?>gRaPr=Am)n2x1w!5#Vjpci=XGCIWa(m2c17wghN_qrzB(J1L zGxltmANVDh8U|Gy!nGcj9tXZiQB0#vb>JJKu;+lz@+Vd5^;pK9E7P$RSh^Jxz8|{g zg>bV`Y#*j?{EO~uwx+V@fzAu6^7H(Ry+Eb|Q>tfa4wf?brv$c#0S|{F#qn%ChNF_r zUI;p$sd`PkC}S^{>C^^QyaaS8oI+T4UYfC&5gpN6#`kp7_AyZP*s&v<{H1gYorUO( z$c5JodpYQQpgO)@k+D}29quAPkqxk~)j9{f3UtUVK;Y-q8GDUfFJDC?U~&!vgG`W4 z1dV@aM5^Z+freR@y%uynUX`EMW$g7bom$K08$d_0Y`!sLe_26=)SwUo5 z=zpw4iiP20-bpaEA@JF#@<47S`H=q;H~#o(2>0L-j=bq6CH6})OwM<19T)W zvUg_eT{4|oFS2)oj^su5o{YU$rc>)h_CC;&yvW|4u@A^}YQ4xl2s)A%*@rUrVVO>? z7uiQZNAe>3XvY4W=!oN@)|>G!Ku7Xs{8+|5F7s3CMfM5Mk-W%0nXymFbRq-paf+jw zs_IAZutVStoaHo(SqH15?XypV&Vo4=Iea{0pCLM;9M*bQein2j@5;|*?DI06TJOp) zfR5x{`NfQVNv2clUHN6uk-RIvlCiJK?NjSz_chRwyzIW7v2Vz9YQ5~f2|ALO-M2FK zZK5N}Ppuc?cR)w-Li}#Vz9;ij>#g^fpd)$feLrJAkm=NV>-`XPByYVRW$dqr&WybE ze%$8i@ss`W^!RDj)8l8u?B~J?^4A&r8{$yh>A_fxZJv(}i0_zz8mNdoq`*3ulM(%; zD(n}i>D#fw=AItMlBKh07`mgbud`$K|*_CNI{S0%&AW6ATAq2yV~i;_o^wY(%qaH>JOrcb2nrs4Duy3*$7^5OJQDi3Z&d!&a^@n^&7;kc3mPh$?TM*acmljv4c zw9+H+XO_;vZyR^%k^J6VeovI{q?BEe$Mh)v^gRAFIGv9Iae6de!RZ3J7Mw1ma?a^7 zR0OBT;##;GInydAr_;9=iu<9rmJ!Uywi{XwGH1wgE@?SK*6!I`0nD^>?~Oak|6l;~ z{EC^aC8BKKW0z}>M-;ovk4NI{m%9=kzpt^&M-(O|fy0&i9I;$`u%L)#ey|WZoMFWB zyov#9c7e*ZCl?A-<|h}C(HRFSYy0M9CK}X+=C3TA%}(uT>*b5*K{nc#w7EX3(0_Oq zw$wO?DhdT@L|FMkEkMwYhL{k+`RunR^lG%v+^v`2I{BncABj8N zEMNaEa*Xbkng7%txk#MWBMVR~ih0q2vId{tBV%LJ8hplqum+#mqXuoo=`QY3y_?qH zvks6ocu9{KZCZoR?onH|44zASN3k$?o^#*~p4~jsn#RO^Ko}_Ff6qGr2G7187(CAx z4W1VeB1@aWb2*?{S_aRR2vyJs1;*2D)v--mr@&qhv8!YNp&-u)eozuPjWSFKEiD6@ zmNC70xM?h|RfHSZR!EBQJXS$GfFKa1P7!XGJG~Y^PR3lBpISq~g`guD3RY$8BBCQI zL~9KN7lV#uD7d7+hY{)2DpqORB`H?(O;?qlTE*%B=tzpywHaF{*Q-{sx*l{S#p;HP zZItQMDpogvj-*)KoUzMgI<<<`EubSQRtGb-mFS3yv0BCIHqen2tJ^bnh0IT_Vs!`T zNQ%{+85@%6)G7`epd%>`ugut0GM!q*;nkocDGsm6*tK%|)G7|I106|mczwo(WqxWE zhff9_NpU!mu^VJMwTeRzbR@;0pRs`G%t&z_bfilK!gMh(*(_RAqM66Q+%*d??~+hm49rtz(OaCh z5UJ8R2IlTA=eMp+Dp0O|39jK!orMTgiA);<^RzDKu6^YfN15u^!16t_&?;~uWu!?S zY6eR8c5$)n%3(>V;!U2g`+79_4p89A{rk(D6u9z0?*msJoW(fmG=DVzO^B9wIt*23 zBxfdzle3Z~$*H{!^LXfgEfnJ!`xA=s%r2+T>EyKxqbNf$o;8a}w4_ndWIxWX7Qwk0xg)OOtbwa}SIk{j>MmkN!FP???aG{`%2BH#slqOU{oH=o+5K zjebxsJU@X}0q#>|x+P2;Fi8XOjP8 z>33FI)@bWn>wistXOjPQ>31g5sr6GPzccQq?7;G^2^;cG-eGd2@I2KCAWS zChs%Jo4b?uS*@8s0k_lFi9r zVhXcb>5C>(t@U3ZUo^?*xb#I6Rd=<%!sLr4`3jf5XfyH^CSNqkSGe>=6YEuL(uXga z>?{0}jQy0)H{5PN@`3nCcW4|OiqK{@RvghA|4)+z_ zp6pDnOs*07zjRF#Rok_`qvV<<`Htp}X;r>zeMf%-I+E|`Z!_{ltJ10U9sM2XNWP=L z&)6SiI<>x|{{%YRcl7#XB=MspO5y~Hz&htMgz&&`&xX6VW+7PtIidMpY`MAv2rebi zxbxW`n;wKG^PR37_>N63bxYw#xX(^#1O`buM$y5Gb#_9#KyX4^UO1tx+=^XX?u52W za6(%s@4s8DaksRLd!x1cp^?`ssc?)A&5{dL`atwLpAHd>B9kZ ztgfaf;U(1OZovGDJ(HfyNuI(_t~ODzz$>o(6KHmQ5G&58RvFlH3X> z%ZH(~JSDj;xjnffxiiU)}bLi9bYQW4e1$F#?b)*Mu?H}f#~l685pq`h|Dk|A5m1X zOKS4;OnMMgQUE0Q0<)ziU-`_;+ok~b!Au6TuhEO{KBqMu8?2;b0E@D4Q# z|InYqzfoM+wkN+z{vr8o^7~?%s|@4xEc$9wrJpXrpILe~XQ4X3BUBWal^T%t;g5?r zk`MsCgnWyLJA_-tO1hLNEf{>xk)>|`*ordJ+* zl((v+>Gai>q#5`#OHIx~RninsjbI87jj61eyj zg%~U-OoEYf8K4~Uggh6YnX93pINY~JV=p5w$8*dbruH4jjR54!2P$u-w z22NljCm{FECVp>o8*%PsPJ4$+!(Yyy-ol?o!w;fB)BaYvVo}^i*P`vVQ#oH0ub?6p z#T~eEU-P-GwL@TYCvIoy5PsX2#0I~2CBIi`17S+6aC#Mg;cET@IK2i1;`Ca&g465h zT5x(jm2*yqsR&M=j4S7~G@e5HU2W45Jdve0;J2MwkKgn8J(1bQV(icm3LYbsitYxn z8hHp-@Ku~w5JFAZ=xKnLAn~7&8$RSDBTf?4iRm#^XBS;jorJDMbw;V2SLa45qB=L> z%B!Ia2fueGzgL}ifIbgUa@!BF zarP14j0kNfFhiGM8n9K+(hM)57k(_SaCdQ%PvIm{tGiK{g$g#GeJUvOdF*NY z8~5|&ZTd}AzP!nssB%dY=ep@PQup9XWmnuwWz2UP!n+L@F*GU#BDuPa7=I0r5iv3W zAow>(@1qAX-`&sI{2X82rr$*6%bUE3Dwni<-$*?`Uv15c58}@(eL82MB9y`);`1WX zT}{8&?e4|bhKMrse)=kVV&iBDhv#6!P3H=e3Sw=oM^6hko&0*r@R5TEv3C0WQcWo! zV3-xiiW2S(BX-Ep+l$^lqWMqL#|<MR1;|~06&EECJs&|n8DRnw+;?HqgVavc5LeYYV%5e(nbo|=}xL(-y`|Z zDSeHBX*Cj+@i|={qaZ+vH=qbl5Bj;UWKwS&Qo>FXy`mQlv(wx2IPg3TO#uAG@L%>d z9r=K~7?3Nvq5@3@`WeLA+8*FxB2xn(t>hKGWSDaE9om-^NiOoNeDgPJlzaqzoE%NL zm|P_FvD83Ez8EC}GK>cAJ5$Ae1uHUCedi_%2Ny@!uD9sqIr*w|TuKQ8R2XEdp{$3n z|KV7JY%OjCz#6#uAu;E|!6$%DnZo3P#)V5)?^ulg7nw?mJSJtDlDSKFtlqk1)0)M_ zwel2DL@TLC$%R~CFb|5GpQj%zE2<+ai|WMS60lS*f|GT?1Vx^z>S#_kWC|FZ^FW~h zK`xA_US>M_=c9jTfL}TE!D1m;Se0$~#2ow!f33Zwxgv0@$w9dAFKwTvkd>kY6fH91 z41Inc-`XKf4Q3WIM1mkI?bufhmZhZ#m#{au0` z5aI;qoY-0zNZ(SVZ5C7V2zh^`^dvU6xU@(iy_Rt$`j;a`70**jl19BiDs>pd-01 ztk2j6nNDq#;6~7qq69Z(Y_m+KHoEU}(2=71wq$Hjrc)bjxD|AyXv1w8!P-{ar#4FP z3eb_F1b1X?r%b0dN^l5tq$t5g#;%m<)J6$j1v*lc;MEzshUkc{Mzv9b*Mg1|C3s!N zu9x|#jqV!;9Vxo+$r&4w>C{H|-2ggLbf1?oU#3$VwHSbo6tx&;ERx%&R;L()jua)h zD`W5tuF6ksl;9}nNKt|}X6z=JPHmLn80bh*g1a*|PIP7zB{)X0`J4deEG2=9WD*qr;6?v=jNT>%f2YgHQ+3uC2Jf zkEF>a%wCoOHvn99ez^I=3#UKa%!BCkmu$37E7PaFXs+xtIvFhQNg(Em19coY00);V zrad*zqy;PI3#I4h3$;gE;^z56J3!|Py(TJ!6a{itm{xQvRC%*W3DY9b1ZSj_Ff#{A zY6hHj4Ue@BXqa)g!%C^gkXx`5-yMQ)oi2xq=}2=+IUH7}3%+${5jQ5$%!6+)oJG)J zNvJOPcGWCofzuX3WIG4nUerZD(X~kh%GEDn3|!phyt=PMr%6C}NtbcIucUEOZ)5q= zo(11t*5yRqmBVR*Z&!D*MeP&4(xEG1YkC>SJFvg?toRWnY;Eu3c-Qp^U2T1jR#vsk-J8kLyu9bHDxbj)xW zECo{bY-T%W9P>TYWj^gb-a2by8wbXibLD==j$gI^vEx_Q?9yv=Ecl(d==?cFFwIs)ZBKk<`K^lvP!2t{`Da ztZ9w|)2m}xA(9=z4;t`+h^g=#o}EfkQ|GW%RrO%4dU+iDNb2P>JC(>!t$LY(j-*~r zGd3x=Ppx`+3Unm(^4^TyOmt?XUcLo%B=z#G9kNr^;sx9eIuc&M9T~e*mY-U@fDCjb zynwqpWT&dd3%DC}B)ov9cF0aui>g4`sif?0_jbrmRf{`7*{LMlfd@Kdr>eyrpzKr< z?!ZGGvQyRK4m=ZdB;0{#71^o8@m`BNK-sAz+<{KnscLZtC_9yeJMdVC>{PY51C*Ug z!X4<8ovIdhfU;9bxC5O~LTYgb2qi?q9q5D-Qj0r4C?OK=Kqr)tTHFCb36XFII^u)W zWq%`l5DERHBR)u7_BX-@k?;#T;e*uT7Z5&(gkR7JAEXw)fbc;i{DMySAhn>bgbyNt zx|aAL;(AeQCL??h$xK$_gNSr$&3}XsBANe6d=QaNt@)4eK_v5Ei4P*KJGEvz!UvJe zcAfA+YQcO7A4CH4?Sv0f3+7AsAW~MlPWT|T2or=4A|Xt4!Uw6vzaV@NDXU$H4-1-gGfjfB|b>Y^0yCJ?Fb)4a%1R(4^oR%LHHm%`9y2K+6f<|7O8^pK_sM#PKY42 zNEL(#A|X|jh#)gUsvtxVDXU$H2qKQJS~D~uf=FiQ9~IfDL^`!d7e59a$z7yG1QF|1 zi*!MVAQI9=i3lRnsYSXVL=Xw-;ujqdL28jM2oXfelGX_cq}EJNNFb7#zC;3%vS=hUn5vf7!G)z^>Yh0>@)4N{2pH z_@+65Ud}k!`uC({{Er@*hO8X-8MRHHJQMV&SPVFCI;I z-{Pgw$|Sn=AoE7|+q^X*&}$s#d%+Yt zr?GtLwl$jvwr#&=@rrGWM+-jiDd6X)vwM95T zV;2xpr8p2%o?;pf)I3pyoYY7PjX-SV@I%&f6$!6Z#Y75<1%t4 z%S3up=}hj?HwxsUt|R*14;&8>5o)X>${8L+aTFq< zFG7qKY<~RVC!smSn0BUSOyhXwdSBywNup%d`Ulo>!~pp07!9ND;f-Dz(g@G(rbU39 z*)V7Jo>IJM&GbdJc+sBei(2ubGt(FK;zhU7UsuOX+gFES8etvF;|4Em$Qi-f+J5`k z-d(#$u?rJh@z$!wvbqoDUeNhRE@~{Vd%Um*=FeZ;xS;O&p^5RRVCIs>in^yu<6uty z()wn)ire(ly?dt6P>{OI>MMNJpf{BiEUm6*sSG&CSz1#+1U!GVpgvIla56D*Q_lI? z`nD`x(NNEI^`yt6TM9nb*OR_wG#wq^#hY+LL#^wk{OJ*I+#8$7U)oqNp2bVy=&sQz zZ;XFxQ$yLuPwm+|HW{tliJEVo;X5Q1m+$jClgVg2#d+Hj0l5R7;k}8@-P*+?VqX^5 zT?q0mqI0)J30BqZe3ipOdPRcu({T|N;Q0y?*T=SIDoD%f>n;*c$9AY2zRh+dSTNyM z-ddc7GS;BQiHF-3D`suD?Uh)Zc(`qg&Q%$^TBcJQZhH;r@NnDYoc#*4y*9y;d!1OV z>x*0~Vjd4*EFrMXL=KMtNq`kM@Ix$xo{icoVs#ck6r9wwTa(RRd z12@X^5khE2s$~Gl#&>Oe!qge%T6yq_3Y{|7ib%(?u>tTEn_{Lz({fF~5BR3#g%KJq zK+HOFtqgvZ(4SiTL>Y^znMFEAh>&3w=A#G)S;LECL<+0;Pl(FJj;^s?ptJO%3Y{cl zqcWX91AL+n$TJHHC)bM+$&KX9HX-fBpzpC8+xfXEV`DNM+mEoFiA})H1unqbY;0>Z zU&qdlCt3E{ZqVVVR;_xC7kO9C7IrEM`pM8$&M6^4oz* zy%^8BGHiEy{jt*Y?gO3A zE~?PEKVuKbbkGQ3!bi(GfDcrVD%8f0s|SE4P!TP~9>h-fvp@ilJ(o((#W9$%sJoQyq2 zbSh^7+e7j?G_8Y;Kk5;g7#%=5(rk#8>FDgap!4J7Ds-NgvFFQlFliWoQoz7>P0Kf+ zM~xAV5aG0I0gOWlfLgy`@Rv&~bY7UT7s+%8(baQfz{(-nl4%>5I~>pg>L+qO5kA9< zLFeiv6*@1;*h^(P3dVvSYD(+@Pv4J`XP$;`92*#OmZz!gWuWs}%JSZtfnJ`mSIBfQ zK`T)lLYOf&Y)98IJ%*6S(Dx#YkeIy^be?c%h0d!o_G+1qh8h5h#M2!BaRN0@4S`dF zLm%Kd-Pm?5_8QRn`RNrpug%!&+UU3%oF_C4O?=)96`)weR_NkSv=)+7vDbsnbJ6dB zuz>cUr8~h%pQ>6M7T=JuH?|)Z|14u~q7VAbDL5$)p_PMRZkalMn7y@ey0mQ*10}HE zdK-axvA6dkL*qLdOQdh%L<}&Heq0KdnUx-UXWModx1ma)rzGSGkG-qY!-R`~he?%) zLr4*^4$ALt+dJba%u(gTf?GJAeox!+15e8bwJW`J)El3|RkEpjD3RWa9p2a z6IzSt^GVPlEFXcNPi5@WG94fV+mRo*0R~Qtsl~+JIKY0y3{=O81Cu=tI*(((2y{M^ zvCk46ahCYhQ5@sFB6&8z8iXwDt1ED<(>v z)MEY*1s=`F$d2u+hc*g|s}X?Ktld-6OrMO1wQO-d0} zT*=>9)K&PuNgpdFrrZcd0x(Bl;X4`oZnX^oNu0M3DMph5iQ{`2`%A8%`aaD%KcLgm z56hwQBN{5`K@&SJ4@lu*7)B1dQdfX2>;{4Dgjl8iiiXOM_wy|B6KcVq()+}kW?s5XNUhg5FeW#ijKEAa&v1(eVjD zO7>UXze~GD!WJEfH=tJ*!I` zO!s;>Lu@*Nvb9+mW~z9S z(lVyg&Qx?du62$xusN2TutW$YrNBRXx> z24P$bI#LkEB^hB5Rq50QPh18%Qt-s;jIELB)MES$fQ}SAu{LAtWIDCM6YD`o3ZB@I zv5hjF+Te*zpd$rOY|hx_GM(Dsi7lWb1y2lSY%9?bohxgxdA5O$6g;s#V^_%h)H?a@ z03FH6cW1_iWIDA@z75ckoP4j$*i|x}S|{JDK}T}(y(VMV%I#C@2Pd|{DR3LSpf<>3qGYu}X;Lar zCggUb#i5SWU;z}eA%J#$6V?(7-Y_OiF{BCSCZ#*~K=&eQ7ILE!G@g@O`%L1JPAr*oQ}M+Ip=!$|?fAA9gQN*^_Oy)M z)2=taw=JRy8FzBB6)DP1RFI+vNk8>;Bm!X%l@0xjJOv1QCh~uBQ@bYlR9%<*LQ}mJod_d1t;01@=c<4LFhpEZ;O%qA;R1;2h6utBuGGd4_ zpT{qO+vgFt&nIqQP;&dig4-7nw=d@0p48zOEphx3Zm5w*>B}ofD&ptW#LsI=eqLMf^E%?^^_-s*I<%gcvx#-LfrxX4p~GSX%RchVIjRX8xn@vG z5E~utOUB;HwUKY@k%pi{h1lEql<|(fSzxSm=&yeH6A61~uhYE0 zYo8{dcb7f;9-4sQAqo3!5Ch6t*G!lQA+(+s+L*(UhAPzAdualCpSUqEql3g{r#9-6 zqJwzUrI@L;j1Lki)yC0Kd=QVL+1H8eqrya18dX|fL=wP!gyz#!YpgY~6yy~#k0O%C z+9xvhNg8XSbbG+U_u)?wD6s=`KLi`O107g4kn=_XfE@c2zJ2m(l5~GMV~=y`{!FiR zRAQCbXSsZTt`BS0X%HN7-D*o+#y(#P%@;^$U~GybZjp{Cy_#w}j&H*o0DBE=J)nL3 zA_>ix`moYa%5ibE>6n&`eOc(DPQgRabOKz?i(J(Se8+O&A!67tfd#G_1Cupo6g+go zA>~?gLURCCYW#I!ivLE&zS%y-e=B3(mL|-Sa%IBIttOZ-zef}1U($s6{j!CAP)wLV zqzUs!G-1M4(IIgNtf50+5E6&9nMDsa^nWh-RWn7Md9Y=sAR}RK%oMT@FLrh9fczpx zI*jT6zh(?UB1X7(_%41G7(~*qQ(NG_0A*BudYndJ5*y-H7X=Jenja{R z1Ajx!Afys_2(~~}U-qQdBtZM+gCa@9@$G$v8HESV6qffTJa9(dFf7g3Ir4^q&g}4A z3N2(-QZz$@_7saNl&5Gy)xmM%T&!~!oiA+|&dXRI-!Pot1>0x3!)=xONj@>QWRqLw zF7T2Qq4n+S61+4W^_|hw6rA2C`^y4C2A6j+>r6+dhRX!n=Uzj`t~^k7vi=^KVVZWb zKP8huw23#4c%LzEDxOGpk52UOkDbiuQ3o~cWIfC!F)%^Vn#}5vxI=~tJ6Sh;)_rWu zKP8h$kZi7+Oaf=3SaD1bKJlIbzuf>C5gj=02RL18dgOOWCQ&Y>q+6{;6`^Dj5~@g< zOhTkni;_dhBqWra^#?GSM6JQ-CY7JJypd%Tqp4=gsM6JQ<2GEfVR$hl>614`a0CXgSRrsf55`n29Wt*i& z?0+hmL~9b_$s}l}&ks$|jX2YqeVXgeRL3knLxYDEKn9dUcg3z{%MP-`QfXRj9hMZt z7aDqite%1CSO`OLDV9NP^;h$-RG1k{oykFSTsoR}RWsC5P|2N@u_f&)xwA92l#WSa z3}tQX<2e}h6#H0F+MS!R^Y}5TkB&3v(^`E2SK6IQE-j0;5?tnTLRneCtsJ>b1%bd} zt|O2Sa!N*yD^(744MtC!!u}1{^^iOYIY*JV6>(Rd4u5EiX=Et=Afdxlc+@jya2`$K z(IOu0l1HcD(Ip-cQHQhgQPh|PD1^Z0D(+$;^LcT`E+IZ=gx_!}_{{MeDtunX6J9|9 zx`y~1AU@ZYe6B0_Tu*#%;C#+4I~_@MHwuhy;`yayMla9U7P&!d!)6E3!0OhltGvu}MDV?SU{9;!=%o8G3h9UsJtt5bA46ua?#n6ex)2 zj3QX$5RPd@&=>la3G0xLz!%3?4MAUXuW>NyYufv4M*12t9>=UpDNOnrN-10!Jc7RF z*7~)tqjN9xBr`}cEXi+Gsnct{$@2d-;PF4D=b5E6Rb9nfp3MhQdY-|aRK2OOIXLo( zUNy@~H{Hai)7aQO_H6E!p{KdY?>Ny_MUw;R6u9bc4{+5l0Oht0ishb%B1g0+Ej5XAx8 z2|AK%aEb3C_E)WIFyXsMnwF~yd>65OYBeo{?;>ehuFVLjrP@BVnwIN9N7A$mXY9!` zomx%H2R*Wl9e zwmiSnIITUo!}CsZ4IbMc*WlfBY#A3Op^1#`p-yWxHrKS!9=+7GoGG1d83^wZva9u0W~7#@Vx%;gYY=Bu)zG9EK#+D<8^n9 zN-N$SzT0)+7o<@k@QcbprlnEoVtAg(`d+OIJD(e#FX-!$CAOfxCmp@nn<6XPvL0E{ zTEUged&H^)+er59-t2IjM&p%Ttnf4GvPy7ee~%ipbp%m*RPSbRrFwvZE43am+B|~j zJ!;EVaAgk=I4UU5ILrAXbl$Aoc+Wu5|YI2oeO$6L};TG!Q!O@ z1+>vXSr{1@7}z$5|20vL*chEZb_?f^@d9O1tXT{Yr$F}t03ZU<&42@cj5sL(f+Ds} zg@+>#2|T*A1vicofRcr6EaSM7vXy8uV^h>4GeVKviXvu9> zgWbk=u!!GVp4iEXWM$G1Y$=t;Md*ovs6K0dmyl)4*d2TcxwBkCGFn0m!e9mLl?N>H zAk-t2JwpYYsvjT(1%ZWk(Gv2MzGQXcCu@@p$>wB`2LeXPmB}^9^~s3PwIv|sjLy3N zq%6<7$xZun(!GZy?OuVM`!aUFJQjgH?*VKPSY!Ztw<8lIOl z3kKhRgmiFv7Eh=K^XVgGmwc4$lFu%??>U8C@-eFRbGi9+ez}K}Ly?}x@gn7s@q&!K zP#zhzIHWHEpB#r&92qap*h~1xcxjJzPeMi5%lO!Md0&stjumM3guMcTZ8;xeE1H8& zPb>^WC&>rQE6Wyt6%Cj$0#3i_0Nm0tomjzEOZRkuf9k%Y0?5KbSR@9_Ys5X*YYP;~ ziaZ$5BPxhxR8;_Wx*q)epjE_#7XbtrNKG6?lBeIGCsA^DgfLAm z^=}ZQ{*4*?Gg<0GUxm;GrWXaVZh5hfs4NW{WBj`Xq}Z5I^0O}vmQsI0Rq6|jeL?Qu zoUymG%l%t3_BQ&mh}c()XZ&`2nd2*q^7M|3y_3t+ySfB!c0V{&4FVl1#NN&2>OC~) zu4oL;(nQkjGb1ex!h3}&T?eEmpV9>xdtWJI?Ko3X6} z0GB}WK0q?|L7J4;3O!$jNs4j?xLlwS18G}VwNQt5gn>{WH?j~*t||a_W)vp5_ZZAO zt*QM=MB?RBdsWIh1xSkDB1~W3GlAw8hp`(NMjS)lV$5$?+$qTip-$2qmxoZ68mT6p zydYp7=U|lbg!RdceToE3)JWCB!+shc#G@QfHK7FoL=?)M+ZsCt*6jqaB$kS=3KH|R0$5Vq^@acu z_ANIKI4-X40gTuHI&rM~*qix|!w6XN{*%gHJfcXOAave0Gxn|a+2Pw6`wn%U_$^PR z$y4^dGd?XhIiRNvo6c-Nt{Go%CPSNq~NjU5q*(+f!`N zO&m#q#1H&(2iWH@JhJ~rC#6pSb}20eJB1zkNU=Y!OyTJh@nox`(nARJG(D8RE|~){ zA_-gsVE+zg05{T91DP5WBPR51$4(C;N(%FE*t z-W+~UoE(x;9z;t*dL(~(E`R#?;q)jJurp5Q(e>ovbUt0_3#SgJM^l-5Yo-gRc;;}r z5LZ4W%qz5~(mpvo1`lNEvG{G1vh+B9?|6PslC_##0_h2O32nvG2?*krp2$g_#7Uwy zC!^5V){~7$tA6Pzpi07*p31+o91_=>A~ftl^1Vp0+f7fyQ)Lq_qB5jV)pZw8^g!9S zR12xWfcs#o0m6er!WGrr^mKX=l~jbB_T$RsbWT2|RtnC=se+qXs^Yg@Mm2s<=lAAqj<=lE zOu&ZR1RCHFkmCf$4$Q=c1ua<|0q_aQ-84;04ZMV!e0Zf)6O)s)I7!sRrpHhdhpwoJ zOV^?%7g9N|$to(MCKutFA5AMsw1kei7*AyBCHQTx&ZYd`W&B>XV<3e{(&2?b?FJYO zDu*Zq_@OG4bQ%!TcDfobp*m+v5H{%=PI7>gM0M8EW2nwLx}rMk=~`501C{gYY@{Np zvk6yT9qEKrE-xsuhtfRZ;;=so|fve(WG1P5~?L1n9^;WAjbAseQp%xnean}KIrDzr| zMtUVZh-u|2{uw&#e5n4Il3q=3wWgM9@Mo4@%Slv)C_w54B#j}Qm00r(8*vntq5tiIO1PfR@qi+#hxYCk?^f$8soXLdv{S8-5bLf&h!-% z*<;`tHfQ9>X-Wm#&zGZl-H74c$WJd>XoyikOCO!mT-6TnG{GFU0dNCYFG=_=`6cnKAGTsn)T zPvIo*<|I*(r_y7n$kXVGirhojq9XTFIj_ilR76GY$2DIbN=v@HBYOZ(Wa)$WZLiML z`Mrnuz3PsvF6&VG47>!rbCGyR99_@kM4!cpqCyX&&?B9uP{s5SkmUpHQT`z%S2d>3 z#$RP~J%`E|Mwq2M$P*4}I4c8s3uiMMTD3scJZQ4rAbpG;#4vg;CpFko3#QMbJFUU; zeEgZEFW`?=XF?y^Oh8CD$XbQmt5ygsUTpXj(nGnWu0_L@c6eN2=jNKaNB*R{Ab_5W@Lx{*ir~ zmy0}2~e(_DIH;lz_l9bC+U%57=DV%kR1e#;Y^9FiJ^kj zJAk?a1cHI2YS2W!92dhUKNQLr!y^tAB&B%p@pQ= zI`B1hq>4ipGhdI*^m9ZMdpbH8h=`R=$mpK7h$iBkweU;y<3Rzt;zVvH&36b*Z+#Y zE_c9>`Msa;dm`zivf6wpz1HV_5m%3z|>96q;+KT7f6y@bNoaApgNz~~d zQRtDQs$9$Tcc9J1=J)(-wPx7#4|uL@(0`&bWD1^d$io)`5?Mt$KxCMQRo^#pvcjeT zJEl1OXL=Aa^)LJ*uf^%H)|i_9k=|(u+`r<_Ed4i5K$HqhU>-Nnzpj<*H8 z%5)1V{0K^X1R){wBhqN8@X|&ok{ep&(4Icw5YENvXG=S$C*t3;^bq`#$~!%j9)kcM zMpp>%;dCto_(@dG1^5UmLV)Ms$_4oN_BvIjyd&{omd?d*y9gh}@6F@)s+th3Cckew zA1|S8d5T|AgpcMV7jTlO)j||z?R;9bytLOdJqFad5Fg9Gw=as2JjBTohJ8fM$(DV$vgbw8yLB$R|lapM`Nuoo~ zLZL@4Gj7F` zWy5ZxG6oa0`jH*uJc$g%$V3fT3BZn9Fb65VAG(^JZl?z^n6BWT+1HtI2ffuAPCM~u zmJV?e75ONg^74^V)p_g`gs;H~T*(Q@gXAiH@9Khh%ljcI{U|EJcMX5~TK+V8={gih z_^zibgm0Lxh44L@%DM23P!Ym+1Fl^7jvQD!K)Z{IzLcf=ux6BXR>DcHr29`w*1&a8^qryaa)J%VX01BIYD_agwM?f_+~P8b`kLCOlO(-WZi>>4oMC!Mjj9!N{p0Gq?qhSQF}8psNOm=1zChgAlNB{)v6r zKTgmaE#caOKeLqa*G1vNw?nM*I&j|g7>Vc&1Np5T*dz29iCN$s>ZU1Cf;;M2pA%S<{noHn#bW58AJ_UEP^ltpNOW;%ay{GYeRZ9uw%jlLNJ-r7np`Cb=baBeN zmy^7YlSEbSN1;a&SX3^303^8tK8Qkb_I=Ec^APR7Srd;@?IdV<&_^L=+)?9i^wof9N<0-%Txj89j)8eL4TkzOGNNptoAx z{!09rrLW>7Dr1=8Jcza=^HScaRiDbB(x0#9R9?fW$o=_Re(!a~7sP!#vNSo7LpxYF z1YzyPF_WO?;5YBP(A!w)>+uqJ`1$Elf4+f}d?P1`{`@l(4ur2|kiH3&c~`!ff2)4i z{uVq}cH~>BjE=NT3o2|kbUn`@s~&8^f#PC^fv`B&@wN1A^dLI&?ffJAwrhU}z0>N( zcjC`1eHSMnT0d?SY#Vtu9#O1t!W{o@{_=bH%X06%m*0C|L0Hg<2@6PNj(Dv*v-D&5ZJ*;m&hLGK z->a&ud<||X9vs_{gx#_==z@{t3MXJs^JDlODd{Ki62$C{vi;{%oaCoDNmS)=6nZqr z7nMst1Cm_6K8r#z$A6BBMGJkN$`Bz$a{w>^XaN}f2rscr4=Xv`mMm1jRl+F!0zC*3 z`XXIhbNrX+&z6*Y8GmN!SMXb%<8QnxAM9j;&86hX!u7V&{9om-e~rH`%gNXIy>Aqx zMR!Th0>j7%7r<_9f_1nfdrqin78K_wDd{)y5}N;;vOmqYILU8wl4$<#pwOe{FDjRQ z7bJP}e-DM+p*sCbDi+QEeJaxkMl4MXC`EEu^b{jB78tgZ{(v4t^Z$^p zSAl@3N z$sV*V#kW;P>0k4w|As$}w*3VPG)jL-SB%oXrEAd$zoK$JO8<_E7^Q!YD<7qEcYCAb zZCkN_!0jykHGbQN>2LVG-|~CaVT#mkD$quw07ex9-k@mS2!Kb1ZDXr}q(13C;w9AO zQ3(Pf{T(OydrlH{`2z|)a#|^Cm;MuIazXiL{uNr%TXA$n6kRLiBK;RURW{!rsSFvy zK@&n`I1rpTLP!smbA(-JA!VS54Ao5kl^%o){Tu%TE$5|A^v-5HT-D?D-|3B(c>M?d z%+mkluZv4L$6z5~kzBkar3`nw5@hVZIFp*Ma&N2 zFC5BWK-V0G0*Tq-bcL8biLQm19YN(>%;r!LVs<31T+HT_zRm)lb8$0EkHT-ekj>-w z=JR`EOWb%^&L?>mSNJ@dzp#M606rI@KztrUSMYf(T?;;sqjJvY@l*t#C*aEYTqv6& z1b$D%Ls@zfe%tvyncq8w->dK|X!$Grp2}Z1jlTeX7okA>o=#Wrdj?$#e$S+G&hKI> zg5R@n&4+Kxmsj9)32tZU+4ybebSb}g4!>97bV=T_>ExI9*2NoYUo01g9%-<(wW-oQecCSK?ll_T#smO@-f6`Mt_^NI0rg*wpw7I)4Fd z8YmE(CSAd%Mc0B&o60$x4i&+si)$_bvffwV_d-0BrK|AU&hJJ1-o^Z0rCFC@9AeHR zm1>3GOZW?y@)yAGWhfB8tLX}U*U+`#cYw+{ziX)oe%Im3`JG?&+gMNcF`*O&%?2sho3s1r@>Z4qS<2 z;N!0Cg~Q6wSLUK_?1_DiBTJoca*!c+mrHyLXQ~$Dpo!egp$-l@-0mYw6;;v_Qq~<{ zs%)fv!pI4Kz8S74kCv$1niyzfnU9S z(@K%W?r7a2i?zTfKzf4y-vf&RJ{{TyoDW zk;|!!At5&!^k(An7UJ^OlFQo)E^ns>y@PW(r-bklSiCc1S$m(~l@YK-mBm_Yox8yz z$JP;9d}_v?##y|FSiF~5ysu>O{({8^h{XqUxy0zsk+B3GpPsRY+If6N#-1tjSc`A- zEbz$jZA2a)=E=Lj9PU@(@--QIZ9A8* z%h>DX2CW6wc>}oQz&awAInV;Qd=qi`X5#WKC6{k4xO^LN`F76b$<=}00tXOS&T$Xq zq4chdy<29vHm?6YV427Di!8r4qZG|x`TfN52Z-elmMnj$VEMzu@<%w!^F+`-fz6L* z?9ba<_AfH_F`3O;=&X-}O%9zUviS*~BN=RdirD-#vH5t(=4T2vKTB+Wj=jGI7syGMg`Vu*I|*cvyE-ZMHrIpU?^-qG<1Kvf=W$$+^%ypjyK7L}}( z44AOV$_?@{$)PoQK#xrhClK!AGIo4lV~#&Lu{RB(Np`|8JF#)3Ke~I**k~|1#ZDS# zC*yV)?TN<2Np{LGJ2fE&k1GFZbk`(1ZI~@;9D!Jgsmak@?DVaT`Aq`&he>wEFgp`( z6yKnKSv<_nA`w9L*UP3AfqhJCIrKT4wD`g3IIJYqoR=#Pwj)xR@u_u0@)S3uIA2(p zJXHZeKm?CQKtsUt< zXLxQpac7i{dSf!fY?aWu7i9#ADKD~@6u_7w%Q{kOnGuYf@J|nrOI~qYq{NP4-!YKd z-n2O|rX!g|*y@a};Y-2*EeUIBNmy4d3G0g`VFN7*8;d1jdDr=1-FPqo<5Bx;!qM@mC{6e7nHr%*;Gi4$NBn5*_0%q{fsaTxxGkz?Y!O(R1K$M)mcZCU zKpFz>0Yuu;ja&nykb`dE9}|wIQNX)vB#peVa=h<8=*!09Iubo}bp_&xD1Hw?bFL2` zIasgZEF5V;;PFAfe8K(=`eR$t6-K4;6@ZTvz-x(P*`6#kz6xlS2oN^So#VERvM$xKb6wM^3 z`oP5aR5~#>7NtXTPAG=cX?)UX-5D7e^Cl;AyV*gebv*0pozloMF{ltmY6kGbu_Aaj zM1cWwI|3zu7!1c1VPyTsNUuiLwO!{mYVO4lt)e6PC(|HLD&Fb>`R`VjuoFFb&(_yv zYdzh*YK=F3(_}yW?u^DTGAB|<`6*qHnx-SfWoO&osXcqAiqz;uEk@RjMZ2T%DbPK& zi#tx?F9Uq;-+CF-Fl#Yz$*X@( zeScX1XJ^e;3OCWNAog&y>F;njU`u8pg&m}#B`Mol5`K1%0yC$Zpc)3_{E&t6nzj~)+Op|Ux`k0m{{JUUMUSINZQex$N6DEki=5IUzfegHsQ#}dnACdY0#}$RnckzIeL+voj4o=ZW`9m~%%|O7WYK13 zBq++PA_Z|(QRWOYx1}h%5aFtU2XqGHO#@6UfIdPTgES=4Q{Z+5$3xX*t7Ki;Mbo6P z5KrnBaJ_Yer~p#{X)H`19;84qw|(D$$31{d_(}bB29886vt)iwpSM}0qZ)|XgAxUh zVtQl%_!O|1QB2wu04S@Df)vIJ2A7kgUW-nd!a}5Dd%$S~6(Ald2K=P~rvoSg8*zCE z22{-9})YyZ< z35RsW0p=QTexVVe6c(R>8=F99d&aJyGoi>2B3}Fuk^fqx;0zlXKoM~q8&O3zJn7+2 z4{Pp%!9P^%wKHQwveLfRL`x|wq?9997AY)5eh|MML<*pGTw9IM-XScN0A~jj4SZmM zU&Sbe#i38E)a#leg@s6`R&_}!EJ$f7w9oY!8EHVf=CKu5{~`^=0zOXjE6$?0Lx zky6$?lCei+I<=PdXM>KEvgSD%dyMGJD2vE*TUkUJhml>5J#T+ZM)p$rQtsW! zUY4rh{lz^eJ$1Y5M%@tFp@vezdUZcVVYdP9QB zy|K`to**Uu#6ii6&7qIxCWpp6{9TwMR(c1Wsd*u3MJuLe9s4Qltqc#zd=bs;cnY?V z*hAV1%sbeRu$HO$dc+--_J;j4H81Pf#{H$4r)*yyyv_BT3b%787}U2Ac^x3x6A)NEYz+`~ zr^Y6XYfyhl7WE~=>}(8+zGQB0#$TGTbNZ6`n|Wd@^lEZ6qHH4!WIC>mwHC;wNa_shDuTFxlMk4B*Np&E8#q2Z zOcxG50d&grSQj)dT)KJ(@-*xyvM~&;-mzibP%{hG+@(8KZ{4zK&En!(c?znEil@Nx zVYWhGFt@PI-&~3>Rn#?g$A|%usKV3>TvY)7#2QS$y6)KsQ!$wW20t*bh$ex{fi-Ps zPp1pvYSN)=DA0sFu#c`P$qzDvNI6lrOpUb%#+Ip(j*aEeKWKamo<#ixMbKHoVzMNo zAtW2V^MO=d%xaHk=VCGA$1~AZpARLtZJkdhy9>xF@I)OL)Q)aK9|GhcwYBVQ z{sUq$TGF>)3r}CeYF~NK+}y|}8sY>4NwEkuE}7|@O>uHVcvnRWg5_a#1cEREmr7+VK zG#Bk_r<8`cjkghjXmYf$X~Pz`k1Z%|Rj0SguAE?JG&b*BRcjRZd4HVQxO4{8O8aXr zFhx5pZmgRHi8XttrY6P*y{UAx6u7e*m(7CE+7d#Iuy|m6TQhqa0|lZFJ9}1DDmdBV zO$ABOHZZHrf*nyDn&$1izs`w7tNgjc?7SXrSNnRmT|Hmiu3kV(RGW7v?Z8?}>y>~x zCfyFAoi&57X`Vs+loMrc=9J zwWaN_6U`J1^DO0h8qGCm?y;CW&|?H>Z>0a-?&>_-k6KpkR} z&MpCm;fl(}{L+kFMl}`bxE>&=3|oyOBngAVBa$aNj-ddr-msxsx7ljY`L0u;vnFE$ zG93fCWsw0fc9C&Wr3@kfq_qKmj}1N`q+=UidkY62wJUViWo*4n$HNK1caSwpiJjOt zK>`4d0Cf6)-JLsc(@+%0ClKP%h6RCOVq-y$V_!QGqCkO4(C{cp5r|iOuhUL#Zks|2 zwZsQt;QO)g5fBq2zvI~IwTlu0Vkm2eqhsf~_dNa&jhZol)z~f(=lsP=oH0kL`dlVN zVyhKm@Z_O>f&WFsKBR9{*i5uS&Bxv&&ZFf@ocozwuIGd7XUo&RMzlp-O%qzF7S3(0 zF!r#P3}f3N&i=3x=Rsy4*5jaom6s6dMsaqPIM=RJ;yle6 zU1!E_l*Kt51gP000aj=Iklz_)hyjK^oB}QOn7AQ6BhE)~nNB`qK36SH8v)~x-2ksC zCPox+oILFN`YO~qY{UI(j1~9}-p|X-zLMuE>p|(`=q1yLosNfM2n{QsK7#-#iyk&K zh&OrmHE~`nRPuR~+5Vw89wPZD&KsR#>xpY*6vP@8vw`Q)`?h@xF}d^gdL@p|tf|Lg zRK=@^OcU^B614IEMV3EEm}B$ZBDrT%;(V&c8Dw^?9tVvG9}yk=qC)hYlSqln?ts^v zs93~l?K*M3;j&8)okQZMqX*myRiI)eRHiG+^1_5TS^kBt=cutD^8U2aBTQXL9gL=A zEmiiXf7KzlcQ^CGf6RiI9l4bk9z~JYT|Hh*CQcQF4dv0%r#>h?UZ%$pYV~-Z4<_ z_*N%Th}v8ZfBqr6b$2*1BSn0!(gC=M{yyUY=Qy8Lo*_BJ#C%)`xW{~W8NN2+$ZUo2 z(3K^wo9K*;hZ9A&{s*L&0cL6uJInK%(uN+X? zFK5s<-r&~Zk`5-V|)||k)Dc4Qv?YW6}KIc?dO_8 zoZZRn+x)b?lhe8@r**G9t?!G|`aw?XeleC@n0Z)U9`Nl^e`B=WeO^w@k98J%|G}+< zD>Ys|^hGJV&1M871ywc0QpC{ra6vh@(&YGZ%C;x10jwE%8k}qDA kIJbwOhk$+|OBcY+F;K}8_D}PjT`^mCKm1w8<~vt^0+sWC`Tzg` diff --git a/.pioenvs/micro/firmware.elf b/.pioenvs/micro/firmware.elf index be51b539b58ac43e44b736e895430add188c77fe..3be570eedeb0ef2005fd06b9dbfd75aa6dff798f 100755 GIT binary patch delta 8231 zcmZvh34Bvk_Q&6rv{{;^dntvasTAy9);dTlB8r1U5iAshbOWghlv12g8S~PBw5)l# zDHWY5g})0ROQFn++dyXnbmwG>8-}#JnTe!{3q}0^=PT3fSo+^f6IGilbN7LwosFb(hk)CQ=6g+=MeGBU8 zNe@YC9Irm5)_Z3}c-U;NPVHffq&EHJrG_UAHHK#l>kJ<&e_IVN78{P!HYq02S zx@cXzZn$om@|Uj5(Bk2@HI<>NrMYWEfsx89nKo7N@l_qnI&FCX>UEd%0Ai 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 delta 7800 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 oV!Z diff --git a/.pioenvs/micro/firmware.hex b/.pioenvs/micro/firmware.hex index 76c1418..e380284 100644 --- a/.pioenvs/micro/firmware.hex +++ b/.pioenvs/micro/firmware.hex @@ -1,51 +1,51 @@ :100000000C94F9000C9421010C9421010C94210111 :100010000C9421010C9421010C9421010C942101D8 -:100020000C9421010C9421010C9455060C94D606D5 +:100020000C9421010C9421010C94C8060C944907EE :100030000C9421010C9421010C9421010C942101B8 :100040000C9421010C9421010C9421010C942101A8 -:100050000C9421010C9421010C9421010C947E0B31 +:100050000C9421010C9421010C9421010C94740640 :100060000C9421010C9421010C9421010C94210188 :100070000C9421010C9421010C9421010C94210178 :100080000C9421010C9421010C9421010C94210168 :100090000C9421010C9421010C9421010C94210158 -:1000A0000C9421010C9421010C942101A80DAD0D9B -:1000B000B20DBC0DC60D100E100E100ED00DDA0DC7 -:1000C000E40DEE0DFB0D100E030EEE0AF10AE00A30 -:1000D000E40AEA0A120B120B120BF50AF90AFD0ADE -:1000E000030B070B120B0D0B000000002300260072 -:1000F00029002C002F00070605040100080A0B0C3C -:100100000D09080B000202020100090400000102AF -:10011000020000052400100105240101010424024D -:1001200006052406000107058103100040090401AB -:1001300000020A00000007050202400000070583D4 -:10014000024000000403090412010002EF02014012 -:100150004123370000010102030141726475696E99 -:100160006F204C4C430041726475696E6F204D697D -:1001700063726F0000000000240027002A002D0099 -:10018000300000000000250028002B002E00310068 -:10019000040404040403040502020202040302022C -:1001A000020206060606060604040202020404040D -:1001B0000802011040804010204080408008020466 -:1001C00001804020100201108010204040200000DB -:1001D000000200090F0000030401000C00000000F1 -:1001E00000000000000000000000000000009D0E64 -:1001F000FD0B11241FBECFEFDAE0DEBFCDBF11E053 -:10020000A0E0B1E0E0E1F2E202C005900D92A63A72 -:10021000B107D9F723E0A6EAB1E001C01D92A73EDD +:1000A0000C9421010C9421010C942101660E6B0E1D +:1000B000700E7A0E840ECE0ECE0ECE0E8E0E980ED2 +:1000C000A20EAC0EB90ECE0EC10E200B230B120BDE +:1000D000160B1C0B440B440B440B270B2B0B2F0B49 +:1000E000350B390B440B3F0B070605040100080ACA +:1000F0000B0C0D09080B00020202010009040000AC +:100100000102020000052400100105240101010480 +:10011000240206052406000107058103100040099A +:10012000040100020A000000070502024000000767 +:100130000583024000000403090412010002EF02DB +:10014000014041233700000101020301417264753F +:10015000696E6F204C4C430041726475696E6F206C +:100160004D6963726F000000000200090F00000378 +:100170000401000C0000000000000000000000006E +:100180000000000000000000002300260029002CD1 +:10019000002F0004080201104080401020408040E1 +:1001A00080080204018040201002011080102040CD +:1001B000402000000000240027002A002D0030000D +:1001C00000000000250028002B002E003100040450 +:1001D00004040403040502020202040302020202F0 +:1001E0000606060606060404020202040400590F6D +:1001F000CF0C11241FBECFEFDAE0DEBFCDBF11E080 +:10020000A0E0B1E0E8ECF3E202C005900D92AE3957 +:10021000B107D9F724E0AEE9B1E001C01D92AF32D9 :10022000B207E1F710E0C8EFD0E004C02197FE016B -:100230000E94CF0FC73FD107C9F70E946B0C0C94E7 -:10024000FB100C9400004091B0025091B10220913B -:10025000AE023091AF0242175307B4F49091E80018 +:100230000E94AB10C73FD107C9F70E943D0D0C9437 +:10024000D7110C9400004091A8025091A90220916E +:10025000A6023091A70242175307B4F49091E80028 :100260009570E1F39091E80092FD19C08093F10040 -:100270008091B0029091B10201968F739927892BDA -:1002800019F48EEF8093E8008091B0029091B10252 -:1002900001969093B1028093B00281E0089580E0CE +:100270008091A8029091A90201968F739927892BEA +:1002800019F48EEF8093E8008091A8029091A90262 +:1002900001969093A9028093A80281E0089580E0DE :1002A00008952FB7F89487708093E9009091E80043 :1002B000892F807295FF04C09091F20080E4891B21 -:1002C0002FBF08959091B502992311F057FF03C0F5 +:1002C0002FBF08959091AD02992311F057FF03C0FD :1002D0008FEF9FEF08959FB7F89487708093E900A0 :1002E0002091F20030E0421753070CF49A01822F5C -:1002F000FB0144E6815038F0289A4093B2025091B5 +:1002F000FB0144E6815038F0289A4093AA025091BD :10030000F1005193F7CF2115310521F08091F200D2 :10031000882319F09FBFC90108958BE68093E800F8 :10032000F9CF9FB7F89487708093E9008091F2002D @@ -74,7 +74,7 @@ :10049000310529F0C90107976817790728F0295F06 :1004A0003F4F2617370730F483E0769567958A9596 :1004B000E1F76B8B1B8988898117F9F03C81E0910A -:1004C0006203F0916303828193814A8941502A81BA +:1004C0005F03F0916003828193814A8941502A81C0 :1004D000329F400D1124012F0F775B812989359FB1 :1004E000200D11242F774F70DC01ED91FC910480D9 :1004F000F581E02D60EB0995188BDF91CF911F916D @@ -82,34 +82,34 @@ :10051000089508950F93DC01ED91FC910480F5811D :10052000E02D00E009950F910895CF92DF92EF92B0 :10053000FF92CF93DF9300D000D0CDB7DEB780918C -:10054000A6029091A702A091A802B091A9024091A1 -:10055000AA025091AB026091AC027091AD02841B73 +:100540009E0290919F02A091A002B091A1024091C1 +:10055000A2025091A3026091A4027091A502841B93 :10056000950BA60BB70B8F739927AA27BB27892B4F -:100570008A2B8B2B09F055C0809105030E949101B5 -:10058000882309F45FC0C090A602D090A702E09033 -:10059000A802F090A9028FEFC81AD80AE80AF80A50 -:1005A0008FE3C822DD24EE24FF248091AA029091DB -:1005B000AB02A091AC02B091AD028C159D05AE05C9 -:1005C000BF0579F1809105030E94910144E050E05C -:1005D000BE016F5F7F4F809105030E946201049707 -:1005E00004F18091A6029091A702A091A802B09177 -:1005F000A902880F991F880F991FFC01EA55FE4F29 +:100570008A2B8B2B09F055C0809102030E949101B8 +:10058000882309F45FC0C0909E02D0909F02E09043 +:10059000A002F090A1028FEFC81AD80AE80AF80A60 +:1005A0008FE3C822DD24EE24FF248091A2029091E3 +:1005B000A302A091A402B091A5028C159D05AE05E1 +:1005C000BF0579F1809102030E94910144E050E05F +:1005D000BE016F5F7F4F809102030E94620104970A +:1005E00004F180919E0290919F02A091A002B0918F +:1005F000A102880F991F880F991FFC01E256FE4F38 :1006000049815A816B817C814083518362837383EA -:10061000C092A602D092A702E092A802F092A9028C -:10062000BACF8091AA029091AB02A091AC02B09196 -:10063000AD02880F991F880F991FFC01EA55FE4FE4 -:10064000208101C020E04091A6025091A702609154 -:10065000A8027091A9028091AA029091AB02A09188 -:10066000AC02B091AD02481759076A077B07B9F091 -:100670008091AA029091AB02A091AC02B091AD0220 +:10061000C0929E02D0929F02E092A002F092A102AC +:10062000BACF8091A2029091A302A091A402B091AE +:10063000A502880F991F880F991FFC01E256FE4FF3 +:10064000208101C020E040919E0250919F02609164 +:10065000A0027091A1028091A2029091A302A091A8 +:10066000A402B091A502481759076A077B07B9F0A1 +:100670008091A2029091A302A091A402B091A50240 :100680000196A11DB11D8F739927AA27BB278093BF -:10069000AA029093AB02A093AC02B093AD0281E0AA +:10069000A2029093A302A093A402B093A50281E0CA :1006A000211101C080E00F900F900F900F90DF910B -:1006B000CF91FF90EF90DF90CF900895E091660387 -:1006C000F0916703309741F09381891740F094814E +:1006B000CF91FF90EF90DF90CF900895E09163038A +:1006C000F0916403309741F09381891740F0948151 :1006D000891728F4CF01089580E090E008950580FF :1006E000F681E02DEFCFCF93C82F8B3258F58231B2 -:1006F00008F0C251EC2FF0E0EA50FF4FE4918091F6 +:1006F00008F0C251EC2FF0E0E851FF4FE4918091F7 :100700007B00E3FB222720F930E095E0220F331F26 :100710009A95E1F78F7D282B20937B00E770E064AA :10072000E0937C0080917A00806480937A008091CD @@ -125,433 +125,460 @@ :1007C000BC01CE01DF91CF91099408950895089559 :1007D00008957F928F929F92AF92BF92CF92DF92B5 :1007E000EF92FF920F931F93CF93DF93C82E8B014D -:1007F0007A018091B502811103C08FEF9FEF70C025 -:100800008091B40280FF05C08091E00082608093F7 +:1007F0007A018091AD02811103C08FEF9FEF74C029 +:100800008091AC0280FF05C08091E00082608093FF :10081000E000CE2DDF2DD12C8AEFB82E8C2D8770E5 :10082000982E8C2D8072882E8C2D8074782E9AE3D1 -:10083000A92E209719F4DD2009F44DC08C2D0E94BB -:100840005101811106C0BA94BB20B9F20E94A80AD6 -:10085000F0CF282F30E0C217D3070CF48C2F9FB7AE -:10086000F8949092E9002091E80025FF32C0282FEB -:1008700030E0C21BD30B882029F08150A0F01092E9 -:10088000F100FBCFF801C7FE0AC0815050F044913F -:100890004093F1003196F9CF41914093F10081509E -:1008A000D8F7020F131FDD2019F0A092E8000AC04C -:1008B0008091E80085FD08C0A092E800DD24D39473 -:1008C000209739F0D12C05C0209719F47110A0920F -:1008D000E8009FBFAECF5D9A84E68093B302C70164 -:1008E000DF91CF911F910F91FF90EF90DF90CF900C -:1008F000BF90AF909F908F907F900895CF93DF939C -:10090000EC0180910B01882331F083E00E94E90320 -:100910001816190634F081E090E09B838A8380E00A -:1009200090E0DF91CF91089583E00C944B060F93F4 -:100930001F93CF93DF9300D000D0CDB7DEB7862FC3 -:1009400090E034E0959587953A95E1F78983462BB9 -:100950004A832B830C8302E013E0F801838144E097 -:1009600050E0BE016F5F7F4F8F5F0E94E903F80187 -:1009700083818F5F0E944B060F900F900F900F9016 -:10098000DF91CF911F910F91089580915E03909117 -:100990005F030C946D10CF93DF93EC018889815035 -:1009A0006823CE010E947C0A89850E947303898591 -:1009B000DF91CF910C947303DF92EF92FF920F932C -:1009C0001F93CF93DF93D82E8A017B01E40EF51E8F -:1009D000EB01CE15DF0571F0D7FE03C0FE01849157 -:1009E00001C088810E94230121968111F2CF8FEFEF -:1009F0009FEF01C0C801DF91CF911F910F91FF9030 -:100A0000EF90DF9008950F931F93CF93DF931F9282 -:100A1000CDB7DEB782E0898342E450E062E071E066 -:100A200080E80E94DC040E94C20ADC0112960D914B -:100A30001C9113970115110589F0D801ED91FC91D6 -:100A40000280F381E02DBE016F5F7F4FC8010995E1 -:100A500097FD04C0F80100851185ECCF89810F90C6 -:100A6000DF91CF911F910F910895615030F0209147 -:100A7000F100FC0120830196F8CF289A84E6809348 -:100A8000B2020895CF93DF93C82F8B3210F5682FF1 -:100A900070E0FB01E253FE4F8491FB01E155FE4FF4 -:100AA000D491FB01E057FE4FC491CC2321F1811179 -:100AB0000E94D60AEC2FF0E0EE0FFF1FE851FF4F27 -:100AC000A591B491EC91ED2381E090E0B1F480E048 -:100AD00014C00E945E03009771F0DC0113962C9104 -:100AE00013976C2F621BED91FC910480F581E02D32 -:100AF000DF91CF91099480E090E0DF91CF9108954C -:100B00000F931F93CF93DF93EC018B01FB01808147 -:100B10000E94420521E0892B09F420E0F80181813F -:100B2000F22FF81BFF3F69F53FB7F8948091FA0266 -:100B30009091FB02A091FC02B091FD023FBF4E8557 -:100B40005F8568897989841B950BA60BB70B4E8945 -:100B50005F89688D798D481759076A077B0710F5FB -:100B60003FB7F8948091FA029091FB02A091FC02A9 -:100B7000B091FD023FBF8E879F87A88BB98B81E024 -:100B800012C0F13079F43FB7F8948091FA02909155 -:100B9000FB02A091FC02B091FD023FBF8E879F87B0 -:100BA000A88BB98B80E0F8012183DF91CF911F9151 -:100BB0000F910895CF93DF93EC01888981506823CA -:100BC000CE010E947C0A8985DF91CF910C94420569 -:100BD000CF93DF938B3220F4DF91CF910C94130BE2 -:100BE000D62FC82F0E945E03009779F0DC01139680 -:100BF0002C9113976C2F621BED91FC910280F38175 -:100C0000E02D4D2FDF91CF910994DF91CF91089581 -:100C1000CF93DF938B3220F4DF91CF910C94420B72 -:100C2000D62FC82F0E945E03009779F0DC0113963F -:100C30002C9113976C2F621BED91FC910190F08128 -:100C4000E02D4D2FDF91CF910994DF91CF91089541 -:100C5000642FFC0181850C9408060F931F93CF939A -:100C60008C01C0E08C2F90E0F80126853785821733 -:100C7000930758F422853385F901E80FF91F61E0E5 -:100C800080810E940806CF5FEDCFCF911F910F9119 -:100C900008950E94F6108093E9008091F200882365 -:100CA00019F08AE38093E80008951F920F920FB61F -:100CB0000F9211242F933F934F935F936F937F93E2 -:100CC0008F939F93AF93BF93CF93EF93FF93C09175 -:100CD000E1008091E100837F8093E100C3FF0FC0BA -:100CE0001092E90081E08093EB001092EC0082E327 -:100CF0008093ED001092B50288E08093F000C2FF6F -:100D000019C083E00E944B068091B302882339F01A -:100D10008091B30281508093B302882389F180913E -:100D2000B202882339F08091B20281508093B202DE -:100D3000882341F1C4FF10C08091E2008E7E816063 -:100D40008093E2008091E1008F7E8093E1008091AA -:100D5000B4028E7E806111C0C0FF16C08091E20097 -:100D60008E7E80618093E2008091E1008E7E809390 -:100D7000E1008091B4028E7E81608093B40204C051 -:100D80005D98CDCF2898D6CFFF91EF91CF91BF91AD -:100D9000AF919F918F917F916F915F914F913F9113 -:100DA0002F910F900FBE0F901F9018951F920F92CA -:100DB0000FB60F921124CF92DF92EF92FF920F9312 -:100DC0001F932F933F934F935F936F937F938F93D3 -:100DD0009F93AF93BF93EF93FF93CF93DF93CDB7E1 -:100DE000DEB76C97DEBFCDBF1092E9008091E800BE -:100DF00083FFFBC168E0CE0145960E94350582EF76 -:100E00008093E8008D8987FF05C09091E80090FFEE -:100E1000FCCF03C09EEF9093E800982F907609F0E6 -:100E2000C6C09E894F89588D2F89F88C91110CC0AE -:100E3000803829F48091B7028093F10002C01092AB -:100E4000F1001092F10045C1913051F4811141C17E -:100E50004130510509F03DC18091B7028D7F0BC033 -:100E6000933061F4811135C14130510509F031C130 -:100E70008091B70282608093B7022BC1953049F40C -:100E80008091E80080FFFCCF822F80688093E30090 -:100E900020C1963009F05EC00B8D1C8D22E01092AF -:100EA000E9001092B1021092B002F21232C0109218 -:100EB000AF021092AE020E94030599E0BE016F5F7F -:100EC0007F4FDB01E92F1D92EA95E9F79983FA82BA -:100ED00091E09E8390EA98879AEF99872091B002DB -:100EE0003091B102275F3F4F3C832B838D8310925B -:100EF000E9001092B1021092B0021093AF02009379 -:100F0000AE0249E050E080E00E94DC040E9403054C -:100F1000E0C01093AF020093AE020E94C20ADC014F -:100F200012960D911C9113970115110509F4BBC080 -:100F3000D801ED91FC910480F581E02DBE016B5E3E -:100F40007F4FC8010995009709F0C7C0F8010085D7 -:100F50001185EACF973009F445C1983021F481E03A -:100F60008093F100B6C0993009F0B3C0837009F0E6 -:100F700039C1EDE0F1E081E031E096E3208121111B -:100F800009C08EE78093EA001092EA008F8980936F -:100F9000B5029FC08093E9003093EB00219120932C -:100FA000EC009093ED008F5F873041F7EACF8B8D97 -:100FB0009C8D1092E9001092B1021092B0029093B1 -:100FC000AF028093AE02898D811153C08E899D89B5 -:100FD000913A49F4813209F005C147E050E064E0FC -:100FE00071E080E0BBC0913209F0FCC0833269F44B -:100FF0008F89988DA0E0B0E080930001909301016B -:10100000A0930201B093030164C0803269F480911F -:10101000E80082FFFCCF67E084E091E00E943505A4 -:101020008BEF8093E80055C0823209F052C08F895F -:1010300080930B01EEEFFFE7859194918B3F9C4DE0 -:1010400019F0E0E0F8E002C0EEEFFAE08091040170 -:1010500090910501A0910601B0910701803B944059 -:10106000A105B10509F09EC080910B0180FF79C0F8 -:1010700099C00E94C20AFC01028113810115110569 -:1010800009F4B0C0D801ED91FC910190F081E02D00 -:10109000BE016B5E7F4FC801099581111AC0F8012E -:1010A00000851185EBCFF1E0FF1609F44EC0F3E0A7 -:1010B000FF1298C08F89882309F44AC0823089F4CE -:1010C00040E86DE086E691E00E94C80B882309F4B1 -:1010D00089C08EEF8093E80088C018161906CCF3FB -:1010E00081C0813029F440E86BE08AE591E0ECCFE3 -:1010F000833009F077C00E94C20ADC011296ED909D -:10110000FC9013978E010F5F1F4F6801E114F104EB -:1011100079F0D701ED91FC910680F781E02DB801BF -:10112000C7010995080F111DF701E084F184EECF86 -:10113000D8011C92F60101900020E9F73197BF0118 -:101140006C197D0940E0C601BFCF68E471E002C0C0 -:1011500064E471E0FB01449150E080E80E94DC040B -:10116000B8CFEE3F2AE0F20751F0808191818737B6 -:10117000A7E79A0721F09093FF0A8093FE0A87E77A -:1011800097E791838083809160008093B6029BE013 -:1011900088E10FB6F894A895809360000FBE9093F5 -:1011A000600097CF808191818737974709F091CF71 -:1011B000A895809160008861809360008091B6025C -:1011C00080936000EE3FBAE0FB0739F08091FE0AA1 -:1011D0009091FF0A918380837CCF1092FF0A109236 -:1011E000FE0A77CF81E28093EB006C960FB6F894FD -:1011F000DEBF0FBECDBFDF91CF91FF91EF91BF91C9 -:10120000AF919F918F917F916F915F914F913F919E -:101210002F911F910F91FF90EF90DF90CF900F9043 -:101220000FBE0F901F90189580E090E0089580E029 -:101230000895FC0182818F5BFB01808381E008952A -:101240003FB7F8948091CB039091CC03A091CD034C -:10125000B091CE0326B5A89B05C02F3F19F001968B -:10126000A11DB11D3FBFBA2FA92F982F8827820F2C -:10127000911DA11DB11DBC01CD0142E0660F771F7C -:10128000881F991F4A95D1F7089584E0E1EAF1E0BB -:10129000DB0101900D928A95E1F784E00895CF92E9 -:1012A000DF92EF92FF920F931F93CF93DF93CDB70F -:1012B000DEB7C456D1090FB6F894DEBF0FBECDBF5E -:1012C0006C01DB019C919E5F9C93FE01319684E64C -:1012D000DF011D928A95E9F788E089838BE08A8394 -:1012E00022E02C8391E09D839E8339E0398774E06E -:1012F0007A879E879F873A8B44E24B8B9C8B00E0DA -:1013000011E01E8B0D8B89E0E82EF12CF88EEF8A10 -:10131000998F3B8F7C8F2F8F98A353E059A387E041 -:101320008CA34DA39EA318A70FA301E410E01AA756 -:1013300009A786E08BA74CA72DA79EA79FA789ABDF -:101340004AAB2BAB2CAB2DAB3FAB48AF59AF9AAFF1 -:101350005BAF9CAF2DAF9EAF21963FAF21972296FA -:101360004FAF229723965FAF239724962FAF2497F2 -:1013700025967FAF259726969FAF269727969FAFF6 -:10138000279728969FAF28972A963FAF2A9745E040 -:101390002B964FAF2B972D962FAF2D9760E470E0D3 -:1013A0002F967FAF6EAF2F9763964FAF639785E20F -:1013B00064968FAF649765969FAF659766969FAF6B -:1013C000669767969FAF679768963FAF68976996ED -:1013D0004FAF69976B962FAF6B976D967FAF6EAFE0 -:1013E0006D97A1964FAFA197A2968FAFA297A396A4 -:1013F0009FAFA397A4969FAFA497A5965FAFA5971D -:10140000D60112969C9112979B839B879F5F9A8F20 -:101410009D8F13968C912C968FAF2C978F5F806841 -:101420006A968FAF6A9744E650E0BF0180E00E9461 -:10143000DC04CC59DF4F0FB6F894DEBF0FBECDBF32 -:10144000DF91CF911F910F91FF90EF90DF90CF90A0 -:101450000895009769F0FC0101900020E9F73197A9 -:10146000AF01481B590BBC018EE093E00C947E0445 -:1014700080E090E008958F929F92AF92BF920F9379 -:101480001F93CF93DF93CDB7DEB7A1970FB6F89434 -:10149000DEBF0FBECDBF19A2423008F44AE08E0174 -:1014A0000F5D1F4F842E912CA12CB12CA50194010E -:1014B0000E94AD0FE62FB901CA0101501109EA30AF -:1014C00014F4E05D01C0E95CD801EC93232B242BDC -:1014D000252B61F7C8010E94290AA1960FB6F8943E -:1014E000DEBF0FBECDBFDF91CF911F910F91BF9097 -:1014F000AF909F908F900895EF92FF920F931F935C -:10150000CF93DF938C01D62FC0E0EE24E394F12C2F -:101510008C2F90E0F801268537858217930788F491 -:10152000B7010C2E01C0660F0A94EAF76D232285DD -:101530003385F901E80FF91F80810E94E805CF5F2C -:10154000E7CFDF91CF911F910F91FF90EF9008951A -:10155000CF92DF92EF92FF920E9420096B017C01F3 -:101560000E942009DC01CB018C199D09AE09BF093D -:10157000883E9340A105B10598F3FF90EF90DF906E -:10158000CF9008958091D30381110DC082E08093A4 -:10159000CF0384E08093D0031092D2031092D10342 -:1015A00081E08093D3038FEC93E0089590E0FC01F9 -:1015B0003197EF30F105B0F5EB59FF4F0C94CF0F99 -:1015C000809180008F7703C0809180008F7D809311 -:1015D0008000089580918000877FF9CF84B58F7750 -:1015E00002C084B58F7D84BD0895809190008F776F -:1015F00007C0809190008F7D03C080919000877F0D -:101600008093900008958091C0008F7703C08091EF -:10161000C0008F7D8093C00008958091C200877FB5 -:101620008093C20008951F93CF93DF93282F30E05B -:10163000F901E253FE4F8491F901E155FE4FD49137 -:10164000F901E057FE4FC491CC23C1F0162F811150 -:101650000E94D60AEC2FF0E0EE0FFF1FEE57FE4F70 -:10166000A591B4919FB7F894111104C08C91D095B5 -:10167000D82302C0EC91DE2BDC939FBFDF91CF918A -:101680001F910895CF93DF9390E0FC01E155FE4F49 -:101690002491FC01E057FE4F8491882361F190E092 -:1016A000880F991FFC01EC58FE4FC591D491FC01A5 -:1016B000EE57FE4FA591B491611109C09FB7F89400 -:1016C0008881209582238883EC912E230BC0623081 -:1016D00061F49FB7F8948881322F309583238883F3 -:1016E000EC912E2B2C939FBF06C08FB7F894E88106 -:1016F0002E2B28838FBFDF91CF9108951F920F92D9 -:101700000FB60F9211242F933F938F939F93AF9314 -:10171000BF938091FA029091FB02A091FC02B091DC -:10172000FD023091CA0323E0230F2D3720F40196E8 -:10173000A11DB11D05C026E8230F0296A11DB11DF4 -:101740002093CA038093FA029093FB02A093FC02B9 -:10175000B093FD028091CB039091CC03A091CD0377 -:10176000B091CE030196A11DB11D8093CB03909340 -:10177000CC03A093CD03B093CE03BF91AF919F91C3 -:101780008F913F912F910F900FBE0F901F90189542 -:10179000DF92EF92FF920F931F93CF93DF93D82E98 -:1017A000F92EE42E062F10E0C8010196880F0E9442 -:1017B000230183E00E942301CD2DDF2D0C0F1D1F7F -:1017C000C017D10789F0E7FE03C0FE01849101C074 -:1017D00088810E942301F82E80E00E9423018F213E -:1017E00021968111EDCF01C081E0DF91CF911F9152 -:1017F0000F91FF90EF90DF900895CF93DF93E8EB88 -:10180000F3E08EE291E0749791838083A781B085A5 -:10181000109731F02581368116963C932E931597BB -:101820002091FE023091FF02E217F30721F4B093FA -:10183000FF02A093FE02C581D681209711F0B887E0 -:10184000AF832091000330910103E217F30721F4E5 -:10185000D0930103C093000323E0E836F20799F622 -:101860008091C4039091C5030E946D108EE691E0B3 -:101870009093B9038093B803E091BF03F091C00344 -:10188000309731F08091BD039091BE03968385839C -:101890008091640390916503885B934021F4F093F9 -:1018A0006503E0936403A091BD03B091BE0310975C -:1018B00021F01896FC93EE93179780916603909110 -:1018C0006703885B934021F4B0936703A09366039A -:1018D000DF91CF910895789484B5826084BD84B5FA -:1018E000816084BD85B5826085BD85B5816085BD1B -:1018F00080916E00816080936E00109281008091D3 -:10190000810082608093810080918100816080935A -:10191000810080918000816080938000809191009F -:10192000826080939100809191008160809391000A -:10193000809190008160809390008091C1008460CC -:101940008093C1008091C10082608093C10080912A -:10195000C10081608093C1008091C3008160809349 -:10196000C3008091C00082608093C0008091C2005B -:1019700081608093C20080917A00846080937A00B5 -:1019800080917A00826080937A0080917A008160F1 -:1019900080937A0080917A00806880937A00109218 -:1019A000B5021092B7021092B4028091D700816004 -:1019B0008093D70080EA8093D80089B5806189BD83 -:1019C00089B5826089BD09B400FEFDCF0E94A80AD6 -:1019D0008091D8008F7C80618093D8008091E00056 -:1019E000807F8093E0008091E1008E7E8093E10013 -:1019F0008DE08093E200559A209A5D98289861E0E6 -:101A000080E00E94080661E081E00E94080661E033 -:101A100089E00E94080620E0C22E20E0D22E9AED36 -:101A2000E92E92E0F92E0AEB12E0812C912C540160 -:101A3000312C632D88EB93E00E94CB04EC01D7019D -:101A40008D939C93F80180819181C817D90781F10A -:101A500086E991E00E94290A4AE0C501B4010E948A -:101A60003B0A89E991E00E94290A2E01DD0F6608F0 -:101A7000770877FE0EC06DE28EE093E00E94C4010D -:101A800066277727CB0164197509860997094AE00B -:101A900003C04AE0C301B2010E943B0A8EE991E013 -:101AA0000E94290AD7018D919C91F801918380832E -:101AB0003394F2E0EF0EF11C0E5F1F4F2FEF821AEE -:101AC000920AA20AB20A34E03312B3CF8091DE0246 -:101AD0009091DF02843F914014F061E001C060E02A -:101AE00080E00E94E8058091DA029091DB02843F59 -:101AF000914014F061E001C060E081E00E94E805DF -:101B0000C091DA02D091DB02D7FD2396D595C79517 -:101B1000D595C79561E089E00E94420B209711F4AA -:101B200060E004C0CF3FD10529F461E089E00E9464 -:101B3000130B7BC0E7EDF1E0849190E0FC0131975D -:101B4000EF30F10508F06CC0EA5AFF4F0C94CF0F4C -:101B500084B5806884BDC7BD68C084B5806284BD1B -:101B6000C8BD63C080918000806880938000D0935E -:101B70008900C093880059C0809180008062809362 -:101B80008000D0938B00C0938A004FC0809180006A -:101B9000886080938000D0938D00C0938C0045C0F6 -:101BA00080919000806880939000D0939900C093BA -:101BB00098003BC080919000806280939000D09309 -:101BC0009B00C0939A0031C0809190008860809300 -:101BD0009000D0939D00C0939C0027C08091C000CE -:101BE00080688093C0008091C0008F7B8093C0008C -:101BF000C093CF001AC08091C00080628093C00063 -:101C0000C093D00012C08091C20088608093C2004F -:101C10008091C2008B7F8093C200C093D20005C028 -:101C2000C038D1050CF081CF7BCFC0916203D09139 -:101C300063038A819B81892B11F58091B802909171 -:101C4000B9029B838A83892B89F482E090E00E9409 -:101C5000D50F9093B9028093B8022EE131E0FC01D8 -:101C600031832083998388839B838A838A819B81A4 -:101C7000DC01ED91FC910190F081E02D099500913E -:101C80000003109101030115110561F0D801ED91D8 -:101C9000FC910480F581E02DC8010995F8010581CA -:101CA0001681F1CF8A819B81DC01ED91FC9102804C -:101CB000F381E02D09958111F5CFC114D10409F408 -:101CC000AECE0E940000ABCEFC018EE291E091838B -:101CD00080831282138281E08483168215821086AB -:101CE00017828091000390910103892B21F4F093D6 -:101CF0000103E0930003A091FE02B091FF02B087C0 -:101D0000A783109721F01696FC93EE931597F09306 -:101D1000FF02E093FE021682158261871586148603 -:101D20001786168682E691E0918380838FEF808B01 -:101D300087E0818B428B138A089582E080930603AB -:101D4000809307038CE093E090930903809308034A -:101D500010920B0310920A0388E391E0909303031F -:101D60008093020380E880930C0381E880930D0345 -:101D70000E94C20AFC0121818091060390E0820F3B -:101D8000911D0897C4F5A281B381109729F482E0D0 -:101D900093E0938382830EC018968D919C9119973E -:101DA000009711F0DC01F8CF82E093E019969C9344 -:101DB0008E9318978081809304038181809305031B -:101DC000908180910703890F808380E090910603C2 -:101DD000891788F4A0910803B0910903A80FB11DD9 -:101DE0009C91A181B0E0A45FBE4F9C9391819F5FC5 -:101DF00091838F5FEBCF109211031092100388EE46 -:101E000093E0A0E0B0E08093120390931303A093BB -:101E10001403B093150384E491E090930F0380932F -:101E20000E038FEF9FEF90931B0380931A03809113 -:101E3000DB0381110BC010925F0310925E031092BE -:101E400061031092600381E08093DB038EE593E0F1 -:101E5000909363038093620380E18093BA0380913F -:101E6000660390916703892B31F488EB93E090939C -:101E7000670380936603E0916403F0916503F09338 -:101E8000C003E093BF03309721F088EB93E0968383 -:101E9000858388EB93E090936503809364031092AD -:101EA000BE031092BD03809113018093BB03805F3A -:101EB0008093BC038093130184E891E09093B9036D -:101EC0008093B80383E18093C10384E090E0909312 -:101ED000C7038093C60380E190E09093C903809389 -:101EE000C80384E090E00E94D50F9093C5038093CF -:101EF000C4034091260150912701609128017091FF -:101F00002901FC0140835183628373839093C3034F -:101F10008093C20388EB93E00E942D0641E060911C -:101F2000BB0388E693E00E94640E6091BB036F5F81 -:101F300042E08CE793E00E94640E6091BB036E5F09 -:101F400043E080E993E00E94640E6091BB036D5F03 -:101F500044E084EA93E00C94640EA1E21A2EAA1BDA -:101F6000BB1BFD010DC0AA1FBB1FEE1FFF1FA21749 -:101F7000B307E407F50720F0A21BB30BE40BF50B46 -:101F8000661F771F881F991F1A9469F760957095CF -:101F9000809590959B01AC01BD01CF010895EE0F96 -:101FA000FF1F0590F491E02D09940F931F93CF9399 -:101FB000DF938230910510F482E090E0E091E50338 -:101FC000F091E60320E030E0A0E0B0E0309719F1B6 -:101FD000408151810281138148175907C8F0841745 -:101FE000950769F4109731F012960C931297139697 -:101FF0001C9327C00093E5031093E60322C021152C -:10200000310519F04217530718F49A01BD01EF0189 -:10201000DF01F801DBCF21153105F9F0281B390B61 -:102020002430310580F48A819B816115710521F08E -:10203000FB019383828304C09093E6038093E503BE -:10204000FE01329644C0FE01E20FF31F819391938B -:1020500022503109398328833AC02091E30330911B -:10206000E403232B41F420911601309117013093A2 -:10207000E4032093E303209114013091150121150D -:10208000310541F42DB73EB7409118015091190127 -:10209000241B350BE091E303F091E403E217F3070F -:1020A000A0F42E1B3F0B2817390778F0AC014E5FC8 -:1020B0005F4F2417350748F04E0F5F1F5093E4031E -:1020C0004093E3038193919302C0E0E0F0E0CF01FD -:1020D000DF91CF911F910F910895CF93DF930097D8 -:1020E00009F481C0FC01329713821282A091E503AA -:1020F000B091E603109781F420813181820F931F04 -:102100002091E3033091E4032817390751F5F09348 -:10211000E403E093E30367C0ED0120E030E0CE1775 -:10212000DF0740F44A815B819E0141155105F1F0C2 -:10213000EA01F5CFD383C28340815181840F951F7B -:10214000C817D90759F488819981840F951F029681 -:10215000918380838A819B819383828321153105BA -:1021600029F4F093E603E093E5033DC0E901FB8326 -:10217000EA8349915991C40FD51FEC17FD0761F40B -:1021800080819181840F951F0296E901998388834C -:10219000828193819B838A83E0E0F0E012968D91A7 -:1021A0009C911397009719F0FD01DC01F7CF8D91F9 -:1021B0009C9111979D012E5F3F4F820F931F20919D -:1021C000E3033091E4032817390769F4309729F4C1 -:1021D0001092E6031092E50302C013821282B093BC -:1021E000E403A093E303DF91CF91089581E090E0B1 -:1021F000F8940C94FB1010E0C8EFD0E004C0FE018E -:102200000E94CF0F2196C93FD107C9F7F894FFCF9D -:10221000FFFFFFFF00E100000000000000C180811F -:102220000000002B0000E7038000000000003902DE -:10223000950297048A02120E0F1000000000E803B6 -:10224000390239020000000017094F091409450935 -:1022500000000000C4017E04DA0194042902DF01B9 -:1022600001020000000082023902B70349060000A3 -:10227000000082023902B7033D0200000000E703BC -:10228000E703E603E603E5033902390239023902BE -:10229000000000002806E703DA05CB04E5032D065D -:1022A000390239023902705B005D203D20000D0AC1 -:0622B000004D4944490005 +:10083000A92E209719F4DD2009F451C08C2D0E94B7 +:10084000510181110AC0BA94BB20B9F261E070E095 +:1008500080E090E00E94B00BECCF282F30E0C21770 +:10086000D3070CF48C2F9FB7F8949092E900209155 +:10087000E80025FF32C0282F30E0C21BD30B8820B0 +:1008800029F08150A0F01092F100FBCFF801C7FED3 +:100890000AC0815050F044914093F1003196F9CF55 +:1008A00041914093F1008150D8F7020F131FDD20D2 +:1008B00019F0A092E8000AC08091E80085FD08C008 +:1008C000A092E800DD24D394209739F0D12C05C004 +:1008D000209719F47110A092E8009FBFAACF5D9AEB +:1008E00084E68093AB02C701DF91CF911F910F91F6 +:1008F000FF90EF90DF90CF90BF90AF909F908F9040 +:100900007F900895CF93DF93EC0180910B018823B2 +:1009100031F083E00E94E9031816190634F081E0F3 +:1009200090E09B838A8380E090E0DF91CF910895EF +:1009300083E00C94BE060F931F93CF93DF9300D0F8 +:1009400000D0CDB7DEB7862F90E034E0959587953F +:100950003A95E1F78983462B4A832B830C830FEF6B +:1009600012E0F801838144E050E0BE016F5F7F4FE9 +:100970008F5F0E94E903F80183818F5F0E94BE06AA +:100980000F900F900F900F90DF91CF911F910F91CB +:10099000089580915B0390915C030C944911CF936F +:1009A000DF93EC01888981506823CE010E94C80A38 +:1009B00089850E9473038985DF91CF910C9473031D +:1009C000DF92EF92FF920F931F93CF93DF93D82E76 +:1009D0008A017B01E40EF51EEB01CE15DF0571F0F7 +:1009E000D7FE03C0FE01849101C088810E942301CB +:1009F00021968111F2CF8FEF9FEF01C0C801DF91E7 +:100A0000CF911F910F91FF90EF90DF9008950F937A +:100A10001F93CF93DF931F92CDB7DEB782E0898318 +:100A200042E450E064EF70E080E80E94E0040E943D +:100A3000F40ADC0112960D911C9113970115110512 +:100A400089F0D801ED91FC910280F381E02DBE0187 +:100A50006F5F7F4FC801099597FD04C0F8010085BD +:100A60001185ECCF89810F90DF91CF911F910F916C +:100A70000895615030F02091F100FC01208301962F +:100A8000F8CF289A84E68093AA020895CF93DF9343 +:100A9000C82F8B3210F5682F70E0FB01EA59FE4F2A +:100AA0008491FB01ED56FE4FD491FB01E253FE4FC2 +:100AB000C491CC2321F181110E94080BEC2FF0E0AE +:100AC000EE0FFF1FEB57FE4FA591B491EC91ED2374 +:100AD00081E090E0B1F480E014C00E945E030097D2 +:100AE00071F0DC0113962C9113976C2F621BED9122 +:100AF000FC910480F581E02DDF91CF91099480E095 +:100B000090E0DF91CF9108950F931F93CF93DF93E0 +:100B1000EC018B01FB0180810E94460521E0892BBD +:100B200009F420E0F8018181F22FF81BFF3F69F5FD +:100B30003FB7F8948091AE029091AF02A091B002BD +:100B4000B091B1023FBF4E855F8568897989841B6A +:100B5000950BA60BB70B4E895F89688D798D481769 +:100B600059076A077B0710F53FB7F8948091AE02EA +:100B70009091AF02A091B002B091B1023FBF8E87B9 +:100B80009F87A88BB98B81E012C0F13079F43FB711 +:100B9000F8948091AE029091AF02A091B002B09112 +:100BA000B1023FBF8E879F87A88BB98B80E0F80189 +:100BB0002183DF91CF911F910F910895CF93DF9300 +:100BC000EC01888981506823CE010E94C80A89857A +:100BD000DF91CF910C944605CF93DF938B3220F4B5 +:100BE000DF91CF910C94450BD62FC82F0E945E0346 +:100BF000009779F0DC0113962C9113976C2F621BF0 +:100C0000ED91FC910280F381E02D4D2FDF91CF918A +:100C10000994DF91CF910895CF93DF938B3220F425 +:100C2000DF91CF910C94740BD62FC82F0E945E03D6 +:100C3000009779F0DC0113962C9113976C2F621BAF +:100C4000ED91FC910190F081E02D4D2FDF91CF913E +:100C50000994DF91CF910895642FFC0181850C9454 +:100C60000C060F931F93CF938C01C0E08C2F90E064 +:100C7000F801268537858217930758F42285338536 +:100C8000F901E80FF91F61E080810E940C06CF5F37 +:100C9000EDCFCF911F910F9108950E94D2113FB7D0 +:100CA000F8948091F7029091F802A091F902B09126 +:100CB000FA0226B5A89B05C02F3F19F00196A11D89 +:100CC000B11D3FBFBA2FA92F982F8827820F911DE2 +:100CD000A11DB11DBC01CD0142E0660F771F881F29 +:100CE000991F4A95D1F708951F920F920FB60F9250 +:100CF00011242F933F938F939F93AF93BF93809132 +:100D0000AE029091AF02A091B002B091B1023091C9 +:100D1000F60223E0230F2D3720F40196A11DB11D0B +:100D200005C026E8230F0296A11DB11D2093F602EF +:100D30008093AE029093AF02A093B002B093B10241 +:100D40008091F7029091F802A091F902B091FA0215 +:100D50000196A11DB11D8093F7029093F802A09314 +:100D6000F902B093FA02BF91AF919F918F913F9199 +:100D70002F910F900FBE0F901F9018958093E90050 +:100D80008091F200882319F08AE38093E8000895A7 +:100D90001F920F920FB60F9211242F933F934F93F0 +:100DA0005F936F937F938F939F93AF93BF93CF93F3 +:100DB000EF93FF93C091E1008091E100837F8093E6 +:100DC000E100C3FF0FC01092E90081E08093EB00C7 +:100DD0001092EC0082E38093ED001092AD0288E067 +:100DE0008093F000C2FF19C083E00E94BE0680918C +:100DF000AB02882339F08091AB0281508093AB0223 +:100E0000882389F18091AA02882339F08091AA026F +:100E100081508093AA02882341F1C4FF10C08091C1 +:100E2000E2008E7E81608093E2008091E1008F7EFF +:100E30008093E1008091AC028E7E806111C0C0FF82 +:100E400016C08091E2008E7E80618093E2008091E6 +:100E5000E1008E7E8093E1008091AC028E7E816005 +:100E60008093AC0204C05D98CDCF2898D6CFFF9177 +:100E7000EF91CF91BF91AF919F918F917F916F91A2 +:100E80005F914F913F912F910F900FBE0F901F9048 +:100E900018951F920F920FB60F921124CF92DF92E6 +:100EA000EF92FF920F931F932F933F934F935F9374 +:100EB0006F937F938F939F93AF93BF93EF93FF9322 +:100EC000CF93DF93CDB7DEB76C97DEBFCDBF109267 +:100ED000E9008091E80083FFFBC168E0CE01459600 +:100EE0000E94390582EF8093E8008D8987FF05C055 +:100EF0009091E80090FFFCCF03C09EEF9093E80034 +:100F0000982F907609F0C6C09E894F89588D2F89F9 +:100F1000F88C91110CC0803829F48091B302809331 +:100F2000F10002C01092F1001092F10045C1913021 +:100F300051F4811141C14130510509F03DC1809109 +:100F4000B3028D7F0BC0933061F4811135C1413004 +:100F5000510509F031C18091B30282608093B302E0 +:100F60002BC1953049F48091E80080FFFCCF822F9F +:100F700080688093E30020C1963009F05EC00B8D3D +:100F80001C8D22E01092E9001092A9021092A80292 +:100F9000F21232C01092A7021092A6020E94070518 +:100FA00099E0BE016F5F7F4FDB01E92F1D92EA954B +:100FB000E9F79983FA8291E09E8390EA98879AEF05 +:100FC00099872091A8023091A902275F3F4F3C8367 +:100FD0002B838D831092E9001092A9021092A8022F +:100FE0001093A7020093A60249E050E080E00E941F +:100FF000E0040E940705E0C01093A7020093A60238 +:101000000E94F40ADC0112960D911C9113970115B0 +:10101000110509F4BBC0D801ED91FC910480F58164 +:10102000E02DBE016B5E7F4FC8010995009709F066 +:10103000C7C0F80100851185EACF973009F445C192 +:10104000983021F481E08093F100B6C0993009F026 +:10105000B3C0837009F039C1EDE0F1E081E031E027 +:1010600096E32081211109C08EE78093EA00109257 +:10107000EA008F898093AD029FC08093E90030938E +:10108000EB0021912093EC009093ED008F5F87306F +:1010900041F7EACF8B8D9C8D1092E9001092A90246 +:1010A0001092A8029093A7028093A602898D8111C5 +:1010B00053C08E899D89913A49F4813209F005C166 +:1010C00047E050E064E071E080E0BBC0913209F09D +:1010D000FCC0833269F48F89988DA0E0B0E08093E2 +:1010E000000190930101A0930201B093030164C039 +:1010F000803269F48091E80082FFFCCF67E084E0F1 +:1011000091E00E9439058BEF8093E80055C0823250 +:1011100009F052C08F8980930B01EEEFFFE78591B4 +:1011200094918B3F9C4D19F0E0E0F8E002C0EEEFA7 +:10113000FAE08091040190910501A0910601B0911F +:101140000701803B9440A105B10509F09EC0809144 +:101150000B0180FF79C099C00E94F40AFC01028152 +:1011600013810115110509F4B0C0D801ED91FC916E +:101170000190F081E02DBE016B5E7F4FC8010995A3 +:1011800081111AC0F80100851185EBCFF1E0FF163F +:1011900009F44EC0F3E0FF1298C08F89882309F448 +:1011A0004AC0823089F440E86DE088E591E00E9411 +:1011B0009A0C882309F489C08EEF8093E80088C0D8 +:1011C00018161906CCF381C0813029F440E86BE091 +:1011D0008CE491E0ECCF833009F077C00E94F40AF0 +:1011E000DC011296ED90FC9013978E010F5F1F4F5C +:1011F0006801E114F10479F0D701ED91FC910680CA +:10120000F781E02DB801C7010995080F111DF701FD +:10121000E084F184EECFD8011C92F6010190002009 +:10122000E9F73197BF016C197D0940E0C601BFCFD6 +:101230006AE371E002C066E371E0FB01449150E0B3 +:1012400080E80E94E004B8CFEE3F2AE0F20751F0B8 +:10125000808191818737A7E79A0721F09093FF0A51 +:101260008093FE0A87E797E79183808380916000EF +:101270008093B2029BE088E10FB6F894A895809322 +:1012800060000FBE9093600097CF80819181873777 +:10129000974709F091CFA89580916000886180936D +:1012A00060008091B20280936000EE3FBAE0FB07DD +:1012B00039F08091FE0A9091FF0A918380837CCF60 +:1012C0001092FF0A1092FE0A77CF81E28093EB0022 +:1012D0006C960FB6F894DEBF0FBECDBFDF91CF91F5 +:1012E000FF91EF91BF91AF919F918F917F916F91FE +:1012F0005F914F913F912F911F910F91FF90EF9030 +:10130000DF90CF900F900FBE0F901F90189580E048 +:1013100090E0089580E00895FC0182818F5BFB01DD +:10132000808381E0089584E0E9E9F1E0DB01019048 +:101330000D928A95E1F784E00895CF92DF92EF92C3 +:10134000FF920F931F93CF93DF93CDB7DEB7C456B1 +:10135000D1090FB6F894DEBF0FBECDBF6C01DB0123 +:101360009C919E5F9C93FE01319684E6DF011D9265 +:101370008A95E9F788E089838BE08A8322E02C83D1 +:1013800091E09D839E8339E0398774E07A879E8758 +:101390009F873A8B44E24B8B9C8B00E011E01E8BC5 +:1013A0000D8B89E0E82EF12CF88EEF8A998F3B8F18 +:1013B0007C8F2F8F98A353E059A387E08CA34DA374 +:1013C0009EA318A70FA301E410E01AA709A786E0BF +:1013D0008BA74CA72DA79EA79FA789AB4AAB2BAB8A +:1013E0002CAB2DAB3FAB48AF59AF9AAF5BAF9CAFC7 +:1013F0002DAF9EAF21963FAF219722964FAF2297F8 +:1014000023965FAF239724962FAF249725967FAF1F +:10141000259726969FAF269727969FAF27972896C2 +:101420009FAF28972A963FAF2A9745E02B964FAF5C +:101430002B972D962FAF2D9760E470E02F967FAFFE +:101440006EAF2F9763964FAF639785E264968FAF29 +:10145000649765969FAF659766969FAF6697679608 +:101460009FAF679768963FAF689769964FAF699748 +:101470006B962FAF6B976D967FAF6EAF6D97A19602 +:101480004FAFA197A2968FAFA297A3969FAFA397B6 +:10149000A4969FAFA497A5965FAFA597D601129685 +:1014A0009C9112979B839B879F5F9A8F9D8F13962A +:1014B0008C912C968FAF2C978F5F80686A968FAF38 +:1014C0006A9744E650E0BF0180E00E94E004CC59F6 +:1014D000DF4F0FB6F894DEBF0FBECDBFDF91CF91C7 +:1014E0001F910F91FF90EF90DF90CF9008958F9212 +:1014F0009F92AF92BF920F931F93CF93DF93CDB77D +:10150000DEB7A1970FB6F894DEBF0FBECDBF19A20C +:10151000423008F44AE08E010F5D1F4F842E912C5B +:10152000A12CB12CA50194010E948910E62FB901CC +:10153000CA0101501109EA3014F4E05D01C0E95C10 +:10154000D801EC93232B242B252B61F701151105D2 +:1015500071F0F80101900020E9F73197AF01401BCD +:10156000510BB8018BE093E00E94820402C080E03E +:1015700090E0A1960FB6F894DEBF0FBECDBFDF910D +:10158000CF911F910F91BF90AF909F908F90089532 +:10159000EF92FF920F931F93CF93DF938C01D62F7F +:1015A000C0E0EE24E394F12C8C2F90E0F801268526 +:1015B00037858217930788F4B7010C2E01C0660F98 +:1015C0000A94EAF76D2322853385F901E80FF91FA4 +:1015D00080810E94EC05CF5FE7CFDF91CF911F9113 +:1015E0000F91FF90EF90089580911B0481110DC021 +:1015F00082E08093170484E08093180410921A0408 +:101600001092190481E080931B0487E194E008950F +:1016100090E0FC013197EF30F105B0F5EB59FF4F49 +:101620000C94AB10809180008F7703C08091800074 +:101630008F7D80938000089580918000877FF9CF0F +:1016400084B58F7702C084B58F7D84BD0895809165 +:1016500090008F7707C0809190008F7D03C08091AC +:101660009000877F8093900008958091C0008F77CD +:1016700003C08091C0008F7D8093C0000895809149 +:10168000C200877F8093C20008951F93CF93DF939A +:10169000282F30E0F901EA59FE4F8491F901ED5607 +:1016A000FE4FD491F901E253FE4FC491CC23C1F017 +:1016B000162F81110E94080BEC2FF0E0EE0FFF1F98 +:1016C000E054FE4FA591B4919FB7F894111104C056 +:1016D0008C91D095D82302C0EC91DE2BDC939FBF78 +:1016E000DF91CF911F910895CF93DF9390E0FC019C +:1016F000ED56FE4F2491FC01E253FE4F8491882366 +:1017000061F190E0880F991FFC01EE54FE4FC591E6 +:10171000D491FC01E054FE4FA591B491611109C030 +:101720009FB7F8948881209582238883EC912E239B +:101730000BC0623061F49FB7F8948881322F3095E6 +:1017400083238883EC912E2B2C939FBF06C08FB7E9 +:10175000F894E8812E2B28838FBFDF91CF910895D5 +:101760008F929F92AF92BF92CF92DF92EF92FF92B1 +:101770006B017C010E944F064B015C01C114D10436 +:10178000E104F104F1F00E944F06DC01CB0188195D +:101790009909AA09BB09883E9340A105B10570F3D8 +:1017A00021E0C21AD108E108F10888EE880E83E032 +:1017B000981EA11CB11CC114D104E104F10419F755 +:1017C000DDCFFF90EF90DF90CF90BF90AF909F90D4 +:1017D0008F900895CF92DF92EF92FF920F931F9315 +:1017E000CF93DF9380ED91E0FC012491E22FF0E0B4 +:1017F000EE0FFF1FE054FE4FC590D490FC012491E2 +:10180000E22FF0E0EE0FFF1FEE54FE4FE590F49054 +:10181000E5E9F1E0C491FC018491E82FF0E0EE0FDE +:10182000FF1FEB57FE4F05911491D6018C91DC2FD1 +:10183000D0958D238C93F70180818C2B808361E080 +:1018400070E080E090E00E94B00B9FB7F894D70161 +:101850008C918D238C93F60180818C2B8083D80111 +:101860008C918C2309F033C08C918C2309F031C00A +:101870008C918C2381F58C918C2379F58C918C2320 +:1018800071F58C918C2369F58C918C2361F58C9189 +:101890008C2359F58C918C2351F58C918C2349F52F +:1018A0008C918C2341F58C918C2339F58C918C2370 +:1018B00031F58C918C2329F58C918C2321F58C9119 +:1018C0008C2319F58C918C2311F581E121C080E0E6 +:1018D0001FC081E01DC082E01BC083E019C084E00E +:1018E00017C085E015C086E013C087E011C088E00E +:1018F0000FC089E00DC08AE00BC08BE009C08CE00E +:1019000007C08DE005C08EE003C08FE001C080E11C +:101910009FBFF6019081D923D083D701EC91CE2BC4 +:10192000CC93DF91CF911F910F91FF90EF90DF90BB +:10193000CF900895DF92EF92FF920F931F93CF9372 +:10194000DF93D82EF92EE42E062F10E0C801019661 +:10195000880F0E94230183E00E942301CD2DDF2DFB +:101960000C0F1D1FC017D10789F0E7FE03C0FE0151 +:10197000849101C088810E942301F82E80E00E949A +:1019800023018F2121968111EDCF01C081E0DF91EC +:10199000CF911F910F91FF90EF90DF900895CF931B +:1019A000DF93E5E0F4E08EE291E074979183808329 +:1019B000A781B085109731F02581368116963C932A +:1019C0002E9315972091FB023091FC02E217F3074A +:1019D00021F4B093FC02A093FB02C581D68120972D +:1019E00011F0B887AF832091FD023091FE02E2171B +:1019F000F30721F4D093FE02C093FD0223E0E53605 +:101A0000F20799F680911104909112040E944911F5 +:101A10008EE691E09093060480930504E0910C0417 +:101A2000F0910D04309731F080910A0490910B04ED +:101A300096838583809161039091620385509440E1 +:101A400021F4F0936203E0936103A0910A04B09142 +:101A50000B04109721F01896FC93EE931797809142 +:101A60006303909164038550944021F4B093640320 +:101A7000A0936303DF91CF910895789484B5826039 +:101A800084BD84B5816084BD85B5826085BD85B522 +:101A9000816085BD80916E00816080936E001092A0 +:101AA000810080918100826080938100809181001B +:101AB00081608093810080918000816080938000AC +:101AC000809191008260809391008091910081606B +:101AD000809391008091900081608093900080912C +:101AE000C10084608093C1008091C10082608093B6 +:101AF000C1008091C10081608093C1008091C300CA +:101B000081608093C3008091C00082608093C00098 +:101B10008091C20081608093C20080917A008460CD +:101B200080937A0080917A00826080937A0080911D +:101B30007A00816080937A0080917A008068809337 +:101B40007A001092AD021092B3021092AC02809112 +:101B5000D70081608093D70080EA8093D80089B550 +:101B6000806189BD89B5826089BD09B400FEFDCF61 +:101B700061E070E080E090E00E94B00B8091D800BE +:101B80008F7C80618093D8008091E000807F80937B +:101B9000E0008091E1008E7E8093E1008DE08093F3 +:101BA000E200559A209A5D9828988FEF9FEF9093C6 +:101BB0001803809317038BE093E00E942902892B7E +:101BC00039F464EF71E080E090E00E94B00BF3CF55 +:101BD0000E94EA0B90E09093C7028093C60261E0F6 +:101BE00080E00E940C0661E081E00E940C0661E04A +:101BF00089E00E940C060FE611E09EE1E92E91E0DB +:101C0000F92E20E0C22E20E0D22E0E94EA0BC82F2F +:101C1000D0E0D093E702C093E6024091C602509113 +:101C2000C7029E01241B350B37FF03C03195219558 +:101C3000310922303105B4F04C175D077CF4682F70 +:101C400070E080E090E04AE00E94770A42E050E0D5 +:101C500066E971E08BE093E00E948204D093C702B2 +:101C6000C093C6028091DA029091DB02843F9140DA +:101C700014F061E001C060E081E00E94EC05C091D9 +:101C8000D602D091D702D7FD2396D595C795D59585 +:101C9000C79561E089E00E94740B209711F460E021 +:101CA00004C0CF3FD10529F461E089E00E94450BD3 +:101CB0007AC0F801849190E0FC013197EF30F10592 +:101CC00008F06CC0EA5AFF4F0C94AB1084B58068E2 +:101CD00084BDC7BD68C084B5806284BDC8BD63C013 +:101CE00080918000806880938000D0938900C093A9 +:101CF000880059C080918000806280938000D093DA +:101D00008B00C0938A004FC08091800088608093D0 +:101D10008000D0938D00C0938C0045C080919000CE +:101D2000806880939000D0939900C09398003BC046 +:101D300080919000806280939000D0939B00C0932C +:101D40009A0031C080919000886080939000D09379 +:101D50009D00C0939C0027C08091C0008068809344 +:101D6000C0008091C0008F7B8093C000C093CF00E3 +:101D70001AC08091C00080628093C000C093D000E0 +:101D800012C08091C20088608093C2008091C2001E +:101D90008B7F8093C200C093D20005C0C038D105AC +:101DA0000CF082CF7CCFC0915F03D09160038A8119 +:101DB0009B81892B01F58091B4029091B5029B83A0 +:101DC0008A83892B79F482E090E00E94B11090938D +:101DD000B5028093B402FC01F182E082998388838A +:101DE0009B838A838A819B81DC01ED91FC91019028 +:101DF000F081E02D0995A090FD02B090FE02A114A3 +:101E0000B10461F0D501ED91FC910480F581E02DE4 +:101E1000C5010995F501A580B680F1CF8A819B8126 +:101E2000DC01ED91FC910280F381E02D0995811197 +:101E3000F5CFC114D10409F4E8CE0E940000E5CE2C +:101E4000FC018EE291E0918380831282138281E013 +:101E5000848316821582108617828091FD029091EC +:101E6000FE02892B21F4F093FE02E093FD02A09183 +:101E7000FB02B091FC02B087A783109721F0169661 +:101E8000FC93EE931597F093FC02E093FB0216820D +:101E900015826187158614861786168682E691E07C +:101EA000918380838FEF808B87E0818B428B138AB5 +:101EB000089582E0809303038093040389E093E014 +:101EC0009093060380930503109208031092070372 +:101ED00088E391E0909300038093FF0280E8809371 +:101EE000090381E880930A030E94F40AFC0121811E +:101EF0008091030390E0820F911D0897C4F5A281A1 +:101F0000B381109729F48FEF92E0938382830EC000 +:101F100018968D919C911997009711F0DC01F8CFDC +:101F20008FEF92E019969C938E93189780818093FF +:101F30000103818180930203908180910403890FC2 +:101F4000808380E090910303891788F4A0910503B2 +:101F5000B0910603A80FB11D9C91A181B0E0A45FD0 +:101F6000BE4F9C9391819F5F91838F5FEBCF1092C7 +:101F70000E0310920D0388EE93E0A0E0B0E0809392 +:101F80000F0390931003A0931103B093120384E402 +:101F900091E090930C0380930B038FEF9FEF90934E +:101FA0001803809317038091230481110BC01092B2 +:101FB0005C0310925B0310925E0310925D0381E05C +:101FC000809323048BE593E09093600380935F03F9 +:101FD00080E1809307048091630390916403892BCF +:101FE00031F485E094E09093640380936303E0917F +:101FF0006103F0916203F0930D04E0930C043097B9 +:1020000021F085E094E09683858385E094E09093C9 +:1020100062038093610310920B0410920A04809172 +:10202000130180930804805F809309048093130157 +:1020300084E891E0909306048093050483E1809303 +:102040000E0484E090E0909314048093130480E1E4 +:1020500090E0909316048093150484E090E00E9431 +:10206000B110909312048093110440912601509175 +:1020700027016091280170912901FC01408351835F +:10208000628373839093100480930F0485E094E03F +:102090000E94310641E06091080485E693E00E94C9 +:1020A000200F609108046F5F42E089E793E00E948F +:1020B000200F609108046E5F43E08DE893E00E947A +:1020C000200F609108046D5F44E081EA93E00E9474 +:1020D000200F609108046C5F45E085EB93E00E945F +:1020E000200F609108046B5F46E089EC93E00E944A +:1020F000200F609108046A5F47E08DED93E00E9435 +:10210000200F60910804695F48E081EF93E00C9430 +:10211000200FA1E21A2EAA1BBB1BFD010DC0AA1F96 +:10212000BB1FEE1FFF1FA217B307E407F50720F040 +:10213000A21BB30BE40BF50B661F771F881F991FBB +:102140001A9469F760957095809590959B01AC0104 +:10215000BD01CF010895EE0FFF1F0590F491E02D12 +:1021600009940F931F93CF93DF938230910510F45E +:1021700082E090E0E0912D04F0912E0420E030E028 +:10218000A0E0B0E0309719F14081518102811381C4 +:1021900048175907C8F08417950769F4109731F06C +:1021A00012960C93129713961C9327C000932D043C +:1021B00010932E0422C02115310519F04217530740 +:1021C00018F49A01BD01EF01DF01F801DBCF211501 +:1021D0003105F9F0281B390B2430310580F48A8150 +:1021E0009B816115710521F0FB019383828304C0FB +:1021F00090932E0480932D04FE01329644C0FE017C +:10220000E20FF31F81939193225031093983288380 +:102210003AC020912B0430912C04232B41F42091BF +:1022200016013091170130932C0420932B04209138 +:102230001401309115012115310541F42DB73EB738 +:102240004091180150911901241B350BE0912B048A +:10225000F0912C04E217F307A0F42E1B3F0B281774 +:10226000390778F0AC014E5F5F4F2417350748F00F +:102270004E0F5F1F50932C0440932B048193919336 +:1022800002C0E0E0F0E0CF01DF91CF911F910F910C +:102290000895CF93DF93009709F481C0FC01329732 +:1022A00013821282A0912D04B0912E04109781F414 +:1022B00020813181820F931F20912B0430912C04B7 +:1022C0002817390751F5F0932C04E0932B0467C0CD +:1022D000ED0120E030E0CE17DF0740F44A815B815A +:1022E0009E0141155105F1F0EA01F5CFD383C28378 +:1022F00040815181840F951FC817D90759F48881EF +:102300009981840F951F0296918380838A819B8196 +:10231000938382832115310529F4F0932E04E093F1 +:102320002D043DC0E901FB83EA8349915991C40F13 +:10233000D51FEC17FD0761F480819181840F951FF3 +:102340000296E90199838883828193819B838A83A2 +:10235000E0E0F0E012968D919C911397009719F0B0 +:10236000FD01DC01F7CF8D919C9111979D012E5FAE +:102370003F4F820F931F20912B0430912C0428177C +:10238000390769F4309729F410922E0410922D0425 +:1023900002C013821282B0932C04A0932B04DF910D +:1023A000CF91089581E090E0F8940C94D71110E05B +:1023B000C8EFD0E004C0FE010E94AB102196C93FD7 +:0823C000D107C9F7F894FFCF23 +:1023C800FFFFFFFF00E100000000000000C1808166 +:1023D8000000002B00002F048000000000003902DC +:1023E80095029B048A02120E0F1000000000E803F9 +:1023F80039023902000000008A099D0987099309FA +:1024080000000000C4018204DA0198042902DF01F7 +:1024180001020000000082023902B7034D060000E5 +:10242800000082023902B7033D0200000000E70302 +:10243800E703E603E603E503390239023902390204 +:10244800000000002C06E703DE05CF04E503310693 +:0E2458003902390239020D0A004D494449008B :00000001FF diff --git a/.pioenvs/structure.hash b/.pioenvs/structure.hash index 369d308..9ed9b4e 100644 --- a/.pioenvs/structure.hash +++ b/.pioenvs/structure.hash @@ -1,5 +1 @@ -<<<<<<< HEAD -5b5b88025335f306e0a3618fe34989e446b2df4b -======= -c10474de9f98698a47fa86c8fcae8d408ed852d7 ->>>>>>> a60abe1c71fdccfddb532c4d4cf5d21b381f314a +5b5b88025335f306e0a3618fe34989e446b2df4b \ No newline at end of file diff --git a/lib/Keyboard.cpp b/lib/Keyboard.cpp new file mode 100644 index 0000000..e69de29 diff --git a/lib/Keyboard.h b/lib/Keyboard.h new file mode 100644 index 0000000..6f546cb --- /dev/null +++ b/lib/Keyboard.h @@ -0,0 +1,15 @@ +#ifndef _KEYBOARD_H_ +#define _KEYBOARD_H_ + +class Keyboard { +public: + Keyboard(); + ~Keyboard(); + + int getKey(); +private: + + +} + +#endif diff --git a/src/main.cpp b/src/main.cpp index 4f5fce0..26e00f5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,28 +1,38 @@ #include -// #include #include #define s * 1000 -#define TOTAL_LINES 4 /* Pins */ -/* - analogs */ -unsigned char muxSignal{A1}; -/* - digitals */ -int muxSelector[TOTAL_LINES]{18, 14, 15, 16}; +/* GPIO (I2C) */ +const unsigned char gpio_int{0}; +const unsigned char sda{2}; +const unsigned char scl{3}; +/* Multiplexer */ +#define MUX_ADDRSIZE 5 +const unsigned char mux_sig{A10}; +const unsigned char mux_addr[MUX_ADDRSIZE]{15, 21, 20, 19, 18}; +/* ShiftRegister (OUT) */ +#define SHIFT_OUTPUTSIZE 4 +const unsigned char shift_data{14}; +const unsigned char shift_latch{16}; +const unsigned char shift_clock{1}; +/* keyboard (IN) */ +#define KEYBOARD_SIZE 6 +const unsigned char keyboard[KEYBOARD_SIZE]{4, 5, 6, 7, 8, 9}; /* Components */ -// Multiplexer m(muxSignal, TOTAL_LINES, muxSelector); -AnalogMultiplex multiplexer(A1, {18, 14, 15, 16}); +/* GPIO (I2C) */ +/* Multiplexer */ +AnalogMultiplex multiplexer(mux_sig, mux_addr); +/* ShiftRegister (OUT) */ +ShiftRegisterOut shiftRegister(shift_data, shift_clock, shift_latch, MSBFIRST, SHIFT_OUTPUTSIZE); +/* keyboard (IN) */ /* Midi links */ //USBDebugMIDI_Interface midiInterface(115200); Analog potentiometers[] = { - {multiplexer.pin(0), MIDI_CC::Channel_Volume, 1}, - {multiplexer.pin(1), MIDI_CC::Channel_Volume, 2}, - {multiplexer.pin(2), MIDI_CC::Channel_Volume, 3}, - {multiplexer.pin(3), MIDI_CC::Channel_Volume, 4}, {multiplexer.pin(4), MIDI_CC::Channel_Volume, 5}, {multiplexer.pin(5), MIDI_CC::Channel_Volume, 6}, {multiplexer.pin(6), MIDI_CC::Channel_Volume, 7}, diff --git a/src/mainTest.cpp b/src/mainTest.cpp new file mode 100644 index 0000000..4f5fce0 --- /dev/null +++ b/src/mainTest.cpp @@ -0,0 +1,182 @@ +#include +// #include +#include + +#define s * 1000 +#define TOTAL_LINES 4 + +/* Pins */ +/* - analogs */ +unsigned char muxSignal{A1}; +/* - digitals */ +int muxSelector[TOTAL_LINES]{18, 14, 15, 16}; + +/* Components */ +// Multiplexer m(muxSignal, TOTAL_LINES, muxSelector); +AnalogMultiplex multiplexer(A1, {18, 14, 15, 16}); + +/* Midi links */ +//USBDebugMIDI_Interface midiInterface(115200); + +Analog potentiometers[] = { + {multiplexer.pin(0), MIDI_CC::Channel_Volume, 1}, + {multiplexer.pin(1), MIDI_CC::Channel_Volume, 2}, + {multiplexer.pin(2), MIDI_CC::Channel_Volume, 3}, + {multiplexer.pin(3), MIDI_CC::Channel_Volume, 4}, + {multiplexer.pin(4), MIDI_CC::Channel_Volume, 5}, + {multiplexer.pin(5), MIDI_CC::Channel_Volume, 6}, + {multiplexer.pin(6), MIDI_CC::Channel_Volume, 7}, + {multiplexer.pin(7), MIDI_CC::Channel_Volume, 8} +}; + +/* Values */ +int val[16]; +int ref[16]; + +uint8_t readCapacitivePin(int pinToMeasure); + +void setup() { + Serial.begin(115200); + while (Serial.available() == 0){ + delay(.5 s); + } + // for (size_t i = 0; i < 4; i++) { + // ref[i] = multiplexer.analogRead(i); + // } + ref[8] = readCapacitivePin(2); + pinMode(0, OUTPUT); + pinMode(1, OUTPUT); + pinMode(9, OUTPUT); +} + +long loopAverage = 0; +long lastLoop = 0; +bool on = false; + +void loop() { + // long start = millis(); + // for (size_t i = 0; i < 4; i++) { + // val[i] = multiplexer.analogRead(i); + // if (val[i] != ref[i]) { + // Serial.print("p["); + // Serial.print(i, DEC); + // Serial.print("] = "); + // Serial.println(val[i], DEC); + // ref[i] = val[i]; + // + // } + // } + val[8] = readCapacitivePin(2); + if (abs(val[8] - ref[8]) >= 2) { + if (val[8] > ref[8]) { + // Serial.print("loop() time : "); + // Serial.println(lastLoop, DEC); + // Serial.print("average : "); + // Serial.println(loopAverage, DEC); + Serial.println(val[8], DEC); + } + ref[8] = val[8]; + } + + + // if (val[0] >= 500) { + // digitalWrite(0, HIGH); + // } else { + // digitalWrite(0, LOW); + // } + if (val[2] >= 500) { + digitalWrite(1, HIGH); + } else { + digitalWrite(1, LOW); + } + + analogWrite(9, val[0] * 256 / 1024); + + MIDI_Controller.refresh(); + // lastLoop = millis() - start; + // loopAverage = (loopAverage + lastLoop) / 2; + //delay(.5 s); +} + +uint8_t readCapacitivePin(int pinToMeasure) { + // Variables used to translate from Arduino to AVR pin naming + volatile uint8_t* port; + volatile uint8_t* ddr; + volatile uint8_t* pin; + + // Here we translate the input pin number from + // Arduino pin number to the AVR PORT, PIN, DDR, + // and which bit of those registers we care about. + + byte bitmask; + port = portOutputRegister(digitalPinToPort(pinToMeasure)); + ddr = portModeRegister(digitalPinToPort(pinToMeasure)); + bitmask = digitalPinToBitMask(pinToMeasure); + pin = portInputRegister(digitalPinToPort(pinToMeasure)); + + // Discharge the pin first by setting it low and output + *port &= ~(bitmask); + *ddr |= bitmask; + delay(1); + uint8_t SREG_old = SREG; //back up the AVR Status Register + // Prevent the timer IRQ from disturbing our measurement + noInterrupts(); + + // Make the pin an input with the internal pull-up on + *ddr &= ~(bitmask); + *port |= bitmask; + + // Now see how long the pin to get pulled up. This manual unrolling of the loop + // decreases the number of hardware cycles between each read of the pin, + // thus increasing sensitivity. + uint8_t cycles = 17; + + if (*pin & bitmask) { + cycles = 0; + } else if (*pin & bitmask) { + cycles = 1; + } else if (*pin & bitmask) { + cycles = 2; + } else if (*pin & bitmask) { + cycles = 3; + } else if (*pin & bitmask) { + cycles = 4; + } else if (*pin & bitmask) { + cycles = 5; + } else if (*pin & bitmask) { + cycles = 6; + } else if (*pin & bitmask) { + cycles = 7; + } else if (*pin & bitmask) { + cycles = 8; + } else if (*pin & bitmask) { + cycles = 9; + } else if (*pin & bitmask) { + cycles = 10; + } else if (*pin & bitmask) { + cycles = 11; + } else if (*pin & bitmask) { + cycles = 12; + } else if (*pin & bitmask) { + cycles = 13; + } else if (*pin & bitmask) { + cycles = 14; + } else if (*pin & bitmask) { + cycles = 15; + } else if (*pin & bitmask) { + cycles = 16; + } + + // End of timing-critical section; turn interrupts back on if they were on before, or leave them off if they were off before + SREG = SREG_old; + + // Discharge the pin again by setting it low and output + // It's important to leave the pins low if you want to + // be able to touch more than 1 sensor at a time - if + // the sensor is left pulled high, when you touch + // two sensors, your body will transfer the charge between + // sensors. + *port &= ~(bitmask); + *ddr |= bitmask; + return cycles; +}