<?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>85561</bug_id>
          
          <creation_ts>2012-05-03 17:43:55 -0700</creation_ts>
          <short_desc>CSP should let sites both enforce one policy and monitor another</short_desc>
          <delta_ts>2012-05-06 17:52:56 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>53572</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>mkwst</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>615837</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-03 17:43:55 -0700</bug_when>
    <thetext>This is to help sites test out a new policy while they already have a policy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616713</commentid>
    <comment_count>1</comment_count>
      <attachid>140338</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-04 15:15:13 -0700</bug_when>
    <thetext>Created attachment 140338
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616730</commentid>
    <comment_count>2</comment_count>
      <attachid>140338</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-04 15:35:16 -0700</bug_when>
    <thetext>Comment on attachment 140338
Patch

Attachment 140338 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12633291</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616775</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-04 16:10:24 -0700</bug_when>
    <thetext>I think the mac build failure isn&apos;t real.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616778</commentid>
    <comment_count>4</comment_count>
      <attachid>140338</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-04 16:11:21 -0700</bug_when>
    <thetext>Comment on attachment 140338
Patch

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

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:921
&gt; +    for (PolicyList::const_iterator iter = m_policies.begin(); iter != m_policies.end(); ++iter) {
&gt; +        if (!(*iter)-&gt;allowJavaScriptURLs())
&gt; +            return false;
&gt; +    }
&gt; +    return true;

Really?  Can&apos;t a helper or templates save us here?  Some sort of function pointer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616781</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-04 16:15:45 -0700</bug_when>
    <thetext>&gt; Really?  Can&apos;t a helper or templates save us here?  Some sort of function pointer?

We can do it with macros, but that&apos;s pretty ugly.  There might be a way to do it with templates...  Do you know how?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616841</commentid>
    <comment_count>6</comment_count>
      <attachid>140338</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-05-04 17:58:18 -0700</bug_when>
    <thetext>Comment on attachment 140338
Patch

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

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:892
&gt; +    for (PolicyList::const_iterator iter = other-&gt;m_policies.begin(); iter != other-&gt;m_policies.end(); ++iter)
&gt; +        didReceiveHeader((*iter)-&gt;header(), (*iter)-&gt;headerType());

Our usual name for this is “it” rather than “iter” although I don’t think either is great.

Normally we iterate a vector using indices rather than iterators, and use iterators only for compatibility with generic algorithms.

&gt;&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:921
&gt;&gt; +    return true;
&gt; 
&gt; Really?  Can&apos;t a helper or templates save us here?  Some sort of function pointer?

I think we can do this cleanly with a template.

&gt; Source/WebCore/page/ContentSecurityPolicy.h:57
&gt; +    // FIXME: These functions are wrong becuase they assume that there is only one header.

What’s the plan for those clients?

&gt; Source/WebCore/page/ContentSecurityPolicy.h:79
&gt; +    typedef Vector&lt;OwnPtr&lt;CSPDirectiveList&gt; &gt; PolicyList;

PolicyVector? Unless the term list is a term of art here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616856</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-04 18:37:53 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 140338 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=140338&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/ContentSecurityPolicy.h:57
&gt; &gt; +    // FIXME: These functions are wrong becuase they assume that there is only one header.
&gt; 
&gt; What’s the plan for those clients?

I&apos;m going to change these functions to return a vector.  There&apos;s some amount of plumbing involved, which is why I&apos;m saving it for a future patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617154</commentid>
    <comment_count>8</comment_count>
      <attachid>140338</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-06 13:49:31 -0700</bug_when>
    <thetext>Comment on attachment 140338
Patch

/me will attempt to templatize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617184</commentid>
    <comment_count>9</comment_count>
      <attachid>140438</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-06 15:06:09 -0700</bug_when>
    <thetext>Created attachment 140438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617210</commentid>
    <comment_count>10</comment_count>
      <attachid>140443</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-06 16:15:41 -0700</bug_when>
    <thetext>Created attachment 140443
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617211</commentid>
    <comment_count>11</comment_count>
      <attachid>140443</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-06 16:18:24 -0700</bug_when>
    <thetext>Comment on attachment 140443
Patch

Infinitely better.  THank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617243</commentid>
    <comment_count>12</comment_count>
      <attachid>140443</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-06 17:52:51 -0700</bug_when>
    <thetext>Comment on attachment 140443
Patch

Clearing flags on attachment: 140443

Committed r116254: &lt;http://trac.webkit.org/changeset/116254&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617244</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-06 17:52:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140338</attachid>
            <date>2012-05-04 15:15:13 -0700</date>
            <delta_ts>2012-05-06 15:06:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85561-20120504151512.patch</filename>
            <type>text/plain</type>
            <size>21400</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjYwZThhMzUyYTUxYWU3
NWE5OWY3ZWMzYjdiZDRhMWI2YmI2YzI3Zi4uMDQwZTYzN2EzNjVkNmQ5ODZiNDYyNzc1NTNjNzZh
MjJhZWFkOWQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA1LTA0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1NQIHNob3VsZCBsZXQgc2l0
ZXMgYm90aCBlbmZvcmNlIG9uZSBwb2xpY3kgYW5kIG1vbml0b3IgYW5vdGhlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU1NjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGxldHMgdXMg
ZW5mb3JjZSBhbmQvb3IgbW9uaXRvciBtdWx0aXBsZSBDU1AgcG9saWNpZXMuCisgICAgICAgIFJh
dGhlciB0aGFuIGhhdmluZyBhIHNpbmdsZSBkaXJlY3RpdmUgbGlzdCwgd2Ugbm93IGhhdmUgYSB2
ZWN0b3Igb2YKKyAgICAgICAgZGlyZWN0aXZlIGxpc3RzLgorCisgICAgICAgIFRlc3RzOiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9jb21iaW5lLW11bHRpcGxlLXBv
bGljaWVzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L3JlcG9ydC1hbmQtZW5mb3JjZS5odG1sCisKKyAgICAgICAgKiBwYWdlL0Nv
bnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJp
dHlQb2xpY3k6OmNvcHlTdGF0ZUZyb20pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3Vy
aXR5UG9saWN5OjpkaWRSZWNlaXZlSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRT
ZWN1cml0eVBvbGljeTo6ZGVwcmVjYXRlZEhlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50U2VjdXJpdHlQb2xpY3k6OmRlcHJlY2F0ZWRIZWFkZXJUeXBlKToKKyAgICAgICAgICAgIC0g
RXZlbiBhZnRlciB0aGlzIHBhdGNoLCB3b3JrZXJzIGFyZW4ndCBzbWFydCBlbm91Z2ggdG8gZW5m
b3JjZQorICAgICAgICAgICAgICBtdWx0aXBsZSBwb2xpY2llcy4gIFRoZXkganVzdCB1c2UgdGhl
IGZpcnN0IGhlYWRlciwgbGlrZSB0aGV5IGRpZAorICAgICAgICAgICAgICBiZWZvcmUuICBXZSds
bCBuZWVkIHRvIHRlYWNoIHdvcmtlcnMgaG93IHRvIGVuZm9yY2UgbXVsdGlwbGUKKyAgICAgICAg
ICAgICAgcG9saWNpZXMgaW4gYSBmdXR1cmUgcGF0Y2guCisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SmF2YVNjcmlwdFVSTHMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZUV2ZW50SGFuZGxlcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZVNjcmlwdCk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SW5saW5lU3R5
bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0V2YWwp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd1NjcmlwdEZy
b21Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxv
d09iamVjdEZyb21Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9s
aWN5OjphbGxvd0NoaWxkRnJhbWVGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRTZWN1cml0eVBvbGljeTo6YWxsb3dJbWFnZUZyb21Tb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd1N0eWxlRnJvbVNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93Rm9udEZyb21Tb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd01lZGlhRnJvbVNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93Q29u
bmVjdEZyb21Tb3VyY2UpOgorICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5Lmg6
CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVk
KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckNvbnRleHQpOgorCiAy
MDEyLTA1LTA0ICBEYXZpZCBUc2VuZyAgPGR0c2VuZ0Bnb29nbGUuY29tPgogCiAgICAgICAgIENo
cm9taXVtIHNob3VsZCBpbmNsdWRlIE1lbnVMaXN0UG9wdXBzJyBhbmQgTWVudUxpc3RPcHRpb25z
JyB3aXRoaW4gdGhlIGF4IHRyZWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGRkYmUw
MGZiZmQzYTM5YjJkNzMzYmFkZTEyMDgxMzE0ZGY5ZDJmNjcuLjA0NzNmNWVmOWM5YjA1MzE2Y2Zl
OWNkMzkzMDYyMGE2ZTM4NThmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTItMDUtMDQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBDU1Agc2hvdWxkIGxldCBzaXRlcyBib3RoIGVuZm9yY2Ugb25lIHBvbGljeSBhbmQg
bW9uaXRvciBhbm90aGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NTU2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3JjL1NoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICog
c3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJD
bGllbnRJbXBsOjpzdGFydFdvcmtlckNvbnRleHQpOgorCiAyMDEyLTA1LTA0ICBOYXRlIENoYXBp
biAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRG9uJ3QgcmVxdWlyZSBGcmFtZUxv
YWRlckNsaWVudCB0byBtYW51ZmFjdHVyZSBhIGNvbW1pdERhdGEoKSBjYWxsIGZvciBlbXB0eSBk
b2N1bWVudHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0
eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5j
cHAKaW5kZXggNjAzZTE4Zjg3Y2NkMDVjNjQ2ODFmOGI4NzE3ZWNiMTBhZjY0ODAzYS4uMjY3ZTZk
ZGY4MGU4NTRiNjBhZDBjMTk3OTQ3NTU1NzY4OWRlZWE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtODg3LDE2ICs4ODcsMTQgQEAgQ29u
dGVudFNlY3VyaXR5UG9saWN5Ojp+Q29udGVudFNlY3VyaXR5UG9saWN5KCkKIAogdm9pZCBDb250
ZW50U2VjdXJpdHlQb2xpY3k6OmNvcHlTdGF0ZUZyb20oY29uc3QgQ29udGVudFNlY3VyaXR5UG9s
aWN5KiBvdGhlcikgCiB7Ci0gICAgQVNTRVJUKCFtX3BvbGljeSk7Ci0gICAgaWYgKG90aGVyLT5t
X3BvbGljeSkKLSAgICAgICAgZGlkUmVjZWl2ZUhlYWRlcihvdGhlci0+aGVhZGVyKCksIG90aGVy
LT5oZWFkZXJUeXBlKCkpOworICAgIEFTU0VSVChtX3BvbGljaWVzLmlzRW1wdHkoKSk7CisgICAg
Zm9yIChQb2xpY3lMaXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gb3RoZXItPm1fcG9saWNpZXMu
YmVnaW4oKTsgaXRlciAhPSBvdGhlci0+bV9wb2xpY2llcy5lbmQoKTsgKytpdGVyKQorICAgICAg
ICBkaWRSZWNlaXZlSGVhZGVyKCgqaXRlciktPmhlYWRlcigpLCAoKml0ZXIpLT5oZWFkZXJUeXBl
KCkpOwogfQogCiB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2ZUhlYWRlcihj
b25zdCBTdHJpbmcmIGhlYWRlciwgSGVhZGVyVHlwZSB0eXBlKQogewotICAgIGlmIChtX3BvbGlj
eSkKLSAgICAgICAgcmV0dXJuOyAvLyBUaGUgZmlyc3QgcG9saWN5IHdpbnMuCi0gICAgbV9wb2xp
Y3kgPSBDU1BEaXJlY3RpdmVMaXN0OjpjcmVhdGUobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LCBo
ZWFkZXIsIHR5cGUpOworICAgIG1fcG9saWNpZXMuYXBwZW5kKENTUERpcmVjdGl2ZUxpc3Q6OmNy
ZWF0ZShtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGhlYWRlciwgdHlwZSkpOwogfQogCiB2b2lk
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6c2V0T3ZlcnJpZGVBbGxvd0lubGluZVN0eWxlKGJvb2wg
dmFsdWUpCkBAIC05MDQsNzkgKzkwMiwxMzMgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OnNldE92ZXJyaWRlQWxsb3dJbmxpbmVTdHlsZShib29sIHZhbHVlKQogICAgIG1fb3ZlcnJpZGVJ
bmxpbmVTdHlsZUFsbG93ZWQgPSB2YWx1ZTsKIH0KIAotY29uc3QgU3RyaW5nJiBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OmhlYWRlcigpIGNvbnN0Citjb25zdCBTdHJpbmcmIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6ZGVwcmVjYXRlZEhlYWRlcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcG9saWN5
ID8gbV9wb2xpY3ktPmhlYWRlcigpIDogZW1wdHlTdHJpbmcoKTsKKyAgICByZXR1cm4gbV9wb2xp
Y2llcy5pc0VtcHR5KCkgPyBlbXB0eVN0cmluZygpIDogbV9wb2xpY2llc1swXS0+aGVhZGVyKCk7
CiB9CiAKLUNvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OmhlYWRlclR5cGUoKSBjb25zdAorQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJU
eXBlIENvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGVwcmVjYXRlZEhlYWRlclR5cGUoKSBjb25zdAog
ewotICAgIHJldHVybiBtX3BvbGljeSA/IG1fcG9saWN5LT5oZWFkZXJUeXBlKCkgOiBFbmZvcmNl
UG9saWN5OworICAgIHJldHVybiBtX3BvbGljaWVzLmlzRW1wdHkoKSA/IEVuZm9yY2VQb2xpY3kg
OiBtX3BvbGljaWVzWzBdLT5oZWFkZXJUeXBlKCk7CiB9CiAKIGJvb2wgQ29udGVudFNlY3VyaXR5
UG9saWN5OjphbGxvd0phdmFTY3JpcHRVUkxzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gIW1fcG9s
aWN5IHx8IG1fcG9saWN5LT5hbGxvd0phdmFTY3JpcHRVUkxzKCk7CisgICAgZm9yIChQb2xpY3lM
aXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbV9wb2xpY2llcy5iZWdpbigpOyBpdGVyICE9IG1f
cG9saWNpZXMuZW5kKCk7ICsraXRlcikgeworICAgICAgICBpZiAoISgqaXRlciktPmFsbG93SmF2
YVNjcmlwdFVSTHMoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0
dXJuIHRydWU7CiB9CiAKIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZUV2
ZW50SGFuZGxlcnMoKSBjb25zdAogewotICAgIHJldHVybiAhbV9wb2xpY3kgfHwgbV9wb2xpY3kt
PmFsbG93SW5saW5lRXZlbnRIYW5kbGVycygpOworICAgIGZvciAoUG9saWN5TGlzdDo6Y29uc3Rf
aXRlcmF0b3IgaXRlciA9IG1fcG9saWNpZXMuYmVnaW4oKTsgaXRlciAhPSBtX3BvbGljaWVzLmVu
ZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgaWYgKCEoKml0ZXIpLT5hbGxvd0lubGluZUV2ZW50SGFu
ZGxlcnMoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRy
dWU7CiB9CiAKIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZVNjcmlwdCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuICFtX3BvbGljeSB8fCBtX3BvbGljeS0+YWxsb3dJbmxpbmVT
Y3JpcHQoKTsKKyAgICBmb3IgKFBvbGljeUxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBtX3Bv
bGljaWVzLmJlZ2luKCk7IGl0ZXIgIT0gbV9wb2xpY2llcy5lbmQoKTsgKytpdGVyKSB7CisgICAg
ICAgIGlmICghKCppdGVyKS0+YWxsb3dJbmxpbmVTY3JpcHQoKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgQ29udGVudFNlY3Vy
aXR5UG9saWN5OjphbGxvd0lubGluZVN0eWxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gIW1fcG9s
aWN5IHx8IG1fb3ZlcnJpZGVJbmxpbmVTdHlsZUFsbG93ZWQgfHwgbV9wb2xpY3ktPmFsbG93SW5s
aW5lU3R5bGUoKTsKKyAgICBpZiAobV9vdmVycmlkZUlubGluZVN0eWxlQWxsb3dlZCkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgZm9yIChQb2xpY3lMaXN0Ojpjb25zdF9pdGVyYXRvciBpdGVy
ID0gbV9wb2xpY2llcy5iZWdpbigpOyBpdGVyICE9IG1fcG9saWNpZXMuZW5kKCk7ICsraXRlcikg
eworICAgICAgICBpZiAoISgqaXRlciktPmFsbG93SW5saW5lU3R5bGUoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjphbGxvd0V2YWwoKSBjb25zdAogewotICAgIHJldHVybiAhbV9wb2xp
Y3kgfHwgbV9wb2xpY3ktPmFsbG93RXZhbCgpOworICAgIGZvciAoUG9saWN5TGlzdDo6Y29uc3Rf
aXRlcmF0b3IgaXRlciA9IG1fcG9saWNpZXMuYmVnaW4oKTsgaXRlciAhPSBtX3BvbGljaWVzLmVu
ZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgaWYgKCEoKml0ZXIpLT5hbGxvd0V2YWwoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wg
Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd1NjcmlwdEZyb21Tb3VyY2UoY29uc3QgS1VSTCYg
dXJsKSBjb25zdAogewotICAgIHJldHVybiAhbV9wb2xpY3kgfHwgbV9wb2xpY3ktPmFsbG93U2Ny
aXB0RnJvbVNvdXJjZSh1cmwpOworICAgIGZvciAoUG9saWN5TGlzdDo6Y29uc3RfaXRlcmF0b3Ig
aXRlciA9IG1fcG9saWNpZXMuYmVnaW4oKTsgaXRlciAhPSBtX3BvbGljaWVzLmVuZCgpOyArK2l0
ZXIpIHsKKyAgICAgICAgaWYgKCEoKml0ZXIpLT5hbGxvd1NjcmlwdEZyb21Tb3VyY2UodXJsKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7CiB9CiAK
IGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd09iamVjdEZyb21Tb3VyY2UoY29uc3Qg
S1VSTCYgdXJsKSBjb25zdAogewotICAgIHJldHVybiAhbV9wb2xpY3kgfHwgbV9wb2xpY3ktPmFs
bG93T2JqZWN0RnJvbVNvdXJjZSh1cmwpOworICAgIGZvciAoUG9saWN5TGlzdDo6Y29uc3RfaXRl
cmF0b3IgaXRlciA9IG1fcG9saWNpZXMuYmVnaW4oKTsgaXRlciAhPSBtX3BvbGljaWVzLmVuZCgp
OyArK2l0ZXIpIHsKKyAgICAgICAgaWYgKCEoKml0ZXIpLT5hbGxvd09iamVjdEZyb21Tb3VyY2Uo
dXJsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7
CiB9CiAKIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0NoaWxkRnJhbWVGcm9tU291
cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKIHsKLSAgICByZXR1cm4gIW1fcG9saWN5IHx8IG1f
cG9saWN5LT5hbGxvd0NoaWxkRnJhbWVGcm9tU291cmNlKHVybCk7CisgICAgZm9yIChQb2xpY3lM
aXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbV9wb2xpY2llcy5iZWdpbigpOyBpdGVyICE9IG1f
cG9saWNpZXMuZW5kKCk7ICsraXRlcikgeworICAgICAgICBpZiAoISgqaXRlciktPmFsbG93Q2hp
bGRGcmFtZUZyb21Tb3VyY2UodXJsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxv
d0ltYWdlRnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFt
X3BvbGljeSB8fCBtX3BvbGljeS0+YWxsb3dJbWFnZUZyb21Tb3VyY2UodXJsKTsKKyAgICBmb3Ig
KFBvbGljeUxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBtX3BvbGljaWVzLmJlZ2luKCk7IGl0
ZXIgIT0gbV9wb2xpY2llcy5lbmQoKTsgKytpdGVyKSB7CisgICAgICAgIGlmICghKCppdGVyKS0+
YWxsb3dJbWFnZUZyb21Tb3VyY2UodXJsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5Ojph
bGxvd1N0eWxlRnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
ICFtX3BvbGljeSB8fCBtX3BvbGljeS0+YWxsb3dTdHlsZUZyb21Tb3VyY2UodXJsKTsKKyAgICBm
b3IgKFBvbGljeUxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBtX3BvbGljaWVzLmJlZ2luKCk7
IGl0ZXIgIT0gbV9wb2xpY2llcy5lbmQoKTsgKytpdGVyKSB7CisgICAgICAgIGlmICghKCppdGVy
KS0+YWxsb3dTdHlsZUZyb21Tb3VyY2UodXJsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5
OjphbGxvd0ZvbnRGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKIHsKLSAgICByZXR1
cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxvd0ZvbnRGcm9tU291cmNlKHVybCk7CisgICAg
Zm9yIChQb2xpY3lMaXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbV9wb2xpY2llcy5iZWdpbigp
OyBpdGVyICE9IG1fcG9saWNpZXMuZW5kKCk7ICsraXRlcikgeworICAgICAgICBpZiAoISgqaXRl
ciktPmFsbG93Rm9udEZyb21Tb3VyY2UodXJsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5
OjphbGxvd01lZGlhRnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuICFtX3BvbGljeSB8fCBtX3BvbGljeS0+YWxsb3dNZWRpYUZyb21Tb3VyY2UodXJsKTsKKyAg
ICBmb3IgKFBvbGljeUxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBtX3BvbGljaWVzLmJlZ2lu
KCk7IGl0ZXIgIT0gbV9wb2xpY2llcy5lbmQoKTsgKytpdGVyKSB7CisgICAgICAgIGlmICghKCpp
dGVyKS0+YWxsb3dNZWRpYUZyb21Tb3VyY2UodXJsKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjphbGxvd0Nvbm5lY3RGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxvd0Nvbm5lY3RGcm9tU291cmNlKHVy
bCk7CisgICAgZm9yIChQb2xpY3lMaXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbV9wb2xpY2ll
cy5iZWdpbigpOyBpdGVyICE9IG1fcG9saWNpZXMuZW5kKCk7ICsraXRlcikgeworICAgICAgICBp
ZiAoISgqaXRlciktPmFsbG93Q29ubmVjdEZyb21Tb3VyY2UodXJsKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCmluZGV4IDRiMTgyNWNmZjMyNDQ4MDA3
NDAwZDcwOTk0MDNhZTA2ZjE4MmM1ODQuLjEwZGZjM2FjMGQ5NjI3MzhjMjc1Mzc1Yjk1MGY3MzA0
Njc5MGM2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5
UG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3ku
aApAQCAtNTQsOCArNTQsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZFJlY2VpdmVIZWFkZXIo
Y29uc3QgU3RyaW5nJiwgSGVhZGVyVHlwZSk7CiAKLSAgICBjb25zdCBTdHJpbmcmIGhlYWRlcigp
IGNvbnN0OwotICAgIEhlYWRlclR5cGUgaGVhZGVyVHlwZSgpIGNvbnN0OworICAgIC8vIEZJWE1F
OiBUaGVzZSBmdW5jdGlvbnMgYXJlIHdyb25nIGJlY3Vhc2UgdGhleSBhc3N1bWUgdGhhdCB0aGVy
ZSBpcyBvbmx5IG9uZSBoZWFkZXIuCisgICAgY29uc3QgU3RyaW5nJiBkZXByZWNhdGVkSGVhZGVy
KCkgY29uc3Q7CisgICAgSGVhZGVyVHlwZSBkZXByZWNhdGVkSGVhZGVyVHlwZSgpIGNvbnN0Owog
CiAgICAgYm9vbCBhbGxvd0phdmFTY3JpcHRVUkxzKCkgY29uc3Q7CiAgICAgYm9vbCBhbGxvd0lu
bGluZUV2ZW50SGFuZGxlcnMoKSBjb25zdDsKQEAgLTc1LDExICs3NiwxMiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRPdmVycmlkZUFsbG93SW5saW5lU3R5bGUoYm9vbCk7CiAKIHByaXZhdGU6Cisg
ICAgdHlwZWRlZiBWZWN0b3I8T3duUHRyPENTUERpcmVjdGl2ZUxpc3Q+ID4gUG9saWN5TGlzdDsK
ICAgICBleHBsaWNpdCBDb250ZW50U2VjdXJpdHlQb2xpY3koU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopOwogCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0OwogICAgIGJvb2wgbV9vdmVycmlkZUlubGluZVN0eWxlQWxsb3dlZDsKLSAgICBPd25QdHI8
Q1NQRGlyZWN0aXZlTGlzdD4gbV9wb2xpY3k7CisgICAgUG9saWN5TGlzdCBtX3BvbGljaWVzOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVk
V29ya2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFy
ZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCA3Njc0YWQyOGE4MDkxMDYzZjJlN2Q1ZTBjNTkw
N2JmYTg5ODQzZjliLi4wZGIzNDgwMjMwMWEzNmIwMjk4ZjFmYjc0OWM2NThlYWJhMTE5ZTZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBv
c2l0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3Jr
ZXJSZXBvc2l0b3J5LmNwcApAQCAtMzIyLDggKzMyMiw4IEBAIHZvaWQgU2hhcmVkV29ya2VyU2Ny
aXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6c2NyaXB0SW1wb3J0ZWQobV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
bV9zY3JpcHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpKTsK
ICAgICAgICAgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6Omluc3RhbmNlKCkud29ya2Vy
U2NyaXB0TG9hZGVkKCptX3Byb3h5LCBtX3dvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT51c2VyQWdlbnQobV9zY3JpcHRMb2FkZXItPnVybCgpKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2NyaXB0
TG9hZGVyLT5zY3JpcHQoKSwgbV9wb3J0LnJlbGVhc2UoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fd29ya2Vy
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5oZWFk
ZXIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fd29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNv
bnRlbnRTZWN1cml0eVBvbGljeSgpLT5oZWFkZXJUeXBlKCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV93b3Jr
ZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmRl
cHJlY2F0ZWRIZWFkZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fd29ya2VyLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kZXByZWNhdGVkSGVhZGVyVHlwZSgp
KTsKICAgICB9CiAgICAgbV93b3JrZXItPnVuc2V0UGVuZGluZ0FjdGl2aXR5KG1fd29ya2VyLmdl
dCgpKTsKICAgICB0aGlzLT5kZXJlZigpOyAvLyBUaGlzIGZyZWVzIHRoaXMgb2JqZWN0IC0gbXVz
dCBiZSB0aGUgbGFzdCBhY3Rpb24gaW4gdGhpcyBmdW5jdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggNTlkNGJhMzUxMjMxMmNi
ZjkxN2Q1NmQwNDVlN2YxNTMwZmQ3YmZhYi4uZDNhYjdlMjBmNzU1YWI4Zjc1ODQxNjIyMjYyZDVh
YjM5NjhkMjNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNz
YWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5jcHAKQEAgLTI3Miw4ICsyNzIsOCBAQCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6fldv
cmtlck1lc3NhZ2luZ1Byb3h5KCkKIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29y
a2VyQ29udGV4dChjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1v
ZGUpCiB7CiAgICAgUmVmUHRyPERlZGljYXRlZFdvcmtlclRocmVhZD4gdGhyZWFkID0gRGVkaWNh
dGVkV29ya2VyVGhyZWFkOjpjcmVhdGUoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUs
ICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmhlYWRlcigpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCkt
PmhlYWRlclR5cGUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGVwcmVjYXRlZEhlYWRlcigpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCkt
PmRlcHJlY2F0ZWRIZWFkZXJUeXBlKCkpOwogICAgIHdvcmtlclRocmVhZENyZWF0ZWQodGhyZWFk
KTsKICAgICB0aHJlYWQtPnN0YXJ0KCk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRTdGFydFdvcmtlckNvbnRleHQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LmdldCgpLCB0aGlz
LCBzY3JpcHRVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU2hh
cmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TaGFy
ZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCA4OGFjYmUxMTYzMDVhZTE4M2UzNTc2MTM3MTA1
ODc2ZDA3NWRiMzY5Li43MGI4MDBiNWMzNDk3NTNkMGVkYmZkNjc1Zjc1Zjg0NGI5Mzk1ZmI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TaGFyZWRXb3JrZXJSZXBvc2l0
b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TaGFyZWRXb3JrZXJSZXBv
c2l0b3J5LmNwcApAQCAtMTcxLDggKzE3MSw4IEBAIHZvaWQgU2hhcmVkV29ya2VyU2NyaXB0TG9h
ZGVyOjpub3RpZnlGaW5pc2hlZCgpCiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
c2NyaXB0SW1wb3J0ZWQobV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV9zY3Jp
cHRMb2FkZXItPmlkZW50aWZpZXIoKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpKTsKICAgICAg
ICAgLy8gUGFzcyB0aGUgc2NyaXB0IG9mZiB0byB0aGUgd29ya2VyLCB0aGVuIHNlbmQgYSBjb25u
ZWN0IGV2ZW50LgogICAgICAgICBtX3dlYldvcmtlci0+c3RhcnRXb3JrZXJDb250ZXh0KG1fdXJs
LCBtX25hbWUsIG1fd29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVzZXJBZ2VudCht
X3VybCksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX3dvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250
ZW50U2VjdXJpdHlQb2xpY3koKS0+aGVhZGVyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8V2ViS2l0OjpXZWJDb250ZW50U2VjdXJpdHlQb2xp
Y3lUeXBlPihtX3dvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZW50U2VjdXJp
dHlQb2xpY3koKS0+aGVhZGVyVHlwZSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3dvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZW50U2Vj
dXJpdHlQb2xpY3koKS0+ZGVwcmVjYXRlZEhlYWRlcigpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYktpdDo6V2ViQ29udGVudFNlY3VyaXR5
UG9saWN5VHlwZT4obV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVudFNl
Y3VyaXR5UG9saWN5KCktPmRlcHJlY2F0ZWRIZWFkZXJUeXBlKCkpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fcmVzcG9uc2VBcHBDYWNoZUlEKTsKICAgICAgICAg
c2VuZENvbm5lY3QoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYldvcmtlckNsaWVudEltcGwuY3BwCmluZGV4IGZiMTAwMDVlZjg5OWQ3NTk2ZWZmNTMzMTA1
MjY4ZTI3ZmE3NGQ2M2YuLmFlZTdiMWRmNGM3ODYyZWQ1ZjIzYTIxODMxNzYyNDZmMmJjOGE2Njcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudElt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudElt
cGwuY3BwCkBAIC04Nyw4ICs4Nyw4IEBAIFdvcmtlckNvbnRleHRQcm94eSogV2ViV29ya2VyQ2xp
ZW50SW1wbDo6Y3JlYXRlV29ya2VyQ29udGV4dFByb3h5KFdvcmtlciogd29ya2VyCiB2b2lkIFdl
YldvcmtlckNsaWVudEltcGw6OnN0YXJ0V29ya2VyQ29udGV4dChjb25zdCBLVVJMJiBzY3JpcHRV
UkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdv
cmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUpCiB7CiAgICAgUmVmUHRyPERlZGljYXRlZFdv
cmtlclRocmVhZD4gdGhyZWFkID0gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUoc2NyaXB0
VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcywgc3RhcnRNb2RlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+Y29udGVudFNlY3VyaXR5UG9s
aWN5KCktPmhlYWRlcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmhlYWRlclR5cGUoKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGVw
cmVjYXRlZEhlYWRlcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmRlcHJlY2F0ZWRIZWFkZXJUeXBlKCkpOwogICAg
IG1fcHJveHktPndvcmtlclRocmVhZENyZWF0ZWQodGhyZWFkKTsKICAgICB0aHJlYWQtPnN0YXJ0
KCk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTdGFydFdvcmtlckNvbnRleHQo
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LmdldCgpLCBtX3Byb3h5LCBzY3JpcHRVUkwpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGJlNzNhMTQyNWE4ZmFkMzdlNjI4ODQ4ZGYzZjk1Y2FkMDNiNzk2NjcuLjM3YTBjNzYxZjA4
OTNjMGIwYzc4MWI0OTdkNTFiNGQ0YjBjMjc2N2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
Mi0wNS0wNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIENTUCBz
aG91bGQgbGV0IHNpdGVzIGJvdGggZW5mb3JjZSBvbmUgcG9saWN5IGFuZCBtb25pdG9yIGFub3Ro
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NTYx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0
aGF0IHdlIGNhbiBlbmZvcmNlIG11bHRpcGxlIHBvbGljaWVzIGFuZCB0aGF0IHdlIGNhbiBlbmZv
cmNlIG9uZQorICAgICAgICBwb2xpY3kgd2hpbGUgbW9uaXRvcmluZyBhbm90aGVyLgorCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvY29tYmluZS1t
dWx0aXBsZS1wb2xpY2llcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2NvbWJpbmUtbXVsdGlwbGUtcG9saWNp
ZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvcmVwb3J0LWFuZC1lbmZvcmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVwb3J0LWFu
ZC1lbmZvcmNlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA1LTA0ICBaYW4gRG9iZXJzZWsgIDx6YW5k
b2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgW0d0a10gTWFueSB0ZXN0cyByZXZlYWxlZCBh
cyBwYXNzaW5nIGFmdGVyIG1vdmluZyBmcm9tIFNraXBwZWQgdG8gdGVzdF9leHBlY3RhdGlvbnMu
dHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9jb21iaW5lLW11bHRpcGxlLXBvbGljaWVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2NvbWJp
bmUtbXVsdGlwbGUtcG9saWNpZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjNWVkZWVmZmFj
M2ZmYTRlNmJmNTEwY2E0Y2EzNzk5ZGRjNWUyNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9jb21iaW5lLW11
bHRpcGxlLXBvbGljaWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NPTlNPTEUgTUVT
U0FHRTogUmVmdXNlZCB0byBleGVjdXRlIGlubGluZSBzY3JpcHQgYmVjYXVzZSBvZiBDb250ZW50
LVNlY3VyaXR5LVBvbGljeS4KKworQ09OU09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGFwcGx5IGlu
bGluZSBzdHlsZSBiZWNhdXNlIG9mIENvbnRlbnQtU2VjdXJpdHktUG9saWN5LgorCitUaGlzIHRl
c3QgY2hlY2tzIHRoYXQgd2UgZW5mb3JjZSBhbGwgdGhlIHN1cHBsaWVkIHBvbGljaWVzLiBUaGlz
IHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgYWxlcnQgZmFpbCBhbmQgaWYgdGhlIHN0eWxlIGRv
ZXNuJ3QgYXBwbHkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9jb21iaW5lLW11bHRpcGxlLXBvbGljaWVzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9jb21i
aW5lLW11bHRpcGxlLXBvbGljaWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBiMDUyZmQ4ODMyOGYzNTFj
M2ZiZTI1NWQxMGNkYjY4ZGYwZWM3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2NvbWJpbmUtbXVsdGlwbGUt
cG9saWNpZXMuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9InNjcmlwdC1z
cmMgJ3NlbGYnIj4KKzxtZXRhIGh0dHAtZXF1aXY9IlgtV2ViS2l0LUNTUCIgY29udGVudD0ic3R5
bGUtc3JjICdub25lJyI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2R1bXAtYXMtdGV4dC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB3ZSBlbmZv
cmNlIGFsbCB0aGUgc3VwcGxpZWQgcG9saWNpZXMuICBUaGlzIHRlc3QgcGFzc2VzCitpZiBpdCBk
b2Vzbid0IGFsZXJ0IGZhaWwgYW5kIGlmIHRoZSBzdHlsZSBkb2Vzbid0IGFwcGx5LgorPHNjcmlw
dD4KK2FsZXJ0KCdGQUlMJyk7Cis8L3NjcmlwdD4KKzxzdHlsZT4KK2JvZHkgeworICAgIGJhY2tn
cm91bmQtY29sb3I6IHJlZDsKK30KKzwvc3R5bGU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9yZXBvcnQtYW5kLWVuZm9yY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVwb3J0LWFuZC1lbmZvcmNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lZmEzZjc3N2IwZjY3ZDE5NGNlY2E0ZDkzOGM4Njg2ZjRiM2Jj
NjA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvcmVwb3J0LWFuZC1lbmZvcmNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEyIEBACitDT05TT0xFIE1FU1NBR0U6IFtSZXBvcnQgT25seV0gUmVmdXNlZCB0byBl
eGVjdXRlIGlubGluZSBzY3JpcHQgYmVjYXVzZSBvZiBDb250ZW50LVNlY3VyaXR5LVBvbGljeS4K
KworQUxFUlQ6IFBBU1MKK0NPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIGltYWdlIGZy
b20gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvYWJlLnBuZycgYmVj
YXVzZSBvZiBDb250ZW50LVNlY3VyaXR5LVBvbGljeS4KKworQ1NQIHJlcG9ydCByZWNlaXZlZDoK
K0NPTlRFTlRfVFlQRTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkCitIVFRQX1JF
RkVSRVI6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvcmVwb3J0LWFuZC1lbmZvcmNlLmh0bWwKK1JFUVVFU1RfTUVUSE9EOiBQT1NUCis9PT0gUE9T
VCBEQVRBID09PQorZG9jdW1lbnQtdXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3JlcG9ydC1hbmQtZW5mb3JjZS5odG1sCit2aW9sYXRlZC1k
aXJlY3RpdmU6IHNjcmlwdC1zcmMgJ3NlbGYnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXBvcnQtYW5kLWVuZm9yY2Uu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3JlcG9ydC1hbmQtZW5mb3JjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2MmU4OWZmZjY1NWE4NDU2
MDVhZjZlNWFiNTE5MTRkYzRjNGIyMjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXBvcnQtYW5kLWVuZm9y
Y2UuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxtZXRhIGh0dHAtZXF1aXY9IlgtV2ViS2l0LUNTUCIg
Y29udGVudD0iaW1nLXNyYyAnbm9uZSciPgorPG1ldGEgaHR0cC1lcXVpdj0iWC1XZWJLaXQtQ1NQ
LVJlcG9ydC1Pbmx5IiBjb250ZW50PSJzY3JpcHQtc3JjICdzZWxmJzsgcmVwb3J0LXVyaSByZXNv
dXJjZXMvc2F2ZS1yZXBvcnQucGhwIj4KKzxzY3JpcHQ+CisvLyBUaGlzIHNjcmlwdCBibG9jayB3
aWxsIHRyaWdnZXIgYSB2aW9sYXRpb24gcmVwb3J0IGJ1dCBzaG91bGRuJ3QgYmUgYmxvY2tlZC4K
K2FsZXJ0KCdQQVNTJyk7Cis8L3NjcmlwdD4KK1RoaXMgaW1hZ2Ugc2hvdWxkIGJlIGJsb2NrZWQs
IGJ1dCBzaG91bGQgbm90IHNob3cgdXAgaW4gdGhlIHZpb2xhdGlvbiByZXBvcnQuCis8aW1nIHNy
Yz0iLi4vcmVzb3VyY2VzL2FiZS5wbmciPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9nby10by1l
Y2hvLXJlcG9ydC5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140438</attachid>
            <date>2012-05-06 15:06:09 -0700</date>
            <delta_ts>2012-05-06 16:15:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85561-20120506150608.patch</filename>
            <type>text/plain</type>
            <size>20613</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY2MDcwZTY2MzdjNzc5
YTUzMWQ2Y2Y0YTRlODEyMjk3Y2Q4M2Y2ZS4uYTBiNTAwYjU0MGE4NTNiYjg2NDZmOGUxYmFjMTBh
Yzk5NzZhYjkyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA1LTA2ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1NQIHNob3VsZCBsZXQgc2l0
ZXMgYm90aCBlbmZvcmNlIG9uZSBwb2xpY3kgYW5kIG1vbml0b3IgYW5vdGhlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU1NjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGxldHMgdXMg
ZW5mb3JjZSBhbmQvb3IgbW9uaXRvciBtdWx0aXBsZSBDU1AgcG9saWNpZXMuCisgICAgICAgIFJh
dGhlciB0aGFuIGhhdmluZyBhIHNpbmdsZSBkaXJlY3RpdmUgbGlzdCwgd2Ugbm93IGhhdmUgYSB2
ZWN0b3Igb2YKKyAgICAgICAgZGlyZWN0aXZlIGxpc3RzLgorCisgICAgICAgIFRlc3RzOiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9jb21iaW5lLW11bHRpcGxlLXBv
bGljaWVzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L3JlcG9ydC1hbmQtZW5mb3JjZS5odG1sCisKKyAgICAgICAgKiBwYWdlL0Nv
bnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJp
dHlQb2xpY3k6OmNvcHlTdGF0ZUZyb20pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3Vy
aXR5UG9saWN5OjpkaWRSZWNlaXZlSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRT
ZWN1cml0eVBvbGljeTo6ZGVwcmVjYXRlZEhlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50U2VjdXJpdHlQb2xpY3k6OmRlcHJlY2F0ZWRIZWFkZXJUeXBlKToKKyAgICAgICAgICAgIC0g
RXZlbiBhZnRlciB0aGlzIHBhdGNoLCB3b3JrZXJzIGFyZW4ndCBzbWFydCBlbm91Z2ggdG8gZW5m
b3JjZQorICAgICAgICAgICAgICBtdWx0aXBsZSBwb2xpY2llcy4gIFRoZXkganVzdCB1c2UgdGhl
IGZpcnN0IGhlYWRlciwgbGlrZSB0aGV5IGRpZAorICAgICAgICAgICAgICBiZWZvcmUuICBXZSds
bCBuZWVkIHRvIHRlYWNoIHdvcmtlcnMgaG93IHRvIGVuZm9yY2UgbXVsdGlwbGUKKyAgICAgICAg
ICAgICAgcG9saWNpZXMgaW4gYSBmdXR1cmUgcGF0Y2guCisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SmF2YVNjcmlwdFVSTHMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZUV2ZW50SGFuZGxlcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZVNjcmlwdCk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SW5saW5lU3R5
bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0V2YWwp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd1NjcmlwdEZy
b21Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxv
d09iamVjdEZyb21Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9s
aWN5OjphbGxvd0NoaWxkRnJhbWVGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRTZWN1cml0eVBvbGljeTo6YWxsb3dJbWFnZUZyb21Tb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd1N0eWxlRnJvbVNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93Rm9udEZyb21Tb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd01lZGlhRnJvbVNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93Q29u
bmVjdEZyb21Tb3VyY2UpOgorICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5Lmg6
CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVk
KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckNvbnRleHQpOgorCiAy
MDEyLTA1LTA2ICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAg
ICAgICAgIFt3eF0gVW5yZXZpZXdlZC4gQnVpbGQgZml4ZXMgZm9yIHJlY2VudCB0cnVuayBjaGFu
Z2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBhM2NjOTYyMGIxNGRkNDE1MjA2ZWNm
OGRhMWU5YzdkZWUzYjYyZjhiLi4wZDJjNDExY2Y4MzE4MjI2Zjc2NjU3YTIwMTkwY2EzNGMzOWQ0
Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA1
LTA2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1NQIHNob3Vs
ZCBsZXQgc2l0ZXMgYm90aCBlbmZvcmNlIG9uZSBwb2xpY3kgYW5kIG1vbml0b3IgYW5vdGhlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU1NjEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9TaGFy
ZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclNj
cmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIHNyYy9XZWJXb3JrZXJDbGll
bnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyQ2xpZW50SW1wbDo6c3RhcnRX
b3JrZXJDb250ZXh0KToKKwogMjAxMi0wNS0wNiAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHRha2UgdGltZWxpbmUgZnJhbWUg
bW9kZSBvdXQgb2YgZXhwZXJpbWVudGFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRT
ZWN1cml0eVBvbGljeS5jcHAKaW5kZXggNjAzZTE4Zjg3Y2NkMDVjNjQ2ODFmOGI4NzE3ZWNiMTBh
ZjY0ODAzYS4uMjkzYzRkZTU2MDMyYTA2OGM0NjgxOTE5NTFhYmRiZTVhNzZhYjJhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtODg3LDE2
ICs4ODcsMTQgQEAgQ29udGVudFNlY3VyaXR5UG9saWN5Ojp+Q29udGVudFNlY3VyaXR5UG9saWN5
KCkKIAogdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmNvcHlTdGF0ZUZyb20oY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5KiBvdGhlcikgCiB7Ci0gICAgQVNTRVJUKCFtX3BvbGljeSk7Ci0g
ICAgaWYgKG90aGVyLT5tX3BvbGljeSkKLSAgICAgICAgZGlkUmVjZWl2ZUhlYWRlcihvdGhlci0+
aGVhZGVyKCksIG90aGVyLT5oZWFkZXJUeXBlKCkpOworICAgIEFTU0VSVChtX3BvbGljaWVzLmlz
RW1wdHkoKSk7CisgICAgZm9yIChDU1BEaXJlY3RpdmVMaXN0VmVjdG9yOjpjb25zdF9pdGVyYXRv
ciBpdGVyID0gb3RoZXItPm1fcG9saWNpZXMuYmVnaW4oKTsgaXRlciAhPSBvdGhlci0+bV9wb2xp
Y2llcy5lbmQoKTsgKytpdGVyKQorICAgICAgICBkaWRSZWNlaXZlSGVhZGVyKCgqaXRlciktPmhl
YWRlcigpLCAoKml0ZXIpLT5oZWFkZXJUeXBlKCkpOwogfQogCiB2b2lkIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6ZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJpbmcmIGhlYWRlciwgSGVhZGVyVHlw
ZSB0eXBlKQogewotICAgIGlmIChtX3BvbGljeSkKLSAgICAgICAgcmV0dXJuOyAvLyBUaGUgZmly
c3QgcG9saWN5IHdpbnMuCi0gICAgbV9wb2xpY3kgPSBDU1BEaXJlY3RpdmVMaXN0OjpjcmVhdGUo
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LCBoZWFkZXIsIHR5cGUpOworICAgIG1fcG9saWNpZXMu
YXBwZW5kKENTUERpcmVjdGl2ZUxpc3Q6OmNyZWF0ZShtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IGhlYWRlciwgdHlwZSkpOwogfQogCiB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6c2V0T3Zl
cnJpZGVBbGxvd0lubGluZVN0eWxlKGJvb2wgdmFsdWUpCkBAIC05MDQsNzkgKzkwMiwxMDEgQEAg
dm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnNldE92ZXJyaWRlQWxsb3dJbmxpbmVTdHlsZShi
b29sIHZhbHVlKQogICAgIG1fb3ZlcnJpZGVJbmxpbmVTdHlsZUFsbG93ZWQgPSB2YWx1ZTsKIH0K
IAotY29uc3QgU3RyaW5nJiBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmhlYWRlcigpIGNvbnN0Citj
b25zdCBTdHJpbmcmIENvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGVwcmVjYXRlZEhlYWRlcigpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1fcG9saWN5ID8gbV9wb2xpY3ktPmhlYWRlcigpIDogZW1wdHlT
dHJpbmcoKTsKKyAgICByZXR1cm4gbV9wb2xpY2llcy5pc0VtcHR5KCkgPyBlbXB0eVN0cmluZygp
IDogbV9wb2xpY2llc1swXS0+aGVhZGVyKCk7CiB9CiAKLUNvbnRlbnRTZWN1cml0eVBvbGljeTo6
SGVhZGVyVHlwZSBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmhlYWRlclR5cGUoKSBjb25zdAorQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIENvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGVw
cmVjYXRlZEhlYWRlclR5cGUoKSBjb25zdAogewotICAgIHJldHVybiBtX3BvbGljeSA/IG1fcG9s
aWN5LT5oZWFkZXJUeXBlKCkgOiBFbmZvcmNlUG9saWN5OworICAgIHJldHVybiBtX3BvbGljaWVz
LmlzRW1wdHkoKSA/IEVuZm9yY2VQb2xpY3kgOiBtX3BvbGljaWVzWzBdLT5oZWFkZXJUeXBlKCk7
Cit9CisKK3RlbXBsYXRlPGJvb2wgKENTUERpcmVjdGl2ZUxpc3Q6OiphbGxvd2VkKSgpIGNvbnN0
PgorYm9vbCBpc0FsbG93ZWRCeUFsbChjb25zdCBDU1BEaXJlY3RpdmVMaXN0VmVjdG9yJiBwb2xp
Y2llcykKK3sKKyAgICBmb3IgKENTUERpcmVjdGl2ZUxpc3RWZWN0b3I6OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gcG9saWNpZXMuYmVnaW4oKTsgaXQgIT0gcG9saWNpZXMuZW5kKCk7ICsraXQpIHsKKyAg
ICAgICAgaWYgKCEoaXQtPmdldCgpLT4qYWxsb3dlZCkoKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3RlbXBsYXRlPGJvb2wgKENTUERp
cmVjdGl2ZUxpc3Q6OiphbGxvd0Zyb21VUkwpKGNvbnN0IEtVUkwmKSBjb25zdD4KK2Jvb2wgaXNB
bGxvd2VkQnlBbGwoY29uc3QgQ1NQRGlyZWN0aXZlTGlzdFZlY3RvciYgcG9saWNpZXMsIGNvbnN0
IEtVUkwmIHVybCkKK3sKKyAgICBmb3IgKENTUERpcmVjdGl2ZUxpc3RWZWN0b3I6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gcG9saWNpZXMuYmVnaW4oKTsgaXQgIT0gcG9saWNpZXMuZW5kKCk7ICsraXQp
IHsKKyAgICAgICAgaWYgKCEoaXQtPmdldCgpLT4qYWxsb3dGcm9tVVJMKSh1cmwpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBD
b250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SmF2YVNjcmlwdFVSTHMoKSBjb25zdAogewotICAg
IHJldHVybiAhbV9wb2xpY3kgfHwgbV9wb2xpY3ktPmFsbG93SmF2YVNjcmlwdFVSTHMoKTsKKyAg
ICByZXR1cm4gaXNBbGxvd2VkQnlBbGw8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SmF2YVNjcmlw
dFVSTHM+KG1fcG9saWNpZXMpOwogfQogCiBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxs
b3dJbmxpbmVFdmVudEhhbmRsZXJzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gIW1fcG9saWN5IHx8
IG1fcG9saWN5LT5hbGxvd0lubGluZUV2ZW50SGFuZGxlcnMoKTsKKyAgICByZXR1cm4gaXNBbGxv
d2VkQnlBbGw8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lRXZlbnRIYW5kbGVycz4obV9w
b2xpY2llcyk7CiB9CiAKIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZVNj
cmlwdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFtX3BvbGljeSB8fCBtX3BvbGljeS0+YWxsb3dJ
bmxpbmVTY3JpcHQoKTsKKyAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGw8JkNTUERpcmVjdGl2ZUxp
c3Q6OmFsbG93SW5saW5lU2NyaXB0PihtX3BvbGljaWVzKTsKIH0KIAogYm9vbCBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OmFsbG93SW5saW5lU3R5bGUoKSBjb25zdAogewotICAgIHJldHVybiAhbV9w
b2xpY3kgfHwgbV9vdmVycmlkZUlubGluZVN0eWxlQWxsb3dlZCB8fCBtX3BvbGljeS0+YWxsb3dJ
bmxpbmVTdHlsZSgpOworICAgIGlmIChtX292ZXJyaWRlSW5saW5lU3R5bGVBbGxvd2VkKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGw8JkNTUERpcmVjdGl2
ZUxpc3Q6OmFsbG93SW5saW5lU3R5bGU+KG1fcG9saWNpZXMpOwogfQogCiBib29sIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6YWxsb3dFdmFsKCkgY29uc3QKIHsKLSAgICByZXR1cm4gIW1fcG9saWN5
IHx8IG1fcG9saWN5LT5hbGxvd0V2YWwoKTsKKyAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGw8JkNT
UERpcmVjdGl2ZUxpc3Q6OmFsbG93RXZhbD4obV9wb2xpY2llcyk7CiB9CiAKIGJvb2wgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjphbGxvd1NjcmlwdEZyb21Tb3VyY2UoY29uc3QgS1VSTCYgdXJsKSBj
b25zdAogewotICAgIHJldHVybiAhbV9wb2xpY3kgfHwgbV9wb2xpY3ktPmFsbG93U2NyaXB0RnJv
bVNvdXJjZSh1cmwpOworICAgIHJldHVybiBpc0FsbG93ZWRCeUFsbDwmQ1NQRGlyZWN0aXZlTGlz
dDo6YWxsb3dTY3JpcHRGcm9tU291cmNlPihtX3BvbGljaWVzLCB1cmwpOwogfQogCiBib29sIENv
bnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dPYmplY3RGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVy
bCkgY29uc3QKIHsKLSAgICByZXR1cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxvd09iamVj
dEZyb21Tb3VyY2UodXJsKTsKKyAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGw8JkNTUERpcmVjdGl2
ZUxpc3Q6OmFsbG93T2JqZWN0RnJvbVNvdXJjZT4obV9wb2xpY2llcywgdXJsKTsKIH0KIAogYm9v
bCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93Q2hpbGRGcmFtZUZyb21Tb3VyY2UoY29uc3Qg
S1VSTCYgdXJsKSBjb25zdAogewotICAgIHJldHVybiAhbV9wb2xpY3kgfHwgbV9wb2xpY3ktPmFs
bG93Q2hpbGRGcmFtZUZyb21Tb3VyY2UodXJsKTsKKyAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGw8
JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93Q2hpbGRGcmFtZUZyb21Tb3VyY2U+KG1fcG9saWNpZXMs
IHVybCk7CiB9CiAKIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0ltYWdlRnJvbVNv
dXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFtX3BvbGljeSB8fCBt
X3BvbGljeS0+YWxsb3dJbWFnZUZyb21Tb3VyY2UodXJsKTsKKyAgICByZXR1cm4gaXNBbGxvd2Vk
QnlBbGw8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW1hZ2VGcm9tU291cmNlPihtX3BvbGljaWVz
LCB1cmwpOwogfQogCiBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dTdHlsZUZyb21T
b3VyY2UoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewotICAgIHJldHVybiAhbV9wb2xpY3kgfHwg
bV9wb2xpY3ktPmFsbG93U3R5bGVGcm9tU291cmNlKHVybCk7CisgICAgcmV0dXJuIGlzQWxsb3dl
ZEJ5QWxsPCZDU1BEaXJlY3RpdmVMaXN0OjphbGxvd1N0eWxlRnJvbVNvdXJjZT4obV9wb2xpY2ll
cywgdXJsKTsKIH0KIAogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93Rm9udEZyb21T
b3VyY2UoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewotICAgIHJldHVybiAhbV9wb2xpY3kgfHwg
bV9wb2xpY3ktPmFsbG93Rm9udEZyb21Tb3VyY2UodXJsKTsKKyAgICByZXR1cm4gaXNBbGxvd2Vk
QnlBbGw8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93Rm9udEZyb21Tb3VyY2U+KG1fcG9saWNpZXMs
IHVybCk7CiB9CiAKIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd01lZGlhRnJvbVNv
dXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFtX3BvbGljeSB8fCBt
X3BvbGljeS0+YWxsb3dNZWRpYUZyb21Tb3VyY2UodXJsKTsKKyAgICByZXR1cm4gaXNBbGxvd2Vk
QnlBbGw8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93TWVkaWFGcm9tU291cmNlPihtX3BvbGljaWVz
LCB1cmwpOwogfQogCiBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dDb25uZWN0RnJv
bVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFtX3BvbGljeSB8
fCBtX3BvbGljeS0+YWxsb3dDb25uZWN0RnJvbVNvdXJjZSh1cmwpOworICAgIHJldHVybiBpc0Fs
bG93ZWRCeUFsbDwmQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dDb25uZWN0RnJvbVNvdXJjZT4obV9w
b2xpY2llcywgdXJsKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZW50U2VjdXJpdHlQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmgKaW5kZXggNGIxODI1Y2ZmMzI0NDgwMDc0MDBkNzA5OTQwM2FlMDZmMTgyYzU4
NC4uODM3ZWE2YjNkMjE0MjRlNjdlY2UxOGFhZmQ2MzE3ZTgyMDk1ZjZlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCkBAIC0zNyw2ICszNyw4IEBAIGNs
YXNzIENTUERpcmVjdGl2ZUxpc3Q7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xh
c3MgS1VSTDsKIAordHlwZWRlZiBWZWN0b3I8T3duUHRyPENTUERpcmVjdGl2ZUxpc3Q+ID4gQ1NQ
RGlyZWN0aXZlTGlzdFZlY3RvcjsKKwogY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5IHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxDb250ZW50U2VjdXJpdHlQb2xpY3k+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQpAQCAtNTQs
OCArNTYsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZFJlY2VpdmVIZWFkZXIoY29uc3QgU3Ry
aW5nJiwgSGVhZGVyVHlwZSk7CiAKLSAgICBjb25zdCBTdHJpbmcmIGhlYWRlcigpIGNvbnN0Owot
ICAgIEhlYWRlclR5cGUgaGVhZGVyVHlwZSgpIGNvbnN0OworICAgIC8vIEZJWE1FOiBUaGVzZSBm
dW5jdGlvbnMgYXJlIHdyb25nIGJlY3Vhc2UgdGhleSBhc3N1bWUgdGhhdCB0aGVyZSBpcyBvbmx5
IG9uZSBoZWFkZXIuCisgICAgY29uc3QgU3RyaW5nJiBkZXByZWNhdGVkSGVhZGVyKCkgY29uc3Q7
CisgICAgSGVhZGVyVHlwZSBkZXByZWNhdGVkSGVhZGVyVHlwZSgpIGNvbnN0OwogCiAgICAgYm9v
bCBhbGxvd0phdmFTY3JpcHRVUkxzKCkgY29uc3Q7CiAgICAgYm9vbCBhbGxvd0lubGluZUV2ZW50
SGFuZGxlcnMoKSBjb25zdDsKQEAgLTc5LDcgKzgyLDcgQEAgcHJpdmF0ZToKIAogICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKICAgICBib29sIG1f
b3ZlcnJpZGVJbmxpbmVTdHlsZUFsbG93ZWQ7Ci0gICAgT3duUHRyPENTUERpcmVjdGl2ZUxpc3Q+
IG1fcG9saWN5OworICAgIENTUERpcmVjdGl2ZUxpc3RWZWN0b3IgbV9wb2xpY2llczsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtl
clJlcG9zaXRvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29y
a2VyUmVwb3NpdG9yeS5jcHAKaW5kZXggNzY3NGFkMjhhODA5MTA2M2YyZTdkNWUwYzU5MDdiZmE4
OTg0M2Y5Yi4uMGRiMzQ4MDIzMDFhMzZiMDI5OGYxZmI3NDljNjU4ZWFiYTExOWU2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9y
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVw
b3NpdG9yeS5jcHAKQEAgLTMyMiw4ICszMjIsOCBAQCB2b2lkIFNoYXJlZFdvcmtlclNjcmlwdExv
YWRlcjo6bm90aWZ5RmluaXNoZWQoKQogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OnNjcmlwdEltcG9ydGVkKG1fd29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fc2Ny
aXB0TG9hZGVyLT5pZGVudGlmaWVyKCksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSk7CiAgICAg
ICAgIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5OjppbnN0YW5jZSgpLndvcmtlclNjcmlw
dExvYWRlZCgqbV9wcm94eSwgbV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXNl
ckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NjcmlwdExvYWRl
ci0+c2NyaXB0KCksIG1fcG9ydC5yZWxlYXNlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3dvcmtlci0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+aGVhZGVyKCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtX3dvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZW50
U2VjdXJpdHlQb2xpY3koKS0+aGVhZGVyVHlwZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fd29ya2VyLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kZXByZWNh
dGVkSGVhZGVyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3dvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGVwcmVjYXRlZEhlYWRlclR5cGUoKSk7CiAg
ICAgfQogICAgIG1fd29ya2VyLT51bnNldFBlbmRpbmdBY3Rpdml0eShtX3dvcmtlci5nZXQoKSk7
CiAgICAgdGhpcy0+ZGVyZWYoKTsgLy8gVGhpcyBmcmVlcyB0aGlzIG9iamVjdCAtIG11c3QgYmUg
dGhlIGxhc3QgYWN0aW9uIGluIHRoaXMgZnVuY3Rpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4IDU5ZDRiYTM1MTIzMTJjYmY5MTdk
NTZkMDQ1ZTdmMTUzMGZkN2JmYWIuLmQzYWI3ZTIwZjc1NWFiOGY3NTg0MTYyMjI2MmQ1YWIzOTY4
ZDIzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5n
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuY3BwCkBAIC0yNzIsOCArMjcyLDggQEAgV29ya2VyTWVzc2FnaW5nUHJveHk6On5Xb3JrZXJN
ZXNzYWdpbmdQcm94eSgpCiB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckNv
bnRleHQoY29uc3QgS1VSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlKQog
ewogICAgIFJlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IHRocmVhZCA9IERlZGljYXRlZFdv
cmtlclRocmVhZDo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCAqdGhp
cywgKnRoaXMsIHN0YXJ0TW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5oZWFkZXIoKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5oZWFk
ZXJUeXBlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+Y29u
dGVudFNlY3VyaXR5UG9saWN5KCktPmRlcHJlY2F0ZWRIZWFkZXIoKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kZXBy
ZWNhdGVkSGVhZGVyVHlwZSgpKTsKICAgICB3b3JrZXJUaHJlYWRDcmVhdGVkKHRocmVhZCk7CiAg
ICAgdGhyZWFkLT5zdGFydCgpOwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU3Rh
cnRXb3JrZXJDb250ZXh0KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5nZXQoKSwgdGhpcywgc2Ny
aXB0VVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1NoYXJlZFdv
cmtlclJlcG9zaXRvcnkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU2hhcmVkV29y
a2VyUmVwb3NpdG9yeS5jcHAKaW5kZXggODhhY2JlMTE2MzA1YWUxODNlMzU3NjEzNzEwNTg3NmQw
NzVkYjM2OS4uNzBiODAwYjVjMzQ5NzUzZDBlZGJmZDY3NWY3NWY4NDRiOTM5NWZiNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvU2hhcmVkV29ya2VyUmVwb3NpdG9y
eS5jcHAKQEAgLTE3MSw4ICsxNzEsOCBAQCB2b2lkIFNoYXJlZFdvcmtlclNjcmlwdExvYWRlcjo6
bm90aWZ5RmluaXNoZWQoKQogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnNjcmlw
dEltcG9ydGVkKG1fd29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fc2NyaXB0TG9h
ZGVyLT5pZGVudGlmaWVyKCksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSk7CiAgICAgICAgIC8v
IFBhc3MgdGhlIHNjcmlwdCBvZmYgdG8gdGhlIHdvcmtlciwgdGhlbiBzZW5kIGEgY29ubmVjdCBl
dmVudC4KICAgICAgICAgbV93ZWJXb3JrZXItPnN0YXJ0V29ya2VyQ29udGV4dChtX3VybCwgbV9u
YW1lLCBtX3dvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51c2VyQWdlbnQobV91cmwp
LCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVudFNl
Y3VyaXR5UG9saWN5KCktPmhlYWRlcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXRpY19jYXN0PFdlYktpdDo6V2ViQ29udGVudFNlY3VyaXR5UG9saWN5VHlw
ZT4obV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVudFNlY3VyaXR5UG9s
aWN5KCktPmhlYWRlclR5cGUoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVudFNlY3VyaXR5
UG9saWN5KCktPmRlcHJlY2F0ZWRIZWFkZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxXZWJLaXQ6OldlYkNvbnRlbnRTZWN1cml0eVBvbGlj
eVR5cGU+KG1fd29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNvbnRlbnRTZWN1cml0
eVBvbGljeSgpLT5kZXByZWNhdGVkSGVhZGVyVHlwZSgpKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3Jlc3BvbnNlQXBwQ2FjaGVJRCk7CiAgICAgICAgIHNlbmRD
b25uZWN0KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViV29ya2VyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJX
b3JrZXJDbGllbnRJbXBsLmNwcAppbmRleCBmYjEwMDA1ZWY4OTlkNzU5NmVmZjUzMzEwNTI2OGUy
N2ZhNzRkNjNmLi5hZWU3YjFkZjRjNzg2MmVkNWYyM2EyMTgzMTc2MjQ2ZjJiYzhhNjY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNw
cApAQCAtODcsOCArODcsOCBAQCBXb3JrZXJDb250ZXh0UHJveHkqIFdlYldvcmtlckNsaWVudElt
cGw6OmNyZWF0ZVdvcmtlckNvbnRleHRQcm94eShXb3JrZXIqIHdvcmtlcgogdm9pZCBXZWJXb3Jr
ZXJDbGllbnRJbXBsOjpzdGFydFdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYgc2NyaXB0VVJMLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJU
aHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlKQogewogICAgIFJlZlB0cjxEZWRpY2F0ZWRXb3JrZXJU
aHJlYWQ+IHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHNjcmlwdFVSTCwg
dXNlckFnZW50LCBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMsIHN0YXJ0TW9kZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgp
LT5oZWFkZXIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmNv
bnRlbnRTZWN1cml0eVBvbGljeSgpLT5oZWFkZXJUeXBlKCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmRlcHJlY2F0
ZWRIZWFkZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmNv
bnRlbnRTZWN1cml0eVBvbGljeSgpLT5kZXByZWNhdGVkSGVhZGVyVHlwZSgpKTsKICAgICBtX3By
b3h5LT53b3JrZXJUaHJlYWRDcmVhdGVkKHRocmVhZCk7CiAgICAgdGhyZWFkLT5zdGFydCgpOwog
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU3RhcnRXb3JrZXJDb250ZXh0KG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5nZXQoKSwgbV9wcm94eSwgc2NyaXB0VVJMKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4
YmM1YjUzZDQwNWU4YzM0YzM4N2VlMDYzZjYwZWJiNDY2ZTE0ZjgwLi40N2MzYjk2YWQzZTQwNzc3
NDI4NTMyNWI0YmY5OWM3YTRhY2JiM2NiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDUt
MDYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBDU1Agc2hvdWxk
IGxldCBzaXRlcyBib3RoIGVuZm9yY2Ugb25lIHBvbGljeSBhbmQgbW9uaXRvciBhbm90aGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTU2MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgdGhhdCB3
ZSBjYW4gZW5mb3JjZSBtdWx0aXBsZSBwb2xpY2llcyBhbmQgdGhhdCB3ZSBjYW4gZW5mb3JjZSBv
bmUKKyAgICAgICAgcG9saWN5IHdoaWxlIG1vbml0b3JpbmcgYW5vdGhlci4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2NvbWJpbmUtbXVsdGlw
bGUtcG9saWNpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9jb21iaW5lLW11bHRpcGxlLXBvbGljaWVzLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3JlcG9ydC1hbmQtZW5mb3JjZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3JlcG9ydC1hbmQtZW5m
b3JjZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wNS0wNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBh
cHBsZS5jb20+CiAKICAgICAgICAgU2hhcmUgc3R5bGVzaGVldCBkYXRhIHN0cnVjdHVyZXMgYmV0
d2VlbiBkb2N1bWVudHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L2NvbWJpbmUtbXVsdGlwbGUtcG9saWNpZXMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvY29tYmluZS1tdWx0aXBsZS1wb2xpY2llcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmM1ZWRlZWZmYWMzZmZhNGU2YmY1MTBjYTRjYTM3OTlkZGM1ZTI1YQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L2NvbWJpbmUtbXVsdGlwbGUtcG9saWNpZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAor
Q09OU09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGV4ZWN1dGUgaW5saW5lIHNjcmlwdCBiZWNhdXNl
IG9mIENvbnRlbnQtU2VjdXJpdHktUG9saWN5LgorCitDT05TT0xFIE1FU1NBR0U6IFJlZnVzZWQg
dG8gYXBwbHkgaW5saW5lIHN0eWxlIGJlY2F1c2Ugb2YgQ29udGVudC1TZWN1cml0eS1Qb2xpY3ku
CisKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB3ZSBlbmZvcmNlIGFsbCB0aGUgc3VwcGxpZWQgcG9s
aWNpZXMuIFRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBhbGVydCBmYWlsIGFuZCBpZiB0
aGUgc3R5bGUgZG9lc24ndCBhcHBseS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2NvbWJpbmUtbXVsdGlwbGUtcG9saWNp
ZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L2NvbWJpbmUtbXVsdGlwbGUtcG9saWNpZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMGIwNTJm
ZDg4MzI4ZjM1MWMzZmJlMjU1ZDEwY2RiNjhkZjBlYzc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvY29tYmlu
ZS1tdWx0aXBsZS1wb2xpY2llcy5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IlgtV2ViS2l0LUNTUCIgY29udGVu
dD0ic2NyaXB0LXNyYyAnc2VsZiciPgorPG1ldGEgaHR0cC1lcXVpdj0iWC1XZWJLaXQtQ1NQIiBj
b250ZW50PSJzdHlsZS1zcmMgJ25vbmUnIj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZHVtcC1h
cy10ZXh0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0IGNoZWNrcyB0
aGF0IHdlIGVuZm9yY2UgYWxsIHRoZSBzdXBwbGllZCBwb2xpY2llcy4gIFRoaXMgdGVzdCBwYXNz
ZXMKK2lmIGl0IGRvZXNuJ3QgYWxlcnQgZmFpbCBhbmQgaWYgdGhlIHN0eWxlIGRvZXNuJ3QgYXBw
bHkuCis8c2NyaXB0PgorYWxlcnQoJ0ZBSUwnKTsKKzwvc2NyaXB0PgorPHN0eWxlPgorYm9keSB7
CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorPC9zdHlsZT4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L3JlcG9ydC1hbmQtZW5mb3JjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXBvcnQtYW5kLWVu
Zm9yY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmYTNmNzc3YjBmNjdkMTk0Y2VjYTRkOTM4
Yzg2ODZmNGIzYmM2MDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXBvcnQtYW5kLWVuZm9yY2UtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0NPTlNPTEUgTUVTU0FHRTogW1JlcG9ydCBPbmx5XSBS
ZWZ1c2VkIHRvIGV4ZWN1dGUgaW5saW5lIHNjcmlwdCBiZWNhdXNlIG9mIENvbnRlbnQtU2VjdXJp
dHktUG9saWN5LgorCitBTEVSVDogUEFTUworQ09OU09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGxv
YWQgaW1hZ2UgZnJvbSAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9h
YmUucG5nJyBiZWNhdXNlIG9mIENvbnRlbnQtU2VjdXJpdHktUG9saWN5LgorCitDU1AgcmVwb3J0
IHJlY2VpdmVkOgorQ09OVEVOVF9UWVBFOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29k
ZWQKK0hUVFBfUkVGRVJFUjogaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9yZXBvcnQtYW5kLWVuZm9yY2UuaHRtbAorUkVRVUVTVF9NRVRIT0Q6IFBP
U1QKKz09PSBQT1NUIERBVEEgPT09Citkb2N1bWVudC11cmw6IGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVwb3J0LWFuZC1lbmZvcmNlLmh0bWwK
K3Zpb2xhdGVkLWRpcmVjdGl2ZTogc2NyaXB0LXNyYyAnc2VsZicKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3JlcG9ydC1h
bmQtZW5mb3JjZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvcmVwb3J0LWFuZC1lbmZvcmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjYyZTg5
ZmZmNjU1YTg0NTYwNWFmNmU1YWI1MTkxNGRjNGM0YjIyOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3JlcG9y
dC1hbmQtZW5mb3JjZS5odG1sCkBAIC0wLDAgKzEsOSBAQAorPG1ldGEgaHR0cC1lcXVpdj0iWC1X
ZWJLaXQtQ1NQIiBjb250ZW50PSJpbWctc3JjICdub25lJyI+Cis8bWV0YSBodHRwLWVxdWl2PSJY
LVdlYktpdC1DU1AtUmVwb3J0LU9ubHkiIGNvbnRlbnQ9InNjcmlwdC1zcmMgJ3NlbGYnOyByZXBv
cnQtdXJpIHJlc291cmNlcy9zYXZlLXJlcG9ydC5waHAiPgorPHNjcmlwdD4KKy8vIFRoaXMgc2Ny
aXB0IGJsb2NrIHdpbGwgdHJpZ2dlciBhIHZpb2xhdGlvbiByZXBvcnQgYnV0IHNob3VsZG4ndCBi
ZSBibG9ja2VkLgorYWxlcnQoJ1BBU1MnKTsKKzwvc2NyaXB0PgorVGhpcyBpbWFnZSBzaG91bGQg
YmUgYmxvY2tlZCwgYnV0IHNob3VsZCBub3Qgc2hvdyB1cCBpbiB0aGUgdmlvbGF0aW9uIHJlcG9y
dC4KKzxpbWcgc3JjPSIuLi9yZXNvdXJjZXMvYWJlLnBuZyI+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2dvLXRvLWVjaG8tcmVwb3J0LmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140443</attachid>
            <date>2012-05-06 16:15:41 -0700</date>
            <delta_ts>2012-05-06 17:52:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85561-20120506161540.patch</filename>
            <type>text/plain</type>
            <size>20587</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY2MDcwZTY2MzdjNzc5
YTUzMWQ2Y2Y0YTRlODEyMjk3Y2Q4M2Y2ZS4uYTBiNTAwYjU0MGE4NTNiYjg2NDZmOGUxYmFjMTBh
Yzk5NzZhYjkyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA1LTA2ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1NQIHNob3VsZCBsZXQgc2l0
ZXMgYm90aCBlbmZvcmNlIG9uZSBwb2xpY3kgYW5kIG1vbml0b3IgYW5vdGhlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU1NjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGxldHMgdXMg
ZW5mb3JjZSBhbmQvb3IgbW9uaXRvciBtdWx0aXBsZSBDU1AgcG9saWNpZXMuCisgICAgICAgIFJh
dGhlciB0aGFuIGhhdmluZyBhIHNpbmdsZSBkaXJlY3RpdmUgbGlzdCwgd2Ugbm93IGhhdmUgYSB2
ZWN0b3Igb2YKKyAgICAgICAgZGlyZWN0aXZlIGxpc3RzLgorCisgICAgICAgIFRlc3RzOiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9jb21iaW5lLW11bHRpcGxlLXBv
bGljaWVzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L3JlcG9ydC1hbmQtZW5mb3JjZS5odG1sCisKKyAgICAgICAgKiBwYWdlL0Nv
bnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJp
dHlQb2xpY3k6OmNvcHlTdGF0ZUZyb20pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3Vy
aXR5UG9saWN5OjpkaWRSZWNlaXZlSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRT
ZWN1cml0eVBvbGljeTo6ZGVwcmVjYXRlZEhlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50U2VjdXJpdHlQb2xpY3k6OmRlcHJlY2F0ZWRIZWFkZXJUeXBlKToKKyAgICAgICAgICAgIC0g
RXZlbiBhZnRlciB0aGlzIHBhdGNoLCB3b3JrZXJzIGFyZW4ndCBzbWFydCBlbm91Z2ggdG8gZW5m
b3JjZQorICAgICAgICAgICAgICBtdWx0aXBsZSBwb2xpY2llcy4gIFRoZXkganVzdCB1c2UgdGhl
IGZpcnN0IGhlYWRlciwgbGlrZSB0aGV5IGRpZAorICAgICAgICAgICAgICBiZWZvcmUuICBXZSds
bCBuZWVkIHRvIHRlYWNoIHdvcmtlcnMgaG93IHRvIGVuZm9yY2UgbXVsdGlwbGUKKyAgICAgICAg
ICAgICAgcG9saWNpZXMgaW4gYSBmdXR1cmUgcGF0Y2guCisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SmF2YVNjcmlwdFVSTHMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZUV2ZW50SGFuZGxlcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZVNjcmlwdCk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SW5saW5lU3R5
bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0V2YWwp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd1NjcmlwdEZy
b21Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxv
d09iamVjdEZyb21Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9s
aWN5OjphbGxvd0NoaWxkRnJhbWVGcm9tU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRTZWN1cml0eVBvbGljeTo6YWxsb3dJbWFnZUZyb21Tb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd1N0eWxlRnJvbVNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93Rm9udEZyb21Tb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd01lZGlhRnJvbVNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93Q29u
bmVjdEZyb21Tb3VyY2UpOgorICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5Lmg6
CisgICAgICAgICogd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVk
KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckNvbnRleHQpOgorCiAy
MDEyLTA1LTA2ICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAg
ICAgICAgIFt3eF0gVW5yZXZpZXdlZC4gQnVpbGQgZml4ZXMgZm9yIHJlY2VudCB0cnVuayBjaGFu
Z2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBhM2NjOTYyMGIxNGRkNDE1MjA2ZWNm
OGRhMWU5YzdkZWUzYjYyZjhiLi4wZDJjNDExY2Y4MzE4MjI2Zjc2NjU3YTIwMTkwY2EzNGMzOWQ0
Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA1
LTA2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1NQIHNob3Vs
ZCBsZXQgc2l0ZXMgYm90aCBlbmZvcmNlIG9uZSBwb2xpY3kgYW5kIG1vbml0b3IgYW5vdGhlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU1NjEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9TaGFy
ZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclNj
cmlwdExvYWRlcjo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIHNyYy9XZWJXb3JrZXJDbGll
bnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VyQ2xpZW50SW1wbDo6c3RhcnRX
b3JrZXJDb250ZXh0KToKKwogMjAxMi0wNS0wNiAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHRha2UgdGltZWxpbmUgZnJhbWUg
bW9kZSBvdXQgb2YgZXhwZXJpbWVudGFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRT
ZWN1cml0eVBvbGljeS5jcHAKaW5kZXggNjAzZTE4Zjg3Y2NkMDVjNjQ2ODFmOGI4NzE3ZWNiMTBh
ZjY0ODAzYS4uZWIxZjc4OTQzZTIwMDIwNTZmMmE0N2JiMjI5Nzg1ZjlmMGY4ZWFjYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcApAQCAtODg3LDE2
ICs4ODcsMTQgQEAgQ29udGVudFNlY3VyaXR5UG9saWN5Ojp+Q29udGVudFNlY3VyaXR5UG9saWN5
KCkKIAogdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmNvcHlTdGF0ZUZyb20oY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5KiBvdGhlcikgCiB7Ci0gICAgQVNTRVJUKCFtX3BvbGljeSk7Ci0g
ICAgaWYgKG90aGVyLT5tX3BvbGljeSkKLSAgICAgICAgZGlkUmVjZWl2ZUhlYWRlcihvdGhlci0+
aGVhZGVyKCksIG90aGVyLT5oZWFkZXJUeXBlKCkpOworICAgIEFTU0VSVChtX3BvbGljaWVzLmlz
RW1wdHkoKSk7CisgICAgZm9yIChDU1BEaXJlY3RpdmVMaXN0VmVjdG9yOjpjb25zdF9pdGVyYXRv
ciBpdGVyID0gb3RoZXItPm1fcG9saWNpZXMuYmVnaW4oKTsgaXRlciAhPSBvdGhlci0+bV9wb2xp
Y2llcy5lbmQoKTsgKytpdGVyKQorICAgICAgICBkaWRSZWNlaXZlSGVhZGVyKCgqaXRlciktPmhl
YWRlcigpLCAoKml0ZXIpLT5oZWFkZXJUeXBlKCkpOwogfQogCiB2b2lkIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6ZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJpbmcmIGhlYWRlciwgSGVhZGVyVHlw
ZSB0eXBlKQogewotICAgIGlmIChtX3BvbGljeSkKLSAgICAgICAgcmV0dXJuOyAvLyBUaGUgZmly
c3QgcG9saWN5IHdpbnMuCi0gICAgbV9wb2xpY3kgPSBDU1BEaXJlY3RpdmVMaXN0OjpjcmVhdGUo
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LCBoZWFkZXIsIHR5cGUpOworICAgIG1fcG9saWNpZXMu
YXBwZW5kKENTUERpcmVjdGl2ZUxpc3Q6OmNyZWF0ZShtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IGhlYWRlciwgdHlwZSkpOwogfQogCiB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6c2V0T3Zl
cnJpZGVBbGxvd0lubGluZVN0eWxlKGJvb2wgdmFsdWUpCkBAIC05MDQsNzkgKzkwMiwxMDEgQEAg
dm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnNldE92ZXJyaWRlQWxsb3dJbmxpbmVTdHlsZShi
b29sIHZhbHVlKQogICAgIG1fb3ZlcnJpZGVJbmxpbmVTdHlsZUFsbG93ZWQgPSB2YWx1ZTsKIH0K
IAotY29uc3QgU3RyaW5nJiBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmhlYWRlcigpIGNvbnN0Citj
b25zdCBTdHJpbmcmIENvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGVwcmVjYXRlZEhlYWRlcigpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1fcG9saWN5ID8gbV9wb2xpY3ktPmhlYWRlcigpIDogZW1wdHlT
dHJpbmcoKTsKKyAgICByZXR1cm4gbV9wb2xpY2llcy5pc0VtcHR5KCkgPyBlbXB0eVN0cmluZygp
IDogbV9wb2xpY2llc1swXS0+aGVhZGVyKCk7CiB9CiAKLUNvbnRlbnRTZWN1cml0eVBvbGljeTo6
SGVhZGVyVHlwZSBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmhlYWRlclR5cGUoKSBjb25zdAorQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIENvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGVw
cmVjYXRlZEhlYWRlclR5cGUoKSBjb25zdAogewotICAgIHJldHVybiBtX3BvbGljeSA/IG1fcG9s
aWN5LT5oZWFkZXJUeXBlKCkgOiBFbmZvcmNlUG9saWN5OworICAgIHJldHVybiBtX3BvbGljaWVz
LmlzRW1wdHkoKSA/IEVuZm9yY2VQb2xpY3kgOiBtX3BvbGljaWVzWzBdLT5oZWFkZXJUeXBlKCk7
Cit9CisKK3RlbXBsYXRlPGJvb2wgKENTUERpcmVjdGl2ZUxpc3Q6OiphbGxvd2VkKSgpIGNvbnN0
PgorYm9vbCBpc0FsbG93ZWRCeUFsbChjb25zdCBDU1BEaXJlY3RpdmVMaXN0VmVjdG9yJiBwb2xp
Y2llcykKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBvbGljaWVzLnNpemUoKTsgKytp
KSB7CisgICAgICAgIGlmICghKHBvbGljaWVzW2ldLmdldCgpLT4qYWxsb3dlZCkoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3RlbXBs
YXRlPGJvb2wgKENTUERpcmVjdGl2ZUxpc3Q6OiphbGxvd0Zyb21VUkwpKGNvbnN0IEtVUkwmKSBj
b25zdD4KK2Jvb2wgaXNBbGxvd2VkQnlBbGwoY29uc3QgQ1NQRGlyZWN0aXZlTGlzdFZlY3RvciYg
cG9saWNpZXMsIGNvbnN0IEtVUkwmIHVybCkKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHBvbGljaWVzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmICghKHBvbGljaWVzW2ldLmdldCgp
LT4qYWxsb3dGcm9tVVJMKSh1cmwpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93
SmF2YVNjcmlwdFVSTHMoKSBjb25zdAogewotICAgIHJldHVybiAhbV9wb2xpY3kgfHwgbV9wb2xp
Y3ktPmFsbG93SmF2YVNjcmlwdFVSTHMoKTsKKyAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGw8JkNT
UERpcmVjdGl2ZUxpc3Q6OmFsbG93SmF2YVNjcmlwdFVSTHM+KG1fcG9saWNpZXMpOwogfQogCiBi
b29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dJbmxpbmVFdmVudEhhbmRsZXJzKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxvd0lubGluZUV2ZW50
SGFuZGxlcnMoKTsKKyAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGw8JkNTUERpcmVjdGl2ZUxpc3Q6
OmFsbG93SW5saW5lRXZlbnRIYW5kbGVycz4obV9wb2xpY2llcyk7CiB9CiAKIGJvb2wgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjphbGxvd0lubGluZVNjcmlwdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
ICFtX3BvbGljeSB8fCBtX3BvbGljeS0+YWxsb3dJbmxpbmVTY3JpcHQoKTsKKyAgICByZXR1cm4g
aXNBbGxvd2VkQnlBbGw8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lU2NyaXB0PihtX3Bv
bGljaWVzKTsKIH0KIAogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93SW5saW5lU3R5
bGUoKSBjb25zdAogewotICAgIHJldHVybiAhbV9wb2xpY3kgfHwgbV9vdmVycmlkZUlubGluZVN0
eWxlQWxsb3dlZCB8fCBtX3BvbGljeS0+YWxsb3dJbmxpbmVTdHlsZSgpOworICAgIGlmIChtX292
ZXJyaWRlSW5saW5lU3R5bGVBbGxvd2VkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1
cm4gaXNBbGxvd2VkQnlBbGw8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93SW5saW5lU3R5bGU+KG1f
cG9saWNpZXMpOwogfQogCiBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dFdmFsKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gIW1fcG9saWN5IHx8IG1fcG9saWN5LT5hbGxvd0V2YWwoKTsK
KyAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGw8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93RXZhbD4o
bV9wb2xpY2llcyk7CiB9CiAKIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd1Njcmlw
dEZyb21Tb3VyY2UoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewotICAgIHJldHVybiAhbV9wb2xp
Y3kgfHwgbV9wb2xpY3ktPmFsbG93U2NyaXB0RnJvbVNvdXJjZSh1cmwpOworICAgIHJldHVybiBp
c0FsbG93ZWRCeUFsbDwmQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHRGcm9tU291cmNlPiht
X3BvbGljaWVzLCB1cmwpOwogfQogCiBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dP
YmplY3RGcm9tU291cmNlKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKIHsKLSAgICByZXR1cm4gIW1f
cG9saWN5IHx8IG1fcG9saWN5LT5hbGxvd09iamVjdEZyb21Tb3VyY2UodXJsKTsKKyAgICByZXR1
cm4gaXNBbGxvd2VkQnlBbGw8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93T2JqZWN0RnJvbVNvdXJj
ZT4obV9wb2xpY2llcywgdXJsKTsKIH0KIAogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFs
bG93Q2hpbGRGcmFtZUZyb21Tb3VyY2UoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogewotICAgIHJl
dHVybiAhbV9wb2xpY3kgfHwgbV9wb2xpY3ktPmFsbG93Q2hpbGRGcmFtZUZyb21Tb3VyY2UodXJs
KTsKKyAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGw8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93Q2hp
bGRGcmFtZUZyb21Tb3VyY2U+KG1fcG9saWNpZXMsIHVybCk7CiB9CiAKIGJvb2wgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjphbGxvd0ltYWdlRnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuICFtX3BvbGljeSB8fCBtX3BvbGljeS0+YWxsb3dJbWFnZUZyb21Tb3Vy
Y2UodXJsKTsKKyAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGw8JkNTUERpcmVjdGl2ZUxpc3Q6OmFs
bG93SW1hZ2VGcm9tU291cmNlPihtX3BvbGljaWVzLCB1cmwpOwogfQogCiBib29sIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6YWxsb3dTdHlsZUZyb21Tb3VyY2UoY29uc3QgS1VSTCYgdXJsKSBjb25z
dAogewotICAgIHJldHVybiAhbV9wb2xpY3kgfHwgbV9wb2xpY3ktPmFsbG93U3R5bGVGcm9tU291
cmNlKHVybCk7CisgICAgcmV0dXJuIGlzQWxsb3dlZEJ5QWxsPCZDU1BEaXJlY3RpdmVMaXN0Ojph
bGxvd1N0eWxlRnJvbVNvdXJjZT4obV9wb2xpY2llcywgdXJsKTsKIH0KIAogYm9vbCBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OmFsbG93Rm9udEZyb21Tb3VyY2UoY29uc3QgS1VSTCYgdXJsKSBjb25z
dAogewotICAgIHJldHVybiAhbV9wb2xpY3kgfHwgbV9wb2xpY3ktPmFsbG93Rm9udEZyb21Tb3Vy
Y2UodXJsKTsKKyAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGw8JkNTUERpcmVjdGl2ZUxpc3Q6OmFs
bG93Rm9udEZyb21Tb3VyY2U+KG1fcG9saWNpZXMsIHVybCk7CiB9CiAKIGJvb2wgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjphbGxvd01lZGlhRnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuICFtX3BvbGljeSB8fCBtX3BvbGljeS0+YWxsb3dNZWRpYUZyb21Tb3Vy
Y2UodXJsKTsKKyAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGw8JkNTUERpcmVjdGl2ZUxpc3Q6OmFs
bG93TWVkaWFGcm9tU291cmNlPihtX3BvbGljaWVzLCB1cmwpOwogfQogCiBib29sIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6YWxsb3dDb25uZWN0RnJvbVNvdXJjZShjb25zdCBLVVJMJiB1cmwpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuICFtX3BvbGljeSB8fCBtX3BvbGljeS0+YWxsb3dDb25uZWN0RnJv
bVNvdXJjZSh1cmwpOworICAgIHJldHVybiBpc0FsbG93ZWRCeUFsbDwmQ1NQRGlyZWN0aXZlTGlz
dDo6YWxsb3dDb25uZWN0RnJvbVNvdXJjZT4obV9wb2xpY2llcywgdXJsKTsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKaW5kZXggNGIxODI1Y2Zm
MzI0NDgwMDc0MDBkNzA5OTQwM2FlMDZmMTgyYzU4NC4uNTVkMjE4MDBlZGM3N2JlZTdhYzllYzVm
Mzg0ZTI0YWQ1Njc1ZmMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50
U2VjdXJpdHlQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0
eVBvbGljeS5oCkBAIC0zNyw2ICszNyw4IEBAIGNsYXNzIENTUERpcmVjdGl2ZUxpc3Q7CiBjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgS1VSTDsKIAordHlwZWRlZiBWZWN0b3I8
T3duUHRyPENTUERpcmVjdGl2ZUxpc3Q+ID4gQ1NQRGlyZWN0aXZlTGlzdFZlY3RvcjsKKwogY2xh
c3MgQ29udGVudFNlY3VyaXR5UG9saWN5IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0
cjxDb250ZW50U2VjdXJpdHlQb2xpY3k+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KQpAQCAtNTQsOCArNTYsMTAgQEAgcHVibGljOgogCiAgICAg
dm9pZCBkaWRSZWNlaXZlSGVhZGVyKGNvbnN0IFN0cmluZyYsIEhlYWRlclR5cGUpOwogCi0gICAg
Y29uc3QgU3RyaW5nJiBoZWFkZXIoKSBjb25zdDsKLSAgICBIZWFkZXJUeXBlIGhlYWRlclR5cGUo
KSBjb25zdDsKKyAgICAvLyBUaGVzZSBmdW5jdGlvbnMgYXJlIHdyb25nIGJlY3Vhc2UgdGhleSBh
c3N1bWUgdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSBoZWFkZXIuCisgICAgLy8gRklYTUU6IFJlcGxh
Y2UgdGhlbSB3aXRoIGZ1bmN0aW9ucyB0aGF0IHJldHVybiB2ZWN0b3JzLgorICAgIGNvbnN0IFN0
cmluZyYgZGVwcmVjYXRlZEhlYWRlcigpIGNvbnN0OworICAgIEhlYWRlclR5cGUgZGVwcmVjYXRl
ZEhlYWRlclR5cGUoKSBjb25zdDsKIAogICAgIGJvb2wgYWxsb3dKYXZhU2NyaXB0VVJMcygpIGNv
bnN0OwogICAgIGJvb2wgYWxsb3dJbmxpbmVFdmVudEhhbmRsZXJzKCkgY29uc3Q7CkBAIC03OSw3
ICs4Myw3IEBAIHByaXZhdGU6CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQ7CiAgICAgYm9vbCBtX292ZXJyaWRlSW5saW5lU3R5bGVBbGxvd2Vk
OwotICAgIE93blB0cjxDU1BEaXJlY3RpdmVMaXN0PiBtX3BvbGljeTsKKyAgICBDU1BEaXJlY3Rp
dmVMaXN0VmVjdG9yIG1fcG9saWNpZXM7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCmluZGV4IDc2
NzRhZDI4YTgwOTEwNjNmMmU3ZDVlMGM1OTA3YmZhODk4NDNmOWIuLjBkYjM0ODAyMzAxYTM2YjAy
OThmMWZiNzQ5YzY1OGVhYmExMTllNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCkBAIC0zMjIsOCArMzIy
LDggQEAgdm9pZCBTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKCkKICAg
ICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRlZChtX3dvcmtlci0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3NjcmlwdExvYWRlci0+aWRlbnRpZmllcigpLCBt
X3NjcmlwdExvYWRlci0+c2NyaXB0KCkpOwogICAgICAgICBEZWZhdWx0U2hhcmVkV29ya2VyUmVw
b3NpdG9yeTo6aW5zdGFuY2UoKS53b3JrZXJTY3JpcHRMb2FkZWQoKm1fcHJveHksIG1fd29ya2Vy
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVzZXJBZ2VudChtX3NjcmlwdExvYWRlci0+dXJs
KCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgpLCBtX3BvcnQucmVsZWFz
ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29u
dGVudFNlY3VyaXR5UG9saWN5KCktPmhlYWRlcigpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV93b3JrZXItPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmhlYWRlclR5
cGUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3dvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5j
b250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGVwcmVjYXRlZEhlYWRlcigpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5
KCktPmRlcHJlY2F0ZWRIZWFkZXJUeXBlKCkpOwogICAgIH0KICAgICBtX3dvcmtlci0+dW5zZXRQ
ZW5kaW5nQWN0aXZpdHkobV93b3JrZXIuZ2V0KCkpOwogICAgIHRoaXMtPmRlcmVmKCk7IC8vIFRo
aXMgZnJlZXMgdGhpcyBvYmplY3QgLSBtdXN0IGJlIHRoZSBsYXN0IGFjdGlvbiBpbiB0aGlzIGZ1
bmN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcAppbmRleCA1OWQ0YmEzNTEyMzEyY2JmOTE3ZDU2ZDA0NWU3ZjE1MzBmZDdiZmFiLi5kM2Fi
N2UyMGY3NTVhYjhmNzU4NDE2MjIyNjJkNWFiMzk2OGQyM2I4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtMjcyLDggKzI3Miw4IEBA
IFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogdm9pZCBXb3Jr
ZXJNZXNzYWdpbmdQcm94eTo6c3RhcnRXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmIHNjcmlwdFVS
TCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29y
a2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSkKIHsKICAgICBSZWZQdHI8RGVkaWNhdGVkV29y
a2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShzY3JpcHRV
UkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCBzdGFydE1vZGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5jb250ZW50U2VjdXJpdHlQb2xp
Y3koKS0+aGVhZGVyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+aGVhZGVyVHlwZSgpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kZXBy
ZWNhdGVkSGVhZGVyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGVwcmVjYXRlZEhlYWRlclR5cGUoKSk7CiAgICAg
d29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQpOwogICAgIHRocmVhZC0+c3RhcnQoKTsKICAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFN0YXJ0V29ya2VyQ29udGV4dChtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuZ2V0KCksIHRoaXMsIHNjcmlwdFVSTCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9TaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1NoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCmluZGV4IDg4
YWNiZTExNjMwNWFlMTgzZTM1NzYxMzcxMDU4NzZkMDc1ZGIzNjkuLjcwYjgwMGI1YzM0OTc1M2Qw
ZWRiZmQ2NzVmNzVmODQ0YjkzOTVmYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1NoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1NoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCkBAIC0xNzEsOCArMTcxLDggQEAg
dm9pZCBTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKCkKICAgICAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRlZChtX3dvcmtlci0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCBtX3NjcmlwdExvYWRlci0+aWRlbnRpZmllcigpLCBtX3Njcmlw
dExvYWRlci0+c2NyaXB0KCkpOwogICAgICAgICAvLyBQYXNzIHRoZSBzY3JpcHQgb2ZmIHRvIHRo
ZSB3b3JrZXIsIHRoZW4gc2VuZCBhIGNvbm5lY3QgZXZlbnQuCiAgICAgICAgIG1fd2ViV29ya2Vy
LT5zdGFydFdvcmtlckNvbnRleHQobV91cmwsIG1fbmFtZSwgbV93b3JrZXItPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+dXNlckFnZW50KG1fdXJsKSwgbV9zY3JpcHRMb2FkZXItPnNjcmlwdCgp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fd29ya2VyLT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5oZWFkZXIoKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxXZWJL
aXQ6OldlYkNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGU+KG1fd29ya2VyLT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5oZWFkZXJUeXBlKCkpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fd29ya2VyLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kZXByZWNhdGVkSGVhZGVy
KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
V2ViS2l0OjpXZWJDb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlPihtX3dvcmtlci0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGVwcmVjYXRlZEhlYWRl
clR5cGUoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9yZXNw
b25zZUFwcENhY2hlSUQpOwogICAgICAgICBzZW5kQ29ubmVjdCgpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAKaW5kZXgg
ZmIxMDAwNWVmODk5ZDc1OTZlZmY1MzMxMDUyNjhlMjdmYTc0ZDYzZi4uYWVlN2IxZGY0Yzc4NjJl
ZDVmMjNhMjE4MzE3NjI0NmYyYmM4YTY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAKQEAgLTg3LDggKzg3LDggQEAgV29ya2Vy
Q29udGV4dFByb3h5KiBXZWJXb3JrZXJDbGllbnRJbXBsOjpjcmVhdGVXb3JrZXJDb250ZXh0UHJv
eHkoV29ya2VyKiB3b3JrZXIKIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6c3RhcnRXb3JrZXJD
b250ZXh0KGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNv
bnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSkK
IHsKICAgICBSZWZQdHI8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQ6OmNyZWF0ZShzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRo
aXMsICp0aGlzLCBzdGFydE1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+aGVhZGVyKCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+aGVh
ZGVyVHlwZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmNv
bnRlbnRTZWN1cml0eVBvbGljeSgpLT5kZXByZWNhdGVkSGVhZGVyKCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGVw
cmVjYXRlZEhlYWRlclR5cGUoKSk7CiAgICAgbV9wcm94eS0+d29ya2VyVGhyZWFkQ3JlYXRlZCh0
aHJlYWQpOwogICAgIHRocmVhZC0+c3RhcnQoKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZFN0YXJ0V29ya2VyQ29udGV4dChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuZ2V0KCks
IG1fcHJveHksIHNjcmlwdFVSTCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGJjNWI1M2Q0MDVlOGMzNGMzODdlZTA2M2Y2
MGViYjQ2NmUxNGY4MC4uNDdjM2I5NmFkM2U0MDc3NzQyODUzMjViNGJmOTljN2E0YWNiYjNjYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA1LTA2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgQ1NQIHNob3VsZCBsZXQgc2l0ZXMgYm90aCBlbmZvcmNlIG9u
ZSBwb2xpY3kgYW5kIG1vbml0b3IgYW5vdGhlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU1NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0IHRoYXQgd2UgY2FuIGVuZm9yY2UgbXVsdGlwbGUgcG9s
aWNpZXMgYW5kIHRoYXQgd2UgY2FuIGVuZm9yY2Ugb25lCisgICAgICAgIHBvbGljeSB3aGlsZSBt
b25pdG9yaW5nIGFub3RoZXIuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9jb21iaW5lLW11bHRpcGxlLXBvbGljaWVzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvY29tYmluZS1tdWx0aXBsZS1wb2xpY2llcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXBvcnQtYW5kLWVuZm9yY2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9yZXBvcnQtYW5kLWVuZm9yY2UuaHRtbDogQWRkZWQuCisKIDIwMTIt
MDUtMDUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFNoYXJl
IHN0eWxlc2hlZXQgZGF0YSBzdHJ1Y3R1cmVzIGJldHdlZW4gZG9jdW1lbnRzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9j
b21iaW5lLW11bHRpcGxlLXBvbGljaWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2NvbWJpbmUtbXVsdGlwbGUtcG9s
aWNpZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjNWVkZWVmZmFjM2ZmYTRlNmJmNTEwY2E0
Y2EzNzk5ZGRjNWUyNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9jb21iaW5lLW11bHRpcGxlLXBvbGljaWVz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0
byBleGVjdXRlIGlubGluZSBzY3JpcHQgYmVjYXVzZSBvZiBDb250ZW50LVNlY3VyaXR5LVBvbGlj
eS4KKworQ09OU09MRSBNRVNTQUdFOiBSZWZ1c2VkIHRvIGFwcGx5IGlubGluZSBzdHlsZSBiZWNh
dXNlIG9mIENvbnRlbnQtU2VjdXJpdHktUG9saWN5LgorCitUaGlzIHRlc3QgY2hlY2tzIHRoYXQg
d2UgZW5mb3JjZSBhbGwgdGhlIHN1cHBsaWVkIHBvbGljaWVzLiBUaGlzIHRlc3QgcGFzc2VzIGlm
IGl0IGRvZXNuJ3QgYWxlcnQgZmFpbCBhbmQgaWYgdGhlIHN0eWxlIGRvZXNuJ3QgYXBwbHkuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9jb21iaW5lLW11bHRpcGxlLXBvbGljaWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9jb21iaW5lLW11bHRpcGxlLXBv
bGljaWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjBiMDUyZmQ4ODMyOGYzNTFjM2ZiZTI1NWQxMGNkYjY4
ZGYwZWM3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L2NvbWJpbmUtbXVsdGlwbGUtcG9saWNpZXMuaHRtbApA
QCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBo
dHRwLWVxdWl2PSJYLVdlYktpdC1DU1AiIGNvbnRlbnQ9InNjcmlwdC1zcmMgJ3NlbGYnIj4KKzxt
ZXRhIGh0dHAtZXF1aXY9IlgtV2ViS2l0LUNTUCIgY29udGVudD0ic3R5bGUtc3JjICdub25lJyI+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2R1bXAtYXMtdGV4dC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB3ZSBlbmZvcmNlIGFsbCB0aGUgc3Vw
cGxpZWQgcG9saWNpZXMuICBUaGlzIHRlc3QgcGFzc2VzCitpZiBpdCBkb2Vzbid0IGFsZXJ0IGZh
aWwgYW5kIGlmIHRoZSBzdHlsZSBkb2Vzbid0IGFwcGx5LgorPHNjcmlwdD4KK2FsZXJ0KCdGQUlM
Jyk7Cis8L3NjcmlwdD4KKzxzdHlsZT4KK2JvZHkgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJl
ZDsKK30KKzwvc3R5bGU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXBvcnQtYW5kLWVu
Zm9yY2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvcmVwb3J0LWFuZC1lbmZvcmNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lZmEzZjc3N2IwZjY3ZDE5NGNlY2E0ZDkzOGM4Njg2ZjRiM2JjNjA0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvcmVwb3J0LWFuZC1lbmZvcmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitD
T05TT0xFIE1FU1NBR0U6IFtSZXBvcnQgT25seV0gUmVmdXNlZCB0byBleGVjdXRlIGlubGluZSBz
Y3JpcHQgYmVjYXVzZSBvZiBDb250ZW50LVNlY3VyaXR5LVBvbGljeS4KKworQUxFUlQ6IFBBU1MK
K0NPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0byBsb2FkIGltYWdlIGZyb20gJ2h0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvYWJlLnBuZycgYmVjYXVzZSBvZiBDb250ZW50
LVNlY3VyaXR5LVBvbGljeS4KKworQ1NQIHJlcG9ydCByZWNlaXZlZDoKK0NPTlRFTlRfVFlQRTog
YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkCitIVFRQX1JFRkVSRVI6IGh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVwb3J0LWFuZC1l
bmZvcmNlLmh0bWwKK1JFUVVFU1RfTUVUSE9EOiBQT1NUCis9PT0gUE9TVCBEQVRBID09PQorZG9j
dW1lbnQtdXJsOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3JlcG9ydC1hbmQtZW5mb3JjZS5odG1sCit2aW9sYXRlZC1kaXJlY3RpdmU6IHNjcmlw
dC1zcmMgJ3NlbGYnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXBvcnQtYW5kLWVuZm9yY2UuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3JlcG9ydC1hbmQt
ZW5mb3JjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2MmU4OWZmZjY1NWE4NDU2MDVhZjZlNWFiNTE5MTRk
YzRjNGIyMjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXBvcnQtYW5kLWVuZm9yY2UuaHRtbApAQCAtMCww
ICsxLDkgQEAKKzxtZXRhIGh0dHAtZXF1aXY9IlgtV2ViS2l0LUNTUCIgY29udGVudD0iaW1nLXNy
YyAnbm9uZSciPgorPG1ldGEgaHR0cC1lcXVpdj0iWC1XZWJLaXQtQ1NQLVJlcG9ydC1Pbmx5IiBj
b250ZW50PSJzY3JpcHQtc3JjICdzZWxmJzsgcmVwb3J0LXVyaSByZXNvdXJjZXMvc2F2ZS1yZXBv
cnQucGhwIj4KKzxzY3JpcHQ+CisvLyBUaGlzIHNjcmlwdCBibG9jayB3aWxsIHRyaWdnZXIgYSB2
aW9sYXRpb24gcmVwb3J0IGJ1dCBzaG91bGRuJ3QgYmUgYmxvY2tlZC4KK2FsZXJ0KCdQQVNTJyk7
Cis8L3NjcmlwdD4KK1RoaXMgaW1hZ2Ugc2hvdWxkIGJlIGJsb2NrZWQsIGJ1dCBzaG91bGQgbm90
IHNob3cgdXAgaW4gdGhlIHZpb2xhdGlvbiByZXBvcnQuCis8aW1nIHNyYz0iLi4vcmVzb3VyY2Vz
L2FiZS5wbmciPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9nby10by1lY2hvLXJlcG9ydC5qcyI+
PC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>