[Xotcl] some xodoc fixes

Kristoffer Lawson setok@fishpool.com
Tue, 13 Feb 2001 04:42:45 +0200 (EET)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--282346852-252513528-982032165=:1950
Content-Type: TEXT/PLAIN; charset=US-ASCII


I'm not sure if I should send this to Uwe and Gustaf directly or this
list, so if this is wasting bandwidth then tell me and I'll try to
remember to send further suggested updates directly to them. Anyhow 
here are some changes I made:

- It bugged when a file did not end with a newline (this was actually the
cause of my earlier problem).
- Slightly changed the errorCode documentation section.
- Fixed some other HTML bugs (quite possibly caused by my previoues
ventures into playing with xodoc ;-).
- Removed a lot of space that was being fed out. This was problematic
when I use the <pre> tags. The downside is that the code looks rather
messy, but I might just be posting a kind of solution for that soon.

Anyhow, my version of the xodoc file is attached here.

         -     ---------- = = ---------//--+
         |    /     Kristoffer Lawson      |  www.fishpool.fi|.com
         +-> |    setok@fishpool.com       |  - - --+------
             |-- Fishpool Creations Ltd - /         |
             +-------- = - - - = ---------      /~setok/

--282346852-252513528-982032165=:1950
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="xodoc.xotcl"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0102130442450.1950@gfanrend.fishpool.fi>
Content-Description: 
Content-Disposition: attachment; filename="xodoc.xotcl"

IyAkSWQ6IHhvZG9jLnhvdGNsLHYgMS43IDIwMDAvMTEvMjkgMjI6MjA6MTUg
bmV1bWFubiBFeHAgJA0KcGFja2FnZSBwcm92aWRlIHhvRG9jIDAuODIgDQoj
cGFja2FnZSByZXF1aXJlIHRyYWNlDQoNCkAgQEZpbGUgew0KICBkZXNjcmlw
dGlvbiB7DQogICAgWE9UY2wgZG9jdW1lbnRhdGlvbiB0b29sLiBPdmVybG9h
ZHMgdGhlIGNvbW1hbmQgQCwgd2hpY2ggaXMgdXNlZA0KICAgIGFzIGEgZG9j
dW1lbnRhdGlvbiB0b2tlbi4gDQogIH0NCn0NCg0KQ2xhc3MgRG9jVG9rZW4g
LXBhcmFtZXRlciB7DQogIHtuYW1lICIifQ0KICB7ZG9jUHJvcGVydGllcyAi
In0NCn0NCg0KRG9jVG9rZW4gcHJvYyBzb3J0VG9rZW5MaXN0IGwgew0KICBm
b3JlYWNoIHQgJGwgew0KICAgIHNldCBuYW1lcyhbJHQgc2V0IG5hbWVdKSAk
dA0KICB9DQogIHNldCBzb3J0ZWROYW1lIFtsc29ydCBbYXJyYXkgbmFtZXMg
bmFtZXNdXQ0KICBzZXQgc29ydGVkTGlzdCAiIg0KICBmb3JlYWNoIG4gJHNv
cnRlZE5hbWUgew0KICAgIGxhcHBlbmQgc29ydGVkTGlzdCBbc2V0IG5hbWVz
KCRuKV0NCiAgfQ0KICByZXR1cm4gJHNvcnRlZExpc3QNCn0NCg0KRG9jVG9r
ZW4gaW5zdHByb2MgZXZhbHVhdGVEb2MgZG9jIHsNCiAgZm9yZWFjaCB7cCB2
fSAkZG9jIHsNCiAgICBbc2VsZl0gc2V0ICRwICR2DQogICAgW3NlbGZdIGxh
cHBlbmQgZG9jUHJvcGVydGllcyAkcA0KICB9DQp9DQpEb2NUb2tlbiBpbnN0
cHJvYyBjYXBpdGFsaXplIHN0cmluZyB7DQogIGlmIHskOjp0Y2xfdmVyc2lv
biA+PSA4LjN9IHsNCiAgICBzdHJpbmcgdG91cHBlciAkc3RyaW5nIDAgMA0K
ICB9IGVsc2Ugew0KICAgIHJldHVybiAiW3N0cmluZyB0b3VwcGVyIFtzdHJp
bmcgcmFuZ2UgJHN0cmluZyAwIDBdXVtzdHJpbmcgcmFuZ2UgJHN0cmluZyAx
IGVuZF0iDQogIH0NCn0NCg0KDQpAIERvY1Rva2VuIGluc3Rwcm9jIGdldERv
Y1Byb3BlcnRpZXNIVE1MIHt9IHsNCiAgICBkZXNjcmlwdGlvbiB7DQoJUmV0
dXJucyBsaXN0IG9mIHByb3BlcnRpZXMgYXMgSFRNTC4NCiAgICB9DQp9DQoN
CkRvY1Rva2VuIGluc3Rwcm9jIGdldERvY1Byb3BlcnRpZXNIVE1MIHt9IHsN
CiAgICBzZXQgYyAiIg0KICAgIGZvcmVhY2ggcCBbW3NlbGZdIHNldCBkb2NQ
cm9wZXJ0aWVzXSB7IA0KCWFwcGVuZCBjICI8dHI+Ig0KCWlmIHtbW3NlbGZd
IGV4aXN0cyAkcF19IHsNCgkgICAgYXBwZW5kIGMgIjx0ZCB2YWxpZ249XCJ0
b3BcIj4iDQoJICAgIGFwcGVuZCBjICI8ZW0+IiBbW3NlbGZdIGNhcGl0YWxp
emUgJHBdICI6PC9lbT4iIA0KCSAgICBpZiB7W3N0cmluZyBlcXVhbCAkcCAi
ZXJyb3JDb2RlcyJdfSB7DQoJCSMgQnVpbGQgdGFibGUgd2l0aCBsaXN0IG9m
IGVycm9yIGNvZGVzLg0KCQlhcHBlbmQgYyAiPHRkPiINCiMJCWFwcGVuZCBj
ICI8dGFibGUgYm9yZGVyPTE+Ig0KCQlmb3JlYWNoIHtjb2RlIGRlc2N9IFtb
c2VsZl0gc2V0ICRwXSB7DQoJCSAgICBzZXQgY29kZSBbc3RyaW5nIG1hcCBb
bGlzdCA8ICZsdFw7ID4gJmd0XDtdICRjb2RlXQ0KCQkgICAgc2V0IGRlc2Mg
W3N0cmluZyBtYXAgW2xpc3QgPCAmbHRcOyA+ICZndFw7XSAkZGVzY10NCiMJ
CSAgICBhcHBlbmQgYyAiPHRyPjx0ZCB2YWxpZ249XCJ0b3BcIj48Yj4kY29k
ZTwvYj48dGQ+JGRlc2MiDQoJCSAgICBhcHBlbmQgYyAiPGI+JGNvZGU8L2I+
OiAkZGVzY1xuPHA+Ig0KCQl9DQojCQlhcHBlbmQgYyAiPC90YWJsZT5cbiIN
CgkgICAgfSBlbHNlIHsNCgkJYXBwZW5kIGMgIjx0ZD4iDQoJCWFwcGVuZCBj
IFtbc2VsZl0gcmVmbG93SFRNTCAiICAgIiBbW3NlbGZdIHNldCAkcF1dDQoJ
ICAgIH0NCgl9DQogICAgfQ0KDQogICAgcmV0dXJuICRjDQp9DQoNCkRvY1Rv
a2VuIGluc3Rwcm9jIHJlZmxvd0hUTUwge2xlZnQgcGFyYWdyYXBofSB7DQog
ICNzZXQgcmVzdWx0ICIiDQogICNmb3JlYWNoIGxpbmUgW3NwbGl0ICRwYXJh
Z3JhcGggXG5dIHsNCiAgIyAgaWYgeyFbcmVnZXhwIHteICokfSAkbGluZV19
IHsNCiAgIyAgICBhcHBlbmQgcmVzdWx0ICIkbGVmdCRsaW5lPGJyPlxuIg0K
ICAjICB9DQogICN9DQogICNyZXR1cm4gJHJlc3VsdA0KICByZXR1cm4gJHBh
cmFncmFwaA0KfQ0KDQpDbGFzcyBEb2NGaWxlIC1zdXBlcmNsYXNzIERvY1Rv
a2VuDQpEb2NGaWxlIGluc3Rwcm9jIHByaW50SFRNTCB7fSB7DQogIHNldCBj
ICI8YnI+PGI+IEZpbGVuYW1lOiA8L2I+IDxBIGhyZWY9J1tbc2VsZl0gc2V0
IG5hbWVdJz5bW3NlbGZdIHNldCBuYW1lXTwvQT4NCiAgICAgICAgPGJyPjxi
cj5cbiINCiAgICBhcHBlbmQgYyAiPHRhYmxlPiINCiAgYXBwZW5kIGMgIltb
c2VsZl0gZ2V0RG9jUHJvcGVydGllc0hUTUxdIDxicj5cbiINCiAgICBhcHBl
bmQgYyAiPC90YWJsZT4iDQogIHJldHVybiAkYw0KfQ0KDQpDbGFzcyBEb2NQ
YWNrYWdlIC1zdXBlcmNsYXNzIERvY1Rva2VuIC1wYXJhbWV0ZXIgew0KICB7
dmVyc2lvbiAiIn0NCiAge3R5cGUgIiJ9DQp9DQoNCkNsYXNzIERvY09iaiAt
c3VwZXJjbGFzcyBEb2NUb2tlbiAtcGFyYW1ldGVyIHsNCiAge3Byb2NMaXN0
ICIifQ0KICBjbA0KfQ0KRG9jT2JqIGluc3Rwcm9jIGdldFByb2NzSFRNTCB7
fSB7DQogIHNldCBjICIiDQogIHNldCBwbCBbRG9jVG9rZW4gc29ydFRva2Vu
TGlzdCBbW3NlbGZdIHByb2NMaXN0XV0NCiAgaWYge1tbc2VsZl0gaXN0eXBl
IERvY0NsXX0gew0KICAgIHNldCBwbCBbY29uY2F0IFtEb2NUb2tlbiBzb3J0
VG9rZW5MaXN0IFtbc2VsZl0gaW5zdHByb2NMaXN0XV0gJHBsXQ0KICB9DQog
IGZvcmVhY2ggcCAkcGwgew0KICAgIHNldCBwbiBbJHAgc2V0IG5hbWVdDQog
ICAgc2V0IGxhYmVsKCRwbikgIjxhIGhyZWY9XCIjW1tzZWxmXSBzZXQgbmFt
ZV0tJHBuXCI+JHBuPC9hPiINCiAgfQ0KICBmb3JlYWNoIGwgW2xzb3J0IFth
cnJheSBuYW1lcyBsYWJlbF1dIHsNCiAgICBpZiB7JGMgIT0gIiJ9IHthcHBl
bmQgYyAiLCAifQ0KICAgIGFwcGVuZCBjICRsYWJlbCgkbCkNCiAgfQ0KICBp
ZiB7JGMgIT0gIiJ9IHthcHBlbmQgYyAiLiJ9DQogIHJldHVybiAkYw0KfQ0K
ICANCkRvY09iaiBpbnN0cHJvYyBwcmludEhUTUwge30gew0KICBzZXQgYyAi
PGEgbmFtZT1cIltbc2VsZl0gc2V0IG5hbWVdXCI+PC9hPjxoMj4gT2JqZWN0
OiA8ZW0+IFtbc2VsZl0gc2V0IG5hbWVdIDwvZW0+IDwvaDI+XG4iDQogIGlm
IHtbW3NlbGZdIGV4aXN0cyBjbF19IHsNCiAgICBhcHBlbmQgYyAiPGI+Q2xh
c3M8L2I+OiBbW3NlbGZdIHNldCBjbF0gPGJyPlxuIg0KICB9DQogIGlmIHtb
W3NlbGZdIGV4aXN0cyBoZXJpdGFnZV19IHsNCiAgICBhcHBlbmQgYyAiPGI+
SGVyaXRhZ2U8L2I+OiBbW3NlbGZdIHNldCBoZXJpdGFnZV0gPGJyPlxuIg0K
ICB9DQoNCiAgc2V0IGhlYWQgIjxiPiBQcm9jcyA8L2I+ICINCiAgaWYge1tb
c2VsZl0gaXN0eXBlIERvY0NsXX0gew0KICAgIHNldCBoZWFkICI8Yj4gUHJv
Y3MvSW5zdHByb2NzOiA8L2I+ICINCiAgfQ0KICBhcHBlbmQgYyAiJGhlYWQg
XG4gW1tzZWxmXSBnZXRQcm9jc0hUTUxdIiBcDQogICAgICAgIjxicj48cD5c
biIgIjx0YWJsZT4iXA0KICAgICAgW1tzZWxmXSBnZXREb2NQcm9wZXJ0aWVz
SFRNTF0gIjwvdGFibGU+Ig0KICByZXR1cm4gJGMNCn0NCg0KQ2xhc3MgRG9j
Q2wgLXN1cGVyY2xhc3MgRG9jT2JqIC1wYXJhbWV0ZXIgew0KICB7aW5zdHBy
b2NMaXN0ICIifQ0KfQ0KRG9jQ2wgaW5zdHByb2MgaW5pdCBhcmdzIHsNCiAg
W3NlbGZdIHNldCBvYmogW1tzZWxmIGNsYXNzXSBhdXRvbmFtZSBjbG9ial0N
CiAgbmV4dA0KfQ0KRG9jQ2wgaW5zdHByb2MgcHJpbnRIVE1MIHt9IHsNCiAg
cmVnc3ViICI8aDI+IE9iamVjdDoiIFtuZXh0XSAiPGgyPiBDbGFzczoiIHIN
CiAgcmV0dXJuICRyDQp9DQpDbGFzcyBEb2NNZXRhQ2wNCkRvY01ldGFDbCBp
bnN0cHJvYyBwcmludEhUTUwge30gew0KICByZWdzdWIgIjxoMj4gQ2xhc3M6
IiBbbmV4dF0gIjxoMj4gTWV0YS1DbGFzczoiIHINCiAgcmV0dXJuICRyDQp9
DQoNCkNsYXNzIERvY01ldGhvZCAtc3VwZXJjbGFzcyBEb2NUb2tlbiAtcGFy
YW1ldGVyIHsNCiAgYXJndW1lbnRzDQogIHJldHVyblZhbHVlDQogIG9iag0K
fQ0KDQojIFByaW50cyBvdXQgbWV0aG9kIGluZm9ybWF0aW9uIGFzIEhUTUwu
DQpEb2NNZXRob2QgaW5zdHByb2MgcHJpbnRIVE1MIHt9IHsNCiAgI1tzZWxm
XSBzaG93VmFycw0KICBzZXQgYXJnVGV4dCAiXG4iDQogIHNldCBhICI8dGQ+
PGVtPkFyZ3VtZW50czo8L2VtPiA8L3RkPiINCg0KICBzZXQgYW5jaG9yICJb
W3NlbGZdIHNldCBvYmpdLVtbc2VsZl0gc2V0IG5hbWVdIg0KICBzZXQgYyAi
PGEgbmFtZT1cIiRhbmNob3JcIj48L2E+XG48bGk+PGI+W1tzZWxmXSBzZXQg
bmFtZV0gIg0KDQogIHNldCBhcmdUZXh0ICI8dGFibGU+XG4iDQogIGlmIHtb
W3NlbGZdIGV4aXN0cyBhcmd1bWVudHNdfSB7DQogICAgICBzZXQgYXJnVGV4
dCAiPHRhYmxlPlxuIg0KICAgICAgZm9yZWFjaCB7YXJnIGFyZ0R9IFtbc2Vs
Zl0gc2V0IGFyZ3VtZW50c10gew0KCSAgaWYge1tsbGVuZ3RoICRhcmddID4g
MX0gew0KCSAgICAgICMgQSBkZWZhdWx0IHZhbHVlIHdhcyBnaXZlbiB0byB0
aGUgYXJndW1lbnQuDQoJICAgICAgYXBwZW5kIGMgIiA8ZW0+P1tsaW5kZXgg
JGFyZyAwXT88L2VtPiINCgkgICAgICBhcHBlbmQgYXJnVGV4dCAiPHRyIHZh
bGlnbj1cInRvcFwiPiRhPHRkPiINCgkgICAgICBhcHBlbmQgYXJnVGV4dCAi
PGI+P1tsaW5kZXggJGFyZyAwXT88L2I+OiIgXA0KCQkgIFtbc2VsZl0gcmVm
bG93SFRNTCAiICAgIiBcDQoJCSAgICAgICAiJGFyZ0QgRGVmYXVsdDogXCJb
bGluZGV4ICRhcmcgMV1cIi4iXSBcDQoJCSAgIjwvdGQ+PC90cj5cbiINCgkg
IH0gZWxzZSB7DQoJICAgICAgYXBwZW5kIGMgIiA8ZW0+JGFyZzwvZW0+Ig0K
CSAgICAgIGFwcGVuZCBhcmdUZXh0ICI8dHIgdmFsaWduPVwidG9wXCI+JGE8
dGQ+PGI+JGFyZzwvYj46ICIgXA0KCQkiW1tzZWxmXSByZWZsb3dIVE1MICIg
ICAiICRhcmdEXTwvdGQ+PC90cj5cbiINCgkgIH0NCgkgIHNldCBhICI8dGQ+
PC90ZD4iDQogICAgICB9DQogIH0NCiMgIGFwcGVuZCBjICIgPC9iPjxicj5c
bjx0YWJsZT5cbiIgXA0KIyAgICAgICRhcmdUZXh0IFtbc2VsZl0gZ2V0RG9j
UHJvcGVydGllc0hUTUxdIFxuIFwNCiMgICAgICA8L3RhYmxlPiBcbg0KICBh
cHBlbmQgYyAiIDwvYj48cD5cbiIgXA0KICAgICAgJGFyZ1RleHQgW1tzZWxm
XSBnZXREb2NQcm9wZXJ0aWVzSFRNTF0gPC90YWJsZT5cbg0KDQogIHJldHVy
biAkYw0KfQ0KDQpDbGFzcyBEb2NQcm9jIC1zdXBlcmNsYXNzIERvY01ldGhv
ZA0KQ2xhc3MgRG9jSW5zdHByb2MgLXN1cGVyY2xhc3MgRG9jTWV0aG9kDQoN
CkAgQ2xhc3MgWE9Eb2MgeyBkZXNjcmlwdGlvbiAiSGFuZGxlciBjbGFzcyBm
b3IgYnVpbGRpbmcgYSBkb2N1bWVudGF0aW9uIGRhdGFiYXNlIiB9DQoNCkNs
YXNzIFhPRG9jIC1wYXJhbWV0ZXIgew0KICB7b2JqTGlzdCAiIn0NCiAge3Bh
Y2thZ2VMaXN0ICIifQ0KICB7a25vd25NZXRhY2xhc3NlcyAiQ2xhc3MifQ0K
ICB7bnMgIiJ9DQogIGZpbGVUb2tlbg0KfQ0KDQpYT0RvYyBpbnN0cHJvYyBp
bml0IGFyZ3Mgew0KICBuZXh0DQp9DQoNCg0KQCBYT0RvYyBwcm9jIGRvY3Vt
ZW50RmlsZUFzSFRNTCB7DQogICAgZmlsZSAiZmlsZW5hbWUgb2YgdGhlIHhv
dGNsIGZpbGUgdG8gYmUgZG9jdW1lbnRlZCINCiAgICBkb2NkaXIgImRpcmVj
dG9yeSB0byB3aGljaCB0aGUgaHRtbCBmaWxlIGlzIHdyaXR0ZW4iDQp9IHsN
CiAgICBkZXNjcmlwdGlvbiAiVXNlcyB0aGUgeG9Eb2MgcGFja2FnZSB0byBw
cm9kdWNlIGFuIEhUTUwgZG9jdW1lbnRhdGlvbiBvZg0KICAgICAgICAgICAg
ICAgYSBzcGVjaWZpZWQgZmlsZSAqKioueG90Y2wuIFRoZSBmaWxlIGlzIHdy
aXR0ZW4gdG8gKioqLmh0bWwNCiAgICAgICAgICAgICAgIGluIGRvY2RpciIN
CiAgICByZXR1cm4gImZpbGUgYmFzZW5hbWUgd2l0aG91dCBzdWZmaXgiDQp9
DQoNClhPRG9jIHByb2MgZG9jdW1lbnRGaWxlQXNIVE1MIHtmaWxlIGRvY2Rp
cn0gew0KICBzZXQgZG9jZGIgW1hPRG9jIFtYT0RvYyBhdXRvbmFtZSBkb2Nk
Yl1dDQogIDo6QCBzZXQgeG9Eb2NPYmogJGRvY2RiDQogICRkb2NkYiByZWFk
RmlsZSAkZmlsZQ0KICBzZXQgZmIgJGZpbGUNCiAgcmVnZXhwIHsoW14vXSop
XC5bXi5dKiR9ICRmYiBfIGZiDQogICRkb2NkYiB3cml0ZUZpbGUgJHtkb2Nk
aXJ9LyRmYi5odG1sICRmYiBbJGRvY2RiIHByaW50SFRNTF0NCiAgJGRvY2Ri
IGRlc3Ryb3kNCiAgcmV0dXJuICRmYg0KfQ0KDQoNClhPRG9jIGluc3Rwcm9j
IGhhbmRsZU1ldGhvZCB7b2JqIHR5cGUgbmFtZSB7YXJnTGlzdCAiIn0ge2Rv
YyAiIn19IHsNCiAgI3B1dHMgc3RkZXJyICIrKytNZXRob2QgJHR5cGUgJG5h
bWUgJGFyZ0xpc3QgJGRvYyINCiAgc2V0IHByb2NDbGFzcyBEb2NQcm9jOyBz
ZXQgb2JqQ2wgRG9jT2JqDQogIGlmIHskdHlwZSA9PSAiaW5zdHByb2MifSB7
c2V0IHByb2NDbCBEb2NJbnN0cHJvYzsgc2V0IG9iakNsIERvY0NsfQ0KICBz
ZXQgdCBbJHByb2NDbGFzcyBjcmVhdGUgW1tzZWxmXSBhdXRvbmFtZSB0XV0N
CiAgDQogIHNldCBuIFskdCBzZXQgbmFtZSBbc3RyaW5nIHRyaW1sZWZ0ICRu
YW1lIDpdXQ0KICAkdCBzZXQgb2JqICRvYmoNCg0KICBzZXQgb2JqRm91bmQg
MA0KICBmb3JlYWNoIG8gW1tzZWxmXSBzZXQgb2JqTGlzdF0gew0KICAgIGlm
IHtbJG8gc2V0IG5hbWVdID09ICRvYmp9IHsNCiAgICAgIHNldCBvYmpGb3Vu
ZCAxDQogICAgICBpZiB7JHR5cGUgPT0gImluc3Rwcm9jIiAmJiAhWyRvIGlz
dHlwZSBEb2NDbF19IHsNCgkkbyBjbGFzcyBEb2NDbA0KICAgICAgfQ0KICAg
ICAgYnJlYWsNCiAgICB9DQogIH0NCiAgaWYgeyRvYmpGb3VuZCA9PSAwfSB7
DQogICAgc2V0IG8gWyRvYmpDbCBjcmVhdGUgW1tzZWxmXSBhdXRvbmFtZSB0
XV0NCiAgICAkbyBzZXQgbmFtZSAkb2JqDQogICAgW3NlbGZdIGxhcHBlbmQg
b2JqTGlzdCAkbw0KICB9DQogICRvIGxhcHBlbmQgJHt0eXBlfUxpc3QgJHQN
Cg0KICAkdCBzZXQgYXJndW1lbnRzICRhcmdMaXN0IA0KDQogICR0IGV2YWx1
YXRlRG9jICRkb2MNCn0NCg0KWE9Eb2MgaW5zdHByb2MgaGFuZGxlT2JqIHtj
bGFzcyBuYW1lIGFyZ3N9IHsNCiAgW3NlbGZdIGluc3R2YXIga25vd25NZXRh
Y2xhc3NlcyBvYmpMaXN0IGV4dGVuc2lvbnMNCiAgc2V0IG9iakNsIERvY09i
ag0KICBpZiB7W2xzZWFyY2ggJGNsYXNzICRrbm93bk1ldGFjbGFzc2VzXSAh
PSAtMX0gew0KICAgIHNldCBvYmpDbCBEb2NDbA0KICB9DQoJDQogICMgaWYg
YW4gaW5zdHByb2MvcHJvYyBoYXMgY3JlYXRlZCBhbiBlbnRyeSBmb3IgdGhp
cyBvYmovY2xhc3MNCiAgIyAtPiB1c2UgaXQgYW5kIG92ZXJ3cml0ZSBpdCB3
aXRoIG5ldyBpbmZvDQogIGlmIHtbc2V0IGlkeCBbbHNlYXJjaCAkbmFtZSAk
b2JqTGlzdF1dICE9IC0xfSB7DQogICAgc2V0IHQgW2xpbmRleCAkb2JqTGlz
dCAkaWR4XQ0KICAgICR0IGNsYXNzICRvYmpDbA0KICB9IGVsc2Ugew0KICAg
IHNldCB0IFskb2JqQ2wgY3JlYXRlIFtbc2VsZl0gYXV0b25hbWUgdF1dDQog
ICAgW3NlbGZdIGxhcHBlbmQgb2JqTGlzdCAkdA0KICB9DQoNCiAgJHQgc2V0
IG5hbWUgJG5hbWUNCg0KICBzZXQgbGEgW2xsZW5ndGggJGFyZ3NdDQoNCiAg
IyBldmFsdWF0ZSAtc3VwZXJjbGFzcyBhcmd1bWVudA0KICBpZiB7KCRsYSA9
PSAzIHx8ICRsYSA9PSAyKSAmJiBbbGluZGV4ICRhcmdzIDBdID09ICItc3Vw
ZXJjbGFzcyJ9IHsNCiAgICBzZXQgaGVyaXRhZ2UgWyR0IHNldCBoZXJpdGFn
ZSBbbGluZGV4ICRhcmdzIDFdXQ0KICAgIGZvcmVhY2ggaCAkaGVyaXRhZ2Ug
ew0KICAgICAgaWYge1tsc2VhcmNoICRoICRrbm93bk1ldGFjbGFzc2VzXSAh
PSAtMX0gew0KCSMgQSBuZXcgbWV0YWNsYXNzIHdhcyBkZWZpbmVkDQoJbGFw
cGVuZCBrbm93bk1ldGFjbGFzc2VzICRuYW1lDQoJJHQgY2xhc3MgRG9jTWV0
YUNsDQogICAgICB9DQogICAgfQ0KICB9DQoNCiAgIyBldmFsdWF0ZSBkb2N1
bWVudGF0aW9uDQogIHNldCBkb2MgIiINCiAgaWYgeyRsYSA9PSAxfSB7DQog
ICAgc2V0IGRvYyBbbGluZGV4ICRhcmdzIDBdDQogIH0gZWxzZWlmIHskbGEg
PT0gM30gew0KICAgIHNldCBkb2MgW2xpbmRleCAkYXJncyAyXQ0KICB9DQog
ICR0IGV2YWx1YXRlRG9jICRkb2MNCiAgJHQgc2V0IGNsICRjbGFzcw0KDQog
ICNwdXRzIHN0ZGVyciAiKysrT2JqICRuYW1lICRhcmdzIg0KfQ0KDQpYT0Rv
YyBpbnN0cHJvYyBoYW5kbGVGaWxlIGRvYyB7DQogIGlmIHtbW3NlbGZdIGV4
aXN0cyBmaWxlVG9rZW5dfSB7DQogICAgW1tzZWxmXSBzZXQgZmlsZVRva2Vu
XSBldmFsdWF0ZURvYyAkZG9jDQogIH0NCn0NCg0KWE9Eb2MgaW5zdHByb2Mg
aGFuZGxlUGFja2FnZSBhcmdzIHsNCiAgI3B1dHMgIiRhcmdzIg0KICBpZiB7
W2xsZW5ndGggJGFyZ3NdID4gMn0gew0KICAgIHNldCB0eXBlIFtsaW5kZXgg
JGFyZ3MgMV0NCiAgICBpZiB7JHR5cGUgPT0gInByb3ZpZGUiIHx8ICR0eXBl
ID09ICJyZXF1aXJlIn0gew0KICAgIHNldCB0IFtEb2NQYWNrYWdlIGNyZWF0
ZSBbW3NlbGZdIGF1dG9uYW1lIHRdXQ0KICAgICAgW3NlbGZdIGxhcHBlbmQg
cGFja2FnZUxpc3QgJHQNCiAgICAgICR0IHNldCBuYW1lIFtsaW5kZXggJGFy
Z3MgMl0NCiAgICAgICR0IHNldCB0eXBlICR0eXBlDQogICAgICBpZiB7W2xs
ZW5ndGggJGFyZ3NdID4gM30gew0KCSR0IHNldCB2ZXJzaW9uIFtsaW5kZXgg
JGFyZ3MgM10NCiAgICAgIH0NCiAgICB9DQogIH0NCn0NCg0KWE9Eb2MgaW5z
dHByb2MgcHJpbnRIVE1MIHt9IHsNCiAgICBbc2VsZl0gaW5zdHZhciBleHRl
bnNpb25zDQogIHNldCBjICI8aDI+IFBhY2thZ2UvRmlsZSBJbmZvcm1hdGlv
biA8L2gyPiINCg0KICBbc2VsZl0gaW5zdHZhciBwYWNrYWdlTGlzdA0KICBp
ZiB7W2xsZW5ndGggJHBhY2thZ2VMaXN0XSA+IDB9IHsNCiAgICBmb3JlYWNo
IHQgJHBhY2thZ2VMaXN0IHsNCiAgICAgIGlmIHtbJHQgdHlwZV0gPT0gInBy
b3ZpZGUifSB7DQoJYXBwZW5kIGMgIjxiPiBQYWNrYWdlIHByb3ZpZGVkOiA8
L2I+IFskdCBuYW1lXSBbJHQgdmVyc2lvbl08YnI+XG4iDQogICAgICB9IGVs
c2VpZiB7WyR0IHR5cGVdID09ICJyZXF1aXJlIn0gew0KCWFwcGVuZCBjICI8
Yj4gUGFja2FnZSByZXF1aXJlZDogPC9iPiBbJHQgbmFtZV0gWyR0IHZlcnNp
b25dPGJyPlxuIg0KICAgICAgfQ0KICAgIH0NCiAgfSBlbHNlIHsNCiAgICBh
cHBlbmQgYyAiPGI+IE5vIHBhY2thZ2UgcHJvdmlkZWQvcmVxdWlyZWQgPC9i
Pjxicj5cbiINCiAgfQ0KDQogICAgaWYge1tpbmZvIGV4aXN0cyBleHRlbnNp
b25zXX0gew0KCSMgQWRkIGxpc3Qgb2YgZXh0ZW5zaW9ucy4NCglmb3JlYWNo
IGV4dGVuc2lvbiAkZXh0ZW5zaW9ucyB7DQoJICAgIGFwcGVuZCBjICI8aHI+
Ig0KCSAgICBhcHBlbmQgYyAiPGgyPkRvY3VtZW50IGV4dGVuc2lvbjogPGVt
PlskZXh0ZW5zaW9uIG5hbWVdPC9lbT48L2gyPiINCgkgICAgYXBwZW5kIGMg
IjxlbT5EZXNjcmlwdGlvbjo8L2VtPiBbJGV4dGVuc2lvbiBkZXNjcmlwdGlv
bl0iDQoJfQ0KICAgIH0NCg0KICBzZXQgb2JqTGlzdCBbRG9jVG9rZW4gc29y
dFRva2VuTGlzdCBbW3NlbGZdIG9iakxpc3RdXQ0KDQogIGlmIHtbbGxlbmd0
aCAkb2JqTGlzdF0+MH0gew0KICAgIGFwcGVuZCBjICI8YnI+PGI+RGVmaW5l
ZCBPYmplY3RzL0NsYXNzZXM6IDwvYj4gXG48dWw+Ig0KICAgIGZvcmVhY2gg
b2JqICRvYmpMaXN0IHsNCiAgICAgIHNldCBvbiBbJG9iaiBzZXQgbmFtZV0N
CiAgICAgIGFwcGVuZCBjICIgIDxsaT48YSBocmVmPVwiIyRvblwiPjxlbT4k
b248L2VtPjwvYT46IFwNCglbJG9iaiBnZXRQcm9jc0hUTUxdPGJyPlxuIg0K
ICAgIH0NCiAgICBhcHBlbmQgYyAiPC91bD5cbiINCiAgfQ0KDQogIGlmIHtb
W3NlbGZdIGV4aXN0cyBmaWxlVG9rZW5dfSB7DQogICAgYXBwZW5kIGMgIltb
W3NlbGZdIHNldCBmaWxlVG9rZW5dIHByaW50SFRNTF08YnI+Ig0KICB9IGVs
c2Ugew0KICAgIGFwcGVuZCBjICI8Yj4gTm8gZmlsZSBpbmZvcm1hdGlvbi4g
PC9iPjxicj5cbiINCiAgfQ0KICANCiAgZm9yZWFjaCB0ICRvYmpMaXN0IHsN
CiAgICBhcHBlbmQgYyAiPHA+PGhyPjxwPlxuIiBbJHQgcHJpbnRIVE1MXQ0K
ICAgIHNldCBwbCBbJHQgc2V0IHByb2NMaXN0XQ0KDQogICAgaWYge1skdCBp
c3R5cGUgRG9jQ2xdfSB7DQogICAgICBzZXQgaXBsIFskdCBzZXQgaW5zdHBy
b2NMaXN0XQ0KICAgICAgaWYge1tsbGVuZ3RoICRpcGxdID4gMH0gew0KCWFw
cGVuZCBjICI8aDM+SW5zdHByb2NzPC9oMz5cbjx1bD5cbiINCglmb3JlYWNo
IHMgJGlwbCB7DQoJICBhcHBlbmQgYyBbJHMgcHJpbnRIVE1MXQ0KCX0NCglh
cHBlbmQgYyAiPC91bD5cbiINCiAgICAgIH0NCiAgICB9DQoNCiAgICBpZiB7
W2xsZW5ndGggJHBsXSA+IDB9IHsNCiAgICAgIGFwcGVuZCBjICI8aDM+UHJv
Y3M8L2gzPlxuPHVsPlxuIg0KICAgICAgZm9yZWFjaCBzICRwbCB7DQoJYXBw
ZW5kIGMgWyRzIHByaW50SFRNTF0NCiAgICAgIH0NCiAgICAgIGFwcGVuZCBj
ICI8L3VsPlxuIg0KICAgIH0NCiAgICAjYXBwZW5kIGMgIjxocj5cbiINCiAg
fQ0KICByZXR1cm4gJGMNCn0NCg0KDQpYT0RvYyBpbnN0cHJvYyBnZXRDb21t
YW5kIHtjb250ZW50fSB7DQogIHVwdmFyICRjb250ZW50IGMNCiAgW3NlbGZd
IGluc3R2YXIgY21kDQogIGlmIHtbc2V0IGxpbmUgW3N0cmluZyBmaXJzdCAi
XG4iICRjXV0gIT0gLTF9IHsNCiAgICBhcHBlbmQgY21kIFtzdHJpbmcgcmFu
Z2UgJGMgMCAkbGluZV0NCiAgICBzZXQgYyBbc3RyaW5nIHJhbmdlICRjIFtl
eHByICRsaW5lICsgMV0gZW5kXQ0KICAgIGlmIHtbaW5mbyBjb21wbGV0ZSAk
Y21kXX0gew0KICAgICAgc2V0IHIgJGNtZDsgc2V0IGNtZCAiIg0KICAgICAg
cmV0dXJuICRyDQogICAgfQ0KICB9IGVsc2VpZiB7W3N0cmluZyBsZW5ndGgg
W3N0cmluZyB0cmltICRjXV0gPjB9IHsNCiAgICAgICMgV2UgaGF2ZSBzb21l
IGRhdGEgbGVmdCB3aGljaCBkb2Vzbid0IGVuZCB3aXRoIGEgIlxuIi4gVGhp
cyBoYXBwZW5zDQogICAgICAjIGlmIGFuIEVPRiBtYXJrcyB0aGUgZW5kIG9m
IGEgbGluZSBpbnN0ZWFkIG9mIGEgbmV3bGluZS4NCiAgICAgIGFwcGVuZCBj
bWQgJGMNCiAgICAgIHNldCBjICIiDQogICAgICBpZiB7W2luZm8gY29tcGxl
dGUgJGNtZF19IHsNCgkgIHNldCByICRjbWQNCgkgIHNldCBjbWQgIiINCgkg
IHJldHVybiAkcg0KICAgICAgfQ0KICB9IGVsc2Ugew0KICAgIHJldHVybiAi
Ig0KICB9DQogIFtzZWxmXSBnZXRDb21tYW5kIGMNCn0NCg0KDQpYT0RvYyBp
bnN0cHJvYyBldmFsdWF0ZUNvbW1hbmRzIHtjfSB7DQogIHdoaWxlIDEgew0K
ICAgIHNldCBjb21tYW5kIFtbc2VsZl0gZ2V0Q29tbWFuZCBjXQ0KICAgIGlm
IHskY29tbWFuZCA9PSAiIn0gew0KICAgICAgYnJlYWsNCiAgICB9DQogICAg
I3B1dHMgc3RkZXJyICIkY29tbWFuZD09PT09PT09PT09PT09PT09PT09PT09
PT09PSINCiAgICBpZiB7W3JlZ2V4cCAiXiAqOipAICIgJGNvbW1hbmRdfSB7
DQogICAgICAjcHV0cyBzdGRlcnIgIiRjb21tYW5kPT09PT09PT09PT09PT09
PT09PT09PT09PT09Ig0KICAgICAgZXZhbCAkY29tbWFuZA0KICAgIH0gZWxz
ZWlmIHtbcmVnZXhwICJeICpwYWNrYWdlICIgJGNvbW1hbmRdfSB7DQogICAg
ICAjcHV0cyBzdGRlcnIgIiRjb21tYW5kPT09PT09PT09PT09PT09PT09PT09
PT09PT09Ig0KICAgICAgZXZhbCBbc2VsZl0gaGFuZGxlUGFja2FnZSAkY29t
bWFuZA0KICAgIH0gZWxzZWlmIHtbcmVnZXhwICJeICpuYW1lc3BhY2UgKmV2
YWwgKihcW15ce1xdKikgKlx7KC4qKVx9XFteXH1cXSokIiAkY29tbWFuZCBf
IG5hbWVzcGFjZSBuc2NdfSB7DQogICAgICAjcHV0cyBzdGRlcnIgIiRjb21t
YW5kPT09PT09PT09PT09PT09PT09PT09PT09PT09Ig0KICAgICAgW3NlbGZd
IGV2YWx1YXRlQ29tbWFuZHMgJG5zYyANCiAgIH0gDQogIH0NCn0NCg0KDQpY
T0RvYyBpbnN0cHJvYyByZWFkRmlsZSBuYW1lIHsNCiAgW3NlbGZdIHNldCBj
bWQgIiINCg0KICBzZXQgdCBbRG9jRmlsZSBjcmVhdGUgW1tzZWxmXSBhdXRv
bmFtZSB0XV0gIA0KICAkdCBzZXQgbmFtZSAkbmFtZQ0KICBbc2VsZl0gc2V0
IGZpbGVUb2tlbiAkdA0KDQogIHNldCBmIFtvcGVuICRuYW1lIHJdDQogIHNl
dCBjIFtyZWFkICRmXQ0KICBjbG9zZSAkZg0KICBbc2VsZl0gZXZhbHVhdGVD
b21tYW5kcyAkYw0KfQ0KDQpYT0RvYyBpbnN0cHJvYyByZXBsYWNlRm9ybWF0
VGFncyB7ZmN9IHsNCiAgcmVnc3ViIC1hbGwgPEAgJGZjIDwgZmMNCiAgcmVn
c3ViIC1hbGwgPC9AICRmYyA8LyBmYw0KICByZXR1cm4gJGZjDQp9DQoNCg0K
WE9Eb2MgaW5zdHByb2Mgd3JpdGVGaWxlIHtmaWxlbmFtZSBuYW1lIGZpbGVj
b250ZW50fSB7DQogICAgI3NldCBmaWxlbmFtZSBbW3NlbGZdIHNldCBET0NE
SVJdLyRuYW1lLmh0bWwNCiAgICANCiAgICBzZXQgZmlsZWNvbnRlbnQgW1tz
ZWxmXSByZXBsYWNlRm9ybWF0VGFncyAkZmlsZWNvbnRlbnRdDQoNCiAgICBz
ZXQgY29udGVudCB7DQo8aHRtbD4NCjxoZWFkPg0KPHRpdGxlPlhPVGNsIC0g
RG9jdW1lbnRhdGlvbiAtLSAkbmFtZTwvdGl0bGU+DQo8L2hlYWQ+DQo8Ym9k
eSBiZ2NvbG9yPUZGRkZGRj4NCjxoMT48SU1HIEFMSUdOPU1JRERMRSBTUkMg
PSAiLi9sb2dvLTEwMC5qcGciPiRuYW1lPC9oMT4NCjxocj4NCjxwPiANCg0K
JGZpbGVjb250ZW50DQoNCjxwPjxocj4NCjxhIEhSRUY9Ii4vaW5kZXguaHRt
bCI+QmFjayB0byBpbmRleCBwYWdlLjwvYT4NCjxicj48aHI+PHA+DQo8L2Jv
ZHk+DQo8L2h0bWw+DQogICAgfQ0KDQogICAgc2V0IGNvbnRlbnQgW3N1YnN0
IC1ub2JhY2tzbGFzaGVzIC1ub2NvbW1hbmRzICRjb250ZW50XQ0KICAgICNw
dXRzICRjb250ZW50DQogICAgc2V0IGYgW29wZW4gJGZpbGVuYW1lIHddDQog
ICAgcHV0cyAkZiAkY29udGVudA0KICAgIGNsb3NlICRmDQp9DQoNCkNsYXNz
IFhPRG9jQ21kIC1wYXJhbWV0ZXIgew0KICB7eG9Eb2NPYmogIiJ9DQp9IA0K
WE9Eb2NDbWQgaW5zdHByb2MgdW5rbm93biBhcmdzIHsNCiAgICBbc2VsZl0g
aW5zdHZhciB4b0RvY09iag0KICAgIGlmIHtbbGxlbmd0aCAkYXJnc10gPiAx
fSB7DQoJc3dpdGNoIFtsaW5kZXggJGFyZ3MgMV0gew0KCSAgICBwcm9jIC0g
aW5zdHByb2Mgew0KCQlyZXR1cm4gW2V2YWwgJHhvRG9jT2JqIGhhbmRsZU1l
dGhvZCAkYXJnc10NCgkgICAgfQ0KCSAgICBkZWZhdWx0IHsNCgkJc3dpdGNo
IFtsaW5kZXggJGFyZ3MgMF0gew0KCQkgICAgQEZpbGUgew0KCQkJcmV0dXJu
IFskeG9Eb2NPYmogaGFuZGxlRmlsZSBbbGluZGV4ICRhcmdzIDFdXQ0KCQkg
ICAgfQ0KCQkgICAgZGVmYXVsdCB7DQoJCQlyZXR1cm4gW2V2YWwgJHhvRG9j
T2JqIGhhbmRsZU9iaiAkYXJnc10NCgkJICAgIH0NCgkJfQ0KCSAgICB9DQoJ
fQ0KICAgIH0NCiAgICBwdXRzIHN0ZGVyciAiVW5rbm93biBkb2N1bWVudGF0
aW9uOiAnJGFyZ3MnIg0KfQ0KWE9Eb2NDbWQgQA0KDQoNCg==
--282346852-252513528-982032165=:1950--