From 921b503057263e01dcff83635333574c4d7be988 Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Sat, 2 Feb 2019 23:24:06 +0100 Subject: [PATCH] add striped option for twisted pair --- .../src/org/diylc/common/ObjectCache.java | 6 +- .../src/org/diylc/presenter/G2DWrapper.java | 2 +- diylc/diylc-library/lib/diylc-core.jar | Bin 243966 -> 243995 bytes .../components/AbstractLeadedComponent.java | 5 +- .../components/connectivity/CurvedTrace.java | 6 + .../components/connectivity/HookupWire.java | 5 +- .../diylc/components/connectivity/Line.java | 5 +- .../components/connectivity/TwistedWire.java | 151 ++++++++++++++---- diylc/diylc-swing/lib/diylc-core.jar | Bin 243966 -> 243995 bytes diylc/diylc-swing/library/main.jar | Bin 575564 -> 576324 bytes 10 files changed, 141 insertions(+), 39 deletions(-) diff --git a/diylc/diylc-core/src/org/diylc/common/ObjectCache.java b/diylc/diylc-core/src/org/diylc/common/ObjectCache.java index 7b29facf..d4d3fff1 100644 --- a/diylc/diylc-core/src/org/diylc/common/ObjectCache.java +++ b/diylc/diylc-core/src/org/diylc/common/ObjectCache.java @@ -64,12 +64,12 @@ public class ObjectCache { return stroke; } - public Stroke fetchStroke(float width, float[] dash, float phase) { - String key = width + "|" + Arrays.toString(dash) + "|" + phase; + public Stroke fetchStroke(float width, float[] dash, float phase, int cap) { + String key = width + "|" + Arrays.toString(dash) + "|" + phase + "|" + phase; if (dashStrokeMap.containsKey(key)) { return dashStrokeMap.get(key); } - Stroke stroke = new BasicStroke(width, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 0, dash, phase); + Stroke stroke = new BasicStroke(width, cap, BasicStroke.JOIN_ROUND, 0, dash, phase); dashStrokeMap.put(key, stroke); return stroke; } diff --git a/diylc/diylc-core/src/org/diylc/presenter/G2DWrapper.java b/diylc/diylc-core/src/org/diylc/presenter/G2DWrapper.java index 2500123f..73df4b3f 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/G2DWrapper.java +++ b/diylc/diylc-core/src/org/diylc/presenter/G2DWrapper.java @@ -408,7 +408,7 @@ class G2DWrapper extends Graphics2D implements IDrawingObserver { BasicStroke bs = (BasicStroke) s; // make thin lines even thinner to compensate for zoom factor if (bs.getLineWidth() <= 2 && !(s instanceof ZoomableStroke)) - s = ObjectCache.getInstance().fetchStroke((float) (bs.getLineWidth() / zoom), bs.getDashArray(), bs.getDashPhase()); + s = ObjectCache.getInstance().fetchStroke((float) (bs.getLineWidth() / zoom), bs.getDashArray(), bs.getDashPhase(), bs.getEndCap()); } canvasGraphics.setStroke(s); } diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index 8b2c7d5ea3088d88ca4146589db93569adb4c533..20714dc86d39ee7d51d05fc834452fad1c4bbc7e 100644 GIT binary patch delta 13850 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 z

aHdmg(&F5s2A8uetSSiKTNDi3*B6}^9lYHp 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 I4g#V2KeF5DN&o-= delta 14098 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 Hs8s(CAwE!Q diff --git a/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java b/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java index f81108ea..be36fabb 100644 --- a/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java +++ b/diylc/diylc-library/src/org/diylc/components/AbstractLeadedComponent.java @@ -18,6 +18,7 @@ package org.diylc.components; import java.awt.AlphaComposite; +import java.awt.BasicStroke; import java.awt.Color; import java.awt.Composite; import java.awt.FontMetrics; @@ -322,10 +323,10 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp break; case DASHED: stroke = - ObjectCache.getInstance().fetchStroke(thickness, new float[] {thickness * 2, thickness * 4}, thickness * 4); + ObjectCache.getInstance().fetchStroke(thickness, new float[] {thickness * 2, thickness * 4}, thickness * 4, BasicStroke.CAP_SQUARE); break; case DOTTED: - stroke = ObjectCache.getInstance().fetchStroke(thickness, new float[] {thickness / 4, thickness * 4}, 0); + stroke = ObjectCache.getInstance().fetchStroke(thickness, new float[] {thickness / 4, thickness * 4}, 0, BasicStroke.CAP_ROUND); break; } diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java b/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java index 59419ed8..395f572b 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java @@ -21,6 +21,7 @@ import java.awt.Color; import java.awt.Graphics2D; import java.awt.geom.Path2D; +import org.diylc.common.LineStyle; import org.diylc.common.ObjectCache; import org.diylc.common.PCBLayer; import org.diylc.common.SimpleComponentTransformer; @@ -105,4 +106,9 @@ public class CurvedTrace extends AbstractCurvedComponent { public void setAlpha(Byte alpha) { super.setAlpha(alpha); } + + @Override + public LineStyle getStyle() { + return super.getStyle(); + } } diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/HookupWire.java b/diylc/diylc-library/src/org/diylc/components/connectivity/HookupWire.java index 4e854e6c..f23cee31 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/HookupWire.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/HookupWire.java @@ -17,6 +17,7 @@ */ package org.diylc.components.connectivity; +import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Shape; @@ -67,10 +68,10 @@ public class HookupWire extends AbstractCurvedComponent { break; case DASHED: stroke = - ObjectCache.getInstance().fetchStroke(thickness, new float[] {thickness * 2, thickness * 3}, thickness * 4); + ObjectCache.getInstance().fetchStroke(thickness, new float[] {thickness * 2, thickness * 3}, thickness * 4, BasicStroke.CAP_SQUARE); break; case DOTTED: - stroke = ObjectCache.getInstance().fetchStroke(thickness, new float[] {thickness / 4, thickness * 3}, 0); + stroke = ObjectCache.getInstance().fetchStroke(thickness, new float[] {thickness / 4, thickness * 3}, 0, BasicStroke.CAP_ROUND); break; } Shape s = stroke.createStrokedShape(curve); diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/Line.java b/diylc/diylc-library/src/org/diylc/components/connectivity/Line.java index d787fe85..d3dee978 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/Line.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/Line.java @@ -21,6 +21,7 @@ */ package org.diylc.components.connectivity; +import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Point; @@ -81,10 +82,10 @@ public class Line extends AbstractLeadedComponent { stroke = ObjectCache.getInstance().fetchZoomableStroke(thickness); break; case DASHED: - stroke = ObjectCache.getInstance().fetchStroke(thickness, new float[] {thickness * 2, thickness * 4}, thickness * 4); + stroke = ObjectCache.getInstance().fetchStroke(thickness, new float[] {thickness * 2, thickness * 4}, thickness * 4, BasicStroke.CAP_SQUARE); break; case DOTTED: - stroke = ObjectCache.getInstance().fetchStroke(thickness, new float[] {thickness, thickness * 5}, 0); + stroke = ObjectCache.getInstance().fetchStroke(thickness, new float[] {thickness, thickness * 5}, 0, BasicStroke.CAP_ROUND); break; } g2d.setStroke(stroke); diff --git a/diylc/diylc-library/src/org/diylc/components/connectivity/TwistedWire.java b/diylc/diylc-library/src/org/diylc/components/connectivity/TwistedWire.java index 0a0737b7..c49ef436 100644 --- a/diylc/diylc-library/src/org/diylc/components/connectivity/TwistedWire.java +++ b/diylc/diylc-library/src/org/diylc/components/connectivity/TwistedWire.java @@ -17,6 +17,7 @@ */ package org.diylc.components.connectivity; +import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Point; @@ -53,40 +54,29 @@ public class TwistedWire extends AbstractCurvedComponent { public static Color COLOR = Color.green; public static Color COLOR2 = Color.blue; + public static Color STRIPE_COLOR = Color.yellow; + public static Color STRIPE_COLOR2 = Color.decode("#FF00FF"); public static double INSULATION_THICKNESS_PCT = 0.3; protected AWG gauge = AWG._22; private Color color2 = COLOR2; + private Color stripeColor = STRIPE_COLOR; + private Color stripeColor2 = STRIPE_COLOR2; + private boolean stripe1 = false; + private boolean stripe2 = false; // cached areas transient private Area firstLeadArea = null; transient private Area secondLeadArea = null; + + transient private Area firstLeadStripeArea = null; + transient private Area secondLeadStripeArea = null; @Override protected Color getDefaultColor() { return COLOR; - } - - @EditableProperty(name = "Color 1") - public Color getLeadColor() { - return color; - } - - @EditableProperty(name = "Color 2") - public Color getColor2() { - return color2; - } - - public void setColor2(Color color2) { - this.color2 = color2; - } - - @Override - public LineStyle getStyle() { - // prevent from editing - return super.getStyle(); - } + } @Override protected void drawCurve(Path2D curve, Graphics2D g2d, ComponentState componentState, IDrawingObserver drawingObserver) { @@ -99,13 +89,36 @@ public class TwistedWire extends AbstractCurvedComponent { componentState == ComponentState.SELECTED || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color2; - if (firstLeadArea == null || secondLeadArea == null) - recalculate(curve, thickness); + if (firstLeadArea == null || secondLeadArea == null) { + firstLeadArea = new Area(); + secondLeadArea = new Area(); + recalculate(curve, thickness, firstLeadArea, secondLeadArea, false); + + if (stripe1 || stripe2) { + firstLeadStripeArea = new Area(); + secondLeadStripeArea = new Area(); + recalculate(curve, thickness, firstLeadStripeArea, secondLeadStripeArea, true); + firstLeadStripeArea.intersect(firstLeadArea); + secondLeadStripeArea.intersect(secondLeadArea); + } + } g2d.setColor(curveColor1); g2d.fill(firstLeadArea); + + if (stripe1 && componentState == ComponentState.NORMAL) { + g2d.setColor(stripeColor); + g2d.fill(firstLeadStripeArea); + } + g2d.setColor(curveColor2); g2d.fill(secondLeadArea); + + if (stripe2 && componentState == ComponentState.NORMAL) { + g2d.setColor(stripeColor2); + g2d.fill(secondLeadStripeArea); + } + if (componentState == ComponentState.NORMAL) { g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1f)); g2d.setColor(color.darker()); @@ -148,6 +161,8 @@ public class TwistedWire extends AbstractCurvedComponent { // invalidate cached areas this.firstLeadArea = null; this.secondLeadArea = null; + this.firstLeadStripeArea = null; + this.secondLeadStripeArea = null; } @Override @@ -157,6 +172,8 @@ public class TwistedWire extends AbstractCurvedComponent { // invalidate cached areas this.firstLeadArea = null; this.secondLeadArea = null; + this.firstLeadStripeArea = null; + this.secondLeadStripeArea = null; } @Override @@ -166,6 +183,8 @@ public class TwistedWire extends AbstractCurvedComponent { // invalidate cached areas this.firstLeadArea = null; this.secondLeadArea = null; + this.firstLeadStripeArea = null; + this.secondLeadStripeArea = null; } @Override @@ -176,9 +195,81 @@ public class TwistedWire extends AbstractCurvedComponent { @Override public void setValue(Void value) {} + @EditableProperty(name = "Color 1") + public Color getLeadColor() { + return color; + } + + @EditableProperty(name = "Color 2") + public Color getColor2() { + return color2; + } + + public void setColor2(Color color2) { + this.color2 = color2; + } + + @Override + public LineStyle getStyle() { + // prevent from editing + return super.getStyle(); + } + + @EditableProperty(name = "Stripe 1") + public Color getStripeColor() { + return stripeColor; + } + + public void setStripeColor(Color stripeColor) { + this.stripeColor = stripeColor; + } + + @EditableProperty(name = "Stripe 2") + public Color getStripeColor2() { + return stripeColor2; + } + + public void setStripeColor2(Color stripeColor2) { + this.stripeColor2 = stripeColor2; + } + + @EditableProperty(name = "Show Stripe 1") + public boolean getStripe1() { + return stripe1; + } + + public void setStripe1(boolean stripe1) { + this.stripe1 = stripe1; + + if (stripe1) { + // invalidate cached areas + this.firstLeadArea = null; + this.secondLeadArea = null; + this.firstLeadStripeArea = null; + this.secondLeadStripeArea = null; + } + } + + @EditableProperty(name = "Show Stripe 2") + public boolean getStripe2() { + return stripe2; + } + + public void setStripe2(boolean stripe2) { + this.stripe2 = stripe2; + + if (stripe2) { + // invalidate cached areas + this.firstLeadArea = null; + this.secondLeadArea = null; + this.firstLeadStripeArea = null; + this.secondLeadStripeArea = null; + } + } + // hard-core math below :) - public void recalculate(Path2D path, float thickness) { + public void recalculate(Path2D path, float thickness, Area firstLeadArea, Area secondLeadArea, boolean stripe) { PathIterator iterator = path.getPathIterator(null); float[] coords = new float[6]; Point current = new Point(); @@ -210,8 +301,13 @@ public class TwistedWire extends AbstractCurvedComponent { } iterator.next(); } - - Stroke stroke = ObjectCache.getInstance().fetchBasicStroke(thickness); + + Stroke stroke; + + if (stripe) + stroke = ObjectCache.getInstance().fetchStroke(thickness, new float[] { thickness / 2, thickness * 2 }, thickness * 10, BasicStroke.CAP_BUTT); + else + stroke = ObjectCache.getInstance().fetchBasicStroke(thickness); double segmentLength = thickness * 6; @@ -220,9 +316,6 @@ public class TwistedWire extends AbstractCurvedComponent { for (CubicCurve2D curve : curves) polygon.addAll(split(curve, segmentLength)); - firstLeadArea = new Area(); - secondLeadArea = new Area(); - List firstCurves = new ArrayList(); List secondCurves = new ArrayList(); diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 8b2c7d5ea3088d88ca4146589db93569adb4c533..20714dc86d39ee7d51d05fc834452fad1c4bbc7e 100644 GIT binary patch delta 13850 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 z

aHdmg(&F5s2A8uetSSiKTNDi3*B6}^9lYHp z8)YLP!91a;}m=r93?Q)02c=OV0i}0YU zS5%-WucOtkpME~=p~d$Zmd=x#Q?z&Tdal9R*GA%uh|*Cu2|Q(>`m$^&t?nIZYov~I z;gj;5Pj!;E86>^R;gh1F^PdB?1g2VY`ZSM6E$nMJEmcK6W7bpAsh1^%ct$Z5JG10U zNhiJyoQyYlvaoWK;F3xEkQL>!4ymhac!&~>|>+$ZLcYYZAhYgCyO^IFY3VK>jvXi)_ z>|OHtiB_M(^=uy+)A zo39KYzh*Z_*vvpU=Ug$r+Y7%@ROpq zUx^RtQ=({vRE?cwIH;tYp#IMnj}Nm>@;)>zC5}z+)Owqb+-YQfbD^_>H@i5;F||El zPinx@kH&2@+ayq*YX({^^Vf~_c_oD=RAvTZHI61^g@3=&D$L+>If1LzNZ}A==-N%8 znacu4;J0YjGlkM_x`b7T+sR=mYmB;?G;EfvXcF|jhvV~12~UuVoYE_4s|20hst&tp zo4ulU)`Z=8ZFp)$&yjgox|_s%rq%gruGAeF7GL`9Iz_tVnwWX_bUJ^DQ~c=qdsWj`{buO?8joKXgWoR%>U>=!bfK)g|_t;A4Yhi*-wZ zq_VwD8@}I~uB%5fV>SAF1dd1zyo5{c3kdNaJD~jHsHxN8&DZ=@P9(I;HHuwp8Qm>= zXD%tBbgtXTVnE&W#`fAJuDs=!U-KMNr!#BGH+@7;R9}x%ycu@j;c+vvgT9)tpc>o0 zxtL0Nd9kt&Io6-{mP!PgG(4B;qkZ`Jw@bJJsgotSB-m%hX4ym?+(9e^NU&r^zh91h zyoa*}wx2NUR%5U53(VUyUd`Y@{+_!iw_tp2%lm&$#4$K!Q-ZS&8|YN4v%2RoeC!H( z^u|lPIb@(|ubyC|lAQY$v52mUcDm8Nl5cdQrxs{+7|wpbI;VV=f7N?agn2X14g;D< z-XL*-Y1<{uqT2#@T<8t#MTIj~nl8z$i0`0FF< zNtl8cHcY{L-t^J zw;y7TF$nsDNPu+qN48;jjz40D$*=y1GbU{U2w4|^*kg6(6Nn`yUDjmH3B(qw)1M@G zZB8P4v3k)-#0-=3Cqd*u>IM?LmjV$VtWJ9hIf_ZYQ;0Pt@2yF`AY?yQ4+tXKxfev} z`GN_4_h1k=(ANbMd`uyTF;=$=K>{$@6@u7cQuH+8A8;Bm!{0dn`BsfSI*shaOxVsK zg7C5dc~q1W)jxv>Vb~!Io8FCKWNt%F1xr&1yqLs}6<{Cb49s^rTlLCKO%La=W)=x>bd^B#c9;+P1=@ZyD_$QWR_Nkc^?`#%Dz;&ZQ2 zzq5!I=2&(XI3hN96q{^BQOj_GkUkXPQua8$*Pa)(3?*=93?Fd7dy*82V8fKPDJ;B~gfx(G{;{c++$ zmqHOvZ02-gbdBDBG#VlpNo1>!qa_m+)zU^PDz$Ya@~9OF(Z_R<^UUPHbI{TckPoeO zMqOwP2{FW?T_yqg1rkOtMwScb`;!dkaI72Wa0QwhjwoQ(k1((!k~|nGi;Bb$*%3L1 z2tvc?wsVLYX5t5`FjF*HELw_X{qUk~m?b;<_8fwp3PIT;KvfJ?iXf`4SoIYe7J+Es z(Z?-uDkg!b?|@5YUGz<8Zv?TR8O{Tr1XTJwB8TP53agHwKIg$=1Jz1Ug?FW+zUL7> zG$Ih;z|JC_R@Qh@g%@6zm8kB9CeLCgi!Ab$VRO5u@?ZFZ6ywpFIMuS zZ!Zv(pE1SQbxa|Q%0?mlc+dy+hvHuXLPJ0f-pc>^D?Znb9*QD%t=uT!IbKV&^D+t% z$J+UcfvNQbsC5w$#^W?@{NP&!NVou<;vX_9uu8ldh>&s`IM9^{gb6qAyKoA89ipOQ z0n1Wpow+-OV4l8+h+xgJM1$rYHW3^@nmAFAY<#hLVTuPg3B~eFPP7pyaPq3|o~m0Q z4l-z9%R2IrTZB1Bv+$qUrWgZwzT74s>J>o$i6J)QXbjulj$^Gc#7;AeVO013AKO6I zxzC6y#1g^i!~*5QLtGgUi|}KSCt%pKE*$HKMTGFQ&nb$rhJmqE1aoEmZgLR?-#GEz zL?;e7n)U)mCAJQ3NpcnljL z_Y6p(q%|x7!-8J}OoUwdnh`w>_CLIl?mAb64A4LX$lUtbCWiiwCw>Zb5`Z%_aw!3k zM9(H5*zY=;jA4o&a7;WF;lb9*Ckz|;h;^UL`U#{eaV=Ge0MDPn@h3AZX!shQh~csG zc)IQ<0uI3Y7QmPegbS0U{6GIAUG@s*-h8ERJK?Ja@9KbZ? z-2c*$QxINEQ;BJs_z2BV3NbkI82DU}0DlTX^r(C)(S&v?(8!4p8qZWj0FU$X6LwyA zkRKOt@vZCEJ7vPOAr<_RfaV@y{-Nq?%xfS!8Gwvh1ZY4;xG_ry4BVhYfU#>}AqLXx z5}=AM*!G6WL}1gH=7~O`0Vfu?@Y!jwvhoT$ShEjY>jN7@t%= zV-4qGOb=`c4LAtFgbtoXeH@w`(2-EGy zz#OSSiSU{*l6fCO^9eY4=_yq-v~q-GI&{WT19 zOeMg#Yv3{lTBZL18Bq0Xq9-QVK$D$8XijGnYa|5&XR`>fJ)2n3uQ5;{p8%P15H38a zhqlFYrm|5{C4g&vQnwTlru%XTQm-7~kJJ(1uLdynOL7o4oP?e=y5lMsl_GFSugg(? z!ykKY^j8is5jNxkrnaU(nhmH?F2aY6iz}w-X(lwOxkSTd7|7O2fP=Y2zvnP8{w@KE z#9K z&Kw>8W6%2EW#g9*2<0XTgTj0w@}ZU{A13Tx>KV#b zh^XP4VXA$A)eKNh{`Fw9h`JUMQ#GX!G$s0rh!-5$;rQ$Ei1Ro{au;Z(16<h<#%gYfqn# z07Z+}cB_hmV;+&fmjtf$n`7HX!t`h{F_puLf&W<%0<0<~R_j9y^pPMya0H1LUuY&m zk;enUT~#o+gx4jxLYgq$Swd_h&LzPAfGhzfm8>P<&rzknf@+Z`OkV&~EZv_me+?x9 z6uLsJuPxZN`AwMsg;iks|E_{?%%D)6Fz8f=H=xZ|h&7MzxcjsS&B_&o2cLTG*A`W* zKrCi|#q$YODJ9-*IFfG&wC%_1KBtMPW`Wc*cx~KV@iwiyTEKHQ~BDX zK=VlLz%<}>0P$~L$8U^UR3N)?<_gm-{oz2F3@*)eMlpvmW;t{S^a<{e;$~#Fpc>cLi6St zk+)v}L?pt%k=I$68#NDuSy8>~M6%7V1JyKXO{EkAbD(M0i7luMQ|*ZOw`vxs@JZ>@ zR4m&KQc(u-xc>Rp0u`$wUd6do0e_FEfBTnI5!5#^6%wqpuj@DNbzfGN(Dl%nFRh0sBqHHxpmxXJ9YCHLVDhAZ4 zh8TfhOtnQ_tLY$jvq;mI{LWD@iYdtrx1qhL=n zf<3Ter$wdKMI$(cJBXl?bwuvA)B&3BpV!c!H8dVW!7RaMiu8Xs#$ilZIlty2RR8~T zVM2Ad9gNy0Fly@?-GW-wBN}*QHA#l`9UwBFzarE9zD9WPJ4}am)f0VxSr6JWTwYW0 zG=QMNL-eKwfL>d{QDM}i5{xxK&tj;u5rPHHiy9gsJa`K6mw^nLUC+BgaAIJwum7<* zu@BXwAlxVe1?h@gBM1sENwi=My$(?5F#4zwQKW4@ I4g#V2KeF5DN&o-= delta 14098 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 Hs8s(CAwE!Q diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index f0ba44e35ba7ee67af0e47fc54934068ed9b3e78..f97b8bccec2b562311b67517127cede02440b7bb 100644 GIT binary patch delta 33896 zcmY&<18`miT#f%Rl0LB3=G`=nk+>Ef-0Rj4F)m= z5&YZ#IO6#W8sNhJ*Cfah2KL+kTVBcnILBWR3|y33B>=m;DHI9_=ANjsWwncP&a z(h=8hJTeLh?bxhHTm6kbxYgtmDFE^^|J*+zrmktmB7H3C$AAMUo~S2?@X`8 zCj@Q~ERvt;R_=-`vjf*mGTQX_`Ej236mMg__>-+s z>f;e|+WoWr927+dV?;Ct{=_eTfJ%GRcMc+~;mqbG&v~{g?CjH}za=|%3JeUH2q&dR ztCy_WGkFH`9&}Sge6+H_>7+Yt|Bej4=6AP%E$!=Il+y?I;b~@r(rl>O=N#H@+(Ve& zj}M0Hz&1)5#~mk`V)kfKjDX!NCWdbYq+LiOW#t;^!qb|b15iyW;sixoxE`0vj?7UX zN59pUi1^j8e`D1OvQ}KQS80o2r(Mh#!I|en^9rxve*^vLM;>3;Ll(b}zb#WKr#>Et z82CZ?Q}^v&0hmBA22 zCLf~|=e@Mbk9!x&gi2H&ppeM+gxw^HYNWJOY@MXMAc8mn*mHeCq`K2r&Ecqr`}?_UvV#_qjXa zUhp)}Z3vAh;42b@S!(MhOwXk{8jE`mbL%7waCs-Xi8}wqEwU%U|D^-{Nn|)(Ea&Y` zlfZa*;_4_kHiNOHf8KxH5h|5`dIE>|f@?TZ%*0#SnN?^sl+X8iuS;l9evq#I&T97d zP04U>24QP!d`4l*Ut=V@vu{PD+wm~sdtQha_nnv_P(YxC8_5NLEd@}z8g>m1Fe3rN@aaw7bQT=-}Qfb0%E z6FB1q_PY`B-oX%R0QF@#B~9PIYbEg9eg}~h274(NCe?u1pr_|o{SIy70h6sfp&7Q# zh)*uGuPzbna5q&xE~Ho(B^pVMI$~~J6ed+#jD$V_a11eGN6!CT0VN^$(Fz+#aHFWKH)#Rh%+?(G5GXmd z3LbHnxEp$#TC6>BpA4V4U#sE@V(j>F4C2&;hDK|P^E(mBbxL=!$E%G-`aWesOu#YJm%bPePDekjhETgtc)Pl%Q zPGZ>EA{!?&3(^Y3KSs?TBgDXS$y4)`OA>}#A|Q}wQO*wJk--b8vq4g5?>l^8*tX1WX5K5QbGM7 zNq(qN8pg=QOOe@X3q}tv_a~K(>FUDF6WRMFa}%sE^#P9hZL>2LP-1^{7jf1v%&dt8 z_f|SC%^<5Z-G{O7zuVwLANLCVCKmjXGa9~rk}fI9jXDr+*R;lGx)3)YOnRy>M`l8z zX1yyc*g}D=H@?wC`4*ZTn*24rZNRUTlll-r`sv)e&fFL-ZP`3?TQM8>74#5ct(`8# zpGw^C*gS{R47c6^ka5n9(soC?rr{7tQfnEQ#d9ag6n=m#&bIRgY7oRe

{tFNaU; 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

Lyh^x-|7A`d66FxU)R7M#2-asPu$& zlN}7)o|?9zU&R+#&VNnVt8m4h@Tqa1!DgibGxI;+8L_zV&Bn;co8KP2)#F}|ZZ_kz zl=8AqZU6F`@7slZF&&e{l3d!$%ON!PXz0(DKlOroi=-;B{t9AQ;yj-6Bbqzn`@B(~0-Ia-ZPQoDwJD22{sTh(&e)-$K=;rN z&qqyb`i<&`=)UKiH#xP~ueMwMu8(|7rN=(skc?hY`2e%AgB@REnx)Td3)vmwK{7$retrMibE)fe|UwGh{pL+3iYWMFX z!{izDec<_ZWT}{lmxe^}U&&ZxTX=Xzc`~yYY$VE_*WxEd_f>oGS4R z&1MPZ|L83;(Ow~aElk#GIGDwa<2!e_FB|pErdz&;O*MEd^ZF73bd5(M55ceRP3)F5 zZ<Ys}3`@KG%S{~asRVld7-e(*yQYmnHPR{t=m_FBVO?I^z-x-F%VuGxJ4gyO>hmoXV;gw_=O>JLxdZ~ zj$LYSbID&bzGMC*G>vybcfMI6eUaq}-8rL+a;k8mbj_T|>EGs=1Z8?5YRc&N3H{x# z*1riHd*)?@aE=jr-re%HOe@aLkF}dZfV^>o+$oKJVKL7w0!R z=V=wGi{h@YX>-k-%*;A%D{=63I4w|v~$%Nn|+QJEDcUDs|4Q&8WJ zwhmq8K0|oiE%nbB%`g^wla;y}PhAb~S>$DE_@&=rp5eJc_Gq;Yji_b_O#)>jzmw9-VD(wrHk1U&}pe4caN4&)Jzi zv7>5-A~v)0&w#zuldnwV;qe_5@7hFKdd;iUN`!t9&KoJbvJncPE(eit}hK%wIe)K|XK>p*i3jOfts{;C(pZnZ(u+lO zK5XTytF{tmVduScZXd(@K6UG2VDskfcINie9C)2SAijCedi{E7$!~_gzm->BQ$r4( z?tsmGo_g}h9mogj9&&S3V)K@KgB6in|3+?xN?NALpCad_%dIIeH0VPDcO1qUg{C0P zPV{&(jt*18h3Hi8#WGHQm7&;2{H1vbwE6)-!WMryXcn(L& z`Pdx81?Sy?@a6kWFxhCLelyHB^h1*+20i3me(f^m+%ANs{wAgZfik>rVOS7>ZxqHD z)g6E_^QfWid6+AxmGB8v&pSvg4Y z8I|-MrjSILX=Eva*yxbc=9JH^EXjcPvhb~HJQwnEea7-uZ3-q-e@KVo7pnisfWn9a zp^~BDM}bn;KvB!L_TKXeRGphx)21%@aR z=@D<5rYQ_j!?@=tC>X)d6qE{3)}g21zu+iuBgg#9ZD=Xa5gndRm!J;XO-9zHOnl%J zkw6K-7h)i`a)^O4VmG23D@Mu8h` z57f}^%anY?SZo$P^WF{oiJ*WjQ*oeLBv7)JAGk$%2+_;98bFEKdM$|ZH(G_SCs3N; zk=&ZoC=F36-b~6y^uyO|${5uATLqLWXuh5mlpKs`)NT|X%I^n(<%JvGW4YkO3QBtT z+f#_S{9_B{7^+*}L#d9&2R}j?i}Iz6QA#0iH7M^}po~Y&ci*5qhC(%)l)b3(Lpm&h z*rIj?wz<>Nl99=9{1vIeWDqH%9auK>fu7@TtTmc^kOw=7hOGGjb^$G>DmiQt>Zq9# zmItl%1U0NW+S*>3Vpq^qwHDZ~sDJ5KvDeTKjJDVZ7}URUCtlMB;FSdDU?&Suqv!mv zjO7FN*eo|RvaJrjEX%_S=r zJA;;VbQ_ind8tBq*?TM>YIgr;tQ1;x=*O{4#5nwnD8}S~@=V0SDw4Q;nWgkND%7l5~!YE5YB`Xae62TcLS9eq~fH}Y{IH>?x+M`hl@tLp`>@X z*J#EzgE%GB+-GCBo2W$W8%`Ltz+eV<7W(%BR4E z7e*yldGXYgXcrM;=X;$Gi7y4Lj3wuU4~XNbVIE;TTX}^bUJ5m5b`O3hN=zk=CmQH~ z0Dl;jR7m5A4N&SRo&}YhRKYuEqgKvVs?jyFRkrcQX&&GI)c_-Qm%r5D}@ z)sgYV2ckN)f%qOQ71Bp9e;UZ;gX^X7`(VXTJS%MR0s?P|ySHTuT_~OxO(5|I--tG) zp+8H`lzzpsXb>vVG9yWF(`hFcjKi&C*!Ub*+FKRDUu+#42z=CNI z1tk)4=a6lEaU=^RcR<1xwk@QJGz-I_t{`X(f~KXS5qakh?M5yC^MW2SGAR=BQFw<3 zq>5T_kvtd+IIXe4IZXuB4>x!y@_^H`2Z^hcOs}D z%)5)6O6;r_IfjMef8QNaJ<}_8cRd2ss}CUXq@}a58%ZVvrvVPMApg9)=-;ZJ;Lkpg zDyoz;6f30;=()jnjYzBhGOXfD>^^S!0;_^$iB`Szg^*zy9zcYOszjlgDmY~%a&yb^ zm}9b^hC%g|2Mt7l#PPmUM17B&kT61$bQ6#;oh1s#zzrHWpxvzjfRmoVNdWxoE?FgstAkhv7}gWl#_hC_Hfzd%EDy1V{nR6gft>Mh-Fr znUX5`*%R#pr>H35r}pF!Z0EP-Dam;&66Pky?L^f7DMU^qct!@~(+&c3gd~~0A2Aty zAUPGxdkaEl!m#Wu5T&01+Xw@E?-sGXL?cLP1Q8jy1?@sz5iZ17?FD7(&-QOuY!is8 zehGh<*Prj2{kx)!WD@nk7teP5#|zP^C2t56lQHl_p2Ul+dbryk(nM_E9RMt(d5PQ~ zIVgU~*3!l0-&J}~#;6yBI)+RZvr4*glrZeGyJeEq=gIKlH=efAzQ`q zq+P58_y1aCFhfif7YOkoOm%@s;J$AQ>0pMLznNHA44j_>rfl%TXVN4#ox{N+cYsay zw*doSx{q8hQ4xg&ILr<>Ct}N-FGks~tAJA?puMV+kbI!o)~ANWsX!vm?5#wWxjily z!EayDD*n4}EHG>*qJmFEKul<1w{RQ1*##D=cR@EyS_+wBM18toqR$6{fu&ra#Ukc^ z3Wlg)zhH<3B{@1ZnY{vP%PY_YkXA^yW83=3+!+3ekklJ*F`viK!`gRU?1!j)fqO$|NCZvP3x0iI3!6z*%@1xtD?IE@G%*(XIOZ6hZW@ z5ab~I{qB~_J>PW?n*q|Q{|tZ6Zoz!_pwoz1{U$c`~L=~M&WrcvG6@^5{=RzO>)W1ceM`njWQc*C*lSZGn zWLuR1wz*HtpKu?LMiM=aAIT422%0`m@fhnhG)Ye z7CvOAMHRlY>=F|hS&k4H**=o`AT6+!UO56nR>QDK1YjLKyd|}G0MWn_QWOx{yb!zs z;N*?4$^&TM;|CBwO3(4c-ctb-M*%3w{Ur21n zcOIc}bonEtfn_3zAwCrepbvLYNF0udB$||mNX0@>sR~R8BU;1t2uO3nwsbc`C|F?M zM?@$Dfeap?(0=&CBO>_}kYdboVcy4JX#qB)s9^CZqP~0-K$L5Uh+icIGkm&nt7dNR zL;a^_es4nbMc_|STg{=Es%W|vOp{zeheSH-rEfu0(Up-2$Q;AgOU&x=W8xT>j|eM2 z5rx`A6j=E804VH`xGf`Ej%tvb(}VdmFBuuAJKKM$w-`pY6VbpY;Vu0mJDoo=fr1bN zM(^F$CIc&u!tX@=2QY;8Xn8QmnR<~Z)SRQBBTi&`Ky8hUz5Uz|5O{-s0wg316fj>j zB#Ac1)6BQ8N`n5a8`%>g(dwdtlM=w(o*7Tc2|tS_M!GT@oodhLDx|mTjCaMM*QL>;UsQ!;IAp$?BC@LE2#eC zDSoT!;7&!5e}e-E&q0}ypSSUDbIgahJ;L@{xINH^#&WFn4O zameEVqJMWAA$F1C*zP)NFy$+t`}crmkhHBz1Lws<$o>xe8X+mp{0m`9AkvE_0E9LN zK?GsDgsl-H$}@`D02KKHFv}7lDe|6NL>1i$=tq*;6(jdNa6thj?;r2o&t7qB2Frpo zpjI6wNq?n!TOSAKRZud)F;BOu^!CmsnEI0r(u6mEB?6nBXa`P{2(o|n?l0s_BC%(+ zMv%oZB0`@8L2!N|vCr;CknpeD2-*?vO9H~io#3sQ^>KCXdIHu4t9<`nAH3%OJ5dV6hnl@;w>p;!3UwMZ2hw$3 zvD9DszyGH%Z+H3IDbN&_Ko22HQji&nf9ad2LLx{#yPFEk)l?-#SmBSU5IQFPL|_{Y zQkVtSN+b5(=4qhUewPM1+znGK7zopdO}+w%G1-^?N;PAFrK2aEX2Uzuf!4$8h}Ir> z@G5pE{JoTz-UmT8?1@NyI?TTw6!zO=8PM?n@j*EQAWoh{lXredq?-Z;NvMV=RUf%uY^MOzwCe>fM5 zgO#$j8l}bjm!J-ykL=5k&UIum|I&Y&wN=&)HY^bz!4%RMls9SFUCQ}OpEjH5!`^IQ zX;i^BLJNETZ_ZxvQUUu0u%v=oL%LuM>>%nhj9{^FS2nRWPa;go{eK|`bD*6_Y)|I^ zq-ks$*|A+n1qkwUl87wjY;8;Y*@FLfmq0&*s2)Qrbtl19FCI*~QbAWm8c4c1L`wv& zc?NNys)M6~PmrCwA~2Sbdh!zkOO`_%aD5w=9_Gvi)&P5Dkt>$^FGL%U`|qX&xyZCu zAm}bxL5xTztiqs8Z?pF0LY$}-GIG&=BA_JqfYKpd5pHn&r7xQY2_ROOvIY|*l z_yY%y9c!a9)-p z!ih3C!R^u_F96616(TaHjAMmQ6%Z$KmIzX!wv7m&D?h}G*9hW#VjE$BU9z`~TM@g- z6c3CW1f@c{p~7UjtO&9f5BaZ?)2jnDAvh zCmC5Cm_3lTI@`P39J}Bz#l&rVaRw#B07`~* zIuzPR)JNM(e<^V?_X}Y%97YgsShkEfP+uqm!sxF=;lLQ~KV5erP$1`k50rzRd#P-z z>C;{l^_~N(x>hi{kxp<`K%*{)q!G)l%K^2=8j-qk1;_B8O&r;Q;NM6m8v^1%+Thj5 zVe&dKPT$Cw6F|&w&9!&^E#j_dh3Aju`~m z%R@v$dGUDIh6~T|XNu&bVX?Vz}{^Hd26QhW6e?&G$eQ{1ktl?LD3G>j4{JnA06t)ir-$3E{)$3Y9k654b{l5d zjsk5xKu)?6kq9U7c=3Ow>4+fD-L?@rxVC<)zm=!q97H;abYKGMOd{PE(dUN=4WMQG zuZAf#0471dZDcPJ{%k~;9ZVF?1>*lQ=>3#A!h=5IC9yduz68if1`+AZz|+8DX?Qj`2Eb^LN4{u( zIS-b7bYNOQ`urw5dpptg?Bj7GV3RB%0!JH(-Ig&TyjVvR&VkJWIIkMC;_a#Tg#hrg z(IAKgVBjb9rLkc<5n3s^n*dW|87R@bxxA19vuo>e|*s^s*m;L%$&K zZn$FvX&YcpORPmAVYcBQ_aV?%iIH?4*|Uf~x)Tu!;)V&BNA88;j#=<{eee~L`5S^f zS|TD6%|vTXGy~y{ABb=dT(<-anFi|&q_7haq=_14d<|OqCLY@HXBL}u?X}u((6eqh WlaUFM81g|H(LaLYumjyV+5Z8m98`e- delta 33004 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ξ0V%y69{sfaEOJi6IBygOmG9Iy)gW}I)PRG6O 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