From 56572bd481368abfed42c0a70e416e368040c4fc Mon Sep 17 00:00:00 2001
From: Matthias Koefferlein
Date: Tue, 22 Sep 2020 19:06:12 +0200
Subject: [PATCH] Added DRC documentation for interacting, not_interacting,
select_interacting, select_not_interacting.
---
scripts/create_drc_samples.rb | 31 +++++++++
src/drc/drc/built-in-macros/_drc_layer.rb | 10 +++
src/lay/lay/doc/about/drc_ref_layer.xml | 62 ++++++++++++++++--
src/lay/lay/doc/images/drc_interacting2.png | Bin 0 -> 8492 bytes
src/lay/lay/doc/images/drc_interacting3.png | Bin 0 -> 8673 bytes
src/lay/lay/doc/images/drc_interacting4.png | Bin 0 -> 8295 bytes
src/lay/lay/doc/images/drc_interacting5.png | Bin 0 -> 8807 bytes
.../lay/doc/images/drc_not_interacting2.png | Bin 0 -> 8695 bytes
.../lay/doc/images/drc_not_interacting3.png | Bin 0 -> 8549 bytes
.../lay/doc/images/drc_not_interacting4.png | Bin 0 -> 8628 bytes
.../lay/doc/images/drc_not_interacting5.png | Bin 0 -> 8775 bytes
src/lay/lay/layDRCLVSHelpResources.qrc | 8 +++
12 files changed, 107 insertions(+), 4 deletions(-)
create mode 100644 src/lay/lay/doc/images/drc_interacting2.png
create mode 100644 src/lay/lay/doc/images/drc_interacting3.png
create mode 100644 src/lay/lay/doc/images/drc_interacting4.png
create mode 100644 src/lay/lay/doc/images/drc_interacting5.png
create mode 100644 src/lay/lay/doc/images/drc_not_interacting2.png
create mode 100644 src/lay/lay/doc/images/drc_not_interacting3.png
create mode 100644 src/lay/lay/doc/images/drc_not_interacting4.png
create mode 100644 src/lay/lay/doc/images/drc_not_interacting5.png
diff --git a/scripts/create_drc_samples.rb b/scripts/create_drc_samples.rb
index fbf37b8b5..196c6bf19 100644
--- a/scripts/create_drc_samples.rb
+++ b/scripts/create_drc_samples.rb
@@ -435,6 +435,37 @@ run_demo gen, "input1.edges.not(input2)", "drc_not3.png"
run_demo gen, "input1.edges.inside_part(input2)", "drc_inside_part.png"
run_demo gen, "input1.edges.outside_part(input2)", "drc_outside_part.png"
+class Gen
+ def produce(s1, s2)
+ s1.insert(RBA::Box::new(0, 5000, 2000, 7000))
+ s1.insert(RBA::Box::new(4000, 5000, 6000, 7000))
+ s1.insert(RBA::Box::new(0, 0, 2000, 2000))
+ s1.insert(RBA::Box::new(4000, 0, 6000, 2000))
+ s2.insert(RBA::Box::new(2000, 6000, 4000, 7000))
+ s2.insert(RBA::Box::new(4500, 5500, 5500, 6500))
+ s2.insert(RBA::Box::new(5000, 4000, 6000, 5000))
+ s2.insert(RBA::Polygon::new(
+ [ RBA::Point::new(2000, 0), RBA::Point::new(2000, 3000),
+ RBA::Point::new(1000, 3000), RBA::Point::new(1000, 2000),
+ RBA::Point::new(0, 2000), RBA::Point::new(0, 5000),
+ RBA::Point::new(1000, 5000), RBA::Point::new(1000, 4000),
+ RBA::Point::new(3000, 4000), RBA::Point::new(3000, 0) ]
+ ))
+ end
+end
+
+gen = Gen::new
+
+run_demo gen, "input1.interacting(input2, 1)", "drc_interacting2.png"
+run_demo gen, "input1.interacting(input2, 1, 1)", "drc_interacting3.png"
+run_demo gen, "input1.interacting(input2, 2..)", "drc_interacting4.png"
+run_demo gen, "input1.interacting(input2, 1..2)", "drc_interacting5.png"
+
+run_demo gen, "input1.not_interacting(input2, 1)", "drc_not_interacting2.png"
+run_demo gen, "input1.not_interacting(input2, 1, 1)", "drc_not_interacting3.png"
+run_demo gen, "input1.not_interacting(input2, 2..)", "drc_not_interacting4.png"
+run_demo gen, "input1.not_interacting(input2, 1..2)", "drc_not_interacting5.png"
+
class Gen
def produce(s1, s2)
s1.insert(RBA::Box::new(0, 1000, 2000, 3000))
diff --git a/src/drc/drc/built-in-macros/_drc_layer.rb b/src/drc/drc/built-in-macros/_drc_layer.rb
index b5a7e2269..4fd5e452a 100644
--- a/src/drc/drc/built-in-macros/_drc_layer.rb
+++ b/src/drc/drc/built-in-macros/_drc_layer.rb
@@ -1702,6 +1702,11 @@ CODE
# @table
# @tr
# @td @img(/images/drc_interacting2.png) @/td
+ # @td @img(/images/drc_interacting3.png) @/td
+ # @/tr
+ # @tr
+ # @td @img(/images/drc_interacting4.png) @/td
+ # @td @img(/images/drc_interacting5.png) @/td
# @/tr
# @/table
@@ -1738,6 +1743,11 @@ CODE
# @table
# @tr
# @td @img(/images/drc_not_interacting2.png) @/td
+ # @td @img(/images/drc_not_interacting3.png) @/td
+ # @/tr
+ # @tr
+ # @td @img(/images/drc_not_interacting4.png) @/td
+ # @td @img(/images/drc_not_interacting5.png) @/td
# @/tr
# @/table
diff --git a/src/lay/lay/doc/about/drc_ref_layer.xml b/src/lay/lay/doc/about/drc_ref_layer.xml
index 96e0a164f..192e50857 100644
--- a/src/lay/lay/doc/about/drc_ref_layer.xml
+++ b/src/lay/lay/doc/about/drc_ref_layer.xml
@@ -795,6 +795,9 @@ This method is available for edge layers. The argument must be a polygon layer.
Usage:
- layer.interacting(other)
+- layer.interacting(other, min_count)
+- layer.interacting(other, min_count, max_count)
+- layer.interacting(other, min_count .. max_count)
This method selects all shapes or regions from self which touch or overlap shapes from the other
@@ -814,6 +817,22 @@ The following image shows the effect of the "interacting" method (input1: red, i
 |
+
+If a single count is given, shapes from self are selected only if they do interact at least with the given
+number of (different) shapes from the other layer. If a min and max count is given, shapes from
+self are selected only if they interact with min_count or more, but a maximum of max_count different shapes
+from the other layer. Two polygons overlapping or touching at two locations are counted as single interactions.
+
+
"intersections" - Returns the intersection points of intersecting edge segments for two edge collections
@@ -1169,6 +1188,9 @@ The following image shows the effect of the "not_inside" method (input1: red, in
Usage:
- layer.not_interacting(other)
+- layer.not_interacting(other, min_count)
+- layer.not_interacting(other, min_count, max_count)
+- layer.not_interacting(other, min_count .. max_count)
This method selects all shapes or regions from self which do not touch or overlap shapes from the other
@@ -1188,6 +1210,22 @@ The following image shows the effect of the "not_interacting" method (input1: re
 |
+
+If a single count is given, shapes from self are selected only if they interact with less than the given
+number of (different) shapes from the other layer. If a min and max count is given, shapes from
+self are selected only if they interact with less than min_count or more than max_count different shapes
+from the other layer. Two polygons overlapping or touching at two locations are counted as single interactions.
+
+
"not_outside" - Selects shapes or regions of self which are not outside the other region
@@ -1700,10 +1738,13 @@ This method is available for polygon layers.
Usage:
- layer.select_interacting(other)
+- layer.select_interacting(other, min_count)
+- layer.select_interacting(other, min_count, max_count)
+- layer.select_interacting(other, min_count .. max_count)
This method selects all shapes or regions from self which touch or overlap shapes from the other
-region. Unless self is in raw mode (see raw), coherent regions are selected from self,
+layer. Unless self is in raw mode (see raw), coherent regions are selected from self,
otherwise individual shapes are selected.
It modifies self to contain the selected shapes. A version which does not modify self
is interacting.
@@ -1711,6 +1752,11 @@ is interacting.
This method is available for polygon, text and edge layers. Edges can be selected
with respect to other edges or polygons. Texts can be selected with respect to
polygons. Polygons can be selected with respect to edges, texts and other polygons.
+
+If a single count is given, shapes from self are selected only if they do interact at least with the given
+number of (different) shapes from the other layer. If a min and max count is given, shapes from
+self are selected only if they interact with min_count or more, but a maximum of max_count different shapes
+from the other layer. Two polygons overlapping or touching at two locations are counted as single interactions.
"select_not_inside" - Selects shapes or regions of self which are not inside the other region
@@ -1733,11 +1779,14 @@ This method is available for polygon layers.
Usage:
-- layer.select_interacting(other)
+- layer.select_not_interacting(other)
+- layer.select_not_interacting(other, min_count)
+- layer.select_not_interacting(other, min_count, max_count)
+- layer.select_not_interacting(other, min_count .. max_count)
This method selects all shapes or regions from self which do not touch or overlap shapes from the other
-region. Unless self is in raw mode (see raw), coherent regions are selected from self,
+layer. Unless self is in raw mode (see raw), coherent regions are selected from self,
otherwise individual shapes are selected.
It modifies self to contain the selected shapes. A version which does not modify self
is not_interacting.
@@ -1745,6 +1794,11 @@ is not_interacting.
This method is available for polygon, text and edge layers. Edges can be selected
with respect to other edges or polygons. Texts can be selected with respect to
polygons. Polygons can be selected with respect to edges, texts and other polygons.
+
+If a single count is given, shapes from self are selected only if they interact with less than the given
+number of (different) shapes from the other layer. If a min and max count is given, shapes from
+self are selected only if they interact with less than min_count or more than max_count different shapes
+from the other layer. Two polygons overlapping or touching at two locations are counted as single interactions.
"select_not_outside" - Selects shapes or regions of self which are not outside the other region
@@ -2224,7 +2278,7 @@ located between the edges which are checked. With shielding, large distance viol
are not reported in this case. Shielding is also effective at zero distance which has
an adverse effect: Consider a case, where one layer A is a subset of another layer B. If
you try to check the distance between features of B vs. A, you cannot use shielding,
-because B features which are indentical to A features will shield those entirely.
+because B features which are identical to A features will shield those entirely.
Shielding is enabled by default, but can be switched off with the "transparent" option.
diff --git a/src/lay/lay/doc/images/drc_interacting2.png b/src/lay/lay/doc/images/drc_interacting2.png
new file mode 100644
index 0000000000000000000000000000000000000000..c924a17d177bce978b39837945836e2d44ff0fbd
GIT binary patch
literal 8492
zcmc(F3pA8#+rLg59f)dcC#Q_?DQckPNdcr6Xm8
zahgg+F*8NX#vsRMJB{-UGiK(yXQW;G{r3A`>-(>7eQV7ukNbJ<`~F?O>+syybxpz%
z8_P8-H?5SAkXVDV+ILJsV#&1VE437i>?^kF0Dq)|tensi5;Ctv-zDkWWE4e%q5DsS
zT6p;R=}Fkz9jPPo3du?`$=tQEP(
z%o02*f!epnK9VrnaVF$WUCI9L-lSZ|cj~^sx*tn!;7FcwNxQUDKgDawaH4|l!=y5{
z&XS5F=O3xVP^sV(dZM&_JK_~y6?Nt4Iaus#sYCKsS6+xNj>(H30M8V!ptYI967*K4
zz*08GqLwDe-2fMR4sKa|pyY)UFCM0MU`gt7dG#GARlTLx!G#rSVT-hLB-7=nvsaeF
zq+th6r|v$x{AX~Hl4>Q|AAIt*2ek;){$YQ{^vq1U(wS>_`Us>mf=sueKgZ~w<^=m1
zwP}+dUcu6*(AVuEbPn{oZalklwt6P;S(BVThw<(-_DYW6?RkR!7r=QiNju%&-gcG7
zR#9{zy2GKC<&QSYx>hERsUu#js>zy~n9x(k#l#$Pdq__dMorA*cX@ElnOnX3c}dVJ
zVI8_1kHF7`byB+mcW~I%Ox!z_U)%X7q}dtd!l#05)(VDI%N1=ex;YNa6qbzh0@Bf}
zL`S2@s8-`r{&9S##+VnMKHFPJ8O6Djy(}H5KCdu#p0^G0LUBMR&0FD!;y@Pe!EbIc
zhc5;SOScKnQQ3DC80AI&?>n9gU!4rBW7L(jquJKIFn+dyKfAtK4gHnllG5?1+0Od)
zC;JJ!p0S^uW+DDW#N12X9IL3|q?=HZ7u>#LU8YCq5liQctm|dt<>b=pj~DU#t32{`
ztKZ=s>%RG;t~`lCT9$S%GtN5WT)eRPX|SF)ZHR04FYD?t*^uh_>is1V!lyM{3;ysS
z%2>tRwlQeBJ4+>opQ$$76~V&mcia4DdGmfaI@
zxotyhoQUjc%eo3xU>)bvU{_U&+fSgUK1;gcWfgI&l1+Rfay_XryfoTPZ1C^=$lvda
zEo0l~$9#*_jdvs#jZSQRd9Ve`iMD-KWFYYGzuSMZB<7v{J^l0tN4iY((ihAMhT78o
zxaXf|AAI4YeEuJe7KUp4(b!j*0(<+f-HRqGwq31+#pT8c)v5#$gss=~bSjWGK
zXGz2e4rj@#l;edmpPr*z=7ov%LcuDgoAi{qAVEsLk(!#hJZ8AaH%yA}8DGw)r~jQvPcp+#jk
z=9RWzZ5c6Z6ZCA>yc)dH9h)kGXmFGOTh=ybVH`-hIUQcHEL(&zt~bw246^9Zs^Te4
zPUYQGh;?H0j1f-LQ>Nmr9CIhMb4`eNjLi!s4|K|m&ik0#2L91AZWS0_heHu<a90q%Zjr0J+YU>@#YPm=hL*-;x7&E0K+YWmZt>Iv5#!V
z3Lbx_HYXg6@!(*QY^5T%MyTml3yGP%G}m$acf3EPCa-1&?5cC#pq3!a$q7LU)wf<%
z3^z6nQKZc3m8wwar!42j4n}l5BrQ9NK4F0XcB2-+c2$XH6edU1X@H(MazE+|0BM
zdNAJ<5?Dp&N7qp%e9QZ=W96Px!Eb~k#@*WWYggu#A`{GCf07zCG4ajCj2`l4mq&Eb
z@x6?~*-Qg-?hGP-_q^IY^;hP$z<`sMFbTqTR`5mw<3vl6EYf^9#?fCB`bO4
z@PW~wSH3pn$ZNh^|HP}E-c*>ASfehM3P`ivCbnz^K?lZ#
zE9DqMJN;NOw4*JpbS{CH6|-Jgl{^u+O?P`&QNMMH{mE0AIi5(DOuoRZqwlg{4x$&f
znAsY-=tH!8+xki@!PJdReE!oWJl1@zpEoWdk$J^k9EJNj4**b)npHdJL`V1}1Lgr6EV@V@riJ{hjx(k2tLm)6kPVme@jK
zBbvCPe;vl-Z-iS8w{GJg#>Y3#f5s}~M$xR3-J8{hua~`gE?RA%;Qo(`t9fJ{@Me5;
ztj1{~-kVg=$x}|O(GSrrINMSIzrooH4;StcM7p{)UIZLmZXtoF+1CB6mN#O;+eA=*
zZ5Xjdgs$K|ath8l%aSXS%=8G~SK(US7REj5H-qF6D&A^yuphyKUd}?K*Ar3%60-3i
zk0pr#f8pH~Z(ioCg|IFU8HfZ|
zR9P;@Yapro~6bYGL=!!n+uKh&wS
zZPwI5jI3UN`-g&L9n7g8z^g=AGu{(8A_8w3nB~o@@9irC3XKmJxQticRZ_msPX&9D
zz*-DuLJ4=S27oljOX(r^p5r~@GYvUrW!fb5wwY@TkKHf$VbAGkFQCLr;eyCc{g3R-
z+IR31ED^BW(nH1k{@{?Moku#9M(4?sQL9W%e<ZO
zx9rbFht!LQ@A$fAPKehD7MULqxIJ_M(sQ7}!%OIotY;9T
zX~$=N=8NaNgzE=4#Q$+YSuH{4ndIDqc}xh#HIq6~{uq+euT|d{dWz#P=g)N+nz5AX
zo}E6?tfvkCRk6YBjJ+e=Y7^b;_$}k%gcMlKwVRlMAe)VKxP_F5-m8Y)CYFf2VY9A&one<_-I}lc1_kga{&7{H>XWpzTy1NLhE=TzO?ZLOA!*Xm)TR&k(3V$I31T&((NVgPjp$a%N
zju4m~4_ghE%-!+u0zh85^;=nEUw^~G9e2WWyp=qFN|RpJsw>XZ0FkYa_3Cia$K=hx
zUcV7`ygI)V<6)h!VnGKYkXOGI?>iQ@t{0uhmrwd+qF?Q1uM+2)fC5+l?-i>Gq*t`k
zCfHVx0a519RwX%&43E(}*hIrp_&?}xO|^`{!Q&TMdn
zoWNDItcc0H$l$O8AOqd82nt#kJi0KXeD98uxrFOVn`D$0(9`cH?BT
zE3_TTsK|5p5t-LrIUxp9wy#lV
z5(tOVD)KCxXHzaty%n!+lj_kh`YUowmeE;*P|`M`du;H>J4MIShvb~S6#|y*^X${v%2)?5p<>UFp@XiXg;=$z~%RnXvpmqJ$)ep9xR
z-%D~d@(n!m^l=pCJC(Tn_Al)@(~qZVQ5G~v=vhz$v=nn;Z*H_kP
zE6Iz?0S=dz-fG>J{ao@}lX&fL>3qZujhxuUsp5_3h=xYB;EZ@x6j(npo-FYnr+l-U
z6xFr$P@}InfQpB8c7JQi!5eOWR`Nu7?e=EB_Z*FicWV5pY~|5$8B(YfpYwY<8;`f{`5G0cz@=owj?1zzb>h}@iZ&Q^zGd))a%5?`K2bqHE
zj)3IaUuOBUrRkX&fvuAoHd`G+I~*C<)fA=9avT!t7(ber8Bod_4|}WYP>s6=n<(QB
zl@B7&!7BL9>+5z|^cEIg^>9-`?`In#p!fVo!vkFYO|-D2omtDt{`0UKzC{ITZl0LQ
zI>nhAQbls+aTE@P&qusve7ex%jG@die;5_TbK*cVFZ^ZHl>+AT1WM5|mwGQohnvz%
zg)GPj@u9Y1hPMJ_+sBJQvj3;us~D5bF636s3y^~OqTADWYs5tqRg94bvKD0P(d_pi
zhfkS7m1srK_)a#d%1^xD`~XrixKp%n$0egx>4}##7_=1+;x=VqRu$(`M>&r@AyY|s
zJV*g}w?M^0>WLR=Ac1OAk)b&~7*zeo7^r!a4Y>BevTlQHmrO+-__JwZZg1W7BsJ`3bX
z1YBurZ4q~RYT{{E?RTkQX>0y5?({@tBp>-!Yi;0tiV*~z1IpQPhu#*j?edHHW7GwKD@!>+L
z!Jqvg4O!I@z~*ht-(7jjxd-;sof*FXiYC&)KtcL8mdJ(@`N+@Wr2Ik)$q7xoxcPT(
znh_&91A{2e^*0BCdt(n~`)V+l**(*K@0p&uc^seMYS=)Qj9t(|Dvp{Z@Q8Dv#$_QS
zP6!VhUF|Y&k|W~$&LWw2-6$3VZ5jR5y3X_vZilDJotejc+|mpl%iGNQ&xmX+NDOl%x*eissWd4a;+!%eT}Lhq-$pu6O5*-B3h1_kwdj`g!grenynVJ7*zUC_G0
zsmqHNSady0>2foyOXrDUH;F43Ks`Y@eMNj=e}9AN#M=HL+NiW^9Wg5_arvHMCm#Pp
z<*hccJpwJOezit1Z2kSit!#8Q_R5F+-l^YGG?he(h!z(q+DBG66Mv@VTRd?GS<#35
zxGyB0GsENzPoqi9h~*=#X>*%FQBSnVX2I5s(OSxr%Ho*%4Bg;kYeeL61XY`EmPQW0
zy=sbkFkG#iOz%lt-EPZy!(*8~!gT^b0#FeY{3vQ`aWt%vqp+^tBao$c!qU_4hu#v>hR5f)LLt1(?cMW#3AzoDz#g-~J>$q>~M&9d9a66g&L`_FrK
z<@4vxQe?$`T(f9X_mOw0&vW}bWxg{fL(V;8vuyp+)>VU8XM%1*)V-SZgr&jMs@Eua
zBqZ=!h#pl;95Gi{fno!#zvRpE7R5gLvsTO?V=RSS0`lF(2;yz#OCg@?uSPi2<$)6r
zZ;PBDwDX96Yzv9Z&z)^(aDiQ7W1Z(Y*^N_q;!2q{0R}w6lZxFGvir}b?wDs?7{bzt
zi$m8wM3?ZHB0mBVC0+X~%wptWf^EF>J5cPAHxVG}ibL@d21=)WEdPwS+7bssU%m*qN=|?0((i)X^DbGc;=`-J
z6?|DuDa-Z}Wk4+HT!anEDdOlMg*8FCNkugVuY9feP_kyQHH}Pl{e8x#C&uK{!3=t=Ws}QD2;O`Y&~7j)EdQDD_EvQ8;k1dN$AJ#DC+M+MEMG`Gy>y
zx-Yi4ra9c(tQ`m5Ida_4nCi8YUzyeo2Gy7Vl0qY|*w{^e>QKCv$VMD??j_0(GPzS{x`n_K}O*Vc^)%^Q12N^G7wi>r4$zozkf?Gn91KLTuNMqvaJaTjQb}3
zW?rh^`3tL!+)6-Cbna?%DLfSv@FtMe8(wi$A>!>~2-tHBi#@t2Zh$j3vYbwD(^Pg0
zZ~atDTQ&;CFAU-ChsgX{maX`IJdzYWpbb==jt
z+M_=6kjGZLtd%oQ*4Zs~lwtC;t;m1up5>LsxJz2?aBYY-RrZ0yq?1T&p?|88`G*xz
z7T+-Wr3;-jREz(KDcFds!WyHv4?wGP^9f2Gx}xKl!^pv@uFw%4+
z0%fwS-KA0P)bz!n&VQpPwP|vDhPXcn${(w&{
zYcpjOw#S8~X|FN3QX4FPi*0wd;9x=IX8yzS7A2GB-Y@$0GtGBzsc6e38^q_UW*;)aE^2&A%&enVcuqJDdp&tv|`EHawsQ-
zYRXw&=FmaLRvgwCOU!6&Wo*s7Jip)2sq^yx|F7q{p6j`u>*6x^?)!UxzMuQ^{ocR(
z{{GUx@o-(Pwn0rvNohI4&BaSeX~7uytFjPiaVc}_2L7lk{KhrB-v($j02{qRj>RZ#-C<$6$K2Wk_+xHvVQX!=8){)voc~~`W178!A`9&R3ZB|ZMmZ80QA`t*)eU1
zxOgQ6lJd;$IwW(Q>eWSBo3G&AW=-G=Hdu$vWJ2m29qHkH^T{3i`uflpUcQ!R(|#jJG9T+3U7gx_qAG?hzKE!m
zPer;4%N>tGyzpm@2~K^Yu9|Y18DE<9wPew~$M&m9MwOh{ql7^vy3(yyzTFGXi}y
zZ`4lCr0@f=1Rn0-c4V)d!Pmjj!@6ih`(#qQ__EIZs!Gpt?r3h29KQBURmjY)YvjTX
zv3uG>yT!SlcLKEsc*w2~$zi<1n9l;Z;4sE4K)Cx
z=h-v9WyWP`LS3h-#>lh6qa@z`h@?^2`he+jTin@}9#_u`?GziHuoE{>tlbaaACF@V)ukQ0e2&rr$auu0-SkMvg+ovlX|fxlgQMx=2$})RctS`|;{x36A@CCYbuQOkRQx!+rnG
z&g*myFK^iGyovWsczs2DaphO7uMdB~(tOa4MK0r-J3|aWof#vpzpKk%g)!AjdN;{c
zI(#)sl=U4tVYhhH^d?NSH%)XbjTQo`wAJcgN^l6qZemQ*Yn{8w!)2LwzY5v5Kd(CW
z$Tn~&_~TOR``bSW41q5Iv}EX}bu3tc3Dmwqqy><9ecoNd=(LBV@3hFA*S9f->jLc3m_&R*p~bSgk+|Gy63#c_dwKQ_{Wk?q
z14|LRaILhLD98S-}QNvdF7HfCGz2UQ}o;$qu_6!GIrh9Vz1m8bC=m8*yEA0l;5
ze^?)Q>0O^?%TtplL4*p|BYL%R3!LLou|t!tmjRF@G*udQoPft|e9M8x!Qrc?t0M<8
zqX_|9hwmpd3T^z}qTsNmB$_oU{q`h+QU|33Df7k4Pb+3AIhKIV`MF%?r@aPq9ohAw
zr&NNX>t3KpG!Yiu{mPfgg{Ax4^cs_eb>=H>Obvw^isjbq3fO}daBgcq!Mz<07A6aItj<>kj_|W9GJ1>M_raPCrPTa^ROz{0<(xcgx-%e@
zK4jvaTCsx=#f;Mwp_l=gHFlZNX{+5fZFzaNmeI-Q$T<|MlzNKjZo>1tq07iwu465Q
zOE2lTo0yrc8n*;Khl3N9UpqK}*~SMrbQYrc;6$i_Y}?hK;DY-yx|o2S@^JQaa_?kS
z-p2_>$Tqeh@_Gf|3gkUcgMY6BIulT}^4c6fq0N$k_p7YaIDAHq!tjoGUFRU=2nv{!
z4Ro_&j6ZbGLasmG8&`1vU3Aj`A!G@7iMlhmk(W!v!|f`~VxuWc6`akk*S^b6N_5JP^je
zPG3He<0G?kIfyKco>KA>wyLMX_qI@&q8ttWfsVV%EH;03vRPi>?QAcyc$?sNPnL6M
zDb0t9Jp#zPiM-pExJ$<}G9ct;B8G{L4d6|r0P+SmG&CT-mL%B;7ascF>S`#Iu@5az_Iu!wPvaJYjliU_DG}x=%DnG$JAKiUir8b@YaB5TBYD&`cY?M
zu8(ga_G#lTZgtB%MN|8cM&jBFE(&n0ZYk9#M*+?`3d}mdvX50k`CPWIZNuS{@7iV2
zQkCZYJn;+0`1_&7Y_Z*e68%3yE&0L?B$>NQmvQg@{-q@pCSUQbe`4MPiUdl28-ACG
z&We3oC@>shaqk_rf53@d_EEe5=&C9t%?4nzCYrTVvEq}(UV}jZH8vRhO@XMLKXj8z
zm}4hLbT!p5sRBFi{5v@oVU7dtUpJjupp
zc_mJKQxui(9U5PEyVZwN>QgJTKnl^m1H9;Ge&nDHdVSt*j0}MK2xAa8|Cye9C
z0~-6c$Z>ArBi#yoX4to6J;#&19_Lg}x?
zUF}@TMBR~dpcoaSbUkmVnQhy~=)vf4UrHiWItLuqT#;2}K&~S7@J%0o$EzIv3Z>cI
zEQ#CRT*dT1QLF%`_cW&*I}1G^1Pd6<>bpPXj0X&M+3T;JVR(4Y&h2%Zg`PX4xkW&BIXe7cl**%R(wbu~>@GC?XO@$jH)t
zN9H_xvgaNFB|?>EP|_mtgN|9^M|uO@O#zwA08bH$aOhriK-?W_+R0E%#hQW7yz#SN
z$oj11t1K3q#`IrI*v3?Bt@lQ~Z5{EPQWl+p4b-67=m%bsaO0tYU3Ydi3a?DZu^BA%
z$d{oQmSD!}IZ~dEaXWw2Mbm&!CsO$#Iqw&%;sUKv(iL+FIxiP3JI18C^rL+(fprY0
zX1{9Zz+4($quKT7@<-aKlIk*YMVdp@wD}r{YJcVM(7l&p^!i|_o2abIhYx6DJwvY+
z@zYWgA%gSB@6?paaF9^%r(>sygs1_%r|TPm{hn%8LlP$l7V0fjWX$)K;eFYc9OEvJ4P34fwKQm_J|O>+77VDkMr^^P
zHyMc3k)I%)hZeJ}xz8w4n3rp8btnxmy_GS#0(3ll`b0uNwt0nX=euL2Kqfx3Lek|x
zgrx%9g1%)s6OPeu9Pk0bDEC)hwEstRKOK7qBI`~RxE|3&Ni*M?)|qoomJbPJgmY<6
zPO(P~J&FY5q;-l%rAhv%bP)E;_QME2Erv}VI|UrC;;RDc12?|W?JsQgF`*|H3u!j|
z$%`x7%Fo|ib)MU3UYjWJy2MI@G!^=5uFG;PnbaQ8QtwxJfBM_?
z{3e>bC}Y9sahCGFkj(8f=UmrZ1fPQz%F5`_BLJ_8hu*_7v+x(|`jZg_ki;5US;dBL
zYr&??4;|nmi8Vhji{{ZDHfo6l0+X39UEQfa0*8G@anj%7->T)_`6
z=x;OaKfQ8oe-kdq^r1t>3IJDB$z(<8+jR!yIKaOp)X~5M@1rS6o#OyXu$%H?Mes+$
zM@sgEtIzq`m^D*tdC9Sd;PT~9O92)#mG>P4y=Z}~ZJc%XM%9Dc^T@#7^=kFLdS@Vj
zVctgbOzC39!4hQTqm|8zqH9!sMDe)E2O5-ST>=N@1C+IuEWOxd;4`hR<7Ptithl#w
zOEU-nFbQnye=%tp_W3HD*^LQuPhb28*O#`;qx|!dY*RePEgC&eK-D<(Xe$oRAR}cv
z8|8R6#F*0PacuylI>>3tv)X@Jk~4~Y1~3X;x~xBW_K+TG7S5hqO29jH=#kXLfaO;Q
zKjr#gEXl8mBmHNB1KC+JPv0lBd`eg@!UPzjXTI$$NJ8@P-<&K0fXy~!a)y^(_s*6<
zNxL&bNt@kGCp-EibniAXrp5%8e6Gz=a__C@nNDYt-fC6xAzjm~>NDcwELrxYEyq`R
z=R2#?wYw<4j^z76c8B3@rX3{G&BVNDktV6#Bto76>G`zcW>_jU6
zc@N>8U9W-dwvXr2#CILX^TnYk530LO!N|QTh96@`Jfb4J5>bclqw-9T6VU0YRyV|i
zF1N%CFxp2)y&tx09F5-@JwS|38~*v@P0pYr`Wy@WJ8{1duW>i>*m-dcI9z*{=CO@P
zvx=>
z?&qeyxn>*edT#b+2|VzrS%q3_5>ZY5t%i9UT4Z!8Bw}>dQM!MtX_pV?W;yXAzdEN{
z2ay^w%A-Fy^lPO{tqw3a0&@H+q3{C3S)r1q?Ujst;M15Mn70tU^%t{Ijoja^ld8-N
z(bhZ-_P2)fw_h)nohY_kI3Thfn~0d6a8M>8@)M=vY!nCsm^ZQ~;Ux9mX7;10`KyN&
zM(vd@C6{qVZ^i_?tomWkiD1o$N-rB6wsR(+`a9q0LbDH}vGf4)DCYeb29{i_`D7S%
zDlI8&{|=gWvYF=^jNdsGd!*T^FA%xcDjwGz_@NNdNrMx$U0MxWdHFvjB_A#^w2+EFGqUd8XwCwP?Mi6IC0bdam|7xfcMcXor`58tqBms=?)lf?w
zP6}Xp
zpTz?}-X~oP>MFv18`D~e9YydZw4ik-%e%(L{}5o78jwuK6LYGG0Z*fGgbX
zd?HEae2&k=FB1Al1+lWG7~!aN4>W4mZY=h|+GK2V)=x|}6e$G0E9T0H^0tzvbivnS
zcjVmhG%}eyoW~W6^VuFrLYYV;`oJUGAIEyYo--cPtOC1kRRQy@Z?nU6+Yk%cITb}8
zjBFeNu_Y`n5))}8eigd(>3t$C-a1g@@m1dR-cRG^Wd
zXe6KK^(-t#9+Sh0*iflsN#6MVDeU(pR4XR|`)BkKN*jZxnrx$MCXxTJ-=Kubw?yrN7I
z3(2{F4>iDbMd?GfYZ>V=m-(xD5qGb^*MrtIjQTct0#(5lp@<9LpE;3nHP}hu>jbpB
z8zv`Kblc&`z%1I{ms2_@52y4Jn9YYEDu@7AZB}+2fn!FLT4}S)8uC@o+h{
z1@1c7CVTJHxGG}~IO)w;cq1p2nJPUVSGj1wSHn3{?b)9A-A-h!0eWu%KUDvm)Hb-}
zt%=kOBzTrlfDMgodHl=7>^705d}A?kM7rwTnYS#U;RVp(ZiBYsbkezcs7y050A($ecnd%DK}jYjJ;GbPMOtV-|ql(KkE;w{E&NkZ8aa--b?`biuB)&^f{LhgW%%TL(Is_RoITC`NWMBP38KGTh|lLNFv7
zry#^d+xw%KoF;b5#jd?`RR4d|eCP~ze*!6TF3muIDEt}B9e{l1a$LYSFs(z(CuATe
zmBDYf0GYREbs@lwCFXobVTzddjV*QH(_DOEgw1>3Dnr}Mhifnp$E;Vw`8C*?nkP9r)Ya2xQ6m~^`3>rZp4N&KbL3CK89lS=Zzw@~v@`JOJ{RL(I4?FwvGf2-vT%nw7}V9a@V()Xo%+4v=eq=TsOP{S0zN*7p9J
zXmQ!7o*kzr1dic9oQyyt+q}NiCvqXux)%$ZNpn
zC6Pma8JPAjBk{&6THxC4h4$sSQ}71k6)X;rvQ`~pYE5*92C5CUb&U+jC$xl-3yQ_l23pEdt0mE8ZJ
z67_EiZHr%nPlEsLLbb6Hc#iqUDjft-lmZ@-{;^Okdj4J9K;T-v&gu|)8dzh@Q5!E-
z-alUiglI9g!T-5RSjE%QHK02k^SV
zKJZBHypW+7t)e?1t8ms$JGig{9Gf;{(pUGpy*04D^Ny98(L4wmqAt%`{D6!w>
zv|QqGP6zObN2u_&6rUblNmF<`x)8WKJ>14eQUkz`{P^7tY_9d&wbt3?|1*M>$$J{
zl5oP>LTc^SwPIpoQV2`4Q(|H(W}wfSmEae%GRr=2k@UB;M~R6^*Fc{YcfXZZfPM`6
z?p%=RMQ`r|VzxFXEWC&Hz>g}>kEbrW1&RG@pQif3{W^QWW&eInxQ@EEuI64HbzNPZ
z-JwSeEX2f=-yzJ7*oNX+eLjH?>*UM_W@;w#NA5lgyVy~1j2rJ>vHkX1*%Roi(>1pg
zf`7Q}GJV_m>x*y`EDQnuD$ztI2a8WzUK&XhQCSOmUb`OpIjKYyXwc2
zb9$5KZ9kDlG@dlePqDM^P_f^{a#Jt6Vp+!LSM8F7nI~f>juCg;3Q3#11!!IR*}N-?
z-i2KI5hI-8hjzUe>-z3~;BYuj^E}?xD%&E$fSuwQtJtWB!SZ=uelxFu
zo0`7xT-;ETugD#znalM8s-!S=$
z3zMJm)Tn_zR69vw2jDASnmIN$TBh^z(O2dBrLK62KiD+Ao_=XCU887Nmodujje0tEt#Ygfm1s2rOUlris6)9u56>D=iC-);9iNj
zHpO30VfW6*3Ur
+OZ4N#UJ=LnFm}s>9?C*177j`$1os?8=i?c4Oz=ZH8@n
z^PI~kw+F~ahQu40j>bSLI)!zAzM;sizWSO>f7CiDn@zM+UWYW&FPWbm+pD`-!Z1-n
z*dY?vDm*dji{i<~v@}wu39+~wKl|yOr&HhB=9ol`#pN!_5{8hI^w_M7t@%b01~l+J
z_IEK@iiDfHf;uDnMcIN!{ttBzLtMJ5Wv~iy{^ly|s>P*Vc?W#4L@Z%z*{XwDNQS+!
zQ~@#&-CNXynFt#~%0DMw1#$DX@e*ng{M`wQ!`z{eGT~Ke-pp
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
V^f@bQ4A4pgw$b0ae8cXO{|_k1MjikF
literal 0
HcmV?d00001
diff --git a/src/lay/lay/doc/images/drc_not_interacting4.png b/src/lay/lay/doc/images/drc_not_interacting4.png
new file mode 100644
index 0000000000000000000000000000000000000000..d78b0219e02ecbbf818d6b727351932f16760608
GIT binary patch
literal 8628
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