From 7a778e5661a8866357ed5dfdc11df3d5860e4047 Mon Sep 17 00:00:00 2001
From: Gregg Kellogg This document is an edited version of the 2004 RDF XML Syntax
- Specification Recommendation. The purpose of this revision is
- to make this
- document available as part of the RDF 1.2 document set. Changes are
- limited to revised references, terminology updates, and adaptations to
- the introduction.
- The technical content of the document is unchanged, except for
- the fact that the datatype XMLLiiteral is marked as
- non-normative in RDF 1.2. The (non-normative) algorithm for
- parsing XMLLiteral
- (Sec. 7.2.17)
- has been updated to be in line with
- the current state of XML technology. Details of the changes
- are listed in the Changes
- section. Since the edits to this document do not invalidate
- previous implementations the Director decided no new implementation report was required. This document is a part of the RDF 1.2 document suite. The
+ document defines the RDF XML syntax,
+ a concrete syntax for RDF [[RDF12-CONCEPTS]]. There have been no substantive changes to this document since [[RDF11-XML]].
+ Minor editorial changes, if any, are
+ detailed in .An XML Syntax for RDF
encodes RDF graphs and explains this with examples. If there is any
conflict between this informal description and the formal description
of the syntax and grammar in sections
- 6 Syntax Data Model and
- 7 RDF/XML Grammar, the
- latter two sections take precedence.
+ and
+ ,
+ the latter two sections take precedence.
Property Attributes only if the property element name is not repeated (required by XML — attribute names are unique on an XML element) and any in-scopexml:lang
on the - property element's string literal (if any) are the same (see - Section 2.7) + property element's string literal (if any) are the same + (see ) This abbreviation is known as a Property Attribute and can be applied to any node element. @@ -523,8 +514,8 @@Languages:
to allow the identification of content language. Thexml:lang
xml:lang
attribute can be used on any node element or property element to indicate that the included content is in the given language. - Typed literals - which includes XML literals + + which includes are not affected by this attribute. The most specific in-scope language present (if any) is applied to property element string literal content or @@ -950,7 +941,7 @@Container Membership Property Elements:
rdf:li
andrdf:_< Example 17. There is an
rdf:li
special property element that is equivalent tordf:_1
,rdf:_2
in order, - explained in detail in section 7.4. + explained in detail in . The mapping to the container membership properties is always done in the order that therdf:li
special property elements appear in XML — the document order is significant. @@ -1011,7 +1002,7 @@Collections:
nodes of the collection. This syntax form corresponds to a set of triples connecting the collection of subject nodes, the exact triples generated are described in detail in - Section 7.2.19 Production parseTypeCollectionPropertyElt. + . The collection construction is always done in the order that the node elements appear in the XML document. Whether the order of the collection of nodes is significant is an application issue and not @@ -1053,7 +1044,7 @@rdf:parseType="Collection"
Reifying Statements:
rdf:ID
The
rdf:ID
attribute can be used on a property element to reify the triple that it generates (See - section 7.3 Reification Rules for the + for the full details). The identifier for the triple should be constructed as a IRI @@ -1234,7 +1225,7 @@Identifiers
- given as XML attribute values interpreted as relative IRIs that are resolved against the in-scope base URI - as described in section 5.3 + as described in to give absolute IRIs
- transformed from XML namespace-qualified element and attribute names (QNames)
@@ -1258,7 +1249,7 @@Identifiers
IRIs by appending the attribute value to the result of appending "#" to the in-scope base URI which is defined in - Section 5.3 Resolving IRIs +- Literal
@@ -1413,7 +1404,7 @@Syntax Data Model
Information Set Mapping. A sequence of events is normally derived from an XML document, in which case they are in document order as defined below in - Section 6.2 Information Set Mapping. + . The sequence these events form are intended to be similar to the sequence of events produced by the [[SAX]] XML API from the same XML document. Sequences of events may be checked against @@ -1801,7 +1792,7 @@IRI Event
For further information on identifiers in the RDF graph, see - section 5.2.
+ . @@ -1837,7 +1828,7 @@Blank Node Identifier Event
For further information on identifiers in the RDF graph, see - section 5.2.
+ . @@ -2022,7 +2013,7 @@Information Set Mapping
Grammar Notation
The following notation is used to describe matching the sequence - of data model events as given in Section 6 + of data model events as given in and the actions to perform for the matches. The RDF/XML grammar is defined in terms of mapping from these matched data model events to triples, using notation of the form:
@@ -2045,7 +2036,7 @@Grammar Notation
where the event-content is an expression matching - event-types (as defined in Section 6.1), + event-types (as defined in ), using notation given in the following sections. The number is used for reference purposes. The grammar action may include generating @@ -2072,7 +2063,7 @@
Grammar General Notation
- rdf:
XA URI as defined in section 5.1. +A URI as defined in . "ABC" @@ -2187,8 +2178,8 @@Grammar Action Notation
@@ -2196,7 +2187,7 @@ resolve(e, s) A string created by interpreting string s as a relative IRI to the - ·base-uri· accessor of e - as defined in Section 5.3 Resolving URIs. + ·base-uri· accessor of e + as defined in . The resulting string represents an IRI. Grammar Action Notation
generated-blank-node-id() A string value for a new distinct generated blank node identifier - as defined in section 5.2 Identifiers. + as defined in . @@ -2209,7 +2200,8 @@ Grammar Action Notation
bnodeid(identifier := value) -Create a new Blank Node Identifier Event. See also section 5.2 Identifiers. +Create a new Blank Node Identifier Event. + See also section . literal(literal-value := string,
@@ -2473,7 +2465,7 @@Production coreSyntaxTerms
A subset of the syntax terms from the RDF vocabulary in - section 5.1 + which are used in RDF/XML.
@@ -2488,7 +2480,7 @@Production syntaxTerms
All the syntax terms from the RDF vocabulary in - section 5.1 + which are used in RDF/XML.
@@ -2718,7 +2710,7 @@Production propertyElt
e.URI =rdf:li
then apply the list expansion rules on element e.parent in - section 7.4 + to give a new URI u and e.URI := u. @@ -2760,7 +2752,7 @@Production resourcePropertyElt
i := uri(identifier := resolve(e, concat("#", a.string-value))) using the reification rules in - section 7.3 + and e.subject := i @@ -2800,7 +2792,7 @@Production literalPropertyElt
i := uri(identifier := resolve(e, concat("#", a.string-value))) using the reification rules in - section 7.3 + and e.subject := i. @@ -2821,7 +2813,7 @@Production parseTypeLiteralPropertyElt
For element e and the literal l that is the
rdf:parseType="Literal"
content. l is not transformed by the syntax data model mapping into events - (as noted in section 6 Syntax Data Model) + (as noted in section ) but remains an XML Infoset of XML Information items.l is transformed into the lexical form of an @@ -2875,7 +2867,7 @@
Production parseTypeLiteralPropertyElt
i := uri(identifier := resolve(e, concat("#", a.string-value))) using the reification rules in - section 7.3 + and e.subject := i. @@ -2914,7 +2906,7 @@Production parseTypeResourcePropertyElt
i := uri(identifier := resolve(e, concat("#", a.string-value))) using the reification rules in - section 7.3 + and e.subject := i.If the element content c is not empty, then use event @@ -2974,7 +2966,7 @@
Production parseTypeCollectionPropertyElt
i := uri(identifier := resolve(e, concat("#", a.string-value))) using the reification rules in - section 7.3. + .If s is empty, no further work is performed.
@@ -3053,7 +3045,7 @@Production emptyPropertyElt
and then if i is given, the above statement is reified with uri(identifier := resolve(e, concat("#", i.string-value))) using the reification rules in - section 7.3.
+ .Test: Indicated by @@ -3147,7 +3139,7 @@
Production emptyPropertyElt
reified with uri(identifier := resolve(e, concat("#", i.string-value))) using the reification rules in - section 7.3. + . @@ -3296,7 +3288,7 @@Production literal
The string-value for the resulting event is discussed in - section 7.2.17.
+ . @@ -3526,8 +3518,8 @@Changes for RDF 1.1 Recommendation
- Updated link to QName definition in XML-NAMES
- Added diff with 2004 Recommendation
- Sections concerning
rdf:XMLLiteral
- (Sec. 2.8 - and Sec. 7.2.17) + ( + and ) marked as non-normative.- Adapted Production From 85524ae9f8190cee40bba14edfc3000ec53a0adb Mon Sep 17 00:00:00 2001 From: Gregg Kellogg
Date: Mon, 6 Feb 2023 18:24:08 -0800 Subject: [PATCH 2/7] Update spec/index.html Co-authored-by: Ted Thibodeau Jr --- spec/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/index.html b/spec/index.html index ef43c49..e38067f 100644 --- a/spec/index.html +++ b/spec/index.html @@ -74,7 +74,7 @@ This document is a part of the RDF 1.2 document suite. The - document defines the RDF XML syntax, + document defines the RDF/XML syntax, a concrete syntax for RDF [[RDF12-CONCEPTS]].
There have been no substantive changes to this document since [[RDF11-XML]]. From 845f1d2e1f348b2fee2370cb60f2d95da1d6604f Mon Sep 17 00:00:00 2001 From: Gregg Kellogg
Date: Wed, 8 Feb 2023 12:55:02 -0800 Subject: [PATCH 3/7] Remove PNG version of figures and update SVG to coirrect erratum and to use RDF 1.2, rather than RDF 1.1. --- spec/figure1.png | Bin 34531 -> 0 bytes spec/figure1.svg | 1334 +++------------------------------------------ spec/figure2.png | Bin 34413 -> 0 bytes spec/figure2.svg | 1335 +++------------------------------------------- spec/index.html | 18 +- 5 files changed, 145 insertions(+), 2542 deletions(-) delete mode 100644 spec/figure1.png delete mode 100644 spec/figure2.png diff --git a/spec/figure1.png b/spec/figure1.png deleted file mode 100644 index d1e9f708076ead567f799bc37748ad08a691921a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34531 zcmZs?1yEc~7dD7XumJ)Df=jT$gZm(XV8PubxVy{X4#AxeB)Ge~y99Ta;0` C@3dpD5yg{C@7v}C@4JJ^d@;e$PaMeg=K`Hpemz0ALZjA z-=Q58zJQ?0#t07}Ul0tWzKBA-zWrsl7QFq8Y%8G-nF77%?H@XU9{nR^Iw(m|VI|ka z;|%2V$l2Ha_Uhzb%Q==Cui-Y)T<}0De^|^9@~|nUUkbDdU+)y@0xij;!1)76f9j7P z+ag#@l3Bu8E(NpBGQMjWGAFXQm )@74az_J1~DnDDnH z{C}EndYEq)|JN9qYN^A40bfXY1jJ?g!CIGp4i*5Rq0y~Jm&+kgw|tu$$KKP17mXVq z>fg5yZzU?WXjfHVAiYf(lZKsSD+XfBO4_Gq!NPTs?;0Jxanst|tCZYCG(boX ;yLhC{d< N4}6)Fcr}9YKu2k`l*mIA0Q(--V)0x9^R(V5&0WV>*hrhkrh^ 9m01K+uGxJ?efa!KW#sM?}kedOX@wi-vRIYx<+5zdXC)xDY6E&CS} z1d;n-mC#?IJ0ZBhe(jiUdFmN*xEydN;aWy0+T^Wmq efCJGZ`91@GLmEca4#9u4oLPVhgMRQb0 z1r@`1Gcdv%qO9-CS;AXuNdwmXXNxUwupa93zUvq5YilqVP*vl}599w+$43MHA_S?9 zx$x%M3vlQ6FWYUR!!vI0XyT{>7tAu02)~|ts5R&v_*0dnt0E6(Fa+OgYSFnS b@MumtuO%&;{NVJf4ewAnOS-hK6lNK-3{BOxIGfRAw%R z!qLT$uv(*27^x;jiG<9%iPUijhgrKfB}|cfGZ2KrYh-n&!YCsY60laUIg*FS ^+7UuM=@X4l&ndD%%4Fv}aY7Kr4=nQ$`$BExfRp68MrC*GPU221(n_Cgtt| z|C#~CtTM4TeV7Y9%{*008Ouw=G(FK2B9YM|mr1h9J)GUE!5(OCyGdsbXsZ(J{Qk+J z197HUAO_sb)CBv*a7r(Mpc6H{IyR_^ai2|`D5Hc4NF={h9u`*0c&|B`Awg3iF$c?{ zq$tPq iO!JlR?QYFk~t4b-S>+O{bw6J O z4gw)H;;oyBfj_RpOR1cJGV 7A=_>X@ZQ@JSu+>B z^6b31Fsam8J`9GeGXhQen(5S&$xK88gd{mWNSrASrh4v Jp2z~j~ z(V8`Mx7E(I&G8x80VH-|j9t(qVCIn#xF wuFpw`{N1)U}b_DFq8 SLV&T;M!d{chb1B%j~i>rt3** z=IYHlmbcL$H|O>==Jk(WBKie7;BV|2!5MWGDv}4TSi;aV3_JBmN-hx4jwybvR yteIvAUk~6nAq!k?>**gpLm8w1jPal3Ek0l4xHNVJz9cFl j`;V>n;@WvcRGuImc4n-5ReQN1D92p&k_R(W$wd)7T%2LUztJY!iLHoB&< zp08bNcoF*-xU^@q$ZQ}{y-`0LS~(6o^K}cUXvqL#jLyoxEnGMbN#Jgl`RCK7Eo_Ew z05{1!wt4Kl$rsN%PswC1rx6BOrrmh3jqFm7-dA`N?_!lkB#NLR*9Fmnf@+OmQqP_| zwELdM&kVz(*Y6q*DpSj>-K@+stcUBTn*+<
hpYiZUqeYMkAS=cCJslP%%U z%C@cn_LSDhDy ScNU_fdls_~^A~q@l2@dWbLbK{T zJ<@;<4XY(m9{pxaDe4hD{14U$=`?Ak%&^69eIZ5;xCM-El=>pzckuVQg&G}>+1*gb zdj=o(Nd;O)I<6B&<6t^-RB+Uc*6UIMme}aLBYVNQRsr|R-<+V cQZ$
cg|79F`1D*)+mO_*jj&KP3#B2v1NABDUW3h*E2*as; zDP-&w=LfimEKYCi 9Jqwm>cIZ=5D9o3b$3%#a!WK^t)`S z^vfDgu8JV_C4Y}%S1OX-OC7i<+@X#m;wq@Wh(=lnUuZ-hGoOhGY443wwc- zgCY;lf)Kk1EMSmBC_v;ZZ$&@Fp-`#K;JCoH`{oBWdJIv*y(vl2XLmN~jk;>la?(Kuq!V$^atkG%?lZ{KC)Sg&ds}u>@hHz5&1I#dT zC7&&o!McBlnzyp39>>`XV?A-aFZ4SVKf_A8CgufhebPQsc>SQWd950Cg{Zy-Fn$y# zY%#h&hS7Y@5h?Py|Ix;61?9R{h3A4Ick_v7g%P2wv%u3_)u!5xuVcp|49k}NY}7A< z?xo&OeKF`1$9nt@JcRL-P&Hb5%8%{Sbij1#_qFP50GnDm`I1i>-;_M_VSe~v<&R_t z(x)21i@3)D)wuSgpgG8pi!*64Wax)H4JyJu)P}Sw?we<9@`hOWF0h4=BfY06%L~oo znw6FQIavM w=s+49|b zJO9~X&$2{dO+o#;->#9IC&(~UMK-=NLe>&B9Kwa5!cKd$DCJI8YNgW1n+}b4(1iwb zNS~=G9F^aDIZq*-EfgcBj;HtI&bJsUK!uY48_vg%t83AYJR2~i+pw_810Bi7&t+Wx zM0sq7o$%P!cKhR{9`nTJqkA(NJ6!TGhhX;-Xh6`+^xcojbtTrGDnH2sE&6rV(r>rEw>i0_pH{B+1)E>52Wa^%j<`{8h zZCI)c%*KJIAH2*#9}&o1zq?|ui6c8=A-XAo`a!gGiwuEuxx}v)94wLB;h!M0B2k2z z8_W)`BGizrL?he)`al-N_{S}sSSF%~H<4>V6Z)7|eH&`op@Qer?wZ+Gvos+QjroPC zqbp0D*e|0WDWc$@uS53yP0iCD58X(8fjOxs2>135D&fj}Kz&oriUIXxdqq5Utv*|u zT(o2hHM40~VT!veuaq9w>Nr|pdT3MqVolMOYYpb`=J!1-#|tSAEmvM$mx#?H`;%LM z{LL-ODoJ$gT^pI|rHxO90WmsL8C2cUMitt&30E~z2*qFLN<22Fj>5hrEy;=zCslYv zQTP(k4_ryqeam`KT^ @y?usc& z;&Kp-+(hTK8d) UC6)BfjNd6reBo<{Je^7EgTbKC`U_49q0 z-GT1GV*PFkv}tOU5}rfyhFN;F;ADm@ep)M88@!rOE=fnLLmP#K0=DxX1Wy=v*BvmM ze4|fo_KRvJGYr ))FRIy;V_wDfQv;1frZYNpQ@xW`L0nnuJ{|lQg4=CMSv+w0Iz7cMl318 zF@i9T zy-sy#sFQH}pa9e^guBbqRiUrbV2ar`+ZA^n^`Z)dI1^5F6 z8b_9?hdss|-Q#7U*pX*?&+AzTrKfw>C#VeqI_Fj@u~H}TlFl8RwbyTPn%|Os`@-i} zJQB^z#03I&oC7XRh3YWr&q=Z>c91K-bMlbD(df`1HmJArP@Pv0o mON>n0aNrsE8;_0(d8)p^x{ Gs zGmQf Ilou947`~@*b(~$_^*{9#H8eA1 z6P)%2c}vPQbMFi$UTtTsd)lH9uxu%fTBjg-MpNI9IHj+HE}d#a`F+x)5RRmZDp=i` zH}0{tO(nvOT>4C`Q|0!c@2~GH#uO(;O%g b@1l)oSlcB9VcJYZ|)Q`<{e{&N+`MfrHS5G4c5BFqQ=PQAt3 zyy}FB^y<1lPr0v8M2?bqc~5qjA7_TxMA?HQQ=b?pXK?#Y1`PH5{n^UtyY`a6naYxX zbA93CY!fKWFI!~2q3BCNQ$En4dGT<}b9+XhzSLXZ$CNFfXi@Mv j#DJ{ z^EV9WIzx6J)8hQH&o=t1mh;x%FQQrfhQ}x-aUzpuO|X5wXE{H5P#$nSHVJtq;&{N% zJ3=oh#?or{WBN(iIw#0a39MlsS4f(RM`*^!#MmxB(GF~q-=dVHKdt&r5{RZw`t1nW z)YWKF&|zoG#gjo1pX;bhG~)+nv@@mHu>}@<)i3H)w4eT3Fy`;X#0@Bw!~ETgRr$R= zL$%&O9Ese8vf{vDt!sS1gX)2~Fe8rup%FV6E<-)(snk*V_Dpu<2ju0S)!O81Q#DAD zZK+$)I)vVz9^>4&!e7lo)mUi~$>n2-ZN|m2kKHe;aS;a5Lz6%$Ou3Kb9O0XE%0kjk zOcOzmfH>ZxX@yzI34gIEOg{AI;R7+c8kHa`13v(0>POh>uV3H&oOuSf%ulvubKt|d zyeXXQC!^4r)T+F>tJO?W@l+H)fnz+N!S5fEt?xCZl(X!CZz+%}T-U|FKE3V-C`Trc zSJ?TMxdD $Xlwc85r8-+A)xYeI>sR+3$dv%Rt(lCdrJUpGn)K{Zaku5KtQsC zj}2t6ixSQHd{%FcidU)yHbMsod|Rpyo4F~@JKMN0^yPU=l|=dl4yO)kkeVF1Ug7`2 zY?SN86UD>j;wSb>?Ft7VBIH2VK1U>9lmgj3=?k-So1@=y1*CeBY4$q3*MT_OCxLh+ znje`glh`Wvj68Y-oH%)Q4==z*r;pWPa&EMTvAQcBI4xhL$f7;9j^p1F2J*Z&?%cnR zhBIS^_oyg2q#1NHnNC^!k7^h{LZ2t#tE5wJd&3U1mdFES-Inc5)0J?t?3<)v#NNLx zH{911y(Lbw1xhQdnF3=dQz|$DiPz?Zm?QVdzln6bCurZrkvFacp$A*b<$i=dT2q$x zKwa%sd&)Bk$}x-vq7bCU`^fF>Tv!AhPMEU(mDu2Ip&86tFi{9keiuF8Y3|D}oCqUI z;F02~CHKf$t^$V#ONOrypFUO>l*7N (V zPP33 lT}NZ#_{&6sef=$qkCQVBa#3#ALkkcp!TWsB*CDi`B})wUA~DPv7S ztLOoy@6A<1U9jwA8>kEXjgh*LK!_?7OW!%{why=I;8&jG4+&q ac0HD=-hj9KEs>xiZ)dS|C4zY3;k z`!f}k76u6UeQQhr*tDMIIi zX{h4*mp!#NoYcqg&pLw_K5~}a`}LEu-A5Lmcb)(I!ZCf+^-(L8?&!uQMp;*UID)B3 z(yxVk0f0m%33=8*B8!qRRRdq)^9XO2^$ZWxH*^1JfY}Oij4fjziPH|2m8?z@AI!lf zEBOq1lT}Zp+fn!dmglKI>hT}Y;XK`0j2Yp*2{n#7^>~ovBlOxp<#bL7*MEIk)GI81 zjyyZGDghPM5CrCzbEe Ljy+z>&K zAy%Gc%51_FS*tZ5LGoW7I!|!;Wra*}_m!d-<$hSRRr7npm5a5CRKE9vf7{v1STw8Q zIgbk6KN-e(cU-Wo#}7WttS8^Phh)k1X??ENKe1=M-`bn4{bO_Ih%ZPVk|6cpz! 9sKG>zY+)Qu9T1 z&r!}FP#k?HX1u!J)&zB+8V_r{a2Hr&`j*Wl+kWw_EerCr@-VmUqHZO!7M^U*@jQR3 zx?58H<=V-|YJRA2z-IZoNeKDB73Y(lzALV4pKXr(!KBVSy@P>U5@`5XEM}pyj&Q(d z+R~TyFH1~DDU-}aEdiry9sheL{Oeko46BvEv%~#Bi+s7MrOHH5>y-XFCl&$mAcD}p z-7RaP6JaFg{QO=lWxG7FH!GH$V&~#8OGQXp#c|9 RXt89p!jw>j$-CbT1^m@x*DF$K5a0Rqmv@GJA% zkYgUluNpT*6v49K3i b-gawoJX&t}bh7qr!ojq=)f;c@<)M?4O%1B+VI z|2DQAwa@1057up=gw3=dgMV@`IjC~IY|N*tVH6dWOjGT*kN=-!Z#oqN-kf9Q(3tI7 zF`yn+D==Q*ly G}W!+!6Y3LrQkXGmUu#2w&PREfby4@ GPQmZYm+Q<0N|IIejoqaM{__^F*7!|p|8{W}u4EbEs`^7w=Mtv6 zRGXK~SG@D2oGtIIPm}*(kAd0__Jy;bp;!=)5%AhFJ0Cw821&vP!rBiSP*nX+q#u#V z{m=3&gun3u)k+EGV(KDEjQo}nyjL>`;sc>vt+D j+0pA>O{$nr$*!LrSU4E zQz$-VuIp)?rdo8)&`)pJOI)wtFXN7W!D3AmJ5_IiKk76to%@|~y48}7w) nNN?9mphZ2AQO-a6 z7#xYX)Au{(u?6vPc!bEI<&)Xsc;9++uCxPK)Q9IzP5##{!t#%kXrC;y()@bGe5Qe4 z9!n{4F?qb8x6Yc2+mXlr#6Ve%>3tq|MfhYjr5K=An~}%wS_SAlV`Lm_`f$*5U#w2^ zPwuQJBK;$Yh6Q7iXJgSv-T~V$^6e)0kSS5((I4y+Jzu7={wIxyu__;zfr!B3U#?_6 z_)iKJxDq_yn(dKSGz#9Fc(XvzXdu~bStI!0p2ev?13?I$tm=rDEN9p2iU9{m9Kkwq z4L%!p>cUe#caCAee@=vtX}Rsmde`z6cg O700HNht#Z9aI^8N#$cXs=qW*$Hf$`ep z|MVB~vx>$vd_<>3Jd5CXsTLW95;g>AS?;he8iJ{AXf&Ur2z>u $6qqfF;R3=&~+5k*33-W!EO# zNx|33|9mlz)79MeH0$V>K}r|v-^N{F464ME_^hJ^kt!bE!T&=1|1@(2v$T%-VEG&3 zwva>SA<0O(!e=8d+T+k3{W(Z3NnSCj>VJbGs+IDy(uoJ%oMqzz<0?Brc_^>tS?>qZ zM1mr93z`0T?6v@_ooozT=@OMwaZ Zsm1_BN4|DPi)$vh0U@9dGDHLwzO?o1k}af ztKfFZoyUoy%OZ0Tu1|NK+fMhgtGH3{!4~S4f{wdQ4(n{5c*OWJkdsuhS+;C^f@GGR zYtu*DafLqa{_pq>MRmKoy16PN8A_r}0!R5v7C7k3s-oZZaMh12wUYZyE;C*u^Qr8l z^3lJ%xQ1&Zy7av;_J@xocve52+&oX!iQAGZ6;!MQ x4qG`N@~7Oxo2fm86IJZrO9WQQfh2tT7UEOkUWDx zIT5DOOMws)NBKVCG4@I*Dq2e*4iUP2!G|wfEB7z0roC*WcNr>*37^`HMT~pUIJ(Wj z` g@6P{Sc9Q1&)X|^C zAx1N`R&dy*W+-Te9_;>A%_`?-QBq*OKu47f;xB`9&kONA_XoV!I`u)2jp<|;i)jId zDlpdySlf`do1G&PjQ-ijlc?4~$k6=r`j=?{9kp_d*M>AJ8|?eMV6zY|TzH+I$0s&t zezMu!9@BYpX^ZyjMuj!*N8i294l 5 z#0}axJICQht0Y$E;O&&NH*eRs*MFUM$Dt~)xoNJ`I}yY*7nKbm6#U4Djb{@_VEk@q z*Nd8J0JV#yQZ-MHSXbR>@s*Y$E;mxGP^HN?BIUAN`q83zM7>g^j+o2p<@5)fLz{a- z*x~n+AnAB4czd%o0q0YVL940ztF46DIEPQ4K{{tja{Ynu#m>WrL|-CpdC3G{8^y#h zM1`X_+Q0sayT7{qK(U%up_FN*AoH@~ru10rCa% zB5}8DFM$Nqj4C0jqy+ zSKfE=A}3|MT{7!VSfWvpr#5eWd;0l=nw+uM{LhmG9C}}?U?f*}?O%^PudDLcA)IN! zm)4!^kvogD8jl+PFrkRx0gR}#i%DsQ;MRT->HAW7d2lGXcf0W#Ew^b8ZW)Gf@GU^A zI`Or@>-mBqcqY(gs3xJiV4V6{pbLrahsAo67Z#ScByQ;+dbUxUMF9n2@lhRyPVqcZ zaa|6W>g22YLr%rl;0V28Dxc&nAB`G$_u3L#`N|~Y^@UzK--!Ze8x8HH-c>`g)SGP~ zJ;6&?oIx8=qZmoNp>6`ilDcm+<>d#O7zedv3zI4(4__K>mOT_0bsKZZ7piW^vH=T#bAlsvk71k @E_io46E{5jl zm1}N&VRfFWf~PALkLTOIR_Ynn?W}I86(Lu_m+QHQ75Womg`>bx18fS5HaE$a$D(#w zKJO>5pWfCsejTkr9)LN9;^_L-0F51#!Cexa*qxsqMf(y~udkqC#GR3rPR=LqwR4BV z#KYB^RNzBN+LN`;WYX4lxNez-7V`v22Db!*A$Ejshc03Be)TC9o=+`_aH@W(KUA{* zs^(q|P(j1QLv|m SD{0K5Kbp9z0N-c762IRJq8}lzN__AVtVF3G+Ef*ac(cCcL;WxT+7zA zXW1me74vOxAQqK@p03X>^LDK+eJUURDX!F4w1Y8M8Z`TL|5`o>AkPVdD?=DRrDh2^ zf0%06T1p(%)LyOCO7p_lJOtSM7ltX)b}^0NQTFlL^8}(86dREyP4!IRMKZlcP+Q=y z*#73p=Zt?Y`<)P$R&twkxg+*7@f?p0NeK=ipL3+-dxxUaHRl~V5fohqYiFC`7z*=8 zzb>!+9h>X?&OM^Ftg=XqNc2xSBOR-(XhhYxpGiN%74FuFCusJIplx0L?9^W*wL7+C z+v+?QdvcJ7=k%UBT1ulL1G;+&sE+oS`ZCr0E=sJ4IvWS5PRHyeUy?3hqd9HrX$Ifi zxcH^I;5n4m?TSBb_x73Jh~8(jb<3Q@jw K>%ceTGi(GEnEc7J+pNI!z zhJOfezH^U8Q0wDP a@onqZ)9t|d2UA?;CC @|keshNIWnN(wuc1V!9>bYs@f(8!mFPCD#?!b)`sL0|TkuHM&k6dOum!1J zWHt_3QYRE)HjKIvlSOFD*p1oNC%bja8$6pMwV4O6M2nL>FP`P+n8)FYe>*?wJB*~n zxrHjk!=lr1{hjG_y$eM)-7$e7j#|=nL(TW9E6m>;P$o^N`YUe~ ^_lHj?m8bx#>?Ue}*6Uq6x>5aCSldp(`P49}K!j^2vqBiH9U7-WJrk@>TTPa8k z%S=GVgPiVg8(Zy;+QzFnV8YTV-MMN%`#9`2)sa`;YzA(q)NA#-|KR2i=pYs3HEqtv z$N(U?ET_|8NEr#uYR=(03jBQ*c@oz0dQnhB`_Q`{nFd9K71eBDqD7;Ny2~%{tX!9@ zu5a%bZus5nZw;m<-e;oT?>o|1zn~7h&idPx268R`)`*`m?MlU@Xlu+1{|ssn(I6}P z`w~0UyFF@?v@oU51EBBIABu^3;LU4I>BD@VsM-%~VI=zXZg&b@^k}o4g6FX{&U9zd zh9~^Iygs&591L<5eh=a!d-X|e@}~)G=-Q(hZ==973B&IJ7Gm1(`T)Dc+;Fy%EZzI%+rybH1FxF@wljM9dXb29VXMea#S z0Jf%QfZz~lVeXveQ&Bx49%3Lxn{IZ%Q3HniMNubEdTk7ivOX(`am}~XsRHI{C8UJ+ zLP9HI$^+#DU@dM@WkM2QEK_5PTEdxpydZZ7JcEzwM~P=n>T!+~AkqqJOV2f?q_RER zcuMT;!D0f4bG1`F#YM|-t!*gk&*#BslXNEsybNM}->)x$UL|+QEuP~+Fzjnzik6g| zu2*lbFPY!BuzjVFNmkq9eN_9D*D5(WwO9asMJA#9l|_Qqucku=LB#jk QkCy)C^S40q#V-b^O|xh6-hd)bEQ5cxX~+b(OQL%<;UfaI7NtrFG0_lc zH9UY2k_+ZLgh&j%Y>_}vtl{5Y89g+|=Mf+j8~kUU&(6u^WEFa16`btO)=HA}D4-Gd z=rss2A=1}ki>+s7eeHv#os1Sr*2WX_7U+raYr5IzQe};gAv>EOU$Usq^JKD(+c`@i z_%Qsx@||U4W9}_GWnCV31^RJfBE9T_hh}VEvYy4Q8ijhwB3m-D!#q2mNs?ED3(3xC zVAbr8v+{hufnJ!KeU0HGM~OoKaL*JNb22S-f3PXI5VAB?Kx%HJP$w%MkdRk)AG9F+ zqGPSC`Q+e!Pzk_TYy>{b4S!@4MN;@Sur@!_*qr|{qtJ`z+kE2E`ejnu;q5+6CxvpD z*~_H97PA$si2-4>d*I;O+Ay!AP!|#M#$t}QSS>K8bp-z=;>oH9ou_*H`U0awKR+PA z7Ze<<`c+Qyk4ep{I5=y%&U}Xm^!_?)-jNasD`=wLB(+=DGWVd*5-VfNrM+|>|D`)W z9;A1aF>%%%3dw*%62X$tuj!yFj*PTftXHkJsms<-x+-xDZw(%fBDe7|8*JIV8XNN% zQ_QTVe%#36N;rhg!Xcc|V&S3vHK4q|S`LOg$JFC hsS&*ZpQQF5qv3;# z3M+ahM%rH$UGmsv^*3)uTb$_njvp7kj8bB&aD9LV$bngX6INbs_va_5uSi ITpt6aNpkC%yaU+=)X%@{4lqdsyctsZ-njE4F~A_I~Z_rQYm^epkBPaVvSZK z*!uwu1Gdj-rhm?>Knb`Q?MACVD|lgSvr{cm#6X&*d7GsYAT?@aS9XWK6}a=OLdc_g zn`l^ >8Iro3 zUn!iv-Y0Q!@~Nq1!WSV~JOUwliwrQ49Ak}yq{a+T1Va<5 *6Vy-Jfjytdnl2 zFrXA1%iMiUD^Y1?j4b|&60bADahjiQZM55uif~Zr3y^x55H>#q-pg1M8TtTu5^k>P zwQfC%J>v?xU(z|#CL8i%h-cQWZg~!*@#O}xU%shE&(r+c3uLY)Mw8WH`X&7ZI>$)Y z1fYMLYo+N1`VPLs_<@Y@(XpewY$3-Ew!ZuC`K9s6-1Ah0Ed0Uph5m081B=(%;e+32 zCy3q@UO_Sme?w>vW=~_4UWsu{kG!Q 5hk}wgG`Q6n)rNOa5FK{bOHhCj;=6`d;0c z$nmsguQ#-stsZ|L81-B C#*ySEiO!Y$cZU)lrOQ2e3Hx+vf4 zu|{18=?1k|e8@>>u_jwlS@UnIUbWESSvmx4qIqGVV*H&Ur9|98#k6?!cwEb7+?eX= zd5;l9hK{EH*%b@Z>jE`i7CiL%xBNvD$4rg$L0-+$e7je>^((&rL4186r*x)|Wcu>v zhevm?S{*9m&2=;~izvYmp#hFgt^h64K9H=!8o|2lDKz>w2x);y9D$SM9bp1m2{qh= zgu{cYIV>=aE2it(ptZg}VpONCdqm6pU<64{NH4oAc0aA(a1fw>H-bx{BotjgvbY$k zOkWiC@f>E(u$PM%7Zs`&-2#mO)jQzxwT {C<7avVg6nKipm-29}l z?uFenaH&v^%$oECUrX62=(%w05C*2@LeGr{wV@^Oq-Rxl)-?hO8>gM@0K>k?ypCE8 zm`As-!r$irEC4sCGRa~c1jmx%YO5Kk48*WPS8*@C+3dKmv-OIP 6BG!Y8irn($-;Wcw_7WbK?9F8ktdIo~8>A)&`)m#m)_F -@(F{=!U3>83Ip9Mi=gi1q_;gqR3Bw94n8y2-2Z1iDPYYc>;ADIFHI0Q_O zFH+NL%UewjORuXh{HNG?Ol}16d)PHzE~!!cfY>FBMJ>Ao>DT0^`h6zge40ktu_z3f zQgl9Y%0z}#(Y{h2wIX^)td-K|f!D2Z(I;!!KECCtgr`DI?qY2rI9zQt%%Tq<`G@rf z-wExk&&7CLJv@@`<1feK=@dSuo4rm~_hQ!;AbkY@5RwMv=ZKUVl!5_*vy)bV7GbAQ zBkFL66E;dAo77`gGqi
^{NDCY z9whnK5Cv4F>LE3OO^m5t{whI2K-)tiodNYprDvD#yic?hLDY9x?K{3 T_QR3$@jV1U4p#nJQpaN0AdgMdhl%FiJ zu~8$c4c-jr6oUS*L_Wpx^0c(u%Y#=+C-8v9g}bo2pi)jn#NoVx;oM>CMaF6ar~AeG zQ_CONCUvI8`x15nNSYSAmL8<~OHMoBDqq^AO@?Ob2y1wt<+EUFq0a`vwqgJ!6$DM; zBrnc#bT@3VE_L{Hl^fw%t(Y2WSAyxZ!&raX>E%XG|L_d6io#bE+=h`zwLE@M*@D*S z!}V)78w`enJAFS=m;% a6n1|VWFaMeJY!{HNirHF;HYkdAz;T!=- yl=Xcf7 z o51WXyhT22SUU8lL znECHV?KWr@4KoOqH#lH~jHiDA&G*ZX?q_KqdZ!(4xcRENtt>-5mMK7~NPUuU$E%n% zSgm{02dM`PC0@Y=l&9T+&!xII>?=YOl}6+8F~5M Mrp+^4q1Jd#&zo>ui#Kb?~!9`4J4bdV1yYLAzc~wNQ9C4N9&i?Bp<=N z|E%^P8jljuHcH;zot=ik62Z@^9}MYVvdBTwvr=+%Q#b{KD**-YS% OxGD<%x#jga*9=!z8bDqsBuk$ZgRoX&8yQ&jA_(>r 2_5w!-5FuaQ-VWt`bzZhPVJBt%Xi;R;;S&8YSw!}AN`yXl)ckOFo+d& #gBDjx?!UHhqC2-;BbyQ=JnKA@xQi6`0f|u0g9f( z7_RWP`kY@rT5L#VdyS6!?hQ~jLQ}C?q`=;T`-j>=kXInUUhZI}vMmDtsYXD3VW*VD z=yYln_&(0q&KMIA$Np`8y F}R8Gy@RS;_{%P-v?D&2AV#jerMl6`P79 zHPEq_S}i2e -W?Cc!nFF$GuKqlKnIw(-AGs5l_9sh~2Hh zf8^aVX$E5CJbU#&9M_0uouFq5Rpg;=n!yf9(guLYb+DB=Rl6gCRij_dC_w;$#Qp!l zHxbaw{{MrIozxLPgpx*)khn4R63Flvl_)|DQe%Eo ^J&@-G{$3>oMiu52yWquAK E(E4_L1FEHvl}b=9VuKRzZg`pH((4O5lBDvoI$b^%>4?%v)}aU_5a4_ z_jozp`Xb|!2M%-{p1qx#-9Bm~pnr0>+L$=k!#{t9Ilmlaq*yx@hs-{qw+4c&&kMCZ zm2jZc>21XAmw=A-%z*wQ|6Gwrrx=(QZgm>UZbecXbam#stW#Ys;|&4`uK7kRYJbCW zE!RAx7dgDY@zi@J!-H7S=3WBX>EG`_Aa96N?OzwFjzS_buxMTyy>_NKGxIHCjK0RQ z+sx2URXB6ws3Um?*Czf0Q&W9YJYS g2+;^TsT!z9u82ZDkWv!h#?R- z^9^ZUWby9Ptvc#Jc0%JQQcZ!($zCxQ^>Iqfy~bOuex~y!uwOQ~O7GuZR{fHTH`d1H z3lP>$mZIQ6Rj3p?XN75^XS@U@k9Y>v|1k_)(6s!Y1yT#;Frw~s@o3WpIZ* hYXtQ2U%L>?+wC!J_NGUNg}2 zI6Xh$Rm}UVP?1dg6$8LV#_qKqqT(2JD~Lo0-W2~q-H`1Jlyc*H>JZ%Csfo*IkneSo z=dA_T6(F?ZKeRB83Q4FS%HeJzcQ??h<_&AE9VwuLx!y4rahvW> jvT(3f?>3CK+VH|Ekl)LAD)s=)OD_aJ^_6e~ZcJax=KPS;s(A zP#iRb(KidB1f}3K2zOEB8cp@{JLOF2Z$Z-e%2Ee)yl>GbPIy5NZZ>^g=$@ZaB2ZbY zD?#bGOzDPvihSH~iowUC=+MEc-)G;|cFKcE&gBiycWW~gIpvlZknv3eoOX?g8|hnQ z;0Y!J@9pn@D YL4d{!MUbNO zk^@VX8qX^XVDMX{I(U0jr?jDvhODS(k+SJQkz~k!M>AeP_iEh7e75WMZKa#OK(uGo z)m1?S2G!fJ?8~ETc&Rx=u}7)di(Vtsc612C2nr=VW(h7$wBANbq;DKG?hXw14E)3) zyUVyz;z58FH#adaG++g=+ljmS^PKZ}ZTT@XjNYS8Ynh?6{x;ULm4eEKj0u;A%%uau zKDc;3#*y3{+DxL-q7Q$Y{~KX6H^nt4AN^MJYuw?7;%4EMpj~%c3M`NU#tp4j>yA*^ zn!YBHC9aHwMt7h%vLt*39s9zB_RW_S-AZi2k95`JPh^lXhB%m0E!gmw8Q);gBFFDf zOpdNf=BjjzZ92qsO^iBWb7!rix6yOJZhvyKcZL;6jqpf%J_d^A7Kxe-S?N(|Eb~4( z{^l=0oK~r7kVFvKCxe0>U395>NcH4A#m+e$4ap6VCRk2v;6kRrczE?0%gLLaexJkc zwv=v+QHwkXCOpOiYT3WE{zj4$az;Xme>E&mOUY3zOflmykyZpjjDcmg$yY+Q?6i6w z8OtLNjoR<#UqqH$zE+YdAipgLdh(oQ%G*LPIMmO7;pl43_Yv#$twI_y^5>1}Zo#}i z@%}FFrY<)+?Mev$l|55#Rq`8TdD@${h~%F@DjRvy|5E&`s~%wROBjgNwj&`X9R3O^ zl7`q0D|!X`s9^I<&h%Y>V}d=`AsjuV78-J_4u0@-G05*mjHB@S87-r445@{N1luSK z@bJ_6FMRS+MLC9b?7)A+hHSykYr2=aB|ypzN|@#TE2IwowEy&gny6!~CH0Sy!^MSf zWw-;WdQ~&~? Kw%20yN*KS^!U_+ek_ rfW4~F>%|Q#2^1LLwqBgvMmE-8Q(L2^T;muf`$gM=Vgs9;Em$*M;(fi zC0<(NtK;9(?=nUbJWAGCj?umlw>*7)d0!5BUUN{${SmBGw&~RUx%BxqSF6ERj6g7! zqW6r$Dk7#S`tFb$G~PRSoI<8hk)2ipspOK*AS`KTke?FCG)+|Wxf~C({nK_5clXdF zk!1aHaXV%Er}ZeVt^YeG%>17U#;%ZJxM$9brN4H9{I?mlhe{>KtN2t-#5b52a_`t7 zlAnr&s^_!k`?S@7+zKfbpOOfI4d6%c0^r+;&6P&Ryw-_-J>e0U_ad=l(U~i6HU$TV z&lDY{IYuEwK3Th?g(N&b{@h;v!$qsKz~5_#P85;&{FuAb;b%ISwZ_nEXg+tr(JwmK z#Ez-(yQTnB4zFi6B0ZYV`T7A6^nFaLO?;uDfonx2Mf6Lr1@{kzBU*OiE0x&m+bL%C z8`XyQ>@aNXd(Dot0<`?3d_Y+vVzsjWn+p&~G`6>4#=Cp5;~E JO<~cuk%0){(JdMKp=Itpqf9s98b0%$gjOm#UEj2@+RMGIhz7gZiV6BS zillI@C`k#YlpY<~81NmOorA;FlSlI9e0i40SWwSbqiviN4l2>FiC5p~KZ+h~hj!9Q zkmc)<(d%@HOhXZu>`(-THw?EITe*E{T5=g+Sc(W)slAMAB8x32U~kQ{S7u7N9_9`W zmx?K9-j3ZFW*ms^W_eg0UJ8s%c=Koxt9H67-ivQRk~S>k{w1H|HbO!}RaHNPgoI4D zQ+;(?{p%W%vTZHg@Qz_9@v=eIR-I8;t=$? cq2Eg~XU{)DjA@udI{Dki^TQNL)V%gn4h z{S~Tt7qZ-_Wn=H@-)BIDr#*)PLtV=K(b54r6D2fZVVE|g!t>Ae$iWA0LpZq(wB<-n z*n5xPio}syzjeAbwbIj#`fsFI9o$2jxQBmSE8VXCiQ(dQr_^|Qt`60WDmGTBD+$)v z0;*C2m57P!ST8T^ XImB|&Y&UB0tR0o z{Cd__a2|_}&e&9w6{8nM{al>b-p)d0^7|F<5HbJjp|#h=jYAa{wc9vt-k%Y!O+c}* zhT+NotFgC?s;h^(MvJ?(#r5Fsu7%=S9LmAHxVyVUX`#5gySqEZ-JRlA{BHWZ_l|G8 z lX1@G>?AA6N|wx-92W7+z!5`~3Y5^0!lgz*kybD8Y&O>W_byuVpE94;Ruz?6 z8$)30dhlQx4yJ^9X5=)QBMUGj mu#71uU4P%Vp^#=3^V0*~WZ=a=Vqy=@kYad^Lih zb63{|1FsDox(u9U=uQ1T`7W4HiuWXpr$cSt>}oI}UY$>48aER#n3{4a`zkCNCG|1k zajJAZc~&heQUf4w#C5XUBXQxY(6Z_RSsn$aMTo|` dL)PEGlWpfLIE?=RvQ{Q^aj69qxi*7v?Sjd|1 z8Qwf1gFAXI@ |H7OlflLGcwJa!)iO&NIJgZGLV)VH&1wL{1n_$4 zEt5BSmtC@MH0>!hxG!2nKet}vvkJKuiGrJUZ0|b_3L#P~2FY|I }0~V$N>0eZcAlym2F*Q3KsPvYK9t;>ipcz&OIthE|9dy^^t`*;SUwm zo%f#Yy>K&_aql})oZ{5k2oJ0GTF0gJ1m#qviMbjlDCuLb!XneiC*U9;rM`jqWcCNl z +451`(Ern!#0!*ooO`50LgLk=Fi5=PL zE^7af&&WNqIHZ}p>!z{?4JUoDd+s=)EOs`<+A>T%bZX$izuYsXN>rjKy~I^W586!J zskrelo;o|;)v*2bkttT@a_`*aGs&TJ@8P{Y&k;NlY5a!zfu^0^NT0tXur%Xj#U`7z zFAx9TKRA+@>2wsg&bHM3U~)56BjnHH>KNuWugYs6h~|y6zVCKdzbc88yC~|~g0UZQ z3CQ@)aB@5xdl6wIzCr0#=T%yb?3GpYaj>Te;~!m&JzOUYx6zKQwlxHanb(4Efi;ey z6Q7>&L}s#(OvG55u}5$FV>%a@nDk67BD|ZU@q7f^sHfbJ_0Pbkq!!N<`mb%u?gIC* z$gU487gx7>pFu!sKeTor`R5O~m}D8AYzhypLc+I%JPdgeFoVBbJO=r^mco5bJsN%n zSClmH6HbcM>#Q)qWk;_yJn7S=ip}-|@E%{4*Zfa9LSEIC218HPc6W9N;1-Gerz&C3 z>Xu{E@fFB`6{-W$QShXgB!G&72fRK*NN1i@BXfUZ`I|hA%wADhFVjwGtEV8*OkEB? zPJ#_H=YnnG7XnAj6Sx4|;=cC!n6-YzW9!7;)MD)iW2$<(g{oH2?2%Q7QI`;((eL6k zrAeWXAM`&$P(pzdJ|aDE2r92Op2u)IEweG6TET2C`#gb)vNN#RwwqO)H@(6e(0K Cwiz>_ijr_aLCiVnIm=C7{$#e~;uozPbHo(e95 z@c#UWX^2m3Ue@c{>>O{UQr*P7=)*^M@ox`mjr)gVyNTMtZ8PBJ2G=jJQ7>`{Rtr>g zoW!wfR>UTr01Xkq7*dLupzZoUkQLZ+vhgDw=*o45(75hnN6XMBcgim>+zm(ETUu8;?`2$icbmSTzn zkd4z#lZoD}uHoZ=j@0rIroZ<_iQW^OKijoaxLeUXr-R{x0TLl`fM}>;%p?`;81$Fl znkUa+-Q0^7JtGgh5|Z(+X^ZFec82|*Q8yZ0`V2;uaLi4b+QBxG%Rd?KvAt4Z;-tCEb{5l#Y?GDs%`l45MMzC$lzxaU8 suk|?S@R7paY!XRv7{(Ht z{8yT`wR`#KG~NQW63ral_$5^tyOaD!-;9QWueBt_mELoga*xLS87aNf0x2p?TA?ta zZ}tUwjvp0tRsL+CrcXqO7U%tWUBOPk3t`_tghIorO{F;2+yw29d4;(XZqh6Nmw2K1 zlQ_6=xC7FBz+3_9hSi(R7nsVQNUXM+P%Qe|UikFj1C^_o7GC=`kBs_pI1fp(VGm7O zWz_iIaLoGN?E;p^Lr~;f0v&xi(V~XrKbwc(r~dZdV5UNWw2EVC>x-uh?z6SaP<*`H znBpf-taMt-XEU+I=CfSJGiC 1qE&U?%ZBYIaP;a59T5L7za0tHLMpYwpV&f{4>RJ+3@R$f1o~#5AUUg IDA08A2oKo{U~sB zUaw7Y-_SKs@-MA1juwy9aNEeTpR9FJ{09)vHTaIX$Z8YH*Xf*SF>{t<-w+pmVpGZS zUHf@g7CFX4LRxu_Rqv7nOnmuO>e!Je +>bcmCixgEA}D( z^ILz0mT1X>dGVps0IEFwG( {D4U$6x@EbHO3k*j@=5sD87g#Ip%$iZ z=pO3I!8RksNh~+_&R@B%B}{8a#Sx+3M`b{-1ecaqaD8L5Vpy*&GV|lSSOk<#blCF? z3~%zu?j&{TdIMifOd@Rk`9p8Gb^>B@{?_YSLJxU_Yp20*BuL^Blm4@>#N{x759adk zx7L4}LQyY{Z{rGpu}remP^hEYI3XCQI)A?zv^eT;h(G#1!qfuWF>&vaV!7fad!$AK z5?ox>1ZKgT#{B;E4ZqQz_L2y_GY0C2A|`+Hw`LjHRVq3@!v5S{NMin{*Ws)`Vq=>= zr>e=l+3he`O$aPiiFvOQ@iQD6RkHf`C(FW0)FjwQ!PEd!XX>_USW1RhFHY%?O{f f`Y=|)aj)y zfUW_y(asjF?JlP|u%XI6{V~3{xHRgD#rLnPdfTbh{dL<;D(N+v0_N!dxf8H7(w-NE z4R b!{WQ^{g)?sIZQu#=Ai_ h0(~pqEPa^*=>1z`hH6_cHx*c4D^RAY7C*ColXMBEv!9^RA!%^5c*#uV z#xIxQmDQ|PG+@$I-0ZvkM`V^14I(og-f^RIqzOI?ZtMI-_uWMA%FMD(nOqlDv*W7p zYc+btjqUDMGmyUZwnfNxEfo1(?gj=mhaQyvt_Uj#!AA hT2&Dm6JmV4=Q=)X1{Z_aJj3UwSC}-sq)~t9OEm4=HGcOK
`Jh+hAC;|qXA@{q#zuCKlq>9&)KA@1mB#X3T$(fu)RG+viN@y}>;jIeGC z`1Nllli~)y!HovgI}#2KG?I88IEs|Ysez`^xh9_%4U~k{#K%9i*=3AASww(YPio}z z43K@P0=Yl_iIWU}!^EZO;8SGjV>EyKJQhx&LEQ`Tjdj0T46fc7!Opd9Pi1w!l{UYB zxU)al;Q@Nps}F>Mz;JWTN1SG*mP>XT0QiMOfRDdl1cWN#*Xli0XD)~0t6O#ND~q&3 z4l`zoDGgm|3lBO(Wzg8+6(kf=Fsw+PDWPxU6B>sEp(6RO_z+yyMtYV-_4f8lWlWfk zMD& LS bY=^7~jdA3AsTNXhaoAp)agQsx&$a89{G=V1j0c?W5+5O=+@9lcy%l zfK7~dfYa*^Kbb1@J#avq=n&9(^?vA|R;uGSeIeh5h&Z0aP9BboX(@TM{hQm7JK`ZE z<0{II^iOA<3fXwEXx|bFG63 o2 zIv^!yHQfA$d(i_)qg$Q%#Qj8Z$|A`Mqrry6*mEACcsc*jcEmcmz29dA0O9UnzE)Oq z+ajP63+cA KR` z+L6a_aidZL;;P2_Tiv < zayZ461$d54K_zkUK;uy03H#pWRSF9kz=i5n%3;AGg>8vRs&!2)e-=lv9PlRz%;f>h z xjfWMl$jnMEw#Wd~=+!2KUkK r17%RV-}lIm8; kf70^Xmv}b< zmo8q14;9A3%Xa(EGO-bUD<`Or7da-9^X{<&fGdFjC{Nvq+=Jm2VI2>0?v3uV@V6ff z)O}a`Gj}ldk4GIfv}$~(E0xs=7ti_Yg+bN&cL-ta1TJH)c0%`t&w_5Z+nQ75-Y`YW zcYL_FSC=UX163QgG}Fep(Z-TY4+dWv3>1q19M!$v7OPvewcF51ioojQH+vt+cp~EC zkxU2KFx`ab0wyHnPbKxlO*zM-T20DJGjth$y%THYJpp*reLgBtnbN2uyZ+Y-Y*NEh z54>AKp#nmCAZNxb1a8E{-8cGg)cB3c6O&Ghy7;)x7_5B?n5BDP+$pp^h%>mkzV|t; zz6nzcO-A+)ra1sbY7gnlmTQC4fH;IcdYnLctg}%N)LBv3qqsHYL(5PUepOxH+sf!U zj-G%6p~Z<+qnexOgtD;30NH5t_;;zyHNwP6Y^4#Ut4^|}R~xGcK2o+CM&A$okJcU7 zMPry$sT;iaj&~Uibv=~u)R?lM_Fu;|$>b~&)%wt;t&C=j&7bsWI8JO 4D|LNmfn@Lk6m-M31*a-dv!>B24HN( z`Q{HEX^x%G3!}lYr{MPVOZ(%csSYo~x+ncl7i{-B^@o`=jJkt64Usxm!#|;MXFGz@ z&xX2$Qj(k*oeV8m?itm|D`at}E_mrkU?bXfUrnHGa_71%2#=-j@@LCypj)3;GicS~ zOj2KS_KD{mHhFi$_kONQj33 a; epxBrJ)dK{*-g2(s4IO) zVs$@GlBkPpMor1Pmq@B-cjCCMQ+pt~cWpGl7~0&9BY%h$svVf;6{HW~70S-&v442> zM@fDy&bu6;Vq%|b?z!1a{v;9ZUVZe=ypzOo7NR`r)_7JQ=*w=D{LS~_IsoC8jCxWi z*OZD_CC4q8Rxk2~5YfS|Sy9lj%%1OLff`_(bKGhu 6L>31A0pj0m$-sO;bpm|z5}nT zyS;!V8&aPSa1Ha1c)LN>!aflWnJ8$k#ivf)@9xh2WD>e}%(2b`AmLr7XOz>FJ6YXO zL4-T#sf7YLtCMLv!di R zyq>-pgv*GljThoqcl>+DZ<8Ee G$H4wRU| z`OE89V~{Za+{*7o;#!Viu%Jx(a#3wiJlW(4Wb2=d>JYa`+ML&jM{1sm$^6KQ+tzR- zZCpH3rOikAm NKQmLSg5cK2~|8(?f$yYkCv5tS2KDn;Kn4}=r`InH_ z(X)Y(r5t|1@LesoI=V=slt+X6m%b0y(C~CCt?0qqdu6lo==*-YmAmFu2@uwoOS?!G zrq-G-Bp>lr=(4cTf52D|f+jd8&+G_G$i&k#05GN4#> S9llQL{~0g4 zR{tQ!%=H3^`C(|`eymJ-=0JuFC0KA(U@4k=4PpxiByF<{g=7xe^B7- N*}u zoTumJzFHlxFU@8+mEbc5DOE`x2m62O%l5~JrHHKz{3I!Y^?h{o)pMQCg%v?+P~`S( z-)%1`iO+>+f5l<#O5n`x40nbB4xY=A@<2t8+D<`#bmPP~1i`$!{+QTRwIYUpgGldn z!{c2R9MMgL#ERjJ00Ej^P;FNuUuNnT%0?_-78Qkr#j}!qxw-Aw`F**2(u~)~0 )=F)E3{t5Gk^5$5oRb;4yoD>fh$SL|@>h%$_y z#t+N%_o+ne?AWG|u98BYPdFr+_rnv XS-GMp3V*<+)m0z)DEJ>U1M}BC0QR$_(}1b&uqlq+BnfoY`D- zxmWOD#SZ!Ch|R_l-u1;6rB>B(ko$CGyLx9z)3A;$*p>V1@$ct3o5h>}s!%vEloKNk z7>+5lw&P`kwXUx)AnHV*7j#5*L}STT9(L(i9?%@^PVi0Bg!!U5oH^9E_P3rwp5Zdn zuQ>bzCR?90$EV31gd6>WBDnR36AQnm>}PGSJ!s74N}0y}`Eeo5s~`wuSjj=CDMaCD zk05rDLGQl{R;+9A #GU_`+7Z>SoD@!wAqX{m >H7FeZ9~`GF zx1ZBj66i=+1KN_$zlwl!P&2)=TS*WVVJmPIBmTa>VfU{7%%_cG8_Mg*+jTR7Wd?F* zaGi^Fp(1G!@|Az@^kL1yxA|}Zb*64}4->raUts?GbP`o@Lh!l)1DR4!rZd9EyV#20 z1}Y ~q} XHiOGO?V(IffC-jyxyoJ*^sK7XBz+vbADnehR0Z7|%;>mx@_=AX9MS$94joC`R3 zuS7gS)qnE4Lv!=}giQ1+(^GF*F<;)tZ$c7oNw6FW|EKXO{&0KirCDbBr%(F2zPI7d z9;ere4}?UP3k;az;+9RTjCITB37^k5y#>r+4L647g}zOt2e~lkUt>3nPJ5sL>HWNy z#AN6BF}T@xzj2LtBRTFr@$lUHGWfLxGWZJETY4#hf2?KfSqdC}Rt`LYA%iaP=RS+_ zYxMsuY#Jkv*>8}Jfx864|NQi)gY$1ew0Mzlz#a0w|6MO?c$Au5KzQUKvtuyd?cx>! z%E5}V#NptD8yjyYJI++#^Y6kcAHzGI@e{}D4-zH^B~7*4$?!yC51?vWZ=8~Pe-dy= zemN$gxs3y4iGJ=zRnkLV*FdgNZ}I%1eillGM`$>_Ri%yV |GduM4s+OE*R^A`i)D7 zxZ Y7M^%&n}p~t~_bkY{^cMF6V9+_(!G69kDj8&1C0|EoR5h zMMC9ktzv $voqq0>9wS%Yg5!xxmALu~lax^ 4 =9y=uX=K`9D(mn*&Y-_|q5!o}lpah;YcF sjm#+H4tvJdE; z@No!4pPFI}i3vS+76Si`I#FqYFE(gFEF33%gBx1bC(FO<8G#H=0YVgh?~i__j&_q& z6ltd?e`NM_rvA0w2J=$SwbopxXp|z3kf&ZIWH(*)P8 Ze{9!9xdqFby96NQOm41f9k#u6+KTfVRX^ z9k=~v-D-*XqI hhKATH zDE?dC-Il)97blKvkFoIsLb+}uV>#x^=8Y+O$YSF-kKQ*ltB?M$CzC}P=%n(GVl5J2 zB*7eIlyafU5A`ULbMAi@5JIW=YV||cv=(6D=?CUIO*UJsVybT%nMUvR`3PFJYLN;U zcyADu<>$vT3YE3bXF#{_Pu{10nSoirbI$`~4SvC+yzDb3l@QLHTlk;ux|@&D9?2 z=RjCjIQt_=95$_F8&B7BUG=8B8=i(;2ZsoU%~OKxQ)CPjzbrR4GS+Q?ZvaaQSJRp? zT3k^7DULGxJBh)Q1rN!X0W&CTpV0SIln@;~0?`;4yw>brWu4?7A2Mc8o`)4Glw1V1 zzJE6);~<&ENU*xh#sRtPD(FtJc5;9g{QcrW_=x(K!&d$E{XwFwSje>CtI)X5qnK0s z1pBhW?6BP%*ERy>eu>mvp~|VIak%$nMD(^XQ4oCsDaN;AmI3joj+E~R@uICVLfAy2 zCL4&fDU%YPSSwNbiAXCrV&-~cv%EJ!$ouK~c }AK+wO-CyoEll!mghjJ9Ca_cuXJA z0>Y+ke87C3kDG`sQQRyV)IPGNn_R9;dJ+D|3YBTLu zFW^9w{ELr9LalU}mMfL5XmMNbPG4D{&8}j3TT@H}>e3qNCd>WI+TFGa)v_uQN>uIq z 0 z1xcnHxBh1NL&K=9&Us20h#N>_FpL+V$c4 8lINj_B`4eB(PTB^vQI0qa+P+{<3KKEy!KF8R-c>DIYG64h%1YPIjNpxY zm{ocVi4Ei$x)`mWq5N9SRe4{@HAuF^APN#yw)L`E(bWr|Z}KUVlJKzPTEenawph9# zx?yxz7`zD>L0M~?L%v?JIF=&5(_75>z5x5J-HxKKzTe?VAg!LC6D?*$<(0aTj9Vu* z!7K{HU)WsEeM8$X5yk*=4FX5XRp;v^b1em-)s2x;EizxTtG>l>N8Q~vJ{r?(f&XL| zPt3Oog2dJGhgn@;ba*VNsAI6{Ov^azO*2FNnP}L_+)TxsYlzk~C3@mwV|xh~OJO_L zylyQgVVZGEij1=Q!sYD})|8jyu=ME(jDoN%K3k)f+R2GrCsH5 B(@o$CBZ7q4NiVPH_>F5MNCq>|;2TyoJvl^cQiiNngSlZnint{EhQP048zRI}^J zk7@mmka;aR?PPN&>G*qto#bnDQw;|RG{7AhKxRR^EPO=fnWEM{M#Vf`76@dZ$%q9H zN|Q}9cW^} qDL}Ir(AgFnA`k7%p7{ z6hr@&2A9UJdM7J|oG$>441FqNQv}y5azMvZIRmlvq?m2F)t3sC`}}m??`FTxQDdxN zmjrg**EJeQ5BSH|C8?{YpcvNL>RGn4XEdB=s$l4cKGpYhrf#Ba^cJXlz&qFZnV>$* zfV4m9AqFq@FXrU N+Gem_U%CIkB| zT9*sw_j7sPW`&WhU}t#4@#PE`)aG|yiSD+SUSe!1-`x7N2ix>`SMeX2nLrq}u2xyj z`qlWa-foiI#IRBdv^DZ3P4ml{YNrRP-)|oNsn37+hf$gf58P^~05KgJ_YQ~-(xI)8 zkinwGW(ZV?V0By}{MVJ$9V@yYQCiL;r8G_NiShd&LAlu9lW}rLk ;LLK8TRKXeiR9Y^?djA;Nnj?1UxDKk3*(jq8 zfPWhi?tC s5bS$Yu$~$?)Ru@{LeP!F>f4{JQ$WM)mrNXw$F4T4-8TlikAm2 zOur`@o($p$%8CsCjVy2XQB3{8W8g{_Fq0oxYN%pjQ^qs$eGtcrMBan|*M)dmG-M~P zXIuqTzrW(O3f6Ak+{9jsYfXFnZ@6y1>|aQ))eGRQ5N+)-kmYs+P~dxCL^<4C$q9MH zm9)M=mzH|w(mZy} oU+dgtVjdo5YFa@UIpC=DQg!qsxH21*^SfC?A}(3t-#O)3kc zmJav=18VJ!baQ~r#v`lUFdWF5_`0>p$2jxF--B2en0mnLYkLR0(SWEwXvfvalzas9 zigGx_tz|a;Uo3s>{Qg$pJs~b5S@o1APGIb|{n?nQl&5T9zX6EypK$Q}W|ynNA45z1 zJpE(Qr)Wvat($C{1?B$k_m%uN0{t7Wa8 *fk!)hsMW$g@WGZX}?|= zY^)$jT#zulIY*aHX+h+F`jw;}`{SX d)9K!C9}MUQDtXl;4$P4Fc?+p=h^Z=<5fn8Kzbu<4_7 z=~rGR0kq+$fq)-u9V2K+_9hfmzgKF05BGA*m3nox($_KYq0@oY67*K?I o0+^GCPq^m8Zi4);O@fTV9eSZi}jw7ab<`<> `3U>R~3eyoonvLx-Q5z7B`fq4+F7+*>I=bCpb4h+PkPSEq05U`Y z*(t0z9^(2 %AnzumNP8QI1} IOrg6uJxXwvH4qsS+>)|V5(i7=VT;13RX@C@*b%*>v?q8giW z)@TjgMtY**qWDmOXPSyh?}_mwvcw-4>QwKmEyh*^lNt!0&%MPd +g-4DUx_QY(kb`>K$2YiM6+S*p`JC$r)?W UwmzjrsAgB6PI7(z&9LWVq5BhN&0AvGXbt-Kn`DcE0vrTI^EP@n?hRgR)Tc~(! zcoAL)Rhy72d|w0t-qCI>mB2lSk{uWt2Okqpe6)0!+y_ES6k;@y!eehQ?KIQdUn;jX z5$u|bRb-<_ahbLEP`Kqx@??$avEPot6qOr!{)O)56Rc4Mq`5U+j#v4Y3=a<{w*@mP z96p`0P1IiP^pbo5Ye2#bs7+Z9q<5d!ZG5Tm67f+rce!hZ&7kqzzpZpRq#Lv2ZET FXr6)9qhDuiS}MnWzly{j+E~-~^KQuCqMX|5VPK0l zj y^Q02vZ0%qBIwoVtGIwsYh27kqFnuhPSh2KhhzF712*7nC zu|V2mYi%5tw<&pk^Brs4^a?^%x VuB(kn3qL@YrIWV0^=Q*pH@_!_o^*igyK}1p$SANZgj-$L zX|Q#J4#%Qw{agkc>buwGTOT8t&%M6kQzR}^w8zkivG(*fQwu|{%k870g>$fcCI8LP z{;E>Q+}SjHWdI$>LGx8Wv;0DF>#-F7jEned2DPuS0x9QMPH5H-V>O&&4N=fnF}1KA!3aT=_m8 zX4d{qn`-_pnH`D~_wBSj*L`f&o@c>8cwm!kvn >~n|tsdlG~Tlg7I8YUD9zdMdVxg|{-+2lim z$cZ@;Ue$kp8n_*==Y3BnqWsNbjY%97R1fDixnUa?UY$Ew>l0%humJbt$BdL}p2URT zNy}wSvV$81 J z*awqN&6A;!>uO{o;y6$k`nbX>mZidJ8V#uMvI s*yvkJznvTUyOCH bmSuTMRB;yjgp1;U3x8!S-e4 z&ZwBH&s0>+!q!JXbtT4>g9-1-V&=+ZmH*R uxwdsbNKWXd-kyRS-eqV1ck 4qx(^tNd>d!afPt(44^8;TG>+l!9!sCYGgM03xy&~DHLRjH_af-3g!ud_T zZ5S(}K?+Fbzvja;SqYAIh6F?0dr+6rm|Qz_H9B;q=U=q<{x<%uMa*5k_?v>Bzqhq5 zlB;*8sCg}72NlP@uu$)6m~#7ZE_8YQIs~_>+B!-g({sN}$qs*7Q`urbjEJT}S^pz) zt8#Q@QStR~wGRnpF<3t7eVK^$NCNF*Q;r~Iabu&nfFY0gyDsIJB0 4g Dy{cG}P0bi=(r320A4V3VqgK1`JH#k86DcYFm+{E~jo*4coCP8*5{ z=Xs3}L!V}3TMEkbpI5r;`tVC%8#^TKeFAmiexM`QvRsNE7mdT0M*4fLDh&F5=+vLo zKUIm+UZyz>^=Vn8=Smq9@yNc4$3#!k2%CnVwIY3IHz^*6FFpDeLta3@N8 H`Jm`1kVw#w#AFX|P2!&)03mGfdF4j-KCo%ww3KaAUpE=evTXTCb>8w>(ks2TPln zv)T6-#>+Yw85q#%%a^Je!e2;Ur2D!gF!2I{%;`{2U*(epID#kCxgtT68Whl@d_+{x z*%BH@c9;BW k5@?XaR{@YH y|9oQoBAa^ z*J-=h%1+{yWku-661W3xocW(HzUbbKdEP{V%H;}_ItVNV3X}NVi54t^8=MJ#?m3x6 z4t{^H{URK+@Zt{K{L%cIAYh@y1Uesfv_m!ju`wZWi4@U|he`3wFJTBNq&L8o$HB)I zB^PBnO@kFmA?&EOR4T<-G{eGR|22l>MSg!V3~i+I90FJYTCT6pteBimbvh_|8SdXo z`+4qL>m`u35S6{UjEp4)k5qT7mup! iak5)k9Q3 !eYM(?g14`n4r0bW0k zq%B$PS$(kWZtXD*U0rge@9=83=CZ81&cL*QN;ZQZ-;j3|BI`jk( yG`cqP3b z-CCLO)B>E&d)d#L@Pj%IqA_*t-?J6!HBAR1IOd60aLvQ$sKDSo@Z6B%?Ip6fh6eY< z4s}$}ltxxwNS{a~M!Ai+$s9+1`~+e{4A)sXxx-6*&WV?}#FDc4@7rmYxlnjAE$tig z{trIC_PR}FyFfzmIei=p@Ysfd*S{)IE4Q=oc9lmU9`Serpda47gGH1Q6;{~{JvJ-- zfg$5Q+WPl_y+K9CeDBemWvlplsq0Q$qsfNoi!K(6_38jGSC{;U@u1dJyc~ZeAGWOz z#@11+=D#p PYzJQTa4q$HYMOiG+M>2u*HSb!{bq%z|D9^8A)ot)p)~F( zZC1&8Y3Bz`73);(9mwQU?K*O~^R9ZtJbZ_;Y47j`Xp{E_`@MnGEr6}% qPy2v-NWbXS!g^Uo)>%@ z`m{mw`E09a%cEf>UAk4EY#@vdGvDLe4G6;Z&>c$o1Jxi?$F)FG9DA6WFJQAzplgtT z*yX(i_8#r;LIH~O<%~Ji$~!`V$rIe}OE^N(->cSV>ILxqn;6Y1A_@guxh%cA3HL>8 zyW^V;Uo-$8!C?~Q2!w);zJ7m;gtzt@wY!4OT8*sEY7MyAaFt#p*}xNA4o+p!EhqG> zLJr4ya|WVMUBM(k%?&l{ZGgR=zm4AQ-aMZTuHUwUG$7ik |N$t@ys>3aC^TShKuL(CHT*Cv#ZuCx5G)~r@p5>$RJgR#I z-kSZr(Qh{i!5?Zt(&3ac)smbbdqMP?w`sM?t0e-yK(x}ix;l7sx=;vFg4xj>8df^D z;&3|mBEZhS#`l}Wam70~dlGpKUp%)h $O p1PbS&I =5i){r$D&{6C=ia|1+q%E0iI$!V0s6yrXzBwCZy+VRq!TC&>?z zUmHUNIB}$($>4?xe_3KG=S2R>js?hM07qtDrlGZUpH(R>T36k4XxY;+ 7Rbloh%{e=hTF*cjnqc(ha!5 zWb|(YX*kXng4ZvasOWz!#doq>+iPUIr+w)+-=ulq;U!m^|2fRgG=LxEh4Ak^FW(gt zwfa6;U?&G|6c?7v_&)OLrhQa7iAPk(`%}V*6{A}!T&quP>i+)mgzszVS=Vw4QfQ`a z!!z9YFZ(DviQ|2Em&R~%Q;%9c=^zZj&yqYDRX)iW@~QQ21Ul4}^6>Hm3t_2KBC#*t zWRtv5h#(Q(kjcTU?*hjkutbTwD6o+H0Jkhh>N^_|Nt>fMhN`DET@iS5h98%2ZaP53 z|Ca*rYQH`EU&a52gLxYoz}Ne)0KDRFpZ@O!;P-xe_P>fZhP;1m|33>L#_{&$|0)1K m{M(oR*W&+A({pVuULl6Z!g!aKgihZ9e^O%dqU9ob{{Ih^epQ+P diff --git a/spec/figure1.svg b/spec/figure1.svg index 68ef45b..bcb32c4 100644 --- a/spec/figure1.svg +++ b/spec/figure1.svg @@ -1,1275 +1,73 @@ - - - -]> -