<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>7838</bug_id>
          
          <creation_ts>2006-03-17 15:28:08 -0800</creation_ts>
          <short_desc>Add support for mozilla-style node constructors as properties of the window object</short_desc>
          <delta_ts>2019-02-06 09:03:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>6519</blocked>
    
    <blocked>6622</blocked>
    
    <blocked>8197</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>cdumez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>36794</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-03-17 15:28:08 -0800</bug_when>
    <thetext>Firefox defines e.g. window.HTMLDocument as a property of the window object. This allows scripts to modify window.HTMLDocument.prototype in order to extend or change the behavior of all HTMLDocuments.

At the least, we should implement:

Element
Document
HTMLDocument
Event
CSSStyleDeclaration

These are the constructors used by www.start.com to add support for IE-specific DOM extensions.

Some documentation can be found @ http://www.mozilla.org/docs/dom/mozilla/protodoc.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40573</commentid>
    <comment_count>1</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-04-26 23:17:54 -0700</bug_when>
    <thetext>We&apos;ll also need:

HTMLElement
XMLDocument</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41225</commentid>
    <comment_count>2</comment_count>
    <who name="Roland Corrigal">rcorrigal</who>
    <bug_when>2006-05-04 08:10:28 -0700</bug_when>
    <thetext>When do you expect us see a breakthrough with these?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41898</commentid>
    <comment_count>3</comment_count>
      <attachid>8226</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-05-10 13:03:05 -0700</bug_when>
    <thetext>Created attachment 8226
Patch

With this patch, local.live.com works without any error messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41965</commentid>
    <comment_count>4</comment_count>
      <attachid>8226</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-10 21:58:16 -0700</bug_when>
    <thetext>Comment on attachment 8226
Patch

I&apos;m not happy about these classes that differ only in namespace; I hope that&apos;s a temporary situation.

For other classes I like to name the hand-coded ones differently, for example XXXBase. Worth considering if we have to leave the code like this for any length of time.

We also might want to use a new approach for half-generated classes where we can hand-write some functions rather than hand-writing an entire class, and teach the auto-generation code to write out declarations for the functions even if the functions themselves are hand-coded.

There should be a layout test for the new constructor objects, I don&apos;t see that here.

Assuming you add that layout test, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503044</commentid>
    <comment_count>5</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:03:49 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8226</attachid>
            <date>2006-05-10 13:03:05 -0700</date>
            <delta_ts>2006-05-10 21:58:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>constructor-properties.txt</filename>
            <type>text/plain</type>
            <size>47218</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE0Mjg5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDYtMDUtMTAgIEFuZGVycyBDYXJsc3NvbiAg
PGFjYXJsc3NvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNn
aT9pZD03ODM4CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBtb3ppbGxhLXN0eWxlIG5vZGUgY29u
c3RydWN0b3JzIGFzIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3QKKworICAgICAgICAq
IGZhc3QvZG9tL3Byb3RvdHlwZS1jaGFpbi1leHBlY3RlZC50eHQ6CisgICAgICAgIFVwZGF0ZSBw
cm90b3R5cGUgY2hhaW5zLgorICAgICAgICAKIDIwMDYtMDUtMTAgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBueXBvcC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzLgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWNoYWluLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtY2hhaW4tZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxNDI4MykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1jaGFp
bi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBAIFRoaXMgcGFnZSBw
cmludHMgb3V0IHRoZSBwcm90b3R5cGUgY2hhaW4KIAogTk9URTogVGhpcyB0ZXN0IHdpbGwgc3Rh
cnQgZmFpbGluZyBpZiB5b3UgY2hhbmdlIHRoZSBsYXlvdXQgb2YgYSByZWxhdGVkIHByb3RvdHlw
ZSBjaGFpbiBpbiBXZWJDb3JlLiBUaGF0IGRvZXMgbm90IG5lY2Vzc2FyaWx5IG1lYW4gdGhhdCB5
b3UgaGF2ZSBkb25lIHNvbWV0aGluZyB3cm9uZzsgeW91IG1heSBqdXN0IG5lZWQgdG8gY2hlY2sg
aW4gbmV3IHJlc3VsdHMuCiAKLS0tLS0tIFtvYmplY3QgSFRNTERvY3VtZW50XSAoNSBwcm90b3R5
cGVzKSAtLS0tLQorLS0tLS0gW29iamVjdCBIVE1MRG9jdW1lbnRdICg3IHByb3RvdHlwZXMpIC0t
LS0tCiAKIFtvYmplY3QgT2JqZWN0XQogCkBAIC0xNCw3ICsxNCwxMSBAQCBOT1RFOiBUaGlzIHRl
c3Qgd2lsbCBzdGFydCBmYWlsaW5nIGlmIHlvCiAKIFtvYmplY3QgRG9jdW1lbnRdCiAKLS0tLS0t
IFtvYmplY3QgRElWXSAoNSBwcm90b3R5cGVzKSAtLS0tLQorW29iamVjdCBIVE1MRG9jdW1lbnRd
CisKK1tvYmplY3QgSFRNTERvY3VtZW50XQorCistLS0tLSBbb2JqZWN0IERJVl0gKDcgcHJvdG90
eXBlcykgLS0tLS0KIAogW29iamVjdCBPYmplY3RdCiAKQEAgLTI2LDYgKzMwLDEwIEBAIE5PVEU6
IFRoaXMgdGVzdCB3aWxsIHN0YXJ0IGZhaWxpbmcgaWYgeW8KIAogW29iamVjdCBFbGVtZW50XQog
Citbb2JqZWN0IEhUTUxFbGVtZW50XQorCitbb2JqZWN0IEhUTUxFbGVtZW50XQorCiAtLS0tLSBb
b2JqZWN0IFVJRXZlbnRdICg0IHByb3RvdHlwZXMpIC0tLS0tCiAKIFtvYmplY3QgT2JqZWN0XQpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZp
c2lvbiAxNDI4MykKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0JKHdvcmtpbmcgY29weSkKQEAgLTE1OSw2ICsxNTksNyBAQCBzdWIgQWRkSW5jbHVkZXNGb3JU
eXBlCiAgICAgICAkdHlwZSBlcSAiRG9jdW1lbnRUeXBlIiBvciAKICAgICAgICR0eXBlIGVxICJF
bGVtZW50IiBvcgogICAgICAgJHR5cGUgZXEgIkhUTUxDYW52YXNFbGVtZW50IiBvcgorICAgICAg
JHR5cGUgZXEgIkhUTUxFbGVtZW50IiBvciAKICAgICAgICR0eXBlIGVxICJOb2RlIiBvcgogICAg
ICAgJHR5cGUgZXEgIk5vZGVMaXN0IiBvciAKICAgICAgICR0eXBlIGVxICJSYW5nZSIgb3IgCkBA
IC0zNzAsMzYgKzM3MSwzNiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgfQogCiAgICMgQWRkIHBy
b3RvdHlwZSBkZWNsYXJhdGlvbiAtLSBjb2RlIGFkb3B0ZWQgZnJvbSB0aGUgS0pTX0RFRklORV9Q
Uk9UT1RZUEUgYW5kIEtKU19ERUZJTkVfUFJPVE9UWVBFX1dJVEhfUFJPVE9UWVBFIG1hY3Jvcwor
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiY2xhc3MgJHtjbGFzc05hbWV9UHJvdG8gOiBwdWJsaWMg
S0pTOjpKU09iamVjdCB7XG4iKTsKKyAgaWYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJEb05vdENhY2hlIn0pIHsKKyAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgZnJp
ZW5kIEtKUzo6SlNPYmplY3QqIEtKU19HQ0NfUk9PVF9OU19IQUNLIGNhY2hlR2xvYmFsT2JqZWN0
PCR7Y2xhc3NOYW1lfVByb3RvPihLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEtKUzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKTtcbiIpOworICB9CisgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwdWJs
aWM6XG4iKTsKKyAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRvTm90Q2Fj
aGUifSkgeworICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgS0pTOjpKU09i
amVjdCogc2VsZigpO1xuIik7CisgIH0gZWxzZSB7CisgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIHN0YXRpYyBLSlM6OkpTT2JqZWN0KiBzZWxmKEtKUzo6RXhlY1N0YXRlKiBleGVjKTtc
biIpOworICB9CisgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCBjb25zdCBLSlM6
OkNsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gJmluZm87IH1cbiIpOworICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBjb25zdCBLSlM6OkNsYXNzSW5mbyBpbmZv
O1xuIik7CiAgIGlmICgkbnVtRnVuY3Rpb25zID4gMCB8fCAkbnVtQ29uc3RhbnRzID4gMCkgewot
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgImNsYXNzICR7Y2xhc3NOYW1lfVByb3RvIDogcHVi
bGljIEtKUzo6SlNPYmplY3Qge1xuIik7Ci0gICAgICBpZiAoISRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkRvTm90Q2FjaGUifSkgewotICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgZnJpZW5kIEtKUzo6SlNPYmplY3QqIEtKU19HQ0NfUk9PVF9OU19IQUNLIGNhY2hl
R2xvYmFsT2JqZWN0PCR7Y2xhc3NOYW1lfVByb3RvPihLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEtK
Uzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTtcbiIpOwotICAgICAgfQotICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgInB1YmxpYzpcbiIpOwotICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkRvTm90Q2FjaGUifSkgewotICAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgc3RhdGljIEtKUzo6SlNPYmplY3QqIHNlbGYoKTtcbiIpOwotICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBLSlM6OkpT
T2JqZWN0KiBzZWxmKEtKUzo6RXhlY1N0YXRlKiBleGVjKTtcbiIpOwotICAgICAgfQotICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIGNvbnN0IEtKUzo6Q2xhc3NJbmZvKiBj
bGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5mbzsgfVxuIik7Ci0gICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHN0YXRpYyBjb25zdCBLSlM6OkNsYXNzSW5mbyBpbmZvO1xuIik7CiAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEtK
Uzo6RXhlY1N0YXRlKiwgY29uc3QgS0pTOjpJZGVudGlmaWVyJiwgS0pTOjpQcm9wZXJ0eVNsb3Qm
KTtcbiIpOwotICAgICAgaWYgKCRudW1Db25zdGFudHMgbmUgMCkgewotICAgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgS0pTOjpKU1ZhbHVlKiBnZXRWYWx1ZVByb3BlcnR5KEtKUzo6
RXhlY1N0YXRlKiwgaW50IHRva2VuKSBjb25zdDtcbiIpOwotICAgICAgfQotICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgInByb3RlY3RlZDpcbiIpOwotICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkRvTm90Q2FjaGUifSkgewotICAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG8oKSB7IH1cbiIpOworICB9CisgIGlmICgk
bnVtQ29uc3RhbnRzIG5lIDApIHsKKyAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgS0pT
OjpKU1ZhbHVlKiBnZXRWYWx1ZVByb3BlcnR5KEtKUzo6RXhlY1N0YXRlKiwgaW50IHRva2VuKSBj
b25zdDtcbiIpOworICB9CisgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwcm90ZWN0ZWQ6XG4iKTsK
KyAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRvTm90Q2FjaGUifSkgewor
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX1Qcm90bygpIHsgfVxu
Iik7CisgIH0gZWxzZSB7CisgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICR7Y2xhc3NO
YW1lfVByb3RvKEtKUzo6RXhlY1N0YXRlKiBleGVjKVxuIik7CisgICAgICBpZiAoJGhhc1BhcmVu
dCAmJiAkcGFyZW50Q2xhc3NOYW1lIG5lICJLSlM6OkRPTUNTU1J1bGUiICYmICRwYXJlbnRDbGFz
c05hbWUgbmUgIktKUzo6RE9NTm9kZUZpbHRlciIpIHsKKyAgICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgICAgICA6IEtKUzo6SlNPYmplY3QoJHtwYXJlbnRDbGFzc05hbWV9UHJvdG86
OnNlbGYoZXhlYykpIHsgfVxuIik7CiAgICAgICB9IGVsc2UgewotICAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG8oS0pTOjpFeGVjU3RhdGUqIGV4ZWMp
XG4iKTsKLSAgICAgICAgICBpZiAoJGhhc1BhcmVudCAmJiAkcGFyZW50Q2xhc3NOYW1lIG5lICJL
SlM6OkRPTUNTU1J1bGUiICYmICRwYXJlbnRDbGFzc05hbWUgbmUgIktKUzo6RE9NTm9kZUZpbHRl
ciIpIHsKLSAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgOiBLSlM6
OkpTT2JqZWN0KCR7cGFyZW50Q2xhc3NOYW1lfVByb3RvOjpzZWxmKGV4ZWMpKSB7IH1cbiIpOwot
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgICAgIDogS0pTOjpKU09iamVjdChleGVjLT5sZXhpY2FsSW50ZXJwcmV0ZXIoKS0+YnVpbHRp
bk9iamVjdFByb3RvdHlwZSgpKSB7IH1cbiIpOwotICAgICAgICAgIH0KKyAgICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgICAgICA6IEtKUzo6SlNPYmplY3QoZXhlYy0+bGV4aWNhbElu
dGVycHJldGVyKCktPmJ1aWx0aW5PYmplY3RQcm90b3R5cGUoKSkgeyB9XG4iKTsKICAgICAgIH0K
LSAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9O1xuXG4iKTsKICAgfQorICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAifTtcblxuIik7CiAgIAogICBwdXNoKEBoZWFkZXJDb250ZW50LCAifVxuXG4j
ZW5kaWZcbiIpOwogfQpAQCAtNDk3LDkwICs0OTgsODQgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcQGhhc2hTcGVjaWFscywgXEBo
YXNoUGFyYW1ldGVycyk7CiAKICAgICBteSAkcHJvdG9DbGFzc05hbWU7Ci0gICAgaWYgKCRudW1G
dW5jdGlvbnMgbmUgMCB8fCAkbnVtQ29uc3RhbnRzIG5lIDApIHsKLSAgICAgICRwcm90b0NsYXNz
TmFtZSA9ICIke2NsYXNzTmFtZX1Qcm90byI7Ci0gICAgfSBlbHNlIHsKLSAgICAgICMgU2luY2Ug
d2UgaGF2ZSBubyBmdW5jdGlvbnMgb3IgY29uc3RhbnRzLCB3ZSB3b24ndCBoYXZlIGdlbmVyYXRl
ZCAKLSAgICAgICMgb3VyIG93biBwcm90b3R5cGUgLS0gdXNlIG91ciBwYXJlbnQncyBpbnN0ZWFk
Ci0gICAgICAkcHJvdG9DbGFzc05hbWUgPSAiJHtwYXJlbnRDbGFzc05hbWV9UHJvdG8iOwotICAg
IH0KKyAgICAkcHJvdG9DbGFzc05hbWUgPSAiJHtjbGFzc05hbWV9UHJvdG8iOwogCiAgICAgcHVz
aChAaW1wbENvbnRlbnQsIGNvbnN0cnVjdG9yRm9yKCRjbGFzc05hbWUsICRwcm90b0NsYXNzTmFt
ZSwgJGludGVyZmFjZU5hbWUsICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbkJl
Q29uc3RydWN0ZWQifSkpOwogICB9CiAgIAogICAjIC0gQWRkIGZ1bmN0aW9ucyBhbmQgY29uc3Rh
bnRzIHRvIGEgaGFzaHRhYmxlIGRlZmluaXRpb24KLSAgaWYgKCRudW1GdW5jdGlvbnMgPiAwIHx8
ICRudW1Db25zdGFudHMgPiAwKSB7Ci0gICAgJGhhc2hTaXplID0gJG51bUZ1bmN0aW9ucyArICRu
dW1Db25zdGFudHM7Ci0gICAgJGhhc2hOYW1lID0gJGNsYXNzTmFtZSAuICJQcm90b1RhYmxlIjsK
KyAgJGhhc2hTaXplID0gJG51bUZ1bmN0aW9ucyArICRudW1Db25zdGFudHM7CisgICRoYXNoTmFt
ZSA9ICRjbGFzc05hbWUgLiAiUHJvdG9UYWJsZSI7CiAKLSAgICBAaGFzaEtleXMgPSAoKTsKLSAg
ICBAaGFzaFZhbHVlcyA9ICgpOwotICAgIEBoYXNoU3BlY2lhbHMgPSAoKTsKLSAgICBAaGFzaFBh
cmFtZXRlcnMgPSAoKTsKKyAgQGhhc2hLZXlzID0gKCk7CisgIEBoYXNoVmFsdWVzID0gKCk7Cisg
IEBoYXNoU3BlY2lhbHMgPSAoKTsKKyAgQGhhc2hQYXJhbWV0ZXJzID0gKCk7CiAKLSAgICBmb3Jl
YWNoIG15ICRjb25zdGFudCAoQHskZGF0YU5vZGUtPmNvbnN0YW50c30pIHsKLSAgICAgICAgbXkg
JG5hbWUgPSAkY29uc3RhbnQtPm5hbWU7Ci0gICAgICAgIHB1c2goQGhhc2hLZXlzLCAkbmFtZSk7
CisgIGZvcmVhY2ggbXkgJGNvbnN0YW50IChAeyRkYXRhTm9kZS0+Y29uc3RhbnRzfSkgeworICAg
ICAgbXkgJG5hbWUgPSAkY29uc3RhbnQtPm5hbWU7CisgICAgICBwdXNoKEBoYXNoS2V5cywgJG5h
bWUpOwogICAgICAgICAKLSAgICAgICAgbXkgJHZhbHVlID0gIiR7aW1wbENsYXNzTmFtZX06OiRu
YW1lIjsKLSAgICAgICAgcHVzaChAaGFzaFZhbHVlcywgJHZhbHVlKTsKKyAgICAgIG15ICR2YWx1
ZSA9ICIke2ltcGxDbGFzc05hbWV9OjokbmFtZSI7CisgICAgICBwdXNoKEBoYXNoVmFsdWVzLCAk
dmFsdWUpOwogICAgICAgICAKLSAgICAgICAgbXkgJHNwZWNpYWwgPSAiRG9udERlbGV0ZXxSZWFk
T25seSI7Ci0gICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOworICAgICAgbXkg
JHNwZWNpYWwgPSAiRG9udERlbGV0ZXxSZWFkT25seSI7CisgICAgICBwdXNoKEBoYXNoU3BlY2lh
bHMsICRzcGVjaWFsKTsKICAgICAgICAgCi0gICAgICAgIG15ICRudW1QYXJhbWV0ZXJzID0gMDsK
LSAgICAgICAgcHVzaChAaGFzaFBhcmFtZXRlcnMsICRudW1QYXJhbWV0ZXJzKTsgCi0gICAgfQor
ICAgICAgbXkgJG51bVBhcmFtZXRlcnMgPSAwOworICAgICAgcHVzaChAaGFzaFBhcmFtZXRlcnMs
ICRudW1QYXJhbWV0ZXJzKTsgCisgIH0KICAgICAKLSAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAo
QHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKLSAgICAgIG15ICRuYW1lID0gJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPm5hbWU7Ci0gICAgICBwdXNoKEBoYXNoS2V5cywgJG5hbWUpOworICBmb3JlYWNo
IG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKKyAgICBteSAkbmFtZSA9
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOworICAgIHB1c2goQGhhc2hLZXlzLCAkbmFtZSk7
CiAgICAgCi0gICAgICBteSAkdmFsdWUgPSAkY2xhc3NOYW1lIC4gIjo6IiAuIHVjZmlyc3QoJG5h
bWUpIC4gIkZ1bmNOdW0iOwotICAgICAgcHVzaChAaGFzaFZhbHVlcywgJHZhbHVlKTsKKyAgICBt
eSAkdmFsdWUgPSAkY2xhc3NOYW1lIC4gIjo6IiAuIHVjZmlyc3QoJG5hbWUpIC4gIkZ1bmNOdW0i
OworICAgIHB1c2goQGhhc2hWYWx1ZXMsICR2YWx1ZSk7CiAgICAgCi0gICAgICBteSAkc3BlY2lh
bCA9ICJEb250RGVsZXRlfEZ1bmN0aW9uIjsKLSAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgJHNw
ZWNpYWwpOworICAgIG15ICRzcGVjaWFsID0gIkRvbnREZWxldGV8RnVuY3Rpb24iOworICAgIHB1
c2goQGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOwogICAgIAotICAgICAgbXkgJG51bVBhcmFtZXRl
cnMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307Ci0gICAgICBwdXNoKEBoYXNoUGFyYW1ldGVy
cywgJG51bVBhcmFtZXRlcnMpOwotICAgIH0KKyAgICBteSAkbnVtUGFyYW1ldGVycyA9IEB7JGZ1
bmN0aW9uLT5wYXJhbWV0ZXJzfTsKKyAgICBwdXNoKEBoYXNoUGFyYW1ldGVycywgJG51bVBhcmFt
ZXRlcnMpOworICB9CiAgICAgCi0gICAgJG9iamVjdC0+R2VuZXJhdGVIYXNoVGFibGUoJGhhc2hO
YW1lLCAkaGFzaFNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXEBoYXNoS2V5
cywgXEBoYXNoVmFsdWVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxAaGFzaFNw
ZWNpYWxzLCBcQGhhc2hQYXJhbWV0ZXJzKTsKKyAgJG9iamVjdC0+R2VuZXJhdGVIYXNoVGFibGUo
JGhhc2hOYW1lLCAkaGFzaFNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxAaGFz
aEtleXMsIFxAaGFzaFZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXEBoYXNo
U3BlY2lhbHMsIFxAaGFzaFBhcmFtZXRlcnMpOwogCi0gICAgaWYoJG51bUZ1bmN0aW9ucyA+IDAp
IHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIHByb3RvRnVuY0ZvcigkY2xhc3NOYW1lKSk7
Ci0gICAgfQorICBpZigkbnVtRnVuY3Rpb25zID4gMCkgeworICAgICAgcHVzaChAaW1wbENvbnRl
bnQsIHByb3RvRnVuY0ZvcigkY2xhc3NOYW1lKSk7CisgIH0KIAotICAgIHB1c2goQGltcGxDb250
ZW50LCAiY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVByb3RvOjppbmZvID0geyBcIiRpbnRl
cmZhY2VOYW1lXCIsIDAsICYke2NsYXNzTmFtZX1Qcm90b1RhYmxlLCAwIH07XG5cbiIpOwotICAg
IGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEb05vdENhY2hlIn0pIHsKLSAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU09iamVjdCogJHtjbGFzc05hbWV9UHJvdG86OnNl
bGYoKVxuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBuZXcgJHtjbGFzc05hbWV9UHJvdG8oKTtcbiIp
OwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU09iamVjdCogJHtjbGFzc05hbWV9UHJvdG86OnNl
bGYoRXhlY1N0YXRlKiBleGVjKVxuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xu
Iik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiA6OmNhY2hlR2xvYmFs
T2JqZWN0PCR7Y2xhc3NOYW1lfVByb3RvPihleGVjLCBcIltbJHtjbGFzc05hbWV9LnByb3RvdHlw
ZV1dXCIpO1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKLSAgICB9
Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfVByb3RvOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwotICAgIHB1c2goQGltcGxDb250ZW50LCAie1xu
Iik7Ci0gICAgaWYgKCRudW1Db25zdGFudHMgZXEgMCkgewotICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PCR7Y2xhc3NOYW1lfVByb3Rv
RnVuYywgSlNPYmplY3Q+KGV4ZWMsICYke2NsYXNzTmFtZX1Qcm90b1RhYmxlLCB0aGlzLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpO1xuIik7Ci0gICAgfSBlbHNpZiAoJG51bUZ1bmN0aW9ucyBlcSAwKSB7
Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNs
b3Q8JHtjbGFzc05hbWV9UHJvdG8sIEpTT2JqZWN0PihleGVjLCAmJHtjbGFzc05hbWV9UHJvdG9U
YWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNsb3Q8
JHtjbGFzc05hbWV9UHJvdG9GdW5jLCAke2NsYXNzTmFtZX1Qcm90bywgSlNPYmplY3Q+KGV4ZWMs
ICYke2NsYXNzTmFtZX1Qcm90b1RhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7
Ci0gICAgfQotICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKLSAgICBpZiAoJG51bUNv
bnN0YW50cyBuZSAwKSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNWYWx1ZSogJHtj
bGFzc05hbWV9UHJvdG86OmdldFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlKiwgaW50IHRva2VuKSBj
b25zdFxue1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIC8vIFRoZSB0b2tl
biBpcyB0aGUgbnVtZXJpYyB2YWx1ZSBvZiBpdHMgYXNzb2NpYXRlZCBjb25zdGFudFxuIik7Ci0g
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBqc051bWJlcih0b2tlbik7XG59
XG5cbiIpOwotICAgIH0KKyAgcHVzaChAaW1wbENvbnRlbnQsICJjb25zdCBDbGFzc0luZm8gJHtj
bGFzc05hbWV9UHJvdG86OmluZm8gPSB7IFwiJGludGVyZmFjZU5hbWVcIiwgMCwgJiR7Y2xhc3NO
YW1lfVByb3RvVGFibGUsIDAgfTtcblxuIik7CisgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJEb05vdENhY2hlIn0pIHsKKyAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNP
YmplY3QqICR7Y2xhc3NOYW1lfVByb3RvOjpzZWxmKClcbiIpOworICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ7XG4iKTsKKyAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBuZXcg
JHtjbGFzc05hbWV9UHJvdG8oKTtcbiIpOworICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5c
biIpOworICB9IGVsc2UgeworICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU09iamVjdCogJHtj
bGFzc05hbWV9UHJvdG86OnNlbGYoRXhlY1N0YXRlKiBleGVjKVxuIik7CisgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIntcbiIpOworICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJu
IDo6Y2FjaGVHbG9iYWxPYmplY3Q8JHtjbGFzc05hbWV9UHJvdG8+KGV4ZWMsIFwiW1ske2NsYXNz
TmFtZX0ucHJvdG90eXBlXV1cIik7XG4iKTsKKyAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxu
XG4iKTsKKyAgfQorICBpZiAoJG51bUNvbnN0YW50cyA+IDAgfHwgJG51bUZ1bmN0aW9ucyA+IDAp
IHsKKyAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFtZX1Qcm90bzo6Z2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKKyAgICAgIHB1c2goQGltcGxDb250ZW50
LCAie1xuIik7CisgICAgICBpZiAoJG51bUNvbnN0YW50cyBlcSAwKSB7CisgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDwke2NsYXNz
TmFtZX1Qcm90b0Z1bmMsIEpTT2JqZWN0PihleGVjLCAmJHtjbGFzc05hbWV9UHJvdG9UYWJsZSwg
dGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgfSBlbHNpZiAoJG51bUZ1bmN0
aW9ucyBlcSAwKSB7CisgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdl
dFN0YXRpY1ZhbHVlU2xvdDwke2NsYXNzTmFtZX1Qcm90bywgSlNPYmplY3Q+KGV4ZWMsICYke2Ns
YXNzTmFtZX1Qcm90b1RhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAg
ICB9IGVsc2UgeworICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRT
dGF0aWNQcm9wZXJ0eVNsb3Q8JHtjbGFzc05hbWV9UHJvdG9GdW5jLCAke2NsYXNzTmFtZX1Qcm90
bywgSlNPYmplY3Q+KGV4ZWMsICYke2NsYXNzTmFtZX1Qcm90b1RhYmxlLCB0aGlzLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICB9CisgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1c
blxuIik7CisgIH0KKyAgaWYgKCRudW1Db25zdGFudHMgbmUgMCkgeworICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJKU1ZhbHVlKiAke2NsYXNzTmFtZX1Qcm90bzo6Z2V0VmFsdWVQcm9wZXJ0eShF
eGVjU3RhdGUqLCBpbnQgdG9rZW4pIGNvbnN0XG57XG4iKTsKKyAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIC8vIFRoZSB0b2tlbiBpcyB0aGUgbnVtZXJpYyB2YWx1ZSBvZiBpdHMgYXNzb2Np
YXRlZCBjb25zdGFudFxuIik7CisgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4g
anNOdW1iZXIodG9rZW4pO1xufVxuXG4iKTsKICAgfQogICAKICAgIyAtIEluaXRpYWxpemUgc3Rh
dGljIENsYXNzSW5mbyBvYmplY3QKQEAgLTYxMywxMCArNjA4LDggQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgCiAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJE
b05vdENhY2hlIn0pIHsKICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuICAgIHNldFByb3Rv
dHlwZSgke2NsYXNzTmFtZX1Qcm90bzo6c2VsZigpKTtcbn1cblxuIik7Ci0gIH0gZWxzaWYgKCRu
dW1GdW5jdGlvbnMgbmUgMCB8fCAkbnVtQ29uc3RhbnRzIG5lIDApIHsKLSAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAie1xuICAgIHNldFByb3RvdHlwZSgke2NsYXNzTmFtZX1Qcm90bzo6c2VsZihl
eGVjKSk7XG59XG5cbiIpOwogICB9IGVsc2UgewotICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7
XG59XG5cbiIpOyAgICAKKyAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuICAgIHNldFByb3Rv
dHlwZSgke2NsYXNzTmFtZX1Qcm90bzo6c2VsZihleGVjKSk7XG59XG5cbiIpOwogICB9CiAgIAog
ICAjIERlc3RydWN0b3IKQEAgLTY1MCwxMCArNjQzLDEzIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAKICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1
dGVzfSkgewogICAgICAgbXkgJG5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7Ci0K
KyAgICAgICAgCiAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9Db25z
dHJ1Y3RvciQvKSB7CisgICAgICAgIG15ICRjb25zdHJ1Y3RvclR5cGUgPSAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPnR5cGU7CisgICAgICAgICRjb25zdHJ1Y3RvclR5cGUgPX4gcy9Db25zdHJ1Y3Rv
ciQvLzsKKwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBjYXNlICIgLiAkbmFtZSAu
ICJDb25zdHJ1Y3RvckF0dHJOdW06XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHJldHVybiBKUyIgLiAkbmFtZSAuICI6OmdldENvbnN0cnVjdG9yKGV4ZWMpO1xuIik7
CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gSlMiIC4gJGNvbnN0
cnVjdG9yVHlwZSAuICI6OmdldENvbnN0cnVjdG9yKGV4ZWMpO1xuIik7CiAgICAgICB9IGVsc2lm
ICghQHskYXR0cmlidXRlLT5nZXR0ZXJFeGNlcHRpb25zfSkgewogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBjYXNlICIgLiB1Y2ZpcnN0KCRuYW1lKSAuICJBdHRyTnVtOlxuIik7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gIiAuIE5hdGl2ZVRvSlNW
YWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsICJpbXBsLT4kbmFtZSgpIikgLiAiO1xuIik7CkBA
IC02ODgsNyArNjg0LDEwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIGlm
ICgkYXR0cmlidXRlLT50eXBlICF+IC9ecmVhZG9ubHkvKSB7CiAgICAgICAgICAgbXkgJG5hbWUg
PSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CiAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3RydWN0b3IkLykgewotICAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyJKUyIgLiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgLiAiLmgifSA9IDE7
CisgICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvclR5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1
cmUtPnR5cGU7CisgICAgICAgICAgICAgICRjb25zdHJ1Y3RvclR5cGUgPX4gcy9Db25zdHJ1Y3Rv
ciQvLzsKKworICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKUyIgLiAkY29uc3RydWN0b3JU
eXBlIC4gIi5oIn0gPSAxOwogICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBj
YXNlICIgLiAkbmFtZSAuIkNvbnN0cnVjdG9yQXR0ck51bToge1xuIik7CiAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25z
dHJ1Y3RvclxuIik7CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2h0bWwuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19odG1sLmgJKHJldmlzaW9uIDE0Mjgz
KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJKU0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiSlNFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSlNIVE1MRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgY2xhc3MgSFRNTENvbGxlY3Rpb247CkBAIC0zOCw2ICszOSw4IEBAIG5hbWVzcGFjZSBL
SlMgewogCiAgIGNsYXNzIEpTQWJzdHJhY3RFdmVudExpc3RlbmVyOwogCisgIEtKU19ERUZJTkVf
UFJPVE9UWVBFX1dJVEhfUFJPVE9UWVBFKEpTSFRNTERvY3VtZW50UHJvdG8sIFdlYkNvcmU6OkpT
RG9jdW1lbnRQcm90bykKKwogICBjbGFzcyBKU0hUTUxEb2N1bWVudCA6IHB1YmxpYyBXZWJDb3Jl
OjpKU0RvY3VtZW50IHsKICAgcHVibGljOgogICAgIEpTSFRNTERvY3VtZW50KEV4ZWNTdGF0ZSAq
ZXhlYywgV2ViQ29yZTo6SFRNTERvY3VtZW50ICpkKTsKQEAgLTU1LDkgKzU4LDEzIEBAIG5hbWVz
cGFjZSBLSlMgewogICAgIHN0YXRpYyBKU1ZhbHVlICpuYW1lZEl0ZW1HZXR0ZXIoRXhlY1N0YXRl
ICosIEpTT2JqZWN0ICosIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QmKTsK
ICAgfTsKIAotICBLSlNfREVGSU5FX1BST1RPVFlQRV9XSVRIX1BST1RPVFlQRShKU0hUTUxFbGVt
ZW50UHJvdG8sIFdlYkNvcmU6OkpTRWxlbWVudFByb3RvKQorICAvLyBUaGUgaW5oZXJpdGFuY2Ug
Y2hhaW4gZm9yIEpTSFRNTEVsZW1lbnQgaXMgYSBiaXQgZGlmZmVyZW50IGZyb20gb3RoZXIKKyAg
Ly8gY2xhc3NlcyB0aGF0IGFyZSAiaGFsZi1hdXRvZ2VuZXJhdGVkIi4gQmVjYXVzZSB3ZSByZXR1
cm4gZGlmZmVyZW50IENsYXNzSW5mbyBzdHJ1Y3RzCisgIC8vIGRlcGVuZGluZyBvbiB0aGUgdHlw
ZSBvZiBlbGVtZW50LCB3ZSBpbmhlcml0IEpTSFRNTEVsZW1lbnQgZnJvbSBXZWJDb3JlOjpKU0hU
TUxFbGVtZW50CisgIC8vIGluc3RlYWQgb2YgdGhlIG90aGVyIHdheSBhcm91bmQuIAorICBLSlNf
REVGSU5FX1BST1RPVFlQRV9XSVRIX1BST1RPVFlQRShKU0hUTUxFbGVtZW50UHJvdG8sIFdlYkNv
cmU6OkpTSFRNTEVsZW1lbnRQcm90bykKIAotICBjbGFzcyBKU0hUTUxFbGVtZW50IDogcHVibGlj
IFdlYkNvcmU6OkpTRWxlbWVudCB7CisgIGNsYXNzIEpTSFRNTEVsZW1lbnQgOiBwdWJsaWMgV2Vi
Q29yZTo6SlNIVE1MRWxlbWVudCB7CiAgIHB1YmxpYzoKICAgICBKU0hUTUxFbGVtZW50KEV4ZWNT
dGF0ZSAqZXhlYywgV2ViQ29yZTo6SFRNTEVsZW1lbnQgKmUpOwogICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0
eVNsb3QmKTsKQEAgLTI4Miw3ICsyODksNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAgICAg
SUZyYW1lTWFyZ2luSGVpZ2h0LCBJRnJhbWVNYXJnaW5XaWR0aCwgSUZyYW1lU2Nyb2xsaW5nLCBJ
RnJhbWVXaWR0aCwgSUZyYW1lQ29udGVudERvY3VtZW50LCBJRnJhbWVDb250ZW50V2luZG93LAog
ICAgICAgICAgICBNYXJxdWVlU3RhcnQsIE1hcnF1ZWVTdG9wLAogICAgICAgICAgICBHZXRDb250
ZXh0LAotICAgICAgICAgICBFbGVtZW50SW5uZXJIVE1MLCBFbGVtZW50VGl0bGUsIEVsZW1lbnRJ
ZCwgRWxlbWVudERpciwgRWxlbWVudExhbmcsCisgICAgICAgICAgIEVsZW1lbnRJbm5lckhUTUws
IEVsZW1lbnRJZCwgRWxlbWVudERpciwgRWxlbWVudExhbmcsCiAgICAgICAgICAgIEVsZW1lbnRD
bGFzc05hbWUsIEVsZW1lbnRJbm5lclRleHQsIEVsZW1lbnREb2N1bWVudCwgRWxlbWVudENoaWxk
cmVuLCBFbGVtZW50Q29udGVudEVkaXRhYmxlLAogICAgICAgICAgICBFbGVtZW50SXNDb250ZW50
RWRpdGFibGUsIEVsZW1lbnRPdXRlckhUTUwsIEVsZW1lbnRPdXRlclRleHR9OwogICBwcml2YXRl
OgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfZG9tLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19kb20uY3BwCShyZXZpc2lvbiAxNDI4MykKKysrIFdlYkNv
cmUvYmluZGluZ3MvanMva2pzX2RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDggKzM0LDEw
IEBACiAjaW5jbHVkZSAiSlNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNDaGFyYWN0ZXJEYXRhLmgi
CiAjaW5jbHVkZSAiSlNET01JbXBsZW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIkpTRG9jdW1lbnRG
cmFnbWVudC5oIgogI2luY2x1ZGUgIkpTRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiSlNFbnRp
dHkuaCIKKyNpbmNsdWRlICJKU0hUTUxEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTTm9kZS5oIgog
I2luY2x1ZGUgIkpTTm90YXRpb24uaCIKICNpbmNsdWRlICJKU1Byb2Nlc3NpbmdJbnN0cnVjdGlv
bi5oIgpAQCAtOTI2LDcgKzkyOCw3IEBAIEpTVmFsdWUqIHRvSlMoRXhlY1N0YXRlICpleGVjLCBE
b2N1bWVudCAKICAgICByZXR1cm4gcmV0OwogCiAgIGlmIChuLT5pc0hUTUxEb2N1bWVudCgpKQot
ICAgIHJldCA9IG5ldyBKU0hUTUxEb2N1bWVudChleGVjLCBzdGF0aWNfY2FzdDxIVE1MRG9jdW1l
bnQgKj4obikpOworICAgIHJldCA9IG5ldyBXZWJDb3JlOjpKU0hUTUxEb2N1bWVudChleGVjLCBz
dGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQgKj4obikpOwogICBlbHNlCiAgICAgcmV0ID0gbmV3IEpT
RG9jdW1lbnQoZXhlYywgbik7CiAKQEAgLTk5NSw2ICs5OTcsOCBAQCBKU1ZhbHVlKiB0b0pTKEV4
ZWNTdGF0ZSAqZXhlYywgUGFzc1JlZlB0CiAgICAgICByZXQgPSBuZXcgSlNOb3RhdGlvbihleGVj
LCBzdGF0aWNfY2FzdDxOb3RhdGlvbiAqPihuKSk7CiAgICAgICBicmVhazsKICAgICBjYXNlIFdl
YkNvcmU6Ok5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CisgICAgICByZXQgPSBuZXcgSlNE
b2N1bWVudEZyYWdtZW50KGV4ZWMsIHN0YXRpY19jYXN0PERvY3VtZW50RnJhZ21lbnQqPihuKSk7
CisgICAgICBicmVhazsKICAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkVOVElUWV9SRUZFUkVOQ0Vf
Tk9ERToKICAgICBkZWZhdWx0OgogICAgICAgcmV0ID0gbmV3IEpTTm9kZShleGVjLCBuKTsKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFj
dG9yeS5jcHAJKHJldmlzaW9uIDE0MjgzKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxF
bGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBA
CiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJKU0hUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiSlNIVE1MRWxlbWVu
dC5oIgogI2luY2x1ZGUgImtqc19odG1sLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBLSlM7CkBAIC00
Niw3ICs0Nyw3IEBAIERPTU5vZGUqIGNyZWF0ZUpTV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMKICAg
ICBDcmVhdGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbiBmID0gbWFwLmdldChlbGVtZW50LT5s
b2NhbE5hbWUoKS5pbXBsKCkpOwogICAgIGlmIChmKQogICAgICAgICByZXR1cm4gZihleGVjLCBl
bGVtZW50KTsKLSAgICByZXR1cm4gbmV3IEpTSFRNTEVsZW1lbnQoZXhlYywgZWxlbWVudC5nZXQo
KSk7CisgICAgcmV0dXJuIG5ldyBLSlM6OkpTSFRNTEVsZW1lbnQoZXhlYywgZWxlbWVudC5nZXQo
KSk7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2h0bWwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2h0bWwuY3BwCShyZXZpc2lvbiAxNDI4
MykKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2h0bWwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03Miw2MiArNzIsNzYgQEAgcHJpdmF0ZToKICAgaW50IGlkOwogfTsKIAotS0pTX0lNUExFTUVO
VF9QUk9UT0ZVTkMoSFRNTERvY0Z1bmN0aW9uKQorLyogCitAYmVnaW4gSlNIVE1MRG9jdW1lbnRQ
cm90b1RhYmxlIDgKK2NsZWFyICAgICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6Q2xlYXIg
ICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCitvcGVuICAgICAgICAgICAgICAgICAg
SlNIVE1MRG9jdW1lbnQ6Ok9wZW4gICAgICAgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMAor
Y2xvc2UgICAgICAgICAgICAgICAgIEpTSFRNTERvY3VtZW50OjpDbG9zZSAgICAgICAgICAgICBE
b250RGVsZXRlfEZ1bmN0aW9uIDAKK3dyaXRlICAgICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVu
dDo6V3JpdGUgICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAxCit3cml0ZWxuICAgICAg
ICAgICAgICAgSlNIVE1MRG9jdW1lbnQ6OldyaXRlTG4gICAgICAgICAgIERvbnREZWxldGV8RnVu
Y3Rpb24gMQorZ2V0RWxlbWVudHNCeU5hbWUgICAgIEpTSFRNTERvY3VtZW50OjpHZXRFbGVtZW50
c0J5TmFtZSBEb250RGVsZXRlfEZ1bmN0aW9uIDEKK2NhcHR1cmVFdmVudHMgICAgICAgICBKU0hU
TUxEb2N1bWVudDo6Q2FwdHVyZUV2ZW50cyAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCityZWxl
YXNlRXZlbnRzICAgICAgICAgSlNIVE1MRG9jdW1lbnQ6OlJlbGVhc2VFdmVudHMgICAgIERvbnRE
ZWxldGV8RnVuY3Rpb24gMAorQGVuZAorKi8KK0tKU19JTVBMRU1FTlRfUFJPVE9GVU5DKEpTSFRN
TERvY3VtZW50UHJvdG9GdW5jKQorS0pTX0lNUExFTUVOVF9QUk9UT1RZUEUoIkhUTUxEb2N1bWVu
dCIsIEpTSFRNTERvY3VtZW50UHJvdG8sIEpTSFRNTERvY3VtZW50UHJvdG9GdW5jKQogCi1KU1Zh
bHVlICpIVE1MRG9jRnVuY3Rpb246OmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgSlNP
YmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpCitKU1ZhbHVlICpKU0hUTUxEb2N1bWVu
dFByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqdGhp
c09iaiwgY29uc3QgTGlzdCAmYXJncykKIHsKLSAgaWYgKCF0aGlzT2JqLT5pbmhlcml0cygmSlNI
VE1MRG9jdW1lbnQ6OmluZm8pKQotICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJv
cik7Ci0gIEhUTUxEb2N1bWVudCAmZG9jID0gKnN0YXRpY19jYXN0PEhUTUxEb2N1bWVudCAqPihz
dGF0aWNfY2FzdDxKU0hUTUxEb2N1bWVudCAqPih0aGlzT2JqKS0+aW1wbCgpKTsKLQotICBzd2l0
Y2ggKGlkKSB7Ci0gIGNhc2UgSlNIVE1MRG9jdW1lbnQ6OkNsZWFyOiAvLyBldmVuIElFIGRvZXNu
J3Qgc3VwcG9ydCB0aGF0IG9uZS4uLgotICAgIC8vZG9jLmNsZWFyKCk7IC8vIFRPRE8KLSAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgY2FzZSBKU0hUTUxEb2N1bWVudDo6T3BlbjoKLSAgICAv
LyBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIG90aGVyIGJyb3dzZXJzLCBwYXNzIG9wZW4gY2FsbHMg
d2l0aCBtb3JlIHRoYW4gMiBwYXJhbWV0ZXJzIHRvIHRoZSB3aW5kb3cuCi0gICAgaWYgKGFyZ3Mu
c2l6ZSgpID4gMikgewotICAgICAgRnJhbWUgKmZyYW1lID0gZG9jLmZyYW1lKCk7Ci0gICAgICBp
ZiAoZnJhbWUpIHsKLSAgICAgICAgV2luZG93ICp3aW5kb3cgPSBXaW5kb3c6OnJldHJpZXZlV2lu
ZG93KGZyYW1lKTsKLSAgICAgICAgaWYgKHdpbmRvdykgewotICAgICAgICAgIEpTT2JqZWN0ICpm
dW5jdGlvbk9iamVjdCA9IHdpbmRvdy0+Z2V0KGV4ZWMsICJvcGVuIiktPmdldE9iamVjdCgpOwot
ICAgICAgICAgIGlmICghZnVuY3Rpb25PYmplY3QgfHwgIWZ1bmN0aW9uT2JqZWN0LT5pbXBsZW1l
bnRzQ2FsbCgpKQotICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9y
KTsKLSAgICAgICAgICByZXR1cm4gZnVuY3Rpb25PYmplY3QtPmNhbGwoZXhlYywgd2luZG93LCBh
cmdzKTsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgaWYgKCF0aGlzT2JqLT5pbmhlcml0cygmSlNIVE1MRG9jdW1lbnQ6OmluZm8pKQorICAgICAg
ICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOworICAgIEhUTUxEb2N1bWVudCAm
ZG9jID0gKnN0YXRpY19jYXN0PEhUTUxEb2N1bWVudCAqPihzdGF0aWNfY2FzdDxKU0hUTUxEb2N1
bWVudCAqPih0aGlzT2JqKS0+aW1wbCgpKTsKKyAgICAKKyAgICBzd2l0Y2ggKGlkKSB7CisgICAg
ICAgIGNhc2UgSlNIVE1MRG9jdW1lbnQ6OkNsZWFyOiAvLyBldmVuIElFIGRvZXNuJ3Qgc3VwcG9y
dCB0aGF0IG9uZS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9kb2Mu
Y2xlYXIoKTsgLy8gVE9ETworICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAg
ICAgIGNhc2UgSlNIVE1MRG9jdW1lbnQ6Ok9wZW46CisgICAgICAgICAgICAvLyBGb3IgY29tcGF0
aWJpbGl0eSB3aXRoIG90aGVyIGJyb3dzZXJzLCBwYXNzIG9wZW4gY2FsbHMgd2l0aCBtb3JlIHRo
YW4gMiBwYXJhbWV0ZXJzIHRvIHRoZSB3aW5kb3cuCisgICAgICAgICAgICBpZiAoYXJncy5zaXpl
KCkgPiAyKSB7CisgICAgICAgICAgICAgICAgRnJhbWUgKmZyYW1lID0gZG9jLmZyYW1lKCk7Cisg
ICAgICAgICAgICAgICAgaWYgKGZyYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIFdpbmRvdyAq
d2luZG93ID0gV2luZG93OjpyZXRyaWV2ZVdpbmRvdyhmcmFtZSk7CisgICAgICAgICAgICAgICAg
ICAgIGlmICh3aW5kb3cpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEpTT2JqZWN0ICpmdW5j
dGlvbk9iamVjdCA9IHdpbmRvdy0+Z2V0KGV4ZWMsICJvcGVuIiktPmdldE9iamVjdCgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCFmdW5jdGlvbk9iamVjdCB8fCAhZnVuY3Rpb25PYmpl
Y3QtPmltcGxlbWVudHNDYWxsKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBmdW5jdGlvbk9iamVjdC0+Y2FsbChleGVjLCB3aW5kb3csIGFyZ3MpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gSW4gdGhlIGNhc2Ug
b2YgdHdvIHBhcmFtZXRlcnMgb3IgZmV3ZXIsIGRvIGEgbm9ybWFsIGRvY3VtZW50IG9wZW4uCisg
ICAgICAgICAgICBkb2Mub3BlbigpOworICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CisgICAgICAgIGNhc2UgSlNIVE1MRG9jdW1lbnQ6OkNsb3NlOgorICAgICAgICAgICAgZG9jLmNs
b3NlKCk7CisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgY2FzZSBK
U0hUTUxEb2N1bWVudDo6V3JpdGU6CisgICAgICAgIGNhc2UgSlNIVE1MRG9jdW1lbnQ6OldyaXRl
TG46IHsKKyAgICAgICAgICAgIC8vIERPTSBvbmx5IHNwZWNpZmllcyBzaW5nbGUgc3RyaW5nIGFy
Z3VtZW50LCBidXQgTlMgJiBJRSBhbGxvdyBtdWx0aXBsZQorICAgICAgICAgICAgLy8gb3Igbm8g
YXJndW1lbnRzCisgICAgICAgICAgICBTdHJpbmcgc3RyID0gIiI7CisgICAgICAgICAgICBmb3Ig
KGludCBpID0gMDsgaSA8IGFyZ3Muc2l6ZSgpOyBpKyspCisgICAgICAgICAgICAgICAgc3RyICs9
IGFyZ3NbaV0tPnRvU3RyaW5nKGV4ZWMpOworICAgICAgICAgICAgaWYgKGlkID09IEpTSFRNTERv
Y3VtZW50OjpXcml0ZUxuKQorICAgICAgICAgICAgICAgIHN0ciArPSAiXG4iOworICAgICAgICAg
ICAgZG9jLndyaXRlKHN0cik7CisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAg
ICAgICAgfQorICAgICAgICBjYXNlIEpTSFRNTERvY3VtZW50OjpHZXRFbGVtZW50c0J5TmFtZToK
KyAgICAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGRvYy5nZXRFbGVtZW50c0J5TmFtZShhcmdz
WzBdLT50b1N0cmluZyhleGVjKSkuZ2V0KCkpOworICAgICAgICBjYXNlIEpTSFRNTERvY3VtZW50
OjpDYXB0dXJlRXZlbnRzOgorICAgICAgICBjYXNlIEpTSFRNTERvY3VtZW50OjpSZWxlYXNlRXZl
bnRzOgorICAgICAgICAgICAgLy8gRG8gbm90aGluZyBmb3Igbm93LiBUaGVzZSBhcmUgTlMtc3Bl
Y2lmaWMgbGVnYWN5IGNhbGxzLgorICAgICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIC8vIElu
IHRoZSBjYXNlIG9mIHR3byBwYXJhbWV0ZXJzIG9yIGZld2VyLCBkbyBhIG5vcm1hbCBkb2N1bWVu
dCBvcGVuLgotICAgIGRvYy5vcGVuKCk7Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gIGNh
c2UgSlNIVE1MRG9jdW1lbnQ6OkNsb3NlOgotICAgIGRvYy5jbG9zZSgpOwotICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwotICBjYXNlIEpTSFRNTERvY3VtZW50OjpXcml0ZToKLSAgY2FzZSBKU0hU
TUxEb2N1bWVudDo6V3JpdGVMbjogewotICAgIC8vIERPTSBvbmx5IHNwZWNpZmllcyBzaW5nbGUg
c3RyaW5nIGFyZ3VtZW50LCBidXQgTlMgJiBJRSBhbGxvdyBtdWx0aXBsZQotICAgIC8vIG9yIG5v
IGFyZ3VtZW50cwotICAgIFN0cmluZyBzdHIgPSAiIjsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8
IGFyZ3Muc2l6ZSgpOyBpKyspCi0gICAgICBzdHIgKz0gYXJnc1tpXS0+dG9TdHJpbmcoZXhlYyk7
Ci0gICAgaWYgKGlkID09IEpTSFRNTERvY3VtZW50OjpXcml0ZUxuKQotICAgICAgc3RyICs9ICJc
biI7Ci0gICAgZG9jLndyaXRlKHN0cik7CisgICAgCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Ci0gIH0KLSAgY2FzZSBKU0hUTUxEb2N1bWVudDo6R2V0RWxlbWVudHNCeU5hbWU6Ci0gICAgcmV0
dXJuIHRvSlMoZXhlYywgZG9jLmdldEVsZW1lbnRzQnlOYW1lKGFyZ3NbMF0tPnRvU3RyaW5nKGV4
ZWMpKS5nZXQoKSk7Ci0gIGNhc2UgSlNIVE1MRG9jdW1lbnQ6OkNhcHR1cmVFdmVudHM6Ci0gIGNh
c2UgSlNIVE1MRG9jdW1lbnQ6OlJlbGVhc2VFdmVudHM6Ci0gICAgLy8gRG8gbm90aGluZyBmb3Ig
bm93LiBUaGVzZSBhcmUgTlMtc3BlY2lmaWMgbGVnYWN5IGNhbGxzLgotICAgIGJyZWFrOwotICB9
Ci0KLSAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKKwogLy8gRklYTUU6IGZ1bmN0aW9ucyBz
aG91bGQgYmUgaW4gdGhlIHByb3RvdHlwZQogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTERvY3VtZW50
OjppbmZvID0KICAgeyAiSFRNTERvY3VtZW50IiwgJkpTRG9jdW1lbnQ6OmluZm8sICZIVE1MRG9j
dW1lbnRUYWJsZSwgMCB9OwpAQCAtMTQ5LDE0ICsxNjMsNiBAQCBjb25zdCBDbGFzc0luZm8gSlNI
VE1MRG9jdW1lbnQ6OmluZm8gPQogICBhbmNob3JzICAgICAgICAgICAgICAgSlNIVE1MRG9jdW1l
bnQ6OkFuY2hvcnMgICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKICAgc2NyaXB0cyAgICAg
ICAgICAgICAgIEpTSFRNTERvY3VtZW50OjpTY3JpcHRzICAgICAgICAgICBEb250RGVsZXRlfFJl
YWRPbmx5CiAgIGFsbCAgICAgICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6QWxsICAgICAg
ICAgICAgICAgCi0gIGNsZWFyICAgICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6Q2xlYXIg
ICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIG9wZW4gICAgICAgICAgICAgICAg
ICBKU0hUTUxEb2N1bWVudDo6T3BlbiAgICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAw
Ci0gIGNsb3NlICAgICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6Q2xvc2UgICAgICAgICAg
ICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIHdyaXRlICAgICAgICAgICAgICAgICBKU0hUTUxE
b2N1bWVudDo6V3JpdGUgICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAxCi0gIHdyaXRl
bG4gICAgICAgICAgICAgICBKU0hUTUxEb2N1bWVudDo6V3JpdGVMbiAgICAgICAgICAgRG9udERl
bGV0ZXxGdW5jdGlvbiAxCi0gIGdldEVsZW1lbnRzQnlOYW1lICAgICBKU0hUTUxEb2N1bWVudDo6
R2V0RWxlbWVudHNCeU5hbWUgRG9udERlbGV0ZXxGdW5jdGlvbiAxCi0gIGNhcHR1cmVFdmVudHMg
ICAgICAgICBKU0hUTUxEb2N1bWVudDo6Q2FwdHVyZUV2ZW50cyAgICAgRG9udERlbGV0ZXxGdW5j
dGlvbiAwCi0gIHJlbGVhc2VFdmVudHMgICAgICAgICBKU0hUTUxEb2N1bWVudDo6UmVsZWFzZUV2
ZW50cyAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCiAgIGJnQ29sb3IgICAgICAgICAgICAgICBK
U0hUTUxEb2N1bWVudDo6QmdDb2xvciAgICAgICAgICAgRG9udERlbGV0ZQogICBmZ0NvbG9yICAg
ICAgICAgICAgICAgSlNIVE1MRG9jdW1lbnQ6OkZnQ29sb3IgICAgICAgICAgIERvbnREZWxldGUK
ICAgYWxpbmtDb2xvciAgICAgICAgICAgIEpTSFRNTERvY3VtZW50OjpBbGlua0NvbG9yICAgICAg
ICBEb250RGVsZXRlCkBAIC0xODAsNiArMTg2LDcgQEAgY29uc3QgQ2xhc3NJbmZvIEpTSFRNTERv
Y3VtZW50OjppbmZvID0KIEpTSFRNTERvY3VtZW50OjpKU0hUTUxEb2N1bWVudChFeGVjU3RhdGUg
KmV4ZWMsIEhUTUxEb2N1bWVudCAqZCkKICAgOiBKU0RvY3VtZW50KGV4ZWMsIGQpCiB7CisgICAg
c2V0UHJvdG90eXBlKEpTSFRNTERvY3VtZW50UHJvdG86OnNlbGYoZXhlYykpOwogfQogCiBKU1Zh
bHVlICpKU0hUTUxEb2N1bWVudDo6bmFtZWRJdGVtR2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgSlNP
YmplY3QgKm9yaWdpbmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNv
bnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKQEAgLTMwMSwxMiArMzA4LDExIEBAIGJvb2wgSlNIVE1M
RG9jdW1lbnQ6OmdldE93blByb3BlcnR5U2xvdCgKICAgICByZXR1cm4gdHJ1ZTsKICAgfQogCisg
IHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNIVE1MRG9jdW1lbnQsIEpTRG9jdW1lbnQ+KGV4
ZWMsICZIVE1MRG9jdW1lbnRUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKKwogICBj
b25zdCBIYXNoRW50cnkqIGVudHJ5ID0gTG9va3VwOjpmaW5kRW50cnkoJkhUTUxEb2N1bWVudFRh
YmxlLCBwcm9wZXJ0eU5hbWUpOwogICBpZiAoZW50cnkpIHsKLSAgICBpZiAoZW50cnktPmF0dHIg
JiBGdW5jdGlvbikKLSAgICAgIHNsb3Quc2V0U3RhdGljRW50cnkodGhpcywgZW50cnksIHN0YXRp
Y0Z1bmN0aW9uR2V0dGVyPEhUTUxEb2NGdW5jdGlvbj4pOwotICAgIGVsc2UgCi0gICAgICBzbG90
LnNldFN0YXRpY0VudHJ5KHRoaXMsIGVudHJ5LCBzdGF0aWNWYWx1ZUdldHRlcjxKU0hUTUxEb2N1
bWVudD4pOworICAgIHNsb3Quc2V0U3RhdGljRW50cnkodGhpcywgZW50cnksIHN0YXRpY1ZhbHVl
R2V0dGVyPEpTSFRNTERvY3VtZW50Pik7CiAgICAgcmV0dXJuIHRydWU7CiAgIH0KIApAQCAtNjk1
LDcgKzcwMSw2IEBAIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyogSlNIVE1MRWwKIAog
QGJlZ2luIEhUTUxFbGVtZW50VGFibGUgMTQKICAgaWQgICAgICAgICAgICBLSlM6OkpTSFRNTEVs
ZW1lbnQ6OkVsZW1lbnRJZCAgICAgRG9udERlbGV0ZQotICB0aXRsZSAgICAgICAgIEtKUzo6SlNI
VE1MRWxlbWVudDo6RWxlbWVudFRpdGxlICBEb250RGVsZXRlCiAgIGxhbmcgICAgICAgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpFbGVtZW50TGFuZyAgIERvbnREZWxldGUKICAgZGlyICAgICAgICAg
ICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkVsZW1lbnREaXIgICAgRG9udERlbGV0ZQogIyMjIGlzbid0
IHRoaXMgImNsYXNzIiBpbiB0aGUgSFRNTCBzcGVjPwpAQCAtMTE4Nyw4ICsxMTkyLDkgQEAgSlNW
YWx1ZSogSlNIVE1MRWxlbWVudFByb3RvRnVuYzo6Y2FsbEFzRgogfQogCiBKU0hUTUxFbGVtZW50
OjpKU0hUTUxFbGVtZW50KEV4ZWNTdGF0ZSAqZXhlYywgSFRNTEVsZW1lbnQgKmUpCi0gICAgOiBK
U0VsZW1lbnQoZXhlYywgZSkKKyAgICA6IFdlYkNvcmU6OkpTSFRNTEVsZW1lbnQoZXhlYywgZSkK
IHsKKyAgICBzZXRQcm90b3R5cGUoSlNIVE1MRWxlbWVudFByb3RvOjpzZWxmKGV4ZWMpKTsKIH0K
IAogSlNWYWx1ZSAqSlNIVE1MRWxlbWVudDo6Zm9ybUluZGV4R2V0dGVyKEV4ZWNTdGF0ZSAqZXhl
YywgSlNPYmplY3QgKm9yaWdpbmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKQEAgLTEzMjMsNyArMTMyOSw3IEBAIGJvb2wg
SlNIVE1MRWxlbWVudDo6Z2V0T3duUHJvcGVydHlTbG90KEUKICAgICB9CiAKICAgICAvLyBCYXNl
IEpTSFRNTEVsZW1lbnQgc3R1ZmYgb3IgcGFyZW50IGNsYXNzIGZvcndhcmQsIGFzIHVzdWFsCi0g
ICAgcmV0dXJuIGdldFN0YXRpY1Byb3BlcnR5U2xvdDxIVE1MRWxlbWVudEZ1bmN0aW9uLCBKU0hU
TUxFbGVtZW50LCBKU0VsZW1lbnQ+KGV4ZWMsICZIVE1MRWxlbWVudFRhYmxlLCB0aGlzLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOworICAgIHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNsb3Q8SFRNTEVs
ZW1lbnRGdW5jdGlvbiwgSlNIVE1MRWxlbWVudCwgV2ViQ29yZTo6SlNIVE1MRWxlbWVudD4oZXhl
YywgJkhUTUxFbGVtZW50VGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJv
b2wgSlNIVE1MRWxlbWVudDo6aW1wbGVtZW50c0NhbGwoKSBjb25zdApAQCAtMjE1OSw4ICsyMTY1
LDYgQEAgSlNWYWx1ZSAqSlNIVE1MRWxlbWVudDo6Z2V0VmFsdWVQcm9wZXJ0eQogICAgICAgICAg
ICAgLy8gaWh0LmNvbSByZWxpZXMgb24gdGhpcyB2YWx1ZSBiZWluZyAiIiB3aGVuIG5vIGlkIGlz
IHByZXNlbnQuIE90aGVyIGJyb3dzZXJzIGRvIHRoaXMgYXMgd2VsbC4KICAgICAgICAgICAgIC8v
IFNvIHdlIHVzZSBqc1N0cmluZygpIGluc3RlYWQgb2YganNTdHJpbmdPck51bGwoKSBoZXJlLgog
ICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGVsZW1lbnQuaWQoKSk7Ci0gICAgICAgIGNhc2Ug
RWxlbWVudFRpdGxlOgotICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGVsZW1lbnQudGl0bGUo
KSk7CiAgICAgICAgIGNhc2UgRWxlbWVudExhbmc6CiAgICAgICAgICAgICByZXR1cm4ganNTdHJp
bmcoZWxlbWVudC5sYW5nKCkpOwogICAgICAgICBjYXNlIEVsZW1lbnREaXI6CkBAIC0zMTQ5LDkg
KzMxNTMsNiBAQCB2b2lkIEpTSFRNTEVsZW1lbnQ6OnB1dFZhbHVlUHJvcGVydHkoRXhlCiAgICAg
ICAgIGNhc2UgRWxlbWVudElkOgogICAgICAgICAgICAgZWxlbWVudC5zZXRJZChzdHIpOwogICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICBjYXNlIEVsZW1lbnRUaXRsZToKLSAgICAgICAgICAg
IGVsZW1lbnQuc2V0VGl0bGUoc3RyKTsKLSAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY2Fz
ZSBFbGVtZW50TGFuZzoKICAgICAgICAgICAgIGVsZW1lbnQuc2V0TGFuZyhzdHIpOwogICAgICAg
ICAgICAgcmV0dXJuOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlND
YW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAkocmV2aXNpb24gMTQyODMpCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDYgKzMxLDggQEAKICNpbmNsdWRlICJKU0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oIgogI2luY2x1ZGUgIkpTSFRNTENhbnZhc0VsZW1lbnQuaCIKIAorI2luY2x1ZGUg
Imtqc19odG1sLmgiCisKICNpbmNsdWRlICJKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2VU
YWJsZS5jcHAiCiAKIHVzaW5nIG5hbWVzcGFjZSBLSlM7CkBAIC0xOTAsNyArMTkyLDcgQEAgSlNW
YWx1ZSogSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlUAogICAgICAgICAgICAgaWYgKCFv
LT5pc09iamVjdCgpKQogICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5
cGVFcnJvcik7CiAgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwotICAgICAgICAgICAgaWYg
KG8tPmluaGVyaXRzKCZKU0hUTUxFbGVtZW50OjppbWdfaW5mbykpIHsKKyAgICAgICAgICAgIGlm
IChvLT5pbmhlcml0cygmS0pTOjpKU0hUTUxFbGVtZW50OjppbWdfaW5mbykpIHsKICAgICAgICAg
ICAgICAgICBIVE1MSW1hZ2VFbGVtZW50KiBpbWdFbHQgPSBzdGF0aWNfY2FzdDxIVE1MSW1hZ2VF
bGVtZW50Kj4oc3RhdGljX2Nhc3Q8SlNIVE1MRWxlbWVudCo+KGFyZ3NbMF0pLT5pbXBsKCkpOwog
ICAgICAgICAgICAgICAgIHN3aXRjaCAoYXJncy5zaXplKCkpIHsKICAgICAgICAgICAgICAgICAg
ICAgY2FzZSAzOgpAQCAtMjQzLDcgKzI0NSw3IEBAIEpTVmFsdWUqIEpTQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZVAKICAgICAgICAgICAgIEpTT2JqZWN0KiBvID0gc3RhdGljX2Nhc3Q8SlNP
YmplY3QqPihhcmdzWzBdKTsKICAgICAgICAgICAgIGlmICghby0+aXNPYmplY3QoKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwotICAgICAgICAg
ICAgaWYgKCFvLT5pbmhlcml0cygmSlNIVE1MRWxlbWVudDo6aW1nX2luZm8pKQorICAgICAgICAg
ICAgaWYgKCFvLT5pbmhlcml0cygmS0pTOjpKU0hUTUxFbGVtZW50OjppbWdfaW5mbykpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgVHlwZUVycm9yKTsKICAgICAgICAg
ICAgIGNvbnRleHQtPmRyYXdJbWFnZUZyb21SZWN0KHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1l
bnQqPihzdGF0aWNfY2FzdDxKU0hUTUxFbGVtZW50Kj4oYXJnc1swXSktPmltcGwoKSksCiAgICAg
ICAgICAgICAgICAgYXJnc1sxXS0+dG9OdW1iZXIoZXhlYyksIGFyZ3NbMl0tPnRvTnVtYmVyKGV4
ZWMpLApAQCAtMjU3LDcgKzI1OSw3IEBAIEpTVmFsdWUqIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZVAKICAgICAgICAgICAgIEpTT2JqZWN0KiBvID0gc3RhdGljX2Nhc3Q8SlNPYmplY3Qq
PihhcmdzWzBdKTsKICAgICAgICAgICAgIGlmICghby0+aXNPYmplY3QoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwotICAgICAgICAgICAgaWYg
KG8tPmluaGVyaXRzKCZKU0hUTUxFbGVtZW50OjppbWdfaW5mbykpIHsKKyAgICAgICAgICAgIGlm
IChvLT5pbmhlcml0cygmS0pTOjpKU0hUTUxFbGVtZW50OjppbWdfaW5mbykpIHsKICAgICAgICAg
ICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwogICAgICAgICAgICAgICAgIEpTVmFsdWUqIHBhdHRl
cm4gPSB0b0pTKGV4ZWMsCiAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmNyZWF0ZVBhdHRl
cm4oc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KHN0YXRpY19jYXN0PEpTSFRNTEVsZW1l
bnQqPihhcmdzWzBdKS0+aW1wbCgpKSwKSW5kZXg6IFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDE0
MjgzKQorKysgV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC01
OCwxMSArNTgsMTQgQEAgYWxsIDogXAogICAgIEpTRE9NUGFyc2VyLmx1dC5oIFwKICAgICBKU0RP
TVdpbmRvdy5oIFwKICAgICBKU0RvY3VtZW50LmggXAorICAgIEpTRG9jdW1lbnRGcmFnbWVudC5o
IFwKICAgICBKU0RvY3VtZW50VHlwZS5oIFwKICAgICBKU0VsZW1lbnQuaCBcCiAgICAgSlNFdmVu
dC5oIFwKICAgICBKU0VudGl0eS5oIFwKKyAgICBKU0hUTUxEb2N1bWVudC5oIFwKICAgICBKU0hU
TUxDYW52YXNFbGVtZW50LmggXAorICAgIEpTSFRNTEVsZW1lbnQuaCBcCiAgICAgSlNLZXlib2Fy
ZEV2ZW50LmggXAogICAgIEpTTW91c2VFdmVudC5oIFwKICAgICBKU011dGF0aW9uRXZlbnQuaCBc
CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorICogQm9zdG9u
LCBNQSAwMjExMS0xMzA3LCBVU0EuCisgKi8KKworbW9kdWxlIGh0bWwgeworCisgICAgaW50ZXJm
YWNlIFtHZW5lcmF0ZUNvbnN0cnVjdG9yXSBIVE1MRWxlbWVudCA6IEVsZW1lbnQgeworICAgICAg
ICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRpdGxlOworICAgIH07CisKK30KSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRG9j
dW1lbnQuaWRsCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5pZGwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYg
QXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEz
MDcsIFVTQS4KKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2UgW0xlZ2FjeVBh
cmVudD1LSlM6OkpTSFRNTERvY3VtZW50LCBHZW5lcmF0ZUNvbnN0cnVjdG9yXSBIVE1MRG9jdW1l
bnQgOiBEb2N1bWVudCB7CisgICAgfTsKKworfQorICAgIApJbmRleDogV2ViQ29yZS9kb20vRG9j
dW1lbnRGcmFnbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFn
bWVudC5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50Lmlk
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEt
MTMwNywgVVNBLgorICovCisKK21vZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbTGVnYWN5
UGFyZW50PUtKUzo6RE9NRXZlbnRUYXJnZXROb2RlLCBHZW5lcmF0ZUNvbnN0cnVjdG9yXSBEb2N1
bWVudEZyYWdtZW50IDogRXZlbnRUYXJnZXROb2RlIHsKKyAgICB9OworCit9CkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTQyODMpCisr
KyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtNTEsNiArNTEsMTUgQEAKIAkJMTRFODM3OEUwOUY4NUQ0RjAwQjg1QUU0IC8qIEpTRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0RTgz
NzhEMDlGODVENEYwMEI4NUFFNCAvKiBKU0V2ZW50LmggKi87IH07CiAJCTE0RUMyNjdGMDlDQTA3
RTAwMEUxRUVFQyAvKiBFdmVudFRhcmdldE5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0RUMyNjdEMDlDQTA3RTAwMEUxRUVFQyAvKiBFdmVudFRh
cmdldE5vZGUuaCAqLzsgfTsKIAkJMTRFQzI2ODAwOUNBMDdFMDAwRTFFRUVDIC8qIEV2ZW50VGFy
Z2V0Tm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNEVDMjY3RTA5Q0EwN0UwMDBFMUVFRUMgLyogRXZlbnRUYXJnZXROb2RlLmNwcCAqLzsgfTsK
KwkJMUE0OTRCQkMwQTEyMkRDRDAwRkRBRkMxIC8qIEhUTUxFbGVtZW50LmlkbCBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0OTRCQkIwQTEyMkRDRDAw
RkRBRkMxIC8qIEhUTUxFbGVtZW50LmlkbCAqLzsgfTsKKwkJMUE0OTRCRkEwQTEyMkY0NDAwRkRB
RkMxIC8qIEpTSFRNTEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUE0OTRCRjgwQTEyMkY0NDAwRkRBRkMxIC8qIEpTSFRNTEVsZW1lbnQu
Y3BwICovOyB9OworCQkxQTQ5NEJGQjBBMTIyRjQ0MDBGREFGQzEgLyogSlNIVE1MRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0OTRCRjkw
QTEyMkY0NDAwRkRBRkMxIC8qIEpTSFRNTEVsZW1lbnQuaCAqLzsgfTsKKwkJMUE0OTRFMkEwQTEy
MzU0MzAwRkRBRkMxIC8qIEhUTUxEb2N1bWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNDk0RTI5MEExMjM1NDMwMEZEQUZDMSAvKiBIVE1M
RG9jdW1lbnQuaWRsICovOyB9OworCQkxQTQ5NEUzNDBBMTIzNThCMDBGREFGQzEgLyogSlNIVE1M
RG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUE0OTRFMzIwQTEyMzU4QTAwRkRBRkMxIC8qIEpTSFRNTERvY3VtZW50LmNwcCAqLzsgfTsK
KwkJMUE0OTRFMzUwQTEyMzU4QjAwRkRBRkMxIC8qIEpTSFRNTERvY3VtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTQ5NEUzMzBBMTIzNThCMDBG
REFGQzEgLyogSlNIVE1MRG9jdW1lbnQuaCAqLzsgfTsKKwkJMUE0OTRFRDYwQTEyM0YxQTAwRkRB
RkMxIC8qIERvY3VtZW50RnJhZ21lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTQ5NEVENTBBMTIzRjFBMDBGREFGQzEgLyogRG9jdW1lbnRG
cmFnbWVudC5pZGwgKi87IH07CisJCTFBNDk0RURFMEExMjNGNEMwMEZEQUZDMSAvKiBKU0RvY3Vt
ZW50RnJhZ21lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUE0OTRFREMwQTEyM0Y0QzAwRkRBRkMxIC8qIEpTRG9jdW1lbnRGcmFnbWVudC5jcHAg
Ki87IH07CisJCTFBNDk0RURGMEExMjNGNEMwMEZEQUZDMSAvKiBKU0RvY3VtZW50RnJhZ21lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNDk0RURE
MEExMjNGNEMwMEZEQUZDMSAvKiBKU0RvY3VtZW50RnJhZ21lbnQuaCAqLzsgfTsKIAkJMUE1RDkz
OEUwQTBCOUFDQzAwQjExMjFGIC8qIFhQYXRoUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNUQ5MzhDMEEwQjlBQ0MwMEIxMTIxRiAvKiBY
UGF0aFBhcnNlci5jcHAgKi87IH07CiAJCTFBNUQ5MzhGMEEwQjlBQ0MwMEIxMTIxRiAvKiBYUGF0
aFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUE1RDkzOEQwQTBCOUFDQzAwQjExMjFGIC8qIFhQYXRoUGFyc2VyLmggKi87IH07CiAJCTFBNjkz
MTc2MEEwQ0Q0RkEwMEMxMjdGRSAvKiBYUGF0aFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTY5MzE3NDBBMENENEZBMDBDMTI3RkUgLyogWFBh
dGhWYWx1ZS5oICovOyB9OwpAQCAtMTI5Niw2ICsxMzA1LDE1IEBACiAJCTE0RTgzNzhEMDlGODVE
NEYwMEI4NUFFNCAvKiBKU0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0RUMyNjdEMDlDQTA3
RTAwMEUxRUVFQyAvKiBFdmVudFRhcmdldE5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRXZlbnRUYXJnZXROb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTE0RUMyNjdFMDlDQTA3RTAwMEUxRUVFQyAvKiBFdmVudFRhcmdldE5vZGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnRUYXJnZXROb2RlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUE0OTRCQkIwQTEyMkRDRDAwRkRBRkMxIC8qIEhUTUxF
bGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MRWxlbWVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBNDk0QkY4MEExMjJGNDQwMEZEQUZDMSAvKiBKU0hU
TUxFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hU
TUxFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUE0OTRCRjkwQTEy
MkY0NDAwRkRBRkMxIC8qIEpTSFRNTEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTSFRNTEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUE0OTRFMjkwQTEyMzU0MzAwRkRBRkMxIC8qIEhUTUxEb2N1bWVudC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gSFRNTERvY3VtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUE0OTRFMzIwQTEyMzU4QTAwRkRBRkMxIC8qIEpTSFRNTERvY3VtZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxEb2N1bWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBNDk0RTMzMEExMjM1OEIwMEZEQUZDMSAvKiBKU0hU
TUxEb2N1bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRG9j
dW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUE0OTRFRDUwQTEyM0YxQTAw
RkRBRkMxIC8qIERvY3VtZW50RnJhZ21lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERv
Y3VtZW50RnJhZ21lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQTQ5NEVE
QzBBMTIzRjRDMDBGREFGQzEgLyogSlNEb2N1bWVudEZyYWdtZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50RnJhZ21lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQTQ5NEVERDBBMTIzRjRDMDBGREFGQzEgLyogSlNEb2N1
bWVudEZyYWdtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RvY3Vt
ZW50RnJhZ21lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE1RDkzOEMwQTBC
OUFDQzAwQjExMjFGIC8qIFhQYXRoUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBYUGF0aFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFBNUQ5MzhEMEEwQjlBQ0MwMEIxMTIxRiAvKiBYUGF0aFBhcnNlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBhdGhQYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUE2OTMxNzQwQTBDRDRGQTAwQzEyN0ZFIC8qIFhQYXRoVmFsdWUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBhdGhWYWx1ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjg0Niw2ICsyODY0LDggQEAKIAkJCQkxNENGNzhBNTA5RjU4Q0Q4
MDBFQjM2NjUgLyogSlNDU1NWYWx1ZS5oICovLAogCQkJCTY1OUREQzgwMDlFMTk4QkEwMDFCRjND
NiAvKiBKU0RvY3VtZW50LmNwcCAqLywKIAkJCQk2NTlEREM4MTA5RTE5OEJBMDAxQkYzQzYgLyog
SlNEb2N1bWVudC5oICovLAorCQkJCTFBNDk0RURDMEExMjNGNEMwMEZEQUZDMSAvKiBKU0RvY3Vt
ZW50RnJhZ21lbnQuY3BwICovLAorCQkJCTFBNDk0RUREMEExMjNGNEMwMEZEQUZDMSAvKiBKU0Rv
Y3VtZW50RnJhZ21lbnQuaCAqLywKIAkJCQk2NURGMzFFMTA5RDFDQzYwMDAwQkUzMjUgLyogSlNE
b2N1bWVudFR5cGUuY3BwICovLAogCQkJCTY1REYzMUUyMDlEMUNDNjAwMDBCRTMyNSAvKiBKU0Rv
Y3VtZW50VHlwZS5oICovLAogCQkJCTY1REYzMUUzMDlEMUNDNjAwMDBCRTMyNSAvKiBKU0RPTUlt
cGxlbWVudGF0aW9uLmNwcCAqLywKQEAgLTI4NjEsNiArMjg4MSwxMCBAQAogCQkJCTE0RTgzNzhE
MDlGODVENEYwMEI4NUFFNCAvKiBKU0V2ZW50LmggKi8sCiAJCQkJOTM4RTY2NUYwOUYwOUI4MTAw
OEE0OEVDIC8qIEpTSFRNTENhbnZhc0VsZW1lbnQuY3BwICovLAogCQkJCTkzOEU2NjYxMDlGMDlC
ODcwMDhBNDhFQyAvKiBKU0hUTUxDYW52YXNFbGVtZW50LmggKi8sCisJCQkJMUE0OTRFMzIwQTEy
MzU4QTAwRkRBRkMxIC8qIEpTSFRNTERvY3VtZW50LmNwcCAqLywKKwkJCQkxQTQ5NEUzMzBBMTIz
NThCMDBGREFGQzEgLyogSlNIVE1MRG9jdW1lbnQuaCAqLywKKwkJCQkxQTQ5NEJGODBBMTIyRjQ0
MDBGREFGQzEgLyogSlNIVE1MRWxlbWVudC5jcHAgKi8sCisJCQkJMUE0OTRCRjkwQTEyMkY0NDAw
RkRBRkMxIC8qIEpTSFRNTEVsZW1lbnQuaCAqLywKIAkJCQlBODY2MjlDRTA5REEyQjQ3MDA5NjMz
QTUgLyogSlNLZXlib2FyZEV2ZW50LmNwcCAqLywKIAkJCQlBODY2MjlDRDA5REEyQjQ3MDA5NjMz
QTUgLyogSlNLZXlib2FyZEV2ZW50LmggKi8sCiAJCQkJQTg2NjI5Q0MwOURBMkI0NzAwOTYzM0E1
IC8qIEpTTW91c2VFdmVudC5jcHAgKi8sCkBAIC0zMjE0LDYgKzMyMzgsNyBAQAogCQkJCUY1MjNE
MjNDMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuaCAqLywKIAkJCQlGNTIzRDIzRTAy
REU0Mzk2MDE4NjM1Q0EgLyogSFRNTEVsZW1lbnQuY3BwICovLAogCQkJCUY1MjNEMjNGMDJERTQz
OTYwMTg2MzVDQSAvKiBIVE1MRWxlbWVudC5oICovLAorCQkJCTFBNDk0QkJCMEExMjJEQ0QwMEZE
QUZDMSAvKiBIVE1MRWxlbWVudC5pZGwgKi8sCiAJCQkJQkNFRjM0MzIwODdCNTYzRTAwQkJGODMz
IC8qIEhUTUxFbGVtZW50RmFjdG9yeS5jcHAgKi8sCiAJCQkJQkNFRjM0MzMwODdCNTYzRTAwQkJG
ODMzIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oICovLAogCQkJCUE4MTM2OUI5MDk3Mzc0RjUwMEQ3
NDQ2MyAvKiBIVE1MRmllbGRTZXRFbGVtZW50LmNwcCAqLywKQEAgLTMyNTQsNiArMzI3OSw3IEBA
CiAJCQkJQUIyM0EzMTEwOUJCQTc3NjAwNjdDQzUzIC8qIEhUTUxUZXh0RmllbGRJbm5lckVsZW1l
bnQuaCAqLywKIAkJCQlGNTIzRDI1MjAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTFRva2VuaXplci5j
cHAgKi8sCiAJCQkJRjUyM0QyNTMwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxUb2tlbml6ZXIuaCAq
LywKKwkJCQkxQTQ5NEUyOTBBMTIzNTQzMDBGREFGQzEgLyogSFRNTERvY3VtZW50LmlkbCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gaHRtbDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00
MzQ4LDYgKzQzNzQsNyBAQAogCQkJCUY1MjNEMzBBMDJERTQ0NzYwMTg2MzVDQSAvKiB4bWxfdG9r
ZW5pemVyLmggKi8sCiAJCQkJMTRFODM2RDIwOUY4NTEyMDAwQjg1QUU0IC8qIEV2ZW50LmlkbCAq
LywKIAkJCQkxNERDMEQwQjA5RkVDRkE0MDA3QjAyMzUgLyogTm9kZS5pZGwgKi8sCisJCQkJMUE0
OTRFRDUwQTEyM0YxQTAwRkRBRkMxIC8qIERvY3VtZW50RnJhZ21lbnQuaWRsICovLAogCQkJKTsK
IAkJCXBhdGggPSBkb207CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTAxNCw2ICs1
MDQxLDkgQEAKIAkJCQkxQTVEOTM4RjBBMEI5QUNDMDBCMTEyMUYgLyogWFBhdGhQYXJzZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNjkzMTc2MEEwQ0Q0RkEwMEMxMjdGRSAvKiBYUGF0aFZhbHVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTY5MzgwMjBBMTExMDBBMDBDMTI3RkUgLyogVGV4dERv
Y3VtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTQ5NEJGQjBBMTIyRjQ0MDBGREFGQzEgLyog
SlNIVE1MRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUE0OTRFMzUwQTEyMzU4QjAwRkRB
RkMxIC8qIEpTSFRNTERvY3VtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTQ5NEVERjBBMTIz
RjRDMDBGREFGQzEgLyogSlNEb2N1bWVudEZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTUx
NjQsNiArNTE5NCw5IEBACiAJCQkJMTRFODM2RDMwOUY4NTEyMDAwQjg1QUU0IC8qIEV2ZW50Lmlk
bCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJMTREQzBEMEMwOUZFQ0ZBNDAwN0IwMjM1IC8qIE5vZGUu
aWRsIGluIFJlc291cmNlcyAqLywKIAkJCQkxNDIwMTFBRjBBMDAzMTE3MDA4MzAzRjkgLyogQ1NT
U3R5bGVEZWNsYXJhdGlvbi5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCTFBNDk0QkJDMEExMjJE
Q0QwMEZEQUZDMSAvKiBIVE1MRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCTFBNDk0
RTJBMEExMjM1NDMwMEZEQUZDMSAvKiBIVE1MRG9jdW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywK
KwkJCQkxQTQ5NEVENjBBMTIzRjFBMDBGREFGQzEgLyogRG9jdW1lbnRGcmFnbWVudC5pZGwgaW4g
UmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtNTc1Miw2ICs1Nzg1LDkgQEAKIAkJCQlCQ0NEMTMyMDBBMEMwMDMw
MDAxQUZBOEIgLyogRm9udERhdGEubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTY5MzE3NzBBMENE
NEZBMDBDMTI3RkUgLyogWFBhdGhWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTY5Mzgw
MTBBMTExMDBBMDBDMTI3RkUgLyogVGV4dERvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTFBNDk0QkZBMEExMjJGNDQwMEZEQUZDMSAvKiBKU0hUTUxFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTFBNDk0RTM0MEExMjM1OEIwMEZEQUZDMSAvKiBKU0hUTUxEb2N1bWVudC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkxQTQ5NEVERTBBMTIzRjRDMDBGREFGQzEgLyogSlNEb2N1bWVu
dEZyYWdtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0Mjg5KQorKysgV2ViQ29y
ZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1OCBAQAorMjAwNi0wNS0xMCAg
QW5kZXJzIENhcmxzc29uICA8YWNhcmxzc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwOi8vYnVnemlsbGEub3BlbmRhcndp
bi5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzgKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG1vemls
bGEtc3R5bGUgbm9kZSBjb25zdHJ1Y3RvcnMgYXMgcHJvcGVydGllcyBvZiB0aGUgd2luZG93IG9i
amVjdAorICAgICAgICAKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIG5ldyBnZW5l
cmF0ZWQgZmlsZXMuCisgICAgICAgIAorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREJhc2VQcm90b0Z1bmM6OmNhbGxBc0Z1bmN0aW9uKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlSlNXcmFwcGVyKToKKyAgICAgICAgU3BlY2lmeSB0aGUgS0pTIG5hbWVzcGFj
ZSBmb3IgSlNIVE1MRWxtZW1lbnQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICogYmluZGlu
Z3MvanMva2pzX2RvbS5jcHA6CisgICAgICAgIChLSlM6OnRvSlMpOgorICAgICAgICBDcmVhdGUg
YSBXZWJDb3JlOjpKU0hUTUxEb2N1bWVudCBmb3IgZG9jdW1lbnQgbm9kZXMuIEFsc28sIGNyZWF0
ZQorICAgICAgICBKU0RvY3VtZW50RnJhZ21lbnRzIGZvciBkb2N1bWVudCBmcmFnbWVudHMgKGlu
c3RlYWQgb2YgcGxhaW4gbm9kZSBvYmplY3RzKS4KKyAgICAgICAgCisgICAgICAgICogYmluZGlu
Z3MvanMva2pzX2h0bWwuY3BwOgorICAgICAgICAoS0pTOjpKU0hUTUxEb2N1bWVudFByb3RvRnVu
Yzo6Y2FsbEFzRnVuY3Rpb24pOgorICAgICAgICAoS0pTOjpKU0hUTUxEb2N1bWVudDo6SlNIVE1M
RG9jdW1lbnQpOgorICAgICAgICAoS0pTOjpKU0hUTUxEb2N1bWVudDo6Z2V0T3duUHJvcGVydHlT
bG90KToKKyAgICAgICAgQWRkIGEgcHJvdG90eXBlIGZvciBKU0hUTUxEb2N1bWVudCBhbmQgbW92
ZSBhbGwgZnVuY3Rpb25zIHRoZXJlLgorICAgICAgICAKKyAgICAgICAgKEtKUzo6SlNIVE1MRWxl
bWVudDo6SlNIVE1MRWxlbWVudCk6CisgICAgICAgIChLSlM6OkpTSFRNTEVsZW1lbnQ6OmdldE93
blByb3BlcnR5U2xvdCk6CisgICAgICAgIFVwZGF0ZSBzaW5jZSBKU0hUTUxFbGVtZW50IG5vdyBp
bmhlcml0cyBmcm9tIFdlYkNvcmU6OkpTSFRNTEVsZW1lbnQuCisgICAgICAgIAorICAgICAgICAo
S0pTOjpKU0hUTUxFbGVtZW50OjpnZXRWYWx1ZVByb3BlcnR5KToKKyAgICAgICAgKEtKUzo6SlNI
VE1MRWxlbWVudDo6cHV0VmFsdWVQcm9wZXJ0eSk6CisgICAgICAgIFJlbW92ZSB0aXRsZSBzZXR0
ZXIgYW5kIGdldHRlci4gVGhvc2UgYXJlIGF1dG9nZW5lcmF0ZWQgbm93LgorICAgICAgICAKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9ranNfaHRtbC5oOgorICAgICAgICAoS0pTOjpKU0hUTUxFbGVt
ZW50OjopOgorICAgICAgICBJbmhlcml0IGZyb20gV2ViQ29yZTo6SlNIVE1MRWxlbWVudC4gQ2xh
cmlmeSB0aGUgaW5oZXJpdGFuY2UgY2hhaW4uCisgICAgICAgIAorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICBBbHdheXMgZ2VuZXJhdGUgYSBw
cm90b3R5cGUgb2JqZWN0LCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIG9iamVjdCBoYXMgYW55
IGZ1bmN0aW9ucyBvcgorICAgICAgICBjb25zdGFudHMuCisgICAgICAgIAorICAgICAgICBVc2Ug
dGhlIHR5cGUgb2YgZ2VuZXJhdG9yIGF0dHJpYnV0ZXMgdG8gZGV0ZXJtaW5lIHdoYXQgY29uc3Ry
dWN0b3IgdG8gdXNlLiBUaGlzIGlzIHVzZWZ1bCBmb3IKKyAgICAgICAgdGhlIFhNTERvY3VtZW50
IHByb3BlcnR5IGluIERPTVdpbmRvdy5pZGwsIHNpbmNlIHRoYXQncyBqdXN0IGFuIGFsaWFzIGZv
ciB0aGUgRG9jdW1lbnQgY29uc3RydWN0b3IuCisgICAgICAgIAorICAgICAgICAqIGRvbS9Eb2N1
bWVudEZyYWdtZW50LmlkbDogQWRkZWQuICAgICAgICAKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1
bWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaWRsOiBBZGRlZC4K
KyAgICAgICAgCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorICAgICAgICBBZGQgY29u
c3RydWN0b3JzIGZvciBEb2N1bWVudEZyYWdtZW50LCBIVE1MRWxlbWVudCwgSFRNTERvY3VtZW50
IGFuZCBYTUxEb2N1bWVudC4gWE1MRG9jdW1lbnQgaXMganVzdAorICAgICAgICBhbiBhbGlhcyBm
b3IgdGhlIERvY3VtZW50IGNvbnN0cnVjdG9yLgorICAgICAgICAKIDIwMDYtMDUtMTAgIERhdmlk
IENhcnNvbiA8ZGFjYXJzb25AZ21haWwuY29tPgogCiAgICAgICAgIC0gRml4IGZvciBidWcgODgz
My4gUmVtb3ZlZCBpbmxpbmUga2V5d29yZCBmcm9tIGZ1bmN0aW9ucyBkZWNsYXJlZApJbmRleDog
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwJKHJldmlzaW9uIDE0MjgzKQorKysgV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDEyICs0NiwyMCBAQCBtb2R1bGUgd2luZG93IHsKICAg
ICAgICAgYXR0cmlidXRlIENTU1N0eWxlRGVjbGFyYXRpb25Db25zdHJ1Y3RvciBDU1NTdHlsZURl
Y2xhcmF0aW9uOwogICAgICAgICBhdHRyaWJ1dGUgQ1NTVmFsdWVDb25zdHJ1Y3RvciBDU1NWYWx1
ZTsKICAgICAgICAgYXR0cmlidXRlIERvY3VtZW50Q29uc3RydWN0b3IgRG9jdW1lbnQ7CisgICAg
ICAgIGF0dHJpYnV0ZSBEb2N1bWVudEZyYWdtZW50Q29uc3RydWN0b3IgRG9jdW1lbnRGcmFnbWVu
dDsKICAgICAgICAgYXR0cmlidXRlIEVsZW1lbnRDb25zdHJ1Y3RvciBFbGVtZW50OwogICAgICAg
ICBhdHRyaWJ1dGUgRXZlbnRDb25zdHJ1Y3RvciBFdmVudDsKKyAgICAgICAgYXR0cmlidXRlIEhU
TUxFbGVtZW50Q29uc3RydWN0b3IgSFRNTEVsZW1lbnQ7CisgICAgICAgIGF0dHJpYnV0ZSBIVE1M
RG9jdW1lbnRDb25zdHJ1Y3RvciBIVE1MRG9jdW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBNdXRh
dGlvbkV2ZW50Q29uc3RydWN0b3IgTXV0YXRpb25FdmVudDsKICAgICAgICAgYXR0cmlidXRlIE5v
ZGVDb25zdHJ1Y3RvciBOb2RlOwogICAgICAgICBhdHRyaWJ1dGUgTm9kZUZpbHRlckNvbnN0cnVj
dG9yIE5vZGVGaWx0ZXI7CiAgICAgICAgIGF0dHJpYnV0ZSBSYW5nZUNvbnN0cnVjdG9yIFJhbmdl
OworICAgICAgICAKKyAgICAgICAgLy8gTW96aWxsYSBoYXMgYSBzZXBhcmF0ZSBYTUxEb2N1bWVu
dCBvYmplY3QgZm9yIFhNTCBkb2N1bWVudHMuIAorICAgICAgICAvLyBXZSBqdXN0IHVzZSBEb2N1
bWVudCBmb3IgdGhpcy4KKyAgICAgICAgYXR0cmlidXRlIERvY3VtZW50Q29uc3RydWN0b3IgWE1M
RG9jdW1lbnQ7CisKICAgICAgICAgYXR0cmlidXRlIFhQYXRoRXZhbHVhdG9yQ29uc3RydWN0b3Ig
WFBhdGhFdmFsdWF0b3I7CiAgICAgICAgIGF0dHJpYnV0ZSBYUGF0aFJlc3VsdENvbnN0cnVjdG9y
IFhQYXRoUmVzdWx0OwogICAgIH07Cg==
</data>
<flag name="review"
          id="2299"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>