From 47a25d15403bc50ba0c5b99382e0ebd9029fcc8d Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 22 Mar 2023 14:32:01 -0400 Subject: [PATCH] fixup! FLUification Adds AJ and Greg as co-authors --- .../batch-sweep.drawio.png | Bin bip-0345/opvault.drawio.png | Bin 0 -> 92563 bytes {bip-VAULT => bip-0345}/vaults-Basic.png | Bin bip-0345/vaults.drawio | 1113 +++++++++++++++++ bip-0345/withdrawal-comparison.drawio.png | Bin 0 -> 20720 bytes bip-VAULT/opvault-flow.drawio.png | Bin 51069 -> 0 bytes bip-VAULT/withdrawal-comparison.drawio.png | Bin 20724 -> 0 bytes bip-vaults.mediawiki | 692 ++++------ 8 files changed, 1387 insertions(+), 418 deletions(-) rename {bip-VAULT => bip-0345}/batch-sweep.drawio.png (100%) create mode 100644 bip-0345/opvault.drawio.png rename {bip-VAULT => bip-0345}/vaults-Basic.png (100%) create mode 100644 bip-0345/vaults.drawio create mode 100644 bip-0345/withdrawal-comparison.drawio.png delete mode 100644 bip-VAULT/opvault-flow.drawio.png delete mode 100644 bip-VAULT/withdrawal-comparison.drawio.png diff --git a/bip-VAULT/batch-sweep.drawio.png b/bip-0345/batch-sweep.drawio.png similarity index 100% rename from bip-VAULT/batch-sweep.drawio.png rename to bip-0345/batch-sweep.drawio.png diff --git a/bip-0345/opvault.drawio.png b/bip-0345/opvault.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..702189d156d0082416fcb1f8d33ca464558d766f GIT binary patch literal 92563 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 CzF+(R literal 0 HcmV?d00001 diff --git a/bip-VAULT/vaults-Basic.png b/bip-0345/vaults-Basic.png similarity index 100% rename from bip-VAULT/vaults-Basic.png rename to bip-0345/vaults-Basic.png diff --git a/bip-0345/vaults.drawio b/bip-0345/vaults.drawio new file mode 100644 index 00000000..6f7fd4eb --- /dev/null +++ b/bip-0345/vaults.drawio @@ -0,0 +1,1113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bip-0345/withdrawal-comparison.drawio.png b/bip-0345/withdrawal-comparison.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..8a76d20722d614c75ff804b5bdc487488bb79f66 GIT binary patch literal 20720 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

rN&aJp zu$?(^+=A!3H@>TGwy`tf28(LeMkSW++zNcn-c-qPx_Hv}(@3-th4#JDUc&0xi}j^- zFm+PMqK)@bk9*a8RJF~SS6@E83fj(yBc5}pruQ4recBL|50EZ%&qU)de(XEuh8K-S zTE4S0ICm|`d(+FkQrcL&@h1NyzRb8}(ZsQCjA7-!SyuLWk`GsuOobRCO zyBEnndzR-}wn62Otmo8o*#eh<5AyAtBa5GjUrHm+_g9q-`A_W4ZR{<?zYuO3glX3Th6iO+8-Yc8IFV|#0u8#I-=O#Z|pNa&=0mlrKxs37A%mW>p+3? zwbietYWeoU>u)9tzOF1z^Ym1oHuqtzbhMlwj*zIH=uPNN!fmt*WS0JzDQbEc#?e2L zQ}BQG_Gby=5w9@Wu?4MNyjqC-&MPVMxOM*q9-e zx|nH3yL2s0{ObBD!}k?29T7hkX0d2_TGF^#nJ}alFXJAibdy@#q4_u>zFv61yWt3> zju-hrFqUbQzO>cd$_uxHHohn4o8|NrxmOMN*vU#f|Dv%9tQ!Xx3M#JJ+bl&sym&Pe z2~$2qCEo72MSbPq_le#2rU4;;V4)9J^$B@mpJTM`w?#7(o^)pBG`^ugPCH7k*= z_@tyxx7M+!3gq^Vu9}U-Fy}d$(MRLerYO6@ce;e+nU(M~p9&rfgk$nDk0C+%(@IMd zTkAtu)(gvcYR7lPnU1=p7Pt^O8GZcj)g>2vT%eK4aw^yB67=CGVP+~#HpA4liF+<0@fyz7hjd5b zmcgE6yhbi7)$Rx6+=R2x>VxS|Ci8c%ex48wJ>_sD_{XQbnH5`_YQ-yJ;k!8Hb0X04 zu5P0k_3@{l4sZ*|`Kam?UdT4w!oEbMrpAxa=WV6-1|=^nAVPO<2_}~&>Ybl95V^B~ zIc@0nAYCzGVGs;LPeE0gw*&9sw&T{-!HLxZblWLxf92wqs+E>o!6S;Ohfw@nu#FGt z(I87utn6hABReicrf|7LnwySIGD!A|D0Qy7%&GpryWXLN@>VR+s23!{NXzo)TOeJvb&-ojgttG72&ynHK1L6Il?tZ zOMs`3tMJ?$=b9r&KT0}jNAJL9g_|Pc<;YuNug;<^)`IDl8yI?0dUSL-V}am|JMlYInTZ8BUP3-oWf+oLpmLprq8CDUfW3 z+Tt*)MbER%#`qEyv!SdDNItE8wuzU0<=)PWxG=xSiWZ!Ctfg6=H(n-7b=5g+iI!tuQLM)K*$2!*Vv!9<37X&`zB3urDCq+$UxB-YNh-HA zk2u8`L8S`YM^IPCFR%7zUZzck-#<0tf9QtUM4&8eoUi7`l`35q%}4v#ilw6txHX^O zXGbCj)yx#WTavgEM^l4|jz1B3+?yZfYv)`tiCP0$M~~3vkB0Rs(_7V7Z%%C+n#@S1 zXwqdxk)-;C_*iQ-jau5+WmkNhq3F6mZIEb*X0HZFuZttMvVleG4QJhg5bR(_@YTFu zsaY`y4LfyIbg0Wpi@UAmV1O6D+Y_!79NT_6hRllK{1Buu8{HAPCS31(}LXshzYGcKhp@8Fk94S#W^@oCEW9;jlEYiBeYJ0s$N7%}?fXtv1q zhwblyopJJC-FawVV`X>cp-ygzY;g;uz-Q0BYLC8whJlw)MMm-4W zI&qUP5q1viMo_Zrg#QvegV@EFj#~Dc`{W+Mn1m0YgvlqWZ6nsK(2aTuCbzWOe?2#*(tZEHNJK3O7!*E zv6~b42R6+^_R4wuXHpd;P&7S#-{6(DWXg9>SzCnuUd)D`TiY{8{~nLSvI5KmlpAby zhw;0F6CmNfaxn~*OW)f$<{HA82dOy~&_+MR-mzTzsFt?$ly3-qJ!)*qW7kbN#PKeI zAgxv*pp95`rYT7|V2W+s@lb&f031irpg-O0y^WVZ2LEG!=0Z}yVx{|iyqFKqQT|+L zUQD{Ip@V+w)G656wM<`?fN=G+jwxYk?B%ckInewOKR|=oDfboNYO-fV$zS3`1m6q`;Rw*^Qz)Ds}` z-mPFEZ|@7$vmOrya6vBc2Z1rLotCo9Oi1UGo28TD#2g6uyhNX^U%tHBJ#PdJ*$8B$ z8!ytc#~t(?rfB?eX_Amhx$mqg_snH}qUZg*z+gg|09bV25O;}amVqHVfVy9fsS)P4 zMxJBZfGPVz`uKe@n@T8T)q39ExvfcM)wA!pe^H`${UKdtMB^1E8a8HP{d6WEPc=|G zTYpmk`ccqtDD*CCAo~(C`|AgJBS;M&-Fr$z`R@GxEhh z>lkTsPY&w5FX4duKK7v~+DN5G?9f}|1ho+tZGioq_>Pv}qH&)7Iad2ExsRXlsVaYc z&9k)jy{V6xOn1hpF1DNXf4jry5LiH-Xij;4<-+_=w%`sJD*WYp^*;!S(={OcEk`Q+ zNs;`&+m<8y_ilhJw=dFCNv({J$B3$=PwvABelCiCyZ$;z%$grQE_P^ z<~9`g)=aKVS?P3M)kl@3f?GX9wU=_WA`UEFQ(dbCSkQU5>e@5Ako85%m)h-pHS2vf zJ&C>pldYmU0@5zmmA}82SpqPl7lcKeZ$CL!nL#I!sdLO(^wKLxxw_G(meM4G-r}Br z)ee|Ui=BbiEJxZ=C)4t})~i?Nin<&^`f)Yul<5IlmC_T9h7R}M2GGYaPWzsHsFS%7 zr`}LrV`|v|6`MG;ks57S2p#Zy1(=In<6qx7Y_x9Mb=YG(Ii&i-L&&@JzQ&ldc2#Co zI|AN`HNCvT^-6_pRrA-PhaLvt{Q5&!%Fu>c^2)vb!0#W#S@2zXiR)jksruC3r`p9s zux`^``DHvt=Ud!9CQOFm*5@}?=Y4C}PTV^GS#NWFK4eglJT}oyu*X_m6uKM!DID=;rd82?);*;8uXfSz*6ycp}^+;z^SYAHiIkot3Ev+3geY#wG>}-U34Qt5}CCYx~xtX3KKuEaWpA7AgjQI5G8V^0di*0X) znN16#n@i&PP|}ZyZN}RP8-gxbq#~^Oo*&jLATgR`C6&+dDfe&rcPEjK(0B zb}zPcud{OXUbpA)=i+|%cILR!i_RMK#AVi;4s9LWt18G$5ZVGiQ5>QM?0d| z#^Uk4fQG4EKTug~Y#l4%V6P#@X7o@g+)B9@*dtfY8j+v6JBvoP6a*S|g@ zqUt?7zqsHID3Q7FTc?~th6M%*P){aQt6d3MYY34aqzf3WGr;k*ygs}Dk${EP;C7Y- zeTz=^A(O`9-0x53yd2Cuw-D5_q`LWCl`?V%UU|%**C#r#-2{Fmq&Y|V6zxdN;z*AI za|_inK|Yj1JTPGW6aaGdY}kF1Mx0B$-Ix%E^(kckmJXh5*(t<_n-$30 z=}Fey%O;N=hae?Feoh{9JkQdpMWtg{>B0+^fT^b$S&HR&dimE4!I|q1O?9ue`1vpP zPCt$8t<5xfGBXqOsd`hQv9^tmyksmyYTL9*<*=GlBH)$^QvSHXPF6M{y3!AxLtkze=xwYYA zf@>B89@p?6m-qhsTJajvzg;(Nwgc%veq{=AvC!n;ldwN5Xs#2`Xm`Y*-d<_vWBdBb zeU{QsUI|;hI$6GZY+S(?tRE#O=_@{DwQp78#Y6M#4zlb`4L;|^JVBpkbqZLPhgaW^ z@4<1Fo%VV2GGgd^dElmE_>L zDD=U(nTLzLuy^DuZ9b@}UzYcwT2_;+qxo=CiR-2>rHOX6>h$T(HTDna=G2K)uhpel z(yMY=Q5z$BX-!v^ui-}JLi+4Wc9lNfs*m}@id^3A>mv07UMygBwyd9!7dV^tFf1US zC$i+FMG9}0^x$}4wu5WgiJ&rRp6DXvOU2LEPu%S+K5Z1nF3Zp|YThqD?W+czb4nHil!_^~*E!AQpPR zLt{KksBXo_Z;2Q3!|inAV~47{r&Om>nxnVnil-vftH$If#xk4PO!I4Ljp-3loi~iW zr4N(>TB=?4vi{jVk2U}<$0xSizasdEb9O^GkhDOQH5_^wg|jIU9=BdhKJ-80o}eC?v5iR>1K&D=-!%HL7%kI5vzH);w>V`tP^ZhyyZNJ1WM zGi#gSGd?hV@=IIj?SS*SKC!eyR4Y>Y-Qts1X&Yw`)dsC=^Tuh=Sg3(n_6HVQCtl_z z#lC;it*0QGUmKLt5z=l(W|FN9^;317oZ|dRsX`euVgan^-mq1@r_-tTimW6|3c~B_ zEHlrPu5=7;ES0T8!}-T<o}7#j z)FJFlcY%0v(gL~;syy2^PW_w#EzHiS;it~&bIgI=_+ELlWN;UoGVP;1rfT4Zp%ts5 ztzQ0~u+`QNZ}z5K6kNwVPov5<$q(OLhg&w?VGX7Ql~gORMV~@QbDK5pRA`ZJapKW| z9I6P}+`#o1d7+N!s0Q<2N>(1LHoZCuv$A_CZ@#o!SCl6*BG=f$lQ&Ca_H=;oIf+o@ znJ)_A#%%5CDQY%eXJyX8ho>MlnzZ>IWk%XzV`vpB$+`>1O>0>+*7V+3>8hy=>3ZG$ zKD}TKm8d^F0x3qkqDa4Dh4{`W4K7DjZ8?}!0 z7Zjdu$n0h_%{}!*P?XlLZ^Yd`oF?>+K4cH&Td{@iLWzcn9bx^q%_{7>bJc9bhC@I4 zc+Z|MXC4VIw;3vZplR89!6kCr9)M~2-hwK}KWZZ5}MpYrAPleK@hAV0* zbBc^QMUFL}qp70h8L#SWPMiWBcrVMmqBbZkfBa!qqi*wCm$GQOoLSC;j+N4m;vD0c zN2hd5j_+?KJac+gqkT(o_WoPfv-xTThOCNv^osJ`B*6Oi>YaOkUvaxvt zK}#_mu7p$=k~lbNds3~MX!WW9&9}tddvSaU zaqnTK0>~~Hg@@Ruc|;70L3OQ(c3L-iIydIZzzfvrat4?P+g;<6zjAO>3BYU}vv?oz z;7sb{edY$VU3U0k+G3|o|J@W+kjA?}j0G3sOKTRN&`R^QseAIP+&O?=$;aCu_ONTI z{{%FTFaW=uP0jM(Yj(xlJnY6(N9a_FLj^I-4pd9i%Pgm6?|=-1^e#XJ;D4>bcAL}X z5~E((9G@SZ{*_ajUjdW2VlE@$ly&=to|Tl5@}ha04R^`Mg%8j{Pcc+6AwRB*%VlA{ z?$-pqmv&q(Fh2Zy0wAw;P`7voCXiXU&$PYv()Ow{m_50}B9G5uvn>_H{b3T+s#>6n z2RP?w)m|}WOQ%xz8t-Jb4$ayJ2&Js4F_&z_g*kc!?sHCkuMkMw(~m)@V$TN*dooQ< zoL$n`LsS0>ih!knx%he!`km_EcLqP3TiRK_e4LpRpHv4aF-M8op+5+W9n5QNFv=ea z3blP;ouZAo?rr&()**BcxTdM*!uLD7{$K0v(dV$$L?z$eZ=>(L`YXu*M9TGnqFlhc zu>o2DBEJfxr3DbL-u8z8iq7_y6yf?SLE#>;!~E?4yZG|-cE0)9183(gD?|&v1$nv?V^ffqhdxN|vXcYojj!1kQ~(uyCN6-@e8yuaU(3D#^7LW= z70cB^KoVB!`tE>D6(v{9ru04g%B5}Gg`NAmXoIYW+fL(~R#Gg+YvFcD1G0@Oxd`%^P!)iacFXmJ z!hd~dQ#`Z@kb7pEhkh6o01PM~dEuf!ges5}BnO0x3y3f0dVd|*R`3lM6TeSslVUQO z8WpBH%=bS39^DFv9-v~Bfth{0^z7CH;!vUv90h;{zShb~nYYFTY))RL}qu144NgPm-jLzVw~9|hYP zs3+#r%@TH%#S5+15`awz;*PAJ%(-++f1|OkF5pSSf3eQxq6p>kE&(^dXb3baE^X}C zh|!-O+I?8Qnf6I;jyrY@auFC!_jI(Fy=4+#hAf16>MYh!y%aV(|iUZu5BOci_vXPM*;>bNbUj(#FOF*kzq@p*KNXn zjzPC1UL~k97gf@@8J>0;Sa6PX^b{WhkC*INtBA(fadh#_td+g#{&{{>@)9vv?0Rgq zfr0=OH)Hwn>C>m8ZF@QA55%s?fpOjV@8fDbWJAbr5Ibv`!_?z!SGpuUGB;RLL!Rx0 z+)q&`AIUccyW{g;b_aN`)uq*U5;b&Gspp~TZ?RV#YHhecmQm)Hap0l)dLJ<~ZR%o1WIzmOk|DmlX126%1{4Oz8P8#c zz3A`@!l!QKjsx>wl5=gm2g|t|jZL>80oKzQ6sBFm6Bb2OXP&*90TgUec7Am)ph0`L zh6UOZp62tmT%F=Mv!+1Vn7w4m*)I4eYTiy@$Or zRZ?CiJC6^Fiz;L<@=tao%gtGw@v8&`Rx|MA@(_5%zxU2ObD5mw0uviiv2;GJSyUfIcKJB9TvPFcCk84?9n_~b~=*x;`GjbiV7)7rKpfnRD% z@q^WhN{wvGs3$a3NE7XiAnCo-65xLJa{1SukwSRZ(x|zlnmxkzX*q9YZuK=%Z|5Wm zQ72M5i`WDy3njiY0={Ad2&l-%5vXM?2~bob8ojYcx;-2N}{yd{N8vE*H`G4+^pC{ zUV2@(8hiM!xE6aap<|`*6Ij+Hk!I00olp!vDc^*B>-JqfTQ&fTI$ff0zyPkqZD8fI z9qe6)VnjmB&TnOK+vg!Ie;>BGZ>@7{jxaaB1>91K`Uq?Vi?sE=!u5q&=gCJ%;}v_+ zN2{qa4F~ARX;d9_FtBKnZarR&>wBFxFh8}y_O}nEj^uRy+=#CeVXI6s4`k0-n8a28 z?_(7f8~cZn{m0_$<43nldSp~jo_D<|Rz5!K%na7H=YvQQCm(Y!^ZhHBbW9*WN-^p% zCvrO#^Er4u_1_$!iTw@Bm-seI^UmOz znA(eG?ai{tUQ4#R!3^7HWS$0(uFOWBEjJ=2@YFAkfGRm;7QSUeG$Uc(&*!yM_^;Yc zSScvo%pJEMZFc5kZ_~ejPL$zK9jK{qo^*5mGE@sDlL#jB7)%EJ&&hm{_&B68+X;YI z3D5wxvHxJ!;4eYmC(zMlT)by>0gdt)TK*wXsY{VEWA*X-Lh(EV+gYBL1e|0J%!B9C zT?anC`P^N9nbog!$p^ArcL>ye6J%T)_s6S-R0~`R0nFTX>;r|0?5BxWIry+mG((uo zhmL?6pUGCqrgvS{R8ZEY&N8{&vmp=S2ygSlBN&!f|2=Y4K3w~}Yc9K%+M23cO8BI~ zHzWjfg|+PIon3-7RDvMOr9sij#5g4P)nWI)Y8MF}D4N zJR+X-uvq_cjPKd%kd55Wjk>G5PC1ALdv9lS5XGuDR;HQkx%dm!m5C>pARlw+9j%6% zTUQ&R_U)zPdyC)ZCKLs)Q?VfJe=t6db`X&Bd|ye%b;>a|VR zJ?Uj;DS)yoC~$75R}3$0UjBU7VH@B4;GTa3j*g+&%R|))4Z^u0=yFW9PopHv%6AGWKXxgt60|hB?+u5jh3NW~)_qLq}FMxAa z&*#D|{jXz&0bhd^UI5FkW=WpD8&Y$c*jjx_G^0mCw>Ie1i~Ot8Z)1@5XeG+bvulFX z(^kXp8xzMU{QRw|lzZhv_97V#62CLad#-nLPc=mylzQpbl$7`;MgGc}gRyJU<$g6M zFO2q|feM2-^te&?2z#_)wnJ;!D&__$ulzG-0ATuOYPSpR?36DeW|Sme-FB}X^qa}C zpPJJKzz-<+Xq=uN!X8--=Mm|h>#ssc*z2@{L@MTnez2(R^U|Z$HUnw940M&a9`hmW z0SqAVuirgLN17#&m|Q*Z7-vw2!9S~yi&2W4m6c6638aqE?fe-JJwS<@)b%cpJfYuT z992EH0K~FWr#_x?JhE!qbPTF2zRV7?*1~7saCMBP8Vg$m^kD5s+emCXa|;i1U$Ru5 zNK13Xp)nbbl_!Z-hSfaggghw>kbV|{aoSwlbtDJS$8+3eAYUv6D%D;P@p6EenC3`% zcVDcOGK(r3!xXuFpm$UI52t#)5)O&{{F#>K{EyYT`+&h< z^vF-k7eH1c4YC^7e;8-X3{tc<2=ZEi&)zR3;L_}D*`Q#K`hhogZ)ar8BC^V8qD-nZ-jY{Uwgfc-qAg0P1Av>*mf%s$r|$6AF^QOHTJ}E)G@GU#885fC3l= zFfV=RjKr}6P)9BY08RtVmahLUz;ZBOKG4x};nmc9$~zPSR3@dOX6YyMFY?+S4_oET zSG#fR_nlXO{3g0baUgiri*G2I^id%_)~w))2q2CUQvSa07A96%?W=wd{OWn;Yw1 z?;l95?p|cpi^bf7LD}-&_b*TTptV6$S+WB>D=+z~FE9oH^{8PR__dBQ7{sWvIUV&= zqy7MN`Q^;bA(iv*h;yJgY){;>(VU{`wJ^~#XNi+lUzk00ZF_nlO zP>ZeV516Md3^gFd4jdOK%^*QasXNE5Co$#)OUWiF!W( z50Zu)t}ha_1=Fh0`!+M6&|U)a7ylb4{4{4byLQzERoI|;XOjog&t!QT@@`>kJoTbP z))p1EN>F~%9Y0{7ouZJX#Lf^&^tns>@i~HhcTks|Z%={($rE@EZZr`ncCCOIYX;~u zp8-j)&8w^2UZ6H>X=8)!E5nxogx(EuSLX2#3i2`npiT?~(DFCTB1R6fG44nro74}A zpp?lU;*MWbTV{^jT^|^SYXu|qqOB%LHgqYsY@j!!{MBw%x*WjQ8A()3;_>&OWPZvh z$@4=z)VJ0jBm{cmpC4;Q7(ln%l;KLix!(KC@s-{Hyj2=lR<5?Gv7n`&j=C_B6VxNC zn6{7w3>w(Nyq59;5UG?hr2v$Plxv-Fus%>NtNL0mFbj0ylse-_`AO@4;Q7#qGPe)> z@$%k}X9s9~>4u3I0DL%~HNynaV(E4rCgkm-n zY+&yL(8uTBFukVg()&0WFCf{K3s{=DaU@HVAVe*?aP2qCbDJs8Pi==yj`}g{O5b`p zCm`0A^B-FzAA(elS-IC6OldgG44XiMQ(o{R=7*D5Simh_g!C`cYft8R&_iQ(QJ`=& zNV{hX8U%}gsM`k6?2W;u)B;PO!#MlxLj@bd6))J~%Tgb1>5xdO2dh=hTrC5RxmVsd zNfJ{PU9Wp$&LXwsOkE&MPk?IM4>m>tG-)I%$JP~@-3X%k~bn)Si|=Zq4@1f_Rz1n z9~w=P4Y#B%ffOIZ{;)`^9{3rjI)iZ0}QF^*f*ehTDx)~vSrud;WCt$sQ8q}L4CAzc8y2w-NO zT@_sby9j*>R^1ev&ibyd_dTx_dOtWP_lba$iGJo-`R*>68#IV#ck_VXFn1fkzQAV+ zn6I)d{L##Y_w2LQ)6#%#HDn&I78*>;*dL%zO%$#UT-_+pGBG)PVx4tCF0Cd?L6dC{ zP>=yjkBk<)ekGuEvRgozQ9E@fY4t+z$j7}G5>6vn!G`P*2O}tVblVN~&|14hq@KP# z`V=Tq!{^Sk=6q2rVsh+ZT)?7mnaW^IhYyb0TZxH0kgE-nR3)BZMk1gK2m>LJ$5w&; zM!h0<1PCAxgevy_V&{+60?hzNUIMGuFn7uS_`ALeQbq}`zZVcGJjfs5%qb{_8_31s0mMznSHunSd!buJ!xoJJtRc9AmD4=M2wa@sFzXXgU6ywmBo^+K2=N zIT&*HmA@26N5MGM7e2oOhd*a}>^bXw4#$X5bYR-PMN)oWhF;$bA5v+tQ2+GTV}KZP z^_kX_zCjL=gbP4iR1$SWN!z!X6^;V0S#bmE3Sb+-0PCr; znaET?Ee-&>Om-=HqUFi8=@KD1PpcW%r}->w|LOj-<@E!MUvNaQFZ_LiLfgVXIPkm% z%d4ilY`tq~ZpISev2V1F|d80^wa&oFCHI5pzG1hhUOWTBlSuZDZ zz80?G7ay?Uu^h-HnmGZUCM%)cL~>I0$6oq&>{i`3xfFT-Z!R{VR02V_o-8~Li1v4t zK9f#>XwJ<%DE$=(O>CZO0Oj7?h4pjcsb5i;gCHJ~dCfV7)26T$J1cImefmjotLH>EB<6^LPR9BS)TUzv2J72l_78a6HUTFH-f*~tVmz_AKJI@&QRc+#Pz=`4%v0g zkt-eZ9p!i}NXI_E*O}r_>4To3{t9p+jz9^L9X1t2+`cz=PI$k4x}`UQaq1VZ{U14H zWZs~C*y@GZEA$wVJ%9&3^nt1U?CtG+{S*S?;cuSlPAnMB2pG*jspRYy=4j%7j^+S; zx?t!A?^(}{wdHWL=|3rC{H}7p&4>TMzLdARo5@n9%FTmrvnl@yvHV z2cGu;VP{nHJIXt;vTlF_W&wxwz6#G|c3b`vv%6hyFOU!_r|L(jdDa3CoAqkECmL=g zEK(+2@^|dqNlV%dUef|#fiVNp(Nb(aZRz4sAtv4G^DnxU$?{=Sks-bEwY08Mjmibi z*9YiObnENRd5NY_+p6yP;_csQEdRF zBU7T~G^90K)eFRRtj#eyD!UWc97rua@XxlXi+u| z4%T*#Z;OY-%iFu=JTwf4F4ywzwE8pgwgs3!es>-~dOF zxj56)CK&id9e@Rgd)LG#t;$EnZ}bW~h+a_jR z*!pNG!1zDu-OZR6b*pKte^F<#mlHbHeloIi7B_r$q?$4BL^U8V=SRxDhv})Pdiv(H z{*?#@*UrDsTqZYO_9|O-f4fT{3(K||=Jx`4(X;nY?$OC-?o~;i-wVBM%QXgoD|z#` zoiI835T)lUZS^$0JG(-E?!mvYvvaYWeDi#V{zmc4WyW6vyH<`AZ9R6|J`@y4FoF6> zv2K_3gN1FM7bk5RUHbQvh*=pN(FX7TfDQ2lEW%&ruYi_r{hb1QEBtgf`7qx+V((u| z@ULR)n@Ba`9l$iW;P1>L`5}!U>5M*@4LFY;P~P!eoa!iuc?x2;9C1X)mWa8y^qHpX z#3VOdO=o3I?vAc))RbnP*ql{*8|=Ngw9QNy%KCQibx3*Fu=-DiRQIM1v&v+w3=)Ly zMlcB~U@dh2p6}lk$rDgkT|Ur`@8ciILOreo;3@%m!XvN2YUQQEp}RGlAQsF1TAVL6~>77+rh)2J^-n0tl}M1-L&)`O%2)}-5|kC(R8xZ0J#AO=ZY8-)3dyKi^J&{ z0C$lh65`9QU>MwB82>0@gEaCsEEJSWU&hIz?~2)$Hy;23O5Kb3FRDSwyc774fNF5y zzUhV-j@UJeOW;6__)j(jUe*ccoRbNiVd8io`gT3?_(_U9^EG#7E~5CXN%o*!ptr)8 zY0!f{Cvc5#>^}lG*H*ReL@ymNIP}vFkLt35g7TFo4VV8%N|ArZ&xr)<{^yD84~1=G zyljCbw>*K{0K&ub*1j}0Uy z?u6n4`KNm2KtX@85PM|B6q@@aUoaeaNo9DEu2n;IJLwJLmVU6h?ens8z%IY8f5-D8 z4SRhh{nx^l?+Ap-v+olEz3flGzMp2Q&9UlIw;15Ab z=1Gu~>t%^G-uMmknAl@4;Ljdz|4sKX1xEkxyE1+gBmjW@uYOm?za%~Xzkb8Y#_s6X XdFd5TTgSn-7P9DS8N%{3E`@&N1`(+@JftKi7RN@9TYClj`VTEg_~T zwqe5t2^$>RdBX-F%!Umczlm-ESAKY=>4HBSBb}|08>*iu&x0?*kw_a?QSi?(QNI-M zkP;h1Vu$hq=pp_aw4tbfK4}{p1%*YjwV`NjV`FM~_HaZoyp;WzdSQjZ&MRp@Cgwf9^&urPs7u}YFHQ)z8`8Tcm$7gwYSqYMuE>EbcR3p zW9{$D2opSl3W^8|1y`^TBlG=6f`7q97is`Cg8pAq2zDOj9}!6pWBzC3`_1+ngRz1; z{%mUCKbHv@7c`#f6k@`~`%<{x&ff4~)<0v|(c%98jPdi2qWgjsjkTc|Ah~}<1g2q9 z!AAZTog;W_1IRxQ(*G3|C&0-$9BE>25XKB)kfAJcI5zU1N#H~_%@-DFf^{^3Fhdyu zZ~~4MZA|bDw~OTS-A(w$=26Bh7Xq4Q9f_tRNR-Hcs0bq0#@5yr$wsh)Y&mQwfo31g zBiMzT!N5!7{SZ7j87z;)aoAi}j42;{2i&2Xe`jKzs;chr*S1>O((i|TUYH9>yL$L@f9|tv}0PRPT?5rJe z<``C3n7u#7$=%N`7=mQ+i1wyN z!NClSL(yDd1Y)pxlnajUM{+*~5S3cbsD-bQz)FeDYU@hQ| zFQ1KOpvfF37@p}EWMu1%w|9r3%&eVYA>b}Ck{vFXg%bq@-+=ienS7`zh3?42!Z@~0 z(Gk>u5MHoTu$i@ueI%R@bwM%Q9Qc9OcECSieNCJxp%K(DJ0p@i5rLsb(}KWNceE3Y zjSLTRgYpqvh=WZO-2{$_biqX9qRlDM_Aa(8h6|kHPqN`gAt_O>%$vYiMNvUOxo zB--7@6&Hk}u~{fSHX6@Gg<#Bi)|7B3I|x0*HInEYOh zsLmv`YcMW=%CIv=xWIS_5+}eEMG9ir0%7p|TpdHAgMwHA{OBlK7Mnrj!2JCLrXC9Z zLr0qWS(}h;qQioyfmoWGInj)bbh9xrff2ZlL@dJ?77eG`qa)pIZ3WtlG-9x$nSxVw zbMQ3^<@tsKCrfvOhllfB-R+&p1hb$JqC-fq6I?L4sd<1O2N}qAGIj%xx<+DnSPlu{ zfMnR374#EKAC=qUCHyAJ4A8HDrK<%(NN*Ip}v2_j) z3MJSF^K2YYjL>MJF)ReZfH_lGCQcz}KPC~vqS~-A&URd6I6XKT%W!tZ!;P&`rZ$Xd zL^R*s4dxC(W0}GBU|Sdxhi>NX5*CJpB8>>fA)z4{90&w_YJ{7a1KY?nh)i}B#2zY) z6De>hWbm1X=SN3lSvYeSBs$mxT!3Ir$aWYTlnsvQ$96*Cq5e)$Og7ow&jb#Ek&T_G z_Ix77kKp9%&vQov&n5S**IFPRFVMLL2&33o(CQ$viS zN#@4p0@a6dC=_5a*k}yXjb#ky1_Z$Qp+vSBFc72z3;Ykp?_9k2s8g3pQA((*VWY0y12Gau^5Vlcd zM}Gta&Tw&ahtX_oi5P*Wp!r1^1^eRgc6e*15zC0Kgi*8`$%Gc_ zXy)e#<)ByyRseAQYkNurxEcbvT(&VjipGVwM>+>N*x1qF_CX;g{0JilYZoNS7Z((W zHphiJ`vET*jO5zkNya2IDwV%)V7<1pqK)X;f@C$t3U?ZFx z){z*7v137v9U^Hw35m|o*dl>a_y#~t2=*Z)vbh7zh2g+q zJJ5NiTsO869!o))^6hyjrEdOLb+jYy{t^uKv!p z1b@CG+?N!L=OFP8rf_gMB$C9&2O_D?=Amx52s{c(30`333bI5}+WR!2Sol{|)8A_kZ&s zDCVNVZ^VWTY8!0O2v^>bk3}L)vM+vi5jsd$URs#S;^XhCr3uk8#csd6zdc1leAT_O zeLEI&fBP=I6b(67t$q9CYSL+&Lr9L5FH_!Knv{R?*r@;G#8GZkV8F_+i^5SV|37w-y=M16Zy9k3yk%Ua z=I6iq3|mEZAA4%~Yxx=TueZI6X9$N_hkyUL;=!9rnn=^Do*VW)5i`=lVKnybZ*9sn zeWkNdp!w@>d7QJhf?&>hYv_^~qT|QcJ~5vbBe3z`U;0Wme!4x@l5gPAlIMP8R8+bn zXmxp>IaF%1n7a33_{!^}H*-pTv&_3x!tZZv*iumKE;z#MUEr`%5jWxzt>~gY3Ljon z6s-Mxe`&&IZ_(TDyhHVq$b1o%0)T?#V*5u$AVce zIFHXE-vC)~vlYezJVI(Qy)E{IW`pBF*%dno2W#JcG5K5a#YCXg<#~C-oB)}P`snwU zPTW(124r|Jsv2aTeVO1+ax6a8pRxGb5A}!GZgZ2+0>;#!spjnZNw0FDPhY4*D)i2m zF6M*8t*NAx2l8p1L45{|Y{R?Dr)e3+t>UF;fyR=NR;4=l3U#kwvAFFj2bvs;4&=$A zTzC64y~AcIzWe>{=7|^FvU~CZOMHG1$PCuDS=dTZRO&GMg`0cx-b=@BeSFqPf7YcE zvpi@!VrVgR9_V-69k7kum7Tf2o6$ZOLT|IcxQK+IMWv&cOBepk?EVuz(|s!JqtpR{ zK$?y_L{ns6bQmva)Fp1HMIT+d+jzm)-?sC4@asFxtqawyvL3FG4p=LXh&~~duAiYNur){S0Xx4zU^tjx0 z(zSB`xAUyaPEWtwTU*rQ=oA_LeJm7kEag#j4wa1A;7%Okq<&~6dN-Dx-ru^)9$FDN zk+@2A@Innca}K$ky04M0KOOL-kp9?9PunENi$8yLLh|ss;|*QdDX>MP8W+6IJ7#Zb z_-pAO4|o55bNtV*l{9ZGHucoajY$H{e{m8>p`og*dat|aHkAXI=(QzmYugBVp~=%H)pS?wiEo%!Ex}`fM6$<%Tu>`Mox# zUKcnJh1ai5)ZET&`}MtU;P~qN-nDId?{%*iPWK!~QyPNbU5xooUU|j1*<8eZJqk?T z`kT<>zWayPKDxlMclT(AhDuXo?)4k@H5uOfQ4(O|g>~zKwV*^}eDet9)D+H@x%o*Vjvb z*nNg=cgE<~i~7YncL{b-l-v;f;rR{b`j0P*CzY5r`t~XE!#6I3-5Z_$bRNc-?aEYo ze;yvTcv5mV^XrMPkKwb-JzFT}$yDIM42#iH$gA+1bS9MkS z*yna;w+feCWWl|COEz0s>W81e$Zq*~#HWoMG~{F!h+U zyT?D(hX|Zy)wgU@WU(4JrdMioHLFX9^mlhiQB&1T=gO{RMSObIP`9o3YCh$WvBq`# z3v&20H3t$i+ub|n#V6pK7lDq#<(1`jJ+f5;zO@EsbW#>^O--vV;Bk3m@8+AkPbayh ze*I}kR0-w`zCH;#^!tY|cXj@{lKIhJ-$uNiU9*25Z^%2Y?ks!`$vuAJ&+nDCs^!iM z1!%wJuIq%evYlQh6c=uo&j5Eev?wKHE{KBG>2B(7tiYn9i_NKzyGZW~BcFKAct!MT z=Wn#>JNx_Bno?XdKpOh@MD@0H%mA>^c;a=8+@8(tRtr9FVAasd{qWbkE02Ey^gyO> zC8UL4M>I)I=cTZwcct`#;Jujd!8B*^GLCNZN(p<#8SyfhQ)-+9mOi!p;Ag7^2x)E| zS(dm-58hPA8?6Iiu~?G6KUh{*js^u$B)A7kQ`1P8n-$7yFX0fs@pR zPA^OAK6-x>SE_SqVNVr97WiI8uOGRF7mTHZ5xxp>9U%a4TpK*FQ0d$LM5^Tbr?CM{ zS~%R`?()!L^6ukCc*nx4a{#5W#=_d}O3ROjcL-Boq-tO~womQ5;-mZJ;EA=d$?=uR z6JZT^q^7g3*`1rtI{cegr}#zEvc?Z$efg_+PKiBy;`zjhKfm%>@QAlK?)TBa3yhmj zd7Vd2Ji=GZqXYpBFB+#T(7`L6<;HF-I#uB(5X!`{ua5)Wxo>l<&nrp9$6M&l9hy0+ zZzCME@@Z@&z9gooBz!_csGv7M6D#5_zyH8Eb!w*OUiN0}=at}!s@ZTAnP-U?KGr{T zfL2Hk>sOLw&91(a@VzpL6gTjDw{iMOay{mSb-ezk)}?#ZzTH`~`xD=K9sSfG=XvDP zA+Wi;&^%A?ESyty0pZbzA~1`F+tV$t>!o$9ox1C9+I;N>kg0S+T{t2UIQlF(d^vG5 z801!)f$>hnISo3_Td6xn3yaEKHG17C?;X;9{i5vDk^5dC_{cY%aX4_}uQWRL?-;#P z11LyRdO5yaRT!9(g*fqQ{O5l$3t9e-ZI|SUGZI?=WMFYazykKEpfUmUNZW7@TCZCi zaZ`RMr&cQGo94em`~Z%!-C~`oA^hm%hG7kg;yUoLoX8&!IJac-B%%b7-bzBSWg431S6*s{nO(xU2x-&0EBfPu<28@RtqvXombWcN7)wq0q0N73u<|A0@!R8QU3Y* zWoLGi2q`zsBq|0R==&S~xy$czH9h(lRI4xK)-Ng=#sC8t^4>&O6HY^JU`R`9zmn6* zFVpE^JI0GXjsD%c_fq|^V*NmIxVl1i{qtf8(N1actsSY6Qv7TfeMk%O={MZf9G5fV zRa&Nx&%c4dq!~9TJ7YyVG-Dg)o}wfhy3VC(4>{b>654(2bDRe_xQSAmGnH*;y)azma2;UZC!cB_ZqM`F{@4u*B=AVI`sDt@LgO3gmR3ueExZ$d_3j-O zvN}x=mOH|uG6rgXuP%&j%01$8kgYwhvEg!DlU3S-h$rUnn}Bb6_-%1wEJa%Qn#*+u z=8w-)!?c8Zf$g(p?L@U~gVi!bERpQLQ*%9AgMW#dM?LuJ#M6fvOVw?^`HU_2v8;w+ zO5fd|vlsFct;D5oLFX~VvSf1M@uV(sc+^Bl-Q)2Z>cfwUVJ-7}M06DoA3xS2UOKu1 z1^g;R2j-|PEr6Gwwuo*mSsA=N#$2G>4xxvo9VBW0L~lS^#H_N9{ul~O>$;S!#rGII zia)(wXnlB&w$wT(($ECLTZZV=t9M+SrfXWpD)TRBK!43cbxYEz_|l-yZ`zs9%bXU0 zrq}uQ)O1KByUjh6JZwT+|I|47ihJ|kYWY~q%EZLlQrlrk(d^vIsO0lW{K?iOPh=Cf(>7HIiPoyjK=`b=PJxOj*)(Ia-_oDur=EGdfNqCpZsvXW8qM=NZ)s7DqtXns@!_eKJ5_1bBvbR&Kuen>W4|{_=i@b+`b8`)`*x z?f|<7vPu*wYG)Plam{z1dG+E|!xKO86FYzZURz>5vxhfK&g{7mLi>Uu zMN5V0#=A-#l?~L5Uw#cdYt;69h%~y;z+)XKk;bHZe{(=0kiYp)S5b1swv~NftVqrG{`@|gZlLc6P837|#6)dMud{2j zWkHvn28Lc-ZLXBKL9XQMz~M<|ys*1%u+m1=Ykq29tnxd{B93mXkRnoy1@ILb>B0H< za`1y}&acf1?ccfrvq6sAEt8P&v1ul25rAFR`y%ee=AXyDkAg3B?LEij6d<-ubz(Uh zm2kgiDwz`6@S@)h7ouJpn4Mqtu@1SqQ&G}*j!2_1Bc&g}0 z@1MHgT?wwL@8$K4=$64g{UoFchEA+B;E4#oM%HjMfr|ocU$E3)*wQCR;wExM{ z$veGLrBaZ^_7_ZvW{&f#uXckRMJo=385y16j9Y3ok4?u&_;jsji;ZJU3kKdOa<;#v z{Aq`_e#3L;*(?P((=*{_QttG(VUGctc1q+8V(&EPbTc|edFMdIu-Ekk8KFFZ;oRae zZfi*2e{R2XOxNX_EGUK~I~mCLJ@DdAy!-x&VQ7&WqLB6=C+-1PBF~8YQhZAqL8@dx6=|Om5_~=m@PEtMF8%W@<)+o0s^HH7WSoNKU zZK(ZuL`v_i{2+x`t3;g_1Z{tc*z(fkBnaqHXMWyZ{ZMgX^9`@osHi77)~fW)?`yU@ zHDxW+!gNb^#_f$DU7QnJOzLlb!|iXLI;r$(SE>0k!hEia1EkM7cYCRE@ z|FP2ii?`2$M@YUB-G|c}rC&}oM+S~GFx(@r=d9YpCTTWp3N*I~`)@lFpinXMsy~(21;=;wFi?#JZX>*7@&DA=V>JB#I z`%T0StP-VdPTl+>$m&(VX#@vWMRKkl%;<9~ND*RXtLiHQ8*5tw$t?-oxe{0ybPWy_eRx8LZ(Xp(J z)i$`tbQ-E2F8%hL2Nc_HH?XmfH=XQ*Q!GUL(B|h`kNV~m&S;jYV&4;x z>jX@x2NnF(o!c`1=CaZrjFh&gD|LnJi*u^+-Z`Rt9c32Pdq%EDWLSe8mwjwyf=eVV zJ$E5AF!W8XEuBizt9Gj(V$NuYDuE&iucGSqt*=Bcj+-X7>1#amcJamR=F-jS`8V?m zmtQIZmMiWRNHNN84_m<9@dcs#=JN5PYS(V)m!{ma16Z-)Y;L;Yy{2kMzjQf+j}|!T z(zvV%6D@7#$+N1S44do{pJ9r+3h*@q(>XXsKEjhKoGpM(*xc!A@fD>~u@(89aY_u` z^Oi?%OKb4)gLfKEmx>nk-SvLdAPK7mDmN;~a6A^&Lub_-7n7B14LdrYQeusdd} z8|m&V-LzN^(o<5l#=e8ksD)?sJ$;vB%a>YePUn2Aone%Q@C)d)a(DhkJb$0xiQY6mLT0qnQ5D#u26 zIlJ%eEkB~}r-J_dnX)^CngvpJ?{l+w^g-R-f>G3w7u=>5SJEZmp8)f(c1Cngy`a~> zx6=8Q;W;lw-95q)0$Qg!zalF41*$q~_&}=Oi{myzm`nlh2TC4Rd!(PD_MhoHO}<+1 zZQN?&Y$y6w4CuF~f%_+&ie%4El^hxO@?WQg(-cvFN(IDyoSnvfl!Jz_V!V~PUNIak zsRDR1tK$ORZt0a8;vk^Feh|#(egZv)<6PdS4FMr496HzUq zaqA!v$enDc2!8x6yW;;}X!ziK@;Kq}ueYlFIdwt0+St42LemZhv-V$~!cIg2d|xdf zY8EEj+Qz~kN_d@8wH)u>ec~f)kQ+YpV-4Ck77x`RHK&PId%D4tUf@(%K&oh(@0P`gt;Rz3tDhrKlt0 z2N6YCX49hFwNH&BneAqCPntxO!|!`8w2d)aN4bEeEIkUwPpBUKI91&=EoQN$NYdh? z(aLDxrRLqof3z1xy`nD)(xs&by9CL8ZTDj1dxco?WFHYXt`@?_eW~>SL1pCaUKQ08z7oYBYeR6XCk>1V1x!?BuHm&l) zEjs{(4hLEMyMP-(*d*9H(uSk7_9XHWFU2{5m0Ip z)OA`w%|qeb^pb%7dVJAxtm`+JDWn=KGbYHc1@)8KullteGLiGkK->z^KLCQZZvzR% zq#&Wf$(#_m8vS*)8nAhb;1n8X+(8<((hnUtduZ=PUWrHWjjQA2z@m4rkFSL`4q}y> z$#nsvyAa!c|L8s}cQF6!?Uyuh?x%*476F}D(*oegxc8q`cTMW=$xDCM16SHbb~h!- zA9?8&^Xn0+oV_5wb*!Uks;=7$%U$P&Tv?s{- zVP4+)3(&%fqtRbFrEUWL`<4Br zLlXvV>wkS$>F|4VKdu^}udm8|5EApju0*)Z%&PC8(nO6Ej4|9l!Rl671eDCphklo0 zzC*;NS`Y^YES3(|on<-X+MP4*yw}Z-dJG%My_0!<|^5 z6bFCQJ{<=T61$7%gUaFs5iTAa6{O1F%_F)L0-MxPC!gnto!U37fP2w@4*D1=lM9MN z6Fr;X-tW8Bw|@cXH>6G<5m8eL*si_Uix>GHZp42*2CO1-zT+(ETKJej{Zr)ZlZ4nz z1!$MPzUZIM)fa#$soTyTUVJ%n zpzAz6`6%)9ju|62W4*ET{9RH@rQjphT2asuRe3#u{8PTV1zy`wNqWyzl% z+9|41!@ySCo0nn;#v zl*SK$5X*m}XP-9{KmQJE9T z?=_$7TO^GqDW6&sA7$LU`*HX1#oZ^?2d7pa-V%=f8lM!pP}OJ(*W^iwH#~E&7>%x| zZV4_qYC8YxbXkO=9l%24Ab#dvxLR(2>HC$PurB3-DwK@B@DYfXbH)0U>0eep#*1px zektiwktthijSjw47wr&{P&DZo_sHNpMTng9zZN!m&vcL07IAUEDS+>9a4*(46mC#x zo-0Yu*aacvDo6CF%e~Eb7uc&^VA3}P*e@EyG27VFwPOdheKc~wQl;DX?$!bKIZ}^8 z+_R<)(&N#jsgw&3-o3nvm)G>@kQea20lJ#k7zq-lMi06s-{nRu6-0cft_20Ep6x&p zN6F%J8LQ%PNpscLprjpMq?GnUQ6EY2IB!Cy5mh`bdx;p~9c| z<hE6$;{?NL|rdV2!VnUgZf*8$lvew7ywqo3PpMG7&!-*}2P|4dl zl81g2KVGU^OwnFlY5NoEx7D-H;N5G(cf)OkGc(3}&gA^k1sq?o5qOgUi_lIDSE z@oAxE(QfEZ%tOUZQ|c3{dQMeo-|_2@c2u59I@6EPPt>q(Sk)Wk$R_~c0@0a2o2Kcw zAZb4CDomew@K7abVV`ZdmvoSQd5i(RYN-IpAlS+0Yv>;Z$!CKPFXsy7cf;H(aY1?P z*Z%;h=z=bh*Iy;}yFNnkzPuG(F=R!`0AvXIJa9Qt$o~U_UK$?J5qSgMd}C|pB(5sP zp-P|D-?RR(1efpQ_@gj3dU`lm`jW}_O$`Gn(#nU9@d8fZ8>-LZoT`>$Gmf<3oUrnH zt_0KDIt;gQZl&mHKsJ!sgBXKdmz-rle86Mf>kqtG1^ng&Amn^LF{O;%dbev|aXT#` zK!dg0hcpsnRU=->NFc1%v{kEsCw%?L)<;1`A-Jb{-=ErCVRihsw`T~qn+$DMK?u9r zwq;07XrtxZ*)5ypMZyZ&o3fiST|U;<8>r`9T17_7e=3;US-LJ%MIH8xw6C+}iDO=m zw4PtS-lUf|&HCxAMLfM99M1go%~4;erzj@VXAVsWRTskz@9k7g{}#JyT|d#&8q|iq zsn+yVE&x<(`qyOeC)6DU<$`@eb$hmIT0Px+w`p4IQ?fG0D~OIb01egMZn^BZ5Qjaw zZD=NSpb11weaF0uKJ_bVWAB0YX$(=NgsIiH%ne>i{#DR|S~k>tta@2O6j9(>ehnk~ zMdhCP2f&O9YHC&3K}AL-6_x@j8_g~G8i;W*6_23fUET3kjcWk)JTK?DETz2h+((Lh zyv))>r5>RlX&NS0QO>=11dp?C#X7%Q)2?U>pE~^_FXspua0ogTdM=%OC+Tzdk*eR> zm##1HNkdKNP>D5NpHIDU-DmeqE@AtMfc|^(RY23`m{;nD-TQe>fS(wkSwQpIdqD&a z9;jcv55t^seUij>bldd+op}}@0m@Ay#je{ygAXVfR_HRB#|NdhJ@F4wd@yuL;x9y> zB%$o!5fg5v#chyRZ+?IMFy+#rm=FWCL-jJ3RYYN@o`w!rl8MWw)V!+GiF@YaEw-HQ zI82H8JPN{CSj*r(Es6NtuH(HA39_{GcaEoHgv;!)5aJ{rvZm;M{iFuwMRWDJwtcVs zeCX{m$ea6D!#DRjDN34Gnk*|k)DTt|6D##^ctNaFlB==^@{M~sl99Fi>^cEXi?zBa zVDw7kbHj%&-_1TPzExu;QD2RJrRwhYSIqApN3pjBB>xI1b5a=F_~+E6cBFIx?7|S% z*I}2OvdI5BGn-uKv{fm7_S^TF2>WB$qdSD16Jg>NyU=3J&ue|Vo0p3pi^$a;xyyGe zt+JNGv1d>CIUBi)KHbI#P0`Qso(hL0!+Z&8mu_iB%nbjyIt&Rw^jf|$8rx3u|mqF!dD3_m-`MkIe{%JxO$ z-DVQz@hMdM2mCJ2!c#su@fqRUGrd`@>g)0)a$NoDmZqQT-k-)A;pw~bveco%o~Zt& zsNv4m{u*MfsklLXcJrS-4uwHqpNTWy_T2u9}%ju-XFhi1=9LZJa0@bir)0t|Am1inMP+4k5g_4767ZNRHFIRC+m-{9qF*pg!)k{E zFU8y*19fNRu!f8&-?Sk$BtjpZR&qkSk{Z5r?Tg1yVW)cRLI}XsOn^%a7ll>a1pO2= zpBRAD3|aQ}h*^GkdZQXkX-oZ$pdXr8mFcwOeQy zG=S7;fT))2MXlaQdRwDKooOsT+||li}|Kw(X8-@?$mH zUe_0NAo*}oAXDmlZB*m*TL#3u-o32#od8_~v|4lrf-^tVNefi7e!ki~lVzb#IzP>8 zs#L=Y%Kj>wE}z`cz!-Uglhsl>9r?LkWTg4Qj|;zDO}JM-7$AncW4`5q68^XTyd?2- zv&tIT1Gk^9Kd*=@or(ul+xH<%S_S|{N+Y-Y@tQu_#?wV=w%G`MH>rC4G}Yf481i_* zknRaVY7zFh9O*k9ZuBWo_i4-J`!q;A?hVaebEf?As_886k?5NvzD3o*z`C|M3aai z_rFVC$X>N0@60Kwtj<^t78QEcErF;w*qtW(xINEjQb1r@{?((&8O6Sf^SlyoHJlC) z&I64es(XG?4CzXlvENy%7N}C4U$E>g(xP*-#i4^z!u8%IgU;W{s3@n^?%=ziB$iXM zJYuCN=<3T&0l`vVQk$t>v|o6epzklyP9ys}Dyw|RTA7vTf5hKLXA#$CEav@6^2cHN zI&f|I(mUIKUd(_@-|mS(m0A4)som(|)$5y+`l0a_XIh?=cI(Nl)vw@d`NUPTDQ9{I z%=ERWP4aHF-!R^aoqTufc^ ziC2z$)gSrh>$<3kPMcM;vxRY}TBBBK^U0n~3zpwb1kG&RdX21?S9Swp67tfB(P3Mq zu6R{7`fU!@4D{LczB%|^Z1_CrF9aNK(t+pCwriU0cDs{+`~#a7@A(m5h@i|_Vr#LL zi1uY3U)$+n%IlzG1a%v}j?+=mq8kV88$Rop&z|+o_%UdksDEI&_>equ$~joUDI!+U zPPXvvwakurdAMql){S>>^?devJx~MiHq$$T@f9jbxE2qSqQT+Jq?|^N=*&Te@ z5Bvd7(E3wEChKJ22GrB!kbA-{5F|D2rfYM^!$D8gtlLrg5ZBnQotVoHo0fDUdYUsN z=i_^fL?lQBBwA|ptoRX&Bm?@sHINRH3~yE3y!Q$x?w47sBV<#wH&Hb}%5=42Ffo5= zaO=W=ASl00eUQUKw#tk%v-f*41*p*X_^YTw-gGLl^Sted)HTpt*>iq;NXfvV4LRea z{TpP4rrQSPcslPmiD#T zG7|p)d(KDh5^{17u3wF^?AT{Ec^2aP;Z@Ajs7(vo;|4mmTdvMs$?B@k5TVCaUWUHa z)<4z;(vI^x#YaKuEL3^7r^-bUE`ylfy8afJO5Bn{Zgojm^SKlZE-YRd0SLQ^J@acQ! zl3QQjta%_7ka}4U#zM1WR#X<$t(u}i-<|({t#NwH+V=)V^J2?F2K#fk;j-7|?cb(; zip2>>Kh)*`3W;(|+H&w<>efriogyQOBWY5SiLH!|6zLq7&*mfcQl=3=K}QdV7dME^ z#BOG=fNd)w{(AdVa@TXol3j4sOTL-kAQ&5|%Wp8+cfA$wvY=5V;k_^8aYg;W<(mYi zhC@GFW&3T4iXJ~L_*D<%EvwTkK&{v(kWMdVqqalR-3pIqUu^pF=x)U$zq13n&4NZ+a$2nz`=HEBNMbBR}3@V$JTj z5y_o0I#Sb<0#q_`)BEt6L4k*$_qJKDx~b%eqSxY2ljDMBB^lk|^+ny8bL3+^f*xw@ zu9TuLNz#_WN%!Uo^^&g z)7SIENA2Hxj!Wt3$_-WBe)XuUy&N55{2>~nLI~I+N7V0Zx~Kav&L5s8n}cruCG6bQ zM;y3lsoAada2bHp+X3%LX{qkZ=Y|d`Box%YaQB{g#Fa{TDOGd{P%q8PYO~TSzkui% zBX+$qA5Kwisy9pPmM6JAnSy;#FL;Q-JNbVq2>P6aH_?svlv+vFD?DqSvhnTa6(gZ9 z#iV`RF+Zk~qs9SM#cXKlc~UCj`1}jtMVCFr5!Z#w@3`#I{CMbL(y6|4l?2bD>ngB4 zu=bQsn#AmWm*3YM_4YG8XGu4r=?OXwVUw>vWWvya4}{|RQUy3&ndN{(_x7fij1Sk# zhV72DH*n6)%ga`c4D0`Mr)p}YKs1gf_4J{4Y1z|5Um%#Kr&1~Q6~wAaz6Gqkr#eyC z@n&Bi;F_pkqDV({2HI;~?t82CTVQhD55;nP!_0pWk-hWdDf7DG6^;Q7nPVl^3gK5X>dV1Edbza|s0>ZO><)owlXBzF6EVO9icIez}!ak^jLAfYNd`}-e2g}xly zGwLl$_V+tQ&05i20j$yObAym7(Cc!YiTj{)SsWhzNSrqc+DJa~?52+#ek~O}vmDq`RQH^{~YSV|~Uz7ru4ugJQ zLF@k(kMS?r`f2xvB9i|A7Wz|F*DlE6Z#gAR5MBBBtft=Z_fvB@9;%#ji5Z|CN2x&LtjRI*#AWb{8=m38h= zGJzv$qM}+Wt5DN(2W*yg^}0{?tsd9yhB5l5rBgI8KxK1&omA7jypv~lf8YVWxs^FoHlvP~C0$KBXt=9TM0fh&zVS7o+HErams6j`Sutb|@f2oO zmb@#E6~hd@>UA{kw_HAe;y)-A{WW*F$5S|VPvM+{$-_KF% z*0Uc{P!LQxUPP&SI{(4x_})VJJtN)e%v@P-(Z_)6CWXUNw%%WTIHr%>pz{YegW-vX zg3e}X?bo*SzA3LD4UGA#Ie#LoukDJlcgx8zEuryNLF+BV&SL3Kq^5Q668+!O)xkb^ zWaYuYi_zCMu8l ztkokR>aktIM~CXRt;lt3*{uVhus+>$u-!l;RpaQkanaA; z?Xy^)sz8q#ky@}}U=>G*nS?J>9z`Ei;BLXh5m2VUy!)@!9~F({eN}ycHy&-1B?&q>QFh?pQsj*&i*h zI2zhvqyn0!wind|Pu;$f_y?G+JKVvjHKX>dczoVoXEq=hJOTzlGgm=pl}1tUhK)nt zbT8rxsWCE42mG_Za_mgRslLUGg(A5pM8q z-DDC=Wvb7d3-LXpIMx{EeRP+LihQG-Z~{-$Gsq@ej2Z5C9wHAv?1}cPgBX^k*HaB$ zYqhJsgP7HTWcYN~3ObVA?k4RTtV{i|N6XW?_Y~@Y@fU*4ocFdY8)a12?)F*IBdtiy z;*WJ9A4T==)xQCd$G~g1hJ$W>6neeA?dN-(vGl%yZte z9DM0)Bl7NsHx8xOcEsEe%v2LQ9VKiioxOGZImxs35$!6b$ z4fVsNbuJUDKW0vGNhY9RxBDoo8;dQQ*pN;gAvUE8I-S>-MoR^@+(!u&y*%mRf6N%fdZibAC~eJ6U##j9%X zOHDqMFtOG7PW0|v=z8Lj`Tk4slsdXF*Y5}rblTX?=j#tPKUq3mJ_wkoe!!5bj%MVA z4EXGD3+rva`nYerp8l+#X2+pV|EPKMvF*=qBE%v@H(ptV)ge8c_d4(#Hb-MI;f@w< zr*?b7HrK91*)J-?zU3ZAQyE5h!tMWT>wH4?t$`0?`||#%7VL2=)-^Yj7IG4G^vQaV zFPw*;#aN97c777u_w<=!vOHv3_=eUgy>sU+ogS0amD~4}Bb?C^#@>VsGxhS9UnAtT zFn88}&?*ERbu+#9p&2V*BkjSe+~MP%mDaNScNVs6pQ*nL-B=O3^r44U zT_?n0%~kJC-u(7SI!7a?Wc53)eA1WMwVu)3crQNr#=i1iy|nussXMC7_cOP3%DBm{ zmKSE6Rh3cbd8JjmQ3mK@HNQhy-We4c;K^zKQQEC~wEsgfs|}spw5PFQ{By%S34P%F z)cr5LXmlG|ySM?}|Bzhek*jLlU|x3Wv&W$0CFBa!+_DclBSd-4y=}q}p z&ezJ_l9k5U7uA4Y=M8v<=e8FQ?|LiRsPGQ*Aa3{wUg&OZ#tv@Bt~u0;W49dFzAXe+ z-vU3Ac_}E#nJ!k6>t+?wXK)Aaf54b}xSsKtt#~02jVKU|)X>T~tJvM}MVX!oee5~X zY1iC0_UC`7kKbt0(n^wcBw6`$ah@NJ`8SlE_*<2BAJD*jQ!ibDCTx(?>~9D3onwYm z0P$)>npK)j^fl95eRSv4erH!@2OE_<5ogy0aQGe!;B7^9*DCK-oz7fJg=pXtXhHSQ z%WkuOg%lSW7~op3m%yu2@P>C?A!rGbs{bX}27Q%%!oNYuWUw%_7+!wtmumPGK|$;P zqU$XKqKx`>Ux5LJo`E5xJBMzhVMv3aOOTROKtM_9?oNpzL>Q1%P(W!!k&qUVP(q|6 zq{Oqv=Y99y@7d>k@{7!@d(FDn`p0$sRzZcKZUG~k@q?;13%bIgHL@>r%M#gyd4X-^PQURF>i;Z()WG#+Gx*?eDU!-^TtY&fUH89qv}7chXk8#2 zu6vx=^!`_S&V(iO8yp-BiuDD)^%fAvaqL{B=VY|dITqb8^~4tl)Y?HYUVb4>jYA&` zWJuGVyC64x2IRiejG}iDp4P$p{rZK9zAsYEIECtG*P6RIR#u+;NQ}hnap${zdF7{n z7}%r$nk%MeT7e|tQ1Je@2s1_ip^U~@!S7i)L(Q?jpf`4BB)@ZPyLg(__^n9nq_)kE z!sf;b=!CX>IIf3Y_v%N@(T&XWU7s5Xz*T2q#`xs1h!`+WYuHo8S-FsJrC6OB%HH33 zlqFJ%1^O8?Q~%ogdzN2CamB!E8>Nw0cCL3<5fPOg#L~eV`7c42U%@i?&S}6#SuBz@ zo!pF+O$M}_LqO?Z+C|z!z!J34zci03yQ66TD3vg(I}T0oegla|Z8MP9s(xv$UTYi$ zF0*gzS>>g&On;_MM7eotEbc7?Z(N-+&XM7M+)+)`#4TswRCso0!)iOj-B9xgeZ3HI zTs}lg*am%7=}$MMvKqyveSWgT<{ z$HG}SXgDig^9)%+tP9V6F{-eI+=?A2+937D^|RIsl;v!VjVx4lfQRYs%*|!(sGl~Z zIullD-txJSIJew|3{IqCp3ElshsYkXIl;rovg?7&G*8dPUAsE)_B8g8I2Vhwtr#Rx z7H_uEd3#xw^m--QlO6OiE;Dt1pMly+zisn68D5RiLDAdVFxhbWWzYla7gR6t9=Li} zT)m+S3v&3Bl%tlJrGCaTCnC`?HA5+&NvX{qXs%)aqGp11E$P%Ro^Srxt59Wd7R+c# z*9uGF2EFEBJrF5Y-#EbNmzb0uzRm*yb;KihSMYX<%RL|cgpJ}9`F-H-D%u*Joy-%r z(42jYSX~6_kgdEfKJm$}vMq6o>o*Fd#GCq3!`bvEnfgJ4gz5c&(z}`%3XJ;@9j<$8 zN#&Y(58~fg$;NQQFnvV!>jGn~dV)X6@kkU0$~R^GRPDHi57lup@e+AGAx;1z6e3>1 zf0OuQvK#CBW}ck`c7b^yr{F4_qPte&Dfm7(=`$#oyNgD&@*}~gFRoYJ{(Jdngi(_% zzw}Nc;rseWHx$(m;hekeBgX6`ZhgP3wp2+Q2nqBCzPPrcxQ9h`I2Mys5YA`zJ zoAe?)t?o+aN$2u@&)LQMu8eDw%gz9s51np8LyQ+vbnV1G z0joDmo3kbWnQ!A=68ps&J>nMd5Ov$fU-_$X&M8Cg^;c~~O>Lta@3b^Ng9TujAQptH zmQwx|$zc%%p;bv^@Z&46V*Y^}qZMKTq|G}xU!IC8B=x_w0G&Yiy2hCpSbhS!gj`=$ zH52sC-+6KM@aUCtMF`N_2F%{FnMa-~Syk}AanFreYwfZfg00%!T!8HZCPXv>ZXb@~ z_7GUfp8)ct*MGf`qjZX7Y0;%#wmn8_=BN;Hl()hm5Y#MqEw42yzQz;`{|YcJmG+y5 za`PP%|5;t@rNOr&mCZg{rEa@HmImHJ^Af1e)2857{rkG`IsCkHXiL|(41Fw_xCfmX zedsEgQ?r)%{SRf3>F&TkF)`km?Q370^AL}K1#hM!-~edwqe7XPax1HsRhWigDtZbk z+9cdLN7a50jJK%TV|KCg${OdDid(7Do8_s>64c}7t{w@&4(ske11i2{whsOY03AE` zpJMIuqAx3;Q6y&(L$H%IqhEGkyV&RoMH0LSLExfWGOHg;p+Pn$0QLf?B=o}0X zL`(moh&pvOe@B#oh`kaOha~l6Nw}8y5>TYv^BFcd%od6#(0_43%=bBx?v-R?8_%R~ zU?vII?y&6lZMyuqO$SP z2U4tfXPd#7r|W(M25f?P)TH7)83@IgQeAwa|M~-_(2>^SkZJ#KzIW?z2B2D@lJG6w zn7Eo}YI9(Tg!vuSAc;v%OAiDwAi6-^sV~rNvCXg;wx3taZocXvVOEAt z04#-ShAiLf7O>J_e6>wA607hAgj!Lx3T>99Um2K@oI3N?NVhjqk6oE2C~Fo*?l6VY zDm0ftjR^&6Qv3O6zdvWFjJf~3XOKozD)?kCfD&UyRk;rDDiO2mQ5@V;^44zU4IG-9 zPuL2~R1c#Ua)YJI9|LX6E1*+)1uDsHZA3MWJJFxj_NnQmiR`X)T}2*P18+CZu`50G z&R7|A18~BunOFK8IT_gXQRVXwEdER3_0FTkrbekhK3@!MmOTW{R{4TPE$I-a(&`t+ zlb^ZV199Sxc2HGb;y3L8R0GYFTc0yaSr;+|T#a;oS4?x&u71lwNJsT2BAk5AQG^!s zwa<{Ke$L8Opn1B2M+%#`LPsqYbnKxWZgUnG-7jlU`9Z&JNVJdFjr=V6^lpRff>&hc z(71L|lQ@${LwKQrU(M9SfyCnr|Jv7Db&7hudykAIO-aE98&cUEVr(Ud+yY9zGQVa% zN}uv%nFqUX{&vwyrZBR7i3miL2es~2P3oYnn@t6Mw4^O5B;EC}u@)D&9kP_SE{$j6 zwV6$T(`TJTWK-PH(DDt8LGw&oKy}l|U2@sfKc7l25$}&z7b$B(R=qfCXA0;1yr4S3Y$F;thSH+1N>)C62~VNxjO86 z32FYc=Sh~=TrVexW}Q>*YZ_bk!1-fR-k}xxl4&Nz!Jg`%-53&g8xi!>I;c)Z?i`!9 z72|7fnS(3-g(1{RU5_`v;|!t1Tsw(NOu^!-CM$V*ebrKZ^EUDB^?l6dasB};z!!G( z(UDD+6;m((a-3puv_n`WAIh3Iq~ELX%Y*mADIX7kGrTAkL70fY+LYinFsv^*s{A$c z6BYI4!pq7YMy)}juBT$+eI?G83nyvKrL6rMHt~LXJ}Cg!XWVS+HmxabSy}6yHV!^M za30|{p(ptkn9r{+9wv5UhhkV{?-zv(MA9`o7Ev-2v?ml2vy95ElAn)rqzMT+tTv}O zoTEL7(Y#-zWOe1&Q%GObdv+P#cE%Ajq)Cf`&SC+C-XHotbcI!9{0Idiuj!}ioH&Xj+o(mm8EAK07YZZx`Oy2^#$Wkz zqI1PqkIgk*-UA^gRh~)s@L$lPy8eZ^JMSuTwR@I&LFVEH-w9WWT+f+}9r|g3;&!%6 z9LtfsQV*tqe6Sw!ypY|;Y zamh|4R*m)Jjcf!;+Wk8oZT~z-8~YPEQ71v=ACDY)J#(l{0Jx3qFa%V2ohx|r%q8><`EGrj-nT1T{#Tv6NcbnZo*6K z+Fd@ss7t>p+8yNLPx?>>~jlZv!Le zl`iw6#;QJPgYVx-e!DfWAaZi6#Ur-9uUDKan*Qa-XE-WMbsx|x^=sP{^6|H4_RvQW zSWS~Wxpi$@O8c{bD0(&avpH>f5Tm=6nezcVvK*fYt}w-1eE}kt=j?Sid~a2 zQmzzWUIrTH?iS8f2}<2uP_$!F5?HxQ+kbqTuGPu1xAdGxAcp}x3x97T&^ZbX{+3K{ zdrdZ_^aK>7K8t&%c#AtcW_IJV^R~2)=fPeT-*IW@za^n4F52n8>Hfk7QOiBmOTZMgW(dv!2!d*&|v!M@55^MozH< zFQXZtd#q8rVM%fvbLt>|0_rj>Ijn}%tG;_9HmhqSTN}FYwOzRvY`-6-^{uSAlE;lN zbw`e<)AKm$+^N5%e)fCUGdZGtSwl5mXm#2A>u2$EalyMDUqgP^8Ep-5rM4)=Ndp<} zBW$8dY0DMv2=*H~@cWctf~;0?;%$GO#@&Esm8CEOYp(@t$5c>K8_^+?v|E-PeXf#* zs!vG1oG#Y2OdM1LaZ-?grSSejznm5M3%@8~lv)!F{jCVHq+BAXG(Koc65+)n_P^fg zaP+@LxW2bV9#EmL@RcL0=ML2;4&@&{*1_mT@qTlS_nlON(#pSmAMav6eZ017{mhjn zpKtUPAO71=B3gbOm|;^|nmyc6Xsvki^b5NDXKu zV_N&jWHqcCCMCM5#eLSUbE&p5v+MUkHPbm+EtOx43}OfeM~1DGsPwUx5aG-&{a_+$ z=X>3xrnbB{GqxC|O^vU^`!f9oA_^=0Q|xu%;)!h`#gETix%|?MY#19HWug#-b=!6m zE4pwxJ>-)@ zvfWe1UX=|*hQM;#UIM?+-aQ2ul0yfz2q1=b@tiadVW-L)b=B|b&5gZ<5UBCQP5(hd zUk|EVe&uc4YgN+z!KvJMqZcDm&P)7;QI!PxlI}f`iu(J^)whQX`+kEhvM*NZ-w@54 z%8@7tpF=A|!@Ae8-%hwcneIqll%T(_eu?w=P4a{1ZwBb`Db(1d4JTndejeNG2KNmi zc)v`q?ryECsVBkJs&Ru{1#=)2O=$nDGDkw6RQ3`lN>=OhazByv(#aV0AbC@%on8k< zN$il&5S%`)D|4r)mGHM?opbZI(;59>9>0fisT=~~dV_sac7GDjiWZ~$p*M;_g6pm} zO3jhR0}}tH7RHJGm7pF&w*d=(Mf*=WRy>Q*lh*jl-X(B$3W0>6YrI z*rr)nxy_S?AY}_(e6)Se=`>tbz6_#4P|j zH4*pz`u8k$0nVf1d30sPlI$9%UI^L!4@J5~M)fbx41JAc^aVCH7h2$P?sSPlMVh2d zqVT4h0xI3jWgL|<5i|5N4LJ^&f}R*F+tY}`wq|c{YFS+*gB^YgQyFXFO!9SGT^zt9 zdG=~C0)&jW>p|<@?~gm9c-Bo44%iDswq>W~6*4>^fXz^U`_dN^rH>H6e7vopcMo!u z;BKz}!p^#|`i`X8U+bPftW)ZVzpmK4tk|m_@UDqKL|>I89LA8oLmwBiR&^-E*>=NYGX1s9BEbP_O@F8f$u1`d@4kvM5? zb*d1zcEDdyA|Jb+*e5^sG4jWY<(RaiP6~fR1oEw!%A^8@0kYCGy215Lh?-vVW-BX~ zp>c8cy^Y8YY6>f|+pZ4wX29;+^{8P{vo)AgEpivM=suVTPR9zP`nm5yS`*x4$OIDH zXlTu>NcGXiWWo}cnh8I?5}0Tt^f>L6>x~#$MbfbtRb3a)xy2}>)nM{57`9uB=9WzG4X3uOcKDz1imgiya4rX`Nch>G!}Q{tEb9-X(+@+T$fk z3#@Sy@4Y>geio5zy~;RxmZ;Zs<3kUbs7EvckW20gJGxLbfn=Z!u#^1i*Pi3V;1!h} z%C{RVQ5LgIdSdUJN=Yb&15vHPnBPoFV>bTFghDSHfj-P~lVZn&LZB6HELjiU>^tT2 znm39S<(pn0D)?)n=_*FHa$t%k^4F)*Fzj5S#yTm<-C9pMk;2L{Uwn;Thf9CE2Xdz1 zH_^atYxY1}=HLEym?(VLjRhwEgH$&!(z(6c<7Cn<6a&G177eb9 zKX~5Bh^KM-KFt@(;lcOzUN`U*sy1UldkXMPmKwZgMDD2VufxTxg};!l6!cG&X1~yY zNJR2E<`vvdOSjj%w|8xThwi5*!%PER5*RgY69Uyb*2A^pS8iLz%@|(8jfw{AuVf9V zGJHC|j|s52ZhQ{oLv`Z^&)<26dodprjwILWpe4?cil7M8bE;_mX!KwWlgnP zy}a*N0sXCI9XV}}oOL7&&~3Uw9<9-6zZa(208MA;(NL^5E2=C~FpjpIHW-5EG7q8; z63=&lh1%Z7giJti^uEw;^_1f?AyGqV&4jkeHuVQ5cU>j)#g!O4IKg@-4M(b+-N929 z-*tT9nTN3JiDfWR5LU^r)qRXe$9xla(q!fCmLu0wQ-uOy_Q(*?({35&XvP*g_wHk} zY{x&tqCn47bfuzozS2j-E>Mu7_ppdO7aQ&Y)#73$%b(SpAc-^Suc(%S`aaBo z{pWT2N*a&Ic7FMbon*jn>^a5E)prbS!#0mkono(%x|4lP@BZ<{8GH|sE}Dbv;a*LK z8%;A%8NLoDATBun396+phqr-=H9r>7Z!!F6&M7xS*nQ<=Z#K6+I^g)3maq!G$+EJL z%JqUWL*QP2``Ot5YHeaY9twwpIl0LU;Boy7_JmbLBY;`*4QHklXG5DhH;pO^sF$}9 z)u|cwc}H88oe1gI+#uiAm2%-3W8Cu3So#EB5oFTzo?S=`cOl%y9Lc7R=N}5 zvXMI@*NakJ#9=-@CrpKPK_a_=tN&por>2i+n+}@d;)-uPC@WL|q}Mp}22NnBUzc5x zdZp@d9GsIZT?c)3&5#jCwNbUZkrB>~lj=$l2X%%&eMwS&H->?Ow1G}wc=}@&U^O@T1VET&(Ti#S@$lhF3JDoo&*6lnNT?qqb2aE z=yB|ghF*Rem(a{$#mVsPp65raqM>QYnq>xOoB?I#taO|c7@pSfFi%zeFCq!ti=Zah z>b?9*kHbI>oQZ#$uvI`7<_{J{r1Yyiz~B9|Wp5Ut~UeteRTgll~1dEpw&}p!lBm zpA=bnWBd5Datn04rDd`m3GkdsD&J6oK}@US-QV=oa)qU;j#+XGp&vgaovQy=UVe5A z>eW_8(~rJ}%$(JXhyL7rTJi#u0OL8!K>IPu&H-Vr)3=!VwctVLF7pb{Rn^jvwq@j? zq;imBzEh5OU-jNqleW(^>9eOeVrS^1`(69p!DSKZYB zfp4DJz*z*WSqVIXq>YDEobE97t@G4?WK!vLrPU-!W=B%_L=e*L;AZn0*Kiuf(!_t$`C)P0-3?H^}h7d5$g>aMA|?+_PS-RI`Klw*?-&vXB4O zXw@@f-#OhclOBzzd%g4O#SXfHe^v`(sM%<=a1UAmm1U&k(t-bVQbcN|)x&|wo8HF1 zJ7w7psmu0n=7_++pNC8F4e?u?HB*p zXz)5;H*JF|`=~n=r?ys{ra* z53ID4RNdpQaevz=PkkumhDvbdER+)HaniaY-Tg)7&tYc2pxQ@n@cv%V<0J;x)aIN| zPjvso%dC8w8PdF79JHq4?K$m~j6u$;^x96_>OvZa2C`6(6H-HgrxZJ3i^laj4(IPyM1ez2UalnmuOE0->aDt_ z=?GA7E?BzPW#2|sTA*O1lvIs?W&h6JnBjqwq=}3kT^e+Qko9ByzEnawrUu| ze}f9u=rDR$iZkUK82))}fydD>2^}t-`JIE0$T@loq&P-N|1%xN7}bK4^!i&{G&S=2U~`6#`SAatMF91nUMRhmiz;#) z6pUH)J$@Jgh06G}Pl6j@f@0p5zvP8gyapBYX$m#?wKex?Y(8!1b&U<(RzTpfjJeIq zUF|u4f+jozCR#%eG^L%(^@z^dbt zzaa;jbtW%C%<~GDdf=R>_27^<;~ z`Sk^{R6aLQki->bu697`EFo03AW}Hk7}_`21S#?^4#cUp?)ZKD>#*%79JFI>Ip4Y1 z8%TM4fS4rK$}t^f{k1D3*&_t(h11Hbz-sIZcB*2rO&+i3xJsttiYoC0$kTls|J;fKUWVuekw@PvwU~W6Ut}8bCUe-uI&Qk_oDxi z-)pj8K?9P9gSB(_a!%a{L$~lg-ARwZB9#qZdJEnF#_EZ)TwTx~4_`v)LJK9$; z^}ODFrv5&Vv&n4HapR1z-Z+GY^kPzhq`5nZJKZ$p3W*&31c5HukG3&&viy2L;(Pdk zFra4zWpqpBQm__l9~CLjVG5vmt?eWn(J&6N$}TF$%%8$T#tV7i^YS;N$PPfH+Op;R zkM$Aw9<`Zxo=!)7N0Y{Ar5iXVSbqa!;1?+8%m+WzCW*Hjc1gXwbQMT!W@b5RjukCf zn>t$-9K7ZZdZqy!Qo$+UR37Z83xxF6ce2lUvH{+y`hmH76%qSe4cYitn%))F`ne)I zRfYE@k|V^$&1D)`)2D#PNSg~E$2v3&a~IyZ#^|mN1)V4OOjk${7Y`_2Jp%60#&cl0 zP9le_ldFrnPb1xjbVEgv3N|HetBrTm!~m+37zcEmWEl-MZ^HS@eFy=>aGx@RI2<#_ zuk?~V2yiR=6oufd2RH+md$fxe5I3kNY#0qFwl(A6Grs}SaW*)u76@v4yy7M@V^tmc zXM__HIoyA?O?egTpkJ85=~XBK1HyZ1^r^H1FZVyMz3e5U{!OI&9RxQ8k*!Umf-g4{ z^5dBxvQdVGuLsgO3%u2Rdn&5I&b=nlOE^_yBJ>-SJ@Uws95y>?f3r}r4Um%^Wq0rh z$~lX3bNMTp-_hkPW$@@aSs~+6hDCUlHuG7eQDIRVlpM=MAEd{wAb#H|6K~uRdox(Z z5W;~<6Z%*#bOFw8r>EojEcQ{?L^rC)e~{$6WAC)DboWGRO32~^#rtK-+iiW%H*?L- zGXk&Q;*;e?$BE(VI^k>@kuMjk1z+#~C=`Bn6vu_?zTV9Kj9rFMBK&jglE;c$+-SHt zwq-)^=&`n}FH+y8tsU-Q%>P>Wqak84or#b4p=}>E280-Irt}jO=T5*{*?x;}HVgWH zyEqg9m!7vnpnmRPnYkh21;V>L78Xt-d-(t)7W!^)CSQskb;5KQ@oY@JvOj&BCleLz zyE3eoB{hGP%4f)JX#7`1cR8+t^#KJB3dCh4R?biSlA!Psf~$c`;lw}Rv|(1ddYv?p z6c!fdcI@Kj`B0f+nR}LMh7dcByU_QOpjbw+Ef&wY7}i$Gbib`T1W;b8sMeR1&jDJ~ z{vDBH6mJbTb?LR+Yw<_RG4C0?9qjj)11(?P-#!C^l12(x7m!AcH+@?<1giFpQN`X^ zD%q9j>}sd?Ih-hgiySGZV>r|@(UC{*5wH@hEj|C)>?>>Uf83%2S4(y5utP7e^=TB} zaUX(QHIDA;#n_02@-!Xb(5_ZOV{6t;ofiSB?P zp!YVdbGRK66s8P;I<<~aXO)o))-jgX8$;oP!@+ncq^v5gaomIoREW+wLmD-pjrH)) znqiMPWNig@BrOtFLSKU)emX?>W?^Zojw!}>=6VJH?F;E3a(vx%ObmXKeu6*CigBAf zjzH+wC=HPv42jLw24Sr0cJ5()TU&m#zPFsyGCvmOSib+O(j0SWs#(FW^i$dg4>Iv8 zUn8dBt>WRB#$5{z9R_!j656wyiTNV9KlXk8>T)hx{||%HcPJL6EN0WFxmlM0V*8)j zAvue@Nd*?N2Of3W)2-u=<88{^hLpMVGt_Glyp_Kcb@BT;bbm!($?wb(DQnnHxwhjX zUf`H~_XbYO9CyEFZoa@W^}qi1-5II$O%=g+nR}`uA_=L6Nm+q*ig$QU)vs{kXmRf& zDlg~2ndk9@NM~gTC`;oJPOd7`o0wQ@-dvt$J=Zsm4_z56XTQD6`~nO!9#<2&iIxU( zjOqW;{hZ!TT*h+KSi+pta9gOh`%!`gUti$Q89sAVdVU@p(^qdUi;K`NV zb(O*ZK=wRrEme~}Rn|w?DG=)N#+X=uGbZkFIEWW+cuKmi8N=j$HuPfaE#}3wK=7So zJLmlDg3_LEN<+kIE8XuNFngKt-4gJ$amC^{gguu>pC zNUSY%yZSJIM5Bq7nqv$G!4aopnCl%RW3C80+XQa%Sj0=b5Xm+sb{_}3sE5hkCu&@5 z)pBgp9e^^FY)9ss=$-R4>l?M$gDA7`8aREoEZ-qQFqBwEh!*Iv#E@ULzZn9V`fn}3 zjau*t82KTgb7Y+`gVOW=F>}MpR!-R_3xKz9uU_)&ki5T%Z^l>Pb6fzdQ@h*WdFE70 z^A=P3-4e)>c_)G38Qu7l`*G2K;#h8Aa~2^%xI2??=U%+A{-E;rVh4!&U-TpuBXIoW zoiGAQuQn}PP(<0H&~o?&^uEnCGQV+Hk9{deyYFfdXO{rZXzJPlC>y5c&4{wMTuOYQ zU~e#t5!kd&$7C#hdiPyjm8$&#ht-o+w>RHP5QH;hnVf>GM!f@M`@9f)9KQD$-ghF611#c?faUOM2=K9uwgYPWI8Gixw-AD(el<#k z3|OiO!4Csg;`tT;@^>9-yeGM2fWjh5p%m&V&bRL95x6c6KfTDwUGOP#CXs_W8ui@BG5&}tZ6Nw@4+H8jZnAq6}Ug&;_9a?{otXA>tC@4L}nwkwcxcN`~~!U zH2JdRvfm}!UFN&UHO&nH()i&VQ-{SN#x-`$T%D3BLF>Sv{*jCVaA}ORL3AE zo4Jh(d~txWnmL%@Fy0=sKhDd#l)H{kwGZr4?JAf1sf`B#^wjs2ptoWvSr(W)JM4~f z22xnuLyhh)0j})>(7ax@rlZwief0o2gSQ#(2pP0=DU0?<`uOD9YtYPR444P1r-e8; zSJI)k;*PfOcZL7NNUf+j5RN88$9bdYZ{cE88orxS611{+IWAn1SSm#;saArTX?Y z#vrH)aC72Hxmu7{k9P0(#i-uKN*~U0hF#;2B&K?(%^FaFBljSynaoD0^^tav1n)*E zH5+zKT;CoC1HZSUeqh(W5`HUH#?q7>z>Xz^5P^4CB8pV+;IHp8Mtk5$+Kl5Q(9p$PH!s#1!p*u0iJ4)fu@y;hPm1&7U`#5Rs9=&D- z6olL1qebSG9WW{s5}_d6{6S*vlGN-+3fI-{#s*e9UBC+MXz%lSSN0jW)~&P?I?jhv ziBI2JMk&KGKqCCn>)O$z(QS|-eBh*&t$H)fe*rjXL$ra~c8MS!x=RM)AsT_ zC&R=C2&feAd?U_f^43%eI`#$f%VH}4b|n3%ecfm;e0QBmDX_)DRpj+giA3F=?=O2u zg+5f?;>b`-qKwc_ofRCSHRZ%w0Cu`nXT?xvG7d;i*YVNM4#jns6oZhh8k8Y@6Jwqb zF&h!CgD&2wkuDYTB=vZ>7}z8NKw2TuO_e3bKvVgRB=^id0h*<}g>7CaRf}90*JitS zpVK~aD5~cdp0__p^N{|GLeQ`2ixll;evohR<{U_w;6Z|dJj`-$ER+1(j7BhZuW%fi z9{#v-j=~>+-z4otHlqCjjS%RO*4`que=-elG{0vZQb(E%U~~&^<}K_VI{wI^tKMp9 zoxlk&fmJDrJWo2Qk!!*m$ED}YJkEJ+U_o6UlXd`JrG7q274;kcq9^oh#4`{;?-Zh3 zHP-N|Cf%rqV4hG%#S*`|>m}%p7=zVv3nZz|zj3Pkri~p1%fo)n zY=Z89-%cXRmVTL7H_V2Wdz(#*RV*XruLgLz{=P1opWXwa(`MDXid22aX_q3;*uqJJLNg7oUKI7C_Cn7`#q9zGj(t=pFD+Fl z`v&z-d?p0mVcv=|^W|BKSK9X+uH1NSZMLuuWP%}I_8}61A&h78n-w-<1n1rt>q$=> zBX8BzD}(qhWl3`vnYAJk0s4WMh^u1$pC zMnERQlSZxP%qVOa1PS(*^=j7YVK6A<*_j2^%TavAcVT!`!28r(>d&NBf=B^R`~Bx{ z^)OMu32P&KTOzxLyJ|p8xb@dPf7_=aT*-gRHWM-MF-AHH6BD+)V`TuawhvNEVxbom zMTFcR{^Bs49wy<>c6*BPsdV_Fl8&yZ=x}f0jjPWX@@zA?K0C`@4L(+R^Bxpfx|nzrRdLl%CE>`tA`zFLbCiOc5Qr3>V=XHYjpT>>k`{r@gsp?gfjc%+o__B>x%9tuL z3k1wR$nohxlfDOGox2%%`nP`ur0Sh(&6{_=4`8KJ*VzTP%NTxirDn2n&tu4HXXW1x z0j0pLZKI-Jtpz~v#70JuqYNdW@)&|s-NU;0F0A=PQC|Q;@-r@4Rtv0TnxOrM4%GWl zZBj8GRmu*7f|3@iAvia&J}DK?5RGZO`oWSV#gG3`!R)^GJ|V`#UBhEx4!cY|BBSRf z!M9=8HUHAkv$VsrMDw0P+{s+AQ6^ga&Sjf}uF(KWdxS2^*9NIlagEDy>ki%u#|0=+ zSZRF#no_s?Yu1uI`)RkVBR25tcoGM!b`n01jB8hha0#P+KX{TzNH64K%;?{~hIF#7 zvlG}b8Etpn1;mFRbNWX%y23L8E8#yK5;ll6@uXQ9(^#WoWuu5NG<1f3ry}OhavX+M z$}@yb;SeEGZzaXOXUt@F-4PK%6oye#Rbz^238goabT6oKc!&DH@o=v~0NF>WcG0l~ ze-LF7AISS*Ff@LD`EDd&p}@s2OaC^xsrz-ow&v}j z3~6lkZgB@{UYX-x3P@W%+-MO0zrkN{`j{X<=cI{rim6J0{$qZHUtT{Np_z_f<>1Of zhyCBcFX~3mK2^10FEspC6k)8$GIQz?ucB?41BWx@=0PdSYuzrI>pp2NS4aUnV112e zQR`o&arCM+g)nlYG)7dX9JgF_}%AUac_Xy z-771m`QMn2B1!SAnHvX3lYR3>AZYw^MjGd=XWL4gi&=zD(-rgOky_9D@3=`Bn+ zj_eyJ^XRwOp8rMo(knQRzT=OKb6m3v*DqvVuID)>dn9`QYllvOdmep~o7(8VpH28@ z6SIxOyh>6FNAC?(nv96z0=lgp1DT->pRSmnX{uOF`ax5OHy>k zWz0qvpRNzZL6lMJRsn9qt~qAO`Lv~f9-D47>t?zwb*$eoO(&u^Ecy@q<<_Pjl#!_E zaLX+NjiBKuPG*o;S^UN8inUu5t04^ev`7ptPiT1mz&{z6nm{dX)G{Y&mobNpA}V+h zpPKZ+)AQ8r(2jDI&o*;z|q$mvL(N1uWSAN_bd`y)o5xhc5o{9e9?`5nu@8AgG^ZWu1HOyftVV%tr*9fOfysb`@2ZmX_9B0 zX={(=0lB!&gP=7}GluaE1^E91?sbxx;Q!#Zp~D2woq*|pM;$_O%R!%=_9a7BO;=(> zkIgN8(}r(_ly&G^o)Zd`Bl`J=x40px$;yRfSIQ1Hv0_3MMn+9q)G zHJ_BP2_BZn&ly0#UP=E?2pAjgniy=8q*Axbu9^(B+Dk{K@j!yIDHOnw{(LjZf(gCq zdJMg%3eBiAlonQRkT_YZ23_F?pmzI`5#^3;jG1D$1jja~mCQdPPf}`h?%0Iv@1XqS`{(@kqme?{N1(dw z2a=pllc1_8;(CFCiU%SUku`%bUbornPZXvCqsPTw07mJwJ%m#|+hr~Mj+cnTCs@v< zM;evoV}JGUAx{)~f8nZxF17@KAM7-dv}_6G0|A%*mGVB#|#FO z!<4F8ZmiwZg8%;^z9wBsk%1i1jMSRKSDUgnlC`c6}r!y6gLsV3QVxrHcS|JtEzBBNs zM#qXu$w2b7Sy=a()Z+sl0c_^`h<_ukM!v66(?_uRQ4Z2r;TWcHt1@s#3IbP4tOqu@k_^GS1k#>N>nJK4Yv6=`x&7qbIT+Z}S65_Z_86My{e!eO-Z!K8Eb# zlCKJ;HeTeHp&ExSKLeKK_2!5v#$|WR(=przlML}(X~$Fq5#Y)jNPHpTh(RapX)^%Y zTXn#{#X1E0ISj!eF$Wxshs7AC5Oc5SeX58k$lsm0=BLs={ch1-nXyS~#UfXN}_i5Nyx7e0eTw<#_xESR0JJRtv_*5>XH7*IbMPrf`Lr*mY~qG4j_Ai};{aBeeO=4Au- zh5XEm)`9;PMSfclZ5xDNn*$o(*N`2R4n;c(=f{E_&2*JI0_UY!0e{+oqNB80oLU>V zd7nh!N<*@`_VI1q-Ul2xu}qY$k3q6ZNtUxVu;uCYk17^P8(-)HiepKdfA&*DrT!1F zm<0ffmC*iAuvjhV${j3OZ_KJ67#%<}V#q+Bthl*7UVQ#;A-LP@3SMLud>4X_Ah&-O zQR;;LKPD}*BF+(Nzs63*tz>|~SC_QwiHe9KB7+ZVgt3$SyDAI%II#u2uM3UVL3@!S z-z|`_`Y+){UQXzXN*lHU(e#us;f{Ngye%l%a?xE-a%gei?Ym7-|IjzmcR!>5NX-~< zY6Y4foVv3MO}(aR*QV{^NkOD%4|}rZ%IDYgS*d57#7YMM$4YA-`4BZlT!1Sui=K(z zIQvc=Zg@W}`_-MrpX}5XjZf3PP2#sIlCJDX$FX~sTVyN#%*ER0(st@u^s);uD*877 zsj%_w8={Y&_Vt2RhZ?K10BI&C>j^hYDgAj#!gt452{Unrv~W__@U-Oz17|dJSfqKv zm@I#EeYl(^)}jxev+o%GS4Yu)k5Mszb2&1%N!8sFP+A;}k1f>6V4NzT*o({XBFS^wSBc!s@Xe z>zg*dPq3-P+NB|ufAlM@IjpoPTbr7vuv7HI7?FH!=^SJ>43VSGz)?EMP!!wh0>lw( zl!ISTrfzA>cJeVD5Wnvo>N86Ar_y&651A z_d@uU3+xAhBNMOpL4!ex^)yo;pLU z`m5GL4zLJ6Mo*O2!1%utS(vD9*e9r~o>%hcNrV^(xHEiI?!6aHmSE0ke~15r9^lam zaCjAjIWBzVrX9OW+?~<;_it#BGrp%$`{h2LlMV+7Dq1Jw*G#geD|_WqE2(xM9Vxrgsb$J=* zFn0HRr}Oc7K*{fbSqXIryaFK}ZP4>H#en(QbU076Q8jbS9S_atgO)TwXGsJUMasR5 zDBnP=wzS)%mzC%KK-zW0>7ba`k}CbP#m{$FTQ&W1{LaYf5R~yt9?3p(gzG+7-6)PQ z9`s2wMPk~B0@OZy>(By*FwtIu{Q5Hh4OZpA!r1UGMCC&0G)Z15hnBS1MC6rSOs9`9 z6VW~$;({5o_gqj@IB(5iBiXf(Xaoc`1(ypiU1SKZHU+!Mu3L^`$mh}lRn9A-(>S{(FoNvV9l|z^z#7!eAFCu zZ34!xYvYk`R6WA!@jmape5(?!+(@Cu@tEY2;e@%NRW(iS>{fRN>+?&^Be)~AvyrI6 zL*8Wy2@BD1QA?9NTD%cE(-Te~pRSp3O|)ZLZN<$fx}K<@c!tE?h&M`qlhXFG<6g)K zP?J;I_3uJc?!Ejn9p8Wxc>PI^ctbE~O4j-i%I92qy;j_rM-jllQ zvcHO!f2*>=A{q(*k}#XVZ?r^zz2a@@WpJY}+k6Wf}DOHQEOcApjX?KciRQ3Ei zHMee4*NwYSmP?o9r|^E=QpNCp%KsE1&y)6_2T>RzVBXU6D541E_2*Qfc~(FyXrJvgHPgAa#A8(HshPm@{OZ%|Lz=g+Fsy7#q`}G~ zW~NSsO@hCCJ8`*=ba?7NGmW=YXVWz4gy>8K2UwopQNt+R%)3*kKFNX6;bvlr`Z!8m zi|#o4^ei>lqo}8wBPVX@S(fpPzM$V`!3AuLc`Y`mthHd*j~#97BBcJu8)6vZ!2RB1 z*TSKJm*+iXbl-~eW1!kc&@5cR^abKgHQ=XvWR!f<)XNHBO{Ae?n(rN69lbl6ZW2+C zlK@ppei;9ZgW*}&!mh+gkUqVAcD%g>i4P@@8e6Xx(Z16ep`%{i_#|78Wg&K!D|Z}p z6&$&fovt_jsT8@n;@`csr^`u8lGEsjq?sCxFV;K)G$MG4=Er`8sLD9u5o4N>s#i9L z$AZ@QY9nPu6@QCXe=UsxAT52%K2QqEJg6f?M_3Z)AEPk*Mh{+zK85_}y%?O2Kt*ZB zy_4u()$VIF6m?Lt(lB?Co6x%o>@%MgR?D6s4-|WP+(qdq)kgO2{klkkk(>}Ue(B3$ z>50J}Adu*en1E7$t=Z`W6{ryMT^dFC#&CRzykot#H6+3P1dyfSaUh#tFa`3riL zuT^M#qC>^>1|-mbpu?I+`;P{8P7#%YQ5W}|nrt4t3Ns0qheQQi)K>X3-OO zsV*z9qqAalO*8v7*yE^lm>)Ox?S{G_6|GPZ@)D#RU8YpNJ) zuYs{@^j$I4vM1kniaAj^`MBTZ_Ngk_>bJ0`;Ozce>M#))1$=RGNyQb2gy#!qSfuqmzpg+z+!zzO4qr8BQ#k4EJ_3>Z!*Q!{A2#6+d(-Sq? zL~O+V7%EaV@Y!%`3k77lFK0*2ZF~k?bKg#xqPJZ*t()(5QWxG9a0UPr|+W&rf z1GY2)*}SEmtCDxysDzMm(7a$;tOC#@`Dia0DW!u>?OOR4bqmo`h9Kj4ayLpi0jN4Z zKL}Y(Br?qwG^vsMs-*4#vtT3>BPQF<-z*AiK>1>C}vOP#&b7WacDlXtGy2N&qhsxU}uo3k7fqo$}UZausd_H+&7;j|GOT4f=pQ_^7@L0`a{!=>f(Q( z%$M=Q!W_t+7(I{UipKF{#u3hA1 zv}WpcGXG@PVtNX|9n`4h&|Oyu2Rm$%*by32BSNIAy2W!PE})*XT3(aDMG z`y*b(18&hJT&9A%hxa-H2UA$Kf-`^+;k&`|(|4Uv&UlRC8}G?r?|+Xg=i-`WDY|S+ zaPqq0N#Da;GSS;CMY-`>qpqW~UWh(I&{KM?PYG=$>c$sE|a>#&M&TzKSHN2eX z7&+7_=kte|)I;kUDYCp(ce_};3rGj={(9_V}#%9vG=)k0P_Uu*5WD-%IWE%EZjJ+g`~h~sYe zy;LDpMp)mH3&-8I)6(gCrlv=eLLL{0J=r``}j|n8*;3ZxxNHOwjem>=Ud&Kaaz{JDsX6cZcKSe;GYH$?F-Y`;-$P> z^&NUg#Y{eT?i^a2=@Q3TL_cT6XDGcN1%rTVH}zqdI0Y#E5~}++k+VqZ|7q_%o1*Hv zu2DhI22{FkW}0*PJ0&M-UZ~Kg!?xpDTL)qj z&V$CcR9yLdU=idRb2M@0#LJjIw?AfL_xX;i_!pfFN?9Acd#>!Z5ml3(kLz75tKakg zZC>=vtNv!u2fn60f1b0$IKFm0*^cJpkV^Eo8!ePmQ>#+>cS)n9RUXvLN?_wA1I3}P z(h2H_9K7|xVns?R1TdVwYYsTP?sysJJnmH zMRq;#;@iF$Bds_o(QZQG{H8dcOe57snFT3}a?f>KBumg9P_Dz%aK)tGenmd@nN9nA zJ&wPV(WfjqL9w3A-N-of?A32l(T%>rE+WDl&&P)~!|8F-;xx?UoXu`SSYFoiftwUf zP?So|=e0)&{d<0&`{gCQ3nYU(A;0*8T|}?+jD2EYG30Zl5=niePPg#IgpG_y`CVO_ z;iH-B>%?~Ne%1SAMA;7~NkV>I(cRA&GMUch4G-jccb}9uRtz7M7{a0;R=XBRt9YRN z8PVbx2s?qr4;7e?Q_z%m7x5IAwS}Eho;%JNt{xRIuXJPmY0*KN4rUX;&=JIc{+TpG z!&&Ww*rQRik-vj!rDsKLeW?Q4EAF^bT_x~;oy+MY=D3-}BoWiQiZYGwLJmy@)%UMQn-uW8=pP_D%p>`ArA zKbO0vi(5yPwX)cQZwoXxrMM=gi0e{ZCSloJU;1E^tII-$BI{^kP?+2>=Lz4CKk9f{ zlqBVGSWzd#H6MnQoDKoi4fW{|t75{p<(<2^f{L>a#+VJ*qfTneJGi)e@lS}Nh$G7At+Z_Ak5g*1^errdyfA_W9_{En!!x>Y z7E!kLyd2X@FcCXuLF;>1|w1yLIzc+YVB?lSOVaRKNCR9=yFg znnP!rcKGl%BDlS%r!pC&q4c=1n7e`x?RTSGcoyFthDseCKS|BVwM#RQ6mm6ZKh#d= zj>KMe$sD>r#a$4s=ALII*u&)?oZw~GRR~&;C%FwYJ{$|>IVlpKHEQI->6Ph z5qI)BE2#0p@?nHKd0B)d-czkN>;{w6d#*klIjYJ}Qy7LmCfLL6@5-5_^oOSD2kCVB z@jT5+6vvJAfZ2zgTl|)!zkE7{G064#xr9X#wXxz?v$j+sdS7>rPu-&{L>E`&g$}(a zH_h8F_LRKw5&a_~lZ%v#gLIe%Vw0p-tKDZvv@J2YKcM?Q88hcdkC6eN?lR+hns!fm z44MSwkb)uv{_}N8=vaQrK*Hk3Gb9gC z(mC2pQ8$z@cLzxf%woyFO>&NAk|tKS9!oBRTTDO&#lv^DL^8uO6CD}GL;V^-8HMv38~T1uEp=*OVIS+S>9deLVJydvplImj`L|bCMeX4>S}*M~)u2KZ3n*aDzARc~3^)R>$WeL*VgB&; z36d}_5ef_n1I5?ooYAT-~5LS#zOC*Nv zf8{M*C-;M2>eYnti4GXU#Afo}bLO`EwL7`zsQ06w=uG_bD`xbj)Ik|u)8M`Ha4#a;@Xv>D6C40*#zEVB3ykreO-#PO zrMHXtP5J%#WGR_*7l@=@pf5HG-hC;$zH@FpU=QHRm+BGE3i4wb$wEuj=WW}FNcA94 zQXN#sA3*|%WfYDaUXOQa_v`Xh#p}8)e}Y8I{9pZI8yw=72s6fw`J(CIlHDf0Famk_ z!Z674!^9~r?XJ5sZ!HdG4nf)2*USJHQyX5*iap)w*oPf`R8m9}xe}bn(&+0)FAVl) z*bj@YN{#m;6213UkV>EQM}Obdfn%3pmNx4y82hB2HmUV4mdi}c&a!XB4Ey#k5HVKA^+wD_=rI6V`A=VS*B%`3g=V+R_JPb!UytOC}*j)N$-^ZeJ> zt9B!@)1lnUkEs=kz)*6`I0ezJVk3rL#1cWR&z@T~vgrGleh}Y2-WJ^2;6A%-6pi%!=G_CQTv#<#r<>ZGG5rN*oZ!EydpP0?#HfC}$TmpBgOtlr0lIVd5Xgy)YN-DZ+>z6m8@ z&kS<(I|}OmIwCbzF5oKc)q`WKs#=Q>{=S6h&4XCfX^dh~WYhiDaC+^QRA6f}M;&fY z`rV5}80~GI;4U+I`S4G7?^5S|b62N-J5mtL!L$7!F_?Syk+tii^&bKkg1$cHlhEQ1 zt^EEt-u5qJjHQ*H@6Wgdn&#{uDtDvO6I9D`h}o-GpH6&Gsqk7E*#g@=;@+QMsa7%w zd(-Rm^ji=J8wAO_?LJEc395mT$&{UMBr*I8J#X5NB^@tlr|GG==bC)p_DM}0By3k- z1LyOoLzy=i6Q+KBT?e$`7K%6U)COP=u!6fTMkplv?3}u9R8Jy=)Z!HhFc9I(D5zc( zbONM>)(|`vJp!$I2smxwolh`3nYU%JmbF_ua>_Bgg4YYoOz4}BTdT`C%XB46b%)XX z^}pjhTE23OFprdh2BLGBPZU>|fm7Cbq#E#q7OQj7Am@Xk@?!IjN(-Mk`rWAz_7v|u z=;ajY8HEG*eGnUK$8h2<@5ue4n1pPN-y5HHQiSTpmvX!QkNr|#R*XURwb#F^ODx0) z71>XaJ%9riza!SF`8nGS2dyriKAD#7ta-mgJ06DWf(o*X-Nd%!e5;t&QUl>vw3p)3 z{CFE|LJHWA-X3*E*z92KGQ1`+t%M{RMuFG4Le?SkBgOX9GqHO~C(1hz!`17q;`sND z1A-25ir#p!(Yu#I-<5)AW7o9G6iEz+@zhEm^*j`Hk8s!G=^zl2={gWWO2!zspiU|oxYqw?_NzX-nzH_IK53-PbhU$i? zAaK#zOfh-^#`mR$h*1dhowkz4p~_>|=D7{I7K6_`+=FS7s`&cc0aCurB;j}iDjZ6g z-!xofx4AW3VyDdl^XXvKuEqJ8sJYq0qQ$}d(PPTdPUu*q+Mu+&hrKOeZWSqFOsXoe z(5d$SO+X?V9!?H?##~%%qd9NaKnl~F_jwI=y&~re<2|sLZH{WRWx_*E?KkH4j6P&s za0k&K>EiRCJzZf?_Nz;-#zmlfK(t}cefw1#Q$Tujg?T?D`Flfr#PPEdk)h3$1{Jr> ze^f>)Hf{u5xIk`Qi97}vL8T^ zkXj?LO?C#)(dc4_Div?>q0fHCg?#3U_wmRk84m$u?}obiw|U>oqT>^qt(sWeLO54L zS?HTT-Khgy3z&!H_q>TV)`)zR`D9_us_b^GUGj-THnvquzx^`WtBA*3>3mUH@Mh5Q zOM%C!S`o|LCL%__NP?)K?7?}%+lrf~NE@+Lz5OY~B@+$}-TTqJL9#ynePS&X3^a>t zEjnQRnA&RlF_v@nXPUR|Zn#1b`JC7o<4;+vMeP<+%G!cf4suI{q`EemOP$zjvlJtV z;cyP=i6J)EId7iV7Irb3DeC9QI}MIr`^%6s78zGi5oU#Qh^~szp`!1NPgX9BD5c!5 zR|n@+&%6E&41p&i&P<gOZBG|=R4b2;k9ZhB1`{S(%xuH(lsjb))H^5jsAKM&0!X2eVljBXIwnh%dr zF_>!qCg}lNY_al=;VR9rxxI4K3E+DFo$Pp}3r z=ZQNpJ3Nyl8lFWA@KV-nt{IqU0Ra@98f6)`!G(ve{ z?nz*t`A?>Ya_?}*Ov>=;QYW==axwJ87DTzk+&9he=$483A|_9m{P~KeA@iaQduG2P z1LOL&wy-n!505WJlE(!+Z|>8LI>|r`hT0|*MLpxw6+UI09OwRb0SBoaayJpz;_B;f*9}{$J-q33$p1%2 zLqkFvUtMXR;GAr(SMpGGxYmX|`Hp>rM=t-!Qir*!qH1&lqYXulpVEL{Xk-!e6Va^4j3?eK-|UptG<;pLqe*@N_dk&eiT2d#$Z(Mb<+R3Y(5$T>qknmgM$# zLcV^Bvd?cBJoCHXV)UX)15Y(gt5qQYuS8BT+k1Sh`%b)p^VKxgvxy!y)R}<;5sy~P zeP=A0jgyZZMmVQvvYOF~`N|ECY2cL7#3@P0Dc*(}1akx;p%_($x`%^!vmb=X zKHB`NQ8McNVje?>3rWuv$PDWobJT3^?GI{aG5>}-W-zfBeu>kCLMDbtK<1P^EKW- zW`TiV)c$EA`dTQTb12VM*=PucyD2hkqh;DM%Q>oq7tW)3A&L|FHKAWp_v;+r%CRt` z4htQ$`o`;Zsot9$y*K+T)eV%*IBACO?_?CCRUY1RcYAca=I&Z1SoGE7J(<5|S`YT` zjoRx=u6<0+8`wH5y^}H02z)OZDPOr4i+UK`rRCy;Yqg)(P?;sGS9wQ$m&>VTs??JM zf`cP}&Tck$Dr=t7wdM#yAETE49ZSoX_SGtKUA#x{@}~ET6%Bdizb6+X`NGw6F@++! z_c?^?L~y#PR%KjSEaVYPJw?TDIf)QC=$l+7WPyho1rA?(z)3cShDzG>$)^xzCHTI7(P4&!R0D-;3H**aO_=|oTi z9;)M3TPR1JP~3UAgZPh3iP?TjLxnM;F<`~sY8P(wYg=qW`hv-&YK?zS0cpNQ2G*)^ zHvUKi)!~UEb!(yg?fOmKF4s1Bs-%7Udsh$JKIVQ;e0VR%dWdC&BU7QJCNw|Odw8_? zd8{{GT&eqciO#vaf`A>pdh@LFL(T2CGHZr4MhHD_jv(7*_o2M zx+g|L6Y$x*wzvMTby>bq)!<;BxkIucvBlB3{>4BczT@R!fun&|`G9^2pMN2psfpl! z;FTu0o-*y7BV9lW>|>p0ObmpPZ+3q_2-wy+c#E>n`CTErW6jN>g(uoy*%xtyEfOcc z&r}Orc{H?l?sQQOV*m%dBG=IKM4+|CCrF&Yh2_A)|CKKqFXq5U=V7)4-|p<6vH>_v z|8r?!F#sg9FJW^ppvZlMLB+x=|8oY3$Rgf?M8@&x05sBoo*VCSp#iU9VW+DW&}c*mucD z8+f1-__MC2iW*r98*{7Mi9*+rbl><-MA$=FoT&t9G8v$u{N8VK@MNUCUmN`Vm}Nb(^Nma2 zzMs%c6qKRr0a7~4P1Bq!$hsB&za7X%33^tJLj^8Cwh~=&o$E|=S?J9yp$WD*HlP9H zxd^%SPgmZhoXFm%(CI-E(0(UPHl$(R&;3s|L6qkop!W+mV9bd$W;9V#T zih?8$m!et&Ld0`gbn!BJQh*CKBk;D_ugnRC^YE`(Y4>xYSmg}svAEh(7d_zT0M+F0 zWHlW~;U)$3q#z{v1?t&UY~ z0iZT&8zXNY!6;Ua6bKuC*8le;Zo*wE(HcCI;k*Nt+rtPO^YO8hB}Y$5bMU!j_crsb z!Fg92-w#G=6;av$4`iM)

EC!W_-DY^aZ7k`P?`YhW!+k@9eB7_n;_hN@-8E|Tma z=reMFzOy;9aH$)pqN~lA-$=FbHLTT9QqUbq+J}W&5{S%k|JD~pxI6MdeBx~2kx_0$ zMW_y#;#Jueo~r(ezlhopt0c)0yB1fx!o*qr&2CO--lh!gWCG`XRvAF1FgYpt%ovBMBSv}Xmdh3hPY z62%2i?&uy62X;V&-fzON4OKLR;a<|5m3&vp3P3-@y8E8HAb#(TuUm}d2!PNGq7ST8g09n!V!WhCCgUXACGW>h_eO5aT)25Rr0j^d}M6l+TXnU2wSO zlB6bIb^3bkrY@T;o*8bw2btCReyi2eI@Hh1Xj7+Ph3J!?Hz$A(SH9OpJ(U40?m zIss*@$k@$;RYG<7<>>92{C*~EEq8Y{)&~EmUAG@RJAI)ndl_KrJ3jp%^9{-z4VY!z zGvNL`+a%dK>@T4!R>>w$dJq3BB+ z>Tf3duhvT*AokD&-61UQp@>Hla@MQd=A&_iDLZU+3Hw(&%MvQm0%{J@5BIW`Al2C+ z7UFGI?eR`4%MCPjOc4v35siz67Bd+f8fFVpGYufYWp;6ccyNDDUWm;tTeNmfSt{h* zW0_43$ETZp4bOSQm46Kys^MO}f_;Ym_isAaAJg))3V&v4w__2J%N0;yKp@#FTD27Y z88R9}F7cdSMRVTe6*#YE3O*wMIm~JBY&)Th7O>c*jXL^n4qP{<#4IXiuc3cJS#}Kr z$wljCvh7mPT3D@z^>q}%jE2|@1s|n(^lID|qVB=5N{4Zy>i0IZ?ujoVLK^}C>ZZ+; zP+-JR!MY8=vYe1%?JjK?A()D>ja4USe`9eR6v$K0ZN#M0`h{u+eZ{D;Ohs3V8JDye zPonk0+B6AnP_X1si8H;{7*NID}@PNh+#C1|cgQUV90#c>z3vRWksJg?0-PFdQ zd$o_aQh36{w|^;dGX|I;D<-}1Kr(#*c5=^WZAK+1_$`1ePZSj&tR0buLh6<0w$W}3 zRKlmy_>~(uUO@#>Y17u3Kcz*KaVilml0jM#3?eDyD9#}M#`r!Em_3QbgE{I-z;QO> z%?Ch(4_RslRt!)U4Ccax3htb049x^|d;(D#FnxbBZtCbS0NWG)D&vip_rtK5%~s}r z_Z=m5fM}0wZX&gWfISYwI_3(B1qLr{H}kx~$0)L9$dYE05&s^5&MGeuk^M5E3VUhTEw2n9d|v^XO=;&hYp2g%a})FLpx8JdWanf{$yV$a85K_=Odm>%i0C zGesU^m*EnDZwG6u)FKLAms`Qhl`;WwQd0^xk&Ti`>k!s3&} zm8ZSK{HLOOk8cFQ;>w%Ribi4RYdc&(12OFUka}7c?jVo$PFDJ(>bo56z1YcN8%++z)@ge&mkY4ti9A|Ly z+BX6ko9;a`_j0Sh(EnkJahf-dUpaEhPsQ7xUdXU=>1M>rh4MADzBJ9un;@%ivVTL< zzd*Lb6;z20nsyPHz1Tpihp)DX2GgjQ#PyH?wv_}v*nc)M^2>G4 z#;Vi#3^EEUON-8AM6y#hv0<3fGPwqs0&PVH&+NsmscCE#wJHY$2jz1=@CV$U?*-8o z2S>o2^VVlvEtN{!-?R84`EdO<*QD zqj59sF%^)i>yS||m3T69-`Exk_i~uIhuqlr+jTq{TIyLdm=zT4D zW}kyVLzxFeor*Nj@g{5#4NzAFrX&TfBn)abX-CPPC4G%-KRFA6Xc?^mky7=1F>+2qd)K$|jmN-;%Hff*=fD?&-bY+Upv{6({f_*sh;EFE){tY}&67xstOVVH3eVxb1MibZU+krKti#^FFCmTL zmx3>wdt!1jQw6%;51E(qM+;4`3xn9A&;_GldbNitS1*#9xw)0}zVVfbNJ(8C;_lOb#*21Tg=H_M$)ezPRV^n z%H<-;=;T3X#|zXbM-~Ti^C3#{f}AaK8lo+Ks!qqt)Qw1OH3fzaO*98ntswhNX_suS z$7hf_ErDDyahxgyae#~Ri4Z9-0%-lyO9>}?&=4&~0@Cr6q@xfH#Y5|b8hKu!zjW&g{gA!hs5tUo!>csFyhi5Y=n8ve{Dj9 z2e+-hlN^A|pDf-3!kkgqQ&vDC$FmkqhBVT1p|=%u{#+1j4UtNc1lzf7#UCSJbTsku z;w>A%%*v3!1B`~}gGg*bMEF;eAz_D@Ice*ENrzIiireF|5aX?w)jir*=4~r4A#q*_*uasj8CA_%cFamq`6c%m!_5|A{;wkBGNA9tjJ_psO5=4D|6+#le z_?;ha;q6j=!O36lcf7wk4sae?9tKTMa-Vu6e{x8QC0!JYOmCXsfzJn7?vg4jr!hRU4f#*VmOkH$$y*#J02vXmIv)x<(q>ic4sghN}^p_7%%~LVUpfNZWK@q zzZZN^eh&%0H`H`wL&#yxIn_r2XB0m_y0bp>v@5wG6-(gn@%9>XYwxY5EmNBW16^0} zwwY12t%u;+{4mYu`H$_j`{%By4Uq5Ml}XYGS8$kZTX}-z zL3~~+u)F`;qGGxx>U1H>K{jD!quw0gm7DB`(+j11TOO+_9i_|=n~*%9Mu$B<_5) zzj+-93970|Tn`?g&iG%rXqX7oc4(6XAD8_4_=+s5dgB zwlMDQGE|m14Ve^L)R|pCjATpMHkXI{KnPFD7ld-ge>c>9AVS78$a0XL&Ds*d=pmH{`(1b5n-)~g$vrh@PdYU^X2__1fTI!9`5RKqXV*m6BfSs z`N;z_rEtOx{}9mO|L_0hgAW8_HzG9D0C*L=4dzuNOJDx$_% zr^}I``#oW7M=WXXkX`0=oY8PlC@~gWc>l%;&>8}Q9*q2A9_d-&WE^?-NvplgVk6Kz zDqL|E_A%UT%{S*cS<$GZ{MxeV0@(r(9Q`y{Kr&iZ`m@V;&5eKqS zSOjRBeS4AVs9;ct8HlZq$8Br~DpfFIAKDElO-Pd(!~QXhoX(RNbD~BBf;QtTnsTjS z2W~`m;3vBDtXa*hYF{AO(#1p>W~^}2ly1yPQCD8 zv{;P6zL>EceRI2zr}J72{ZhZ4j;DY$|H0(`rny@yy{fL!G#duJ0n6^)s?LvnNsg>7 zK3o%hKzCZU;g@io7~>7(Ws3t8{gas#_%0@x+`k&D8Pf_4oyP2SHeKV7>Uj>X$$>zuv0w~6^y?71{3 zssvTw=BXc5zQxjt4#=V=LQyYak62>sd519oP1R@ExQX}3&JQ3r-HUgTgNl?Ibgl85 z4tZ*1oYJV5>hB%6?P5 zT^i}Ns5_jW2^&xUP5d}ATL@s~L=lo1Gk$(bVaMv(?q?ye*jTE|>Vd2-g3o*(7W-Dr z7|*YnRLq9=_{bSj>A^@>-bqyDzI-}3k#kfHqpggGzyOf ztZWy~)LITHE@B7u5B_W(CQk(F3J*>PN`p_X_wS`v4W7H}Eaq9zM^=J7i zP@SDU_aS6hmF?QZYYUBvo7WN-VJ(Xw6UFOW{G==cK=;2;^98P0SA2`1 z9%MM30W$UKmfz<2Y{V`UE}fjzt~@91|58$bCA zt9hFj5DJmw^O8`Q@j6DC?$1*41&8SUIWa%CGmAAI3pM~(T%alI-PT{)8EQDNgJ)g_ zr|7Ese>iA2r4rn756#e3c+lkP5QiS&!Tz z@D4ufs?u~1#m^XW6@!y32<3(v-stivNw7Z6T7Sghx ztc9AcN9jqLY8l<|z6Mic)L0*Wg7JZ^z~FOm;Xz^Yhea)1T||$rS?%;c%?yaiZ_92IqoYgfua3^Ef017LB_9;>?Xp>xBVg&j{Iz4PzS7}l9irq_aSH2u$CC@DNq{?A}t@;{&WZ!i8! k_aPtp|G(z{(|xn!XVE-PwevJw@Cf{;fz!qoC|d>oA5cg4(EtDd diff --git a/bip-VAULT/withdrawal-comparison.drawio.png b/bip-VAULT/withdrawal-comparison.drawio.png deleted file mode 100644 index 320a57b044f9f3415e84d65d304541e055187744..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20724 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 AtpET3 diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index d6da2bbf..72f3f4fe 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -1,25 +1,31 @@

-  BIP: xxxx
+  BIP: 345
   Layer: Consensus (soft fork)
   Title: OP_VAULT
   Author: James O'Beirne 
-  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-xxxx
+          Greg Sanders 
+          Anthony Towns 
+  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0345
   Status: Draft
   Type: Standards Track
   Created: 2023-02-03
   License: BSD-3-Clause
   Post-History: 2023-01-09: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-January/021318.html [bitcoin-dev] OP_VAULT announcment
+                2023-03-01: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-March/021510.html [bitcoin-dev] BIP for OP_VAULT
 
== Introduction == This BIP proposes new tapscript opcodes, OP_VAULT and -OP_UNVAULT, that add consensus support for a specialized covenant. -These opcodes allow users to enforce a delay period before designated coins may -be spent to an arbitrary destination, with the exception of a prespecified -"recovery" path. At any time prior to final withdrawal, the coins can be spent to -the prespecified path. +OP_VAULT_RECOVER, that add consensus support for a specialized +covenant. These opcodes, in conjunction with +OP_CHECKTEMPLATEVERIFY +([https://github.com/bitcoin/bips/blob/master/bip-0119.mediawiki BIP-0119]), +allow users to enforce a delay period before designated coins may be spent to +an arbitrary destination, with the exception of a prespecified "recovery" path. +At any time prior to final withdrawal, the coins can be spent to the +prespecified path. === Motivation === @@ -80,7 +86,7 @@ timelocked coins for perpetuity or relying on a trusted third party. == Goals == -[[File:bip-VAULT/vaults-Basic.png|frame|center]] +[[File:bip-0345/vaults-Basic.png|frame|center]] Vaults in Bitcoin have been discussed formally since 2016 ([http://fc16.ifca.ai/bitcoin/papers/MES16.pdf MES16]) and informally since [https://web.archive.org/web/20160220215151/https://bitcointalk.org/index.php?topic=511881.0 2014]. The value of @@ -116,7 +122,7 @@ destinations, and fee management are all fixed. Funds must flow through a fixed intermediary to their final destination. Batch operations, which may be vital for successful recovery during fee spikes or short spend delay, are not possible. -[[File:bip-VAULT/withdrawal-comparison.drawio.png|frame|center]] +[[File:bip-0345/withdrawal-comparison.drawio.png|frame|center]] Having a "general" covenant mechanism that can encode arbitrary transactional state machines would allow us to solve these issues, but at the cost of complex @@ -149,74 +155,45 @@ This proposal is designed to be compatible with any future sighash modes (e.g. < == Design == -=== State machine === +In typical usage, a vault is created by encumbering coins under a +taptree [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki (BIP-341)] +containing at least two leaves: one with an OP_VAULT-containing script that +facilitates the expected withdrawal process, and leaf another with +OP_VAULT_RECOVER which ensures the coins can be recovered +at any time prior to withdrawal finalization. -[[File:bip-VAULT/opvault-flow.drawio.png|frame|center]] +The rules of OP_VAULT ensure the timelocked, interruptible +withdrawal by allowing a spending transaction to replace the +OP_VAULT tapleaf with a prespecified script template, allowing for +some parameters to be set at spend (trigger) time. All other leaves in the +taptree must be unchanged, which preserves the recovery path as well as any +other spending conditions originally included in the vault. + +These tapleaf replacement rules, described more precisely below, ensure a +timelocked withdrawal, where the timelock is fixed by the original +OP_VAULT parameters, to a fixed set of outputs (via +OP_CHECKTEMPLATEVERIFY'''Why is OP_CHECKTEMPLATEVERIFY (BIP-119) relied upon for this proposal?''' During the withdrawal process, the proposed final destination for value being withdrawn must be committed to. OP_CTV is the simplest, safest way to commit the spend of some coins to a particular set of outputs. An earlier version of this proposal attempted to use a simpler, but similar method, of locking the spend of coins to a set of outputs, but this method introduced txid malleability.
Note that if some other method of locking spends to a particular set of outputs should be deployed, that method can be used in the OP_VAULT with no changes.
) which is chosen when the withdrawal +process is triggered. + +While OP_CHECKTEMPLATEVERIFY is used in this proposal as the +preferred method to bind the proposed withdrawal to a particular set of final +outputs, OP_VAULT is composable with other (and future) opcodes to +facilitate other kinds of withdrawal processes. + +[[File:bip-0345/opvault.drawio.png|frame|center]] + + +=== Transaction types === The vault has a number of stages, some of them optional: -* '''vault transaction''': encumbers some coins with an OP_VAULT script invocation. +* '''vault transaction''': encumbers some coins into a Taproot structure that includes at least one OP_VAULT leaf and one OP_VAULT_RECOVER leaf. -* '''trigger transaction''': spends one or more OP_VAULT inputs into an OP_UNVAULT output which carries forward the same recovery and delay parameters, along with a commitment to the proposed withdrawal target outputs. This publicly broadcasts the intent to withdraw to some specific set of outputs. This transaction may have an additional output which allocates some of the vault balance into a partial revault, which simply encumbers the revaulted portion of the value into the same scriptPubKey of the originating OP_VAULT output(s). +* '''trigger transaction''': spends one or more OP_VAULT-tapleaf inputs into an output which is encumbered by a timelocked withdrawal to a fixed set of outputs, chosen at trigger time. This publicly broadcasts the intent to withdraw to some specific set of outputs.

The trigger transaction may have an additional output which allocates some of the vault balance into a partial "revault," which simply encumbers the revaulted portion of the value into the same scriptPubKey as the OP_VAULT-containing input(s) being spent. -* '''withdrawal transaction''': spends OP_UNVAULT trigger inputs into a compatible set of final withdrawal outputs per the target hash, after the trigger inputs have matured per the spend delay. The only authorization for this spend (aside from the relative timelock) is the content hash of the withdrawal outputs. +* '''withdrawal transaction''': spends the timelocked OP_CHECKTEMPLATEVERIFY trigger inputs into a compatible set of final withdrawal outputs per the CTV hash, after the trigger inputs have matured per the spend delay. Timelocked CTV transactions are the motivating usage of OP_VAULT, but any script template can be specified during the creation of the vault. -* '''recovery transaction''': spends one or more OP_VAULT or OP_UNVAULT inputs, which can be done at any time prior to withdrawal confirmation, to the prespecified recovery path. This transaction can optionally require a witness satisfying a specified ''recovery authorization'' script, an optional scriptPubKey gating the initiation of recovery. The use of recovery authorization has certain trade-offs discussed later. - - -=== Parameters === - - - -The recovery parameters dictate both where funds can be swept to during a -recovery, and what kind of authorization (if any) is needed to initiate a -recovery. It is specified in the form - - -[] - - -The first component commits to the destination that vault funds can be swept to -at any point prior to the finalization of a withdrawal. - -The recovery scriptPubKey would usually correspond to a spending script that is -inconvenient to exercise but highly secure. - -The second component, the recovery authorization scriptPubKey, is optional. It -is a raw scriptPubKey that, if specified, must be satisfied to allow the input -to be recovered. The benefit of using this parameter will be discussed later. -If this component is not given, the de facto "authorization" is the reveal of -the preimage, i.e. the recovery path. - -Vaults which share the same recovery path can always be swept in batch operations, -which is an important practical aspect of managing large numbers of vaults. - - - -The spend delay dictates the duration of blocks or time which must -elapse for the trigger OP_UNVAULT output to be claimable into the -withdrawal target outputs. Encoded as the least significant 23 bits of a -[https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP-0068] style -relative locktime. - -'''Trigger key''' - -The trigger key, committed to with , is used to -authorize the ''trigger transaction'' - an on-chain declaration to attempt a -withdrawal to a certain set of target outputs. - -This functions as the "normal" spending key, but if an attacker obtains access -to this key, the outcome is not catastrophic: any withdrawal attempt can be -interrupted (within the spend delay) and swept to the recovery path. - -The trigger key can be an arbitrary scriptPubKey so long as it represents a -valid witness program. OP_VAULT outputs which have the same -recovery params and spend delay can be spent into the same -OP_UNVAULT output for a batched withdrawal process. - - - -An arbitrary set of target withdrawal outputs that is specified as a parameter to OP_UNVAULT as a 32 byte tagged hash. The preimage is a list of destination output scriptPubKeys and amounts. If the trigger remains uncontested -- if it isn't swept to recovery before the spend delay elapses -- the vaulted funds may be spent into a compatible set of target outputs. +* '''recovery transaction''': spends one or more OP_VAULT_RECOVER-tapleaf inputs to the prespecified recovery path, which can be done at any point before the withdrawal transaction confirms. Each input can optionally require a witness satisfying a specified ''recovery authorization'' script, an optional script prefixing the OP_VAULT_RECOVER fragment. The use of recovery authorization has certain trade-offs discussed later. === Fee management === @@ -241,267 +218,144 @@ management mechanisms. == Specification == The tapscript opcodes OP_SUCCESS187 (0xbb) and -OP_SUCCESS188 (0xbc) are claimed to implement the -OP_VAULT and OP_UNVAULT rules, respectively. +OP_SUCCESS188 (0xbc) are constrained with new rules +to implement OP_VAULT and OP_VAULT_RECOVER, +respectively. === OP_VAULT evaluation === -==== Witness program ==== - When evaluating OP_VAULT (OP_SUCCESS187, 0xbb), the expected format of the stack, shown top to bottom, is: - - - + + +[ n leaf-update script data items ... ] + + where -* is a 32 byte tagged hash of the scriptPubKey used to authorize the spend of this output into an OP_UNVAULT trigger outputBecause the trigger scriptPubKey is committed to using a hash, witness version upgradeability for the trigger key is preserved. -** tagged_hash("VaultTriggerSPK", ), per BIP-0340. -** If this value is not 32 bytes, script execution when spending this output MUST fail and terminate immediately. +* is a data push of 0 or more bytes containing a script fragment. +** In conjunction with the leaf-update data items, it dictates the tapleaf script in the output taptree that will replace the one currently executing. -* is a CScriptNum-encoded number (up to 4 bytes) -** It is interpreted as the least significant 23 bits of a [https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP-0068] relative timelock. +* is a CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. +** If fewer than + 2 items are on the stack, script execution when spending this output MUST fail and terminate immediately. -* is a variable length data push, consisting of two components: -*# a 32 byte tagged hash, the ''recovery sPK hash''Because the recovery scriptPubKey is committed to with a hash, witness version upgradeability is preserved., committing to the scriptPubKey which coins may be recovered to -*#* tagged_hash("VaultRecoverySPK", ) from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]. -*# 0 or more bytes that optionally specify a scriptPubKey that needs to be satisfied to authorize the recovery transaction, referred to as . -** If is less than 32 bytes, script execution when spending this output MUST fail and terminate immediately. +* The following stack items are popped off the stack and prefixed as push-data arguments to the to construct the expected tapleaf replacement script. +** If there are fewer than + 2 items on the stack, script execution when spending this output MUST fail and terminate immediately. -==== Witness stack ==== +* is a CScriptNum-encoded number indicating the index of the output which, in conjunction with an optional revault output, carries forward the value of this input, and has an identical taptree aside from the currently executing leaf. +** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. +** If this value is less than 0 or is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. -After the witness program is parsed, it must be determined whether this input -is being spent towards a recovery. +* is a CScriptNum-encoded number optionally indicating the index of an output which, in conjunction with the trigger output, carries forward the value of this input, and has an identical scriptPubKey to the current input. +** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. +** If this value is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. -Witness stack shown top to bottom: +After the stack is parsed, the following validation checks are performed: - - -[other potential witness stack items ...] - - -where - -* is an integer indicating which output, if any, is a recovery output. -** If this value cannot be decoded as a CScriptNum and cast to an integer, script execution MUST fail and terminate immediately. -** If this value is less than -1, script execution MUST fail and terminate immediately. -** If this value is greater than or equal to 0, this spend is a recovery transaction and this value denotes the recovery output that corresponds to this vault input. -* The parse of the other stack items depends on whether or not this is a recovery spend. - -==== OP_VAULT evaluation for recovery spend ==== - -* If the recovery output does not have an nValue greater than or equal to this input's amount, the script MUST fail and terminate immediately. -* (Deferred'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
) if the recovery output does not have an nValue equal to the sum of all OP_VAULT/OP_UNVAULT inputs with a corresponding recovery sPK hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. - -The stack may now have 0 or more elements. Any items on the stack will be used to verify the witness program, if any. - -* If is not null: -** If VerifyWitnessProgram(, , ...) fails, the script MUST fail and terminate immediately. -** (This validates that the recovery has been authorized.) +* Let the output designated by be called ''triggerOut''. +* If the scriptPubKey of ''triggerOut'' is not a witness program of the same version as the currently executing script, script execution MUST fail and terminate immediately. +* Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. +** The leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. +* If the scriptPubKey of ''triggerOut'' is not a taptree that is identical to that of the current input, but with the current leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. +** Note: the parity bit of the resulting taproot is allowed to vary. +* Let the output designated by (if the index value is non-negative) be called ''revaultOut''. +* If the scriptPubKey of ''revaultOut'' is not equal to the scriptPubKey of the input being spent, script execution when spending this output MUST fail and terminate immediately. +* If the sum of the amounts of ''triggerOut'' and ''revaultOut'' (if any) are not greater than or equal to the value of this input, script execution when spending this output MUST fail and terminate immediately. +* (Deferred'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
) the nValue of ''triggerOut'', plus the nValue of ''revaultOut'' if one exists, must equal the sum of all vault inputs which cite it as their corresponding trigger output. If these values are not equal, the script MUST fail and terminate immediately. If none of the conditions fail, a single true value (0x01) is left on the stack. -==== OP_VAULT evaluation for withdrawal trigger ==== +=== OP_VAULT_RECOVER evaluation === -Else, if it has been determined that the spend is not within a recovery -transaction, it must be evaluated for eligibility as a withdrawal trigger -spend. - -===== Witness stack ===== - -There must be at least 4 items on the stack (shown top to bottom): +When evaluating OP_VAULT_RECOVER (OP_SUCCESS188, +0xbb), the expected format of the stack, shown top to bottom, is: - - - - [...] - - -If the witness stack consists of fewer than four items the script MUST fail and -terminate immediately. - -(Note: in practice, the witness stack will have included the other items necessary to reveal -a witness v1 (or greater) script-path spend, per [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#user-content-Constructing_and_spending_Taproot_outputs BIP-0341]. This is demonstrated in detail in [[#Transaction examples|the transaction examples section]].) - -The items on the stack must be validated as follows: - -* is a CScriptNum of up to 4 bytes. -** It indicates the vout index of this input's corresponding OP_UNVAULT output. -*** Validation rules for this output are described below. -** If this value does not decode as a valid CScriptNum value, the script MUST fail and terminate immediately. -** If this value does not correspond to a valid output in the spending transaction, the script MUST fail and terminate immediately. - -* is a 32 byte data push. -** It is the hash of the proposed withdrawal target output set, defined by target_outputs_hash(outputs) below. Note that this value is duplicated here.'''Why, when spending an OP_VAULT output into a trigger, does the target hash need to be duplicated on the witness stack?''' The target hash exists in the OP_UNVAULT output script, likely behind a taproot pubkey. Its presence is required on the witness stack also so that the expected taproot pubkey for the OP_UNVAULT output can be constructed for comparison. -** If this value is not 32 bytes, the script MUST fail and terminate immediately. - -* is a variable length data push. -** It must be the scriptPubKey that is the preimage to the specified in the spent OP_VAULT input. -** If this value does not tagged-hash to supplied by the OP_VAULT parameter, the script MUST fail and terminate immediately. -*** Verify tagged_hash("VaultTriggerSPK", ) == -** If this value does not correspond to a valid witness program, the script MUST fail and terminate immediately. - -* the remaining elements serve as the witness stack to satisfy the witness program. -** If VerifyWitnessProgram(, , ...) fails, the script MUST fail and terminate immediately. -** (This validates that the withdrawal trigger has been authorized.) - -===== Transaction outputs validation ===== - -Once the contents of the witness stack have been parsed and validated, the transaction outputs must be checked. - -First, we must check for a ''revault output'': an output in the trigger transaction whose -scriptPubKey exactly matches that of the OP_VAULT input being -spent. Its presence is optional. - -For each vault input citing a particular , the output -located at vout[] (the "trigger output") must: - -* have as its scriptPubKey a witness program with a single OP_UNVAULT tapscript, having the internal x-only key 0x0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0, per the NUMS point mentioned in [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#constructing-and-spending-taproot-outputs BIP-0341].'''Why must the OP_UNVAULT taproot use a predefined NUMS point as its internal key?''' This ensures that an OP_UNVAULT trigger output is verifiable as expected. It also ensures that it is spendable only by the conditions of the vault. -** If the witness program has a version less than 1, the script MUST fail and terminate immediately. -** If the witness program has a version greater than 1, the script MUST succeed to enable upgradeability. -** If the witness program has a version of 1 and the scriptPubKey of the output does not match the expected scriptPubKey, as computed by creating a taproot output using the cited NUMS point and a single tapscript spend condition of the form
OP_UNVAULT,
the script MUST fail and terminate immediately. -** Witness versions greater than 1 are allowed for upgradeability. - -* If there does not exist a revault output in the transaction for this input: -** (deferred) the nValue of the trigger output must equal the sum of all vault inputs which cite it as their corresponding trigger output. -*** If these values are not equal, the script MUST fail and terminate immediately. -* else (if there does exist a revault output for this input): -** (deferred) the nValues of the trigger output and the revault output must sum to the sum of all vault inputs which both -*** cite this trigger output as the trigger-vout-idx and -*** have a scriptPubKey identical to the revault output's. -** If these values are not equal, the script MUST fail and terminate immediately. - -If none of the conditions above results in a failure of the script interpreter, the -stack will consist of a single true value (0x01). - -The above amount check can be expressed in Python as: - - - -spending_tx: CTransaction -vault_inputs: [CTxIn] = [inp for inp in spending_tx.vin if inp.is_OP_VAULT] - -"Where we'll accumulate the expected totals for each vault input." -vault_totals_for_outputs: dict[(int, int), int] = defaultdict(0) - -"Build the expected totals." -for vault_in in vault_inputs: - maybe_revault_idx = find_revault_for_vault(vault_in) - vault_total_for_outputs[(vault_in.trigger_vout_idx, maybe_revault_idx)] += vault_in.nValue - - -"Check the expected totals against outputs." -for (out_idx, maybe_revault_idx), expected_amount in vault_totals_for_outputs.items(): - total = spending_tx.vout[out_idx].nValue - - if maybe_revault_idx: - total += spending_tx.vout[maybe_revault_idx] - - if total != expected_amount: - FAIL_AND_TERMINATE_SCRIPT() - - -def find_revault_for_vault(vault_in) -> int: - """Find the index of a revault output for a particular vault input, if one exists.""" - for i, out in enumerate(spending_tx.vout): - if out.scriptPubKey == vault_in.scriptPubKey: - return i - return None - - -=== OP_UNVAULT evaluation === - -==== Witness program ==== - -When evaluating OP_UNVAULT (OP_SUCCESS188, -0xbc), the witness program is pushed onto the stack for the -following result (stack shown top to bottom): - - -OP_UNVAULT (*) being evaluated - - - + + where -* is validated exactly as described in [[#witness-program|the above OP_VAULT section]]. -* is validated exactly as described in [[#witness-program|the above OP_VAULT section]]. -* is a 32 byte data push. -** If it is not equal to 32 bytes, the script MUST fail and terminate immediately. +* is a 32-byte data push. +** If this is not 32 bytes in length, script execution when spending this output MUST fail and terminate immediately. +* is a CScriptNum-encoded number indicating the index of the recovery output. +** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. +** If this value is less than 0 or is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. +After the stack is parsed, the following validation checks are performed: -==== Check for recovery ==== +* Let the output at index be called ''recoveryOut''. +* If the scriptPubKey of ''recoveryOut'' does not have a tagged hash equal to (tagged_hash("VaultRecoverySPK", recoveryOut.scriptPubKey) == recovery-sPK-hash, where tagged_hash() is from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]), script execution when spending this output MUST fail and terminate immediately. +* If ''recoveryOut'' does not have an nValue greater than or equal to this input's amount, the script MUST fail and terminate immediately. +* (Deferred) if ''recoveryOut'' does not have an nValue equal to the sum of all OP_VAULT_RECOVER-spent inputs with a corresponding recovery-sPK-hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. -A check is performed to determine if this input is being spent within the context of -a recovery transaction, exactly as in [[#check-for-recovery|the OP_VAULT evaluation described above]]. - - -==== OP_UNVAULT evaluation for recovery spend ==== - -This is identical to the [[#op_vault-evaluation-for-recovery-spend|OP_VAULT case described above]]. - - -==== OP_UNVAULT evaluation for withdrawal ==== - -When spending an OP_UNVAULT input into a withdrawal target, no witness stack is required. - -* is used to check whether the withdrawal of the input has matured. -** If the input's relative timelock check, as described in [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112] (using this value as "the top item on the stack") fails, the script MUST fail and terminate immediately. -*** The same CheckSequence() code path is used as for [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112]. - -* The transaction outputs are then checked to verify that the withdrawal outputs are as expected. -** If target_outputs_hash(spending_tx.vout) != per the algorithm defined below, the script MUST fail and terminate immediately. - - -def target_outputs_hash(vout: [CTxOut]) -> bytes: - return hash256(b"".join(serialize_txout(out) for out in vout)) - -def serialize_txout(txo: CTxOut) -> bytes: - spk: bytes = txo.scriptPubKey - return struct.pack(" - -If the above conditions do not fail, a single true value (0x01) is pushed to the stack. +If none of the conditions fail, a single true value (0x01) is left on the stack. == Policy changes == In order to prevent possible pinning attacks, recovery transactions must be replaceable. -* When validating an OP_VAULT/OP_UNVAULT input being spent towards a recovery, the script must FAIL (by policy, not consensus) and terminate immediately if both'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. +* When validating an OP_VAULT_RECOVER input being spent, the script must FAIL (by policy, not consensus) and terminate immediately if both'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. *# the input is not marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], and *# the version of the recovery transaction has an nVersion other than 3. -In order to prevent pinning attacks in the case of unauthorized recovery, the output structure of unauthorized recovery -transaction is limited. +If the script containing OP_VAULT_RECOVER is 34 bytes or less34 bytes is the length of a recovery script that consists solely of OP_VAULT_RECOVER., let +it be called "unauthorized," because there is no script guarding the recovery +process. In order to prevent pinning attacks in the case of unauthorized +recovery - since the spend of the input (and the structure of the +transaction) is not authorized by a signed signature message - the output structure of +unauthorized recovery transaction is limited. -* If (as determined from ) is null, the recovery transaction MUST (by policy) abide by the following constraints: +* If the recovery is unauthorized, the recovery transaction MUST (by policy) abide by the following constraints: ** If the spending transaction has more than two outputs, the script MUST fail and terminate immediately. -** If the spending transaction has two outputs, and the output not the recovery output is not an ephemeral anchor, the script MUST fail and terminate immediately.'''Why can unauthorized recoveries only process a single recovery path?''' Because there is no signature required for unauthorized recoveries, if additional outputs were allowed, someone observing a recovery in the mempool would be able to rebundle and broadcast the recovery with a lower fee rate. +** If the spending transaction has two outputs, and the output which is not ''recoveryOut'' is not an [https://github.com/instagibbs/bips/blob/ephemeral_anchor/bip-ephemeralanchors.mediawiki ephemeral anchor], the script MUST fail and terminate immediately.'''Why can unauthorized recoveries only process a single recovery path?''' Because there is no signature required for unauthorized recoveries, if additional outputs were allowed, someone observing a recovery in the mempool would be able to rebundle and broadcast the recovery with a lower fee rate. == Implementation == -A sample implementation is available [https://github.com/jamesob/bitcoin/tree/2023-01-opvault here], with an associated [https://github.com/bitcoin/bitcoin/pull/26857 pull request]. +A sample implementation is available on bitcoin-inquisition [https://github.com/jamesob/bitcoin/tree/2023-01-opvault-inq here], with an associated [https://github.com/bitcoin-inquisition/bitcoin/pull/21 pull request]. -== End use == +== Applications == -=== Creating an OP_VAULT output === +The specification above, perhaps surprisingly, does not cover how a relative timelocked withdrawal process with a fixed target is implemented. The tapleaf update semantics specified in OP_VAULT as well as the output-based authorization enabled by OP_VAULT_RECOVER can be used to implement a vault, but they are incomplete without two other pieces: + +* a way to enforce relative timelocks, like OP_CHECKSEQUENCEVERIFY, and +* a way to enforce that proposed withdrawals are ultimately being spent to a precise set of outputs, like OP_CHECKTEMPLATEVERIFY. + +These two pieces are combined with the tapleaf update capabilities of +OP_VAULT to create a vault, described below. + +=== Creating a vault === In order to vault coins, they must be spent into a witness v1'''Can OP_VAULT be used with a future witness version (greater than 1)?''' Yes, however use of yet to be defined witness versions is discouraged, since such a usage makes the coins spendable by anyone. scriptPubKey -that contains a Tapscript spending condition of the form +that contains a taptree of the form - OP_VAULT +tr(, + leaves = { + recover: + OP_VAULT_RECOVER, + + trigger: + OP_CHECKSIGVERIFY (i) + 2 $leaf-update-script-body OP_VAULT, (ii) + + ... [ possibly other leaves ] + } +) +where +* $leaf-update-script-body is, for example, OP_CHECKSEQUENCEVERIFY OP_DROP OP_CHECKTEMPLATEVERIFY. +** This is one example of a trigger script, but ''any'' script fragment can be used, allowing the creation of different types of vaults. For example, you could use OP_CHECKSEQUENCEVERIFY OP_DROP OP_CHECKSIG to do a time-delayed transfer of the coins to another key. This also future-proofs OP_VAULT for future scripting capabilities. +* The script fragment in (i) is called the "trigger authorization," because it gates triggering the withdrawal. This can be done in whatever manner the wallet designer would like. +* The script fragment in (ii) is the incomplete OP_VAULT invocation - it will be completed once the rest of the parameters (the CTV target hash, trigger vout index, and revault vout index) are provided by the trigger transaction witness. Typically, the internal key for the vault taproot output will be specified so that it is controlled by the same descriptor as the recovery path, which @@ -510,24 +364,84 @@ output to the recovery path. This has the potential advantage of recovering the coin without ever revealing it was a vault. Otherwise, the internal key can be chosen to be an unspendable NUMS point to -force tapscript execution of the OP_VAULT specification. +force execution of the taptree contents. + +=== Triggering a withdrawal === + +To make use of the vault, and spend it towards some output, we construct a spend +of the above tr() output that simply replaces the "trigger" leaf with the +full leaf-update script (in this case, a timelocked CTV script): + + +Witness stack: + +- (-1 if none) +- +- +- +- [ "trigger" leaf script contents ] +- [ taproot control block prompting a script-path spend to "trigger" leaf ] + +Output scripts: + +[ + tr(, + leaves = { + recover: + OP_VAULT_RECOVER, <-- unchanged + + trigger: + + OP_CHECKSEQUENCEVERIFY OP_DROP OP_CHECKTEMPLATEVERIFY <-- changed per the + leaf-update + rules of OP_VAULT + ... [ possibly other leaves ] + } + ), + + [ optional revault output with the + same sPK as the original vault output ], +] + + +OP_VAULT has allowed the taptree to be transformed so that the trigger leaf +becomes a timelocked CTV script, which is what actually facilitates the announced +withdrawal. The withdrawal is interruptible by the recovery path because the +"recover" leaf is preserved exactly from the original taptree. + +Note that the CTV hash is specified at spend time using the witness stack, and +"locked in" via the OP_VAULT spend rules which assert its existence in the output. + +The vault funds can be recovered at any time prior to the spend of the +timelocked CTV script by way of a script-path spend using the "recover" leaf. === Recovery authorization === -When configuring a vault, the user must decide if they want to have the recovery process gated by the optional recovery authorization scriptPubKey. The choice is left to the user because it entails trade-offs. +When configuring a vault, the user must decide if they want to have the +recovery process gated by a script fragment prefixing the +OP_VAULT_RECOVER instruction in the "recover" leaf. Its use +entails trade-offs. ==== Unauthorized recovery ==== -Unauthorized recovery simplifies vault use in that recovery never requires additional information aside from the location of the vault outpoints and the recovery path - the "authorization" is simply the reveal of the recovery path. +Unauthorized recovery simplifies vault use in that recovery never requires additional information aside from the location of the vault outpoints and the recovery path - the "authorization" is simply the reveal of the recovery path, i.e. the preimage of . But because this reveal is the only authorization necessary to spend the vault coins to recovery, the user must expect to recover all such vaults at once, since an observer can replay this recovery (provided they know the outpoints). -Additionally, unauthorized recovery across multiple distinct recovery paths cannot be batched, and fee control is more constrained: because the output structure is limited for unauthorized recovery, fee management relies either on inputs which are completely spent to fees or the use of the optional ephemeral anchor and package relay. +Additionally, unauthorized recovery across multiple distinct recovery paths +cannot be done in the same transaction, and fee control is more constrained: +because the output structure is limited for unauthorized recovery, fee +management relies either on inputs which are completely spent to fees or the +use of the optional ephemeral anchor and package relay. + +These limitations are to avoid pinning attacks. ==== Authorized recovery ==== -With authorized recovery, the user must keep track of an additional piece of information: how to solve the recovery authorization scriptPubKey when recovery is required. If this key is lost, the user will be unable to initiate the recovery process for their coins. If an attacker obtains the recovery key, they may grief the user during the recovery process by constructing a low fee rate recovery transaction and broadcasting it (though they will not be able to pin because of the replaceability requirement on recovery transactions). +With authorized recovery, the user must keep track of an additional piece of information: how to solve the recovery authorization script fragment when recovery is required. + +If this key is lost, the user will be unable to initiate the recovery process for their coins. If an attacker obtains the recovery key, they may grief the user during the recovery process by constructing a low fee rate recovery transaction and broadcasting it (though they will not be able to pin because of the replaceability requirement on recovery transactions). However, authorized recovery configurations have significant benefits. Batched recoveries are possible for vaults with otherwise incompatible recovery parameters. Fee management is much more flexible, since authorized recovery transactions are "free form" and unrelated inputs and outputs can be added, potentially to handle fees. @@ -542,24 +456,36 @@ recovery path key itself. === Address reuse and recovery === When creating a vault, four factors affect the resulting P2TR address: -# The internal key (likely belonging to the recovery wallet) -# The recovery parameters -# The spend delay -# The trigger scriptPubKey +# The internal pubkey (likely belonging to the recovery wallet) +# The recovery leaf +# The trigger leaf +# Any other leaves that exist in the taptree -Aside from the spend delay, the end user has the option of varying the other three parameters along descriptors in order to avoid reusing vault addresses without affecting key management. +The end user has the option of varying certain contents along descriptors in +order to avoid reusing vault addresses without affecting key management, e.g. +the trigger authorization pubkeys. -Worth noting is that when using unauthorized recovery, the reveal of the recovery scriptPubKey will allow any observer to initiate the recovery process for any vault with matching recovery params, provided they are able to locate the vault outpoints. As a result, it is recommended to expect that '''all outputs sharing an identical unauthorized should be recovered together'''. +Note that when using unauthorized recovery, the reveal of the +recovery scriptPubKey will allow any observer to initiate the recovery process +for any vault with matching recovery params, provided they are able to locate +the vault outpoints. As a result, it is recommended to expect that +'''all outputs sharing an identical unauthorized should be recovered together'''. -This situation can be avoided with a comparable key management model by varying the generation of each vault's recovery scriptPubKey along a single descriptor, but note that (when configured for unauthorized recovery), this will prevent batched recovery. +This situation can be avoided with a comparable key management model by varying +the generation of each vault's recovery scriptPubKey along a single descriptor, +but note that this will prevent recovering multiple separate vaults into a single +recovery output. -==== Recommendation: vary the internal key ==== - -The recommended mode of use is to keep recovery parameters identical across vaults which should be recovered in batch, but vary the internal key for each vault output along a single descriptor so that no address reuse is necessary. +Varying the internal pubkey will prevent batching the trigger of multiple vault +inputs into a single trigger output; consequently it is recommended that users +instead vary some component of the trigger leaf script if address reuse is +undesirable. Users could vary the trigger pubkey along a descriptor, keeping +the recovery path and internal-pubkey the same, which both avoids reusing +addresses and allows batched trigger and recovery operations. ==== Recommendation: generate new recovery addresses for new trigger keys ==== -If using unauthorized recovery, it is recommended that you do not share literal recovery paths +If using unauthorized recovery, it is recommended that you do not share recovery scriptPubKeys across separate trigger keys. If one trigger key is compromised, that will necessitate the (unauthorized) recovery of all vaults with that trigger key, which will reveal the recovery path preimage. This means that an observer might be able to initiate recovery for vaults controlled by an uncompromised @@ -567,33 +493,36 @@ trigger key. ==== Fee management ==== -Fees can be managed in a variety of ways, but it's worth noting that both trigger and recovery transactions must preserve the total value of vault inputs, so vaulted values cannot be repurposed to pay for fees. This does not apply to the withdrawal transaction, which can allocate value arbitrarily. +Fees can be managed in a variety of ways, but it's worth noting that both +trigger and recovery transactions must preserve the total value of vault +inputs, so vaulted values cannot be repurposed to pay for fees. This does not +apply to the withdrawal transaction, which can allocate value arbitrarily. -In the case of vaults that use recovery authorization, all transactions can "bring their own fees" in the form of unrelated inputs and outputs. These transactions are also free to specify ephemeral anchors, once the related relay policies are deployed. This means that vaults using recovery authorization have no dependence on the deploy of v3 relay policy. - -In the case of vaults that do not use recovery authorization, the recovery transaction relies on the use of either fully-spent fee inputs or an ephemeral anchor output. This means that vaults which do not use recovery authorization are essentially dependent on v3 transaction relay policy being deployed. - -==== Mixing input types ==== - -OP_VAULT/OP_UNVAULT outputs can be spent -into a recovery transaction together. Script execution works identically for -both types of outputs. - -[[File:bip-VAULT/batch-sweep.drawio.png|frame|center]] +In the case of vaults that use recovery authorization, all transactions can +"bring their own fees" in the form of unrelated inputs and outputs. These +transactions are also free to specify ephemeral anchors, once the related relay +policies are deployed. This means that vaults using recovery authorization have +no dependence on the deploy of v3 relay policy. +For vaults using unauthorized recovery, the recovery +transaction relies on the use of either fully-spent fee inputs or an ephemeral +anchor output. This means that vaults which do not use recovery authorization +are essentially dependent on v3 transaction relay policy being deployed. === Batching === ==== During trigger ==== -OP_VAULT outputs with the same recovery-params and spend-delay can -be triggered into the same OP_UNVAULT output, creating a batched -withdrawal trigger. This is allowed regardless of the - values of each input, allowing the trigger keys -to differ. +OP_VAULT outputs with the same taptree, aside from slightly +different trigger leaves, can be batched together in the same withdrawal +process. Two "trigger" leaves are compatible if they have the same +OP_VAULT arguments. + +Note that this allows the trigger authorization -- the script prefixing the +OP_VAULT invocation -- to differ while still allowing batching. Trigger transactions can act on multiple incompatible OP_VAULT -input sets, provided each set has a suitable associated OP_UNVAULT +input sets, provided each set has a suitable associated ''triggerOut'' output. Since SIGHASH_DEFAULT can be used to sign the trigger @@ -602,141 +531,68 @@ facilitate fee management or the batch withdrawal of incompatible vaults. ==== During withdrawal ==== -During final withdrawal, multiple unrelated OP_UNVAULT outputs can -be used towards the same withdrawal transaction provided that they share -identical parameters. This facilitates -batched withdrawals. +During final withdrawal, multiple trigger outputs can be used towards the same +withdrawal transaction provided that they share identical + parameters. This facilitates batched +withdrawals. ==== During recovery ==== -OP_VAULT/OP_UNVAULT outputs with the same recovery -scriptPubKey hash can be recovered into the same output. +OP_VAULT_RECOVER outputs with the same +can be recovered into the same output. Recovery-incompatible vaults which have authorized recovery can be recovered in -the same transaction, so long as each set (grouped by recovery scriptPubKey -hash) has a suitable associated recovery output. This means that unrelated -recoveries controlled by the same owner can benefit from sharing common fee -management. +the same transaction, so long as each set (grouped by +) has an associated ''recoveryOut''. This allows +unrelated recoveries to share common fee management. === Watchtowers === -The value of vaults is contingent upon having monitoring in place that will alert the owner when unexpected spends are taking place. This can be done in a variety of ways, with varying degrees of automation and trust in the watchtower. +The value of vaults is contingent upon having monitoring in place that will +alert the owner when unexpected spends are taking place. This can be done in a +variety of ways, with varying degrees of automation and trust in the +watchtower. -In the maximum-trust case, the watchtower can be fully aware of all vaulted coins and has the means to initiate the recovery process if spends are not pre-reported to the watchtower. +In the maximum-trust case, the watchtower can be fully aware of all vaulted +coins and has the means to initiate the recovery process if spends are not +pre-reported to the watchtower. -In the minimum-trust case, the user can supply a probabilistic filter of which coins they wish to monitor; the watchtower would then alert the user if any coins matching the filter move, and the user would be responsible for ignoring false positives and handling recovery initiation. +In the minimum-trust case, the user can supply a probabilistic filter of which +coins they wish to monitor; the watchtower would then alert the user if any +coins matching the filter move, and the user would be responsible for ignoring +false positives and handling recovery initiation. === Script descriptors === Script descriptors for vault-related outputs will be covered in a subsequent BIP. - == Deployment == -TBD +Activation mechanism is to be determined. + +This BIP should be deployed concurrently with BIP-0119 to enable full use of vaults. == Backwards compatibility == -OP_VAULT and OP_UNVAULT replace, respectively, the witness v1-only opcodes OP_SUCCESS187 and OP_SUCCESS188 with -stricter verification semantics. Consequently, scripts using those opcodes which previously were valid will cease to be valid with this change. +OP_VAULT and OP_VAULT_RECOVER replace, respectively, +the witness v1-only opcodes OP_SUCCESS187 and OP_SUCCESS188 with stricter +verification semantics. Consequently, scripts using those opcodes which +previously were valid will cease to be valid with this change. -Stricter verification semantics for an OP_SUCCESSx opcode are a soft fork, so existing software will be fully functional without upgrade except for mining and block validation. +Stricter verification semantics for an OP_SUCCESSx opcode are a soft fork, so +existing software will be fully functional without upgrade except for mining +and block validation. Backwards compatibility considerations are very comparable to previous -deployments for OP_CHECKSEQUENCEVERIFY and OP_CHECKLOCKTIMEVERIFY (see [https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki BIP-0065] -and [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112]). +deployments for OP_CHECKSEQUENCEVERIFY and OP_CHECKLOCKTIMEVERIFY (see +[https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki BIP-0065] and +[https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112]). == Rationale == -== Transaction examples == - - -=== Basic creation and withdrawal === - - - -Recovery Taproot: tr( - sPK = 5120cafd90c7026f0b6ab98df89490d02732881f2f4b5900856358dddff4679c2ffb, - internal_pubkey = c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5) - -Trigger Taproot: tr( - sPK = 5120418c46636d9e1a683f58e35b42336e776fdcc3b2d4e39e7a0bf1ab0716e3c5fa, - internal_pubkey = f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9) - -Spend delay: 10 - -Vault Taproot: tr( - sPK = 5120062eb40e358106ea4f39bcac8ce046e44b84e5c0cf8799bd3d08f9ffb4afeb7a, - internal_pubkey = c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5, - merkle_root = 11765541441f95f7af87fc19fcc1c09a1f5b05514d130320e4dfe6d729690230, - leaves = - - opvault: [ - push(5eb59117ddf962d44e11da5ce76c699cd9e6af53764795600543f02960b66023) - 10 - push(523882cb06ae65b1c2ba6e2009c0bf94e3d93ffe74470b354f854d335d9936e2) - OP_VAULT - ] (version=192), -) - - -"Initial vaulting" - -CTransaction 83b4308ccaa83eeb95316050fe2bfd1b027e285ddf31b0bd69762ec113140126: (nVersion=2) - vin: - - [0] CTxIn(prevout=COutPoint(hash=b4ba2b24be456aacaf743be5fe5de25eb3ebebb52f3faf75aecf45921a810101 n=0) scriptSig= nSequence=0) - vout: - - [0] Coin(4999990000, sPK=[1 push(062eb40e358106ea4f39bcac8ce046e44b84e5c0cf8799bd3d08f9ffb4afeb7a)]) - witnesses: - nLockTime: 0 - - -"Trigger" - -CTransaction e0844e873c4319222ebc407b0aa8f385c8a036e3145289d87750d5b895a88b33: (nVersion=2) - vin: - - [0] CTxIn(prevout=COutPoint(hash=83b4308ccaa83eeb95316050fe2bfd1b027e285ddf31b0bd69762ec113140126 n=0) scriptSig= nSequence=0) - vout: - - [0] Coin(4999990000, sPK=[1 push(9a15dca153a8651b610a02f3a92df3ada3cd45fd7f6183c7b2c1bc333bed1e63)]) - witnesses: - - [0] - - [0.0] [push(bdb4b3f6af17c93308af5ea689b33425497e388a0075f4311540e50d4d3d76f068ab645603333929e5ac62ecc125fc98a053aff53f65b0cffaaeef31efd415ff)] - - [0.1] [1 push(418c46636d9e1a683f58e35b42336e776fdcc3b2d4e39e7a0bf1ab0716e3c5fa)] - - [0.2] [push(c707f3e01b67c9dac06ad15cf0800cc07278a0a1c4f54cb92457ee5c0d84519a)] - - [0.3] [push()] - - [0.4] [ - push(5eb59117ddf962d44e11da5ce76c699cd9e6af53764795600543f02960b66023) - 10 - push(523882cb06ae65b1c2ba6e2009c0bf94e3d93ffe74470b354f854d335d9936e2) - OP_VAULT - ] - - [0.5] [push(c0c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5)] - nLockTime: 0 - - -"Withdrawal" - -CTransaction 9595af9728de3ae9ca6110c040ad34f02f9db8b610296f99618354b99d5ec395: (nVersion=2) - vin: - - [0] CTxIn(prevout=COutPoint(hash=e0844e873c4319222ebc407b0aa8f385c8a036e3145289d87750d5b895a88b33 n=0) scriptSig= nSequence=10) - vout: - - [0] Coin(1666663333, sPK=[push() push(c42e7ef92fdb603af844d064faad95db9bcdfd3d)]) - - [1] Coin(1666663333, sPK=[push() push(4747e8746cddb33b0f7f95a90f89f89fb387cbb6)]) - - [2] Coin(1666663334, sPK=[push() push(7fda9cf020c16cacf529c87d8de89bfc70b8c9cb)]) - witnesses: - - [0] - - [0.0] [ - push(5eb59117ddf962d44e11da5ce76c699cd9e6af53764795600543f02960b66023) - 10 - push(c707f3e01b67c9dac06ad15cf0800cc07278a0a1c4f54cb92457ee5c0d84519a) - OP_UNVAULT - ] - - [0.1] [push(c150929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0)] - nLockTime: 0 - - == References == * [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012470.html [bitcoin-dev] Bitcoin Vaults (2016)]