From abcd7b848d58b63f6c89fe73d02bddeb95f5ecf2 Mon Sep 17 00:00:00 2001 From: Molunerfinn Date: Fri, 6 Jul 2018 00:43:53 +0800 Subject: [PATCH] Added: mini window upload progress --- src/main/index.js | 31 +++++++- src/renderer/components/MiniPage.vue | 115 +++++++++++++++++++++++++++ src/renderer/router/index.js | 5 ++ static/logo.png | Bin 0 -> 14293 bytes 4 files changed, 149 insertions(+), 2 deletions(-) create mode 100644 src/renderer/components/MiniPage.vue create mode 100644 static/logo.png diff --git a/src/main/index.js b/src/main/index.js index ef5030a..13ad46e 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -20,6 +20,7 @@ if (process.env.DEBUG_ENV === 'debug') { let window let settingWindow +let miniWindow let tray let menu let contextMenu @@ -29,6 +30,9 @@ const winURL = process.env.NODE_ENV === 'development' const settingWinURL = process.env.NODE_ENV === 'development' ? `http://localhost:9080/#setting/upload` : `file://${__dirname}/index.html#setting/upload` +const miniWinURL = process.env.NODE_ENV === 'development' + ? `http://localhost:9080/#mini-page` + : `file://${__dirname}/index.html#mini-page` const uploadFailed = () => { const notification = new Notification({ @@ -71,6 +75,7 @@ function createTray () { } else { settingWindow.show() settingWindow.focus() + miniWindow.show() } } }, @@ -190,6 +195,27 @@ const createWindow = () => { }) } +const createMiniWidow = () => { + miniWindow = new BrowserWindow({ + height: 64, + width: 64, // 196 + show: true, + frame: false, + fullscreenable: false, + resizable: false, + transparent: true, + webPreferences: { + backgroundThrottling: false + } + }) + + miniWindow.loadURL(miniWinURL) + + miniWindow.on('closed', () => { + miniWindow = null + }) +} + const createSettingWindow = () => { const options = { height: 450, @@ -212,7 +238,7 @@ const createSettingWindow = () => { options.frame = false options.backgroundColor = '#3f3c37' options.transparent = false - options.icon = `${__static}/256x256.png` + options.icon = `${__static}/logo.png` } settingWindow = new BrowserWindow(options) @@ -222,6 +248,7 @@ const createSettingWindow = () => { settingWindow = null }) createMenu() + createMiniWidow() } const createMenu = () => { @@ -340,7 +367,7 @@ ipcMain.on('uploadClipboardFilesFromUploadPage', () => { }) ipcMain.on('uploadChoosedFiles', async (evt, files) => { - const imgs = await uploader(files, 'imgFromUploader', settingWindow.webContents) + const imgs = await uploader(files, 'imgFromUploader', evt.sender) if (imgs !== false) { const pasteStyle = db.read().get('picBed.pasteStyle').value() || 'markdown' let pasteText = '' diff --git a/src/renderer/components/MiniPage.vue b/src/renderer/components/MiniPage.vue new file mode 100644 index 0000000..deec85d --- /dev/null +++ b/src/renderer/components/MiniPage.vue @@ -0,0 +1,115 @@ + + + \ No newline at end of file diff --git a/src/renderer/router/index.js b/src/renderer/router/index.js index f1df17f..f9639a1 100644 --- a/src/renderer/router/index.js +++ b/src/renderer/router/index.js @@ -15,6 +15,11 @@ export default new Router({ name: 'rename-page', component: require('@/components/RenamePage').default }, + { + path: '/mini-page', + name: 'mini-page', + component: require('@/components/MiniPage').default + }, { path: '/setting', name: 'setting-page', diff --git a/static/logo.png b/static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..885390baa3537589f97f97e34b82a3d325309563 GIT binary patch literal 14293 zcmW+-2Q(bt+umKfcCEI0XVqvCy^CF)5M7i=R*mSQi^#4;NYvt_@&fHR$?E8dG{ej6ZeZtM`Na~|l( z=k^KM2j;wSF2x5-qFJ&xbl2~#3yd3GA4$KclS&;#3r&}K)ZEX?HWc~;0ifx@v0UeE zYda{!eV`VA4#$$+VU2jz^K_@MeXwviYhHSMCcX7)rLFMTM8wwv9&ld0rM~mmhW3Uw zaA6&9w*yVGk$meDG>bo!fHR0(JAwdyzfwl@ZVF%t6DTp#f*tZDo9ft1J0G%e{Dx zU_2J}n8edlm1kQJWk#6r%n7P+kOl$D9JyeSmt=LngwUi9FaBDv1en63bZ}O0ynhVF zY<#pW9WOmu{1i9xpokWp0s;diz>w;zthMV_@rF2N9AP2~1CYc9j1)x??s$qIzyL_p z)O(T75D!fkg7e7Z23`(f)~@_iZbVBI;?IHm8NCj!zKlX#mV_O{8Bo-%5}@FRdLaDu zK#T~Fcz29Xy%Q=6=9N8&xgtcMV3&|{(ncwYk_fVocPw7EvQMb1M!;cpuEqzH-`&PO z5bl@>6R^pQcLhJ@4JzXqMOcxD^508$*Lw`nbxep-Y+vd{mvRf0yG)hBJ}s1tKE zRskgdyy6C9KJY5e;3B^Oz&=oIV0WrB(odt_!(ty8u1 z9|Q{E6D)hAGE`}aij@hbe^77BMGs;Ll(SV9SgZkQfU?s5W0AJLN0R_ksG-HGFucK6W zPH*2t)Pr?_Ksc*U0+QyR)4&pfwef*n$d8C}J&wo*uCf5ca~)A+SD|j4xWn5gt`lT> zsyhBvS_h0(6ee$FzL6t{&URf}86;I6w?U|Pnd*LwiuRHtCJU77pQX}4| z2B(;U7?N_E<9aT62^Q3e1&{ap=;Fo?*r;J7U=zp0uMicY(UmA9s_zh)E-0Me8G|I( z788s;M=mCR8#Wr$6+xE7r0<_4i)v(KL(#Jd7Hk$8v9$i)!f~KZYVcSg^c{AJHZK4f z1ZHQk3}nqqW@yv|I)Jo{|BBst`~FxG^W@$ST2GVLpZMLxHCjH`U=co70`CKE^z2Fc zmOf%{%Bgip7c)ejQJaH}eqD2SUJA&>}M|-OFR0es;!ZX^!7x z5StZ84s<3cATOx+?jirH7dIy7^wM$i;4rrT2w7R8Mc8CkE5SE}ugh^|6qC)1_KECS zX;eGq-;x<`3zp{f=nfIq1<4Gc-j=kQ7t>|*8W*8yS@iN8M&=UDA0OYfN3sed1Y)Ay zEevTYmLHC3EU`+z`@p4$FaANhJluexu+)H=Y5vhIMo9#_Z9{1oBZ2z-YSup791uoC zx6bBKds*_WxJPK|n@~?EQC{H1A2_UU$+GfJ*vlwk%Mzph0o!!+{X}>5Sh-;du{=n+fvx{SJRxjf zUco=}%gE$zms5d3tjvM>%n*7?SVzpQzX0gd9X>t77(tmBK{|wQu}puaj)|L`-Rj=@ zf6l9!U<4TErny+`j(@AEaV5lzP<^JdEsq6=HQb-3x|PCtaqKkxo=%T8uANW$&AR}; z0CqHQp;+W5=XCEx(vu_Jey5_wHUR;+06Su;5k~%RV_04K@WVc3(q(h7?rQFR>KOUh zF)o%m7W$RtqpZ2P7D#0LJvL8na4ghMv^3)vGozj?(uAI1fs(Wy=r(>>#s8#c&NKGo zND++ML@)Q-i1#O>+rggF{;z6zO_Y5}YxR%+&f9$~*Lq0bZY2v)($)YVy8_GQ*#S`* zmXC$1y0x@Q@Ruzem`9Z4^IuTuaah8gW#MFN6q1$D|4AO7^}5y8$69iakgj1eHFxvq zzi2iVJaQfaiORC-_jr|VjarYejOUo9b5*Y=P2BV%2H93+ShBeBr(gvv-eJEH%rp+B z^21TFB7-vkV)*Bvwg3@^H-G-n80F%#WR>?-3mL*oun4-tm&r6aBknCJHxpWa4V~bQ z39-Q)p{y46v1K|5YjtoK-RK!1ss*s6=CZvp{umguX*0+O*UK#3)Xg57%Y`_7UY9O*U1Q$u!tg~w0akv=2s2m)2-XZBtlFh|1`*-3BNdz1%9kEocY&_6DzitCa#YG)h#{GOLfCs&a`@h0er`N68y5%%WKu!t{Yz zZK0vOOZtP_Eiy0I<68cfhcoCI=#>5rnHX2VL{wV1Q?DhTX_7e#mTj-@$znv=>T)Zc zRnKrv8A1t__VO~b?|m6Ha@k#tmV)po{VF725l=QVCtL)4WL`UZI@O&j? zazZiIaY7fukSGM(-k+L3PseaFjc>K>6{q^M4VcLCAFC{GMplm-nSBTlsiZ`1+{Z<;s=n2G4x*3+Rr{(wjF?FdWAQ#?scO|=z{^WUsMSy5?B}PO;@lnJ#-CYQG;}-6s>&EI=-*catV-<~@IB+Pw zQ!Nd>7r{$|zp2Hz^s=N&$k^`)UZMCIG|O(+g++lnW4C(qtp*p``{DwSn;M1N$c-^H z??c(IPE`Lz5;0^co>l_sG&+@vQmytt2XMD6LG+^G`F$C$qpT19BUM21`H8Fmz1+?2W|fL5G?b1Ap@ta=e?FZ+Y-y8@u3g?^wJmPGvMr8|VOQ8vA;>&^{wS zeFiCm-=D^WCnw4Y2-&+_4{|R37C(Kua1h-mE-F(?`rudB$w_=hOQ_`Ec~79zh@P9m zIuRbw@mY#eABqoZcCvb)w1HZoA+O}^Yr7A009?^gUG@Ka_M+pCO{%^1RyP-T&Q~8w z_S)(2Qofiz*Gif2bNo|6ZBxmYbY;NIyUj6Y<6rVRR;ES-XCww?36z2^+az~8_K3&V zDWV&?!A>`hYs(ONbYu3 zUf;m24n6oi{#MG@e1rNZWmn!4RnAXXIP9KDGF>c{vSVHc=QiX>NOF=O#s)x`IcgmV zgd8t(34qA0ZTheU49Lhtn>}z&WEDt*CsoNL&WV9FaRAo!IW+PbUhLXZb?>h{poKq6 z(x2shU5X;6da$?8;Xz#~b8nMIQ=DS~d+P z=E?cL`bacq$4HQ64x=pahfV%J!upuk_b=XARtTZga`uUIf@D9a?<359wEdM2bg`|` zS45IV0=0kM=deL5393ADSnaCF^GF%5DEd0X`_2EAtHj8u2;E3XP<9yUTS~XiewfRg z1qYXwz48pu5>ov!9f9~SSuwEjI-y|5wD~aQAD{o(>6Ohf@{bX27Me#ngMkHR9F}@LkyXl0G?f*j1~5lih#HK%$&lxN+1i;d9Po1rBSwtn9`FCN<80<Bq9c_!l26)Kl ztoH0KSR=8->%{O#&%zSNm@_Xpip6k9eGQNOe43dJVf{Fx=G~+dQN0$7TtZ`6pd8PA z+y4*(w$=V^B$T7WmjP80tYySx2_f1uxj1t0g|}qi|2BL5 zVf_yML)P%_N$^vTg{>X_x>sQ2G|*61h)7H}2%^0(je~&Y9YI)GSNSK{NZC+YI5zf9oF<85+;l1Q=}Y7uJaWIVjf9T0lyPEBDh^&t)Xa5`42FK{uw z5?P{ZwxJ~KG9IY*#yCJ<333udGw|bSBWw1N7JZ?3@5t&^N<5rgqz2Y-stSp+Lx}Wc z=4E_aeOI^;r-0LJ++Gx9r+aoAx|XqR{^|9_pzX=hHH?>3-FAHbh@r!F;c8zH)QC|) zMP?daLueEdCXDDRNLmpmfI1b+)mDQqk1jp5eCo-Fpz$_{eSF3xQ8YeVN-82Bq!FJj zV=y}3HZ2J~WAKw2a-5Cf=_?Duo0jEVJ!L|e^*Xt#hyCq#xy!8S_^^PCt1(TZ`o*C> z9JVwfC2uUkoH#hlI;Q&SKcC5pMe>`EThN{%jBAm?$gXS^vW%+mFxR%rlef46BxdAT zG8DL+HO{S0d?m>On^Za6ZsC@A)*{ZGuzoUVoYQeAxij_8>|JfbN z?Be#z70P&w))fm&c$Yw(v>Sy!CP2@>m?1wH{AAvJLoOGGC?a% zpgiYNc!`tSXP*hteP`EXp&NK-p~KY#^-__Y?rSSdGC9u5O)G7Yzt$R`r1AD?4o@jI z8MAYBbosLH*PS(0IEeh2L*IoK^=$*mH$Bz?kSHm7m4SPg@s+yGf4^b}Nr~pkO9Mk+ zuR%EkFDX*E^GF0Kkldb!_j}rW%~W$1RpFD^^@*r?RtN+SmJW&3wnAkg_g{p{bzq*Y zEON5;65jgPk!MuF$-kI{H0|n#N2Wb?|}twjGfZGYm|78B2EVDkuo1e z7+eIgHnLS(7{w}SYKlK-o|ZrUATzG$k)>0WcyrR7E1@m=vx2R(u|DNY!T0IXKFYk> zx4fv@?;9T(5gI>@*OMHwz2fE`C&d2QlLL@L zz{YP_J+n7r`;4-NF&T#vPkt8jd#q?(# z3c!E++mrR72kAXO{Rlm~@)vj5pEYzqIh44^)t=i(k$ne&VSHG@&$_@R=`f>3PJg8I zc6O2~;|5kUi_JHn5A~K(tpoh6vZf^u^zoo@HF2P?Bc+Ti&voSFobeyaY}@YTO~5Hd zoR_96{?{%pW@avUt*NJt3g>Yt(xCPyuWbPggOQ8#Gee?ogA)EGmycz0+0Yj|S_!h% zt#3o5Da5uR)*?)e2EJVQ9{Y%Ag>M1&*tg+yNMBD;UBMX=5}3v20T4p!brT8TkzXPl zP5?kt!kpZ}j?}`hq3Q4679@Y;K^oZFmHA%+qIn9q^07y2yVgt{IGnTclRhIxs_wz; znbsto4zs1+w3C;m_f?~B@%(|HvEx7W-`vP@Don^u$X$~FkOmXf2V$O2Tyur{+S#$g z{$X-MWzIKD{XSEb@u5W5->MyY3)~@Ban(d6t953)NFLSw(z$R?en$Zi)fjnlCfPRuBkASa)y1ore=zSZlxE0QwGI zjYx;cH{fKP092C1^U=qo(_a!xGs7}^x&jvWXe-7wZyHQ7Fdw$nm2hQMekeFOFQo@WBm}Y`%OjPE* znDmq#^zZWy5TFNs;I%`-R&Q^y$XQCma7UVI#qqUEnm==edGeJ%kwPiJmAupeUf?wH zJOiXV>DOx%JqoFJO<9m~8uO3-TcY(9nMAs~vSf%Oz?NVuX`AWhBTww%Y|8FmD2mI4slD zCCdM7me(T6(%dV+(3RT^eNTH)+@Q>jK9F_&ao&VY2L@bB>*oRSBm4Zxp3T^o4p#Zo zH6bz+2%La4mn8VWVFe%fy*XGvTpfHRPUGZqtZNj^C9thHRxS&vbCxFEU)rlFNCP}FlQy?$6)YoLJg2khBy00--(?`*w90@*% zIe?YY^;hliB`zYWvWd7)bk@NRw6HFJl7d;nZ~5~FE5>4o5I!+vhyhjIO$REK4@jQk zhB`AKkfh5&w2%brYqm$1cf8D1N?n-Jjgi!f4)g*KnFz;dcGE0o^{0VwmmyrUKQ|;t z>P>yJ($oLAJ{7y6^TlQtO|ZoltSQ?8AEuo=a78-mgzP`Q>fLIeLl>Y0xajb_=jyxD zyns9z<_Br8(iCG+UMdq_wzj6Th?y4qx%U)?Zn8%OWK+~#7*LIfh@M-ouYUFNU6`8j!pgCv7F^O{W2iq+i%oiV$^gR0 zHd3`d0ZxIpoKLR2I#_?ABaFmK44C@XX3BVYsI0P<*WQAFEF=paY5$(4uq7}9KrO`x`YBHAO=QR5K#l>b?90thR}oN5tq*&zzVWS& zt;ht4JT$jvZl|GOWNyW9NX;UuWbR&W5L{+|a|BN?LucL3Vn-2dNjP0Q01kg4B}&hs zs>A0vfZKfxh5=w!Hy1OSZY0DI*`sVWVnVHUE~`Z*zj^I(h+2EDgt!~2DRjBf=HZZdBf zL;v|I>!H9h`VLTzrJk@jW^mR~&uVKw2?ClzVdS0{78Ed;1x2NufhB%P%xo(7iN!K^XOhwzgk|$g z84M17lL`?H+nMB36-QVAmZYt9ciTZ+O6X7U zzd?CvE~mw;G8n)Y&O=tvhHDle15hKkFv+{i03wh8>ZlU! zZIp25UHNa7R!{9-wNf8xhSEg4W{mnY!l zOQY(i0<^HbG0pROkG(&7e<~(&942{*z@DCW0GzqG4~d?{JqJXQ_vy9(C8rL9Yy7^8 zz_h**d%1@~5%td>$Z&yU^JTbSQcitl>~Nw5i^oQyowpj3X>kO^xmizu_14)Pw^I<{ z-BizjVr!iA^k08%!U$iO|GQgZfW1W|6S^8NuxN?(-^3b#iezqeLZ4Wb%&~B|EiJy2 zK^7=*zjyLg)mCDJ@j1sl4QP+Texz@B$a>im;CTPHo?~C~qBICc%;Ne()%wrotv7K( z`8}nQYtYva`76lGsXgs2=6~@M`&DJJ9@cCyKub(3IO!ML?ECM&!-0#7cdD6s%=y}8 zoCXS78s0;$#`b2+8NweSF9h5B?5@(EO;4!PnUTmq4|zquY=&{yEgMz3_12yT{V*E$ zt{*K^>D3sQr*1sYkpxWS8f`2!Q>PjGQZf1!JX3t?WBc#3%Nrs8x40SdoAg-O0Qr#l zUH02GOP^HZCahxGE_ePme(662*uO^M_?_i`JZ;@BiNx-Y=*PgxQ&;$a9TgO_^)v_X z5W5wn!l7g0l3TLvLy<_6OjVSrznU`f0c^h-GZFwC99+(KEgOUVpCqDSgc<^s1iK)r%U-@&KH@2&-gM&{=EsQD={1b-^6 z4ugri&>}!CSHB9wK`c&p{(C_~BC)gK$XRnlAHWLmTBDFuQfre+J|kv?ZiOmr9{ht~ zAszeFYY&Uu>Hmm7g2(VMz!uZ zN@X)iJ;T;@Xp{%#-H)eVe4aaGtUfa2NQw8Ng;8OO(*P!fG(vxX*)ZWS#OVL=G=f4D z+a{=$BHp2h?uT++l+ZPOtzsu51F5@&o+X}b-b<=V8v#pxWCwt;ARMX#**2S4>pT$9 z^;0N|okI+V1dxNlYtd$svB?y?s@Jo<_*DIJD<$+|pS}c)1zJLDZYw^GG@#)1y}_G= zq0!QRN^Xaf<1%-T>IH_+@WIGCgOR}3p%86T^U0$HWgzb0LEd~0lYk29@dot%{8qlf($tH{c<@+`0nE17iUQK))F(x*_f zi%hx`t03|*;JfJ}?D6=WGc%Gm0GYhVKSfa{+BjO{uF#nHa{u2=3)JG;)$*aP#FLbI zu&Y-PS;2+;mFy_}i76pbd=}~xl;^w{nG~54yAuY%-|iILlMFzeE`D)2Txx}2BU2Gz z#<0;>6eXh;EZN+}`D?#Pfu$qw22tDOkE;=TEYa=ZS7%O#hy6EY#vPls#RVW90cN)> zPCq7|$DJLkQP~nBlWy}A|DaYKRBs!XZEsnSHO`z_9evWT+Bhy9yei}BQ17&gE`4tO zQ1*HA`^8(vUGns(kfU|Y)Q-Go^ht|kX^QaI?qt2i#V&lCG38FThrT3`i7^4DzG7oZ z{Qd14uM`?ny|UZGZ51BgcFTG==acoK-|d2u(lsJteqeC0Pd;}rXWE8lD@SVKrx->S zbWHzI3j`DB)#bUF{e{6pm+;$ktkOnN4-s10T=ul49lMW5%L)07|l8UiXRe1d)pes z$_PeWU~arL+l=632!@7Jhkp3S4Ahh5llGAAK(XVKv_8IJ8UIi7>T4?T?ECXD=K|GJ zl4{5v0K1o>2a#pI%YZl~(u*Lk$2M?Nm^KtI;e{0%@FN_}n!NXuG zH^mZ*#cl9CdeL9%T5wp&oIO_K^J)xw+$>sHf&`pAvXG2;G?qELDbYCy99wgw8G9!x zKKN3}E_!Jz54O6zVN6 zoy!Lbw${uDb0h;8!0X1>x9A*x){CBYiL9E!n>p`{3p?emtm9vxzbr-BNbP^urGfSL zzjBmG))EWvvyiZt9u|HRf}IVsSRS&p_n2jgO2&CQiWgYDy`3nN+S$N9NNuzI<;dkoxaVFEav z+utNJ;w&0rQfu@c&pHA zu>DlqDE>vj%`vRvc0tr{qU{kDMS*(&0b!xQ_SS0WbGx6{y>3HF$atcDT1Nl81C2*r z+hAKKg&~V8L{OSoLdF-`I`gM6hSkCi98>(~nN|8tcm#I8gAQ_J1vA zU{S0G%k1J3IPCW=!ZQ?f(pKe-169;;c3-vuR zffFu~&-|dzk1Hi8Ov^wHD2Q_=jX0;%#5i3qL=)ye8TZ&sdZX?&E%mCNH5)*+4F?8GWMu`U zVR3dK?86%myG;#9`WDXf;4-)<7nO0}bx%=sCsrDmxmOo~U(ES_1#|B*p&~{KgYb;2 zDvQpd0|!PMD1Q1EH3KOPBV!`aVFC*uYi|Zo^S$=?QlDD3%J1}?a?ZbK!^sI@WIp`{ z*5Z=7^xm6$xYRN?#Ms`kxEZR<@^|SdDVz!b*bl9E;Sh2+!FO%cn>+1YMG9JvChJTU zI`9~<{?M^nn+RtwR@Kn%s7e88lv^+(C8d4IYYv>YnOJpJegJ~~*U$PMgxMzuKy>Av zEL(!E9URay&dmGlH<5Wrh9uUSDY2p#^vK#x4fe3Nch=dO%>@lx#u!Bsh>_IhJEOO` zHfL_ByT>^bY*KY=BCh-3*7Wp}=eE-MK?nN1?(+S{Y$Qlf4{GmJJW{y0b?W=-Z>n$K zc=Jsu0W;;1Dg3A+GaFLU`3!b;?&;Fy(e*w*k^8ai>!jVCpbuW(7IAuyEWWpFGAIAn zeJ^Ky{>W|me*x;g^K-@~;}@DW<#6dEmR$v9%3&SH6bj~qG$?IyWG4}RS9;Ma4dLw6 z@FaOrop$GA(+BArr!tPFM=&5T^y)7Fcw=vLqb#a!ah^I_QArW>namGb(n^Ns@HYBy z_!>OS1#JG0hj@7TBk#&jdaX+#I2TCt^W`5s#W?B(VPAZUcxFdkAt()&({jEEB%(p_X zQxwJA5a3INfDtKyCVJ}%_Lf`!131?J#MPVIe7Z;50Kgi4$gS_mP#;AD`{X{zi3%PR z7qYLJ^%mY05apj{+p|9e-; znD9p&DVD@!V`aCm%i(SRIKh?e@d^78v)?hLg$^9O(?IqMWqB%KdekEMeuWU)jeXV-|Bmd zKGg&ofZ4jeo; zeDEj`EFtX6wXXYd3?0;VgUiG@P%U*q=ZNdvS{HXv)W8$c3={;ni)N>RzMCT%QPwu0 zKDJz1FFS&+OSz+V%}u|LqemWoDMCTrbMxoteo$BTr(iHF5Eo;Lxd+;~l9)x4-m>8P%Eb9(vAflBB72^kBOjwQMSSupVOak&mCYC<8mH1=mc8%X1xJxY?^ z0+LSCJ-kosH*xX9RvusbgT}gt6P(-p+)%>Y+_@7Cc6@BktIQY`f>cUM+~mJ1weeFi ztzY1}!(1S~UdRZCQ-NW2 z98Xt|J$_J^35_J{ZJ;cp6)o^#pEpUY^5825%MK7e(w|c?Ena$-9dQ!uzp8XU-hx5P zk~C>R&Wvc`6=N&RZ!@!!vgbemQ7DlF6ycQ_#uq*dN5HeTR(g2mK>#G%z%9p5F$(WRVMr=b+Z-?!qIqFqYS(eB{(GyAVcYU$G$& zm6mdHnN}n&Sn5ZQFsotdd|n^bOi1uO<#phZvq6cEktie_E(gLrY+iUh%$2?S{Ju8h zR$g{=D;B%x1(ja_@+}LTMuQ?>mfLqGgub&XMW+z9aHvozSLTw{KyJh-8XQ&s@BQ|6 zWa#Jjk2|pRK#f#922qKHlNY$BPEQ&;m;_)@_+tCU<8JL>1BGiRyznBh0}m{wjJJ7K zsPH>C6iX_$qzpHZ)uTwGf|1XMyv6vEMfdFaGwGYUeW81By3IOYQKQELQAO_c!{Ajc zK9sRCicH`6j9-o-kVu^FGYn}VFk2PES|t32qj?NSV;P;R>O^l10$m%TP3+y645&@1 zm7n|of&@XV2>fecyWHb3;0^Vvg1j8}IFGL%5s`D9B_H#CmEjj`tAy&ObRXcTH0org zsjOB*dplzs8z_S_2bNn^T=(%VG7Y^)3#s;}MpZg@zELD5i=^I6Zc`g&+@p_#MrRo1 z(g5}f1^LRzqEOLyK&%#tcUF%UO;7}@>MWg4i8b#N$jdQaD=FkZhjEm&4EIC>#(Tj|C?G9N{N;ZU9^zYKHY}{m z6y(1;>y&1vfG|d>2Af1vO%Cc0b6xTJmgW-PIj!k|9~xVncb=b2g`aLoy=0``R{Un#hEK{o=%=AQ zZ`Vjl2Pv3cuheGrByx43>8RBE&F7=<`-LU4z8_O%z9!h4t5hi>u=DD}F-Zgw9aG1z zJe=n2dml_xEQ{=ZzFPR*{z>I=S#y`S>gT;)2^4}82KOCcsaTlbyxXcL;+q0OqZ&^=;)iON zm?ndbA_C_G=|71A50!=n90}=q;A9%b6+a%>{rTE2XN~h8AWUGSfYlch%WN_vi6O;a zEBiMfwn^z`nnPB&_wDd=lIqm~3;zt;y2FUJ2;$lm4urkEKe|=ZBEz}dFHkM7$)IcJ zn9S5|Z9R-lCC?KW@hEdh*$f)qXbp}zXF=h}2W@12lZsNkNdKA0+<@+3e@002{Oh}6 zT}bWa)@!aw<_VYbfwdl>-LVb4FeYYekW(*ql1hD{zr8si?3$Cr2!D@X%hs3VOJ%H8 zaXhK|_mU;^2a}u0mIOs+PSZk>3d38hW%mv1D9*7aJ4r$-h9V{APpt%6+IL4wmS!RK zZf#add(MLJLSL+bX=cX2R_A*Wo&t127Vgx!ZuS^g+KQi7L` z))S@gSHoOW3&%BPiy4ertjMj43+5F>y_b*TbKNk_$jCAZb3Uf~U-`x8iX1fUi_z&Q z8x@b-V;`#_TqKuA5x|#;>-b`kF)Nmu_fHVRm*_v@tRq;(cJXTML<7U-*2Q}90|KcL zqR4aY!vC+|l|$c0{qL)qN+X=8X0RuF;Z~B;)XTq3!Vqr);CI}AOm+{uX<$@}-&zmd zBO^Pgx9C5`N$Au4BIxH^ev2KqmMOft`p$Y|DNDrg7gm(!Yw1nU+C*;%!{g&%GeDrO zGA_YPQ|ltlU$h7X5_@Oc7zN=NOfr