<?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>59178</bug_id>
          
          <creation_ts>2011-04-21 23:36:58 -0700</creation_ts>
          <short_desc>Removed a use of markDOMObjectWrapper: Element and Document</short_desc>
          <delta_ts>2011-04-22 12:57:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>390637</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-21 23:36:58 -0700</bug_when>
    <thetext>Removed a use of markDOMObjectWrapper: Element and Document</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390647</commentid>
    <comment_count>1</comment_count>
      <attachid>90674</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-21 23:49:07 -0700</bug_when>
    <thetext>Created attachment 90674
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390650</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-22 00:12:52 -0700</bug_when>
    <thetext>Attachment 90674 did not build on chromium:
Build output: http://queues.webkit.org/results/8498245</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390672</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-22 01:41:03 -0700</bug_when>
    <thetext>Attachment 90674 did not build on chromium:
Build output: http://queues.webkit.org/results/8497280</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390778</commentid>
    <comment_count>4</comment_count>
      <attachid>90674</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-04-22 08:10:26 -0700</bug_when>
    <thetext>Comment on attachment 90674
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=90674&amp;action=review

&gt; LayoutTests/fast/dom/script-tests/dataset-gc.js:26
&gt;  var dataset = d.dataset;
&gt; +dataset.__proto__.customProperty = 1; // Add a property to our prototype, so it won&apos;t forward to our element.
&gt; +dataset.customProperty = 1; // Now set a property on ourselves.
&gt; +shouldBe(&quot;d.dataset.customProperty&quot;, &quot;1&quot;);
&gt;  
&gt; -// Ensure there is a __proto__ before test.
&gt; -shouldBeNonNull(&quot;d.dataset.__proto__&quot;);
&gt; -
&gt; -// Set __proto__ to non-starting value. (Must be null do to __proto__ restrictions).
&gt; -d.dataset.__proto__ = null;
&gt; -shouldBeNull(&quot;d.dataset.__proto__&quot;);
&gt; -
&gt; -// Null out reference to the dataset. 
&gt;  dataset = null;
&gt;  
&gt;  gc();
&gt;  
&gt; -// Test that the null persisted the GC.
&gt; -shouldBeNull(&quot;d.dataset.__proto__&quot;);
&gt; +// Test that the custom property persisted the GC.
&gt; +shouldBe(&quot;d.dataset.customProperty&quot;, &quot;1&quot;);

If you are going to change this test to not use __proto__, you should ensure/assert that setting dataset.customProperty does not add an attribute to the underlying element by checking for the attribute explicitly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390913</commentid>
    <comment_count>5</comment_count>
      <attachid>90674</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-04-22 11:17:35 -0700</bug_when>
    <thetext>Comment on attachment 90674
Patch

r=me, but fix the test as sam said, and dont break chrome</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390985</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-22 12:57:28 -0700</bug_when>
    <thetext>Committed r84665: &lt;http://trac.webkit.org/changeset/84665&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90674</attachid>
            <date>2011-04-21 23:49:07 -0700</date>
            <delta_ts>2011-04-22 11:17:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59178-20110421234906.patch</filename>
            <type>text/plain</type>
            <size>29750</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0NjA0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjkgQEAKKzIwMTEtMDQtMjEgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGEgdXNlIG9mIG1hcmtET01PYmplY3RXcmFwcGVy
OiBFbGVtZW50IGFuZCBEb2N1bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTkxNzgKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06Cisg
ICAgICAgICogVXNlSlNDLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDogQnVpbGQhCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NSW1wbGVtZW50YXRpb25Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMp
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01JbXBsZW1lbnRhdGlvbk93bmVyOjpmaW5hbGl6ZSk6
CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVyT3duZXIpOgorICAgICAgICAoV2ViQ29yZTo6d3Jh
cHBlckNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IFVzZSB0aGUgb3BhcXVlIHJv
b3RzIHN5c3RlbSBmb3IgRE9NSW1wbGVtZW50YXRpb24uIEFsc28sCisgICAgICAgIERPTUltcGxl
bWVudGF0aW9uIGRvZXMgbm90IG5lZWQgdG8ga2VlcCBpdHMgZG9jdW1lbnQgd3JhcHBlciBhbGl2
ZSwgc2luY2UKKyAgICAgICAgdGhlcmUncyBubyBET00gQVBJIGZvciBnZXR0aW5nIGEgRE9NSW1w
bGVtZW50YXRpb24ncyBkb2N1bWVudC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NU3Ry
aW5nTWFwQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NU3RyaW5nTWFwT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NU3Ry
aW5nTWFwT3duZXI6OmZpbmFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OndyYXBwZXJPd25lcik6
CisgICAgICAgIChXZWJDb3JlOjp3cmFwcGVyQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp0
b0pTKTogVXNlIHRoZSBvcGFxdWUgcm9vdHMgc3lzdGVtIGZvciBET01TdHJpbmdNYXAuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVRva2VuTGlzdEN1c3RvbS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SlNET01Ub2tlbkxpc3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01Ub2tlbkxpc3RPd25lcjo6ZmluYWxpemUp
OgorICAgICAgICAoV2ViQ29yZTo6d3JhcHBlck93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ondy
YXBwZXJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBVc2UgdGhlIG9wYXF1ZSBy
b290cyBzeXN0ZW0gZm9yIERPTVRva2VuTGlzdC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RG9jdW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNEb2N1bWVudDo6dmlzaXRD
aGlsZHJlbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcDogTm8g
bW9yZSBuZWVkIGZvciBleHBsaWNpdCBtYXJraW5nLgorCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG06IEJvbyBvbiB3aG9ldmVyIG1hZGUgdGhpcyBkZXNpZ24g
ZGVjaXNpb24uCisKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OkRPTUltcGxlbWVudGF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlSFRNTERvY3VtZW50KToKKyAgICAg
ICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxl
bWVudGF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246
OnJlZik6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6ZGVyZWYpOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmRvY3VtZW50KTogRml4ZWQgdGhlIERP
TUltcGxlbWVudGF0aW9uCisgICAgICAgIG93bmVyc2hpcCBtb2RlbCB0byBtYXRjaCBvdGhlciBz
YXRlbGxpdGUgb2JqZWN0cyBpbiB0aGUgRE9NLiBUaGlzIHdhcworICAgICAgICBuZWNlc3Nhcnkg
dG8gZml4IHNvbWUgY3Jhc2hlcyBkdWUgdG8gaW5jb3JyZWN0IHJlZmVyZW5jZSBjb3VudGluZy4K
KworICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGw6CisgICAgICAgICogZG9tL0RP
TVN0cmluZ01hcC5pZGw6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgor
ICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgorICAg
ICAgICAqIGRvbS9FbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5pZGw6
IFVwZGF0ZWQgdG8gbWF0Y2ggY2hhbmdlcyBhYm92ZS4KKwogMjAxMS0wNC0yMSAgQmV0aCBEYWtp
biAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVp
bi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gODQ1ODUpCisr
KyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC02
ODUsNiArNjg1LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVBsdWdpbkN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01TdHJpbmdNYXBDdXN0b20uaCBcCisJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01Ub2tlbkxpc3RDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuaCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UJKHJldmlzaW9uIDg0NTg1KQorKysgU291cmNl
L1dlYkNvcmUvVXNlSlNDLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBAIExJ
U1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTRE9NUGx1Z2luQXJy
YXlDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNET01QbHVnaW5DdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvanMvSlNET01TdHJpbmdNYXBDdXN0b20uY3BwCisgICAgYmluZGluZ3MvanMvSlNE
T01Ub2tlbkxpc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pz
L0pTRE9NV2luZG93U2hlbGwuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA4NDU4
NSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMTc0
OCw2ICsxNzQ4LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0RPTVBsdWdpbkN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTWFwQ3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01TdHJpbmdNYXBDdXN0b20uaCcsCisg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01Ub2tlbkxpc3RDdXN0b20uY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmgnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDg0
NTg1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTI2
Myw2ICsyNjMsNyBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NUGx1Z2luQXJyYXlD
dXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNET01QbHVnaW5DdXN0b20uY3BwIFwK
ICAgICAgICAgYmluZGluZ3MvanMvSlNET01TdHJpbmdNYXBDdXN0b20uY3BwIFwKKyAgICAgICAg
YmluZGluZ3MvanMvSlNET01Ub2tlbkxpc3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93
Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwIFwK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShy
ZXZpc2lvbiA4NDU4NSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01OTMyOSw2ICs1OTMyOSw1OCBAQAogCQkJCQk+CiAJ
CQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNc
SlNET01Ub2tlbkxpc3RDdXN0b20uY3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxp
dGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJ
CTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0i
RGVidWdfQWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+
CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgor
CQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
CU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxl
CiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNET01XaW5kb3dCYXNlLmNwcCIK
IAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDg0NTg1KQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMjgsNiArMzI4LDcgQEAKIAkJMTREODI0MDgwQUY5M0FFQjAwMDRGMDU3
IC8qIENocm9tZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTREODI0MDYwQUY5M0FFQjAwMDRGMDU3IC8qIENocm9tZUNsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0REMwRDM3MDlG
RUQwNzMwMDdCMDIzNSAvKiBKU05vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTREQzBEMzUwOUZFRDA3MzAwN0IwMjM1IC8qIEpTTm9kZS5jcHAg
Ki87IH07CiAJCTE0REMwRDM4MDlGRUQwNzMwMDdCMDIzNSAvKiBKU05vZGUuaCBpbiBDb3B5IEdl
bmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0REMw
RDM2MDlGRUQwNzMwMDdCMDIzNSAvKiBKU05vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9ICgpOyB9OyB9OworCQkxNEUwQkM1NjEzNjE0OEE4MDAyQUQxMkUgLyogSlNET01Ub2tlbkxp
c3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTRFMEJDNTUxMzYxNDhBODAwMkFEMTJFIC8qIEpTRE9NVG9rZW5MaXN0Q3VzdG9tLmNwcCAq
LzsgfTsKIAkJMTRFODM3ODQwOUY4NUQxQzAwQjg1QUU0IC8qIEpTRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRFODM3ODMwOUY4NUQxQzAw
Qjg1QUU0IC8qIEpTRXZlbnQuY3BwICovOyB9OwogCQkxNEU4Mzc4RTA5Rjg1RDRGMDBCODVBRTQg
LyogSlNFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTRFODM3OEQwOUY4NUQ0RjAwQjg1QUU0IC8qIEpTRXZlbnQuaCAqLzsgfTsKIAkJMTRGRkUz
MUQwQUUxOTYzMzAwMTM2QkY1IC8qIEhUTUxGcmFtZUVsZW1lbnRCYXNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEZGRTMxQjBBRTE5NjMzMDAxMzZC
RjUgLyogSFRNTEZyYW1lRWxlbWVudEJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjc4Myw2ICs2Nzg0LDcgQEAKIAkJMTREQzBEMEIwOUZF
Q0ZBNDAwN0IwMjM1IC8qIE5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5vZGUuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNERDMEQzNTA5RkVEMDczMDA3QjAyMzUg
LyogSlNOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU05v
ZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNERDMEQzNjA5RkVEMDczMDA3
QjAyMzUgLyogSlNOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU05v
ZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTRFMEJDNTUxMzYxNDhBODAwMkFE
MTJFIC8qIEpTRE9NVG9rZW5MaXN0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTRE9NVG9rZW5MaXN0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMTRFODM2RDIwOUY4NTEyMDAwQjg1QUU0IC8qIEV2ZW50LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTE0RTgzNzgzMDlGODVEMUMwMEI4NUFFNCAvKiBKU0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0V2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMTRFODM3OEQwOUY4NUQ0RjAwQjg1QUU0IC8qIEpTRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE4MTkxLDYgKzE4MTkzLDcgQEAKIAkJCQlFMUMzNkNCQzBFQjA4MDYyMDA3NDEw
QkMgLyogSlNET01HbG9iYWxPYmplY3QuY3BwICovLAogCQkJCUUxQzM2QzAyMEVCMDc2RDYwMDc0
MTBCQyAvKiBKU0RPTUdsb2JhbE9iamVjdC5oICovLAogCQkJCTIyODg1RTYzMTMwMUFFNEMwMDUy
NkU2OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCAqLywKKwkJCQkxNEUwQkM1NTEz
NjE0OEE4MDAyQUQxMkUgLyogSlNET01Ub2tlbkxpc3RDdXN0b20uY3BwICovLAogCQkJCUJDNjkz
MjcxMEQ3RTI5MzkwMEFFNDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuY3BwICovLAogCQkJCUJDNjkz
MjcyMEQ3RTI5MzkwMEFFNDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCAqLywKIAkJCQlCQ0JGQjUz
QTBEQ0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5jcHAgKi8sCkBAIC0yNTc3OCw2
ICsyNTc4MSw3IEBACiAJCQkJNDM1OEU4N0MxMzYwQTJFRTAwRTQ3NDhDIC8qIEpTU1ZHRkVEcm9w
U2hhZG93RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MzU4RTg4MDEzNjBBMzE3MDBF
NDc0OEMgLyogRkVEcm9wU2hhZG93LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQzNThFODg1MTM2
MEEzM0IwMEU0NzQ4QyAvKiBTVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTE0RTBCQzU2MTM2MTQ4QTgwMDJBRDEyRSAvKiBKU0RPTVRva2VuTGlzdEN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmlu
ZGluZ3NBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAkocmV2aXNpb24gODQ1ODUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiSlNET01QbHVnaW5BcnJheUN1c3RvbS5jcHAiCiAj
aW5jbHVkZSAiSlNET01QbHVnaW5DdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRE9NU3RyaW5nTWFw
Q3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU0RPTVRva2VuTGlzdEN1c3RvbS5jcHAiCiAjaW5jbHVk
ZSAiSlNET01XaW5kb3dCYXNlLmNwcCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNET01XaW5kb3dTaGVsbC5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcAko
cmV2aXNpb24gODQ1ODUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUltcGxl
bWVudGF0aW9uQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMTQgKzI5LDQwIEBAIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU0RPTUlt
cGxlbWVudGF0aW9uOjp2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQorY2xhc3Mg
SlNET01JbXBsZW1lbnRhdGlvbk93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYpOworICAgIHZp
cnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0KTsKK307CisKK2Jvb2wgSlNET01JbXBsZW1lbnRhdGlvbk93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIEpTRE9NSW1wbGVtZW50YXRpb24qIGpzRE9NSW1w
bGVtZW50YXRpb24gPSBzdGF0aWNfY2FzdDxKU0RPTUltcGxlbWVudGF0aW9uKj4oaGFuZGxlLmdl
dCgpLmFzQ2VsbCgpKTsKKyAgICBpZiAoIWpzRE9NSW1wbGVtZW50YXRpb24tPmhhc0N1c3RvbVBy
b3BlcnRpZXMoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB2aXNpdG9yLmNv
bnRhaW5zT3BhcXVlUm9vdChqc0RPTUltcGxlbWVudGF0aW9uLT5pbXBsKCktPmRvY3VtZW50KCkp
OworfQorCit2b2lkIEpTRE9NSW1wbGVtZW50YXRpb25Pd25lcjo6ZmluYWxpemUoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCit7CisgICAgSlNET01JbXBs
ZW1lbnRhdGlvbioganNET01JbXBsZW1lbnRhdGlvbiA9IHN0YXRpY19jYXN0PEpTRE9NSW1wbGVt
ZW50YXRpb24qPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIERPTVdyYXBwZXJXb3JsZCog
d29ybGQgPSBzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KTsKKyAgICB1bmNh
Y2hlV3JhcHBlcih3b3JsZCwganNET01JbXBsZW1lbnRhdGlvbi0+aW1wbCgpLCBqc0RPTUltcGxl
bWVudGF0aW9uKTsKK30KKworaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3du
ZXIoRE9NV3JhcHBlcldvcmxkKiwgRE9NSW1wbGVtZW50YXRpb24qKQoreworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoSlNET01JbXBsZW1lbnRhdGlvbk93bmVyLCBqc0RPTUltcGxlbWVudGF0aW9u
T3duZXIsICgpKTsKKyAgICByZXR1cm4gJmpzRE9NSW1wbGVtZW50YXRpb25Pd25lcjsKK30KKwor
aW5saW5lIHZvaWQqIHdyYXBwZXJDb250ZXh0KERPTVdyYXBwZXJXb3JsZCogd29ybGQsIERPTUlt
cGxlbWVudGF0aW9uKikKIHsKLSAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHZpc2l0b3IpOworICAg
IHJldHVybiB3b3JsZDsKK30KIAotICAgIERvY3VtZW50KiBvd25lckRvY3VtZW50ID0gaW1wbCgp
LT5vd25lckRvY3VtZW50KCk7Ci0gICAgaWYgKCFvd25lckRvY3VtZW50KQotICAgICAgICByZXR1
cm47Ci0gICAgdmlzaXRvci5hZGRPcGFxdWVSb290KG93bmVyRG9jdW1lbnQpOworSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIERPTUltcGxlbWVudGF0aW9uKiBpbXBsKQoreworICAgIHJldHVybiB3cmFwPEpTRE9N
SW1wbGVtZW50YXRpb24+KGV4ZWMsIGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTWFwQ3VzdG9tLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3Rv
bS5jcHAJKHJldmlzaW9uIDg0NTg1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01TdHJpbmdNYXBDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMiArMjcsNDUgQEAK
ICNpbmNsdWRlICJKU0RPTVN0cmluZ01hcC5oIgogCiAjaW5jbHVkZSAiRE9NU3RyaW5nTWFwLmgi
CisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTTm9kZS5oIgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK2NsYXNzIEpTRE9NU3RyaW5nTWFwT3duZXIgOiBwdWJsaWMgSlNDOjpX
ZWFrSGFuZGxlT3duZXIgeworICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RW
aXNpdG9yJik7CisgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4sIHZvaWQqIGNvbnRleHQpOworfTsKKworYm9vbCBKU0RPTVN0cmluZ01hcE93bmVyOjpp
c1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRs
ZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIEpTRE9NU3RyaW5nTWFwKiBq
c0RPTVN0cmluZ01hcCA9IHN0YXRpY19jYXN0PEpTRE9NU3RyaW5nTWFwKj4oaGFuZGxlLmdldCgp
LmFzQ2VsbCgpKTsKKyAgICBpZiAoIWpzRE9NU3RyaW5nTWFwLT5oYXNDdXN0b21Qcm9wZXJ0aWVz
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdmlzaXRvci5jb250YWluc09w
YXF1ZVJvb3Qocm9vdChqc0RPTVN0cmluZ01hcC0+aW1wbCgpLT5lbGVtZW50KCkpKTsKK30KKwor
dm9pZCBKU0RPTVN0cmluZ01hcE93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25v
d24+IGhhbmRsZSwgdm9pZCogY29udGV4dCkKK3sKKyAgICBKU0RPTVN0cmluZ01hcCoganNET01T
dHJpbmdNYXAgPSBzdGF0aWNfY2FzdDxKU0RPTVN0cmluZ01hcCo+KGhhbmRsZS5nZXQoKS5hc0Nl
bGwoKSk7CisgICAgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCA9IHN0YXRpY19jYXN0PERPTVdyYXBw
ZXJXb3JsZCo+KGNvbnRleHQpOworICAgIHVuY2FjaGVXcmFwcGVyKHdvcmxkLCBqc0RPTVN0cmlu
Z01hcC0+aW1wbCgpLCBqc0RPTVN0cmluZ01hcCk7Cit9CisKK2lubGluZSBKU0M6OldlYWtIYW5k
bGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCosIERPTVN0cmluZ01hcCopCit7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChKU0RPTVN0cmluZ01hcE93bmVyLCBqc0RPTVN0cmlu
Z01hcE93bmVyLCAoKSk7CisgICAgcmV0dXJuICZqc0RPTVN0cmluZ01hcE93bmVyOworfQorCitp
bmxpbmUgdm9pZCogd3JhcHBlckNvbnRleHQoRE9NV3JhcHBlcldvcmxkKiB3b3JsZCwgRE9NU3Ry
aW5nTWFwKikKK3sKKyAgICByZXR1cm4gd29ybGQ7Cit9CisKIGJvb2wgSlNET01TdHJpbmdNYXA6
OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBET01TdHJpbmdNYXAqIGltcGwsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gaW1wbC0+Y29udGFpbnMo
aWRlbnRpZmllclRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwpAQCAtOTksNCArMTMyLDkg
QEAgYm9vbCBKU0RPTVN0cmluZ01hcDo6cHV0RGVsZWdhdGUoRXhlY1N0YQogICAgIHJldHVybiB0
cnVlOwogfQogCitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NU3RyaW5nTWFwKiBpbXBsKQoreworICAgIHJl
dHVybiB3cmFwPEpTRE9NU3RyaW5nTWFwPihleGVjLCBnbG9iYWxPYmplY3QsIGltcGwpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVRva2VuTGlzdEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01Ub2tlbkxpc3RDdXN0b20uY3BwCShyZXZpc2lvbiAwKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Ub2tlbkxpc3RDdXN0b20uY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkpTRE9NVG9rZW5MaXN0LmgiCisKKyNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKKyNp
bmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiSlNOb2RlLmgiCisKK3VzaW5nIG5hbWVzcGFj
ZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSlNET01Ub2tlbkxpc3RPd25l
ciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25lciB7CisgICAgdmlydHVhbCBib29sIGlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNv
bnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImKTsKKyAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlND
OjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7Cit9OworCitib29sIEpTRE9N
VG9rZW5MaXN0T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAg
SlNET01Ub2tlbkxpc3QqIGpzRE9NVG9rZW5MaXN0ID0gc3RhdGljX2Nhc3Q8SlNET01Ub2tlbkxp
c3QqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIGlmICghanNET01Ub2tlbkxpc3QtPmhh
c0N1c3RvbVByb3BlcnRpZXMoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIEVsZW1lbnQq
IGVsZW1lbnQgPSBqc0RPTVRva2VuTGlzdC0+aW1wbCgpLT5lbGVtZW50KCk7CisgICAgaWYgKCFl
bGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHZpc2l0b3IuY29udGFp
bnNPcGFxdWVSb290KHJvb3QoZWxlbWVudCkpOworfQorCit2b2lkIEpTRE9NVG9rZW5MaXN0T3du
ZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250
ZXh0KQoreworICAgIEpTRE9NVG9rZW5MaXN0KiBqc0RPTVRva2VuTGlzdCA9IHN0YXRpY19jYXN0
PEpTRE9NVG9rZW5MaXN0Kj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBET01XcmFwcGVy
V29ybGQqIHdvcmxkID0gc3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4oY29udGV4dCk7Cisg
ICAgdW5jYWNoZVdyYXBwZXIod29ybGQsIGpzRE9NVG9rZW5MaXN0LT5pbXBsKCksIGpzRE9NVG9r
ZW5MaXN0KTsKK30KKworaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIo
RE9NV3JhcHBlcldvcmxkKiwgRE9NVG9rZW5MaXN0KikKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEpTRE9NVG9rZW5MaXN0T3duZXIsIGpzRE9NVG9rZW5MaXN0T3duZXIsICgpKTsKKyAgICBy
ZXR1cm4gJmpzRE9NVG9rZW5MaXN0T3duZXI7Cit9CisKK2lubGluZSB2b2lkKiB3cmFwcGVyQ29u
dGV4dChET01XcmFwcGVyV29ybGQqIHdvcmxkLCBET01Ub2tlbkxpc3QqKQoreworICAgIHJldHVy
biB3b3JsZDsKK30KKworSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERPTVRva2VuTGlzdCogaW1wbCkKK3sKKyAg
ICByZXR1cm4gd3JhcDxKU0RPTVRva2VuTGlzdD4oZXhlYywgZ2xvYmFsT2JqZWN0LCBpbXBsKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDg0NTg1KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU2LDcgKzU2LDYgQEAgdm9pZCBKU0RvY3VtZW50Ojp2aXNpdENoaWxkcmVuKFNsb3RW
aXNpdAogICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9ICpIZWFwOjpoZWFwKHRoaXMpLT5n
bG9iYWxEYXRhKCk7CiAKICAgICB2aXNpdEFjdGl2ZU9iamVjdHNGb3JDb250ZXh0KHZpc2l0b3Is
IGdsb2JhbERhdGEsIGRvY3VtZW50KTsKLSAgICBtYXJrRE9NT2JqZWN0V3JhcHBlcih2aXNpdG9y
LCBnbG9iYWxEYXRhLCBkb2N1bWVudC0+aW1wbGVtZW50YXRpb24oKSk7CiB9CiAKIEpTVmFsdWUg
SlNEb2N1bWVudDo6bG9jYXRpb24oRXhlY1N0YXRlKiBleGVjKSBjb25zdApJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0VsZW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiA4
NDU4NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3RvbS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUxLDE3ICs1MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotdm9pZCBKU0VsZW1lbnQ6OnZpc2l0Q2hpbGRy
ZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgQmFzZTo6dmlzaXRDaGlsZHJlbih2aXNp
dG9yKTsKLQotICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBpbXBsKCk7Ci0gICAgSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhID0gKkhlYXA6OmhlYXAodGhpcyktPmdsb2JhbERhdGEoKTsKLQotICAgIG1h
cmtET01PYmplY3RXcmFwcGVyKHZpc2l0b3IsIGdsb2JhbERhdGEsIGVsZW1lbnQtPm9wdGlvbmFs
Q2xhc3NMaXN0KCkpOwotICAgIG1hcmtET01PYmplY3RXcmFwcGVyKHZpc2l0b3IsIGdsb2JhbERh
dGEsIGVsZW1lbnQtPm9wdGlvbmFsRGF0YXNldCgpKTsKLX0KLQogSlNWYWx1ZSB0b0pTTmV3bHlD
cmVhdGVkKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RWxlbWVudCogZWxlbWVudCkKIHsKICAgICBpZiAoIWVsZW1lbnQpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkocmV2aXNp
b24gODQ1ODUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQkod29ya2luZyBjb3B5KQpAQCAtMjU1Nyw2ICsyNTU3LDkgQEAgc3ViIEhhc0N1c3Rv
bVRvVjhJbXBsZW1lbnRhdGlvbiB7CiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZU5hbWUgZXEg
IkNTU1N0eWxlRGVjbGFyYXRpb24iOwogICAgIHJldHVybiAwIGlmICRpbnRlcmZhY2VOYW1lIGVx
ICJNZWRpYUxpc3QiOwogICAgIHJldHVybiAwIGlmICRpbnRlcmZhY2VOYW1lIGVxICJTdHlsZVNo
ZWV0TGlzdCI7CisgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZU5hbWUgZXEgIkRPTUltcGxlbWVu
dGF0aW9uIjsKKyAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiRE9NU3RyaW5nTWFw
IjsKKyAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiRE9NVG9rZW5MaXN0IjsKIAog
ICAgICMgRm9yIGV2ZXJ5dGhpbmcgZWxzZSwgZG8gd2hhdCBKU0MgZG9lcy4KICAgICByZXR1cm4g
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tVG9KUyJ9OwpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCShyZXZpc2lvbiA4NDU4NSkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE3MSwxMCArMTcxLDkgQEAgc3RhdGljIGJvb2wgaXNTVkcxMUZlYXR1cmUoY29uc3QgU3Ry
aW5nIAogfQogI2VuZGlmCiAKLURPTUltcGxlbWVudGF0aW9uOjpET01JbXBsZW1lbnRhdGlvbihE
b2N1bWVudCogb3duZXJEb2N1bWVudCkKLSAgICA6IG1fb3duZXJEb2N1bWVudChvd25lckRvY3Vt
ZW50KQorRE9NSW1wbGVtZW50YXRpb246OkRPTUltcGxlbWVudGF0aW9uKERvY3VtZW50KiBkb2N1
bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCiB7Ci0gICAgQVNTRVJUKG1fb3duZXJE
b2N1bWVudCk7CiB9CiAKIGJvb2wgRE9NSW1wbGVtZW50YXRpb246Omhhc0ZlYXR1cmUoY29uc3Qg
U3RyaW5nJiBmZWF0dXJlLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pCkBAIC0yNDYsMTEgKzI0NSw3
IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjoKICAgICBlbHNlCiAg
ICAgICAgIGRvYyA9IERvY3VtZW50OjpjcmVhdGUoMCwgS1VSTCgpKTsKIAotICAgIGlmICghbV9v
d25lckRvY3VtZW50KSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAg
IHJldHVybiAwOwotICAgIH0KLSAgICBkb2MtPnNldFNlY3VyaXR5T3JpZ2luKG1fb3duZXJEb2N1
bWVudC0+c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgZG9jLT5zZXRTZWN1cml0eU9yaWdpbihtX2Rv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpKTsKIAogICAgIFJlZlB0cjxOb2RlPiBkb2N1bWVudEVs
ZW1lbnQ7CiAgICAgaWYgKCFxdWFsaWZpZWROYW1lLmlzRW1wdHkoKSkgewpAQCAtMzEzLDkgKzMw
OCw3IEBAIFBhc3NSZWZQdHI8SFRNTERvY3VtZW50PiBET01JbXBsZW1lbnRhdGkKICAgICBkLT5v
cGVuKCk7CiAgICAgZC0+d3JpdGUoIjwhZG9jdHlwZSBodG1sPjxodG1sPjxib2R5PjwvYm9keT48
L2h0bWw+Iik7CiAgICAgZC0+c2V0VGl0bGUodGl0bGUpOwotICAgIEFTU0VSVChtX293bmVyRG9j
dW1lbnQpOwotICAgIGlmIChtX293bmVyRG9jdW1lbnQpCi0gICAgICAgIGQtPnNldFNlY3VyaXR5
T3JpZ2luKG1fb3duZXJEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgZC0+c2V0U2Vj
dXJpdHlPcmlnaW4obV9kb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSk7CiAgICAgcmV0dXJuIGQu
cmVsZWFzZSgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRp
b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24u
aAkocmV2aXNpb24gODQ1ODUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRp
b24uaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2lmbmRlZiBET01JbXBsZW1l
bnRhdGlvbl9oCiAjZGVmaW5lIERPTUltcGxlbWVudGF0aW9uX2gKIAorI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC0zOSw5ICs0MCwxMyBAQCBjbGFz
cyBLVVJMOwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCi1jbGFzcyBET01JbXBsZW1l
bnRhdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUltcGxlbWVudGF0aW9uPiB7CitjbGFzcyBE
T01JbXBsZW1lbnRhdGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NSW1w
bGVtZW50YXRpb24+IGNyZWF0ZShEb2N1bWVudCogb3duZXJEb2N1bWVudCkgeyByZXR1cm4gYWRv
cHRSZWYobmV3IERPTUltcGxlbWVudGF0aW9uKG93bmVyRG9jdW1lbnQpKTsgfQorICAgIHN0YXRp
YyBQYXNzT3duUHRyPERPTUltcGxlbWVudGF0aW9uPiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
KSB7IHJldHVybiBhZG9wdFB0cihuZXcgRE9NSW1wbGVtZW50YXRpb24oZG9jdW1lbnQpKTsgfQor
ICAgIAorICAgIHZvaWQgcmVmKCkgeyBtX2RvY3VtZW50LT5yZWYoKTsgfQorICAgIHZvaWQgZGVy
ZWYoKSB7IG1fZG9jdW1lbnQtPmRlcmVmKCk7IH0KKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKSB7
IHJldHVybiBtX2RvY3VtZW50OyB9CiAKICAgICAvLyBET00gbWV0aG9kcyAmIGF0dHJpYnV0ZXMg
Zm9yIERPTUltcGxlbWVudGF0aW9uCiAgICAgc3RhdGljIGJvb2wgaGFzRmVhdHVyZShjb25zdCBT
dHJpbmcmIGZlYXR1cmUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7CkBAIC02MiwxNSArNjcsMTIg
QEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlzWE1MTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBN
SU1FVHlwZSk7CiAgICAgc3RhdGljIGJvb2wgaXNUZXh0TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBN
SU1FVHlwZSk7CiAKLSAgICBEb2N1bWVudCogb3duZXJEb2N1bWVudCgpIHsgcmV0dXJuIG1fb3du
ZXJEb2N1bWVudDsgfQotICAgIHZvaWQgb3duZXJEb2N1bWVudERlc3Ryb3llZCgpIHsgbV9vd25l
ckRvY3VtZW50ID0gMDsgfQotCiBwcml2YXRlOgotICAgIERPTUltcGxlbWVudGF0aW9uKERvY3Vt
ZW50KiBvd25lckRvY3VtZW50KTsKKyAgICBET01JbXBsZW1lbnRhdGlvbihEb2N1bWVudCopOwog
Ci0gICAgRG9jdW1lbnQqIG1fb3duZXJEb2N1bWVudDsKKyAgICBEb2N1bWVudCogbV9kb2N1bWVu
dDsKIH07CiAKLX0gLy9uYW1lc3BhY2UKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGwJKHJldmlzaW9u
IDg0NTg1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQAogbW9kdWxlIGNvcmUgewogCiAgICAgaW50ZXJm
YWNlIFsKLSAgICAgICAgQ3VzdG9tTWFya0Z1bmN0aW9uCisgICAgICAgIEN1c3RvbVRvSlMKICAg
ICBdIERPTUltcGxlbWVudGF0aW9uIHsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMQpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmluZ01hcC5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvZG9tL0RPTVN0cmluZ01hcC5pZGwJKHJldmlzaW9uIDg0NTg1KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0RPTVN0cmluZ01hcC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2
LDcgQEAKIG1vZHVsZSBjb3JlIHsKIAogICAgIGludGVyZmFjZSBbCisgICAgICAgIEN1c3RvbVRv
SlMsCiAgICAgICAgIEhhc05hbWVHZXR0ZXIsCiAgICAgICAgIEN1c3RvbURlbGV0ZVByb3BlcnR5
LAogICAgICAgICBDdXN0b21HZXRQcm9wZXJ0eU5hbWVzLApJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCShyZXZpc2lvbiA4NDU4NSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU1OCw5ICs1NTgsNiBAQCBEb2N1bWVudDo6fkRvY3VtZW50
KCkKIAogICAgIGlmIChtX21lZGlhUXVlcnlNYXRjaGVyKQogICAgICAgICBtX21lZGlhUXVlcnlN
YXRjaGVyLT5kb2N1bWVudERlc3Ryb3llZCgpOwotCi0gICAgaWYgKG1faW1wbGVtZW50YXRpb24p
Ci0gICAgICAgIG1faW1wbGVtZW50YXRpb24tPm93bmVyRG9jdW1lbnREZXN0cm95ZWQoKTsKIH0K
IAogdm9pZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYoKQpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgJKHJldmlzaW9uIDg0NTg1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTExNjUsNyArMTE2NSw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1f
YmFzZVRhcmdldDsKIAogICAgIFJlZlB0cjxEb2N1bWVudFR5cGU+IG1fZG9jVHlwZTsKLSAgICBt
dXRhYmxlIFJlZlB0cjxET01JbXBsZW1lbnRhdGlvbj4gbV9pbXBsZW1lbnRhdGlvbjsKKyAgICBP
d25QdHI8RE9NSW1wbGVtZW50YXRpb24+IG1faW1wbGVtZW50YXRpb247CiAKICAgICAvLyBUcmFj
ayB0aGUgbnVtYmVyIG9mIGN1cnJlbnRseSBsb2FkaW5nIHRvcC1sZXZlbCBzdHlsZXNoZWV0cyBu
ZWVkZWQgZm9yIHJlbmRlcmluZy4KICAgICAvLyBTaGVldHMgbG9hZGVkIHVzaW5nIHRoZSBAaW1w
b3J0IGRpcmVjdGl2ZSBhcmUgbm90IGluY2x1ZGVkIGluIHRoaXMgY291bnQuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiA4NDU4NSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTgxOSwxMyArMTgxOSw2IEBAIERPTVN0cmlu
Z01hcCogRWxlbWVudDo6ZGF0YXNldCgpCiAgICAgcmV0dXJuIGRhdGEtPm1fZGF0YXNldERPTVN0
cmluZ01hcC5nZXQoKTsKIH0KIAotRE9NU3RyaW5nTWFwKiBFbGVtZW50OjpvcHRpb25hbERhdGFz
ZXQoKSBjb25zdAotewotICAgIGlmICghaGFzUmFyZURhdGEoKSkKLSAgICAgICAgcmV0dXJuIDA7
Ci0gICAgcmV0dXJuIHJhcmVEYXRhKCktPm1fZGF0YXNldERPTVN0cmluZ01hcC5nZXQoKTsKLX0K
LQogS1VSTCBFbGVtZW50OjpnZXRVUkxBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSkgY29uc3QKIHsKICNpZiAhQVNTRVJUX0RJU0FCTEVECkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJ
KHJldmlzaW9uIDg0NTg1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjk3LDcgKzI5Nyw2IEBAIHB1YmxpYzoKICAgICBET01Ub2tlbkxpc3QqIG9w
dGlvbmFsQ2xhc3NMaXN0KCkgY29uc3Q7CiAKICAgICBET01TdHJpbmdNYXAqIGRhdGFzZXQoKTsK
LSAgICBET01TdHJpbmdNYXAqIG9wdGlvbmFsRGF0YXNldCgpIGNvbnN0OwogCiAjaWYgRU5BQkxF
KE1BVEhNTCkKICAgICB2aXJ0dWFsIGJvb2wgaXNNYXRoTUxFbGVtZW50KCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwJKHJldmlzaW9uIDg0NTg1KQor
KysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw3
ICsyMSw2IEBACiBtb2R1bGUgY29yZSB7CiAKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBDdXN0
b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVydGVyLAogICAgICAg
ICBJbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QKICAgICBdIEVsZW1lbnQgOiBOb2RlIHsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5pZGwJKHJldmlzaW9uIDg0NTg1KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2
ICsyNSw3IEBACiBtb2R1bGUgY29yZSB7CiAKICAgICBpbnRlcmZhY2UgWworICAgICAgICBDdXN0
b21Ub0pTLAogICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yLAogICAgICAgICBIYXNJbmRleEdl
dHRlcgogICAgIF0gRE9NVG9rZW5MaXN0IHsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0NjA1KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTEtMDQtMjEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIGEgdXNlIG9mIG1h
cmtET01PYmplY3RXcmFwcGVyOiBFbGVtZW50IGFuZCBEb2N1bWVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxNzgKKworICAgICAgICAqIGZhc3Qv
ZG9tL2RhdGFzZXQtZ2MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL3NjcmlwdC10
ZXN0cy9kYXRhc2V0LWdjLmpzOiBDaGFuZ2VkIHRoaXMgdGVzdCBub3QgdG8gYmUKKyAgICAgICAg
c3BlY2lmaWMgdG8gX19wcm90b19fLiBXZSBoYXZlIGEgZ2VuZXJhbCBidWcgaW4gdGhlIERPTSB0
aGF0IGFzc2lnbm1lbnQKKyAgICAgICAgdG8gX19wcm90b19fIGRvZXMgbm90IHBlcnNpc3QgYWZ0
ZXIgZ2FyYmFnZSBjb2xsZWN0aW9uLiBXaGlsZSB3ZSBzaG91bGQKKyAgICAgICAgZml4IHRoYXQg
YnVnLCB3ZSBkb24ndCB3YW50IGV4aXN0aW5nIHRlc3RzIHRvIHRpY2tsZSBpdCwgYmVjYXVzZSBp
dCBtYWtlcworICAgICAgICB0aGVtIGZsYWt5LgorCiAyMDExLTA0LTIxICBCZXRoIERha2luICA8
YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vZGF0YXNldC1nYy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vZGF0YXNldC1nYy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDg0NTg1KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vZGF0YXNldC1nYy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsOSArMyw4IEBAIFRoaXMgdGVzdHMgdGhhdCBjdXN0
b20gcHJvcGVydGllcyBvbiBlbGUKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNT
IGQuZGF0YXNldC5fX3Byb3RvX18gaXMgbm9uLW51bGwuCi1QQVNTIGQuZGF0YXNldC5fX3Byb3Rv
X18gaXMgbnVsbAotUEFTUyBkLmRhdGFzZXQuX19wcm90b19fIGlzIG51bGwKK1BBU1MgZC5kYXRh
c2V0LmN1c3RvbVByb3BlcnR5IGlzIDEKK1BBU1MgZC5kYXRhc2V0LmN1c3RvbVByb3BlcnR5IGlz
IDEKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL2RhdGFzZXQtZ2MuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL2RhdGFzZXQtZ2MuanMJ
KHJldmlzaW9uIDg0NTg1KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL2Rh
dGFzZXQtZ2MuanMJKHdvcmtpbmcgY29weSkKQEAgLTEzLDIyICsxMywxNiBAQCBmdW5jdGlvbiBn
YygpCiAKIHZhciBkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAKLS8vIEVuc3Vy
ZSB0aGUgZGF0YXNldCBpcyBjcmVhdGVkLgogdmFyIGRhdGFzZXQgPSBkLmRhdGFzZXQ7CitkYXRh
c2V0Ll9fcHJvdG9fXy5jdXN0b21Qcm9wZXJ0eSA9IDE7IC8vIEFkZCBhIHByb3BlcnR5IHRvIG91
ciBwcm90b3R5cGUsIHNvIGl0IHdvbid0IGZvcndhcmQgdG8gb3VyIGVsZW1lbnQuCitkYXRhc2V0
LmN1c3RvbVByb3BlcnR5ID0gMTsgLy8gTm93IHNldCBhIHByb3BlcnR5IG9uIG91cnNlbHZlcy4K
K3Nob3VsZEJlKCJkLmRhdGFzZXQuY3VzdG9tUHJvcGVydHkiLCAiMSIpOwogCi0vLyBFbnN1cmUg
dGhlcmUgaXMgYSBfX3Byb3RvX18gYmVmb3JlIHRlc3QuCi1zaG91bGRCZU5vbk51bGwoImQuZGF0
YXNldC5fX3Byb3RvX18iKTsKLQotLy8gU2V0IF9fcHJvdG9fXyB0byBub24tc3RhcnRpbmcgdmFs
dWUuIChNdXN0IGJlIG51bGwgZG8gdG8gX19wcm90b19fIHJlc3RyaWN0aW9ucykuCi1kLmRhdGFz
ZXQuX19wcm90b19fID0gbnVsbDsKLXNob3VsZEJlTnVsbCgiZC5kYXRhc2V0Ll9fcHJvdG9fXyIp
OwotCi0vLyBOdWxsIG91dCByZWZlcmVuY2UgdG8gdGhlIGRhdGFzZXQuIAogZGF0YXNldCA9IG51
bGw7CiAKIGdjKCk7CiAKLS8vIFRlc3QgdGhhdCB0aGUgbnVsbCBwZXJzaXN0ZWQgdGhlIEdDLgot
c2hvdWxkQmVOdWxsKCJkLmRhdGFzZXQuX19wcm90b19fIik7CisvLyBUZXN0IHRoYXQgdGhlIGN1
c3RvbSBwcm9wZXJ0eSBwZXJzaXN0ZWQgdGhlIEdDLgorc2hvdWxkQmUoImQuZGF0YXNldC5jdXN0
b21Qcm9wZXJ0eSIsICIxIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>
<flag name="review"
          id="83431"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>