Re: XLink as a solution for references
Schimon Jehudah via Docutils-users <[email protected]> Tue, 7 Oct 2025 22:56:40 +0300
| Newsgroups | gmane.text.docutils.user |
|---|---|
| Message-ID | <[email protected]> |
--MP_/VJSwrle4tSQD6zPeIKk.cD_ Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Guenter. Good night. I am not yet familiar with Docutils Generic DTD. Thank you for the references. Please. Read the rest of the message further. On Tue, 7 Oct 2025 18:41:51 -0000 (UTC) Guenter Milde via Docutils-users <[email protected]> wrote: > Dear Schimon, >=20 > On 2025-10-06, Schimon Jehudah via Docutils-users wrote: > >> On 2025-09-28, Schimon Jehudah via Docutils-users wrote: =20 >=20 > >> > XLink might be helpful for both, Atom and (X)HTML, in order to > >> > set accurate links to references. =20 >=20 > I don't think using XLink will give advantages to (X)HTML, as browser > support is missing. (Except inside SVG, but even this is deprecated.) > https://en.wikipedia.org/wiki/XLink#Implementations > https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Attribute/xlin= k:href >=20 XLink is fine to them, for toying with SVG, because they fear that with XLink people would migrate to PPN (P2P) systems instead of having those spyware software that are referred to as "(spider) web browsers". Please read the attached article by Mr. Hank Simon (September 29, 2000). Source: http://intelligententerprise.com/000929/supplychain.shtml I do not listen to them. They have also depectated RSS, both versions of Microsummaries (Plain text and XML template addon), and they most recently try to deprecate XSLT. They have conspired to establish the so called "web extension" system which, unlike XPCOM and XUL, has no support for TCP nor UDP and therefore trying to censor FTP, Gemini, Gopher, IRC, SSH, and XMPP. They are not an authority of anything, and I do not use those sso called "internet browsers". As far as am concerned, they terrorise us by trying to perpetuate HTTP and centralized means, and they try to suppress FTP, Gemini and Gopher, and also decentralized means such as eDonkey2000, Freenet (Hyphanet), and Gnutella. They have been doing this for more than twenty years. https://digdeeper.neocities.org/articles/mozilla.xhtml#hydra As brother Dr. Kent Hovind used to say about such people: They should quit their "jobs" and switch tires or do something else useful. > I don't know about Atom but it is not listed as a specification > supporting XLink > https://en.wikipedia.org/wiki/XLink#Within_other_specifications >=20 XML allows to mix elements and namespaces, so I suppose that it be feasible, especially with the assistance of XSLT. Also, XLink has no format of its own, and it is meant to be incorporated into existing formats. Read the attached article from Mr. Hank Simon. > The Docutils Doctree documentation may gain a bit, when we could add a > formal description of internal links (the "refid" and "refname" > attributes) as an "xlink:href" with an XPath fragment specifier that > for the "refid" value "my-id" would mean 'the element that contains > "my-id" in the space-separated list of IDs that is the value of its > "ids" attribute.' > https://docutils.sourceforge.io/docs/ref/doctree.html#refid >=20 > ... >=20 I will explore this. > >> Can you provide a **minimal** working example of what you want to > >> achieve? =20 >=20 > > Yes. I can. =20 >=20 > > I am working on a publication platform of which all produced > > documents are XML (Atom Syndication Format), and these documents > > are transformed to XHTML with XSLT stylesheets. =20 >=20 > How do you produce the XML (Atom) documents?=20 > With a custom Docutils writer or with XSLT from a standard output > format? >=20 The system produces and Atom Syndication Format document, which receives the XHTML data from Docutils; Docutils converts *only the content* to XHTML. The process can be observed at. https://git.xmpp-it.net/sch/Rivista/src/branch/main/rivista/publish/xhtml.py Docutils conversion. https://git.xmpp-it.net/sch/Rivista/src/branch/main/rivista/utility/documen= t.py Atom formation. https://git.xmpp-it.net/sch/Rivista/src/branch/main/rivista/parser/atom.py > > As this platform utilizes The Atom Syndication Format, there is > > element "atom:link" which is almost identical to element "link" of > > HTML. =20 >=20 > > The element "atom:link" is utilized to list related resources (i.e. > > references) and attachments (i.e. enclosures). =20 >=20 > > I am interested to link to those links in a local fashion (i..e > > utilizing the sign hash/number/pound (#), utilizing XSLT > > directives. =20 >=20 > ... >=20 > I have only basic understanding of XML and a vague idea of XSLT so I > cannot help with details.=20 >=20 I think that it would be nice for Docutils to have features for XML. In this case, of utilizing Atom Syndication Format with XSLT, XSLT is mostly an XHTML document with XPath directives to extract data from an Atom document. > I suppose it should be possible with XSLT to convert the "ids" > attribute, https://docutils.sourceforge.io/docs/ref/doctree.html#ids, > to an "id" attribute (maybe just discarding eventual "alias IDs" and > keeping just the first ID), e.g. :: >=20 > - <citation ids=3D"elk-70" names=3D"elk:70"> > + <citation id=3D"elk-70"> >=20 > Then, a "refid" can be replaced by a "refuri" (or "href") attribute > with simple fragment syntax:: >=20 > - <reference name=3D"Elk:70" refid=3D"elk-70">Elk:70</reference> > + <link href=3D"#elk-70">Elk:70</link> >=20 I will explore Docutils Generic DTD and see what can be done. Thank you for this vital information. >=20 > G=C3=BCnter >=20 >=20 Best, Schimon --MP_/VJSwrle4tSQD6zPeIKk.cD_ Content-Type: application/xhtml+xml Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=intelligent_enterprise_magazine__information_supply_chain_2025-08-31_07-14-29.xhtml PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjx0aXRsZT5J bnRlbGxpZ2VudCBFbnRlcnByaXNlIE1hZ2F6aW5lIC0gSW5mb3JtYXRpb24gU3VwcGx5IENoYWlu PC90aXRsZT48YmFzZSBocmVmPSJodHRwczovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAwMTAyMTky MTAxMTRpZl8vaHR0cDovL3d3dy5pbnRlbGxpZ2VudGVudGVycHJpc2UuY29tLzAwMDkyOS9zdXBw bHljaGFpbi5zaHRtbCIgLz48bWV0YSBuYW1lPSJ1cmwiIGNvbnRlbnQ9Imh0dHBzOi8vd2ViLmFy Y2hpdmUub3JnL3dlYi8yMDAxMDIxOTIxMDExNGlmXy9odHRwOi8vd3d3LmludGVsbGlnZW50ZW50 ZXJwcmlzZS5jb20vMDAwOTI5L3N1cHBseWNoYWluLnNodG1sIiAvPjxtZXRhIG5hbWU9ImRhdGUi IGNvbnRlbnQ9IlN1biBBdWcgMzEgMjAyNSAwNzoxNDoyOSBHTVQrMDMwMCAoSXNyYWVsIERheWxp Z2h0IFRpbWUpIiAvPjxtZXRhIG5hbWU9ImNyZWF0b3IiIGNvbnRlbnQ9ImkycC5zY2hpbW9uLnBh cGVyY2xpcCIgLz48bWV0YSBuYW1lPSJ1c2VyLWFnZW50IiBjb250ZW50PSJNb3ppbGxhLzUuMCAo WDExOyBMaW51eCB4ODZfNjQ7IHJ2OjEwMi4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzEwMi4w IiAvPjxtZXRhIG5hbWU9ImNvbnRlbnQtdHlwZS1zb3VyY2VkIiBjb250ZW50PSJ0ZXh0L2h0bWwi IC8+PG1ldGEgbmFtZT0iY2hhcnNldC1zb3VyY2VkIiBjb250ZW50PSJ3aW5kb3dzLTEyNTIiIC8+ PC9oZWFkPjxib2R5PiA8Zm9udCBzaXplPSIyIj4gPGJyIC8+IDxoMT48YnIgLz4gU2hhcmluZyBJ cyBhIFZpcnR1ZTxiciAvPiA8L2gxPiA8aDQ+PGJyIC8+IFRoZSBiZW5lZml0cyBvZiBwZWVyLXRv LXBlZXIgbmV0d29ya2luZyBhcmUgYSBmb3JjZSB0b28gc3Ryb25nIGZvciBsZWdhbCBwcm9ibGVt cyB0byBzdG9wPGJyIC8+PC9oND4gPGg0Pjxmb250PjxiciAvPkhhbmsgU2ltb24gPC9mb250Pjwv aDQ+IDxwPjxiPk5hcHN0ZXIgSW5jLiBhbmQgTVAzIHJlY2VudGx5IGhhdmUgYmVlbiBpbiB0aGUg bmV3czwvYj4gYmVjYXVzZSBvZiBjb3B5cmlnaHQgaXNzdWVzLiBCdXQgdGhhdCBpcyBqdXN0IGEg ZGl2ZXJzaW9uIGZyb20gdGhlIHJlYWwgaXNzdWUgb2YgYSBncmFzcyByb290cyBlZmZvcnQgdG8g YnVpbGQgcGVlci10by1wZWVyIG5ldHdvcmtpbmcgKFBQTikgb3ZlciB0aGUgSW50ZXJuZXQuIElu IHNwaXRlIG9mIHRoZSBjb3VydCBpbmp1bmN0aW9uIGFnYWluc3QgTmFwc3RlciwgdGhlIGltcG9y dGFuY2Ugb2YgUFBOIGluIHRoZSBmdXR1cmUgb2YgdGhlIEludGVybmV0LCB0aGUgV2ViLCBhbmQg ZXh0ZW5zaWJsZSBtYXJrdXAgbGFuZ3VhZ2UgKFhNTCkgaXMgdW5kaW1pbmlzaGVkLiBCZWNhdXNl IHRoZSBJbnRlcm5ldCBpcyBkZWNlbnRyYWxpemVkIGJ5IGl0cyBuYXR1cmUsIHRoZSBpc3N1ZXMg dGhhdCBzdXJyb3VuZCBOYXBzdGVyIGhhdmUgbm8gc2lnbmlmaWNhbnQgaW1wYWN0IG9uIGl0LiBQ UE4gaXMgYSBwcm90b2NvbCwgYmV5b25kIGFueSBsZWdhbCBpc3N1ZXMuIDwvcD48cD4gSG93ZXZl ciwgdGhlIGZpbmFsIG91dGNvbWUgb2YgdGhlc2UgbGVnYWwgYmF0dGxlcyB3aWxsIGNsZWFybHkg YWZmZWN0IGhvdyBwZW9wbGUgY2hvb3NlIHRvIHVzZSBvciBhYnVzZSB0aGlzIHByb3RvY29sLiBJ ZiBwZW9wbGUgdXNlIFBQTiwgb3IgZXZlbiB0aGUgSW50ZXJuZXQsIGZvciBjb3B5cmlnaHQgaW5m cmluZ2VtZW50LCB0aGV5IGFyZSBicmVha2luZyB0aGUgbGF3LiBCdXQgdGhlIHRlY2hub2xvZ3kg aXMgaW5kZXBlbmRlbnQgb2YgdGhlIGNyaW1lLiBMZWdhbCBpc3N1ZXMgYXNpZGUsIFBQTiBpcyBh biBleGNpdGluZyBjYXBhYmlsaXR5LiBBbmQsIGluIGZhY3QsIHVzZXJzIGFyZSBhbHJlYWR5IG1p Z3JhdGluZyB0byBvdGhlciBQUE4gdGVjaG5vbG9naWVzLCBzdWNoIGFzIEdudXRlbGxhIG9yIFNj b3VyLiA8L3A+PHA+IFRoZXNlIG5ldHdvcmtpbmcgZWZmb3J0cyBhcmUgZWZmZWN0aXZlbHkgb3Bl biwgeWV0IG5vbm1haW5zdHJlYW0sIG5ldHdvcmsgY29tbXVuaXRpZXMgd2l0aGluIHRoZSBXZWIg dGhhdCBkbyBub3QgdXNlIGNlbnRyYWxpemVkIHNlcnZlcnMuIFRoZXNlIGRpc3RyaWJ1dGVkIG5l dHdvcmsgY29tbXVuaXRpZXMgd2lsbCBoYXZlIGEgc2lnbmlmaWNhbnQgaW1wYWN0IG9uIHRyYWRp dGlvbmFsIGNvbnRlbnQgcHJvdmlkZXJzLiBCdXQgSSdtIGp1bXBpbmcgYWhlYWQgb2YgbXlzZWxm LiBMZXQncyB0YWxrIGFib3V0IGN1cnJlbnQgZXZlbnRzIGZpcnN0LCBiZWZvcmUgZGlnZ2luZyBk b3duIGludG8gdGhlIG1vcmUgaW50ZXJlc3RpbmcgaXNzdWVzLiA8L3A+PGgzPldoYXQgSXMgTmFw c3Rlcj88L2gzPiA8cD4gRm9yIHRob3NlIG9mIHlvdSB3aG8gYXJlIGJ1c3kgbGV2ZXJhZ2luZyBy YXRoZXIgdGhhbiBlbmpveWluZyB0aGUgV2ViLCBNUDMgaXMgYSBtdXNpYyBzdGFuZGFyZCByZWxl YXNlZCBhIGZldyB5ZWFycyBhZ28uIEFsdGhvdWdoIG5vdCBpdHMgaW50ZW50LCB5b3UgY2FuIHVz ZSBNUDMgdG8gcmVjb3JkIG11c2ljIGZyb20gZXhpc3RpbmcgbXVzaWMgQ0RzIGFuZCB1cGxvYWQg dGhlc2UgbXVzaWMgZmlsZXMgdG8gdGhlIFdlYi4gVGhlIHdvcmRzIHBpcmFjeSwgY29weXJpZ2h0 IGluZnJpbmdlbWVudCwgYW5kIHZpb2xhdGlvbiBlYXNpbHkgY29tZSB0byBtaW5kLiBJdCBpcyBy ZW1pbmlzY2VudCBvZiB0aGUgb2xkIEludGVybmV0IGNyeSB0aGF0ICJpbmZvcm1hdGlvbiB3YW50 cyB0byBiZSBmcmVlLiIgPC9wPjxwPiBPa2F5LCBzbyB5b3UgaGF2ZSBzb21lIGNvb2wgbXVzaWMu IEhvdyBkbyB5b3UgZmluZCBvdGhlciBmb2xrcyB3aXRoIHNvbWUgZGlmZmVyZW50LCBjb29sIG11 c2ljIHRvIHN3YXA/IFNlYXJjaCBlbmdpbmVzIGFyZSBzbG93IGFuZCBzd2FtcGVkLiBFbnRlciBO YXBzdGVyIHRvIHNhdmUgdGhlIGRheS4gTmFwc3RlciBzb2Z0d2FyZSAobmFtZWQgZm9yIGl0cyBj cmVhdG9yLCBTaGF3biBGYW5uaW5nLCB3aG9zZSBuaWNrbmFtZSBpcyBOYXBzdGVyIGJlY2F1c2Ug b2YgaGlzIGN1cmx5IGhhaXIpIGluZGV4ZXMgTVAzIG11c2ljIGZpbGVzIG9uIGEgdXNlcidzIFBD IGFuZCBkaXNwbGF5cyB0aGlzIGluZGV4IHRvIG90aGVyIE5hcHN0ZXIgdXNlcnMgb3ZlciB0aGUg SW50ZXJuZXQuIEEgc2ltcGxlIHNlYXJjaCBsb2NhdGVzIHRoZSBtdXNpYyBvZiBpbnRlcmVzdCwg d2hpY2ggdXNlcnMgY2FuIHRoZW4gZG93bmxvYWQgdGhyb3VnaCB0aGUgZnJlZSBOYXBzdGVyIG5l dHdvcmsuIEkgZG9uJ3QgdGhpbmsgdGhhdCBOYXBzdGVyIGZvbGtzIHdlcmUgb3JpZ2luYWxseSB0 aGlua2luZyBhYm91dCBwaXJhY3ksIGFuZCBJIGRvbid0IHRoaW5rIHRoYXQgVGltIEJlcm5lcnMt TGVlIHdvcnJpZWQgYWJvdXQgY29weXJpZ2h0IGluZnJpbmdlbWVudCB3aGVuIGhlIGNyZWF0ZWQg dGhlIFdlYi4gPC9wPjxwPiBOb25lIG90aGVyIHRoYW4gQW5keSBHcm92ZSwgQ0VPIG9mIEludGVs LCBleHByZXNzZWQgYW4gaW50ZXJlc3QgaW4gTmFwc3RlciBpbiB0aGUgTWF5IGlzc3VlIG9mIEZv cnR1bmUuIEhlIGlzIG5vdCBpbnRlcmVzdGVkIGluIHRoZSBtdXNpYyBvciB0aGUgc3BlY2lmaWNz OyBoZSBpcyBpbnRlcmVzdGVkIGluIHRoZSBhcmNoaXRlY3R1cmUuIEZhcnNpZ2h0ZWQsIHRoYXQg Z3V5IC0tIGhlIGtub3dzIGEgdHVybmluZyBwb2ludCB3aGVuIGhlIHNlZXMgb25lLiBOYXBzdGVy IChhcyB3ZWxsIGFzIG90aGVyIG5ldHdvcmsgc29mdHdhcmUgbGlzdGVkIGluIHRoZSBzaWRlYmFy LCB3d3cuaW50ZWxsaWdlbnRlbnRlcnByaXNlLmNvbSkgZW5hYmxlcyBQUE4uIFRoaXMgbWVhbnMg dGhhdCBJIGNhbiBjb25uZWN0IGRpcmVjdGx5IHRvIHlvdXIgY29tcHV0ZXIgYW5kIHlvdSB0byBt aW5lLCB3aXRob3V0IHRoZSBpbnRlcnZlbnRpb24gb2YgYW4gZXh0ZXJuYWwgc2VydmVyLiAoUmVt aW5kcyBtZSBvZiBBcHBsZVRhbGsuKSA8L3A+PHA+IElmIE5hcHN0ZXIgd2VyZSBhbiBpc29sYXRl ZCBpbnN0YW5jZSBvZiBQUE4sIHRoZW4gSSBhbSBub3Qgc3VyZSB0aGF0IEdyb3ZlIHdvdWxkIGJl IHNvIGludGVyZXN0ZWQuIEJ1dCBmaXZlIG9yIG1vcmUgZGlmZmVyZW50IFBQTiBvZmZlcmluZ3Mg YXJlIGF2YWlsYWJsZS4gT25lIG9mIHRoZSBtb3JlIGZsZXhpYmxlIFBQTiBzeXN0ZW1zIGlzIEdu dXRlbGxhLCB3aGljaCB3b3JrcyB3aXRoIG1vcmUgdGhhbiBqdXN0IE1QMy4gSXQgYWxzbyB3b3Jr cyB3aXRoIGNvcnBvcmF0ZSBkYXRhLiA8L3A+PGgzPkdudXRlbGxhIE5ldHdvcms8L2gzPiA8cD4g R251dGVsbGEgKG5hbWVkIGZvciBhIEV1cm9wZWFuIGJyZWFrZmFzdCBjZXJlYWwpIGlzIGEgcHJv dG9jb2wgZm9yIGNvbm5lY3RpbmcgY29tcHV0ZXJzIG9uIGEgcGVlci10by1wZWVyIGJhc2lzIGFj cm9zcyB0aGUgSW50ZXJuZXQsIGluIGNvbnRyYXN0IHRvIE5hcHN0ZXIsIHdoaWNoIGlzIG1vcmUg bGlrZSBhIGNlbnRyYWxpemVkIGluZGV4IG9mIGZpbGUgc2VydmVycy4gV2l0aCBHbnV0ZWxsYSBj bGllbnQgc29mdHdhcmUgb24gYSBsb2NhbCBjb21wdXRlciwgdXNlcnMgY2FuIHNlbGVjdCB3aGF0 IHRoZXkgd2FudCB0byBzaGFyZSwgaW5kZXggdGhhdCBpbmZvcm1hdGlvbiwgYW5kIHNlYXJjaCBm b3Igc2hhcmVkIGZpbGVzIGFuZCBpbmZvcm1hdGlvbiBhY3Jvc3MgYSBkaXN0cmlidXRlZCBHbnV0 ZWxsYSBuZXR3b3JrLiA8L3A+PHA+IEdudXRlbGxhIHByb3ZpZGVzIG1vcmUgdGhhbiBzaW1wbHkg YSBzZWFyY2ggZW5naW5lIGFuZCBmaWxlIHNlcnZlci4gSXQgYWxzbyBwcm92aWRlcyB0aGUgcHJv dG9jb2wgZm9yIGEgZGlzdHJpYnV0ZWQgY2FwYWJpbGl0eSB0aGF0IGlzIHNpbWlsYXIgdG8gdGhl IGZvdW5kaW5nIGNvbmNlcHQgYW5kIHByb3RvY29sIGJlaGluZCB0aGUgSW50ZXJuZXQgaXRzZWxm LiA8L3A+PHA+IEluIGZhY3QsIEdudXRlbGxhIGlzIGxpa2UgYSBtaW5pLUludGVybmV0IHdpdGhp biB0aGUgSW50ZXJuZXQuIFRoZSBJbnRlcm5ldCB1c2VzIGxhcmdlIHNlcnZlcnMgYW5kIENpc2Nv IHN3aXRjaGVzLCBhbmQgR251dGVsbGEgbGV2ZXJhZ2VzIHRoZSByZXN1bHRpbmcgYmFuZHdpZHRo IGNhcGFiaWxpdGllcyB0byBwZXJtaXQgbG9jYWwgY29tcHV0ZXJzIHRvIGZ1bmN0aW9uIGFzIG5v ZGVzIGFuZCBzZXJ2ZXJzIGZvciB0aGUgR251dGVsbGEgbmV0d29yay4gPC9wPjxwPiBTb2Z0d2Fy ZSBhbmQgcHJvdG9jb2xzIHN1Y2ggYXMgTmFwc3RlciBhbmQgR251dGVsbGEgcHJvdmlkZSB0aGUg cGlwZSwgdGhlIHBhdGh3YXksIHRoZSBqb3VybmV5LCBhbmQgdGhlIG5ldHdvcmsgcm9sbGVkIGFs bCBpbiBvbmUuIE9uZSB1c2VyIGNhbiBjb25uZWN0IHN1Y2Nlc3NpdmVseSB0aHJvdWdoIG90aGVy IHVzZXJzIHRvIGdhaW4gYWNjZXNzIHRvIHRoZSBlbnRpcmUgbmV0d29yayBvZiBjb250ZW50IHBy b3ZpZGVycy4gVGhlIGRlc3RpbmF0aW9uIGlzIHRoZSBtaWxsaW9ucyBvZiBkaXN0cmlidXRlZCBQ Q3Mgb3Igb3RoZXIgY29udGVudCBwcm92aWRlcnMuIEFuZCB0aGUgY29udGVudCBjYW4gYmUgbXVz aWMsIG11bHRpbWVkaWEsIG9yIGNvcnBvcmF0ZSBkYXRhLiBUaGlzIGlzIHdoZXJlIFBQTiBnZXRz IGludGVyZXN0aW5nLiA8L3A+PHA+IFRoZSBQUE4gcHJvdG9jb2xzLCBhcmNoaXRlY3R1cmUsIGFu ZCBhcHByb2FjaCB0aGF0IGxldCBjb250ZW50IGZsb3cgZGlyZWN0bHkgZnJvbSBjbGllbnQgdG8g Y2xpZW50LCB3aXRob3V0IHRoZSBpbnRlcnZlbnRpb24gb2YgYSBtaWRkbGUgbWFuLCBtaWRkbGV3 YXJlLCBvciBjZW50cmFsIHNlcnZlciwgcHJlc2VudCBib3RoIGEgdGhyZWF0IGFuZCBhbiBvcHBv cnR1bml0eSB0byB0cmFkaXRpb25hbCBjb250ZW50IHByb3ZpZGVycy4gSW5kZWVkLCB0aGlzIGtp bmQgb2YgUFBOIGFjcm9zcyB0aGUgV2ViIGhhcyB0d28gaW50ZXJyZWxhdGVkIGltcGxpY2F0aW9u cy4gRmlyc3QsIGl0IGNoYW5nZXMgdGhlIG5hdHVyZSBvZiBzZWFyY2ggZW5naW5lcyBhbmQgY29u dGVudCBwcm92aWRlcnMsIGJlY2F1c2UgUFBOIGVuYWJsZXMgZGlyZWN0IGFuZCBmcmVzaCBhY2Nl c3MgdG8gdGhlIGNvbnRlbnQgd2l0aG91dCB0aW1lIGRlbGF5cyBkdWUgdG8gY2VudHJhbGl6ZWQg aW5kZXhpbmcuIFNlY29uZCwgUFBOIG1heSBiZSB0aGUgbWV0aG9kIG9mIGltcGxlbWVudGluZyBz b21lIG9mIHRoZSBhZHZhbmNlZCwgY29tcGxleCBmZWF0dXJlcyBvZiB0aGUgWE1MIExpbmtpbmcg TGFuZ3VhZ2UgKFhMaW5rLCBzb21ldGltZXMga25vd24gYXMgWExMKSwgYnJpbmdpbmcgdXMgY2xv c2VyIHRvIHRoZSBLbm93bGVkZ2UgTmF2aWdhdG9yLCBhIGNvbmNlcHQgZGVzY3JpYmVkIGJ5IEpv aG4gU2N1bGxleSBvZiBBcHBsZSBDb21wdXRlcnMgaW4gdGhlIGxhdGUgMTk4MHMuIDwvcD48cD4g VGhpcyBmdXR1cmlzdGljLCBpbnRlbGxpZ2VudCBhc3Npc3RhbnQgY291bGQgc2VhcmNoIHRoZSBn bG9iYWwgbmV0d29yayB0byBjb2xsZWN0IGFuZCBjb21iaW5lIGluZm9ybWF0aW9uIGZyb20gYWNy b3NzIHRoZSB3b3JsZC4gQWx0aG91Z2ggYSB0b29sIHRoYXQgbGV0cyBvbmUgV2ViIHNpdGUgYXV0 b21hdGljYWxseSBjb2xsZWN0IGluZm9ybWF0aW9uIGZyb20gbWFueSBvdGhlciBXZWIgc2l0ZXMg YW5kIHRoZW4gY29tYmluZXMgdGhlIHJlc3VsdHMgaW50byBhIGNvaGVyZW50IHByZXNlbnRhdGlv biBmb3IgdGhlIHVzZXIgaXMgYSBzb3BoaXN0aWNhdGVkIGFwcGxpY2F0aW9uLCBpdCBpcyBib3Ro IHBvc3NpYmxlIGFuZCBub3QgdGhhdCBkaWZmaWN1bHQgdG8gZGVzaWduLiA8L3A+PGgzPkNvbnRl bnQgSXMgS2luZzwvaDM+IDxwPiBDdXJyZW50bHksIHRoZSBJbnRlcm5ldCBpcyBhIG1hc3NpdmUg c291cmNlIG9mIGNvbnRlbnQgZm9yIHRoZSB1c2VyLiBNaWxsaW9ucyBvZiBzZXJ2ZXJzIHRocm91 Z2hvdXQgdGhlIHdvcmxkIHN0b3JlIHRoaXMgY29udGVudC4gQ29tcGFuaWVzIHN1Y2ggYXMgSW50 ZWwgbWF5IHNwZW5kIGFzIG11Y2ggYXMgJDgwTSB0byBzdXBwb3J0IHRoZSBzZXJ2ZXJzIGFuZCBu ZXR3b3JrIGluZnJhc3RydWN0dXJlIHRoYXQgc3VwcGxpZXMgSW50ZXJuZXQgY29udGVudCB0byB0 aGUgd29ybGQuIEFzIEdyb3ZlIHN0YXRlcyBpbiB0aGUgRm9ydHVuZSBhcnRpY2xlLCBpZiB0aGUg YmFuZHdpZHRoIHJlcXVpcmVtZW50cyBzaGlmdCBmcm9tIGEgc2VydmVyIG1vZGVsIHRvIGEgUFBO IG1vZGVsLCB0aGVuIHRoYXQgJDgwTSBidWRnZXQgd2lsbCBoYXZlIHRvIGJlIHJlY29uc2lkZXJl ZC4gPC9wPjxwPiBSYXRoZXIgdGhhbiBidWlsZGluZyB1cCBiYW5kd2lkdGggcmVzb3VyY2VzIGZv ciBjZW50cmFsaXplZCBhY2Nlc3MgdG8gdGhlIGNvbnRlbnQgc2VydmVyLCBjb3Jwb3JhdGlvbnMg d2lsbCBoYXZlIHRvIHJlZGlyZWN0IHRoZXNlIHJlc291cmNlcyB0byBzYXRpc2Z5IFBQTiBzb2Z0 d2FyZSByZXF1ZXN0cyBmcm9tIGluZGl2aWR1YWwgY29tcHV0ZXJzLiBUaGlzIGlzIG5vdCBhIGJh ZCB0aGluZywganVzdCBhbm90aGVyIGRlY2VudHJhbGl6ZWQgdGhpbmcgLS0gYW5kIHRoYXQgY2Fu IGJlIHNpZ25pZmljYW50bHkgbGV2ZXJhZ2VkIGludG8gYSBnb29kIHRoaW5nLiA8L3A+PHA+IFRv ZGF5LCBzdGFuZGFyZCBzZWFyY2ggZW5naW5lcyBjYXRhbG9nIHNlcnZlci1iYXNlZCwgY2VudHJh bGl6ZWQgV2ViLWJhc2VkIGNvbnRlbnQgYW5kIHN0b3JlIHRoZSBpbmRleGVkIGluZm9ybWF0aW9u IGluIGEgY2VudHJhbGl6ZWQgZGF0YWJhc2UgZm9yIHJldHJpZXZhbC4gQXMgdGhleSBoYXZlIGRl bW9uc3RyYXRlZCBhIGZldyB0aW1lcywgaGFja2VycyBjYW4gYXR0YWNrIGFuZCBzaHV0IGRvd24g YSBjZW50cmFsaXplZCBjb250ZW50IHNlcnZlci4gSG93ZXZlciwgYSBkaXN0cmlidXRlZCBjb250 ZW50IG5ldHdvcmssIGp1c3QgbGlrZSB0aGUgSW50ZXJuZXQgaXRzZWxmLCBpcyBtdWNoIG1vcmUg ZGlmZmljdWx0IHRvIGF0dGFjayBzdWNjZXNzZnVsbHkuIFN1cmUsIGhhY2tlcnMgY2FuIHNodXQg ZG93biBvbmUgc2VnbWVudCBvZiBhIG5ldHdvcmssIGRlbnlpbmcgYWNjZXNzIHRvIGl0cyBpbmZv cm1hdGlvbi4gQnV0IGZvciB0aGUgbW9zdCBwYXJ0LCB0cmFmZmljIHdpbGwgYmUgZGl2ZXJ0ZWQg dG8gb3RoZXIgc2VnbWVudHMuIDwvcD48cD4gQW5vdGhlciBsaW1pdGF0aW9uIG9mIGNvbnZlbnRp b25hbCBzZWFyY2ggZW5naW5lcyBpcyB0aGF0IHRoZXkgcmV0cmlldmUgV2ViIHBhZ2UgaW5mb3Jt YXRpb24gYnkgdXNpbmcgaW50ZWxsaWdlbnQgYWdlbnRzIG9yIGF1dG9tYXRlZCBXZWIgY3Jhd2xl cnMgdG8gaW5kZXggV2ViIHNpdGVzLiBIb3dldmVyLCBzZWFyY2ggZW5naW5lIHRlY2hub2xvZ3kg aGFzIG5vdCBiZWVuIGFibGUgdG8ga2VlcCB1cCB3aXRoIHRoZSBpbmNyZWFzaW5nIG51bWJlciBv ZiBXZWIgcGFnZXMsIGVzdGltYXRlZCBhdCBtb3JlIHRoYW4gb25lIGJpbGxpb24gYW5kIGdyb3dp bmcuIEluIGZhY3QsIGFjY29yZGluZyB0byBHZW9yZ2UgQ3liZW5rbywgYSBEYXJ0bW91dGggY29t cHV0ZXIgc2NpZW50aXN0LCB0aGUgV2ViIGlzIGdyb3dpbmcgc28gZmFzdCB0aGF0IGEgc2VhcmNo IGVuZ2luZSBuZWVkcyBhIDUwTWJwcyAoVDMpIG5ldHdvcmsgbGluZSBqdXN0IHRvIGtlZXAgdXAg d2l0aCBpdHMgYXV0b21hdGVkIFdlYiBjcmF3bGVycyBhbmQgc3BpZGVycyBhcyB0aGV5IGluZGV4 IG5ldyBXZWIgc2l0ZXMuIFRoZSB1bnZlcmlmaWVkIGV4dHJhcG9sYXRpb24gaXMgdGhhdCB0aGUg bnVtYmVyIG9mIFdlYiBwYWdlcyBkb3VibGVzIGV2ZXJ5IDYwIGRheXMuIFRoaXMgZXN0aW1hdGUg aXMgbm90IHVucmVhc29uYWJsZSB3aGVuIHlvdSBjb25zaWRlciB0aGF0IGEgV2ViIHNpdGUgY29u dGFpbnMgbWFueSBXZWIgcGFnZXMgYW5kIGNvcnBvcmF0aW9ucyBjYW4gcHVibGlzaCBvciB1cGRh dGUgaHVuZHJlZHMgb3IgdGhvdXNhbmRzIG9mIFdlYiBwYWdlcyBwZXIgZGF5LiA8L3A+PHA+IEZ1 cnRoZXJtb3JlLCBtdWNoIG9mIFdlYiBzaXRlIGluZm9ybWF0aW9uIGlzIHN0YXRpYywgb3V0IG9m IGRhdGUsIGFuZCBpbmNvcnJlY3QsIHBvaW50aW5nIHRoZSB1c2VyIGF0IGJyb2tlbiBsaW5rcyBh bmQgbm9uZXhpc3RlbnQgV2ViIHBhZ2VzLiBFdmVuIFlhaG9vLCB3aGljaCBzY3JlZW5zIGl0cyBp bmZvcm1hdGlvbiBtYW51YWxseSwgaGFzIHRoZSBwcm9ibGVtIG9mIHRvbyBtdWNoIGluZm9ybWF0 aW9uIHRvIGtlZXAgaXQgYWxsIHVwIHRvIGRhdGUuIE1vcmVvdmVyLCBjZW50cmFsaXplZCBzZWFy Y2ggZW5naW5lcyBjYW5ub3QgcmV0cmlldmUgZHluYW1pYyBjb250ZW50IGZyb20gcGFnZXMgdGhh dCBhcmUgYnVpbHQgb24gdGhlIGZseSBmcm9tIGUtY29tbWVyY2Ugc2l0ZXMsIGRhdGFiYXNlIHNl YXJjaGVzLCBvciB1c2VyIGludGVyYWN0aW9ucy4gVXNlcnMgaGF2ZSBiZWVuIHNjcmVhbWluZyBm b3IgYmV0dGVyIHNlYXJjaCBlbmdpbmUgdGVjaG5vbG9neSBzaW5jZSB0aGUgc3RhcnQgb2YgdGhl IFdlYidzIHBvcHVsYXJpdHkgaW4gMTk5NC4gPC9wPjxwPiBTbyB0aGUgbmV4dCBzdGVwIGluIHRo ZSBXZWIncyBpbmZvcm1hdGlvbi1zaGFyaW5nIGV2b2x1dGlvbiBpcyBhIFBQTiBwYXJhbGxlbCBz ZWFyY2ggYW5kIGZpbGUtc2hhcmluZyBjb21tdW5pdHksIGRpc3RyaWJ1dGVkIHRocm91Z2hvdXQg dGhlIHJlZ2lvbnMgb2YgdGhlIFdlYiBhbmQgdGhlIEludGVybmV0LiBQUE5zIGRlY2VudHJhbGl6 ZSBpbmZvcm1hdGlvbiBhcyB3ZWxsIGFzIHRoZSBzZWFyY2ggY2FwYWJpbGl0eS4gVGhleSBhbHNv IHByb3ZpZGUgYWNjZXNzIHRvIGR5bmFtaWMgY29udGVudCwgcmF0aGVyIHRoYW4gdGhlIHN0YXRp YyBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSB0cmFkaXRpb25hbCBzZWFyY2ggZW5naW5lcy4gPC9w PjxwPiBDb250ZW50IHByb3ZpZGVycyBjYW4gZGVmaW5lIHdoaWNoIGZpbGVzIGFuZCBjb250ZW50 IGFyZSBzaGFyZWFibGUuIFRoaXMgYXBwcm9hY2ggaXMgYSBkZXBhcnR1cmUgZnJvbSB0b2RheSdz IHNlYXJjaCBwYXJhZGlnbSwgaW4gd2hpY2ggc2VhcmNoIGVuZ2luZXMgbWVyZWx5IHBvaW50IHVz ZXJzIHRvIHRoZSBjb3JyZWN0IFdlYiBzaXRlLCBmb3JjaW5nIHRoZSB1c2VyIHRvIG5hdmlnYXRl IHRvIHRoZSBpbmZvcm1hdGlvbiBvZiBpbnRlcmVzdC4gV2l0aCBQUE4gY2FwYWJpbGl0eSwgdGhl IGpvdXJuZXkgaXMgYWxzbyB0aGUgZGVzdGluYXRpb24sIGJlY2F1c2UgdXNlcnMgY2FuIHNlYXJj aCBmb3IgYW5kIGdvIGRpcmVjdGx5IHRvIHRoZSBpbmZvcm1hdGlvbiBvZiBpbnRlcmVzdCwgYXMg ZGVmaW5lZCBieSB0aGUgY29udGVudCBwcm92aWRlcnMuIDwvcD48cD4gVGhlIHBvdGVudGlhbCBi ZWhpbmQgdGhpcyBpcyByZW1hcmthYmxlLiBTaW1wbHkgc2VsZWN0IGNvbnRlbnQgYW5kIHNoYXJl IGl0LiBJdCdzIHJlYWxseSB0aGF0IGVhc3ksIGFuZCB0aGUgcG93ZXIgb2Ygc2hhcmluZyBjb250 ZW50IGlzIGxpbWl0bGVzcy4gVGhlIGZpbGUgYW5kIGluZm9ybWF0aW9uIGZvcm1hdHMgYXJlIG5v dCBpbXBvcnRhbnQuIEFueSBtZWRpYSBjYW4gYmUgc2hhcmVkLiBBbmQgcHVzaGVkLiBCZWNhdXNl IHRoZSB1c2VyIGhhcyBjb250cm9sIG92ZXIgd2hhdCBpcyBzaGFyZWFibGUsIHRoZSB1c2VyIGNh biBhbHNvICJwdXNoIiBpbmZvcm1hdGlvbiBhcyByZXNwb25zZXMuIFRoaXMgY2FwYWJpbGl0eSBw cm92aWRlcyBhIHNpZ25pZmljYW50IG9wcG9ydHVuaXR5IGZvciBwb3J0YWxzLCB0cmFkaXRpb25h bCBzZWFyY2ggZW5naW5lcywgYW5kIG90aGVyIGNvbW1lcmNpYWwgY29udGVudCBwcm92aWRlcnMu IDwvcD48cD4gSnVzdCBhcyBzZWFyY2ggZW5naW5lcyBzdWNoIGFzIFlhaG9vIGFuZCBBbHRhdmlz dGEgbWFrZSBtb25leSBieSBzZWxsaW5nIGtleXdvcmRzIGFuZCBhZHZlcnRpc2luZywgYW55IGNv bW1lcmNpYWwgY29udGVudCBwcm92aWRlciBjYW4gY3JlYXRlIGludGVyZXN0aW5nIGNvbnRlbnQt cmljaCBhZHZlcnRpc2VtZW50cyB0aGF0IGFyZSBwdXNoZWQgaW4gYW5zd2VyIHRvIHNlYXJjaCBx dWVyaWVzLiBIb3dldmVyLCB0aGVzZSBhZHMgd2lsbCBwcmVzZW50IGEgZG91YmxlLWVkZ2VkIHN3 b3JkLCBiZWNhdXNlIHRoZXkgY2Fubm90IGJlIHB1cmVseSBzZWxmLXNlcnZpbmcuIDwvcD48cD4g SW4gYSBjb21wZXRpdGl2ZSBpbmZvcm1hdGlvbiBzcGFjZSBsaWtlIHRoZSBXZWIsIHdoZXJlIHRp bWUgYW5kIGF0dGVudGlvbiBhcmUgZ29sZGVuLCB1c2VycyByZXNlbnQgY29udGVudC1mcmVlIGFk cyB0aGF0IHdhc3RlIHRpbWUgYmVjYXVzZSB0aGV5IHByb3ZpZGUgbm8gaW5mb3JtYXRpb24gb3Ig ZW50ZXJ0YWlubWVudC4gUFBOIHNvZnR3YXJlIHdvcmtzIGJvdGggd2F5cy4gVXNlcnMgY2FuIGJv eWNvdHQgYSBibGF0YW50IGFkIGFuZCBmaWx0ZXIgb3V0IGFuIGVudGlyZSBXZWIgc2l0ZS4gSnVz dCBhcyBzcGFtIHJlZmVycyB0byB1bndhbnRlZCBqdW5rIGVtYWlsLCB0aGUgUFBOIHVzZXIgY29t bXVuaXR5IHdpbGwgY29pbiBhIHRlcm0gdG8gZGVzY3JpYmUgY29udGVudC1mcmVlIGFkcyB0byBi ZSBvc3RyYWNpemVkLiA8L3A+PHA+IEJ1dCB0aGUgZmluYW5jaWFsIG9wcG9ydHVuaXRpZXMgYXJl IHRvbyBncmVhdCwgc28gY29tbWVyY2lhbCBjb250ZW50IHByb3ZpZGVycyB3aWxsIGxlYXJuIHF1 aWNrbHkgd2hhdCB3b3JrcyBhbmQgd2hhdCBkb2VzIG5vdC4gQ29tcGFuaWVzIGhhdmUgbm90IGJl ZW4gYWJsZSB0byBtYW5hZ2UgdGhpcyBwYXJ0IG9mIHRoZSBXZWItYnJvd3NpbmcgZXhwZXJpZW5j ZSBwcmV2aW91c2x5LiBOb3cgY29tcGFuaWVzIHdpbGwgYmUgYWJsZSB0byBjb250cm9sIGhvdyBz ZWFyY2ggcXVlcmllcyBhcmUgYW5zd2VyZWQgbW9yZSBpbnRlbGxpZ2VudGx5LCB0YWtpbmcgY2hh cmdlIGFuZCBkcml2aW5nIHRoZSBmbG93IG9mIGluZm9ybWF0aW9uIHRyYWZmaWMuIFBQTi1iYXNl ZCBjb250ZW50IHdpbGwgZG8gZm9yIHNlYXJjaGluZyB3aGF0IHRoZSBXZWIgZGlkIGZvciBpbmZv cm1hdGlvbiwgYW5kIGl0IHdpbGwgZG8gZm9yIHRoZSBXZWIgd2hhdCBhZHZlcnRpc2luZyBkaWQg Zm9yIHJhZGlvIGFuZCBUVi4gVGhlIGRpZSBpcyBjYXN0LCBhbmQgdGhlIG1hcCBpcyBpbiBoYW5k OyB0aGUgb25seSBxdWVzdGlvbiBub3cgaXMgaG93IGxvbmcgd2lsbCB0aGUgam91cm5leSB0YWtl LiBMaWtlIGV2ZXJ5dGhpbmcgZWxzZSB0aGF0IGlzIFdlYi1iYXNlZCwgcHJvYmFibHkgbm90IHZl cnkgbG9uZy4gPC9wPjxoMz5YTUwgTGlua2luZyBMYW5ndWFnZTwvaDM+IDxwPiBUaGUgc2Vjb25k IGltcGxpY2F0aW9uIGRlYWxzIHdpdGggWExpbmssIGEgdmVyeSBwb3dlcmZ1bCBsYW5ndWFnZSB0 aGF0IGRyYW1hdGljYWxseSBleHRlbmRzIHRoZSBjYXBhYmlsaXRpZXMgb2YgbGlua2luZyBkb2N1 bWVudHMgd2VsbCBiZXlvbmQgdGhlIGFiaWxpdGllcyBvZiBtZXJlIEhUTUwgV2ViIHBhZ2VzLiBY TGluayBlbmFibGVzIGJpZGlyZWN0aW9uYWwgbGlua2luZywgbXVsdGl3YXkgbGlua2luZywgYW5k IG91dC1vZi1saW5lIGxpbmtpbmcuIEJpZGlyZWN0aW9uYWwgbGlua2luZyBpcyBzaW1wbHkgdGhl IGlkZWEgb2YgdmlzaXRpbmcgYSBXZWIgcGFnZSBhbmQgcmV0dXJuaW5nIHRvIHRoZSBzdGFydGlu ZyBwb2ludCBieSBjbGlja2luZyBvbiB0aGUgc2FtZSBsaW5rIGFnYWluLiBNdWx0aXdheSBsaW5r aW5nIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBXZWIgcmluZ3MgYnkgdXNpbmcgWExpbmsuIFJh dGhlciB0aGFuIHVzaW5nIHRoZSBuYXZpZ2F0aW9uIGJ1dHRvbnMsIGEgdXNlciBjYW4gdHJhdmVy c2UgYmFjayBhbmQgZm9ydGggYW5kIGFsbCBhcm91bmQgd2l0aGluIGEgcHJlZGVmaW5lZCBzZXQg b2YgV2ViIHBhZ2VzLiBPdXQtb2YtbGluZSBsaW5raW5nIGlzIHRoZSBjb25jZXB0IG9mIGh5cGVy bGlua2luZyBiZXR3ZWVuIHR3byBvciBtb3JlIHBhZ2VzIHRoYXQgd2VyZSBub3Qgb3JpZ2luYWxs eSBsaW5rZWQsIGJ5IHVzaW5nIGEgc2VwYXJhdGUgZmlsZSBmb3IgdGhlIGxpbmtzIHRoYXQgY29u bmVjdCB0aGUgV2ViIHBhZ2VzLiBYbGluayBpbmNsdWRlcyB0aGVzZSBhYmlsaXRpZXMgYW5kIGEg ZmV3IG90aGVyIHNwZWNpZmljYXRpb25zLiA8L3A+PHA+IFRoZXNlIGV4dGVuZGVkIGxpbmtpbmcg Y2FwYWJpbGl0aWVzIHN1cHBvcnQgdGhlIHZpcnR1YWwgWE1MIGRvY3VtZW50IGZlYXR1cmUsIGJl Y2F1c2UgdGhlc2UgbGlua3MgbGV0IGEgZGV2ZWxvcGVyIGFjY2VzcyBzcGVjaWZpYyBjb250ZW50 IHdpdGhpbiBhIHZhcmlldHkgb2YgZGlzdHJpYnV0ZWQgZG9jdW1lbnRzIGFuZCB0aGVuIGRpc3Bs YXkgdGhlIHJlc3VsdHMgdG8gYSB1c2VyLiBVc2VycyBhcmUgbm90IGF3YXJlIHRoYXQgdGhlICJj dXJyZW50IiBkb2N1bWVudCBleGlzdHMgb25seSB3aGlsZSB0aGV5IGFyZSBsb29raW5nIGF0IGl0 LiAoU2hhZGVzIG9mIHF1YW50dW0gbWVjaGFuaWNzISkgPC9wPjxwPiBBbm90aGVyIHR5cGUgb2Yg aW5kaXZpZHVhbGl6ZWQsIHZpcnR1YWwgZG9jdW1lbnQgYWxyZWFkeSBleGlzdHMuIFdoZW4gYSB1 c2VyIGludGVyYWN0cyB3aXRoIGEgZGF0YWJhc2UtZ2VuZXJhdGVkIG9yIHNjcmlwdC1iYXNlZCBX ZWIgcGFnZSwgdGhlIHJlc3VsdGluZyBXZWIgcGFnZSBvZiBkeW5hbWljIGNvbnRlbnQgZXhpc3Rz IG9ubHkgaW4gcmVzcG9uc2UgdG8gYSB1c2VyJ3MgdW5pcXVlIHBhcmFtZXRlcnMuIEFsdGhvdWdo IHRyYWRpdGlvbmFsIHNlYXJjaCBlbmdpbmVzIGNhbm5vdCBpbmRleCBkeW5hbWljIGNvbnRlbnQg ZnJvbSBvdGhlciBXZWIgc2l0ZXMsIHRoZXNlIHNhbWUgc2VhcmNoIGVuZ2luZXMgY3JlYXRlIGR5 bmFtaWMgY29udGVudCB0aGVtc2VsdmVzIGluIHRoZSBmb3JtIG9mIHJldHJpZXZhbCByZXN1bHRz LiBEeW5hbWljIGNvbnRlbnQgd2FzIG9uY2UgdGhlIHJlYWxtIG9mIHRoZSBQZXJsIG9yIEphdmEg cHJvZ3JhbW1lci4gWExpbmsgcHJvdmlkZXMgdGhpcyBhYmlsaXR5IHRvIHRoZSBub24tcHJvZ3Jh bW1lci4gPC9wPjxwPiBUaGUgaXNzdWUgd2l0aCBYTGluayBpcyB0aGF0IGl0IGlzIG5vdCBjbGVh ciBob3cgdG8gaW1wbGVtZW50IHRoZSBzb2x1dGlvbiB0byB0aGVzZSBzcGVjaWZpY2F0aW9ucy4g T25lIHBvc3NpYmlsaXR5IG1heSBiZSBhIHJlbGF0aXZlIG9mIE5hcHN0ZXIgb3IgR251dGVsbGEg dGhhdCB3aWxsIGRlZmluZSBhIHJvYnVzdCBQUE4gcHJvdG9jb2wgZm9yIGRldmVsb3BpbmcgdGhl IFhMaW5rIGNhcGFiaWxpdGllcy4gQSBwcm90b2NvbCB0aGF0IGNvbWJpbmVzIHRoZSBkaXN0cmli dXRlZCBhcHBlYWwgb2YgUFBOIHdpdGggdGhlIHBvd2VyIG9mIFhNTCBhbmQgWExpbmsgc3RhbmRh cmRzIHdvdWxkIGJlIGEgZm9ybWlkYWJsZSBhZ2VudCBmb3IgY2hhbmdlLiBJbiBmYWN0LCBQUE4g aXMgdGhlIHBvdGVudGlhbCBzcGFyayBvZiBXZWIgYW5kIEludGVybmV0IGFjY2VzcyB0aGF0IHdp bGwgZmFuIHRoZSByb2FyaW5nIGZsYW1lIG9mIHVuaXZlcnNhbCBpbmZvcm1hdGlvbiByZXRyaWV2 YWwgdG8gbWVldCB0aGUgYnVzaW5lc3MgbmVlZHMgb2YgdGhlIDIxPHN1cD5zdDwvc3VwPiBjZW50 dXJ5LiA8YnIgLz48YnIgLz48L3A+PC9mb250PjxwPjxmb250IHNpemU9IjIiPiA8Yj5IYW5rIFNp bW9uPC9iPjxpPiAoPGEgaHJlZj0iaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDEwMjE5 MjEwMTE0L21haWx0bzpoYW5rLnNpbW9uQGxtY28uY29tIj5oYW5rLnNpbW9uQGxtY28uY29tPC9h PikgaGFzIGJlZW4gd29ya2luZyB3aXRoIGFydGlmaWNpYWwgaW50ZWxsaWdlbmNlIGFuZCBrbm93 bGVkZ2UgZGlzY292ZXJ5LCBpbiB2YXJpb3VzIGZvcm1zLCBmb3IgdGhlIHBhc3QgMjIgeWVhcnMu IEhlIGlzIGN1cnJlbnRseSBjb25zdWx0aW5nIGFuZCB3cml0aW5nIGFib3V0IFhNTCwgV0FQLCBh bmQgQmx1ZXRvb3RoIFdlYiB0ZWNobm9sb2dpZXMuPC9pPjxiciAvPjxiciAvPiA8L2ZvbnQ+IDxi ciAvPjxiciAvPiA8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGJnY29sb3I9IndoaXRlIj4gPHRib2R5 Pjx0cj48dGQgdmFsaWduPSJNSURETEUiPiA8Zm9udCBzaXplPSIxIj4gPGI+TGlua3M6PC9iPiA8 YSBocmVmPSIvd2ViLzIwMDEwMjE5MjEwMTE0L2h0dHA6Ly93d3cuaW50ZWxsaWdlbnRlbnRlcnBy aXNlLmNvbS8iIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI+SG9tZTwvYT4gfCA8YSBocmVmPSIv d2ViLzIwMDEwMjE5MjEwMTE0L2h0dHA6Ly93d3cuaW50ZWxsaWdlbnRlbnRlcnByaXNlLmNvbS9z dWJzLnNodG1sIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPlN1YnNjcmliZTwvYT4gfCA8YSBo cmVmPSIvd2ViLzIwMDEwMjE5MjEwMTE0L2h0dHA6Ly93d3cuaW50ZWxsaWdlbnRlbnRlcnByaXNl LmNvbS9hYm91dC5zaHRtbCIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj5BYm91dDwvYT4gfCA8 YSBocmVmPSIvd2ViLzIwMDEwMjE5MjEwMTE0L2h0dHA6Ly93d3cuaW50ZWxsaWdlbnRlbnRlcnBy aXNlLmNvbS9tZWRpYSIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj5NZWRpYSBLaXQ8L2E+IHwg PGEgaHJlZj0iL3dlYi8yMDAxMDIxOTIxMDExNC9odHRwOi8vd3d3LmludGVsbGlnZW50ZW50ZXJw cmlzZS5jb20vY29udGFjdHMyLnNodG1sIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPkNvbnRh Y3RzPC9hPiB8IDxhIGhyZWY9Ii93ZWIvMjAwMTAyMTkyMTAxMTQvaHR0cDovL3d3dy5pbnRlbGxp Z2VudGVudGVycHJpc2UuY29tL21lZGlhL2VkdGNhbF8wMS5zaHRtbCIgcmVsPSJub29wZW5lciBu b3JlZmVycmVyIj5FZGl0IENhbDwvYT4gfCA8YSBocmVmPSIvd2ViLzIwMDEwMjE5MjEwMTE0L2h0 dHA6Ly93d3cuaW50ZWxsaWdlbnRlbnRlcnByaXNlLmNvbS93Z3VpZGUuc2h0bWwiIHJlbD0ibm9v cGVuZXIgbm9yZWZlcnJlciI+U3VibWlzc2lvbnM8L2E+IHwgPGEgaHJlZj0iL3dlYi8yMDAxMDIx OTIxMDExNC9odHRwOi8vd3d3LmludGVsbGlnZW50ZW50ZXJwcmlzZS5jb20vYXJjaGl2ZXMuc2h0 bWwiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciI+QXJjaGl2ZXM8L2E+IHwgPGEgaHJlZj0iL3dl Yi8yMDAxMDIxOTIxMDExNC9odHRwOi8vd3d3LmludGVsbGlnZW50ZW50ZXJwcmlzZS5jb20vd2hp dGVfcGFwZXJzLnNodG1sIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPldoaXRlIFBhcGVyczwv YT4gPGJyIC8+IDxiPkNvbW11bml0aWVzOjwvYj4gPGEgaHJlZj0iaHR0cHM6Ly93ZWIuYXJjaGl2 ZS5vcmcvd2ViLzIwMDEwMjE5MjEwMTE0L2h0dHA6Ly93d3cuaW50ZWxsaWdlbnRlcnAuY29tLyI+ SW50ZWxsaWdlbnRFUlA8L2E+IHwgPGEgaHJlZj0iaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2Vi LzIwMDEwMjE5MjEwMTE0L2h0dHA6Ly93d3cuaW50ZWxsaWdlbnRlYWkuY29tLyI+SW50ZWxsaWdl bnRFQUk8L2E+IHwgPGEgaHJlZj0iaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDEwMjE5 MjEwMTE0L2h0dHA6Ly93d3cuaW50ZWxsaWdlbnRjcm0uY29tLyI+SW50ZWxsaWdlbnRDUk08L2E+ IHwgPGEgaHJlZj0iaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDEwMjE5MjEwMTE0L2h0 dHA6Ly93d3cuaW50ZWxsaWdlbnRrbS5jb20vIj5JbnRlbGxpZ2VudEtNPC9hPiA8L2ZvbnQ+IDwv dGQ+PC90cj48L3Rib2R5PjwvdGFibGU+IDxiciAvPiA8YnIgLz4gPC9wPjxjZW50ZXI+PGI+PGEg aHJlZj0iaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMDEwMjE5MjEwMTE0L2h0dHA6Ly93 d3cuY21wbmV0LmNvbS9kZWxpdmVyeS9wcml2YWN5Lmh0bWwiPlBSSVZBQ1kgU1RBVEVNRU5UPC9h PjwvYj48YnIgLz4gPHA+PGZvbnQgZmFjZT0iSGVsdmV0aWNhIj5Db3B5cmlnaHQgwqkgMjAwMCBD TVAgTWVkaWEgSW5jLiA8YnIgLz4gQUxMIFJJR0hUUyBSRVNFUlZFRCA8YnIgLz4gTm8gcmVwcm9k dWN0aW9uIHdpdGhvdXQgcGVybWlzc2lvbjxiciAvPiA8L2ZvbnQ+PC9wPjwvY2VudGVyPiA8L2Jv ZHk+PC9odG1sPg== --MP_/VJSwrle4tSQD6zPeIKk.cD_ Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --MP_/VJSwrle4tSQD6zPeIKk.cD_ Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline