From f63b422a8ccce45709cae880ca62e01507b636af Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Sat, 9 Mar 2019 20:15:36 +0100 Subject: [PATCH] Cleaner XML format for .DIY files with less cross-references pinout update --- .../diylc/components/AbstractComponent.java | 2 +- .../src/org/diylc/core/IDIYComponent.java | 5 +-- .../src/org/diylc/netlist/Node.java | 4 +-- .../diylc/presenter/ProjectFileManager.java | 12 ++++++- diylc/diylc-library/lib/diylc-core.jar | Bin 273620 -> 273849 bytes .../AbstractTransistorPackage.java | 5 +++ .../semiconductors/TransistorPinout.java | 10 +++++- .../src/org/diylc/netlist/ISpiceMapper.java | 30 ++++++++++++++++-- .../src/org/diylc/netlist/SpiceAnalyzer.java | 6 ++++ diylc/diylc-swing/lib/diylc-core.jar | Bin 273620 -> 273849 bytes diylc/diylc-swing/library/main.jar | Bin 615578 -> 616031 bytes diylc/diylc-swing/update.xml | 10 +++++- 12 files changed, 74 insertions(+), 10 deletions(-) diff --git a/diylc/diylc-core/src/org/diylc/components/AbstractComponent.java b/diylc/diylc-core/src/org/diylc/components/AbstractComponent.java index a763931d..9b7d9f9b 100644 --- a/diylc/diylc-core/src/org/diylc/components/AbstractComponent.java +++ b/diylc/diylc-core/src/org/diylc/components/AbstractComponent.java @@ -294,7 +294,7 @@ public abstract class AbstractComponent implements IDIYComponent { } @Override - public String getSectionName(int pointIndex) { + public String[] getSectionNames(int pointIndex) { return null; } diff --git a/diylc/diylc-core/src/org/diylc/core/IDIYComponent.java b/diylc/diylc-core/src/org/diylc/core/IDIYComponent.java index ee1bfb47..ff1dafb9 100644 --- a/diylc/diylc-core/src/org/diylc/core/IDIYComponent.java +++ b/diylc/diylc-core/src/org/diylc/core/IDIYComponent.java @@ -131,10 +131,11 @@ public interface IDIYComponent extends Serializable { String getInternalLinkName(int index1, int index2); /** - * @param pointIndex name of the internal section containing the specified point, or null if the component does not have internal sections. + * @param pointIndex name of the internal section containing the specified point, or null if the component does not have internal sections. + * One point can be shared between multiple sections, in which case, the result may contain more than one element. * @return */ - String getSectionName(int pointIndex); + String[] getSectionNames(int pointIndex); /** * Draws the component onto the {@link Graphics2D}. diff --git a/diylc/diylc-core/src/org/diylc/netlist/Node.java b/diylc/diylc-core/src/org/diylc/netlist/Node.java index 4fe476ee..0b5b5fe0 100644 --- a/diylc/diylc-core/src/org/diylc/netlist/Node.java +++ b/diylc/diylc-core/src/org/diylc/netlist/Node.java @@ -48,8 +48,8 @@ public class Node implements Comparable { } public String getDisplayName() { - String section = component.getSectionName(pointIndex); - return (section == null ? "" : section + ".") + component.getControlPointNodeName(pointIndex); + String[] section = component.getSectionNames(pointIndex); + return (section == null || section.length > 1 ? "" : section[0] + ".") + component.getControlPointNodeName(pointIndex); } @Override diff --git a/diylc/diylc-core/src/org/diylc/presenter/ProjectFileManager.java b/diylc/diylc-core/src/org/diylc/presenter/ProjectFileManager.java index 179dce04..c8acb3ba 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/ProjectFileManager.java +++ b/diylc/diylc-core/src/org/diylc/presenter/ProjectFileManager.java @@ -21,6 +21,7 @@ */ package org.diylc.presenter; +import java.awt.Color; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -92,7 +93,16 @@ public class ProjectFileManager { } }; xStream.autodetectAnnotations(true); - xStream.registerConverter(new PointConverter()); + xStream.registerConverter(new PointConverter()); + xStream.addImmutableType(Color.class); + xStream.addImmutableType(java.awt.Point.class); + xStream.addImmutableType(org.diylc.core.measures.Voltage.class); + xStream.addImmutableType(org.diylc.core.measures.Resistance.class); + xStream.addImmutableType(org.diylc.core.measures.Capacitance.class); + xStream.addImmutableType(org.diylc.core.measures.Current.class); + xStream.addImmutableType(org.diylc.core.measures.Power.class); + xStream.addImmutableType(org.diylc.core.measures.Inductance.class); + xStream.addImmutableType(org.diylc.core.measures.Size.class); this.xStreamOld = new XStream(new DomDriver()); xStreamOld.autodetectAnnotations(true); this.messageDispatcher = messageDispatcher; diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index c30596a5f8520b1c831159e762b2ce9af7428f48..b3442b9c88d05f9fd9897af6246cf59424d1afc6 100644 GIT binary patch delta 18403 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 diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/AbstractTransistorPackage.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/AbstractTransistorPackage.java index 28ae3d87..22fd0b07 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/AbstractTransistorPackage.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/AbstractTransistorPackage.java @@ -87,6 +87,11 @@ public abstract class AbstractTransistorPackage extends AbstractTransparentCompo return index; } + @Override + public String getComment() { + return getPinout() == null ? null : (getPinout().toString() + " pinout"); + } + @EditableProperty public String getValue() { return value; diff --git a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorPinout.java b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorPinout.java index 950bedeb..b652263f 100644 --- a/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorPinout.java +++ b/diylc/diylc-library/src/org/diylc/components/semiconductors/TransistorPinout.java @@ -6,6 +6,14 @@ public enum TransistorPinout { @Override public String toString() { - return name().replace("_", " "); + String[] parts = name().split("_"); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < parts[1].length(); i++) { + if (i > 0) + sb.append("-"); + sb.append(parts[1].charAt(i)); + } + sb.append(" ").append(parts[0]); + return sb.toString(); }; } diff --git a/diylc/diylc-library/src/org/diylc/netlist/ISpiceMapper.java b/diylc/diylc-library/src/org/diylc/netlist/ISpiceMapper.java index 423121e1..80021b0d 100644 --- a/diylc/diylc-library/src/org/diylc/netlist/ISpiceMapper.java +++ b/diylc/diylc-library/src/org/diylc/netlist/ISpiceMapper.java @@ -1,8 +1,34 @@ +/* + + DIY Layout Creator (DIYLC). + Copyright (c) 2009-2018 held jointly by the individual authors. + + This file is part of DIYLC. + + DIYLC is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + DIYLC is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DIYLC. If not, see . + +*/ package org.diylc.netlist; +/** + * Maps DIYLC component control points to spice-compatible node indices. + * + * @author Branislav Stojkovic + */ public interface ISpiceMapper { - int mapToSpiceNode(int Index); + int mapToSpiceNode(int pontIndex); - String getSectionName(int pointIndex); + String getComment(); } diff --git a/diylc/diylc-library/src/org/diylc/netlist/SpiceAnalyzer.java b/diylc/diylc-library/src/org/diylc/netlist/SpiceAnalyzer.java index 1b49852e..8aade615 100644 --- a/diylc/diylc-library/src/org/diylc/netlist/SpiceAnalyzer.java +++ b/diylc/diylc-library/src/org/diylc/netlist/SpiceAnalyzer.java @@ -110,6 +110,12 @@ public class SpiceAnalyzer extends NetlistAnalyzer implements INetlistAnalyzer { } sb.append(c.getValue()); + + if (c instanceof ISpiceMapper) { + String comment = ((ISpiceMapper)c).getComment(); + if (comment != null) + sb.append(" ; ").append(comment); + } sb.append("
"); } diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index c30596a5f8520b1c831159e762b2ce9af7428f48..b3442b9c88d05f9fd9897af6246cf59424d1afc6 100644 GIT binary patch delta 18403 zcmZWx2Rv5o`}dsZk-hicTSP|LWknJpBqSk`BtqheLfIpZy+SIPWo6HlO$db$Wv7gY z{~7+hKkwV;bGq*Hy}tK#UH5g5bME^&HSm$Ta+I3f;4~ITNNnRd06;k*kdWXC=VEp{Q)5L zc(4*M#Sj(#s3^uFrf0DVu#OL>0t;K*5m?0G#351Igo^@TX+l&>2*V5%)3Dg4*n!b4 z%6Ax8wopGoW7G{AoAVeU|7Z)Ne;l(MUI3caD@~LBKxJe5&7$=5<)vFy9Ki){6C1bfS+oIg=m5XCp5YAa$H{;VGi}Ksc9+58doS(L9ZnK%!E6;uwvnY$Zhws}s zHon#6S-ZA7y_r{an-S>V-BeM&?TvzO_>f@HV+0bVFzDx}%?FlC{a^>qbR9 z@pkvzm{$uQ%_KFmh)>4N z9Z_B7nX(}vvOkS-}f?Zmb%;{wW)Bjo|~0S`S})cJz{-#!(hNb>U8C$D>Ki za(ygE$?tiNJl&T)RTSKIX z=w|H$)}#3~>mKi3IQ_5`Ryq>*s)NLKxFZ1{OsnN1omi5^`2G=L`D^(&PN#>-ZM4Nf zW}??+G{Ez0Ra3bPGaTD}&vf{%bI_$twNB0%Hy-kFwmE56G8_EdluI(KAXGCppF}KG zcj0uR&WpXgXnhT#twSH8lm6i9;@pbN`R=k)wsjt_B=NZF8n5`YmyB=osg0*Toy9lbpQ3Zgw|Z8c6i0BIKLQt0_G7j9 zCg1I5d+GkfBSJzHxt8(jmtB<<9A6DAn7#_P)G@?bXe)7~F3H5)O`+kE<}4xBzIA&+ zUt6fH(=506h23j+-e|iY=?SL<*w(ZAzBY;DUtY~pwuulBN^pCBOA|oeOT4}8zY^HRXBi#cHPFmoc$7o4T&zmn@F)>$ z#3AR_PgE^oIzyL$`**Ddl5~$g>%5_UZMMhYG#gv^xRL!}HJiwt7!9`$nC$Ehe#V)q2U&8C*4X!&1=PS<#kcXmWYv_&_yl&f#vm zaVsu`&!HRNyr>;hFRa8wL{3Ph-ahw2|9an;2)f`} zD)$j}n$)I6ONC#3mSty+C6?Hao};6{cCa2zJi_|sdDS_ig=Y4S6#t(2en-h)x84p8 zmwSw8dzK2!%c$LVZc(7K=H#{qYmVo`nb5S zH{rGLxzuwq&-(8-_q7v$vriSjW+Ic*Z>W^n|4N3cS1Oe=SKIxLWX;*98?lLE7e{yL zm7n+9{=^*Ly&tf{6Wwt$mGddp>01F5u8&4FBd_31%>!}@e~kESy_rZY}K`2<(*wCprRwpylC)K@UgA}^Z0Yetts6ybl4PGZxk#r$Hca|>rL@=87AKzyRB{N z6RCf;pUIs)w)2`%`Jbm#HVz{n{Cs@+DLEqFx=(#ze`N5dtK-S{uXbAToo<9rlq(Ni z5@P7;H+4_SUjk?82LCAPaHe3#RebUdTF+g*AULUlzdtEOY1g2+!V5l_XYvnb8Tx$W z6930m{;m;kscLpx&o9H%n@8wQ6|=-ok4S+Y&L)-YIpIwtt@Xj=wa-ECjQafo8J!N#t<)%ZrW|5El^mKCB+`i*1X5}bNNn4 zi=$&akrJ)=Bc-&8{@vk*^TnOls6SQUhGx=gAGV$f#7_l1_KFbXShju>)6b}F>P>#r zNaC8G(@dw6ts~zxmiHa**1twwI{3bS7Gtdy(<ldh+UVfs=1frCP;yf4UXrWzk|nv*{5dlgqarDrx_)ceY*9TkPez zqy1^^r)=Ic=$uuM<&pg;TGo;|C_QDVCEj2z=+ee!?`!KfSQ@RHCYll*?%omouxqW> zcudKe)oqpHg{Qr#d6d1qft9V)`Lx7uHy@V=aa~+2PKd@Ar{AKDUk~k3)&u9`l^9$< zD;}*`cfXKk%Fe!JpHrqgRxRtUM|&=fdESMFX;C)D_Og2BT_LUWu3t_ai2-BpYWnzf zjDZPs`ir3s(_cPpL20=OMf=5f4-;XOk~53aaIH9 zl=J~%HBu|@km0)gn~xkej9l;oiVKRPmyZT+QNsIg`k}buB%3Hos;E^RcO(>c@uq_RW+xZL2om)u;^yS8Fp1 zP<hQkD^r>|z1dnrl-g9YiBtKOr9@d5Uh-lkIndXmRCv1ZOJSWK zr@xP+8r!oC=fVw_!j0?r5_ZkAcoGGw`%aYI+?S{*JD+$_3Y<T?KW8}UVYE}x46n|$xqv>9rUh){Z-M+c=J1~lT{<(rDof_0fajxYu;V# zk{OACT!im0+_$^l@Iz1%@0*s}Xpngy?|D5hYBl*oYtbFfOb6~E{^`y9eA3-EvaOV(OhtZIrXGdR@hrD)K8h;j^}9?tB*QcqNM@~3LGU!A z`sm6?l7|Mq=V8`+;f!D4goT>OW8azX*c}Xbv!<~>rv)^4HxCw@Pm;YEhNk29Q}@#B zNFKY58*_~v33W;~F|+)sa(~-Qk}dg<4c^R~)%&7U=zJ13P4IB@j+Ih4$7>H8hCWuY zlb`7(>(?r*%39jaK7JxC+jMyto2Nw)0`YZlF=@;KHzZP@w_?VexrvnqFL=Qdda(@i#G8oNbyl+wLO4&NXkt6&l^Z8h2?4D2VZ zn_DoSTC;9FlMNDW^85Kq4`r1*4A*)ri4BvNcV;#8&v~gKC&8v6Nf-Q!_>K#>2uF(lzn@O1D!Q!B3NmPhCaxhu4;g#d3$l z@Ay!x7LBVE&hTrEO?FAY8kt>a2O4+1Uv*A(;qWy-x*M7AP5N=KdI&i)SVpts-TvnstOWg1!O z8dxZLH(a%hb6%pMbdn-3=Lla#lvgv)V~0Ma(85uksGjhnw*$5WIQOJ$C$)CdizH;1 z>dZE(G+6C@lb>|f8cAChw0wJUb+y*y!r1HVmQnoqtA;0CZr#d=_fId zT1}PAhjQDhm{93x=}N^0`BC=S9oM^t0dJ^<#Vg5|r7>xig7xnwey)6=WULoh4atAd zr9kVZxyp|3o~&kj80+%8B3P3q&*7$5_dv}dlR9DM(P#ZO90$Bo*6d5e&EQk64?ud^FwR|9-*Cng(wc>VeQ8go}}i+RV)6=R!% zdnHb5UN`N^JO*_~KWbZFi2LYpv#`{ooqMOE$V}*G{g$V}+VL?@PQKZqJteKh)i;t8 zyU`OqN;xT;lqqcum)tpnyZ9KxMr&x4oHuOsS)zF27Ugd?AEwvSrxyNoOW=p{4ke&U z`2S}V#LyW8{kJFLI_?GmV|6{^&@1^jdL_Ja-S9>hUniv z#v-yOo)VydH^NSa7yXL?0)n2{`2<;ffPoqfA-zlsC|uh=k~ng{le~;0#)e+ivOoC_ zwHr@mz-Ir>1l5Z6@gA&Wtgo&@K?r>N5gc>f zLJo78CP9=;HD&|u13FKC z>l7L#RCZno=ad4>`O0spoz44ZSa*FydfHDh@Cm(0sYB8qctc6O>{&<)c`733BP2=q!`N@zDwOG5 z>ME+T>oIb?CPb>QebZ|2VX64b)+hKAX@@I)yn-y7^0#q}7r#@v44pNb>%CX6n;)Uf zxhl9(q2xpy`6j`}@`FHQ*~c#qX--wVSL{;)10`B%KWK#ha;aza*1pATvlSDl^6Pd5 z-mA;%NPe&T2PwAXj=;i%=-jWhVOfF}Jjw#DNjLw4@W`4RT zI5xD7Q5smMNf=QH63Q#e;WQZV8Hs(7%nl9n*!JW_SX89+!6Gbm6dwDIX@7BWs|dU{{0V~?q0ZtnbAe{zAh=72;Q|ddu|(kWO)P0C#i$p;4F1%J#CCde z3AtCC_Cwn8W@ZEd4UvUFJq#RLYo~X1|eHq#i$`jsuN}#L6TfB8Aw6tCPwcN9AJni<`EX@E4l#I z6FFD{f(#I&1~8W&^TCuOl~?^Re~>yW{+QDUq8zxdT7QTUMJw|t`n79Al}{p-!QDep zHqL}$3=w`tBqk0i$j4%s;BG2605M?*@;Pb083k#W=Lm8k3-b$cXPARIg&@g!m~#lS z{2U{KRA(*3a3F=_rI@$WNXEqI5@O<@j70$;h8$o5S;=su&xg7jI(6h@r{j*?~(gN)Ad4=b2xgmd*LrVc5HY+~q;g330= z3@Ie+VvLZ&A_nk93eJSU6{OHd4DcX@Uu1v?JbcT!DF8_XF{B2Fk%9#s;D!{s83A3S zz{U!^L<;XXfB~eC!2_@%g&KY!04bah2KWGUdRE3h|`P5 zfJ;acY83!?bes{kFfs>X2nZfv(5!9K;V8@PRDejN!n!K(3^9?Z4iv!!5b8<3^4r?` zp?=o|g3#`N%}1>x3w8eyaAF0+3_3F4$jUSH0ac{-q~X3_bz?vsK^~d{AX4D50K$<% zkrg11`21!KP$Gq`O8^mk1`Y!Dzzm$TZ}z|gq|BfWX6%=1C1?>*i4xH^yS(GzX2jq0kk9MvO9@n7+zZYUnTL&2Q<}9zMm;?*B`E0 zXuWcC;l>J=*Hrijo5c69Gfx%zSD&Y@${+u7OD>sOJ-dCur^~y0t+spn_4bfzoho5b z*eFT1t8#>4HBU>j!wTc)^Q-y*&Be$};h{L@^D`G>K>V`q{f+F3%*$sA?4DVj?fLC1 zqDyl39@WeeA4640B;gkm&$>y4+$oZjao6NuCp)Wdn39>4J2L+C@GT#!k)*v?{5@il zL*|TsrBQ=eCGF~?AgAMLO9LItxCau{mc{Jv#Yir`OXbL2Naus|y zQ+PL}vqf(muesGxN6^=P`GH^gHm#wwd9JkXV%3Lh!>xY~+os#-_kC2JvUqZdO~1xq zH7VW*9AxOu^Q&=`xgGYVti3jG^T8S8Vjk+zqZfQq`Ja51CkpyRd&=&2^;oq}cmAE0 zh3l7<%cqXcCHBgAUi44g{c%+42Ztu7xgKWoT zqbB-X*$(cPmrpmHaVFEFV6<7RFLAOrB4AZ%aY%Xag0)~WB#893jJVB-ro%=4vq7^WCr^dc|W&q z0A{%Lj{med8KLR=N4Zf3Q#ou0W;U-SmZc`Ljnx zuc9-Q%9QC&YH#<^`(|!V9L!))|;nB zNF+_&gp-@69Dn_)XVsmVu4})GwBT21WdD3yE`KEL$a-){I#EC?%Xcp}IzNY4 z`GYQK5Ap zHx&2^uLBWbz*$nbFdh#qAl%MGKo40n*pdM*WQkBp2XF{-G6P6O%uGJnUyXR50$Ak9 zC-f4yjHp7309C|8M={U~8%{3)?$N;oo>qVdF{9B2h$02ow*VJXh;9e^5$EKVbzZ7s9RL#eorZ~p;qffkeGV%EE(+p^%Fmp{ zt|AmQ4eTSt^?NNW@>W@Hrh~;Iaa!tOX%LmGJ~kF95E^0|kXmogVbM$s8)HjN;W)$d zvB)o%<*J3)ehiWuW&6(JObP;mZFZ2m7%PjvOF!hjhga}=(R)el%P&|~5xj|iv8 z{CQ5E;?^e8`a-SmO!el;hx(C<>tiE7x9xA6zWCt6?VtYHXRUVGcUf_7xyE;~Q?ibH;{0zjtkT6kS4B7J zq*(mdlE&(wJJa;F`9;(XrZO6?n)e&upWJ&M#I_pJI3zQ6FXiseh-N1|sIFyPb7g~cFJqEx z_3V#7-K2Y2lM)vVH%%#&H_M54Et~KYs+y^LwD073H*W;)_4bI}_M{B?5_Ucyd!g49PvxW zTDkVs!dHoi#X$x2<(zbv!w0Fs9SCBO;WX^5ZGTMgUXt zDsW*z?`_kc}E3P)53rY=>dSWN!eTILLKVRql zG=qD5k>K?^Y0)x~W>&2$<^o`me9sY^&fG8g4)%R^j#(!=O8XKYC;AD?U95dbC?967 zGm2j+l~}&JTrN4O)=n#@yf|FE8|vJ(>D)SoH@F)sb+Oz1W8@3ds70Q(5-n!7vvQtgtq)l@VpS_BWPt+}%HW9eosz+1p@vXyuMuOqE7^PX+3>W`c z?=Ht?!4!RFLAOrPRBPS+UqdS?r-qcrUH{PFZ(UfJ)o=!N4mRWykzE8-YoZta~~cv!>MF~=!h z{$jod<#AJ=_t`T^B~jRUhZ+M>Bewe^3a?F1g*8_XK5RSQUAFkSCb_6kMvetkcHYjl zFfbk@XDj0&9xTrH<0bm?EJMy+DMH9y>CscXdo|s1-zqVu-KP1ps=b#{bx@C=Z}Ro2 z6;ESAo%fGAvyF=R^nX8evZObDp?X}U$Ct@TO}TGjNGjBG&i&q!{i~N1Ikq4D(rwqS z?GAk7=HMNp7IxO#E>;nmSy`~iD|eSO(-^+UIPl8RD=f@v;c@H_ibq#0WFzQu+bS;) z-^AOGTnK-5wu?%v+r*>vZZ5T)$<(nWz0e!aMUP$;Dp}o;lQ*$tox04YQRs2$(Gb=8Jv{$5XvU`g}6)Sgpvi@a_uw8{gdnmL?U39K%}4o)b!knmw^) zJ-YB(MJQQUqf+-tY<%iN=&-;2i#uE@+gl=w|X6cww9rm8Gnh3RQXrSzQN9kr)KtMoR$@1$t$xLLpFgWsD^2}>Mx zSAfo$1oY$k*1}lyxq9EXSH-Bl3^bW^&R8VrKXnQykc=}s$)rfzm(ZstJ^lT0wn(dG zs<=YoT!6laKA-NCw~D2x`ZImGw4wIQun4AAJc~+!QEPte47rnq`|c%CJHc?{!sL$J zO8byv`%Me-(pag*x#$Lx2+wz849b%$DV;=~13!SOPOp@QpQY&^)&)xXiwSYaU*CM% zNHF)4`sP)YkjQV-y;1rqb{K4LG56Ezj$ZG!`yEx~f_}PlerNlL z-0#GwoT@18=x}_W9`f7Ben9T&ldVvD(*aKh^TJD3eV>ZYq^f9aJPMLj$7%DAA_gIUQebYUJs6C!)?HrS;1?M4$eD6xopC zr&~6@4C?M$`!$t>e5`V5e_b8b^5b@rbT!SbptUDmlvO#Vtt%5YDyik&<190V^(G4wI!+(WacJv@7^}-0%FVQq_{5ch!XM6GlT*J{UG{Sbj1xFIWmItVuqYvqIZeP->LEL;+QIc*zpGJxiwx9rB(G7?A8OkGEbUuh0L_I_RNuT)w{$DD%)F@ z?DxihujlM|1Eun&34$`iG1zAlzenBz+RQf_h2mlgFTEPME9{hA-N3(=3`KI=-ABW%bO7>*PiL@Dz4H@M0g*8)bd(9OF)!&#*UN`X33@zL?e;-)? z@XE+VFZ`#WoaM`u8h4+%4!;(6Y3t_of2ef9Ct_YQs7`~6aMo-e?#UjQERJD z+t~=^9?yKw>8pD*egSu1q$`jXwyS+?iink_P-z~}l@2vUK@*8f6t`=JD2m$J&ubP zem{TK;co3c8COxpp4Tq`chf&4bQTknw+U#RA8XS_UYkzk_(?VE9#PK=~yS7vUkL}pp(I_-A_CIeNe zU6c?<`p|R?nE2Rok-Rm&<<9mh~9)m%SfWd3B3Zk+{in zts-zmW_>jyb%j(xtLoNVby#Y5#!D8YEE+dp%1j=MDA_l?mUCY;4=8i%4oBP50uU@W$4GvD4ct z?bV;n^YIgV_215PUrK#j^KyyQB|UGE^-Y+fTg5Gm=Nb1-8|$;5fIEU0=J_9P`+T>U zPo|u9E%)+raPp-jviO)7Y}T68Rp6!_sQWF?eD4sYsM5<7a+Q{&9(r3cd%mhFOOuTPpgQAR0|kiaj>FcHCJ11?mEuC^z2QTiXl%ho=;iqf~j~$x~*b8UfaCkID2x_ z1p89^~Z*w;75J-e+GmjrhYFcGq^1X2G9)*(B4|WyHcfB&L0}e%Qm?^q5 zLbI;lUwB{Z|K^?Y?8Mmzi^+42c{S=zy%*TNHVE~U4iAm=WOYu}vPL+WI$hzs@nX{8 z#sz7%kjXiGT@52&q~p)A4}~6eA)O_?z|w5CcgD8{_OL->`Qs_EFW*S;NhGo=lx??U znQmNeF_HNBu#rmm?)k}Eq}`%B8I4pTJ4KC=1j(P9gQ7H2$bOACf34r5xqaLsjH}b3 zC9=4lOEULQ)!h-NR1Z6r?&Xh4-KmF$MQagWcXHSlz5R&9;r%52)cp1$_*~s5udh8~@t>q*6+4~HSi94s1PV{ki^pYu; z6ievD+#!6z{wX5uj?N2r$};{JrB}8(rQ>K?4F=Vlb)I|5R@!_bB&*8lOX}_PIG^|G zQ(n!xGrqllG|7Xl32xR{wyei|;}&&(Hxkp_z3uCPlbj4?NYTnX%eQ$>$4oe(KWWl3 zXisxN>*@(c&-79p09Q_V_V<@z4Ews*pKLju@ie6*{;v^ zVhxaj!XVZf-Z_HFL)hccSIgkw5LOMoXCB7FpALh%!&o_3a*SZv!L(tlFnsfN7^@6R zqL0`U2;<$-UqMzHX=$>5iL$vcYPBOd%l zQ4e{eSY4R(a}=u&ON}u!te`Qh5`5o0hCL5U_D@(VSl->2W1q0_wilHBj5UB|@MrXX zV*g%x9BTsOkH%5^AI7m~;CucFtR5`gCa`9(?3h4X#4?FW`$^Pa?IhL()=PZBUWH}C z7wkD$F6>LSDYSml6zYFr3e~GkV~t>5+%(o0mh;o7fB6}-eZe!R{qY&>DOfM^73&7e z)UPOi?JH_ea~6#=b{4HSwJ(p(q58l%G~T{B)UV(-wEo?1SWDR6=r^n(EG539_=E50 z{m^&p1>{GGzuz;1D)VS+!soH#?@d|Cr8!y5NHe>L#;>)?e2 z2>j~%7o-He=dths30MVdfI2VTxHZ)fDT>!p>t}! z|E~baZ2#n#*n$`V&}wL&)`tR2brG|VpkIQkwzol)k8$4@*!JT$gaQvn_bDVACrZ^4#*~) zo{?p!fi>X9GCC6_SD@QyP;Ui`f`Zt}0xl$FaP4BaHbn{8 zy^2oLE%^THtJu|7q9FGdG~Ba4p!k+R=O0)Zq@5*YCh;>+8zUhHq6dtVRK%XB;s8JW zz_P){e?t`kxhe>g1NGNXV;9#Ttf?C8UBhz5E>u&99c-ebzU7HeVZ)GBEy#oT0qak| zo;7qiqWB3JX=#9+#V$55f>u9KyJ zeXE%kWd63#?hm|e$P5iqN*n=!!~wQu3(N*Be_`RnL(uORrKgBQTct7O~p% zmhK;`ItoDpb&&rg$nx<6RvX$8_TGD9(0d)r3tLWIhpY^}-^T^O$aS=ZWE&8^(HSeX z#2U-q#qiJ2mk5}Adl%{uIjF})4p=|g2eZMn4J-$2xdygCIQah+ z1vg@1(;$ZMIFyfH&~-3kwP}R;d<%`Z9j;wJgJ787SSC0!*55ETi(u#WF((-Foky@I zztJIB4`YH$5GD?iZlgJ5-iEM4E3q^yqTr={%mv1zHy|EAShS617IK^8E3pI8lpvH%7=0bm6G&Niw)5V}c-pxmJTA1sf#nOT8#2D&-Mv}5{ouez1d?)B)J-`oVfcf-bJ_Cjr zT>gW$_YdS1kYzzNlDk-1WF@9Lmudb38j6e1#ecwv4tQx7dlc!TDpNx18Hh0PACfN@ zY>x%(fc`?LyE!?~(LMn|6LcM1{jzycD(4=WFoiuRoyt#*VXb23}3Zp?*??DIR zP-?qj@S}K~KaM^QgQG+Iy!mh~)t8!pzze##4#X`X2@}CHl9>OlDp_4LOjn?ESwk0; z<-dQj{paHD;e;S(anEq)~f;xD`xg0t>A$B;dzgEIBed z$___2U4XbI|7oQHXn@6uz`f&xg*4{P=-NYOMRS9uaun_}7$Ox+snr(l={YaRa z6^&}4C@P_g?|_kYKa~2G5XTAEpM&fF@<&0ILpWreS3U%RCj(LNQXqyz{NK+*nKNm1AdXTj*gyo0 zjz}ULx)z)+=a)DOWkDCZ4lY0@U_BA;2-2rL*Bx|XAwmRn9h`VmNw7UuP?Q)Qm#V~& zlhQO8WB}cWamb1t3WL^JD2UI(kRgK&vD{LZ`iT^>N(f!N2Xc5m=P#cK^v!`5H5QWn zArqig(aa9zgy}zd$;g8%(Svn)7~+4=!y6<}6hEJ%Im#eGL#u>Au0j-4F8oiecv48O zQi|#?mO}GHffR?l$(@2V#LcJ%{$K`#KA6G%rw@s#9=7B`aXx`A!2=B(Y5iN54D2Pv zA&=s3u+`S~zZ&E{Pn8S;KXjm=E7|@S2GcCEHKDYrK^Myb%M3jzwSo*C2wiaf=zbL3 zBf}xjE;e!q?43fvpt;p+6z(Y80q-eOM#0iE8i^`-Y#loL^#vj50tM?_aah51Y^?!Q9lRO`<1ywl#T?gm=4-A+|hob|j z0cg+SN{PnmM+wDxlMvMuQsUr${tNcP;1DqiMiK&tz-?lH{6DT@Ox+BZpq9)*Z;}V+ z%x^NZE;Bhm3Fhr5{RS0eRe%E3WKf~&Mm-Fkr~V6)fWFWtPyZg+)YK5`5*^C&qXVds znF5Du4QmD%QB4%}ey(fFUqyOD3CM-EH3uJv+^i^7g%uzI$EndIEW$>*IZzEJ4UQgp zO1#xmeD(<%)5Fkpu)}gdLmHeELh_~R;X4g^f>VAl-Hl)-4Z19K(m>|5gi-UmH2X2W zu>4~G0IG$Du7iWSRSczS(V~O^%pfp&kLxbCn@jD-yBLNOj3t+$TC ze0p%07M*r0u#qA;6zrA*$UzA@wDn4KkjCa1s=0RzAo|a)<#F6CoGRo+;Xk1^ff;l- zX6{Vh{M;mDcE#*M2ItoV8qiYwuz5{03 zDEN^cZOJMOF6*Ko#c6;T6lFkLa*P4ecGBnC;PRX1KJKOFz*$FGJc6?YDx z`OoMEl4Y66p|FXd>tN5GGDfRm8PR~)7$LXerYNY#xbOCN^R7ROstR{u}r4ynbTtX)Aqf~7c9Qq2L z9_=0P2GO!1t9%En3J0N7;UIwKKVz5NS6s6c1LX{=dhp$F6zpNa!T&=6xW@vu{aq+* zg$3*m1!(@+jkHE5{$YZSDBdvsdxDjO!F*;gloffO2Gdy~BUlgxi9moJ{KmSUJC%gE zP%fL&sMF1Y$3xLtn0rLhtHOfgb$KhK~3J zm~Wo}`g1^UC=;XDL!c--4%xk*W`{I{+5e+?#EwJu$a%0v>*>CR9VdW{uj}`(TQWmA zx&@{8;IY8zm;YnL^d+?TDzoFz7wPJW(xFADFU+Ba$sOpELhv33P7|^G;`H$k_aJ2y zbjcndtrWwSMLEf~DohJuP* zIDWV%?9vmGHe6HtGnJwG_rR5ov(}RaH#eM%X_2`zi@OG*4&wAT)jQACv?P<3q>nGgx(DWnc9Px`WMZ!)WJ^eN>Vk zeX}s+hqQ&XU;{sn5e$TGkca4*75cbbC|5yHYmOWkA%kE&KTZ|4hY^5kz7vFNih>h@ z&`3WkfQ}7IShIc%wYhl=nj(MCy50;qGu(oVu0RXt!Gj!SMU=0q2puT=-nT?72wPG{ zHIafiGEiF(O^OAq=~ex!LH0a_FsN|yFGvc16o>BPZ%#4DpMo5hL5>g3_$wO!!&ej9 z=Uaqg>vbW1#eewATK~h3h4^qX@`NDIcXj?p^L1ad4Qu@MP>rN8I^*?)A@H&O|Ijn^ zvHu+tFiXVne^}$fI69<*xVkOMI-w2B55komioN>LzsrFVjHv zoS=h7z5@flp${|^$4Md4+&ALP9}8vK5y=BaYpSOHkT@ zeiM~2{4hC(5y5W75wBqsU{Z;ZhRHNW4kjE}6_}jCO2Q-ps|1s47;d8Bce*`>i7Qw{ zPXO2tiwlh>2NFrM}cOg3q^ zV04474Fl8H3|RUz`=p;elw^TFc@h;uKU2MDFtyMzRH-CzYN`x_@Cl*!Z{p?;?q z;3g?|vJgS!;;i`*T4IYvr(us)e%bL5;z!as7|Xa7=W6Kp)IjDE9SKPoHwlRp5fdsv z?001%q#uCzQVFR=xqRewPDilT&ra^pY&R85@ z+a<~acd2kZBD6yqm)m#t>9-o1Ng*b>IJuukh*|9B~l^WbA0Wjx)trq z=+WLK^7Ui18V!7|>*_mww=^0bu+Eppg>`ObUf4=eAQX*shH}I$PWTIt&zQ9MEfW5fy=u1jz#L9 zgxNoOKcWh(6Q}>M?05HP_SP+Lr>dmKq1w`W{NZ z-O@_1pxoD7w_P_Z)Y!NkT|>S}9-Ukr$(pLGbXC;urmztHm*3T&znmG`E;&UPF4VP$ zJ6+o(TZ@$(p4LFVFqO zZ}Uinaa{k2uTb4+tzm$HXFWA(RPN;L*KA+eR6-1IEJymXzaWoZ`Tes#gPY86ms?I; zKFI1tBbumf@8bBpREfzT+Q0RhgI(K+T<6G{8@^HsJO>&LO_PoD+BbGmf3{L*aW!Wi zau-ZL`HD{X(emmTr4R?T!7{B|`15FrjLS_;PO(dlCmnz8OH}LnWG1EX&W+nJx~Y|1 z(^Tjpq2N&+l>>1=-LSwx{wB2C9-E?@QcH*T}j z=TM4XygF|Xl`HaS+|1NyE^rnXk^e>GaLNs(@A|@oEc)_inx*g0URG6qd)K1ZzBKP~ z*0|;UfruDR{DRpteG}rNH2iSW_nfb1v^sEphmvlTCqC^v(eqWckC}VH@TB3ga<|Dd zi!RR?ubCswU11$B)-p@v9Jy}$C4ZpKc}zU%HaB?3jf=x|;X>9jJH27FU0woiJSsJx zZ+~LpJ~M(1PhnwE)@ho@$&qq+Jli=drholAYk89OS4--J&{aEazUl6>9vijYPLYw_ta1HbA?AZ8-UZ%`Q#B6^ z%A512AIYCQDtyJQQC~TfEPnQro~QD2{ceE{o@db<1gix)nqi1QGI8waON_me-}77VR5+{jBh+}D5pC_;c2%3XZNhtWeu(}!^PZYWu8oi zv}!}0$Yw%`ES~Yr{&X7U-0njLB^+}sIplpud)thLUU4nY7=K4jzK^rl6%MT4F)Uv#F^umFx*RBD@P(@PnY`9w z_pC|a$vDDGe!>yqA4k&-KTdvBZFH(=^6Xjc6FBp5m@v`0$vitgo0oT7-t+jy&Vz-D zuZm_}qy&9^Ed1=0S@R~wtR2b1pRQgvxmWii?x}##UA zkfe+rImxuoN!CA%TAO>GJ^oSgetKA$H^KGwXYQNEKi;=z1@=k^z562Hde){0lbjb( zzKl;7$=dvUF5=1`!&5lt>dFs{?spSnPfz6wt6q>*ZSVR-07;#zge@PC^4eQoYQDqh z%tdr@b9&j}cDt^$KksJ5N&ZHsvx)AlmbIm)r!L-Ah)M3otmD$@7D0C>SpuLurC63HB(Qh z;z*4Z)wV>V-A!~A#3l2rDz6gaI+7KJEJd}t-OFrpciQrObPe;(LJSN%3F<;F&%Hdz znOTosPpDbBUtT}6#CY}^`5qA zdfwf;#g+-H`zfle!a&>+7oo|wCl;oS#tVD;=0`SR`ymG zwLR6n-^}paO-ULD^xnQDu1rikF|1?1H8w4&b-QGP>)6kGq~$AdSBJwy=5e-IYY%N2 zqG}xA!;b+~wc1BNym)nB)3rv!cFnRWWxGI)(D$8BE{Lytf{m6?xj5M`lB+w!)*~JM zEjW&CJb2`{CwcsYoHa`}ttzvy-!QdLh9WpB6U4rb*$G`@Fub^SD5K=&Z~q4oo8i^J zxdSh)->I{1uPacw?>w(ql(_I*)tOQKzSW4A4A?8(@Kae;y;W6#L#835=hZevB^6zr z(Rh|rf#~wxy3Ze+32idcBc4W8_TMRc8RvZ1)T81D#p0XoAI*!epJ_a@jip-8U!QY5 z8@@I|-KouWUxmw3g=Vr-0sbA0UHe#M9yvr3)5gzEx8yBRMjA;3 zQ|+hU+VYhhN~iX79;0)b?Owm#@zLm^oN2>3=OEJ2@>K=w&npBxb>9+GFkNVWRl2jG zvPOn{&~{wf(PcD$A=HY%YwCTFuB@*kV1+Xe`t4N2=Co^t)fmwyTTN=={^W zp;>kHrOk^6gMvcr%Qqb`4=zn(55}HpKmC5g3ZHQJWsSUiPVv+L2Tjvrr#^j64{i~m?GwB6v%U4JQ$36JCKcM_P)5Dpw z*qk9HrS*d{V*{*sV>YV~6Y4$sTDL^UD8-za<0aXAtZw!87i^@A-g;bGQ>6ZI>%3{s zs3O}^eb}6%g@auY_vxFyEsUM7EZ6hGR2n9#ma|*HpzRHst|)?(7O#hE*NZ|gaT=Fv zO;MyCo?XCitXJYsLFY@$hdroYuo;(69+rDDJl$c-`O#^oXUR_|=f3$|oL1_sneqI) zXDTny_#OoBA4@MW@lI$M;pXfeP&jVew3;xT7%=pPD3~FuHOnQ4l`0F9&+}el+tg<* z+1@DNjeF$7F=*^UX#4YHp657~M*h+zDjVbVM@``RD}9#`;A~5sSe1N6(+A1>XVyvG zjS>bgaVRBNf1e_*leSsj8p&|n?5QetI51QirtM7p;W%&EP-NcqNv7nQyh5phcPN?0 zm+wj2Lqp0Xb+7S0R?ler7S&@xU_ap~(Io`aq2CumWm6GdNl0(X3$y$1Qte@~^{uZ9 zipR0MKWclNW!>lp+d926%4Glw|D?{+>nieOLfzecoJ;G^_ss|37Yf{qZEC`PbsZTO zR0ca8Ip5G@t>^9@Y53v!Oe2C;BqrKVmQ^M%@bII-%lC>lrk?&T-)8Gn3B-hC-Rheg ztPJB%`h8zQt2*x(Q$Z zbV+e1Ik4a*Zf08P;hCn}W116;(Z(6NKe+3?qK;_FyicZ_W((NTUytJ1AhcC~dhsWC zdydI9`6o}(L2|>l!OvNpiypn+>~Zz|5X0(im8C^lB`rOoO!(!wDEKQ)rz0!-^(9P% z)VvnA|7(_|t*w>Gq66(d*MBs>Ex@fcSQuaAC_0T*tCc57 zZcPO2WHbk;FtjeL`qJNO8f=*GNzWtDJ{6E;@BZRds_i-Bvt~Y4Ou!%8axJOeNAtk; z4F!R-z>9M2ejdU38g0RGebUO@C)yv!sQtUtYuXK;d^_Kpu#dYv`!%W5w1b)L`=cq( zbLOW#DxUY~sr2jEoCo{ae2Sl6dCjl7?o?s;HR7kygQQC@7FD%BjCTgyPMP$xYS_-I z_fye7yv(B>FI3;j6qljX$0irl?AJcuS}4yiG)R5Oi;c>}kexy7r_a8XkS*5QKlJ~1 zG(iC!O_Y24(bfiYh&NorfhMsURgG5hMYXmjGcRPYMlzB{NKrO3Woj#w0j;fWsr-iENPW zt!!JRd!Q-3=6=f}{v8F4bzsXRE^Y3X;=)+;)y4jxs}JhxI<|jrPl}RwG!81%>Na2H zyh@R+&*$ekSVqZktHDfnJ@Zk$@hB8dTn+uLl%2j=%wHB4^L)IUOEowU3`hxjaF-_m8*TA!GEWb zr8?0+?)>D9DymB-`)a35KPR2g)Kj;)D0M^7pB;uGIc zQM%l0S6G8yK^(xlLbmpz`U!P>O|q@pQ~ftd{a@HJ+^aR^54>;EWV65d^wHZur3{Rv?P z^;^ov@PmhM6Bc`OI?dVFEF8@msoY}k=+2*a_7`-0hgZLr)3uURfA{WOrpUF^_D>?u z^#A@?Oc}3qZezNPU)d@-3VSW~&vh1`witG$!L-RW&7=T!f0jk5X2Zcx)I3KobiA-U zoErD@-QmcNN4a?F_rI3f*`lp@=-F~Rgdg+%G34THJ`c(eOa)|_jjo%jNief+f#+hB zE%9w$bmL zoZvK;8k*u{YdFZ=E@Xf704t+S>l0pU&0yvv#YNVko~xv1o?Atz42&!cT3v^a!R^LL(A8JPs`Qirj46CcL z0G1~bntNbk{%RezYVsQKLVVu3O$$$RyKLGbr4fSI`ZrWcm%c*}y= zoqWfOP~g2TawKQ?u@UjZ*t3k_xc*@bVv6CB&{;2NHuiw@WEei;{(f>WegmK?=N>EPJfpV>+!V@OECu|$Cvcra`mpah3E z0j6@V?~f1-rX>mFKu&$F6tTFxQHO+BvNH>p!88me8={p*u^1%gN*oymk*utwz>LvA z2bh&9cuXz;XO41Un2^kAZj3yVxygswhh$0wF_cKAW*>$Y$+U@KIB>AmloZAk3ulyN zFfSP3%&G<^8Ig%QhPj1gxO6ao5E*Vg%qD_x7-C)_nNbtSDcvSiSIy1M{5)Wm^(V|2z$6-jvz>pJ7yC>^1Uz* zk&J;a<|G*$Uz#80CL$vegc$&6Vc%@8R7~q3-&Npu3M@NVNQPsoR3c#BAc~l9j6Nc7 z7>TJwGUPWg5~!kpO6Xf1fP_R7lncUeRGQz$oJAx`<1zP;%n2ff4QVG^5OW(r7E^bt z@iGJR6hYh{VSXZ>>~b(C5TxJ<<`j%n$wnK4$Z9+Hvb#1IM!waA({+eJfIEo2@~0#=2~mxe!7d>g z!U3!blBqq2Ek=U!JcPY~G~EYf>}73d@Y@M{9bN(|!`!iAjL0Fm zwm8LPDCBm7jD&=nC=1}h_rX|N!X;)$me7%5;k4@ue#g3UkK{!b>DJ~MfE zMwswtbAp}(^ijISz28~(_S)2PBW3W7c!l8mT1;T~`ti1loVQNxf7|LfyOc*zRqyuE zYQwu0In35c#OFw6>a&rpGSH1`8xC2 zmmp=4iu4Dn3YCh6`O+~h`;>K$LBHCE-xL=XNpa;ltUMnmlStp=<36009$`FTwk2|) zgD?JGp5}{@vWPbIwDQP_x%Kus0vS^&yWJ2MaQu^If?1TS)soLQ&$IgP!jesJ>7E0!14B zE=u7Sm)-3E4Jvl}_HTV$^$n{RoK;nP(!DP9u$M_ms>-u3NJe)6NqX$oJ%s9YLL>N2 z*~!PCmBny2S=+ifHSWqMTrSD@}tuSqw z8TjSC>6seOAcJeSBAY)%t4-7sI(;Q9Eo8o~d%bW>ymD7U+Qu^f-Roq3$0|)BD@Cl} z*Hm;?6x;H-QTwv-0XM1l%7Y(Y)Q%0(7@BGv^GrRJ z!!4I_ls)IM@$D_sCoeU3w2GW(Wp7<7ZDv<|&#gPDBxXc*;gZ73$bbxT+i!*h3g(OL z%RlH(J~g(!XCnONFcVczsLsmBfowgQ1m0fWNe7!nlMhQ@1>Rj6ow*+V=C|-|o3X?6 zj^<_E#-A=6aS>av3pRQz6?wJlp|4!!B=3DAso0FS-fc@VnR)RE_j-9(H$!Ry3F0ry zK{xGO&WN_o#KJzUr^RBLA7{c_#VZICEQ(pH)QLBFCS`l*Y75M`qL=f9sgA!HK_1l%6UV({a(2=8{Apg z?cB1M((V0iH@3)H-al^AnlQir&^JkWr1|)vjxNdLRxu`3?Dyn^Z}N(40`UhY>*)TF z{CjUuc`Xd<20#5P7b37)@WZ=OAqrcHATu|y3-D|Qdv0N;VNU&RtPvHQp$D<^i0pO> z_9U_(=%-=%kooWN0EUL#KTr8whQKb zD8q&^!x@tntN>!>aw}E>$vk|6Ii11pGdj|d=vAlSnI+LF2|KqVG=MUyfo9fRMf^g$C% zU|*%YI*^Cx3~K<+SW5Vvi;V++cLw}(3J|ZnstK$kT%Y5>O~mV_Hh{cqR^HGB03^iN zlK>;adT0m`k&L1V(1>WQp90WEpg0Ybo5La26#&SG%u4TKpc{j{;ysNlZJ4JaAyMN3 zjY|PVf+b5Y#~(t;p?9*{q$YBuMXw@)hD(ToYGV9CyG~3 zEN;ftbwB%6;>js_Vm2XTHe_@yWYn))slN^v%kAmsjTkf}&{_&6f7#9S`M?S(7f(O{x>{w)agl$J8`6itRW=SWZ5Dfpwmm z3=bC{U)C6rRPC0pHJTdVUipO~c=SY@U%=3J5;h$forUY+5giDIUwW4K`@(Jsk{;-d*$-U$2N^y>Gh2gD+h7 zVjm@#E{AL#Y2U~+4rOVH$8Q~f{d}U;X!!s~XweuORcPLrxy046UJ2zTF8soJVa(|G z8h#zvIeSfG{Db_KR-?`9jF)d85!hbtFt%vmRoPo!nho8!WV>at&dc<%*=|*fmjeG} zUt;F*%v1OXZVc5jvCZLZcB1C^MG4V+Q%^L>2nIQ?FGuR>yW}Nbi4)R#*LU!#gZC4O zlkfT+pRx|bJ2*wk7SMD{M7musOC<^Ku|F5peeaW1uMcHT-KIDHr_}*N!KaUZ_T6AK z7`R#3npJmI(Du**&e5ac5{;VHlZDv+yeCR_&P+lhPZsX`WZ4%P-QuP6PqykPTQq8+ z)VJdxw8}|&7pExv{(1N4lXM9aA!iK>b~lvsV>_miz#cVaTMcyb*BRVW9)?Zo$e<`cYLJ%5PY zYw6FOm&d;xubB?4p8Uy`HKD;~mwxgoWwXkiTds~)+gnfe^DeFS-Bedod%~yBNoAGS zdHObX!igZT=13My`Z782W9{&vvA)*WWF;4Jk>{T}mYd`ros0Ul!KiVbaHCW^Q*r*- z+S&FKLAjn)RBGWR%3dr*CB3DljhsAJeq6yTTfMx)G1Ny@cv`H9{S|+1r*fnlzWRLT zPbyD-?ibHi9=$Ff3%8s}T1aW0vkJK_s_~qlATXEKfczJDXnQI>~v0zbyC@4bYMWQFXKVlvu4H$)#kSx67nI{In?2w zKg>Pw(UF>6i;5B*yUF>zA)S-^1*fV5d#KaK+U$3VcMRY5dzb!9qx?x7p6#mBdg|?0 zUX|yqaz>O-3HNxohX#XrERJwF_GLF}pU+Z$>ikT)I@|NSHRxHYKydqXB=-87oD1hJ zE4dzeTkT7g#W^C(I~v!@_|z$V;WBrKrCa#12KUN!_euvYolK|L^I~nZk4+>!r;ED3 zat>v6u@1EHE2g;<+`GOeJTu62SFDb!D31i)j>ir>vC1OQ4YYkO=%O1)IndF2xZ8yD zRLP-(R#!zh;(esGqYNZ@OE)5pO~~sAQ@^EJ`1m#O+ZXJmpQe{AYP=%eVXT$&34i1S zF3Pw*ORH8GI5vF!w0b&GL~!$fwesZD)uzvfPwlMQw%)z(Q?Pci@$&qH<;?8?lbWiW z=LhZ1%Iy!8EX^YHdB<948h#FZfWgwe+Sdz;!soSMds!T z;>WsUN3jakk-UZDv;I-q@tK~SYDr$7zaFf(by+#-mL~6+h4;z28tU$J=S8K0KCQ6D z;q)%KdQP5-HL)ZJ0e+GS1t#IzEb@xVhN23!*Q{E(eB(8BV^2AVJGkG?C2}7A80yF1 zcTjNY$qoNaLt4!Z9a^Qwlg&k|Gguyx=}9BmcA} zfn8?7*D~bR<e@Fs>&y2`z9$ycKEGL>WntHK zsM#y7%_m_r6iC-0tlaiUDOL8Wok==DS(f1J=JWc#kYmxosUeL= zHQO!h&T0-D@l~zq7gTJa!~PE$eqWBfBhSbfnjSxJFPsEi-LnCNN1a}h)Fh{_h*+cv<<=#17cg|gBx2cz8u;=yT5+r2RZu-B)SsqgRnqBQCFcm!E6$Yd)~6j(iwBcF zg$-SL!E(-4WAcO#kMWmx1PizO?O$~(MH_3i!TrBjwQ91Cu3Zk?3Xu{D7<%Ee$!eA` zXJMRrrz0md=*e04DEsOw{5Q<2_$tTLEAoq;w1Oe~CbcgdmzVOYoqkv5S3%a4kv`b; z)ES&BBVrlP(OmUxC8QY;GSu$xe5SUkI_KbR*z>2pHGA*7sI&S&wA`q^`nOSi9h4@n$xgqF{}C?}cwjVshR-I@x&8qz zc670UxUns+N{njqK2mGTw2$^OZw_tF45M4Jc7LZZYdZOIzWl3W{!hw+nZ5~2yg%md zPyehF$NKIPr@1U)E|F5ovB>dQ)8U(Kx@PIE7jtFSHaI_I{T{wUxW;4TD47wZ62Kx^ z^o3($CQ+4Iq(qQ`|8R?QM;%v=*yQ8p7;|+JqPgYk{LlAW^}ZEahG5Kp9W)%5(6s4h z>0$WZbTu>pHy&EB;GJ>g3$`a++Y|4$G5M{gB!+KpQODEb1c9aJdTvQ3F8YJz)>jUx z?=|#k5_72{#xl=>`s1cv(8_sysdO%*l{Egv&?D}j6z*K9aU*eoXcf1Hl2-RP8xqgA*}AFoRNV>h)F-rFC1Qz5V(x zCT&s;A-gvf4R=}!1U_lRx<_-0`dV3h#a7&+WOi}4Fe`WAT)00-x3h2o5G}pLR3qZM zjZ+@H%jrl}LuvYT;+^yN^yOTtVdg%SYh2$GnJ$p8{d~}vPxx_IA}BeK^VVbEN#m(3 zk*>`~spn6fa7I`vkW11VjQJQOM^kbq&&rxRNqheoNvr$spUNTL-q`*@WgqsP0^m;jr5n^*fft5JS!xu zTd8a`On*t1ITjzhP9>4Cn0PM3af>BGet-DKpmK+LM^=I8_fBuUQ_p4I%r|_)C}KVu zo#hx>7La2>7Uj^WW7A+yCbHCbVVJ4v8M#*Yn(z3D*UE|BMbQL{ZPrZjA?-Wz6mDkT z#7IT)MEkX@v~r8lGa`=ov?G==pOb~^EpwwHz;T!s_5*4#o$m*Z z!c=Ae(1&U8003VP2CD`D9hhPV|H^ZN4ugOI3`P$E@O@vf6{e7J@*$M!457lYLx3L4 z?;ipTVJbch1p`s{VL%n8dBeaNm|{i%Yna;Z(#8=0-Zp}qqku6?Jx0;;>)kTj7;qZK zy~a@c)nkAGT&5fcPQuiD95@Tp(s8shJG)eW0`-?Q0eHcD=1IT>rXiESDVTQc(tTf0 zeZm*if7ch3zi$dKh2;XL05h0&PNDv}r_uU(Or!Q+O#>%jKHUs(5vJiYsC?fHYER-T z8mIqPRPW6$WuHa)ZnJ3Im9wZ{>TjsN?Ki**w%70tFo7xa9E!Wnq2<~+;5@S1|9d?c z6q*MN_~7k*q)*f2OXvVV1Ue8^fIj>D-%s|n^I-fua10T8QxCjig9NIe6H~SSlYnUU zHFt1%9t~P!0pP|ChY;@s?kCEIl7ZGs0Q@Z%d;sGiF%ZrN4lMv8h(YXILlzy#YYcP% zqO`|gE-3IF(1sOVze9?eagZV#@d%a*eDWQT;)g>HI6io_2U0o=hrLJHKY^H@AO>n`XbCuon6T7T@XUfVo1p~V!2bJ_eJu=>TL$18^`P}Kq+FqU3KY%Age zZ$KDgF}^mwDigA(34H|T++%U8lqg=t4R-Eok3ia(&*0_?poE0K=zW*14{B6vD3pDB z6o)~RAAka4y{zJN(i9{V4+%-^5n8V#jyLjvO+NrGINs48P;C3EVT|Zq%>hzL9|IkE!GFR4-xF{(yvXe+Z38)lKZwcgar&$g zQaV7lR{=En3E8u2hFH8{>`#CP_E7+1%C8W=Gd}@dq&D4=S54R5_ z3eb8D5JX%v2!4!df{dj??vLzo-STc%df(rnyaZdB?jQ>Ea1y28<3Y9c-2t!;;c_1# zd>zZrYgK7p({Km%a!kXro=Ny>nWyV~2Z_DmmyaS>(uY5unrjW-~6%fK$1 z4E}h_ia1!37NCc}ph%OGkcjOGJ!lw`<^)G!O{ntQFx43UKa7faXPgT0j+j|DP9%jV z@lPm;?=d6u1yPCrjdoqpZ^%sX6oO6v2H0TJe-La2!IU;p%y<)$^O!@h8=C+Z;^m)@ z#{WBD@!vt;EkGEY*#uaSXkqoAizukE1u!8UPyOujc~_`47oi~{wI@me&}R#M92Rat znx8g^nBT(S;uhL9+b~AlfiPa;$PN{lvVr0z+W6s*N# zDECY&_&e{B!~-=Wkm-IXvG1vxFbAr}{0Cr$ZHfJXY#ri8zg?vB^G(jSv#JeZ% zEdx|d)eu9wXTCvgSpwT_GC>8#u{ahaxPLAJ{BI}qn4zL#P_M&%p$0(u4(2H61%XH# zc34hN!Q*b!=t2vktbBtX6a>&7{U7bysli>a@jv^^)O`jCv#CiSYuu1-VA&0wW zVql6A550DjL1}OFvS0%#8vQ(MCDaeL!YSk9<@~=kn8P`b=0LT72&KKFh%yLmEGIHF zo?tS_(o`r4Lf0O6;fi&@;FoJCxI=~$M7qTlKjV1~G8hb{y<e93iB|wA9wyD4=iw zDD8Fp3Oq`Kga0BE^q_$>ah<4UIt`8m(QK2ang*b7cj*7OTf)Fj8XWvLmPxdbV#6fZ zMT27p57MG>7{Vaw0t#NIMMqv548C20K^CwBl0An_M)3kFO;LBPQX?TNpI0=CBiF3{uH z5z$2RizeS8k+0CRbMGLZrAA##&|sm{n}5A-!i&zG5=y5f$okxWJg|Vi3^;kjHnRuQ zoi<3|HIxMRgrUU%+hzuP7;rp@Xs1WSRpg=zR4su$qDIW9Xgo8P;Xh$W)rv~9Kq~Z5 z+B=GxL0d+&#cwl0?MTmwS~23plKD9MbjYe$(O&_@OZ zOJuOrUrmhmA} z;Laharsr8uFD@{rOc~{*u%JN|!=RWt3XZYhIN`y%1%ux-KwCWY(38RMzMTBM^8{6Y z@49pkynsj7C1mZ^(SbEtz?YCZQWJ;5pRy*9*2({L$%r26nO7eQl%5q0l!p~^?_`K_ zpj%RCbI7PJUlfGK9?yTq-)9q4G?{gG{9)4+*=ZnOUGeW6*;+cng#h#I`%X@Ftp%x1a&N`k(ogZH z%#K5L2o12cVJ8IT1UJ}m@FfV4mIFfV-4Rp_^qAV+-tD;*w#RNPNZ^1v6H+aJRkgx) z-HdQRg9Ac;!)R&5E-J-|;}C!YeUK24bP;OrZ0N;BXph15$X(e0PH1*P7Lqw33;8#9 zQR)~h4Ja;&L${rNX8xZaLF#Kz+Pl?C1uDi6iaq!cOyI+Dg7+U{IlvJfR9=<`;(X3RIV#!E{Y=6xCl=4J4|BK*QI0S#P7ro{f)@e_B`_!q%9deC!FXOAa^6q?a~ewja+v>yMGx;bh-H5{ zq##8(mLBw$*llCUBe8aGp!QvW(%$1OJa~r>hnyXbz%~xG!Zt*~{8lXV^2>)q&s!KC zftIb1>O7QGq4a-0+1DK2pz^o)amW!)2|r{c@+}(3&$rMRr-E7z*=6#4`=Wdu8qTnq5nsuqDObe{ooaP#=;)5ND(RFGm%5@Aew#c;m}`E2JoE_Iz>leBNd}4hhq%OwCBkPPcGNMcmrSP z{~SmO{O_LJ8#EEdAxG44!jKh-CDcmn64c?FW9Tp)gE{FdFozZVvw~$oMhX%sTY&WV z6e9^q9kkOI-V-T-2{aLh}xHDV0kuB{4l`uk9|q<3z@=k)WE~z068cnhWb+$gG|5FMmhdssJ~bkJgJLj47&JMFg1q9; zUKMsHA}8|&z7+T2KkghrWAWXXo+OBjhe1=t84}zZ(}po>?-gVZ?xTKj$Vu%f6l9Y? zK`99cY&U~JKG0PH9daQsc&z{i*+EZ990S-a0X-2R8-p~dyK4VC z3Moqe$|I{*f+S=_y&f!^)I1H5m?M47R@)BSH8KiI=uq#O^2yJ@x4@wGV%>qow zV$NE7|9%EkVN$4N_P)v9Yy-es?*RV)JSt;oOZF>3;y7s5?L8-V=m0>c_kif%Gg)?N y$n#Ja0FHcw&ciHrPikFZbbk*3%Ju?Wtj7AJ(4!1`fMaMda;Kq9RWCGVN&X)>NE=xI diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index 9e661e6fbf1d38bd9c5068b41494deea5a4d62ac..63f7194df5f173831945d62d21bda9baa2864f05 100644 GIT binary patch delta 13466 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 O+yHfw5C-ZD%>MxaOAjCb delta 12969 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 diff --git a/diylc/diylc-swing/update.xml b/diylc/diylc-swing/update.xml index 0b2404e0..a08a32d2 100644 --- a/diylc/diylc-swing/update.xml +++ b/diylc/diylc-swing/update.xml @@ -2586,10 +2586,18 @@ NEW_FEATURE Generate SPICE-compatible netlist (still in beta stage) + + NEW_FEATURE + Added pinout property to all transistor components + IMPROVEMENT When in "Highlight Connected Area" mode, the status bar shows useful information making it harder to forget what the mode does - + + + IMPROVEMENT + Cleaner XML format for .DIY files with less cross-references + BUG_FIX "Highlight Connected Areas" doesn't follow multiple chained wires and jumpers