From 25628aa4a4c1507fe808938a75f9a3c529ecbe10 Mon Sep 17 00:00:00 2001 From: Bernd Mueller Date: Sun, 5 Apr 2026 11:08:36 +0200 Subject: [PATCH] first push --- Readme.md | 76 ++++++++++++++++++++ chip.scad | 77 ++++++++++++++++++++ chip_handle.scad | 180 +++++++++++++++++++++++++++++++++++++++++++++++ logo_atari.svg | 54 ++++++++++++++ logo_firebee.svg | 59 ++++++++++++++++ logo_text.svg | 90 ++++++++++++++++++++++++ side-by-side.png | Bin 0 -> 24558 bytes 7 files changed, 536 insertions(+) create mode 100644 Readme.md create mode 100644 chip.scad create mode 100644 chip_handle.scad create mode 100644 logo_atari.svg create mode 100644 logo_firebee.svg create mode 100644 logo_text.svg create mode 100644 side-by-side.png diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..0ee7051 --- /dev/null +++ b/Readme.md @@ -0,0 +1,76 @@ +# Atari & Firebee Shopping Trolley Key (Multi-Material) + +A high-quality, ergonomic shopping trolley chip (23mm diameter) featuring the iconic **Atari** and **Firebee** logos. This project is specifically designed for multi-material 3D printers like the **Flashforge Adventurer 5M Pro (AD5X)** or printers equipped with an AMS/MMU. + +## 🚀 Overview + +This OpenSCAD project generates a "key-style" trolley chip. Unlike a simple round coin, this design includes a 45mm handle for easy insertion and removal from trolley slots. It supports up to **4 different colors** in a single print. + +### Features +- **Front Side:** Deep-engraved Atari Logo. +- **Back Side:** Deep-engraved Firebee Logo. +- **Handle:** Customized "logo_text.svg" inlay and a 5mm keychain hole. +- **Parametric Design:** Fully adjustable via OpenSCAD. +- **Optimized for AD5X:** Designed to be printed with the first layer facing the bed for a perfectly smooth logo finish. + +--- + +## 🛠 Print Settings (Optimized for 0.4mm Nozzle) + +To achieve the best results with the fine logo details, use the following settings: + +| Parameter | Recommended Value | +| :--- | :--- | +| **Layer Height** | 0.15mm (0.2mm for First Layer) | +| **Wall Loops** | 4 (Important for handle strength) | +| **Top/Bottom Shells** | 5 | +| **Infill** | 30% (Gyroid or Honeycomb) | +| **First Layer Speed** | 15–20 mm/s (Slow is critical for inlays) | +| **Z-Hop** | 0.4mm | +| **Prime Tower** | Enabled (Prevents color bleeding) | + +--- + +## 📖 How to Use + +### 1. Preparation +Place your SVG files in the same folder as the `.scad` file: +- `logo_atari.svg` +- `logo_firebee.svg` +- `logo_text.svg` + +### 2. Exporting STLs +In OpenSCAD, use the `export_mode` variable to render and export the four individual parts: +1. `chip` -> `base.stl` (The main body) +2. `atari` -> `inlay_atari.stl` +3. `firebee` -> `inlay_firebee.stl` +4. `text` -> `inlay_text.stl` + +### 3. Slicing (Crucial Step) +1. Import **all 4 STLs** into your slicer at once. +2. When prompted: **"Load as a single object with multiple parts?"**, select **YES**. +3. Ensure the parts are merged/grouped correctly in the object list. +4. **Check the Preview:** Look at Layer 1. Ensure the slicer isn't "over-printing" the logos with the base color. The base should leave exact gaps for the inlays. + +### 4. Color Selection +For maximum contrast, we recommend: +- **Base:** Black or Dark Grey +- **Atari Logo:** Red or White +- **Firebee Logo:** Pink or Orange +- **Handle Text:** Light Blue or Lime Green + +--- + +## 📸 Screenshot Mode +The code includes a built-in toggle for documentation. Set `show_screenshot_view = true;` in OpenSCAD to see a perfectly centered, side-by-side view of both the front and back of the key. + +--- + +## 📜 License +This project is licensed under **Creative Commons - Attribution - Non-Commercial - Share Alike (CC-BY-NC-SA)**. +- **Attribution:** You must give appropriate credit. +- **Non-Commercial:** You may not use the material for commercial purposes. +- **ShareAlike:** If you remix, transform, or build upon the material, you must distribute your contributions under the same license. + +--- +*Created with OpenSCAD - Optimized for the Atari & Firebee community.* diff --git a/chip.scad b/chip.scad new file mode 100644 index 0000000..20373cb --- /dev/null +++ b/chip.scad @@ -0,0 +1,77 @@ +// Version 2.2.0 +// Changelog: +// 1.9.0: Fix für Mesh-Fehler und Zentrierungs-Offset (Y+2 bei Atari) +// 2.1.0: Multi-Material-Modus für AD5X +// 2.2.0: Optimierung der Logo-Tiefe auf 0.6mm und Finalisierung + +$fn = 100; + +// --- EXPORT-STEUERUNG --- +// Ändere diesen Wert für den jeweiligen STL-Export: +// "vorschau" -> Zeigt alles farbig an +// "chip" -> Basis mit Aussparungen (Exportieren als chip.stl) +// "atari" -> Nur die Füllung oben (Exportieren als atari.stl) +// "firebee" -> Nur die Füllung unten (Exportieren als firebee.stl) +modus = "vorschau"; + +// --- Parameter --- +chip_radius = 11.625; +chip_hoehe = 2.4; +logo_tiefe = 0.6; +max_logo_mass = (chip_radius * 2) * 0.75; + +// --- Logo Module (2D Definitionen) --- + +module logo_atari() { + render() + translate([0, 2, 0]) // Dein manueller Y-Offset + resize([max_logo_mass, max_logo_mass, 0], auto=true) { + offset(delta = 0.01) + import("atari_logo.svg", center = true); + } +} + +module logo_firebee() { + render() + mirror([1, 0, 0]) + resize([max_logo_mass, max_logo_mass, 0], auto=true) { + offset(delta = 0.01) + import("firebee.svg", center = true); + } +} + +// --- Konstruktion --- + +// 1. Der Chip-Körper (Die Form mit den "Löchern") +if (modus == "vorschau" || modus == "chip") { + difference() { + color("Grey") + cylinder(h = chip_hoehe, r = chip_radius, center = true); + + // Aussparung für Atari oben + translate([0, 0, chip_hoehe/2 - logo_tiefe + 0.01]) + linear_extrude(height = logo_tiefe + 0.1, convexity = 10) + logo_atari(); + + // Aussparung für Firebee unten + translate([0, 0, -chip_hoehe/2 - 0.1]) + linear_extrude(height = logo_tiefe + 0.1, convexity = 10) + logo_firebee(); + } +} + +// 2. Das Atari-Inlay (Die Füllung für oben) +if (modus == "vorschau" || modus == "atari") { + color("Cyan") + translate([0, 0, chip_hoehe/2 - logo_tiefe]) + linear_extrude(height = logo_tiefe, convexity = 10) + logo_atari(); +} + +// 3. Das Firebee-Inlay (Die Füllung für unten) +if (modus == "vorschau" || modus == "firebee") { + color("Orange") + translate([0, 0, -chip_hoehe/2]) + linear_extrude(height = logo_tiefe, convexity = 10) + logo_firebee(); +} \ No newline at end of file diff --git a/chip_handle.scad b/chip_handle.scad new file mode 100644 index 0000000..216d8ae --- /dev/null +++ b/chip_handle.scad @@ -0,0 +1,180 @@ +/* +================================================================================ +ATARI & FIREBEE SHOPPING TROLLEY KEY (Multi-Material Edition) +Version: 3.2.0 +License: Creative Commons - Attribution - Non-Commercial - Share Alike (CC-BY-NC-SA) +================================================================================ + +USER MANUAL: +1. Ensure the following SVG files are in the same folder as this .scad file: + - logo_atari.svg (Front side of the round chip) + - logo_firebee.svg (Back side of the round chip) + - logo_text.svg (Back side on the handle/grip) +2. Use the 'export_mode' variable below to switch between parts for export. + +3. For a multi-color print on the AD5X: + - Set export_mode = "chip"; -> Render (F6) -> Export STL as 'base.stl' + - Set export_mode = "atari"; -> Render (F6) -> Export STL as 'inlay_atari.stl' + - Set export_mode = "firebee"; -> Render (F6) -> Export STL as 'inlay_firebee.stl' + - Set export_mode = "text"; -> Render (F6) -> Export STL as 'inlay_text.stl' + +4. Import all 4 STLs into your slicer (e.g., OrcaSlicer) simultaneously. + +5. When asked "Load as a single object with multiple parts?", select YES. + +6. Assign your 4 filaments to the respective parts. + +OPTIMAL PRINT SETTINGS (0.4mm Nozzle): +- Layer Height: 0.15mm (0.2mm for first layer) +- Wall Loops: 4 (Crucial for mechanical strength of the chip and keyhole) +- Top/Bottom Shells: 5 +- Infill: 30% (Gyroid or Honeycomb recommended) +- First Layer Speed: 15-20 mm/s (Slow is vital for the fine inlays on the bed) +- Cooling: 100% after layer 2 +- Prime Tower: Enabled (To prevent color bleeding between the 4 colors) +- Z-Hop: 0.4mm (Prevents the nozzle from scarring finished color areas) +================================================================================ +*/ + +// --- GLOBAL SETTINGS --- +$fn = 100; // Detail level for circular geometries + +// --- EXPORT CONTROL --- +// "preview" -> Visualizes all colors together +// "chip" -> The main body with all hollowed-out pockets +// "atari" -> The inlay for the front Atari logo +// "firebee" -> The inlay for the back Firebee logo +// "text" -> The inlay for the text on the handle +export_mode = "preview"; + +// --- DIMENSIONS & PARAMETERS --- +chip_radius = 11.5; // Standard 23mm diameter +chip_height = 2.4; // Total thickness +logo_depth = 0.6; // Depth of the engravings (approx. 4 layers at 0.15mm) +max_logo_size = (chip_radius * 2) * 0.70; // Scaling factor for round logos + +// Handle (Grip) Parameters +handle_length = 45; // Length from the bottom edge of the chip to the end +handle_width = 16; // Width of the rectangular grip +handle_corner_radius = 3; +taper_start_y = -7.5; // Y-coordinate where the chip begins to taper into the handle +hole_diameter = 5; +hole_offset_bottom = 7; // Hole center distance from the bottom edge + +// Margin & Spacing for handle text +handle_margin = 2; +hole_clearance = 2; // Space between the hole and the text +taper_clearance = 2; // Space before the handle tapers into the chip + +// --- FILENAMES --- +file_atari = "logo_atari.svg"; +file_firebee = "logo_firebee.svg"; +file_text = "logo_text.svg"; + +// --- CALCULATIONS FOR TEXT PLACEMENT --- +hole_top_edge_y = (-chip_radius - handle_length + hole_offset_bottom) + (hole_diameter/2); +text_limit_bottom = hole_top_edge_y + hole_clearance; +text_limit_top = taper_start_y - taper_clearance; +available_text_length = abs(text_limit_top - text_limit_bottom); +text_y_position = text_limit_bottom + (available_text_length / 2); + + +// --- LOGO MODULES (2D DEFINITIONS) --- + +module module_logo_atari() { + render() + translate([0, 2, 0]) // Manual alignment for specific SVG geometry + resize([max_logo_size, max_logo_size, 0], auto=true) + offset(delta = 0.01) // Closes paths to prevent mesh errors + import(file_atari, center = true); +} + +module module_logo_firebee() { + render() + // Mirroring on the Y-axis (vertical) so it "flies up" on the back side + // mirror([0, 1, 0]) + resize([max_logo_size, max_logo_size, 0], auto=true) + offset(delta = 0.01) + import(file_firebee, center = true); +} + +module module_logo_text() { + render() + mirror([1, 0, 0]) // Mirror for correct legibility on the bottom side + rotate([0, 0, 90]) // Rotate to align with handle axis + // Resize to fit perfectly within calculated handle area + resize([available_text_length, handle_width - (2 * handle_margin), 0], auto=true) + offset(delta = 0.01) + import(file_text, center = true); +} + +// --- GEOMETRY MODULES --- + +module module_handle_shape() { + difference() { + hull() { + // Chord calculation: circle width at taper start point + chord_length = 2 * sqrt(pow(chip_radius, 2) - pow(taper_start_y, 2)); + translate([-chord_length/2, taper_start_y - 0.1, -chip_height/2]) + cube([chord_length, 0.1, chip_height]); + + // Rounded end of the handle + end_y_pos = -chip_radius - handle_length + handle_corner_radius; + translate([-(handle_width/2 - handle_corner_radius), end_y_pos, 0]) + cylinder(h = chip_height, r = handle_corner_radius, center = true); + translate([(handle_width/2 - handle_corner_radius), end_y_pos, 0]) + cylinder(h = chip_height, r = handle_corner_radius, center = true); + } + // Keyhole subtraction + translate([0, -chip_radius - handle_length + hole_offset_bottom, 0]) + cylinder(h = chip_height + 2, r = hole_diameter/2, center = true); + } +} + + +// --- FINAL ASSEMBLY --- + +// 1. MAIN KEY BODY (Chip and handle with engraved pockets) +if (export_mode == "preview" || export_mode == "chip") { + difference() { + union() { + color("Grey") cylinder(h = chip_height, r = chip_radius, center = true); + color("Grey") module_handle_shape(); + } + // Pocket for Atari (Top) + translate([0, 0, chip_height/2 - logo_depth + 0.01]) + linear_extrude(height = logo_depth + 0.1, convexity = 10) + module_logo_atari(); + + // Pocket for Firebee (Bottom) + translate([0, 0, -chip_height/2 - 0.1]) + linear_extrude(height = logo_depth + 0.1, convexity = 10) + module_logo_firebee(); + + // Pocket for Text (Bottom) + translate([0, text_y_position, -chip_height/2 - 0.1]) + linear_extrude(height = logo_depth + 0.1, convexity = 10) + module_logo_text(); + } +} + +// 2. ATARI INLAY (Top Color) +if (export_mode == "preview" || export_mode == "atari") { + color("Cyan") translate([0, 0, chip_height/2 - logo_depth]) + linear_extrude(height = logo_depth, convexity = 10) + module_logo_atari(); +} + +// 3. FIREBEE INLAY (Bottom Color A) +if (export_mode == "preview" || export_mode == "firebee") { + color("Orange") translate([0, 0, -chip_height/2]) + linear_extrude(height = logo_depth, convexity = 10) + module_logo_firebee(); +} + +// 4. HANDLE TEXT INLAY (Bottom Color B) +if (export_mode == "preview" || export_mode == "text") { + color("Lime") translate([0, text_y_position, -chip_height/2]) + linear_extrude(height = logo_depth, convexity = 10) + module_logo_text(); +} \ No newline at end of file diff --git a/logo_atari.svg b/logo_atari.svg new file mode 100644 index 0000000..2e3c0e0 --- /dev/null +++ b/logo_atari.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + diff --git a/logo_firebee.svg b/logo_firebee.svg new file mode 100644 index 0000000..d5c9ce5 --- /dev/null +++ b/logo_firebee.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + diff --git a/logo_text.svg b/logo_text.svg new file mode 100644 index 0000000..679563f --- /dev/null +++ b/logo_text.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/side-by-side.png b/side-by-side.png new file mode 100644 index 0000000000000000000000000000000000000000..0313a7577422c51c7fc9815093865a7469f3c8b8 GIT binary patch literal 24558 zcmY(rc|26_`#*kW9L7kNA*n1AGmI@;N(nPjnL(yVBn;UqB}#T?5Go3dEn-xbLX?tZ z8AVCf%965VkL+9a?>(>A`}KMJe*PF|&bgQCzOL)O?rV9Txk){KY%AYRJ_v%gl8p>c zLJ-UYL0kj8NN^`tEL9!+3P5aY5Rp_*2+qZ1q{rV=c3$+@K(*8wytVUu$cHGP; z!(zj6-hd-QltCP_FqXR?@r58eaWC%5>#eCr4kKgWTb{utZkQ{~Bc9QJgsmN(3%t0Y z`!%}wh5IklyB|FV_Jy!Nd=Gd#rKf%U&Dm40$G#otom*e_|McRr&*jq(Y?eyqf;vV5 znyk~(?Z#PKZ`Z1FAG9j2L}7W!#8)rw zquuN0av?g;1LGh_=!*td*)tv8iuTQW)4nvzbryEv1VlYVCZ2*Jh@FW;JRVfBlhYtT zw1Z^8AJcnqZ2W6q1bq;PzzwgVbl2@VZGtn={@%a?~6GTDvB>fSy8VRw_E-+s4~ zey@ol)b8UTh@MSG)`gA>s6QYfpaCNw12=Fx_hS!u83Ld5~nTK1Bm?=u^FzU~l()Y5SDKUNJ0NS%zNA3Sdi z@x;TivK^90=pks@#vz{fKjKxVrZhMN1b{g?1keNhLbgLuL=3V0tbf$+mw4#y|DHg( z8K9kx5t2X$WT;7#p%yp{2{p<5v)U~knh3XJ`h;owV8}8B13|>EI0Vt40R?s9&@Az$ zt=!Ns7F;|N=YkqY|9j4?IeG=cYX6Uxe-|<28Ltir#r}^$|I##DItkYM|G#(g4d-4s zj(+k%x}7;U#J&~}?${GS zNV{R!C9}3)OeYGWx0;}_7hRC~9L5O5LobTUhX2uk;(<985d>WUh~lv{Z*(WO(*RXR z6bn@!NP_J`e3t`mm8igan3WSu{fNUSm$iksJDEPp^I z-h|lN@sP`NzZq&kIIj@`DHMAZO%o#{iQW(-n~WhsmkCD$fx?74QXts^JJq@$a}e>3 z3A&H=$b%pj>2v3Y0~I0)#X~&SIw!P$NI{S`6Gvb7N=LiTHhG!{zC|P-$FPIB7l?(W zTs#ma{(o9Q-4_rEB^zOg5AuZ(bOsLb?UT+&)0qh#8sGmIPgUuVyl@K$_tF1}I{aUq z%uUmhfr?UrqD6umvPQ`NZqQfW02M3>15a+f5rQKBo2+2E$y0})57LhMp8)B6|5Hdy zjtq+uK!m@yPGK$HEp z)ek5w7E6W-Mwhr%Le9%U&^!*Y*P+jZ9x5&h3EjGiW*tsFy>+J~mm(5+Di6N3&%}(P zxGTFkc8cXY3FHJ!6w6nb!nSFJsOmY}4IEasppNJjeoM*!K3jmG9W+N0*kh^lJq0M} zod%wszre+i(7;BXqbY&?F9&SPgIBw5S>NV@iotbUpbL^&%Yr!D=JCtx53g)!BF2wH zxp#4N=Bx)q0ZPnvi~o14(z%k)4>o|dp8v7wAG2{q?XCF>=P4nM!u8SGA3#(QGDO{0 z&BL+3Y7rbBX#wMM>Hn)|v_l?8Tt9=Me*HJpfS=M%ND+&slh67SY(lqkRR3QwTX5R# z216wrk%vTq+|B)z4!TzAK!5P)e=RpJ+dI8ia?bAEIjXr zNoLyeBy>fL422JVF@UHNz%23swv_y*2k>yvXd2i9MPv-bu)c;QS_9H;(vSiiO%Hc% zMMK>G+3$b#=`2T$j>P^?jT&m(j1Vl|cqloJv+j-m*6f<4+r%>$ADHf zCrr`qUwGK@IEc_Tnoxo3%At9mb>)Nmf_y@x-<#C$Yk$yfC}PZ zqI>%z1Ud9(4f}Ezv=gX*Xa2GGJ7@e?#0ZQqUas799E2&tfhi;m`J?6dS&m@KxX075 z>O!~n(N~O+*a(hM=h|#cd7o*#)*esfZy<>iO@UOC+S?zX$)Uwjj5lbmTwtQ!jk_Y> zZq9vadb;;cm|e4&U7)&9j3S*648pI|^)((gcEq9`pdLGMq- zKmpM`+YJM`E*50x7OymBr<}(-k&j=%NK;nO#-e%sg{*5@O&l3yuF88c(7;+0K zaZQaF7!T2Flo8eg$B;7jU}E-c$ho)J1A=_Y8=dunJT+kZ(IuWBqkw^qjnKmjj-EG-TS|q3*ECxuKvl{7m&*RN2o-6(TdJfh^A_e zq(>-6a(&8y5%*}taC>ejpSUPHAFTP+pi)P@Q#?%ar+J|BPjYXga;r)2iUg+bbh8C_ z=HRsd@!yOv4cdg@QzX3@tn!UN{&qMtwZ%^IN`srhmdsDmzmsefb}IO}DW{_X!{@a#P}6yHlB=wVY;4O=-+p4#cZ9Wf=L+713+e~vKWogGDCmyoKlU=n)~ z)#l?rBk+zE6@-tCHx{h^38WpW<$aKGp6w>bobG7As$9nCQ{ef{2IvrSde;4HWf@fNv8^d-h4gb6>*K$dT@ochMh4`dGw+gs&iRx391M~DeV)yJ82a2yn7{?79ps;%~59F&5 z?`?k<^+5B}UB5;bbl^}(^Ti7Yj;|G$jAmXQzZICRwNw){_bQQ|y5qeG4nYk|D?GZh z0Ose5ue)&L{#A4-w+1kgP(ob+ssWCY8^`?J*kAT+b#`+x!@!wNLNqwU{n)&T6jkv< z^Gk>(%UfXcFjh9%_Ujw_kK3yhu)?jGtjM^Y8Z&^OsG@`oLX(5dT1CakB)- z0x*I<3y%7CuqrA2z-6D!dl>o!BP2`lYBcXHB}70ZUqT4F+;?_5qkAc%?AaD^E(+v@ zMMEV@&tQUuFuujRJEQyb7puN6S*Wwucq4%4>v7^35YM3MCg!il{*AKnGS%+YYa~1r zEsLh_R2F-EP3djK(KM&C$I!7=YsRecvd!xQg$dAJV1#Q^y%I8S0VTsKStqcq^X8I{ zZ-N0fuc$lm6A*+@pfq0v;j)Ajwu|7Oik;_c@kGm81V#@~=X1(XV?5Z&JOXe@@O=z6 zG+%?Yt7xxa0Gq;biRk&4n&6{uCGa1~TTf;%;2?_?%)DU5b_WDg^s)h_x#vb{8Exl1H z4jt9jt&l_0t&`Ez@C2=EV)q!Wc~{gqUN4>20DHMiwLHx);qm^O*yjjw3=o3T@IHkl z!bJoToA|i`L<4-Q%jGoeqm;Xy{Tnq?y+5I{1yq}<6w3)lNhl=B8@%D{c4hT zNf&AWj_5B1#O&U$ELyww^;|A7u74cPqv#gqo9*8nARfd?pRk37O?yJ6VLhYs$qyfT+0~D6P`osqd(wljfgW5j~UQq$VfsmhJJFC@#ec0Yz{ILcQLdC5@}-| za=Q4ubZCD5%-AC%GYnCk39&6d3o}H}G~l1VF-QJ!rp9W@BI~~Y{;d@jdK^P6VS=qH zXn19PWuewFZiN6`O=$KZEdG&&HMmUXIif}w1zCW@XvkGvrt{az!uaRA`m5i2$-X!$ zNW3U0AaWB_45&h3NHT;bAckpER6X|{x6XMR{*(Wa!b1`@QM9OypN?-Ml5=NB3>@9> z6Xd8tsAH%Yc!~=Xi6AwQ2}2LnWw23+DDHUZ@JS@jl^UBUOp-VX3nk*{5EFtdSl>Ba zXP8h?eH8Z2D`AGML3o?XHY22VG6s8fQQ*Y$({_GYRW(B3l&5EcW?{l4xUhV-zH91d zNR$%!MixX=`xx?e&72T03w!v|AhoBGk4^smWmPT<0{3 zARw?dM`0V40Ggi+BNfAzz#$gQkuMv1GT+?j(yGZ$vJdvV2yrHs1rrlrF+sY+E_ivU zpsEmsEd|jpnRtl_<*O5*CVuH~e(qrABJ~*B3<0(_+ zR{T$6MX>)s<1{IHML(0%n+FeB{O%80GOe=t4ovjdCU2ucyNa$$Z}VFeb%jz$)x2{R zZgIvmGDb}n53x`7a{cY6NkImD?o^^gXs5 zvO`ZGA%nfAkhUEa)9<#7G-pW9rr59bPc;Uq#h#sIur1^1PnZz1j)kpkr?8gZZBhNR z5kBO{?T=Ln3l$ddZ=F?U;K^(w3dGuVCBicm-?BA|amt^5#@UV|nfG9wyYH(odZwj> zxR$}(zw);iFgaZ02hxdfD~HRT1#B#jynVLIcb1)0IiHduhNNVE7Q_@p< zczV#{_si4!GV!{xnqi?87Zd@dbPUu-3*zU0F2?UqKYYp>5XrKoKy=}VkL>%OlS1_W z#Hopdg`VNYO7_cPR20|T`4T`I=>gc^k8Iy~IscWPa^umZz7*r( zrU0>796=LP`T2NsNF;nCqM?St-#Hm}%3|xsSKdxl>MZ+ZThI?AL1TL1eIf z&)L62_8UWC=`$W1!yW?uiz&=qTu1UR?>LSI0m=(m9(pT3Uz5gH6IxlMl)u}APsyJ7 zu&O2f6~yNlM0TA@787LJu-hpRw$$C2WoW;-lJQtCT+Pd-TO$pVd>2<2Dg_-@C&VJE zPl<4u#HoSya6DEWB%*5q@h!bM`6NO8z>qP6 zJ~kX@bW{-1Jnt|Si%B*xSEo^9cj03baYhD$P_$4LEaf+NbsaV3`?2{*@EG;F{n^ph zWBSq)M!Cdk=1F8qEQ}sS&@O9%L)nG>bSijBI#D_)6=h6eX%dVm=)t3ynrsvlQTG@w zInx;CQ#m&>av+Uex!kClr3Wjj;{nAbIFf}w6qVgVA~oTQ+S>9$s#ZSd^Zk1Mu`+E% z$jcQNY)oASF6x*dl$KSB(f)j9_chz4bNY*gBfbx{?&@#Q!d)3XY(NdjNX3mJ=vr+~ z?8}?;W+AVat_H8BP0&Ta8=MxS&=XHp`52)&X=k_ENfHA?zome<4jkx-TN#K4 z7;FIGHnD2M9GmgfoJpj3i zuh#f0s}ryFS4JOQ{Udo2`3<)Th6kBgA_O@3_tU3OGc%qY-tzMDwjGkv(o0o`^z=5q z<>)2+{ma_HgQV)>*%D&G=`IU5&DMVSRIPSDx$7uqrn_LVbQDTUOH($cX`&OWzIu0e z`}97TPR_KHrS!EPlb$HMJfBZQi^|XKFE37L9?yo86BMe;r2?k~Rc-x2tqNXj&}{x$ z>NzkvnrlBUJvck`*|wwGyTevfV*B2YCeYIyIO;uzHLq2W6r|j9=>4>{Qf6m>k6d>5-V#M_bRHS#^$kwSBH6h)JJ6aSFj_Ua2?yJqZ zO9T2F1Az3W+wFWao9V^Mkvyqi!-|K|y?;M&g0InI`a9>1GLKIx@U&?Pff^WF>U5!< zZE)bm+Oi&hqIC2Ry>B{tdX-mxy_3Cr$m^q|4}8EP_ih0RW^UrI&F)2u>^s&hR*5=>T-nHRNue-(86j*0HDXglU=Qp2Y=ygoU+H((y z-=}B!H)ctoV*ZP95dY6|zqt=FyVkAx{`sUWSC8%B?xx=sSilz@dejFPwz;Ib_D&VI za(MUl8CT?8y_MX}?QSuoYVAzB{di)!3A%G~D9L`Z?6S9E(Hm>GkIP)Lf#Wv4D}5+^ z?HLlw(40d1Y5FlylhIZz&R8ZOH005p{avqiY=*rmb9QUI2X@cKQdLN0PDEh%PF{&? zN{(;CM$=BHwU>67qN#jjAu_2$(tjx7^on4~9p3Am5|oZ4bW+6)AcQQ&VK6eB8{;T)Nhw>ELkRcF8lrKko`GMxdB(?U>GkKx%(zRJEoa z&ggr{Lhr)_H-0_v2`-BwRfEW2`|aAUQxOqouZ;o=QNC2&J98()W__qj;Nif)z@tZx zKrp{P;Ze0zF{S&bbhoh!vIU7Ja^nyKx@*(xsGtp?wSvH+1&%a(tcTybcdwF*ai!MQhwwtM(5w4L4`a&>$MH^=Cj_&v-!y;-^0Cm-zid4f0FzMQw;SWl=( zFg&bNXYUbdE<4=|{gv>{Prs3zx6eNNO||3|R(56RU-9?%pBrx6=mol5?pIu;Me6Xj zU#^!95Bid^oT8KXT5fc6z2tSpL}c)2WY7AfPh^lxvcW9IYUk_nVuE|h)CQ>m&P`Q7 z6plB`Sgkg;36rM9N7o1R^}cv_qx7bqxAk6&S5HYTgqzA9j`jqRdgh0y!7dRXEIN#t z7R%ed^UV6+*`eNy1-}g6{>{HFk$URm=Im?B4KUqW0dYna-M>6`dNY?fE>K{5ZPeI) z#UxxlXl(|izxK<1ylfIETsAx?`|0<)0SY^{Qlh@OVJDtgj6(zj&fKorKJjK_(PMK> zR(g5C%?za@&P&u`LPp4*YySRa*AG^Y=!e)3p8K0xwJhlKb7oguhG-&)JkR?99@9Q; zi*)=vS7xAEwdNIKKp$G>%E`$IS;^UMF4?TQ{>7u)f4tyH`U9Re3nWTq>b~uk7f)YF zbK#*>6SQx4R}|Jk5S#(i@0aY$=85mPSlkCPa4lV!n3p?uh!PN;Buq`>2>HW)kDfyz z8-bfMV>cpLdPn%-Y~|LS);-lk;BUvm*K9l1N9(zGZ~cb_xVtf`R9OCEZD@U|_ue#( zCUAraJw9nqR^*fy`n*5K7-X#fnR=`z#+&^Ull!cYAe!L#%+j1?ub$9pyw zUsui6E1g%}`%P1(4?A>u>zP!vyX{x)PvZL&5WL4RkK^Wgb`uW2!M7CK$s433J;uudgoi?Ju?B5J~}$N9zIRC2d{ci@-G z%M>VH4UgUKPq%9Y6kxL4$iT;gzG&c$8d!ZXuHU!{lwQL!%FfyO&1cdv*R}>SG;c1J zDIn^?6%aOOfrJ_qTeupZ_TdQ8{i=MDt zTVS|<*Jj$K2SoZ`J3K5J z7Hyo;2THY01wZSO4n+P^wcQ8_qDz{fwHv&w^~*ufzAz@vdo5980k{HpG4zAUn8AlE z5@MdB$~c^);eg_vP-gyEriAHSto#$z$sTr?uZUsVTR{iBqB3lH^ku+N^o3IO7&bAk+ zY�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 N{nz|ZkpVgCe*kOs>dOEC literal 0 HcmV?d00001