From 01aab51a4e30bd319cf107f0dea734b93815a462 Mon Sep 17 00:00:00 2001 From: JUN Date: Sun, 20 Sep 2026 21:06:02 +0900 Subject: [PATCH 1/5] feat(desktop): generate every app icon from one SVG source The icon set was eighteen independent raster files with no vector source. Nothing tied Square107x107Logo.png to icon.png, nothing could detect a hand-edited size, and the .icns and .ico containers hid a wrong member entirely because it never appears in a diff. icon.svg is now the single source and desktop/scripts/generate-icons.ts derives the rest: fifteen PNGs through rsvg-convert, the .icns through iconutil from its ten members, and the .ico written directly with six PNG-embedded entries. 'bun run icons:check' regenerates into a temporary directory and compares byte for byte, so a hand-edited raster fails instead of quietly disagreeing with its source. The geometry is measured rather than redrawn. The mark in icon.png spans 58..453 on both axes with a 48-wide stroke turning at radius 135, so a centred stroke sits at x=82 y=82 w=348 h=348; sweeping the corner radius put rx=127 within 430 of 262144 pixels at 512 - antialiasing along the curve, not a changed silhouette. The mark stays black on transparency because macOS and Windows each composite it over their own background. --- desktop/package.json | 2 + desktop/scripts/generate-icons.ts | 160 ++++++++++++++++++ desktop/src-tauri/icons/128x128.png | Bin 2849 -> 1865 bytes desktop/src-tauri/icons/128x128@2x.png | Bin 6300 -> 3971 bytes desktop/src-tauri/icons/32x32.png | Bin 638 -> 477 bytes desktop/src-tauri/icons/64x64.png | Bin 1176 -> 864 bytes desktop/src-tauri/icons/Square107x107Logo.png | Bin 2268 -> 1482 bytes desktop/src-tauri/icons/Square142x142Logo.png | Bin 3346 -> 2035 bytes desktop/src-tauri/icons/Square150x150Logo.png | Bin 3655 -> 2120 bytes desktop/src-tauri/icons/Square284x284Logo.png | Bin 7155 -> 4419 bytes desktop/src-tauri/icons/Square30x30Logo.png | Bin 559 -> 458 bytes desktop/src-tauri/icons/Square310x310Logo.png | Bin 7822 -> 4863 bytes desktop/src-tauri/icons/Square44x44Logo.png | Bin 845 -> 636 bytes desktop/src-tauri/icons/Square71x71Logo.png | Bin 1453 -> 982 bytes desktop/src-tauri/icons/Square89x89Logo.png | Bin 1716 -> 1273 bytes desktop/src-tauri/icons/StoreLogo.png | Bin 894 -> 732 bytes desktop/src-tauri/icons/icon.icns | Bin 65470 -> 83642 bytes desktop/src-tauri/icons/icon.ico | Bin 11591 -> 8289 bytes desktop/src-tauri/icons/icon.png | Bin 13516 -> 9291 bytes desktop/src-tauri/icons/icon.svg | 16 ++ .../030_icons_and_widget.md | 91 ++++++++++ 21 files changed, 269 insertions(+) create mode 100644 desktop/scripts/generate-icons.ts create mode 100644 desktop/src-tauri/icons/icon.svg create mode 100644 devlog/_plan/260920_desktop_app_stabilization/030_icons_and_widget.md diff --git a/desktop/package.json b/desktop/package.json index 7f168ff8e8b..144f8540644 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -5,6 +5,8 @@ "dev": "tauri dev", "build": "tauri build", "build:local": "bun scripts/build-local.ts", + "icons": "bun scripts/generate-icons.ts", + "icons:check": "bun scripts/generate-icons.ts --check", "prepare-sidecar": "bun scripts/prepare-sidecar.ts", "prepare-widget": "bash scripts/build-widget.sh" }, diff --git a/desktop/scripts/generate-icons.ts b/desktop/scripts/generate-icons.ts new file mode 100644 index 00000000000..b038be7d14c --- /dev/null +++ b/desktop/scripts/generate-icons.ts @@ -0,0 +1,160 @@ +#!/usr/bin/env bun +/** + * Render every app icon from `src-tauri/icons/icon.svg`. + * + * The icon set used to be eighteen independent raster files with no vector source, so each size + * was a separate artifact that could drift from the others and nothing could detect it. This makes + * the sizes derived: one curve, rendered at each dimension the platforms ask for. + * + * The SVG reproduces the raster it replaced to within antialiasing (430 of 262144 pixels at 512), + * measured rather than assumed — the geometry in that file was read off the original bitmap. + * + * `--check` regenerates into a temporary directory and compares, so CI can fail on a hand-edited + * PNG instead of letting the source and the shipped icons disagree quietly. + */ +import { spawnSync } from "node:child_process"; +import { mkdtempSync, mkdirSync, readFileSync, writeFileSync, rmSync, existsSync } from "node:fs"; +import { tmpdir } from "node:os"; +import { dirname, join } from "node:path"; +import { fileURLToPath } from "node:url"; + +const desktopDir = dirname(dirname(fileURLToPath(import.meta.url))); +const iconsDir = join(desktopDir, "src-tauri", "icons"); +const source = join(iconsDir, "icon.svg"); + +/** Square PNGs Tauri and the Windows store manifests reference, by output filename. */ +const PNG_SIZES: Record = { + "32x32.png": 32, + "64x64.png": 64, + "128x128.png": 128, + "128x128@2x.png": 256, + "icon.png": 512, + "Square30x30Logo.png": 30, + "Square44x44Logo.png": 44, + "Square71x71Logo.png": 71, + "Square89x89Logo.png": 89, + "Square107x107Logo.png": 107, + "Square142x142Logo.png": 142, + "Square150x150Logo.png": 150, + "Square284x284Logo.png": 284, + "Square310x310Logo.png": 310, + "StoreLogo.png": 50, +}; + +/** Sizes an .icns carries, as iconutil names them. */ +const ICNS_ENTRIES: Array<{ name: string; size: number }> = [ + { name: "icon_16x16.png", size: 16 }, + { name: "icon_16x16@2x.png", size: 32 }, + { name: "icon_32x32.png", size: 32 }, + { name: "icon_32x32@2x.png", size: 64 }, + { name: "icon_128x128.png", size: 128 }, + { name: "icon_128x128@2x.png", size: 256 }, + { name: "icon_256x256.png", size: 256 }, + { name: "icon_256x256@2x.png", size: 512 }, + { name: "icon_512x512.png", size: 512 }, + { name: "icon_512x512@2x.png", size: 1024 }, +]; + +/** Sizes packed into the .ico, which stores each one as an embedded PNG. */ +const ICO_SIZES = [16, 32, 48, 64, 128, 256]; + +function render(size: number, out: string): void { + const result = spawnSync("rsvg-convert", ["-w", String(size), "-h", String(size), source, "-o", out]); + if (result.status !== 0) { + const detail = result.error?.message ?? result.stderr?.toString().trim() ?? "unknown error"; + throw new Error(`rsvg-convert failed for ${size}px: ${detail}`); + } +} + +/** + * Pack PNGs into an ICO. + * + * Written here rather than shelled out because the alternative is ImageMagick, and adding a + * system dependency to regenerate an icon is a worse trade than 30 lines of a container format + * that has not changed in decades. A 256px entry records its dimension as 0, which is how ICO + * spells "256". + */ +function buildIco(entries: Array<{ size: number; bytes: Buffer }>): Buffer { + const header = Buffer.alloc(6); + header.writeUInt16LE(0, 0); // reserved + header.writeUInt16LE(1, 2); // type: icon + header.writeUInt16LE(entries.length, 4); + + const directory = Buffer.alloc(16 * entries.length); + let offset = header.length + directory.length; + entries.forEach((entry, index) => { + const at = index * 16; + directory.writeUInt8(entry.size >= 256 ? 0 : entry.size, at); + directory.writeUInt8(entry.size >= 256 ? 0 : entry.size, at + 1); + directory.writeUInt8(0, at + 2); // palette colours + directory.writeUInt8(0, at + 3); // reserved + directory.writeUInt16LE(1, at + 4); // colour planes + directory.writeUInt16LE(32, at + 6); // bits per pixel + directory.writeUInt32LE(entry.bytes.length, at + 8); + directory.writeUInt32LE(offset, at + 12); + offset += entry.bytes.length; + }); + + return Buffer.concat([header, directory, ...entries.map(entry => entry.bytes)]); +} + +function generateInto(target: string): void { + mkdirSync(target, { recursive: true }); + for (const [name, size] of Object.entries(PNG_SIZES)) render(size, join(target, name)); + + const iconset = join(target, "icon.iconset"); + mkdirSync(iconset, { recursive: true }); + for (const entry of ICNS_ENTRIES) render(entry.size, join(iconset, entry.name)); + const icns = spawnSync("iconutil", ["-c", "icns", iconset, "-o", join(target, "icon.icns")]); + if (icns.status !== 0) { + // iconutil is macOS-only; elsewhere the committed .icns stays authoritative. + console.warn("[icons] iconutil unavailable, leaving icon.icns untouched"); + } + rmSync(iconset, { recursive: true, force: true }); + + const icoParts: Array<{ size: number; bytes: Buffer }> = []; + for (const size of ICO_SIZES) { + const scratch = join(target, `.ico-${size}.png`); + render(size, scratch); + icoParts.push({ size, bytes: readFileSync(scratch) }); + rmSync(scratch, { force: true }); + } + writeFileSync(join(target, "icon.ico"), buildIco(icoParts)); +} + +function main(): number { + if (!existsSync(source)) { + console.error(`[icons] missing source: ${source}`); + return 1; + } + const check = process.argv.includes("--check"); + if (!check) { + generateInto(iconsDir); + console.log(`[icons] regenerated from ${source}`); + return 0; + } + + const scratch = mkdtempSync(join(tmpdir(), "ocx-icons-")); + try { + generateInto(scratch); + const drifted: string[] = []; + for (const name of [...Object.keys(PNG_SIZES), "icon.ico"]) { + const fresh = join(scratch, name); + const committed = join(iconsDir, name); + if (!existsSync(committed) || !readFileSync(fresh).equals(readFileSync(committed))) { + drifted.push(name); + } + } + if (drifted.length > 0) { + console.error(`[icons] these do not match icon.svg: ${drifted.join(", ")}`); + console.error("[icons] regenerate with: bun run icons"); + return 1; + } + console.log("[icons] every generated icon matches the source"); + return 0; + } finally { + rmSync(scratch, { recursive: true, force: true }); + } +} + +process.exit(main()); diff --git a/desktop/src-tauri/icons/128x128.png b/desktop/src-tauri/icons/128x128.png index e77df1e28fc9cfe97acd00d99810b17fd1fde004..2de806b6fe739e9c640b0262b964d52626ecf0fc 100644 GIT binary patch literal 1865 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 a=rBKLg=%#bB+u{b3(!XyAS)4eQU3xJL{iiM diff --git a/desktop/src-tauri/icons/128x128@2x.png b/desktop/src-tauri/icons/128x128@2x.png index c6a3f4f3219f3b8a3f6c2745205598ef57cd2e77..e1d4fc804a0fccc4c1e0393ac302bdb73ab39093 100644 GIT binary patch literal 3971 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 diff --git a/desktop/src-tauri/icons/32x32.png b/desktop/src-tauri/icons/32x32.png index 9299f3600476116e06ca002552e861f2bc32c65a..282567c56270cd86197f583896836abbd32e150c 100644 GIT binary patch delta 452 zcmV;#0XzQw1lT;LFY>ruPIYwTly|9?}C0rs#~$8ihWxXy4K zk85;?w#K6B7qsvN8`1nR&J>{@hi6#9YBYaQaOrV8cVCTyH$c)9F^3G>*9+C(nu{&wOqH?z9guM!#z}_X=Ddl&8@^J&sM>q-W zz70Rb;e8p%O@9*@;Z=&jlRzFcNZ?N(KTQ#MaLftJ3B&{{v$ZCc0{M4}z|TNlX^=oz z1I|;5ZN+sty0tnDIA51>6;m!oef5jc4;jUX`{lSdBZ(Gv%utTuqjEFRm-jn5_#WB# zFitVml6}TzG=DlARV~@FB6;Hk{)+c9TCx#|t|D}^Ha(?Rik;WGZ&nq_6P}Jq<8ruW u;!)0dn6wo~>V@>fA0JH{J!_A`B z{6?rh0P7)-qJMb=_raR5HN`!lefbJF1q*zqWadm$+d6b*5$ zG~2KxeOP{(P-eJFgmm33)mH+1G)=|rYF0aL!>(V)|9?+_*G4~HSOHb>yT1)WJj0gh zqb@*qEQ$Z6_^kavK+UiveRwia=#F`&%NVcJ3_H3lF0V%$X_1Qa(x)xdILy&GVI(Wk zs@uXnAZ^5GyG&o6EF85M_3{y{a;?-3(3^_}mBCkm1yI#)LOSdbiwBK2>UWF0R`oq)5e*XR;lfFUpndLxwO z=Unr{sAYN3he?73OGiFTI`(N6<<9Tg$LX)O57KR^4<>iptS)dAB1Ai{3&^iHr0K338unv5( z=+Qcpzyk0MICWHZf%!er?Z;42nnJ)mVzzxH7Cy}8hDueGubxFOA0y97zxCxvy z+_M#3dzesbV1GkzFej%)VBCTJc+_^s;9K z;9GJ`LZ~GCLgVLv6!}2M6OGuiO`(K5*Z6v5OJou?wxzFq*_KcW%E-gv2&mW)Sr7y| zs0{6!DdZ36e%8iI$aDLrSsS;=GvYnAvNl{38a~F&qkk?f6R3GcoY$)EM$^RNmQcR| zd`affDLcSN;k{YijivxdV|>-*$OG?%`f1%wrT~ly^+jBmkUVLJswn_NLj8B6o&1qJ zNqqp!0g#^YM@BpO^HZqT&QMJO`0oh;@NK|1AppJ&_$CCvw*lXT0QffGn-Bos27F@* zfHdd#xql8QArV0OkNlt3E|o4DF{T)N5C+Oaa&y>gy&q z9;gfTQXd9lhJSxiG}Crn33V(buHnTj4O?c3c#k_a8lM*$|4lJ+K^1w&_?`^`-PYJT z{`lo~IvX8@rHz+<2OItk&mX!+X zOhZl!cO7p<8rGgNuKqAl1#U;LW56X;R!_n)>JJlNQ9o(dfX@~^1_FUVAaK_C1HKqs UAXl?8oB#j-07*qoM6N<$f=?QP@Bjb+ delta 1156 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 literal 3346 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 diff --git a/desktop/src-tauri/icons/Square284x284Logo.png b/desktop/src-tauri/icons/Square284x284Logo.png index 7c578ed553729f8e81b1590f5594ab3b7581f523..6ef2495b7ddd26e108ac9c81687b90da91e979af 100644 GIT binary patch literal 4419 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 literal 7155 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 Z2DSB(7Z4wM2MquK002ovPDHLkV1kA5`Y!+g diff --git a/desktop/src-tauri/icons/Square310x310Logo.png b/desktop/src-tauri/icons/Square310x310Logo.png index dba929dbcd7a3ce954ccc5e743e8243c34eb7bda..0276815ce95d826e4a528681c4c27940d395f515 100644 GIT binary patch literal 4863 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 literal 7822 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 delta 1436 zcmV;N1!MZw2dxW`BYy>SNkl34#ejlnO8LZlG1+1=?|{5|@3o&CQ3 zcK6$CWCng@`I79s_nY_L%)EK?B__1emIMj{If0x&&MQogZGYh%t}9{VDH9O`wq>Q{ zdwV^SxxPLIWf~0QLh!7MfH|VSD}-f_oSl#}L)as{Nw`fo zh0oIw%L6CSWH9Xrxn=*42&vgj0HC?G7<^crQL&usFr`A#1ge?f1)^y`yAb*Y#UKgKd&_k2NauoyjJ_wq~ z#cYk>Te#A15Y*>J^0UW;6~Y>x|8Bu*ju3`~MZ!fqn=!H!1M)Upta6aH6OhQU;vr&; zwiqW|XcGZ(wIpUVaVH(KE?`0!2v@Tn3o2sJX^%dQw-3AmErj?Orh3RT#TJ6yBAg@q zBL3HUf`4)y=xs?3E51&6Lnto?K8C!k!+=+oG8BE0B?P}nJj`CVTUzEgpF+D-QJ z1>vfaNz3~V)DZDfeWEJLmyJY<-Sv{k4Vi>xF(c$=e_JkM(6T2v#_}&guXL36L=}iT zgWYv5Uc^)OV=-OtnSL~uV-@nnV$dv}k3z4J97Gl3(SjhvsOOcQ=AsiNpHKFMad9`Q zkbfR{&+`&C&$X`ex)Y{0);!_BD!p7CayWPmO4bb9Fk91uSmTR5ynWeLD`Knk$|fbp zid5%($*62$uVi~_ITrG5l~~9;^ec6(aZ~v$mfXg(BHo!|lD^Fp@Q!CCZ=ly~lXI(R z1c9kJ7%i=#TR8Cy$H9S|Ku#bhkQ2xWFLQdcD_2#%!-zujM8yb=MtlB)Ss3heh*r*4whL5H%d)y`yCAquM&()pEnbn(~;Ke2U1Hv^`#lBy0hV{7y zxl*NLtn_JApTk9uf0~zNC_~jDyMNbd)WzHri!Rr(#c=saQNZ*yX4^fha4){!`+8)Yky|y7ht)P z^cfaZJc~tQRJ9UTn15aPh>`up;=a`BYyw}VoOIv0RI600RN!9r;`8x1g=R$K~#90?VL+*RaF$ne^(=| zv`|_YKq(UiO9(gv8HnHqFg9U`DQV(BqaVZ=tvnJFXM|5+j3h7vDpJa<6k_Eu0d-`6 zKEXt*ae&h z=E!60%VHKd1?-I1_4xE4<~}FCp{vC+U=-LK$A)+u2Yx5Nfg$l5Fcia#s_8&}y}1or zOPmK@uiBWZ=zjx#CcjBl#81dg8U#Aka3)@n8it-I^u@$(3-lu0I+Uq!D5HpKx zU)G7;$k?IvZ8Wx!Zfv`0!?A@#Vg%a{s4J$3lLir&DQ6ZDN&{I^YkmAErie=h0q@2X zkbq<8eSf?V>*Ag0Pc*K_x_Dx=*~UDu!J6!qfD0c+-vT@rkgsIUEA1PBcdW@mOg^Zz zH-R4l@|Dc@hR+m3H$wAjD*C z^>!~HR~^v$V_waMn5@00@H8M-9eAR&n>UL>On=s977GEn>cG6xzR{W}#N@iJ;$mU; zBgAB ziP?`3lNXhC^Cosp(4GXDA5w&vJg2l*Q4?JfJxcqmHBpGke=6;zzUbX9yOnm$k0nA( z)_>kZcsn3h9nkut`LRTZ$vAW~(t9vDDM9acm0V~G%xZyG-HVL-l;u@vD<#JF$= z`dgjjF)o~eo2=f?IRf754CSJ7@g`EiS!doy@8gd#1q>SmT&2G6Xf%Lp=zTm9Q$#m1 zKh#8w#1s*ckJ0-!L*$wfu+{L*67XtiA%E<_R-u}tmTv&5XVb*oM(X40z&7Nx0_wOP_Fb|OJ!>Z08+6ugZ?51g(JuhPt`R8e+4N2%n zs-HrCB_+os1@0>LBKO?f=2Q_^DELXwYrq%CXq?-qcH=uD?yyzK5K`5d+pv&$NXBVe zyKDl!!nOp@8H>nDuGZ%%_apO6>tDn_Rm>opJ;e=fYoQA{@#F$hh?v9JIb_5A1PQh) zTjW~iZa~h9IK+!H?fa09S8>|wW5m#vXWHKY{;D9q<2a7vIF92uj^hCT0-@4)(NV0V QTmS$707*qoM6N<$f}IFj`v3p{ delta 1701 zcmV;W23q;~3A7E6BYy^aNkl_#2nEeY6c^pO zX~9Jm(Y+G4-3l?#g)UrLu_%b5pk`+`E?g;w5)p(nNu$J)MHj|Ez+g!_f5!XBy>NNV zn|bs9oBwB~_rjrR{?DIx&)j$KoA>U$zY~a5E*+sjNEVVsgnwiqSx6RXEy=2a&rBa? zk~N_r{;P>dDk5Z5*BQC>~px*Z`~neg)h!X0q+3H-cocTq5^zz!k*vfJesQ zrv3xm0<0kZW`AT?X4$GjUr*#d4Y&$;18|zXhm=xmEXs4xOWDtK(@72iUjse_Y-fzS zwj^`wJp;G~c!ymlHiFTpg$KV5``vZGyMTi#tlFod5e`nvtALNu&l0)On20S3kVLlj z-;03nGW4kh$$Xl90(c95e&8XHje_hLS2tR20N(cLK7W))f*%F^0C)laPpgU|Neut# z+kL4L<491SRlv)De|-?GJQ4gD4(v(5F<`<`p;5UIat$swp2q(t8q7b#60JP=U~R#_ zITB1(%cJ~Vz$Rb^u!j#3>5zt_A8MunX94E`v&O2X$htYv&!R;S?4#8XiVzXM;2qB+ z*bFjv0DoTrZUWXVPiDSE``Tv!mjG`9<{X1D>7!@piy3-XPBKj&3UYY_C(LTL084;x zGiHUV&`of84X_ND&lsPLXbOe{xs7NDg7q@(eIqiP60>W(hktWBV{V-Ua*}EjnvvrcB>?-0KKk-9}iFwJdj035!o~yYf>u^-Yp#!LNhdmo+Dtk6DlNFBS~@ z86=XvdI|U$uAP-nOQxG~1-C0>i<{`6D_LfH7flcv=Q55zYXw2pd>VOhHd0rT6GpPl zm(vtmVo^M82+4fwb1CN#RvA1bz5*XPe1Cmp^ha=VqG1L+3KnJzNf~2=T zVR;HyC56kmu!OZQAi;f$s|fH>xykt)9Yc>Sm(fQa7F;;r#)ld>c zk0{42_FTO|SRz5>yyZg^{M}uA>=PJeQQ zdTbVuIO95NL&u=kW#@IuLh{ZS5@v!5Pw;mvB-86t$V*zJv+ELW5))7INZbqBC3^)o z;S}=XEf+3wc<)imNIr7lF7ipTOX5k|GLlmdoJfAMB!LUbB0{o|EF_Bv$wIP-kSrt% z$s$6skSro3*NWuSaqF*5qC9X?ihtz3LpJ7Q%SfJd$PVrM%pf|#TIIaW?CF+~JYBGv zf8X^qD0G+-3QuqM3l0{~w&a8)HT1C^9PcA9UNeYx3w+l(JiYBV*gsQ-P#5*d^Ub?e zWDspwES2(kXM>X}qoCm=2dKxak#B8U@ z`&>cs%0Or)M3LLYtw7U3UPVg!#{k2ut2B`OT+4^d!t*&8hb;^iaEXXwPFpK_)1;d!VK8mhd z)Fq%}Tz?72l}9kwZ;^G|N~>Fwtvw#GeU%(q1bg2 zwhmq~YVo3+vfwWEyZB(xSty-bYTUU+dJsuBt@d=&lD=@#;jmpD4y9LT1xvW1^FUhO z-9Q)8V+6Xhp~UMbOM*2_U-FwFW=5E=A(Q0o{>Pl vF~_S!fk+_v$wIP-kRB`~3&|ovaPdx z)m>dxZAPsxsRcEa|NQ^Z)zxzvB9X{{!GSKMMIv(atV;gu5oUA&;b>LeC0n+0uaILBkck#P~%8p&&fvq{) z&3+$vl=JxtumG$f8+f-s?=W&xI15|?CUVv`fv1)}bGeZiOMhcM;3aTAK#ehAF45Hf zGgH0=j-l^~O@H8~ueic(U`wgD0Sx&FKUPFHfeSvO1x%ucdFU!w2Y!&foNoC#wcrlf zARS=TMXafay$E8{j#og9d>b zaS#XORTLDt)}M9Xs)HqsV8d1j3{&3X>SbjNtrw2 zY{#9`%G`Px0qrq<#ot$HRO1|EXedH+VLV##TB(1}MW{x$ zzuQAvHh)z!O*TXu$L0e_cTsBxP5L^`;UaoFXx2w`7-=Y{MYoWaO=zZp?@GNEaMV}) zDtgOw4{6zq`xZbp_Pn7+7r0y`VB5rQ0#9;2Uq$XH?~x{Uw?J>diG2<+nRhpA0M9Ia zTG7|970NP&G$E=E(E_ei6=I(u@tiZz1T(kF1a0Kf6d@=PK0_r rJ%AjbrzrP&dOaDPKt3Xo$iL1niOYk{2*)2k00000NkvXXu0mjfTFpnq delta 872 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 literal 65470 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 _X}QEx%TW`Ef>q=eE? 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૕mya}XAM#^g0Y|`D`eg!LZ^i^L z5!lSdCc%2)WB|a%V0UTngf8*5tuCSuZdy^Tai*3`B94Rjq)M2lm?!Mi?Q@COOgeh` z3^lwCG?Sj8Z*}eN4FnsbUz-Y71|bCp+wuiF&%fGxOwgQk*ON^mQB$UM8hp0m9Y5nQ zN18618T(+our4zV_Kg^&iCaMy#z4vH#b~zOBjodjX;z%Z5m|3NK{0$gvH4RRP8+IL zf;|&Pl6yKXzmtw-G}QWhmlCdH&gmSOBGi#jo<|(hl^1mp3G0!OLm0_95}Vij3(u_V z-d(M)IcySLwB1#fg2%ErCymNf8tj=Ocn13z>D7;(_I4Kn4EKv<75C!uTR9%T^Aqz7 z#C?4$xj(!s$rUjrFHwfq4|%KrlM9V>|CKA($uJ!R2gEw6R3GRKX*Oh1^%0sXl00Be zu+SHpAu(Y!=(>D=?UjP1`pxh|@kRd(An`z2xdx@!r#=Hks2XY3blEPlVA`rYghC9z zbCfNCSdO2)=;^rwBV4y$Mmz}#wD4F5d8|dNdf+P7!tIHCHqY{y<;Rf>MdC8!WTwi& zp#kp55n$c0_8Hrn|2Q$<6?bAYx}K5br^T!Mz8F1PN<(s&V~d?4llE8|FCzia{k}DZ z^${y7coJszLdL$pZO_ess!t4-D9holjC^(5A)il-!X5}3P#1si$o<`_$S8-`YUoOs zRc|V%&?-r`0W-A`d+~d*Qf%?NGueL33r4Z!76pXya+1;eL&j@zxmV96x$PHepVa0A zDTyj4X?Hbc(U8zxNji0d@$lke?Tv1I0wsc$R0CD^V+y&$f(OQV>#ef=WD_QY(>@npqf&|{>TNIt`&5zeG9`@Ee&)SyXZA32Md1T z_fnQ6d(oq5IMjIY9tedWS`0`vwfma0Z1o>A<|r<-tGV;ydzvB%(W|ke^K*@(|`g~X9io; zB#G_8>QdM)grh^mbPAumTkm9Qz`fU-x=3T2^{Dt~pk6S^!~4jW;N5bTTeUkC`NB?( zvX%F#XvU&8=f2h#0>6*y@Uz5uoxEc$b6h-0!}5tG<&$K-L?RVm$h>hLvDPiD-94YW z_l_Uz&tV{RdlPF27s1dUx*?A*dxpqDW;O@;IwYKqXM-rf9OhC5|nk&0@P!V?g8Roe_ny zlcnWx;+o!Z&HKW!f?}BqAY^%u&(i}B(JuOtiX9i@>Y6B`L-phz=LYk7dJmLRY(KX) zdPu3OK)22a2Ob~g0ru&JNXw*FFKGC35`xAX67`)rKpa~Q@R3-HpR?cYwa5qJ$lbAJ zTD<5xg)8J%--+%MMGI>Lg5c`N?4(7((-~>|P=wmY-uv0UI0OO`>*cgFTU3w>?wHL1NqZia|23xWHYBB6NHmS;Pu#UrSeoa=a|@iV!o7MhsI?t#0Y1RcYqso1BaBnuJU?n+z=NeTNE;Za`0+BMex@W=dE!V;Mf+u

z-FT?1#er9z7~(s$s~2@!YL;gvBTn6dp`w5b8_S#!J9F5vUpd7!cz z?DnqM;vDMdT!>>I9B{*Zebrseu+|dlAHhPg6Fp;3*D0amzIo^4tLKoD8GZ@$x)9s) zh71@fDd(9SOaXamNkF@gkb&^u$5UxCifZR={+i5~Hb--nEAqxbsbrWtF{))uV$m&_FF)JooLvk*3CJTO-{-XK zIK1M2WbZMMr~Hm!$5nN7GA-CH&jcCYA+Vawv< zdI^ynQ?s}Bb{qx+LFPg^S5j~LIJ{r3F+oBEkn{JK4z#(LQ$e<|&=+8jK<+c$YDMq! zh?TsLD;8PPGf_m{P6a*sVUlt(DI>UOJUwzqqP$`}SGge$|J`YZ5TuzAgnnP&n)qh_ zo+@5(PZjrF&nk!nB&ZfNK4zn5SKr1==HI3AMdIdxn@53%!1GN-><89)O)<{po&*EY zyEZ%uBD_+%Jg75oHJ*|<^l)^B}0%y-*Yy2}KKT>O;O+p|}=@Dz=3p_w_O z+~ClS?M7=G_WR+*N_$g_s3DX4ARhg!rKdK3bgfbwCrV&kpD0(=-rCb}vC;~Vmg&jW z1|%xJdEPVrrugNBR47wZvTGvVRD~%`vhkY9u_hB#)_FHoMxe5VUv^~!TZ8sDye>_o ztZ|sr9Xth)*U&0rg|Li^VRHj+2pd)y@s9H#xE>7o;G03Z>*0GovuL%; znQ2QPfv_d*Nhds)Wy|^+6G*rj-b+)hQ!|rz4}~FUX$e5YBs}erulchhOZSUnxF<8I zA(q!Gu=#LfQt$o{^e^-u*OkdjkeE0BMzyTQtbof(fNE%?p|1p*k}s(rt(?dfF2wsG zvOJ!FG*}dg?0LSw%G)qIldnT0pGgoIwp9|zlQftT{t+;14yl@*_P+z*UY)WCZ2}_N z+lQd~Vx`HHwxNo9f!#3#N&deDNZByX=>4;pQp2{)U6QuUz)Op#ek{b~h*^OMUwlju zk>mSf^Nj$O(4}(p4}xGvbcL6))vFT}o)o;Q=l+e~Ll* zK=8A30{Sg=yE)_#(OR*$7PTlE69QC;d+cyKJ*3NCc15b7xSBwFs>1PGZZZ22XI8eA z_iCokfeOWv3&&PL%R_koqe!uF)uS3gkleE5(vKc$7{?@W+{4pD{coj6&g(1AJ{y`M zTfZOy2rOckVz(*+Erjxj@f8q3vh(ZMXO0m{vk{I*i@F8x_(V^K4B=H{2t9g_^Yo;sh2LrqlzNu4o*SjGZ;jV- z0w+WV-8+np8b7QZFBJ5b^7Nf{>2?q z66nZX8CSf1#XaSFoSz=DoS)JM61fv3j2Duq8WTku3_?(|ezUr35J-O`Br}Nf@3sY& z@DsMpXKd$fpyCt=!(RqSyQQ5253p8s6882g;30>iB9GpeZ%8&?t+cO`Cx^1VfH8EiyCMpBNC`AKErOi$GPCS!|d!t9LzqS7+`-+^7BL* z`pxqpblj+nXDP_f^G2mTwUG+&s-7oU9NG#*3X~AZHlO54$-_FJd1W*^iPgj_1|{9G z`XoREZP!1|&D)4gsPiEwOUNN>vOAy8XN5V;-s)vm4`hRYHjvLmgUMc+I0p#`;&Jyf zmFp8)N~o4)fkZ@d+g2*C;1jVqg%G4Z-CyBt@`l>!Aq})p%8EW3=#%B@vd98Jc`fvY z7^=F05Z!d-&h=~tMq4Zr4h$RSN^=jc_2Ka#Ag75MbD{*u;7{HB4Hm6wBq4#(d)WzkAF;|X#ClW>tnM&5Jk&XGn!9-95k&=0k zEwD;vHb%%uY+NCR3Q}Jj1oYax4r~W^$Ex>UtD%aMv)Rz5HH3-a$a*qV$B*{|l(b!V zQ-Q;nr33bSudo@=2)~@4&9vQ>S_|zq)ZgyBl3fI=hU>`!Ii_cs&@WQkmyy~8IYaSbrUXz$#0HF;X z!e*r#i;Ay1v?z3rane90x$h18sCSStz&weNeoCyS9NK1q`X00vJu#BL4AY^7Fbr4$ zr_;qNR6d}HXO3{yQ>mKqdzXYv%m)koQ2ddn#|6t91+KP`97sxgXj$}eJ75V*1usJT ziG(6K6lx#J!hXU!*?I~RfA5EI0T)61IEEO{xB7LXawVNuX><3?7Vk&#VOliD0E!VZ z^sd@-Yx+hgMTIpq6~i6gt#rNSB7xj5U3necwK|ng1UZzoZX{lG3Zj81OUZ2#(h}>< zz|tX>mP6M}@QkYvH(TK0iJ64>P#iifJIM7ExDbRrG_w+uG^>8sbcbO1n;&LUv#pE+ zIx1JqXV<$GwT*!_4o_QqDFVV{#>kw4L9AGueHBe1R#bHH_5R)O&A_HqVb##h1AR9m z#g>q`f{Vb~`rNg_PdQ}h5<%9q@1c^r+o1l!5Cip}uYJ1nix^t*dSu#VO%KXGw407h z;zN1aASwZCt_!MX=!Ymk!1%G*Ho7+k7<7MePW00Pg;>oJbUj~XI)8RSsdJMa0oj=a z`uE#1KnOGEI0c;8mdQjQjIcsi8MkLDkZd~Xcf~Gc%)rB6FcZK(kP!bmEVcs-&;rU) z8~+e|?dnPg<&#I&C)i8i8}O8n>`ziA@vmO!M-*&9x_4Dkm3jrgAkD&>asm9Y^PN6%MYyj%vLby zHx+Yj-9k|nIz&B17ohhFfpRTGDL5aq&z~nOZI4WnVCWVtUuF`4xX-U#IR6+}ZSo3Z z5M{RxMD=82Yk@TU?yK!Gqx1)b^oa8MrM4x7*K^C*5Kv=#w9r;@?jjp_vH8w>R`5RR zapVwOMS35Y1Hlil67y{uf{gqYF*yaQe1K8q-@0B?`h%Q-r3}px1ZK^10}{ZGWEyT5>4cU0qa{*o2=Fg&PEvQ#Kv)0eHei&1WND}msriX zeFktX*W1Ml4W<^SE%S;%*2P-gS_UdS7CFQK(Y!>o(e_y|=(2azL^Z&$%)25FY5f#s0%L`S+wuq4zlyo4}G;WqCjt zwU#J94HLdCUv+4l&(HK6>cSem?-T6Q`f?4tz7%sCos3QbMOu~Gpt=Fs2_og>fpX&7 zQDB0jZdZpjSki8v1HSPdJJ|9nL8PkVoBxDh&Rj&+yQ@IuQADU_kl1}-QOXOU7X;`d zs0mX-uW~3>K~Q_r)e&<7A-s0`h#^X=+!1pE>%PvY05cnazUOw`_Y@R#>tOlidW#{D z5z)Njg0fnI2x##I9MD77+D{44ZEkBwR{(v0z*;kOD3Q0e*ohKAL=x~1Sb>hdc&w@f z&38fz$69-kD6W%}1pH8Y@#EAH3K&055h5h<#b-x%lco zqZo2MZS-j&YnP`ADe@EQ^ ztC=MNfgtIBa>@(@OWG0R6kY=@=tsqWMlZ&S+vjYHJN)Ow9A2WTm|M-bgR*xsN=H^~%>|G0?}ThLKhXprGww;>~VCc@|-87e*?83ex|0%aZ{ zi@5*YO<)K{obnq0?!><=3cA`=6HV){V=ntXCZJG|&0Y$n=8*&Q9U6leyFtLxkl;8O z()%|6c$7rKA4l6B-xChV`wedG2C`q2)z>g{xe2pV5JS-}IqIq-h(`z>;eN6S31p&q zy2auH_;z(h6rkjEby*OUIRFJi3xFf5KD&JmxSgvUHjcn~2qN4F!NqNjWHZ9VQQ(y^ z>l3BKTxI|deHx4~yic%K@A`Z(d(5JE+YhW6`e`9x@>NDyY?!b>&V^Fj0A*TGL=`vM zI<+6cmQ9uCRAT^|*|*0*c7B?(d`}7-ky|yq&a(_;0hLfwNxgg(1VBGm^&isbG)yjBiMVVE6Z02K1nvf7cf?3)Bqeu0FjGHd31J*3=?Q#ZayIiAjFofsqwS)+3kmGb>kh zAJc<}?m1mv=JoCLH0(3|uL8{IGCv%r1fez>?cdapBU(sbVL1pOX*G@=YQ){W>WX)R zluua}{S#)IQTbESK(cFWOuPRc&bm`&THOr*A)kqW4gKjmAoyPsxx#K=qX!5Kb2b>d zJ)#2G#ecjhq^Dwg9wg+D(;IU0d%y-N`zySv*Q8aP07QAo^0={+lR&c5oJQS>XbFJB zx|36)#F?4BU>ay$bAmSxb^tVKdU#vF=~8=AI17Nl5L5S0aIfr3%N_L095+ZHf@Fn{ zHA{NVlOAwvQTTj`b3 ztE@2f0>$0Qd{BGPm~_BTNgIzGvI9D8GsIv3#DftY5SCiGlHZ%k2Q>j;AEGkNk=j>;h1 zJo;IoLuyHvEkW&7?KAN8DzwoCf!r-BAVZ{RevfN?xmreG30DxHlB@;6&d|;N)B+vz z>7=xoQK8CO!jhwn#U7Ma)b}8aduoblW|;b;T57;P_KuM!e~JK{zT$XWP#my9(*i5) zg&{|{sNgMhw@HEd;v}*5y^M&_2aF-oNT{Zr*;N7sfe&RFQmxl%qs93uO+l9ff&{CP zxOD8JLWegiFsVX9AzG@?YPWH)@8%%IoE#8>su4MtWA-K2lwcsi{akEw4y_rGa^wz+ zMo}9lAV<3b6!kd@+Xgh*Y+<@0v5k{(ZmwID7q5(b2p9kQQLj~w8MGFJI+x#ushh={ zO2KppJZ&~O`eBtH)={V^Z4V^S;UyXr5WKUxTZy0uwrCmd69fg*M8N$G=hpz?#7Cz5nnqr8ff5_%u*T8Ex$bHW z+yelG7XJ#1aCE3zR4n*Y5bzKHzL|whJIy*2Z>^MKO@A3)`I*Z^Amp zg*@Zf+=)?nhQSQ)^i-0|fMrkd`XV8D!UC;3AA>a3M;WO^0AFThn!*rsLfGI#q@62V zWfq>a+$0VBI0?2p^GNtpvabaBt)yxFlHSzQ0i3= znpPO;(Tj`58ahU5RWp}xqYwBq&sN)Oz3P0T!-sQ*A^#{t!M2akicHi&= zQobxawoWY$8_HLFp;QF&Pnv)sTr2!e%^pC^`YdR~v68E~JaEU+0IHH~?qh#BMo0!e zlTz@EB{UCAZVht9oam|)1qfBffc1$?@`?o=Vo%EUK7j=H@lCfT5xgj2=6ZQW4Q4D2 zlq8NsF5oLcfjNsK(Qf+-IGO-i$KOq?#{^};3%fFXBwyJ{&XL$ZUojD+&n)F!uTkug;-o!<(==rsZ>g(2m+Ua>V$p57V^b_2By!YPH0 zz8x`&f~zhe(6`rX0~#KUK#*rBT*h=7d-uuFnHAvBib0z1CAB`?jS-}wlhC=@z%kqp+6Q9 zS_;wy$I}7owEf$R%2vJ3g#gK?+FkaofQNw{xD3DpmYzA$N-+a?zayygr<-Pi5yiLA zT=v_#YDL}Ak6wTi0zk$hHd-mBNhPZ8Rx?Q70e!^#pGFUT+NmT@fL_q_Uq;J;dUWBxp3+9F%`bY99hgX()^k3OH!h#@+eTwX+-K%8ncCqZ%Zhp+L`rv(#oQ zdvmbwxK{Rm6ovcsmKoYSr^P05yYWpEpKl9jzCOHc-}7wWkZZ-bx!`_L{!|M=thGhD z*okD{nu!F+&`=R^o9&WKCAl2uI7yw1AHo=l3Q$B1{GN7or!oaDdj`miE@$x(K^=k*_ zQ~NqF`M6Ozd=;n}XO0`XX$jbO6l9AQo(Se4T*0XTujUY#m7z+``8XL(T5xD3Vzt>F zcsWWCR1{-FvEW=H>Rq)zZh4)=N__cK^+Q-}{uAJ|EDIln$Qsf1SEb!h>W(r7aNcgr zRgV2=HI1p>P-D%e9Fr&(ZD*J*v-O}V)tKmijR|^ zX<@0oeoI+u(x@dkp>Y%3Ly&duWW_!7qY`1jNlN3_a~ng+340DW zIUp5DUhcRN?5jeDr$w;wrzt0_>XQ}=p|{W^G@03gjZxrerEyf`AQ2?m%5}5QbK0s( zMQZGK{&KTeE8&=^xaF35tt;{rysD!PyCl~78EZ%Z9e#X({+5005xOnSi+7PAP~nUd zIIUcq`P^aLs8#{U9x-&U8Y?s7U^kBa?EJz{mvFx5{;>|FP~9`5y#pd`mL z11_5#*7oZC!*{vZOp6r2u@by5@&@h!9O}CvXV=rybc3nH(-s%4XBAHacGzFR{)68A za#KQ~uspNO8m00n4qZhO!Q*jzn(iZ zPKrt_nxv%HS1EEa==rcxObxLi=QmmHH>O-EOb;1jAdJ;Sik~)80A6ME@T^_y=8W%K zS;zqu{3SJ>6&x>+yWkncMhTAK2?_U3q=Vx%CB`ms6H54aerVyk05XVSYeO=7Ysb>54KzXRow&qHP&AAiRJy)j<;DSFK2Jb1D)4qxBWX{(K{eByq zd|EC(Qr%k~yU7v1Rs}*&uvXg;R;wqE6rtH?#YHc4l_w+1(fWV*3pbH=L?ERrk~hpL42t)DI0}IR_)+^&n5UieGR?j{|!!)2nCMso1GEcemmWkf!N?|kq(TcIxmEH627 z90}bQ$BD@CB!HS4fCP#Y8zibqc@v{hpXT$Wriuq&fYMH}D)^ ztyRyYp7t0pEkwG=CMX&cfN=;W!8okyiGnf=6avUXlhFuW63Rax^P`AUqkW&U0eo+{ zgvk_|SK!v3xWp*;a(l(IWV~mO->iRy@f?0ZT|U+pEx%Mqv#KU6*H@fH4XjpZVm{UXSju?fk>4o?#%P(`>RyTU zI^!GZ8s%LaOdFS1|B=VT#W~%rlpW{B4(l& z_EhfC6@*tHA<$yA2ejGStm*}-p1k`0&zdvRbFM$LepUFUQ#F;b1Y$jI#IvCcQjv23Sdb>0Jm~=I& zojKhxr!S5A59^75@9lFdj~K+iUkiD_IVXks2p7G?R78s?6|HSD)Z*QpV<7zC#B-Ks zbjoQ|WK-BiH-2NcYgVDBI^fL2KG}GjWG1W?+bY_@4Z`whjIRmvD4rJ)xEb(N!63>z zkMueOv2!l$;#9vC%5=cSqhzB=VFQ7DBl0E$aH99~qku+tK&m$Wm|dR?X=N;m#`i*! zBF5STi}1&qPeF&rpnqY>RA^x^wT~>i_319fsb~HDE0)h&5_VE01kuO6!n|LJ!1K$W zUIV`k_G-P=rrw33H`G|O(K@}1SYKr}z};7WGy$uxWeVmBdJH~Es(baS@M1E|?mh|R z_t(`Qd|m}Az5TyZ=_4-zL#TWB-4EDjgcRxIWPTUZ(Gv~ne_;405#7&NkIJY9FTaY< zg4o1nL7kXMzmaHd`1%_k?mqL{cqpFlwbm>oqJM#^cXxvGA5I!vw^;_c23-FUxt1;~Kb9>_H>qnqfFd}q%0 z=0}#JTJ?!BDIHni2&OMes7SD_LkVNudxzyH6>0x}TMXy2lbYVLYk?^rT?6)(njR&2navRU|s)UQH%;uPCklBBY7 zBs2ze@+S3(q{K})3a2PG>ryALrss#6g8MBI@WCMCMUy0I?b_q&zw5}<=g8DHUYaQK2wI{qWFmxg1JnUSH?Sh80yXXF1e(01a_Y1BJ9$egGD@$!l^=qkQOGZRK&Rn z!ALaMK;K$TH{aNhrJ7>%Wq49${_d`4f2-25@!y#wQlZQ_$7|p4!DJxcgSO)&ngfi% zRLv8;$1C18LAewk8ghq_v)oF}W4>>0Faz=fNoiAZ?#aC1bTa(Bm-ISm4%9IRb*cMO z^GQJpPh20rQXH-O2?YkvW#d3kf+YZiFBj%VK`!#>5T(acy$PdWU_kIng2K6Nj%y+4 zc2l(&xL$Daa+}NZR}sCNph7yRA31P6_n&KeGLOB|dYM3D*W+D`2w4FH1mN9CjWL$l z0&6UM;6Gg~9yt{@!*k>334y838neGktHM(|cbRB7&=|nMn;j=@xr?-M}$1McaV-&c9N_oJ3_o zWd0>^0DSRzS+eF5PcL$>=A0Z>6O!VsCn=UTp{(SXwuW9=Z2thDTih9*z)N&UBVjXRhQ3f+2 z!goQv(zbv(Dezm69WB_Kh+2Ixb-W0qU)}pSX--7E;3B*3p5l}9M5G4T^XeatPvusf z3wb%ENdS{<>>}vL`pgR;80zx_PAX1AK~=GO$USL9xaj44CYZPQwI$8hVwG9{V)Mjd z9`83Mt$RzzF}#91Yzupgx< zg4kT}qYSq>&)+4PyntUNB-0)F5*qa(7o;lmIkIOI1Np!l@tIVEmLenEV{pS`s%I3o zQEaZ+>3i-2;_&BtdwE1Mco*~$F2n%Svl$!Bf4nT2k9T^u5*i-SgL^aZI2W5aCw-k9 zH1l4V;_J#!$%sIsXFGl_P-J&Nx&Um7N!qx@f6KHb9Q0ZOf=!AxL9xtvps(fwm?9QW zfc=wtIVc40O-=O`s(L&*MFdc#8-p3v#{<%()SzC8D6Md8;B+wq7Zj0))@pN-Jvi+k zcQ^Go244uvfzS{^K#p$##)rSL1+LZw*`#F=0njwPLJ6$pe|0kgE7ndy&+;XEJ> zfj?jJoiQ1O6rgI1NY@QS?50XQkmkPve89-g?=BvswJmY9gXB+2k|g-6^1vwo(|2wp zk?BJ~V_}eKjO^@f?|f3|80ca+cEM;0f{#zXP@$LKRPRqsG`?3ACkgrtH2I{U&N?J- zZvpc5p9TU1K*&3gxxdqYJr*>@F2*$8AP(j@7xdQtF}ecWAL{Kj6xr>^8L)xsAW$OC zjk*^c31%s}>&@WgVjGO<5p00`VFMM2MU{>NUEiNnK_FM(FPy0{PA>Z*r#*3Et5-iM z=3C2c7j(JqCBSdH3KyI2d_vI23|z2%PiH%-l3f!x*hf>I3Jle;CU-C*qcY zGi!G6oA<~e>$W-aVjx^BSE|A6UT=}AZ}ar!)nH@G>AwRcP&4PwI%F4<9^z2a3y&9I z1y!@ubd1MpkUl8lklIDH%t3dnK!A|tva zUwjq*sR&SH9w#B}ZV9SDpoJx!fC*YvOA7rbw_Zbt7rmQwE}{n33SjWRfey(RI87p60_ewS)>7T*_w&4>msl&0hNM%o8&~l{5fZ%+=Lr{iPkA+!Z z(!NYIt^*p+ZgAs6!*D|0Kdp?$cQ@Td|L!$Ffte(8u^7Kqo}?ty1z2U(Ibe0Kw{*S; zSif2&vS!l~pOk;my5*3=7mUKI*1by)K_?2w%1KtQxNywaMX>^^UKA+LWK)g7sskRu zUBX>pt~Bo9#W<0Rg_JQYEVp!N-{pHQ3+KL__bfXQmphWb|kCyEUU z2q7P~=Tm&WSC7D< zN3ja$fr3Q3_+o^a5{fp*znkt>fflaGhImrO%Zn6~3qB48l-&zK*m0I8Ndhd6I>vj3 zl!S%Ciz&7RJvLiZlL~BL9fgJgfphQti>sFADaXvD4w=-5bT`9{Cj>{-1sKRE_BpbY zYsMztfLz|t_lEnERUB=25GZ&N5Z2F_Mq#RacA@%ORX}p7C7)x=@ZKpw01d8pa8BM2 z{|xjZ+ln?e-~t{mHT13o2CcN3{Zkwyt@6>U0Gy{c@;fhtDcXOjto1;vw^y4SWWKz3 zAwSKmP?gzldwpoR{8$#Il&@hl3wuG)Z|v?F6;Yu>oU!6Pc{Q1ghJt}Nt=;!)K;sjX z0B%W+p#JmI+Wad+=2!NCXJa-M@W55$f9_Tvo%>`7Q!%A5$4q5YQ2>4_HRTzp4HE92 z#(N8&lS){?0Rh;$m!sZf4(U_HO-|(x^$t^sxN>bzxRQ|HF0i;5_giw0XF zSJuxYbwrU@lICrK7fy~~V;5Zz#Eo}5upHgGq+~O`f&O0Uhe+5{Se@^Ul`R{~I(6!q zExU+i0e&67d`Y3`meTy2woQ3hod1}w`P%tOC2vTiKR?>& zch))1zkidX8%hw0yI8u&Z!ALt(Uvcnsrag{l%1b@tL4X$`U{~0jH^!qw|84NcRl^& z!q4)?C_sjSKf#0?y^Fv9pMj`=WBC8O11_b1*zg~i@gFYy7tj4Km;W`-|I3B{%enra zKKC!G|8I9kFdxs+N$mHft3fFS0Dme^G!;r8S-yGwLP!`aftL9nOQQku;A8UtltwFj z?K%%WWbtn`giVEP=^oOhC7BV4L5ggz4u4$Y`g=25TPHu$=*j4)%8luqgweM7?)LUa z<;oN<@*J=HMc)2_uws0}RB>haQbV&DA)4?;sjCq$9#YiSOWwl-d_1qwcSMRO^jtRMvld;~R_EJw+;FNc9XGjzDEeDoAMy z{Dfq26>D7cC4K;GK}-<$)JNFLQL#~_ptzDR{AFE~dz#E1O!%gx7*44H`* z7R1F+_R8IBuddFS7`J<+4%AQ^K>}-vxCHgrVI<8=f6pMMx-olvPioVz z$gg@a>@m2cVC-$L*0SDJ{sh?nykvqVT4Y}=D^mMKD+Q^_w~-lWKCVR z$FI9LUu^I%k}O^!xils7Fisw+nVR84+(Pt>=ozwxek3O%Z&=90BGHDVGIL{7rB%ov z=WCPf7lz3vcf2BglDvqvV*Dy9?bpC{Tm7e+kHV|(pcCSz$LJG@?$A4yW8EQ3cmxE> zhR}$8yy{58?)j~-YnZ?E=d*aEk3o_=Tk-e8)JZ}6M7>W7+nngiS0h^PBp)lcm}nH( z9+Mfb(%Bj@EqK%`jb6Rdpzaz;{q6wb5yDbeUMG&&XqE}5k7AXSxGHFubSP*)oUCN^ z>!s7UtvK;yi!)6oNws^i^!{sCEd&qp+9LVhzm^~X{+sC{%h`R$gld}U_pj^5XvlMF zh*ErLb_M%=qYwOdXJ5pJre`@_dQh%D%_L80Yb3UrNd>9BP1MkvdMc;OhfQQy7KSDK zjp+VOR;}Py>B?g7sgf~bHOf7rkTm?IuB12s(fzyD>A9(@Nu_IprFlgpXN!Z%{7x2i zdyU|ia^Z>hLXd_&TH%GA5m(g%QRB`B_g~Ig9&okXUrl6)O8T-{Y@z^FsNXYDZ77_O zT6j*sq%t0N(}>=d&6=h%O#HD0I}Js4>e1iUPL+|idm)Y}sxg~AA|wxzhFdxAGVQ3x z*bn|_R+!n%+cOkcxYLl=y6H=l-4{u|r)q4gFHzi3Yi&*{;SW^Yiq_gOwv@Ko zqqZMv9Y?cYd@|my>_a7rvAt05y3Nha5;Kmd4P$xYpmF_*LWD4J8{`9RoJvK7ymhhP zk<;#o4aeqa$(eccw|SQV*@e3CR(AbFzMaOkt@B;DmIwqm?Eho|0hGZWfp#S)s0G{x zv9h51BO1Iy3kp-P%m3ZY|H(7|HTC~tBmX&p|D%^O!ij4GAy075#%vuVc&GXggnPDI znMwn=OnQwj!Mu?5&J#J&gJv2=WhSt{Y=N~YKU?f3#XFbozOdKXinSV`^Us^S*Ex+l zu{RyU`A(MwJkeiRc~8fR9=Lo9-g37SOXrZNMU z;WwGVW^ZL>4`~vf!!%V~?eGmw!Jp4#`_uK6DOMTs>GVcO8S_p(@R&Z|FToP6nzw=V z!_B97W>|Wx5=JU&V{fMDT&7ihnC_9tcMgq9J3V8;TG^*ArPRu#(ZFDljiX=h%@(Cq zO~R*C;71~f-$=T?WFnnIvdz~&aS~Vam(;?2l;olEHcDq9pC9`~s=B_~In=uDOKsDY zI!Rh z!ZBt)kf==^p;-w`^iJkf9H)BrWocXDMt#>I_z`k<9x8XWScI+R`8*8^QBpi(IA}Y* z$LU~5;-tJ^OSh}+IwQTyp$r)9Uxj-f?u6^&+`-&tUy(`{Vgh zTn1O=p~ylH+}PD70WDX9(Yn=|wc|Y8cgx?s5ykZRP7*lzFfiR#+3F+Mu0i&48TE#* zepuDxBo3>%JhFbReQZ7r>z7NM5KCi&BaXDCxTj?(j`h>$R4a;(QV~f3DV1cFF?UmAe4~j2XJiFffCW06-*&lbVQ2;NaE7RPsoOFv^_`t#4 zcvHLNs*i5iL{9yS-p0!Yw%4*45AR=As3{~g!-87$FEg#y{{3YJ_zuG>fe5 z1Y~NTnO`0Q?*Dbr-+^1Pi>BKCpy|{j<{ubq(t7_IWbvn1Vh)BQ)uk%avnaA!^h1xp zv&C}#Z5g@UMNIB%h&tp@d_U!N^Ql0OQiN<_P2jJ5j_xEDTUsoNyPv>xRE=ab6{jmC z&Ibmoo)Rix_?w-}?cG5i(zluF?{_+9*PDpSlOXV)utgcItVb<>LQJxV28a~)!vj-z z7an5fBT>7uGj^CGO-QC|jbCyvgzy5fSuzuZ zM$FC6=O!~)zJrh;L!!dtKR2G1U1nOn`yr(U5_!!4lDWKgA}8HRP<5?*Dpww1hvbrA zJ{3Qq06W;XTQh~%Wm`D=LnmiFO2hY!Wp6JPnEkS(R^s?}oHQS}5@T^tCW)QXZIVF6 zAloV6oVD;gc~R@rO<2&VooO^6*mf2e^_wi{`l>t!r`HznbrVz`CO+vge%wh2{BTnh zuYoE3UU*VDi*fEH^q){UI4=xdzZzuZq?S#m&#p@U0TE^t^X(FU)& zeYH@pPzsBh;kuFwBqn0;cBTsiO;?l6clS|bR^)la$zChp=vrf!#5SR~fnujMi@E8O zHafEU2AU6X4bRJ`Z|oiBJ2S@;zZC_Fx2#&HaL}OIG0ea^F4$UDGeE3PBBRf7&|!1- zYC8)M?_IVdxUhHe>%`C128o4R<-;n- zXY5CE61C5+uMcLHlOl3jd-GUUTBSNgOawA^uYAyd#wgfJ-gc%d%_CO!#4RbB7-5v$ z8Pu3_Y8%#NyhWzIzJyfMmFDU+V<1xnjFS7|yZJr#T}pxV11zm9mhJZ)N8(^X{GEO( z;F4$C#1+{~%6(qCDhbcLrGhlnm4S~1EVz>4?gnx8=cp51Jr22 zuk1{c(BZZQ&rHD~)>k9mh_BsV{D)SjH$FpUf7cT)-xY({&GBiv4Sv^4-S`9+4ADD% zD7%d$_FG(<}xu-ESy)cVkd+6YM+>Z3WFSMY4=Fbv|Ne?hA${?PNjsYl% zxPTw=p}4KI9(>dwrfeO;y-nTWyLx^)zxMOCN6Sf^3bZ9Tk7!(qPZ^qtF0(+OqBFuf zWC<(mu>P7zUN*i#?YXq2@qB0L##`bB-hb;wIs;*1ebT&(v3vv61f@*(82H_ zxM$JA-CoSDOCHAyMU1$jOvwR;E+MC$zq1+LL^SeZoaAj}OTCzrM+f=$tD> z(Eiv?I*wRkWk7WoS0wRsKvCx8fz4=n{t(_J`-erz%^>G6$}IlvD17?NCd3jp{X2J5 zZdyWLmn1LG$6&P4=bPvg(1sL1ou_x(yRxTDtSf^b_tPb>)^oQtPkH-nq)*o6b*%KT zoH(lCe5ev%|C!~7aLJz}77;TS)i8HAYs*~{TBF*ai9Ga93h&47eaG_T@*nTw<>*uD zT8s|G;V%ZwjgI2z;4w?MS;1;0tYjcJ7qe}YQIP^+i>@_!DSy(ftx$oJ;TfG#$%5~j zG{{|XVQUP$tD|X&kl=w2XW6GYxI<{oJ}sdG-QX_i8@S!L(~snHA9Z9hRPA8=m$c_Q|HUyU;aI*S9u{H zIz6`Wxe)pLsWV3A@e@vlD(=Mu-KG&gfLwlJ?L6vtR&d&Fz_fXN2pbr{*SVS1LUTjW z;Q8k1#=%nCvB8c&A4R~^7c-;-d}Ea8o> zk|f-V)G3i9z$5%NN3Xf9$&H!xm7()~XgZeGXl5F39T(&HdwZ+;%FBKaJ2*)#IF#Fg z)eIcwTm7csT%GocijB_&;5flfd-U!a>a$~j>bZiJCenU-9_2UN8i7qjT|*1~aHqa> zwlCJBlzVCrR%9Xt7bFoJLgUHS$h^GKc+)MveCl0a>(RBtP!ielPATm<@xAxY=r2jV z51REd&;`13>f8JPT_7e^U6f{ZVWl5l+ts>!+!r9e!b+2oCIw&7ob)r<`iYB_zSSxs z65cdaepnLRxF#lQGV@M|M9?)U;OHCPDQxXT+TU5g7P~o{X=WYF;ox3v+RS00wtq}V z6X|DSIk?=W5JN02&GR@Rkpk>tK@K4!0-H)$-?(n>?~E>ina3_=b)WAc@<`HYkAfea zMM;QcMJ15xpO6If>mi6Oha<5i=F@N$R}ZZ^Tn$)yPN(U1=k|+QIY>AwMr^DyP`8Pz z)A+@FO-qfy*zd3?JB>7>2M!dLH&qE`zt`X=6^9D}t0={?g%5sT7i2W|LfGc-X*WOi zeiF#|^F&7)hT0506XP0GCy~BQz*y;m+ChvCR!$6MiqG{oz&dlF&=IMC*_d5oQ);1-=fF=ZPvvfg<6*t@pJi!>sLIq!=!WqhV&3H#F*qJsPR$N_(!P{s!AHp*J@b41t(lFC_aBZ zeo0ztAz6Gb>qtq%^ejvI9IN3?k_a`5__1+RLIlT-V&HO7((@x7!nf6j4`=)j8c)yJ z^%qG?h~Ahx3l>4I6qWDoeuT*mb$o_F-DViZtUl z^$kli?&n5ut3&v@zWruA$wz1OUH;t((;UNe{4iMC>D^uLEUAKGwIgJN>V7lS76E)` z>!8|d@eym=KkSUPXNkAdbM>=ds1RmVcM3IXu3}U)E4dpenfW@TD61dqzF^#9{91KWu8skjqf_N8GXB3Br^HqqCCVq88ff+0eXb>%(1u6=nQ_Gq2;tJ zNeO6Fk!7Jg`=! zBmU*wnNtk)Vs%5Lb-aL@ELKjEqr>>Xm!L642=^5lYLj}=6^+>cKM#Dn{kG3qru`I!25c60l4&jfM3Jh$shmw|fsultuJxQz_|H85O9go9> z`*dTkt>oB_ZphVQAJTbh%6l3OGU{yUt~0DYFN%Dzq zybat9)smgSTdm6)YjTFR^p?>x4k6Fz5tBohs+faRA390racQ!FkJx9fU1yKz0v%jD zg9jUx<_WYik{OeByd$2-eR=0u>~cOM5MRIB%1n+k4-;p_JU;v*`N#esL+jol%b(nm z`FovYCXN!k!0~yM#QNInl7ZDH!3Q%qlng;TOoVcldGQ%w55)iF@^$@sh8M3{B_447 zNP4K~&*`pd-#3u^Xn@40qOFtyNhE=Wx6)Ze_;os{WD&f)a3j7s#lvz60^X$86TC@_ z?^UN2d5Ou~>~tgrTdQE(yqTUMMHp5jXfSWBG@vcA(4p(g{Rq*9%RU(88EqYU%Z%B0 zQ*@K3nUc_Rlh}6XV%gp4!G4VUE})NK?3w1~;^rTT74iqhkzJDuC_ zn%9w$m#Lfv93L0N{bBr6y{`=X+&L?YjFxUFcc?J#+M9sM+6{3CzOviPYKUN>824+kpp#d8=#Dc&Y1Cosdn!1w8kxI=D;n3gWJ;@N>_7>no`|?d~gjX^na|>#1#r-IexC5RX`Y);~KUTVGc915)4FOjnaE~ zDc;U&6xinbG^ZRn^-niAK6Gl4%qGr6>PYtFYRKKIJ7OThk~r*3JrGHFr}_X>=KGN# z+R19&gd}2;ZW5}y!9~SRS~5p%gCgLdRxjVJGn3#o@up#C6nx8&imj2*lNGV-YW&Wp zb}v5(3Lmnlwt$ym@YihDB-VY7&Gm)(!~9e`h7ypG*CX%+`D$w^k}W?JcGN2o!2~;fF#JM}aJs zg=;j29Xi(yk-OiR&n>LVJXcWqto z8ZM(y{aME!%Xy9}cxA^%$WGoqlI>d4eKs*YeW{#wdw{b}CPUyQ;P!}vOh;E{me8sj zc8wB)W27s;LiVAbU%n+XT6XWptoR{H8d1O=PblhSmz(L)Zx)AgJ%t!9dE}-gY&w6 z>tvTZK)vgeH}!Ig@!c3fz8LF-2$u}Hzc;JAV0l?S)*q}l#3q1_Js5@zVPYU^OrNL} zvF|l#5qA!NOi@_m)+r9Y@-v_2k2cs1|GxoGoMOH$Zvv6Mfj`OxHUX>{$=)>>^_B~C z@MSJzUOf*S&I=&zE-UA{nR>W}Dh+5@xLEGodPI`hJ765=~6A9TOLf0 z4=@gv?hGfBCVl}FTup(f^}Wl8j`5v$J+Xw~#9}iQceZ)z2d2MRgvgOl_cgBK1JIjs zt)34c=FV|!=C9Lu`isBfD=}x-48%n{w5sv=O^W}Smp#4UkT_~?X8+yqkk7JKG2ne( zf}yG2IDI+M;(-fJ;L0^`zP%NaEn=gI>HY`NK&ba7XjXqBue@`SsLibAQ@Y zMtH7ApM_~d?i4}G;bCS{=C6wSXIl)QfVw5r#nCD2yR=M${mxxIfI_{j`(X zloD``1AuFjvUAfWmmX}{%2nhp>vqy2NN5r3>r0Vd@0;78@|MuMv8Q@btOW(a?iYJc*uA%hxmr_oO%llg#cy!t3!Q_B6d3 ztx%5MTpjlq4BYY!nTfb({dZ}mjk~Mr5QVFCfWa~96gOQ=46MsT1!wj>RsAEXo52nQ z<-911Ovv5QbPXp45*LXV<7W*#eG5Iy()GYoI{`gYspFkf2BckhpV>6C<(s*&KPBB7 z3+3MSJ@v$yfK-l;3nb}Cahp=GO^iXiAi!lu1T^%1G6Vj(Ml<^Zl`ThUNl<{>F?0Bk z$J+x}RooY-Xhfv_oz)^3?Y0MFw+2b zMp^(i7dT{0l^$_t^E#q5DqS3ePO>q{INwe$Ze;B)(fui~ZMS%vxp$ zVY>t8UgAZvj;OiiXqW&>9x8eS)PWD2xS>*Dnm6!01@br|U7T)@83e1)BaDU$_XYKU zb~@zWCOx8U$}2IZvKFRD8$l9nOX%PV1+ssdF_XxPKOf2o`QWzd{=Mmv3wZWOCQ;U! z45bmV?Pd9|^oUZK*gp8Kd0=7;^xNiGceCXD_;D`iLwSPme&T)NNqrm4l)r{}7&-vd z7tw4xTJQp!S&dw2t6bBjP{4x|GTFFHj{G@mlMm1x$j>v+32fXqK1v1QZ^YDktBTWw z>wB^LX}rKny<8`aBv>Yj^ExT)-qR`8Rf6y;5&Yli;#wrFlsI4h0kYH$s>F|0)KXAG zf9U!WB|jAy&Xs)`q|e$C(= zP}E`JfHq45aRQW(VDjYjS*|(_vu(row*r57fKz4o?RzO=z|AtOLxTvoHd@P`K9gJ8 zSgPf?sW-4w&?5HTAK%8AFkQI2mCauI2jH%wk$@48SjPwzL+j*a`)CI#gRNAk>i=$-Wk?(T(||sP zB6k&Odc=ofOd&;&*;@>dnut*Fg;`+bkb~#1SizISDEgy_qN;&g5)H!yMZnoQn8DQdzKSCs&6*mDNmmM;r4&8%nq zPBfyIfnqBu58EzpuFIy4jHO#MODI{->l!wMBf5p1Q%Qsdrgu9}6|A?mC6%5$^G$;- zgFx`wVfCvbDUTwTKl0txay7n@G@tax$dc1w`*cAh>r?lhb%QgwPsb8`%kKPjm*&nu zih?L%gYt9c)!H?ocZXbthZR~|rg=jzy%M@sM>4)kUe>;cG>%#F7y*lw9J1!EiP_e6 ztPqku%RUG7|0PDKdCb!Bqn1XScXNPz@hOU6Lq8lfn|}6oKCN`Ri$XrGU_NQ7FcSVp zgL&t4{TTKP%vHTVyeuVqK3RQkxFY*J6FQhdcA7zX2Xmj&wSR~oa(6uy%D_pZgnjdR z4LG!6Lp~XrOMxiGB-wH81hLJB5h>Wza_&x;oG+|sR=qxx8|%UlTDSrC68#KuPh7aO z`LAZ(R7V!TC>YW;)zG(bfXE7j48{dEo7I%jBT()OX-iA%LCi(I5V)vKbyXpN6yBCj z{tarlyEk4>7Sj{y{R8K6NT-&@%PO~`wH z!`K)6kdXMwK#3g0aZdC3Zc3mTFnL0pX$--Be8i4e{fgg~l^aA>UQRTB`pee$!SL|_ z=w+_sDxqOKxN_eZ%iKUA2%^OK9ySUm%*2XNFrC+t!8vx$VmD%oj|t9@hRSkYBnZ_< za5?Z;=ufVax6tQCzd8m3au+IY z0fX@lqU)@@1T|pV0-x|Lb(3?(_-yJ{95uq|uTVqB?E6?94F?M{0v9=gn3KZd%E1}T zi#m@8S}~W0-%g#0{=yg(N-R&G>Gp6lzvnq*!T!iNh*!*cu7Uyhu>Al{pl`UGbT6}v zsWwuz6}jGernJa^wENXh9uMmrcoL}TLB3Loaz7XB9D+GHu(48=4-PHSXzZ`h`BzVW zSwEd3=%?WK>Essd(E7lss}0;K*t!Wt5)@L#G)e9J%Tej|Na$MOheDv&5R%V+T9*5u zJi1uiB*9DiRwtR2J2Mp+tbMHS*kKHtw?Mv=6VkcdEYW%ETWMG!0IC_b8<9U(7sW8iqH6~rF@ z*50rn;jFD;+S?{Ed@vtxWuXg^FM3q(?8K_dcB6G}Nsb(O+)F<>X`Yi%|8IBQUY<{mboQTYmXWnYO zON$hrDD;~jISGfivmmxj$jU87O`#_+2hCy(AFB?|Bdn;H46(l1L~w<*L|Zw2-JU(k zn#X#lVBqwK?I~I#8NszDzSda}@zP_I@E`}-t&S?-Jo#kdRvpCNJw@=2i{weuZ2SzC z2Qs-s;_lpcYh_qfX`})2;I>%CCsDntZ`Re`i5xV-m7OSaDO0=WqGw!83AGidw0(U9 zA!X@T{=o2po>BYgCun4EM0+PD$JG!}7|J1_*a*#Z0#0TKhIbM8JU7qfl6Uu3Ye_9h zVzN*VC1IV6lw}@z18wd)O+2V~4_O1xuW<2Wi{`g&@_bHyomqTS%BwFPi+@33*+>&z z&u8=H>EfdXFNwW07<&rq2WAU7I`M;r#D#rt2I=jI>Y=qwoIVhbvg@_W*@`QncGtG8 zM4vZ_EV6o$%Ddjh)BL`RKY?wXQaz}Ael$dlYy9s}dyH;??aQy6gAx6N#|`L=d$|6nRdfriZm3`6Da5Gu zp1Xg}sp_b>O&@)_f+$yq9i6M9{eHA6pzbwAXg64s(>+}*whM9AaMcTwO2w2xuk`pd zy*xrR*Yb3!^;h#kGCueT4RNm#BY(^vHmC&|o(*E^W)>$_Yo{VWd-JZFi>BwVA0K64 z5#s1ji{8sUY5nAgk7}buB|%_Z|4nOzOg*acwZA|V_Q$y3MfX2SL3zt|hIU;v?7fkU zCX647_mz1?A$4hnw{#_{zJ~EEK(^&y)c|BuMPwhj`KwPTj>OC6%chyhlX_B4(!}QODou%>J zA8MB>w!+VO%T)FgO1#~2m1Zi725{YUg!>0l4@oRL8Ht0qJD2@x4TDNW4_Y}pC162J zrPtmYt!@UKe8B!_6fuoM6r^jknI|vpGvHMKE9mhYdx|q<>dug!{NI7;Ptt{~!~>Ci z;x6y(fFC-gV|Gs5GOaaNyuaIQ_i@%qbggX|x)X8%gFxOzDGZkkm)s{^8CA|ax5w4a zVT=laIeRO)#GLV!e=VA|1T^;Xbc9mT1-bPp=vHAf=A3RY(kD;c*~i>%9Z$v%Vp5=q`2`5)HMnezjV?s!mFi*} zEIq}ll`ccgRSWN3>6HkVAMbTF%)>Sdb!I3w_xaRz**M*I+^|20SIU9w0@s@FE-umW zoY-18IlM?fYQTc-q6&hCd^HBW97=C0vTqx*5x%pR9z^-}vo+jCi5eK3s{vNS-Xzk} zoe6HMvJ>cncrV(+`6lm^pPxraZukX7!dJe+=A)Ou=ulb<_08OaV7VyueP@I76zB(P zbrQY1f1FkJJ;;$!TI+>D;!1fw&+(0RdC2$U>q?4R95eH%xk(A0pSxjx!86aa*05`8 zK#(Y^uyDAQIP)6Kwnr&&Jym34DxC)sGM+|0=9#1Q0ox0L1WxUWen@a#%_MVlI-A_8 zLbu>iYnn2%GaNJd*V7Z0PCnr@ARexxjsEN#?BgRPQWX&$A-s$^ry)3Zj~jHcwQ9K= zr&?FG4(lg$HT107kiI`xuje@f{HEGdR6TBbb6w{>~CB{2d;{hN%sIQ>!dWN2M3!~=&; zz!#xu@OhtGVTj>=vQxcL_n<1xpEIjpIr^$FV1)VF(W8PHtId(&UP@t@(y`caPdK)4 zY*VR5vCf^;tfJ%zoN?tz`|+6?5N1kKZqXvJ2!ul!<1SH|WMv;cwU7#Mny0<*_aW>h zVl27EE|vDEW^zol*}rR*H}hT~7%g1*QulEF)u907!y_78zClfpSf@!i^hL$U9WX>5 zhtd8@sryWP^+dYbC)(PmSDeY+MPGkhP6pNCA8ElEZ2jj6d@PAGD#C9fmZ<$U@Pr34 z26;%hVmj}t!Dn}7>0dPZlP+T*E;uUt6f1qJreXYZVfm!{-Q3jzKDOkg0^e+ll1=0P zJ?vjNt{R}dCIDGiqur~dgR`5aCk-qqUCt7xn$M^+HIH2m%NO8e@m|Hc+#Z~wF$sUF zl<|=)2lQGWN#(6y@u=#9s0-!KJO@WP}D=WX_63X(q!Pl#L zHgSR?K$eGeOs}n(^4Sks^lcK_w{Fw*ZOWB03-9zA{|@6-eBZ)V!7y=`@<%yEhGN>8 z=Jhg@eZmYi_A_wkX@fk|k-mj;J7#H3X452n|KdvlYS+16Kez{7+iR~o%W^ckY*h=R zR%{Xf*!Hs4I^?s0lWCf24TBAVPAU6=7)n$Ugi|1eZegcB9|6*W8m1?Bx`FB?3+Uh) zuYA?fit87IwXujG2t7YOmw?rab%}p#sXfhYV!@Q+0tW-fq-sn@8=c2j9^CfED*f#b z%42Gk47AmR8%q+@UZCS`v*6_Nhra%cP7Tijn{HbgYcZvmDukGeDtoV?koSDg{;=J0 zwZNx?02$k!;ld^<`-4kCj`%f{L36XB)$Z)RVHVDeG0~1S(zu~4@L764pKP23eGEWlFQ4e3ueFYQQnMRvn7; zx($iyLBA5I&4vu6je%$3!P8oa5o8b8_UfD5ydpsO<}ZWRvSe^slrO6wz1_&SRaJn& z&w==;x@ik2a`-l66Wzv~u*&E#UXdiP-tW~rHBJuC`zxjf4#|@I3t}U{Zu~U{x5X?z z1-a&tIj-)MqG_MDmxqq}E%z?csp(~3f$`YNLw|)pwW& zuHkP3e2-}bcwQZ^(hVpVeIRrX2H`Z=Szo+{ru0GF2Fr%_6XKsoHT z=^DocL{6d9*z>H34xVC_HyI#ECch=0vyaa=#I(Arr-TqA$WQt64%B?r!_d0d;|bE* zmjSD@!tlQ1WfUKwO7~d|LE5Im!iY#-eOjzdL&CI`TYy?xptW3A)f4IU37h9O<7)1t zR{GnqhdZs60vJky1%nYBMwpj#8t=M483T)g-ey?Pt5Zx3aYPYzBB7e%jg1^HIX13rb+Y!MCq`!kVsyHgR`Sev^Hz z_uGO5(Vj~T3N?$o2PUGxCoEbHF43u`8=!e{>!1?%uzwu{6gy&eIcEHZ^ocU%wjZ7i zr-L<7=JC#TPAvKdhLFrXJ7mREfhz&e92(XbKYTkmGUSf{ffHkj=e)pS8OvT8opY35 zOIac5)^Io8@#?!fg|l+M9D{1w32`vtU+67_JcytOznKy zhgWS*#b@9}MD6LHmoh$Khw4W@Q6z`FNl#qze9D2p+E0zR^V}2e={iuP8z3yUz-{*q zWE!siuUy;--XNT~HD&23j6GEfK12FdiVf}#T`z&*)katFaCcGFj}- zpCHqN%ich#y}Jz^jEICk4wKW^Po>LXgPpK~#|K%agcI+o?0=-&)vB-`O`z(lriDx}zQVvUZmQ7VSd@A%O8PalP(TlYr>}PGy0UfjfyxBD?F~Sm`!(q0S>FVW%x0f z9bt5^9iY)=(YFuh?99liSMQ1>!F1#=Pb)Aed(5RB6>kdzUtSILV;XK%=9NMUv z&h_9;ukN#N+UC#s{>T2b>D#ah=)G8PmRr47!2g;(;%Ma`iOUbe^SlZRyZoQezklVWGGoKf`9}}hoIJ2@ zr&WNi+@F~-vNz11+3V&S2yIwAw^sP`+@i{Axu^e&uXO)h75MM&=aOH}s=$!j@HQpk zjz;GB75Qp5n!t+H>CpV1pZ>CQWPkp*{_w|mSqpGdc20WIzso;?=f^PZ)BY5==lYTz z#>c|9m;CZzNMN6L`CDGo#kP{=BJFN_J2qHN`_Uod?pFKmfZoQpi^JNL-yg1-%KYAY zyVaLM<)0Ei_iZl?`MNjo{ptTvUD=E6>b6H6`TkYp`}xfmw(fl;4|I+X=fRrKE3$+B zxcIU4o#;I17`R^5Lg7_rtEsg`RLqLQiK(~O%dUKt)3Yn4-up`N_xq=0|8BM1H~YW2 z;dzeu_I?%ywS-d&+cx&D(t7=FTGIbHJSH3K_npXCFH^m|qTtGQnRSIL14}*%&F%ep zZIAqti20BDWUjVaZGU!dU+1gyfi~C*pde~^R!qGzujSys#gBX`sr7; z>gP)mbG3ox`^~S%H$J-lI4|Sqv5EHgr&|BDE?!ypm}zcx&(0@V2AeL$rvn|rRr$SZ~qO< z0BX!51#J1xe)7;hkww?$KVSd?q&=6wNS5XcNZV%dd;x1iv5lKNh1V|P5R3Z35GQxQ?Lw5Gykpa~Tah;_SGpLqZp#v7n&h;> zz-%Qe^Tjp)PuM?9xnsK9P_2nsUi$jX;(wOL#n0AAzb-0P{<5{0Pnd-f5Bgq_>{GnR5b*Eo1Vk1uUNy=+x|CcU93~GCREDmdXvb&kAxy-}DvO z%MPsVKby~bqHlM?J?o!t+K{$AzSaQN(^Yk%BU*fYFV>|a#L^8Mhf z4W>tJ7uNpdvS8(|0iI-#?xLPkcd>T81n1Rr2Num|*sI6+L80uo%3-;qJ2jP*{hF*~ zlWi8wx69pV9V#t;j=Lmp>jRr(hGMxQKlIMU1bxqxu2$6K5#cRdYjS&oYHdW_%z(5V zUM(eeb*_dp)tLAmeVY|#op%_xr{KST!*w_NxCqA3kGuEtI@uha_HwbFL%B}p|D`|H z{B>|R3)Eg=6!@aAa@lE#^;dYTcj@Y_cbCqb*!B6+a@{KyXD(VMs%T$Yb^DO5Lhg}_ z-9GX2bY!+leElT2rfBVzqlQf9Rz_U!jw0kzOdb`{CSbfVBdwTBut>Z7(Z{xp|yOLk6{Pt6nRG4FI1ms)%XF!JUQF#9u zF!?zax!J(Yz#Jg6hy#qwEKtDAh^Yg3j|>t(9 z>puU7gU{=Lhv@(Xp#aG0fy+S|JqQIrlh*wI_5c5+Rf`q_!J<`{{sXydfVM*PvjBB} z`@i25W*h^9>3*O<4+GFqK)}pk22?&Bs2u7+koTqoh0K6bVEJ|b|L+I77{q}9Aano! z|Lef=j11yHmzyF>gVdV-|NmJGRJ>~Jb55NBig%9v>A-v%W3^}~<1C+-f zzrdiwn?68Mhc|tJQYyam2~Mf_(l;c3h~v&5z?etPQK&pf!hj`T78Y#z6FKo9vjI~C B$)*4R diff --git a/desktop/src-tauri/icons/icon.ico b/desktop/src-tauri/icons/icon.ico index 78c4c7833545da805e10394696bd5732dfdba926..bc81c0166ab6bf4738469c6302e8f39472b65f2b 100644 GIT binary patch literal 8289 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 literal 11591 zcmch62UJsCyXMJBA@mw)0udC1ph2Y*AjpTJR0Rb!LKGF18c+yQlBg&IQL%xFfCa%q z5DNrBa!|m68mu5Fgdjyh6F?w9NapbU|J<2-*UbF0?wvJRS!bPnTK3udd7rWa00;mB z;PC+b!2{co0I&z%)6n=w`z8Vap25fT^#0K<0|8(k8USo;{?Yb;_cgEpKqmjAy;T7K zHmJ_;&wubhA$;E*9RSD<^k1v0WS|5eR9)x&*T%n3!WUpM@LuAfLw^7Oxp>`Q9>H|P zF9=z(c*}*BQF-$3+!wFQ5_}>!F=Mmr5o2?)_}w%-~Ua7-Dfqnv<9&olQfFM=6@*vFNP9#Smq* z59&ggwb7b;5COnuCfy%109|M03)q@N%wnLsh=3{}Xz*`=+TwobIl_mEklKs0q2keN zDQJNYs~vLz0wqd!O_rQ(q$@(sT_&9;0OzTVhAYH zSxQD~@HaCt(#2wX%4iof9PfoT53|J;aD_F@_5pS=*u7x>nh>l_{4%i)HHQ$UDOptl zYRjE*12poK$$5ELuq<`Mw8*O; zy-H4dJ-)WzDVNk$NO;Y=QoHl*gIxGh!fRZzIQrB8`+LvwTH!lVml0(LQ^5Yt<{{L$ z!Xan8B|<+8r~ET!VnUK;1_F&4YC20EH43b;n`cqtQ9_I)gafD^s#x!BH%7C zTB!1xwH8Ti#F@1r+!6Jz@L-4Fi$Z{xxNxtuWL>egsb(&XCOcF^Kl0-8DJp4KF8tqGE>5`7+ZSTEj)jC zqkN41P7zD4kH=`)$X7Noh%(LhF}Kv4OrzGrWdp49^8bsontJ$uQC#!otMPYnnT*SK z001K9KVMwpLJ$j)7-$VDr(`S|y_Z5m#=G)=#0r*kV8oSEHZUv+>}F+r!cYT)ntT$co-T+s4En`8lSQeSVD0?rTRI* zARZ|`1PuZK=mlhiRUiwrW|o1)$a>>=WZPi^XOPVsU?cWIC|@!X!;wUBxW*-8g@*}E z<60po{+j-t_VX0nt>#&k!qA9NgaZDW3)RxSaM;#}xB5P&d7`Z7T* zhps5-rHsCzyklbYY^V?ufmGc)-yV$@Ea95M^-kgAB3WHr)9L&rAzv|t{p{h|)#oD# z@D1O?iL4e}CZU`}9F4Om(mpSz1Q+E`*R0}azj|N?Pp-I9mkgI04n^f~FB9GZH8AfH zl{s9r<1-jTnMiMr#6@698Eu4d4q`R%WF~+>FP(3X>Ig(!Q{|9gD!2eL1S$cNk;Dh8 zr(z7mMUZZMb3VXR2*x+#z}Gkis($4>CB1=S;Q9x-XbDx|$rYYrh4d;R7VsC4!RO3y zOxVRp7iC*AWk(4RNw0Rtbn9_ZsM9djtqNo=5gS2TbZop<2dbL6jH=uL+Sdv#p?pB3 ze3u0-{wEFL;E_61A}%zDcMvB-O*q72{xP}?r9%~Z1+g#%u%h*%Q1~Kuq+-F~DF&(# zVyD%Ay(s+`FrC+Wo4;Wi0!|+X05tZ$08^gfdHJ_;sR%CEwXk6Kw2;Ap9?WQ55P;B@ zudt$)j8=N~hg$%MTtX5vA04K}MR$Nr%8>$qt18(hAhKLJOPQ?iUY`A4A*}3q=C%>| zu~tcE3(*;x5{!V)y#|Zk%BGx~pmw~f_z~nX8m+jPDm#cmX^^^30VaxH6@sb4OiyX6 zl?|d&UFsOG;*CcjFiLpYK^0pVjsVC-)w_y^$*{oMG%1I$6zLX%)0W`q&@^G=@72 zYl=nFcnB>2He!ER*6>VEfhyBo$X4^lPq!=LnR$dTw8W08?OlQ}5}QFTNc7(MJFLh^ zcz}Z7*Aucs&@yZR0!fvnqy9h!beurF_9^_bf7=8gH`0tACSC_pe!X)8l)@wLKd+|}?y6Sb&R1-eo^W-l30q(%bwGJ$auA0`VV>C>@oOt27b ztTuvxL672Fa)rBDtKbP{i!cUlhynK^mfBtjt|}JlEkJC=H9pWJS1nLdJQ* z89C`Cj`s?O_U6#naWwdA#L{n1aTwGHGGLJX-8~?o`2#DR4D0fOBHhOEn&w1jP;I(0 z5xa1-u$mqgT;x7l_?qE5Uf48#ZR~&GjNxDip(e%&CB41UVLV(jD7-8NHs!Jyjei4^)GUc^ zGOSqboA@sXlnkFI|4pE`_tClmKw;5;fk5Rjf%cS3xd zKMk&}*NlZtj6wh`knlILP-htKO}uabGzd8Wzi}nD-Z6gFJ!G)#pgC2YYa~e(1h9Ch zHGh+8&&gN30JQnM-p;XVK;tIH$w@G$QtXkra2_~S zdkqkN$yg|{6|95t_L8S246lUUksDe9!eoj;X-EgX@hlK)Bi;w;(!3A`MCT@+KiV7) zMYiH&log2cgXhQznUb0nAuvOiDV9@4??Bs-K5%v+8Z_l_098kX6d~55qO9;mF(6FS z5&C<{{a;jk$qKM>uoIXDGF#wTy{3p~p~bpT1QRioQjO6m`c=v5LCTD|x_XlKAFL>r zu0j}+zOSePkr`>oG^Ufp36K_y>Rt_^0RoeOrh8I>L+}q+g`_#avJpONGQ6943e|m? zU=G_}WE*Vf>oxIEeY}orH|%bLnChrCC4*ngOF)J~y&^2_u1uy93O^q}{!StPeFLJX zf>=Q$vltzQ;~E#hxd%J}nXwQO*Ann0?C^Wx>dS+)0R*NArya;LQRrq7objv{#$6C) zlhAw$5vT4;?pH#BDkKBCmIirDs#zZ|WD^0DFO$0yv=aA0E^ruJQ!;8&i7*SS6&f*3 z6yUIw$%JzqnzCqK!(f9!L`auW$*>~=;oNryHZv`ZT+kM#G{F)kMu%gA7c61%kf1lr ztjY^0qcX}ndi7JBs2L6=()NAie)g1*{So}6Fa6^;HQb5e> zz&sZ>;VNI?U~1A3w?p9w&_JGUfEQFUc^K5<5L*u23)X`iL1rqgC@7&>1QQi6yqDe6 z$Nuj0#1RhpgM12YRY=z0pD8JSd}>}*-cWWF>CPXodX}ga^7R>RfLB~AG=?9u?>ON# ztPs+R1S@{e3pvS*AKtGtUjIMWlpGd|xL_IM`q+OcH%$^l$j%7-!oYP_EQ|=6>cB}?!!wQ zLy?5kI8AxS6`IwWN<`X}(LA_eia_uI*%`u_K`*gXzZ}9!Rp2lj%%R5#b~820rR{eh zEc~=?%7$9gT45x7Xg+c3S~F2$pky1wB8S;UF z4jU2TVO?w1Jc#<>#RGzp4FX1%UWjeUSaBtsn=@4Cid0Z3#Fq)9P^PvNhU=m*E}%tU zEJl&%r4$t`c+N@|z|I8*>>U7cf-)Kbbs@C_VK)N60kH_Syd;KBm?IMBsH_6VMD0MX zDN~V76Z~SjV}7Glu;pX`{P!gWfJ?~$M#~$1$8dC*LIG^kU}43ugU9Snv$;fbJDNbG$hLLy+p47rc#J2}r#djb>SheTn19ci+pivgAfPg=wZAc~l zWIH56Fx0;yPe_Lkz{?Fe$Vx=LE&ns~=>t`=I?O^&R7KS3`uHr}?FfT-P=bVS#Rik- z9U@u!eC51v)GuJF!JM-n@`6Q|p)U+C1GVn~83uGu4&2|w_4wM=(yjsmh%Nen3g$>Q z2`X4i0$JI*s+o){C?y-9M;#sv5N*@OUCsQD6!TBUf!96S;BYcevafU-znQ#eGn@~hQ^1^r^VmkBWYw{tM16N zCytXDEt3w_9UZJoSNv{G7|f`QBo}Qk)SG?U;U7_#oBk+2vfWchgLyOW&KvvN#1+-A zJCx>r#N4Vna>6Kj1i&2$%jrJFFt#5`)}MXdG1yXVm}+s)VPeoCahI~09T_;IG~@B3 z=hxnh!&M)0uf&Y}715e&)Brgh=t>_ki}=tIwyOF|hjL4I+g*?K6NDxJQEoTXy6=h6 zmv%juaHM?5X=C3t+f92T5bl7t@OyNN~9^-Viod<+|ci*~hU65I_D!{|B;% z(;OZ-Qr2?P3MV>5s@s)s@NB1Ww&nNAq*Gj1Y=80zK#XnDJ(ad~U%Q~vZgN$`+LfI( zrUVJp5z~^fB$jx%n4_u*G%yN&hwm8)Z>nh5mi*EN>v)1a5$Y?Jk%6bdV%vxsLzm-_ z=%@xMW&{&KOiJI{b~ct>#OSsECeN&rYt%e+DCj?}WGlZiXa#z{5z97wogDTPzP0*O zSD?7dNQdMu+7>y|{!=AG)?>EWxzVN^*|D$jRBnYypV|A&Wfj|ZSe0w_EQ;OsBVm*L zgh2Ft#drM)mc=KFv>owmm69u&4d+{oKNer7u2X+}MO9+?baMnFawK58rN)5KmhK0Q zjPu;|KEkHy#KR^Z6%r=0&p*x{vYNQ~SzY7Fg^=kv%G=*cbzbK)+DdiQCoLCXX2v&0 zFf3zzXqpRM_b9cMOv_FrwNF3c_CHxvHcB2~7*v(DX6j}S@BE&wgxKpX?h?MmL_Gh| zqd&1DTeyJvVbc58l(j zc&I{qK*O$cio2F6%ajkkB{~m^9^JdLz|H)THSSROWA9nDhpSO554+!*4B2rCy1UyI z;dvHQy)LR0yKC9{S$P{%pl%rQcB;Oyym1SZ)^#m2=3|iCQQXYusZJZC7h5-qyR1_m z|C!V}aOumXtTb!R<9ff@-man~6N9cru|Hmh-(ImlKJQC-?9TjM>UK#-xko};n{XW? z``_#s-}^i7686NyZ?lPh3s`r1*QVr0WhT*fHo9~C&i5~i;NPZxxn3R@buU?;p!A&W zawZ1((>LOIYr8VdayO>CJ!!wi(2twOmTwKxuJJK*t zeT(~3;@@2Z1&;2m1LX`lExZ&rQfH+PWssV-j4B{U1g2N>rw$pvLizr;Q} zVv<5HiTsDJUO)cl*kzi-%EZBM5*M9TFy&g({>P?6AJ4t=ST0IUdM>DqNYg=Notx>Y zP<0trlO+h;BS!oqPGJ(CiU$n9j2_e?Qf_3=_>vZm!{oQ4N1<7PYp2uW4MD8CEHB=j zri0>JiEqP;`YPMQ4hPVZuLRSkgteVraobJpKv51OZlu8+hkkJE&1}d|QfJwgExC#A zt>Z1RS~Ux8+pn-}Y8%w9mUs5|Y|E`M9*?~tOjql+2-z3TTJsTkAMP0={M&hu~{!3Hphg&qK za=H|&o%GJ@jShd=GBh`}`-#@;?!NehwyCS@HN}2jvR55i5%O2ba zbZdWd0azgNQY3?0VQnvV1i(2_oZE?fpXb+o!hf7l`FbrH&?R9d6{For$ zK3S6P)ia9k*reyuAg!8+3bL+`JkvcCM<|P9cYV}M{iB|fGko}Au^=wl{GL5m#Wsoc zWmc@vvN>y;-+FW97upNwDnAG+_y5tYnADbjdx^3ia>-YEz%=_*bM_Uua$VG)o^VQg z;dLv$xhJbS4$2H~Ts7KGUU2`}pQH$RaN|i2QL89tIO(CwdH5}(|L`^*ai1I#-FbG| zR+4F#@uM>rx+cm9y4R`gqU^XnopjL}|7a7C+9|s6;yO>xbN}>eB*}i-JKsTh*(Y3? zr`1?p$i%~vK%^vbNj>=pBh;fe;K1>Yq)m*&yvtjlb2E?~?ho}(x~c!h@BmX~?_1c= zW*>2@`_%BQ1~)JFABQ&Ft89p8+*?R#7MS@WCZkV1Oc(apR4*0YKM~Lvz3P;9)1$t( zPM<6aO%J%mm(K`#HOs*68eXtTT1~9UYwefhMwRV$^M)VRriJx;Ik zpLjWuQ+&74WPECLb#lLVU4_&!uT{F$F? zJ>3{~zbW@8A>}W3{c~x&v!KA_X)`WYRwL-M35dP5RGI5ICdj`FNch_|quDP^Ps;dv zBaRimGa2Y52HfE{jp>Sp@7QAY=QKY?Q~mBu8a%+KSR^t!*7no~2^TD!D>`SlT?YuC zAh`>N+?5_baC?=(=y;w8p1Lh+`e}Ij{LYdgHn3~v^i=z?>=kJ8p9^8UzMN9`0>0pT za+aGOEu1+u{lRX*v4hsFgLc1N@3~w(c~X)pkwvL*I`G@@#-__hR`>i^d*aD;y9GB0 zpuj!xV3SgLK;OvClkJBa#K1U?>6<=SoAu$jhvkB?<;##on>=!RHTS(W%EGUkEK9p_ z*lA|V`>VUjl{YNb_@+u*yT~)@%7vKdEXS-}rJ;J&+W~3A;F3;DyB3k)Lru-Y#;ic; z5%jLSZ6EV@`kFlv5!(xv-sT{`+u?xxY?mZ`Go+aKnRee_Eg?ux5q;_Gg@0&TwFRuZ)&DH3!=B$IvYdYFjLeY-q zV_qgEhN+jQ-F=rj_G~U@rzFV>mSf49AAy~3dSCRrJ=1_3#@hK{PIvKB^9R>r z?j)pl6UfOP@PDH4LLBVM;oN}w|JOhW{x@;pUi`5Ioa>WF;_F* zqFBy9pef>hB}S&=Dx8XSRa){*9m4tYt)E__!sFkEKg5Pz2rlVp%ea3gpn2?zsRpp` z0ia@f(^UQ>9i9opCtkr#BA)EK~sFUq|Ag#3O-ByHHJ+`cBd!BnA z_8&v3nTMw4x2zeC0^n@0U^>V6NY84|v{%oeNCU(7lbe9cKhun-A6(c}aieW38~#P% zICcNmPL+}}_nNgc*W9+d_%lw5!$a}c&jjqwL+wemT(i{@ko7*%UI$30wk+rD4GL6X zqGzJ6HasM4e63Sj@S?LpNh9M+C~?Fl;`v7GQAO3z=eGlz7Y26cU8;8YYzb^>`gN}C zlhnv#Yt@{?pVA%ZEwJr__+{O9sSSztGG$e9X_%$?nwSO5_=fQf-<_e0!p%+?U!=hB zl*T)|iIWpJOabR(C>qO#7hibMnU~OX;UfK}+SC+15_Je`;mM%2j zHzh2moSwm{zA%5<{_~nbxo&Cb(7{sd-Y*o^q42HkPEmVF&(5gtR?W@)j)KZuiQe_! zvclH!ZIX80_@mnCI-~p3CGxL@S7za2Kj;CZb&emanljCxF&>VsyonI2_6hHwAvWt_ zdp?Ag?;bw19c=q>M4kATR4A+4zKC-Xc?WTi_(^U#aV3#%qjRj|($#QvQ8M6nFcB z!|(#2Zg!tflXXd1@x=Cs!J*=pAT>^wz?t#2W{fs8lyZ!ime$A_rJ;yC6DFfWeuD9g zRO^(mAvSnyE+hW}qE)>&InU&9$i%^xw;vwnSOYE7F9XweZT}u!6+Sk%;aiu{uv^?5 zuf_k9Lf+cWk2}H##)Y2`u6m4av~G|TR(;Y`P!jbK^=Fg5H56EEq@_FF*P1-A?|DPV zoe5TA3f8-AoEO*=TG8-6r*PV>@ae1I3(&EgJbTK+%ZnCxML!mtZ!fBMZtOTI824~~ z@+0!bcE(+GW8)Rt6Ag2vGlIH9e$n>9B9e!1ajuIP{k6@YK1yDif4TLrL8&IXS&|ZDY~74*jVox2~l4qwAI*+SsIH zU8t0{e`K5Ran+>bily5tW{7r^kE{OH_T2%+>|O6o)_uP;R!0b3FdBrIeQKh#an)Nz z?=mYmjhk!?*Zb?_@eMDZ&tjqW!8Pi7so^GXm);k2Tn=s5tGkj2Uil_s)XhM?-*WR!HJfcj`A~k`ipgL! zl42GGWOz2Qgp+Gc^i%xJOP8#zn~gf+{6dBHzEe>A4zXuW&m_xfN)B}>(HsDa2b#+Q zM%1bs+)BEvI!!O4i${-g{qU>qsyuX-gbdeB%Fb_k*gt1K@hf9}U0@I)EoJxD0Lt#9 z6!aD{cN0C|UomWv_TJs%;^>iiBRAxmHT7-ZcG`^9qnM$T!wyw5TcI~N<8$H(Ci0`l z3sk4mScty#s;GP6#~QXyYO&9?u2seF6Q!G;+}jZ!D*!7LC2u?z8lP!dHZh%CyZM7G zL$%@0L#_;57wf{;=AG+3#%A!t0&!uL=Y<|^&oyqWXif79{1qNf6CZa=^?Y?C=C=Q@ zGB7FSH=dUK;7#zK*#QsQkk*`ZqET`61;xu%uPq+GWkmh>x(-JVpDV4J1xME<-SC@E zOA6JvyRk6`+Gn2~rTN4)^qCj-ee0gN<^0me&*J>A5WwWPR})RZa>&2I=ij;$|T`Z+o9!A9q-=o z79<)Xl_f+HM6EW6rJh#}Na9E-|OdQ;o7dKIm9Q6FrRHkvHJSga7!Jz8n zTL;&hjC`_7-uO#l+;5o9&`7Rpb!z0z&Y+EsoA+Ixqi%`2!Jk=|K6&Q|L)8AYcV_>@ zyIVJR9r1HPiUxxxeJ2hoj(jGRUFHu-MenGFG{*$oF3kAY%V=M7yVBPC?Zc%;{rk3T zr<*)Xloi|V=ZJ}&7X9I$je z52+vN5lx=G`KXX@@b%Tcs;d0vP5lbl2SW8vZrNUyK479*Q$cUlQ{b;3{@7fwEw@wS zd%wG`2R5*& zTJ0y3QF=G-^bgKeIiE7}>eg(xn(@SCUYVKOV^BYA(>`TeY8rE74ojONTYngN!g5Lh_(N0c?4CK@NX!6J6L=3Tnk{RLO18rnKUhIp{=t)Wf?d*_xMXPoYm%N4Rk*+j3@;>X@!`;Bws z49-5f`@>V)i`vkBxi13cPK+%2z*22|d9ML@arn-h+4hSa9XFF`F`c&t+IKnZr|pSs zlbcW%9ZyZV9S{?}t@1^ECNX+F;lZ7UkNpz^LbHf5LE(ouxee!PB+Y)qnB1}>PrgJy zLth+ZAMNQ)X3uOSD4eNB-s-A-9MDCqQx($+A{savh*7hdtZ zF~flu3zc0zCHLr=tOg9ajSrO?zu$7Pjiq&ZmsC(pIp>fWoliCz@GtvNpSZR_v% zqVDVDj_D1&vWEElnU>Eb58~ftzT4pZdHsGp3T7sXmijJ--L=MZ?s`KH%dtY0)SkSk zKW=MKTWH1QwCnE}xMai8FO4l%mn%ht=%ICayE<#+v%=WxzZH={v!sWx_arq)uy&cv28d;t6Kk)kB znI{fYz`C6Z;T?Z{Pp5sFOZ{V-?_UOML4(Nf-bmcYdYVyqz&%RB#&z=0Fo71)Kv!NN*FN$$~ z640zXo<_MZr0X9e$m{uC0+Y~5*3te{`y z^~33P^@?Av5yY%Iwdk|lT$jXe`dBQve`g@ax=YxrDE!TF@rmPZ;W%`>*N#tedp~g~ z_4<2xRvmLf^-IueLeD$zHZ$O5w#Nz|gU5eS+@&}xOoO{@V}ydfOX%0JzTnmi26N*D z@A|p?6X~(hbtARvJGQP(nw<*Rb1`E#$`x$;=pvfje7ZB>!Lep5FdcVz&Vb^(@JGvK z{Wqr@+AxN76FpO#>HTV6sFF|D@bIGa`@C!W?R_4ZXfXX7a;kCQpcVWV5dduL>rVcE Z?Dq?7lI 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 literal 13516 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 + + + diff --git a/devlog/_plan/260920_desktop_app_stabilization/030_icons_and_widget.md b/devlog/_plan/260920_desktop_app_stabilization/030_icons_and_widget.md new file mode 100644 index 00000000000..07e726f98c9 --- /dev/null +++ b/devlog/_plan/260920_desktop_app_stabilization/030_icons_and_widget.md @@ -0,0 +1,91 @@ +# wp4 — one vector source for the icons, and a verdict on the widget + +## Why the icon set needed a source + +`desktop/src-tauri/icons/` carried eighteen raster files and no vector. Every size was an +independent artifact: nothing tied `Square107x107Logo.png` to `icon.png`, nothing could tell +whether one of them had been hand-edited, and adding a platform size meant drawing it again. The +`.icns` and `.ico` containers hid the problem further, because a wrong member inside them is not +visible in a diff at all. + +The fix is a single `icon.svg` plus `desktop/scripts/generate-icons.ts`, exposed as +`bun run icons` and `bun run icons:check`. Fifteen PNGs render through `rsvg-convert`, the +`.icns` is assembled by `iconutil` from its ten members, and the `.ico` is written directly with +six PNG-embedded entries (16, 32, 48, 64, 128, 256). `--check` regenerates into a temporary +directory and compares byte for byte, so a hand-edited PNG fails instead of silently disagreeing +with the source. + +## The geometry was measured, not redrawn + +A redrawn mark would have been a different icon wearing the same name. The shape in `icon.png` +was measured instead: it spans 58..453 on both axes, the stroke is 48 wide, and the outer corner +turns at radius 135. A centred stroke therefore sits at `x=82 y=82 w=348 h=348` with +`stroke-width=48`, and the corner radius was swept to find the closest match. `rx=127` reproduces +the original to within **430 of 262144 pixels at 512×512 — 0.164%**, which is antialiasing along +the curve rather than a changed silhouette. + +The mark stays pure black on transparency. Both macOS and Windows composite it over their own +backgrounds, so a baked background would appear as a card on one of the two. + +## The widget question + +`OpenCodexWidget.appex` is bundled, and the acceptance note requires a verdict either way rather +than an absence. + +**The extension registers, and that part is settled.** `pluginkit` lists it from the installed +application with the parent bundle resolved and no disabled or ignored marker: + +``` +com.opencodex.desktop.widget(2.61.0) + SDK = com.apple.widgetkit-extension + Parent Bundle = /Applications/OpenCodex.app + Parent Name = OpenCodex + Platform = macOS +``` + +That record is structurally identical to a system widget queried the same way, so the earlier +working hypothesis — that ad-hoc signing keeps the extension from being adopted at all — is wrong +and is recorded here as wrong. Registration is not the obstacle. + +**It has never been instantiated.** No `OpenCodexWidget` process has run on this machine, so +nothing has yet asked the extension for a timeline. Registration says the system would offer it; +it does not say the gallery has rendered it. + +**What the signing state actually costs.** The host bundle carries the linker-signed placeholder: + +``` +host app Identifier = opencodex_desktop-b89067d97e1c189c + flags = 0x20002(adhoc,linker-signed) + Info.plist = not bound + Sealed Resources = none +appex Identifier = com.opencodex.desktop.widget + flags = 0x2(adhoc) +``` + +The host's `CFBundleIdentifier` is `com.opencodex.desktop`, but its *signed* identity is the +placeholder, its `Info.plist` is not bound into the signature, and it seals no resources. Locally +that is tolerated because the machine built the bundle itself. A distributed copy has no sealed +host for the system to validate the extension's containment against, and nothing binds the +declared identifier to the signed one. + +**The verdict, then:** the widget is eligible and registered, unexercised here, and not shippable +until the release pipeline signs the host bundle with a Developer ID identity so the declared and +signed identifiers agree and the bundle is sealed. That is a release-signing requirement, recorded +rather than worked around. + +Visual confirmation of the gallery itself was not obtained. The menu bar and Notification Center +are not addressable from the automation surface used here — every menu-bar coordinate is refused +as having no window — so this records the system state rather than a screenshot. + +## Files + +- `desktop/src-tauri/icons/icon.svg` — new, the single source. +- `desktop/scripts/generate-icons.ts` — new, renderer and `--check` verifier. +- `desktop/package.json` — `icons` and `icons:check` scripts. +- Seventeen regenerated raster artifacts under `desktop/src-tauri/icons/`. + +## Acceptance + +`bun run icons:check` passes on the committed tree, `bun run build:local` produces a bundle whose +`Contents/Resources/icon.icns` is the generated one, and the widget verdict above is recorded with +its measured identifiers. From cfa6269659f6f9601db8710f95a0f5eb6d7e7fc9 Mon Sep 17 00:00:00 2001 From: JUN Date: Sun, 20 Sep 2026 21:22:12 +0900 Subject: [PATCH 2/5] fix(desktop): compare the icns too, guard the icon set in CI, and register a stray provider test Review found three holes in the first version of this branch. icons:check generated an .icns and then left it out of the comparison list, so a hand-edited or stale .icns passed while the run reported that every generated icon matched. It is compared now, and when iconutil is unavailable the run says the .icns was not compared and fails instead of spelling that as a pass. Generation also renders into scratch and moves the finished set over in one pass, so a failure part way through no longer leaves the committed icons half replaced. The verifier was also not executed by anything. It still is not, and it cannot be: rsvg-convert is unpinned, so byte identity on a hosted runner would assert the runner's renderer version. tests/ci-workflows/build-desktop-icon-set.test.ts asserts the part that is renderer-independent and reads every expectation out of the generator - each declared size committed at exactly that size, the .ico directory carrying the packed sizes with each payload a real PNG of its declared dimension, the .icns walking cleanly end to end with one image member per declared entry, and no hand-added file beside the set. It was driven red on a resized raster and on a stray file. Separately, tests/providers/stepfun-provider.test.ts landed without an inventory entry and no seed resolves its name, so the membership oracle has been failing on dev and on every branch cut from it since. Registering it in both inventories restores that gate. --- desktop/scripts/generate-icons.ts | 53 +++++-- .../030_icons_and_widget.md | 51 +++++-- scripts/test-layout/layout.json | 1 + .../build-desktop-icon-set.test.ts | 136 ++++++++++++++++++ tests/fixtures/test-layout-expected.json | 1 + 5 files changed, 216 insertions(+), 26 deletions(-) create mode 100644 tests/ci-workflows/build-desktop-icon-set.test.ts diff --git a/desktop/scripts/generate-icons.ts b/desktop/scripts/generate-icons.ts index b038be7d14c..1c53c94c0e1 100644 --- a/desktop/scripts/generate-icons.ts +++ b/desktop/scripts/generate-icons.ts @@ -98,18 +98,27 @@ function buildIco(entries: Array<{ size: number; bytes: Buffer }>): Buffer { return Buffer.concat([header, directory, ...entries.map(entry => entry.bytes)]); } -function generateInto(target: string): void { +/** + * Render the whole set into `target`, and report which artifacts were actually produced. + * + * The return value matters: `iconutil` is macOS-only, so on another platform no `.icns` exists to + * compare against. Reporting that is the difference between "the icns matches" and "nothing looked + * at the icns", and the check must not spell the second as the first. + */ +function generateInto(target: string): { produced: string[]; icnsSkipped: boolean } { mkdirSync(target, { recursive: true }); - for (const [name, size] of Object.entries(PNG_SIZES)) render(size, join(target, name)); + const produced: string[] = []; + for (const [name, size] of Object.entries(PNG_SIZES)) { + render(size, join(target, name)); + produced.push(name); + } const iconset = join(target, "icon.iconset"); mkdirSync(iconset, { recursive: true }); for (const entry of ICNS_ENTRIES) render(entry.size, join(iconset, entry.name)); const icns = spawnSync("iconutil", ["-c", "icns", iconset, "-o", join(target, "icon.icns")]); - if (icns.status !== 0) { - // iconutil is macOS-only; elsewhere the committed .icns stays authoritative. - console.warn("[icons] iconutil unavailable, leaving icon.icns untouched"); - } + const icnsSkipped = icns.status !== 0; + if (!icnsSkipped) produced.push("icon.icns"); rmSync(iconset, { recursive: true, force: true }); const icoParts: Array<{ size: number; bytes: Buffer }> = []; @@ -120,6 +129,9 @@ function generateInto(target: string): void { rmSync(scratch, { force: true }); } writeFileSync(join(target, "icon.ico"), buildIco(icoParts)); + produced.push("icon.ico"); + + return { produced, icnsSkipped }; } function main(): number { @@ -129,16 +141,29 @@ function main(): number { } const check = process.argv.includes("--check"); if (!check) { - generateInto(iconsDir); - console.log(`[icons] regenerated from ${source}`); - return 0; + // Render into scratch first so a failure half way through cannot leave the committed set + // partly replaced, then move the finished artifacts over in one pass. + const scratch = mkdtempSync(join(tmpdir(), "ocx-icons-")); + try { + const { produced, icnsSkipped } = generateInto(scratch); + for (const name of produced) writeFileSync(join(iconsDir, name), readFileSync(join(scratch, name))); + console.log(`[icons] regenerated ${produced.length} artifacts from ${source}`); + if (icnsSkipped) { + console.error("[icons] iconutil is unavailable here, so icon.icns was NOT regenerated."); + console.error("[icons] the committed icon.icns may now disagree with the rest of the set."); + return 1; + } + return 0; + } finally { + rmSync(scratch, { recursive: true, force: true }); + } } const scratch = mkdtempSync(join(tmpdir(), "ocx-icons-")); try { - generateInto(scratch); + const { produced, icnsSkipped } = generateInto(scratch); const drifted: string[] = []; - for (const name of [...Object.keys(PNG_SIZES), "icon.ico"]) { + for (const name of produced) { const fresh = join(scratch, name); const committed = join(iconsDir, name); if (!existsSync(committed) || !readFileSync(fresh).equals(readFileSync(committed))) { @@ -150,7 +175,11 @@ function main(): number { console.error("[icons] regenerate with: bun run icons"); return 1; } - console.log("[icons] every generated icon matches the source"); + console.log(`[icons] ${produced.length} generated icons match the source`); + if (icnsSkipped) { + console.error("[icons] iconutil is unavailable here, so icon.icns was NOT compared."); + return 1; + } return 0; } finally { rmSync(scratch, { recursive: true, force: true }); diff --git a/devlog/_plan/260920_desktop_app_stabilization/030_icons_and_widget.md b/devlog/_plan/260920_desktop_app_stabilization/030_icons_and_widget.md index 07e726f98c9..6ea275bebe6 100644 --- a/devlog/_plan/260920_desktop_app_stabilization/030_icons_and_widget.md +++ b/devlog/_plan/260920_desktop_app_stabilization/030_icons_and_widget.md @@ -47,9 +47,10 @@ That record is structurally identical to a system widget queried the same way, s working hypothesis — that ad-hoc signing keeps the extension from being adopted at all — is wrong and is recorded here as wrong. Registration is not the obstacle. -**It has never been instantiated.** No `OpenCodexWidget` process has run on this machine, so -nothing has yet asked the extension for a timeline. Registration says the system would offer it; -it does not say the gallery has rendered it. +**And it does not appear in the gallery.** The gallery was opened on this machine and checked: +OpenCodex is not among the offered widgets. No `OpenCodexWidget` process has ever run here +either, so nothing has asked the extension for a timeline. Registration and adoption are two +different things, and only the first of them holds. **What the signing state actually costs.** The host bundle carries the linker-signed placeholder: @@ -68,14 +69,32 @@ that is tolerated because the machine built the bundle itself. A distributed cop host for the system to validate the extension's containment against, and nothing binds the declared identifier to the signed one. -**The verdict, then:** the widget is eligible and registered, unexercised here, and not shippable -until the release pipeline signs the host bundle with a Developer ID identity so the declared and -signed identifiers agree and the bundle is sealed. That is a release-signing requirement, recorded -rather than worked around. - -Visual confirmation of the gallery itself was not obtained. The menu bar and Notification Center -are not addressable from the automation surface used here — every menu-bar coordinate is refused -as having no window — so this records the system state rather than a screenshot. +**The verdict, then:** the extension is registered and the gallery does not offer it. The host +bundle is the thing that fails a requirement — its signed identity is not the identity it +declares, and it seals nothing — so nothing downstream can establish that this extension belongs +to `com.opencodex.desktop`. Until the release pipeline signs the host with a Developer ID +identity, the widget ships but cannot be added. That is the finding; it is not worked around here, +and no part of the icon work depends on it. + +## What the icon check does and does not cover + +`bun run icons:check` compares all seventeen generated artifacts — fifteen PNGs, the `.ico` and +the `.icns` — byte for byte against a fresh render. It needs `rsvg-convert` and `iconutil`, and +when `iconutil` is missing it now says the `.icns` was not compared and fails, rather than +reporting a pass over a file it never looked at. + +That check does not run in CI, and claiming otherwise would be the easy lie here. The renderer is +not pinned, so two machines with different librsvg builds produce different bytes with nothing +wrong; asserting byte identity on a hosted runner would be asserting the runner's renderer +version. What CI runs instead is `tests/ci-workflows/build-desktop-icon-set.test.ts`, which needs +no renderer at all and reads its expectations out of the generator: every declared size committed +at exactly that size, the `.ico` directory carrying exactly the packed sizes with each payload a +real PNG of its declared dimension, the `.icns` walking cleanly end to end with one image member +per declared entry, and nothing hand-added beside the generated set. It was driven red on a +resized raster and on a stray file before being trusted. + +So the split is: shape is enforced everywhere, byte identity is enforced wherever the toolchain +exists. ## Files @@ -83,9 +102,13 @@ as having no window — so this records the system state rather than a screensho - `desktop/scripts/generate-icons.ts` — new, renderer and `--check` verifier. - `desktop/package.json` — `icons` and `icons:check` scripts. - Seventeen regenerated raster artifacts under `desktop/src-tauri/icons/`. +- `tests/ci-workflows/build-desktop-icon-set.test.ts` — new, the renderer-free structural guard, + registered in `scripts/test-layout/layout.json` and `tests/fixtures/test-layout-expected.json`. ## Acceptance -`bun run icons:check` passes on the committed tree, `bun run build:local` produces a bundle whose -`Contents/Resources/icon.icns` is the generated one, and the widget verdict above is recorded with -its measured identifiers. +`bun run icons:check` passes on the committed tree over all seventeen artifacts, +`build-desktop-icon-set.test.ts` passes and has been shown to fail on a wrong-sized raster and on +a stray file, `bun run build:local` produces a bundle whose `Contents/Resources/icon.icns` is the +generated one, and the widget verdict is an observation of the gallery rather than an inference +from registration. diff --git a/scripts/test-layout/layout.json b/scripts/test-layout/layout.json index dd578ff1571..e72c39cebfc 100644 --- a/scripts/test-layout/layout.json +++ b/scripts/test-layout/layout.json @@ -303,6 +303,7 @@ "bridge-terminal-singleness.test.ts": "adapters", "bridge.test.ts": "adapters", "buffered-response-shape-guards.test.ts": "adapters", + "build-desktop-icon-set.test.ts": "ci-workflows", "build-release-changelog.test.ts": "ci-workflows", "bump-dev-version.test.ts": "ci-workflows", "bun-runtime.test.ts": "ci-workflows", diff --git a/tests/ci-workflows/build-desktop-icon-set.test.ts b/tests/ci-workflows/build-desktop-icon-set.test.ts new file mode 100644 index 00000000000..ed0186ead56 --- /dev/null +++ b/tests/ci-workflows/build-desktop-icon-set.test.ts @@ -0,0 +1,136 @@ +import { describe, expect, test } from "bun:test"; +import { readFileSync, readdirSync, statSync } from "node:fs"; +import { join } from "node:path"; +import { repoPath } from "../helpers/repo-root"; + +/** + * The committed desktop icons are generated from one SVG by `desktop/scripts/generate-icons.ts`. + * That script's own `--check` compares byte for byte, which is the strongest statement available + * — and it is not available here: it needs `rsvg-convert` and `iconutil`, and the renderer is not + * pinned, so two machines with different librsvg builds disagree on bytes without anything being + * wrong. Asserting byte identity in CI would mean asserting the runner's renderer version. + * + * What CI can assert on any platform with no renderer at all is that the committed set still has + * the shape the generator declares: every size present, every raster actually that size, both + * containers carrying exactly the members the script packs, and nothing hand-added alongside. + * Every expectation below is read out of the generator, so adding a size there and forgetting to + * regenerate fails here rather than being restated in two places that can drift apart. + */ +const GENERATOR = repoPath("desktop/scripts/generate-icons.ts"); +const ICONS_DIR = repoPath("desktop/src-tauri/icons"); + +function generatorSource(): string { + return readFileSync(GENERATOR, "utf8"); +} + +function block(source: string, opening: string, closing: string): string { + const start = source.indexOf(opening); + expect(start, `${opening} is missing from generate-icons.ts`).toBeGreaterThan(-1); + const end = source.indexOf(closing, start + opening.length); + expect(end, `${opening} is not terminated in generate-icons.ts`).toBeGreaterThan(-1); + return source.slice(start + opening.length, end); +} + +function declaredPngs(source: string): Map { + const body = block(source, "const PNG_SIZES: Record = {", "};"); + const out = new Map(); + for (const m of body.matchAll(/"([^"]+)":\s*(\d+)/g)) out.set(m[1]!, Number(m[2])); + return out; +} + +function declaredIcnsMembers(source: string): Array<{ name: string; size: number }> { + const body = block(source, "const ICNS_ENTRIES: Array<{ name: string; size: number }> = [", "];"); + return [...body.matchAll(/name:\s*"([^"]+)",\s*size:\s*(\d+)/g)].map(m => ({ name: m[1]!, size: Number(m[2]) })); +} + +function declaredIcoSizes(source: string): number[] { + const body = block(source, "const ICO_SIZES = [", "]"); + return body.split(",").map(part => Number(part.trim())).filter(n => Number.isFinite(n)); +} + +/** Width and height out of a PNG's IHDR, which is always the first chunk. */ +function pngDimensions(bytes: Buffer): { width: number; height: number } { + expect(bytes.subarray(0, 8).equals(Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]))).toBe(true); + expect(bytes.subarray(12, 16).toString("latin1")).toBe("IHDR"); + return { width: bytes.readUInt32BE(16), height: bytes.readUInt32BE(20) }; +} + +describe("desktop icon set", () => { + const source = generatorSource(); + const pngs = declaredPngs(source); + const icnsMembers = declaredIcnsMembers(source); + const icoSizes = declaredIcoSizes(source); + + test("the generator still declares a set worth checking", () => { + expect(pngs.size).toBeGreaterThan(10); + expect(icnsMembers.length).toBeGreaterThan(5); + expect(icoSizes.length).toBeGreaterThan(3); + }); + + test("every declared raster is committed at exactly its declared size", () => { + const wrong: string[] = []; + for (const [name, size] of pngs) { + const bytes = readFileSync(join(ICONS_DIR, name)); + const { width, height } = pngDimensions(bytes); + if (width !== size || height !== size) wrong.push(`${name}: ${width}x${height} != ${size}`); + } + expect(wrong).toEqual([]); + }); + + test("icon.ico carries exactly the sizes the generator packs, each a real PNG of that size", () => { + const ico = readFileSync(join(ICONS_DIR, "icon.ico")); + expect(ico.readUInt16LE(0)).toBe(0); + expect(ico.readUInt16LE(2)).toBe(1); + expect(ico.readUInt16LE(4)).toBe(icoSizes.length); + + const seen: number[] = []; + for (let i = 0; i < icoSizes.length; i += 1) { + const at = 6 + i * 16; + const declared = icoSizes[i]!; + // ICO spells 256 as 0 in a single byte, which is the one field width the format never grew. + expect(ico.readUInt8(at)).toBe(declared >= 256 ? 0 : declared); + expect(ico.readUInt8(at + 1)).toBe(declared >= 256 ? 0 : declared); + const length = ico.readUInt32LE(at + 8); + const offset = ico.readUInt32LE(at + 12); + expect(offset + length).toBeLessThanOrEqual(ico.length); + const { width, height } = pngDimensions(ico.subarray(offset, offset + length)); + expect(width).toBe(declared); + expect(height).toBe(declared); + seen.push(width); + } + expect(seen).toEqual(icoSizes); + }); + + test("icon.icns is well formed and carries one member per declared entry", () => { + const icns = readFileSync(join(ICONS_DIR, "icon.icns")); + expect(icns.subarray(0, 4).toString("latin1")).toBe("icns"); + // A truncated or concatenated icns still opens with the magic; the declared length is what + // says the file is the one the tool wrote. + expect(icns.readUInt32BE(4)).toBe(icns.length); + + const types: string[] = []; + let at = 8; + while (at < icns.length) { + const type = icns.subarray(at, at + 4).toString("latin1"); + const length = icns.readUInt32BE(at + 4); + expect(length).toBeGreaterThanOrEqual(8); + expect(at + length).toBeLessThanOrEqual(icns.length); + types.push(type); + at += length; + } + // The walk has to land exactly on the end, or some member lied about its length. + expect(at).toBe(icns.length); + // 'TOC ' and 'info' are bookkeeping the tool adds; the rest are the images. + const images = types.filter(type => type !== "TOC " && type !== "info"); + expect(images.length).toBe(icnsMembers.length); + }); + + test("nothing is hand-added beside the generated set", () => { + const generated = new Set([...pngs.keys(), "icon.ico", "icon.icns", "icon.svg"]); + const stray = readdirSync(ICONS_DIR) + .filter(name => statSync(join(ICONS_DIR, name)).isFile()) + .filter(name => !generated.has(name)) + .sort(); + expect(stray).toEqual([]); + }); +}); diff --git a/tests/fixtures/test-layout-expected.json b/tests/fixtures/test-layout-expected.json index e1e266abf4c..926a934ff3f 100644 --- a/tests/fixtures/test-layout-expected.json +++ b/tests/fixtures/test-layout-expected.json @@ -134,6 +134,7 @@ "bridge-terminal-singleness.test.ts": "adapters", "bridge.test.ts": "adapters", "buffered-response-shape-guards.test.ts": "adapters", + "build-desktop-icon-set.test.ts": "ci-workflows", "build-release-changelog.test.ts": "ci-workflows", "bump-dev-version.test.ts": "ci-workflows", "bun-runtime.test.ts": "ci-workflows", From 3ddb648569987a873245500870b029d37c1c03d0 Mon Sep 17 00:00:00 2001 From: JUN Date: Sun, 20 Sep 2026 21:48:25 +0900 Subject: [PATCH 3/5] fix(desktop): abort icon generation when iconutil is missing, and match icns members by size Second review round found the two remaining holes. Generation copied every rendered artifact over the committed set and only then reported that iconutil was unavailable, so a run without it left the PNGs and the .ico new, the .icns whatever it had been, and nothing in the tree to say which was which. It now aborts before writing anything. The icns check counted image members against the declared entry count, which ten copies of one size would satisfy just as well as the ten the generator declares. It now consumes the declared sizes one member at a time, so a duplicated or substituted member fails on multiplicity; the two ARGB members carry no dimension, and the remainder after the PNG members are accounted for has to be exactly those. Driven red by replacing the 32px member with a second 128px one. --- desktop/scripts/generate-icons.ts | 11 ++++-- .../build-desktop-icon-set.test.ts | 37 +++++++++++++++++-- 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/desktop/scripts/generate-icons.ts b/desktop/scripts/generate-icons.ts index 1c53c94c0e1..1670eb53518 100644 --- a/desktop/scripts/generate-icons.ts +++ b/desktop/scripts/generate-icons.ts @@ -146,13 +146,16 @@ function main(): number { const scratch = mkdtempSync(join(tmpdir(), "ocx-icons-")); try { const { produced, icnsSkipped } = generateInto(scratch); - for (const name of produced) writeFileSync(join(iconsDir, name), readFileSync(join(scratch, name))); - console.log(`[icons] regenerated ${produced.length} artifacts from ${source}`); if (icnsSkipped) { - console.error("[icons] iconutil is unavailable here, so icon.icns was NOT regenerated."); - console.error("[icons] the committed icon.icns may now disagree with the rest of the set."); + // Abort before touching the committed set. Copying the PNGs and the .ico and then + // reporting the missing .icns would leave the icons half regenerated: the rasters new, + // the .icns whatever it was, and no way to tell from the tree which is which. + console.error("[icons] iconutil is unavailable here, so the .icns cannot be regenerated."); + console.error("[icons] nothing was written; run this on a machine with iconutil."); return 1; } + for (const name of produced) writeFileSync(join(iconsDir, name), readFileSync(join(scratch, name))); + console.log(`[icons] regenerated ${produced.length} artifacts from ${source}`); return 0; } finally { rmSync(scratch, { recursive: true, force: true }); diff --git a/tests/ci-workflows/build-desktop-icon-set.test.ts b/tests/ci-workflows/build-desktop-icon-set.test.ts index ed0186ead56..703356188bb 100644 --- a/tests/ci-workflows/build-desktop-icon-set.test.ts +++ b/tests/ci-workflows/build-desktop-icon-set.test.ts @@ -48,9 +48,15 @@ function declaredIcoSizes(source: string): number[] { return body.split(",").map(part => Number(part.trim())).filter(n => Number.isFinite(n)); } +const PNG_SIGNATURE = Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); + +function isPng(bytes: Buffer): boolean { + return bytes.subarray(0, PNG_SIGNATURE.length).equals(PNG_SIGNATURE); +} + /** Width and height out of a PNG's IHDR, which is always the first chunk. */ function pngDimensions(bytes: Buffer): { width: number; height: number } { - expect(bytes.subarray(0, 8).equals(Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]))).toBe(true); + expect(isPng(bytes)).toBe(true); expect(bytes.subarray(12, 16).toString("latin1")).toBe("IHDR"); return { width: bytes.readUInt32BE(16), height: bytes.readUInt32BE(20) }; } @@ -101,7 +107,7 @@ describe("desktop icon set", () => { expect(seen).toEqual(icoSizes); }); - test("icon.icns is well formed and carries one member per declared entry", () => { + test("icon.icns is well formed and its members are the declared sizes", () => { const icns = readFileSync(join(ICONS_DIR, "icon.icns")); expect(icns.subarray(0, 4).toString("latin1")).toBe("icns"); // A truncated or concatenated icns still opens with the magic; the declared length is what @@ -109,6 +115,7 @@ describe("desktop icon set", () => { expect(icns.readUInt32BE(4)).toBe(icns.length); const types: string[] = []; + const payloads: Buffer[] = []; let at = 8; while (at < icns.length) { const type = icns.subarray(at, at + 4).toString("latin1"); @@ -116,13 +123,37 @@ describe("desktop icon set", () => { expect(length).toBeGreaterThanOrEqual(8); expect(at + length).toBeLessThanOrEqual(icns.length); types.push(type); + payloads.push(icns.subarray(at + 8, at + length)); at += length; } // The walk has to land exactly on the end, or some member lied about its length. expect(at).toBe(icns.length); // 'TOC ' and 'info' are bookkeeping the tool adds; the rest are the images. - const images = types.filter(type => type !== "TOC " && type !== "info"); + const images = payloads.filter((_, i) => types[i] !== "TOC " && types[i] !== "info"); expect(images.length).toBe(icnsMembers.length); + + // Counting members is not enough: ten duplicates of one size would count the same as the ten + // the generator declares. The larger members are PNG and carry their dimensions, so read them + // and check they are sizes the generator actually asks for. The smallest two are ARGB, which + // has no dimension in its payload, so they are counted rather than measured - and that + // accounting is what bounds how many declared sizes may be absent from the PNG members. + const png = images.filter(isPng); + const argb = images.filter(payload => payload.subarray(0, 4).toString("latin1") === "ARGB"); + expect(png.length + argb.length).toBe(images.length); + + // Consume the declared sizes one member at a time rather than comparing sets. A set would + // accept ten copies of one declared size; matching multiplicities is what makes a duplicated + // or substituted member fail, which is the realistic way this file goes wrong. + const unaccounted = icnsMembers.map(member => member.size); + for (const payload of png) { + const { width, height } = pngDimensions(payload); + expect(width).toBe(height); + const at = unaccounted.indexOf(width); + expect(at, `icon.icns carries more ${width}px members than the generator declares`).toBeGreaterThan(-1); + unaccounted.splice(at, 1); + } + // Whatever is left has to be exactly the members ARGB carries, which store no dimension. + expect(unaccounted.length).toBe(argb.length); }); test("nothing is hand-added beside the generated set", () => { From 6875e47b054363b432778e7dabca671fa89edf74 Mon Sep 17 00:00:00 2001 From: JUN Date: Sun, 20 Sep 2026 22:39:09 +0900 Subject: [PATCH 4/5] fix(privacy): stop the scan reading a Retina asset name as an email address generate-icons.ts names the sizes it renders, and six of them are @2x. The scan's address pattern reads "128x128@2x.png" as local part "128x128", domain "2x", and accepts "png" under its deliberately loose TLD rule, so listing the icon set failed the gate. The @2x/@3x scale suffix is a platform convention and an image extension is not a top-level domain, so a name of that exact shape is a filename rather than an address. The rule is written narrowly enough that it cannot absorb a real address: the domain must be a single digit followed by x, and the extension must be one of the raster formats. --- scripts/privacy-scan.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/privacy-scan.ts b/scripts/privacy-scan.ts index 5d6e288b1e4..20b232d04e7 100644 --- a/scripts/privacy-scan.ts +++ b/scripts/privacy-scan.ts @@ -110,6 +110,10 @@ function isAllowedEmail(file: string, email: string): boolean { } // URL-userinfo fixtures (https://user:pw@host/...) read as "pw@host" — not emails. if (file.startsWith("tests/") && email === ["pw", "chatgpt.com"].join("@")) return true; + // Retina asset names read as addresses: "128x128@2x.png" is local part "128x128", domain "2x", + // and the loose TLD rule accepts "png". The @2x/@3x scale suffix is a platform convention, and + // an image extension is not a top-level domain, so a name of that exact shape is a filename. + if (/^[a-z0-9._-]+@[23]x\.(?:png|jpe?g|gif|webp|tiff?)$/i.test(email)) return true; return file.startsWith("tests/") && email === "a@b.com"; } From 443d0c3ce6c6036b962644c8f63335f1f76fdb43 Mon Sep 17 00:00:00 2001 From: JUN Date: Sun, 20 Sep 2026 23:02:58 +0900 Subject: [PATCH 5/5] fix(privacy): scope the asset-name exemption to the asset-name grammar The first cut exempted any local part in front of an @2x or @3x scale suffix and a raster extension, so a person's name wearing that suffix would have bypassed the scanner entirely. The rule now requires the part before the suffix to be a pixel dimension, optionally prefixed the way an iconset member is, which is what the icon generator actually writes. tests/ci-workflows/privacy-scan-asset-names.test.ts exercises the real scanText rather than a copy of the pattern - a test that restated the regex would keep passing after the exemption was widened, which is the only way this goes wrong - and asserts both directions: the generator's names are not findings, and a mailbox wearing the same suffix still is. --- scripts/privacy-scan.ts | 9 ++-- scripts/test-layout/layout.json | 1 + .../privacy-scan-asset-names.test.ts | 45 +++++++++++++++++++ tests/fixtures/test-layout-expected.json | 1 + 4 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 tests/ci-workflows/privacy-scan-asset-names.test.ts diff --git a/scripts/privacy-scan.ts b/scripts/privacy-scan.ts index 20b232d04e7..cedb2360424 100644 --- a/scripts/privacy-scan.ts +++ b/scripts/privacy-scan.ts @@ -111,9 +111,12 @@ function isAllowedEmail(file: string, email: string): boolean { // URL-userinfo fixtures (https://user:pw@host/...) read as "pw@host" — not emails. if (file.startsWith("tests/") && email === ["pw", "chatgpt.com"].join("@")) return true; // Retina asset names read as addresses: "128x128@2x.png" is local part "128x128", domain "2x", - // and the loose TLD rule accepts "png". The @2x/@3x scale suffix is a platform convention, and - // an image extension is not a top-level domain, so a name of that exact shape is a filename. - if (/^[a-z0-9._-]+@[23]x\.(?:png|jpe?g|gif|webp|tiff?)$/i.test(email)) return true; + // and the loose TLD rule accepts "png". The exemption is written against the asset-name grammar + // rather than against that shape, because a person's name in front of the same scale suffix is + // the same shape and is a mailbox. The part before the suffix has to be a pixel dimension, + // optionally prefixed the way an iconset member is, so a name someone could receive mail at + // does not match. + if (/^(?:[a-z]+_)?\d+x\d+@[23]x\.(?:png|jpe?g|gif|webp|tiff?)$/i.test(email)) return true; return file.startsWith("tests/") && email === "a@b.com"; } diff --git a/scripts/test-layout/layout.json b/scripts/test-layout/layout.json index e72c39cebfc..a8d43bc015c 100644 --- a/scripts/test-layout/layout.json +++ b/scripts/test-layout/layout.json @@ -1125,6 +1125,7 @@ "ports.test.ts": "server", "prime-client.test.ts": "clients", "privacy-mask-account.test.ts": "lib", + "privacy-scan-asset-names.test.ts": "ci-workflows", "privacy-scan-meta-key.test.ts": "ci-workflows", "privacy-scan-ssh-endpoint.test.ts": "ci-workflows", "probe-lease.test.ts": "routing", diff --git a/tests/ci-workflows/privacy-scan-asset-names.test.ts b/tests/ci-workflows/privacy-scan-asset-names.test.ts new file mode 100644 index 00000000000..3dc98fd40b3 --- /dev/null +++ b/tests/ci-workflows/privacy-scan-asset-names.test.ts @@ -0,0 +1,45 @@ +/** + * The scanner's address pattern reads a Retina asset name as an email. + * + * `128x128@2x.png` is local part `128x128`, domain `2x`, and the deliberately loose TLD rule + * accepts `png`, so listing the desktop icon set failed the gate. The exemption that fixes it is + * one character away from a hole: a person's name in front of the same `@2x.png` suffix has the + * identical shape and is a mailbox, so the rule is written against the asset-name grammar — a + * pixel dimension, optionally prefixed the way an iconset member is — rather than against the + * shape. + * + * This exercises the real `scanText`. A test that restated the regex would keep passing after the + * exemption was widened, which is the only way this can go wrong. + */ +import { describe, expect, test } from "bun:test"; +import { scanText } from "../../scripts/privacy-scan"; + +/** Assembled at runtime so this file carries no bare address of its own. */ +const mailbox = (local: string, domain: string): string => [local, domain].join("@"); + +describe("privacy scan: Retina asset names", () => { + test("the icon set the generator declares does not read as addresses", () => { + for (const name of ["128x128@2x.png", "icon_16x16@2x.png", "icon_512x512@2x.png"]) { + expect(scanText("desktop/scripts/generate-icons.ts", `"${name}": 256,`) + .filter(finding => finding.kind === "email")).toEqual([]); + } + }); + + test("a mailbox wearing the same suffix is still a finding", () => { + for (const local of ["alice", "j.doe", "support"]) { + const line = `contact ${mailbox(local, "2x.png")}`; + expect(scanText("src/example.ts", line).some(finding => finding.kind === "email")).toBe(true); + } + }); + + test("the exemption does not extend past the scale suffix and a raster extension", () => { + const cases = [ + mailbox("128x128", "2x.com"), + mailbox("128x128", "4x.png"), + mailbox("128x128", "2x.example.com"), + ]; + for (const line of cases) { + expect(scanText("src/example.ts", line).some(finding => finding.kind === "email")).toBe(true); + } + }); +}); diff --git a/tests/fixtures/test-layout-expected.json b/tests/fixtures/test-layout-expected.json index 926a934ff3f..53fc4cbab3d 100644 --- a/tests/fixtures/test-layout-expected.json +++ b/tests/fixtures/test-layout-expected.json @@ -951,6 +951,7 @@ "ports.test.ts": "server", "prime-client.test.ts": "clients", "privacy-mask-account.test.ts": "lib", + "privacy-scan-asset-names.test.ts": "ci-workflows", "privacy-scan-meta-key.test.ts": "ci-workflows", "privacy-scan-ssh-endpoint.test.ts": "ci-workflows", "probe-lease.test.ts": "routing",