<?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>94331</bug_id>
          
          <creation_ts>2012-08-17 04:17:33 -0700</creation_ts>
          <short_desc>JSC should throw a more descriptive exception when blocking &apos;eval&apos; via CSP.</short_desc>
          <delta_ts>2012-09-14 16:33:03 -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 JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>93198</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike West">mkwst</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>abarth</cc>
    
    <cc>dbates</cc>
    
    <cc>ggaren</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>698185</commentid>
    <comment_count>0</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-17 04:17:33 -0700</bug_when>
    <thetext>When &apos;eval&apos; and &apos;eval&apos;-like constructs are blocked by a &apos;script-src&apos; Content Security Policy directive, JSC currently throws an exception reading &quot;Eval is disabled&quot;. This isn&apos;t bad, but it would be nice if that message included more detail about what exactly had gone wrong. I&apos;d like to see a string more along the lines of &lt;Refused to evaluate a string as JavaScript because it violates the following Content Security Policy directive: &quot;script-src &apos;unsafe-inline&apos;&quot;&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698253</commentid>
    <comment_count>1</comment_count>
      <attachid>159100</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-17 05:30:45 -0700</bug_when>
    <thetext>Created attachment 159100
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698343</commentid>
    <comment_count>2</comment_count>
      <attachid>159125</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-17 08:09:53 -0700</bug_when>
    <thetext>Created attachment 159125
Resetting tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698348</commentid>
    <comment_count>3</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-17 08:16:42 -0700</bug_when>
    <thetext>Hey Geoffrey, would you mind taking a look at the patch I&apos;ve just uploaded? It&apos;s a cleaned up version of the one you skimmed yesterday that pipes an error message down from ContentSecurityPolicy to the JSGlobalObject for use in thrown exceptions.

Adam, if you wouldn&apos;t mind peeking at the CSP bits as well, I&apos;d appreciate it. :)

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698438</commentid>
    <comment_count>4</comment_count>
      <attachid>159125</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-08-17 10:02:39 -0700</bug_when>
    <thetext>Comment on attachment 159125
Resetting tests.

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

Patch looks generally good. I have some small style comments, and a question about security policy policy.

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:807
&gt; +        String message = makeString(&quot;Refused to evaluate a string as JavaScript because it violates the following Content Security Policy directive: \&quot;&quot;, directives-&gt;operativeDirective(directives-&gt;m_scriptSrc.get())-&gt;text(), &quot;\&quot;.\n&quot;);

The proper tense here is &quot;violated&quot;, not &quot;violates&quot;, since &quot;Refused&quot; is in the past tense.

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:1353
&gt; +String ContentSecurityPolicy::evalDisabledErrorMessage() const
&gt; +{
&gt; +    for (size_t i = 0; i &lt; m_policies.size(); ++i) {

This is a linear search each time we make a new document. Is m_policies guaranteed to be very small?

Why did you choose the message from the first non-eval policy? What if there are more non-eval policies?

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:1354
&gt; +        if (!m_policies[i].get()-&gt;allowEval(0, SuppressReport))

No need for .get() on a smart pointer: operator-&gt; does the right thing.

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:1355
&gt; +            return m_policies[i].get()-&gt;evalDisabledErrorMessage();

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698476</commentid>
    <comment_count>5</comment_count>
      <attachid>159125</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-17 10:46:05 -0700</bug_when>
    <thetext>Comment on attachment 159125
Resetting tests.

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

Thanks for your comments! I&apos;ve addressed them in a patch I&apos;ll upload in a moment.

CSP discussion inline below:

&gt;&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:807
&gt;&gt; +        String message = makeString(&quot;Refused to evaluate a string as JavaScript because it violates the following Content Security Policy directive: \&quot;&quot;, directives-&gt;operativeDirective(directives-&gt;m_scriptSrc.get())-&gt;text(), &quot;\&quot;.\n&quot;);
&gt; 
&gt; The proper tense here is &quot;violated&quot;, not &quot;violates&quot;, since &quot;Refused&quot; is in the past tense.

Hrm. Yeah. I see your point, however evaluating a string as JavaScript continues to be a violation. The policy is still in effect. Also, I don&apos;t like the way &quot;violated&quot; sounds. :)

I&apos;ve changed it entirely to avoid this discussion of tense, and replace it with another: &quot;Refused to evaluate a string as JavaScript because &apos;unsafe-eval&apos; is not an allowed source of script in the following Content Security Policy directive&quot;. WDYT?

&gt;&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:1353
&gt;&gt; +    for (size_t i = 0; i &lt; m_policies.size(); ++i) {
&gt; 
&gt; This is a linear search each time we make a new document. Is m_policies guaranteed to be very small?
&gt; 
&gt; Why did you choose the message from the first non-eval policy? What if there are more non-eval policies?

m_policies has one entry per Content Security Policy HTTP header. We expect to only have one, but it&apos;s possible for misconfigured sets of servers and proxies to end up with more than one. A site with any more than one or two headers would be an outlier.

I choose the first one simply because it&apos;s trivial. :) We deal with multiple headers by ensuring that all of them allow whatever action is being taken. If any of the policies block &apos;eval()&apos;, for instance, we don&apos;t have to check the rest of them: it&apos;s blocked.

&gt;&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:1354
&gt;&gt; +        if (!m_policies[i].get()-&gt;allowEval(0, SuppressReport))
&gt; 
&gt; No need for .get() on a smart pointer: operator-&gt; does the right thing.

Ah. Cool. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698484</commentid>
    <comment_count>6</comment_count>
      <attachid>159159</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-17 10:51:04 -0700</bug_when>
    <thetext>Created attachment 159159
ggaren&apos;s feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700749</commentid>
    <comment_count>7</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-21 07:45:44 -0700</bug_when>
    <thetext>Friendly ping, ggaren. :)

Would you mind taking a look at this patch?

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705517</commentid>
    <comment_count>8</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-27 12:28:58 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Friendly ping, ggaren. :)
&gt; 
&gt; Would you mind taking a look at this patch?
&gt; 
&gt; Thanks!

Ping. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714594</commentid>
    <comment_count>9</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-07 09:25:05 -0700</bug_when>
    <thetext>Hey Geoffrey, it seems like you&apos;re pretty booked up these days.

I haven&apos;t had much luck tracking down an alternate reviewer the few times I&apos;ve tried on IRC (probably due to massive time zone differences). Perhaps you could recommend someone else who might be able to review this patch? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714794</commentid>
    <comment_count>10</comment_count>
      <attachid>162831</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-07 11:30:18 -0700</bug_when>
    <thetext>Created attachment 162831
Rebasing onto ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718538</commentid>
    <comment_count>11</comment_count>
      <attachid>163662</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-12 11:24:51 -0700</bug_when>
    <thetext>Created attachment 163662
Rebase onto ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718561</commentid>
    <comment_count>12</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-12 11:53:56 -0700</bug_when>
    <thetext>Hey Sam, Adam suggested you as a good reviewer for this sort of change. Would you mind taking a look at this patch?

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718566</commentid>
    <comment_count>13</comment_count>
      <attachid>163662</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-12 12:02:05 -0700</bug_when>
    <thetext>Comment on attachment 163662
Rebase onto ToT.

Attachment 163662 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13819864</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721003</commentid>
    <comment_count>14</comment_count>
      <attachid>163662</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-14 11:59:41 -0700</bug_when>
    <thetext>Comment on attachment 163662
Rebase onto ToT.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721006</commentid>
    <comment_count>15</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-14 12:00:19 -0700</bug_when>
    <thetext>Please fix before landing: 

/usr/bin/gold: /storage/WebKit-qt-wk2-ews/WebKitBuild/Release/Source/WebCore/release/libWebCore.a(SinkDocument.o): in function vtable for WebCore::SinkDocument:SinkDocument.cpp(.data.rel.ro._ZTVN7WebCore12SinkDocumentE+0x188): error: undefined reference to &apos;WebCore::Document::disableEval()&apos;
/usr/bin/gold: /storage/WebKit-qt-wk2-ews/WebKitBuild/Release/Source/WebCore/release/libWebCore.a(SinkDocument.o): in function vtable for WebCore::SinkDocument:SinkDocument.cpp(.data.rel.ro._ZTVN7WebCore12SinkDocumentE+0x218): error: undefined reference to &apos;non-virtual thunk to WebCore::Document::disableEval()&apos;
/usr/bin/gold: /storage/WebKit-qt-wk2-ews/WebKitBuild/Release/Source/WebCore/release/libWebCore.a(SharedWorkerContext.o): in function vtable for WebCore::SharedWorkerContext:SharedWorkerContext.cpp(.data.rel.ro._ZTVN7WebCore19SharedWorkerContextE+0x28): error: undefined reference to &apos;WebCore::WorkerContext::disableEval()&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721054</commentid>
    <comment_count>16</comment_count>
      <attachid>164211</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-14 12:57:48 -0700</bug_when>
    <thetext>Created attachment 164211
Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721114</commentid>
    <comment_count>17</comment_count>
      <attachid>164211</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-14 14:08:11 -0700</bug_when>
    <thetext>Comment on attachment 164211
Rebased.

Thanks, much appreciated!

Latest iteration of the patch looks green. CQ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721136</commentid>
    <comment_count>18</comment_count>
      <attachid>164211</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 14:33:38 -0700</bug_when>
    <thetext>Comment on attachment 164211
Rebased.

Rejecting attachment 164211 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
Kit/chromium/third_party/yasm/source/patched-yasm --revision 154708 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
50&gt;At revision 154708.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/13859330</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721143</commentid>
    <comment_count>19</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-14 14:40:04 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 164211 [details])
&gt; Rejecting attachment 164211 [details] from commit-queue.
&gt; 
&gt; Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2
&gt; 
&gt; Last 500 characters of output:
&gt; Kit/chromium/third_party/yasm/source/patched-yasm --revision 154708 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
&gt; 50&gt;At revision 154708.
&gt; 
&gt; ________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
&gt; 
&gt; ________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
&gt; Updating webkit projects from gyp files...
&gt; 
&gt; Full output: http://queues.webkit.org/results/13859330

Merge conflict during commit: Conflict at &apos;/trunk/LayoutTests/ChangeLog&apos; at /usr/lib/git-core/git-svn line 570

My favourite kind of merge conflict. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721149</commentid>
    <comment_count>20</comment_count>
      <attachid>164229</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-14 14:44:51 -0700</bug_when>
    <thetext>Created attachment 164229
rebasing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721152</commentid>
    <comment_count>21</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-09-14 14:45:34 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Created an attachment (id=164229) [details]
&gt; rebasing.

Try again (or have I actually missed something in the ChangeLog)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721170</commentid>
    <comment_count>22</comment_count>
      <attachid>164229</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-09-14 15:07:18 -0700</bug_when>
    <thetext>Comment on attachment 164229
rebasing.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721237</commentid>
    <comment_count>23</comment_count>
      <attachid>164229</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 16:32:58 -0700</bug_when>
    <thetext>Comment on attachment 164229
rebasing.

Clearing flags on attachment: 164229

Committed r128670: &lt;http://trac.webkit.org/changeset/128670&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721238</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-14 16:33:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159100</attachid>
            <date>2012-08-17 05:30:45 -0700</date>
            <delta_ts>2012-08-17 08:09:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94331-20120817143008.patch</filename>
            <type>text/plain</type>
            <size>25239</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
Yzk1NzIzMDIxYzRmNmRlZDc1MjcwMGI3MjgzNTQyYjg1ZDM4OWQyLi4xMDNhZTEwNmE0MzI2NTJm
MmJkMjVjZDY1OTE1Mjg4MzJkYWRjOTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxMi0wOC0xNyAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEpTQyBzaG91bGQgdGhyb3cgYSBtb3JlIGRlc2NyaXB0aXZlIGV4Y2VwdGlvbiB3
aGVuIGJsb2NraW5nICdldmFsJyB2aWEgQ1NQLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVbmxlc3MgZXhwbGljaXRseSB3aGl0ZWxpc3RlZCwgdGhlICdz
Y3JpcHQtc3JjJyBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBkaXJlY3RpdmUgYmxv
Y2tzICdldmFsJyBhbmQgJ2V2YWwnLWxpa2UgY29uc3RydWN0cyBzdWNoIGFzCisgICAgICAgICdu
ZXcgRnVuY3Rpb24oKScuIFdoZW4gJ2V2YWwnIGlzIGVuY291bnRlcmVkIGluIGNvZGUsIGFuICdF
dmFsRXJyb3InIGlzCisgICAgICAgIHRocm93biwgYnV0IHRoZSBhc3NvY2lhdGVkIG1lc3NhZ2Ug
aXMgcG9vcjogIkV2YWwgaXMgZGlzYWJsZWQiIGRvZXNuJ3QKKyAgICAgICAgZ2l2ZSBkZXZlbG9w
ZXJzIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCB3aHkgdGhlaXIgY29kZSBpc24ndCBiZWhhdmlu
ZworICAgICAgICBhcyBleHBlY3RlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYW4gJ2Vy
cm9yTWVzc2FnZScgcGFyYW1ldGVyIHRvIHRoZSBKYXZhU2NyaXB0Q29yZSBtZXRob2QKKyAgICAg
ICAgdXNlZCB0byBkaXNhYmxlICdldmFsJzsgQ29udGVudFNlY3VyaXR5UG9saWN5IGhhcyB0aGUg
b3Bwb3J0dW5pdHkgdG8KKyAgICAgICAgcGFzcyBpbiBhIG1vcmUgZGV0YWlsZWQgYW5kIGRlc2Ny
aXB0aXZlIGVycm9yIHRoYXQgY29udGFpbnMgbW9yZSBjb250ZXh0CisgICAgICAgIGZvciB0aGUg
ZGV2ZWxvcGVyLgorCisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAg
KEpTQzo6RXZhbEV4ZWN1dGFibGU6OmNvbXBpbGVJbnRlcm5hbCk6CisgICAgICAgICAgICBEcm9w
IHRoZSBoYXJkLWNvZGVkICJFdmFsIGlzIGRpc2FibGVkIiBlcnJvciBtZXNzYWdlIGluIGZhdm9y
IG9mCisgICAgICAgICAgICByZWFkaW5nIHRoZSBlcnJvciBtZXNzYWdlIG9mZiB0aGUgZ2xvYmFs
IG9iamVjdC4KKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChK
U0dsb2JhbE9iamVjdCk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpldmFsRW5hYmxl
ZCk6CisgICAgICAgICAgICBNYWtpbmcgdGhpcyBhY2Nlc3NvciBtZXRob2QgY29uc3QuCisgICAg
ICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UpOgorICAg
ICAgICAgICAgQWNjZXNzb3IgZm9yIHRoZSBlcnJvciBtZXNzYWdlIHNldCB2aWEgJ3NldEV2YWxE
aXNhYmxlZCcuCisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpzZXRFdmFsRW5hYmxlZCk6
CisgICAgICAgICAgICBBZGRpbmcgYW4gJ2Vycm9yTWVzc2FnZScgcGFyYW1ldGVyIHdoaWNoIGlz
IHN0b3JlZCBvbiB0aGUgZ2xvYmFsCisgICAgICAgICAgICBvYmplY3QsIGFuZCB1c2VkIHdoZW4g
ZXhjZXB0aW9ucyBhcmUgdGhyb3duLgorCiAyMDEyLTA4LTE2ICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CiAKICAgICAgICAgU3RydWN0dXJlIGNoZWNrIGhvaXN0aW5nIHNob3VsZCBi
ZSBsZXNzIGV4cGVuc2l2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ1NTdiODEzMTAxM2UwZjVlZjVmYmI2ZGVh
ZjA5YjY5NGYzM2MzYTQuLjJhNDlkNzZhMTM4ZGZiNjI5MDQ3YTQ5ZDc0ZTY1ODAwMTIwMTI1ZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OSBAQAorMjAxMi0wOC0xNyAgTWlrZSBXZXN0ICA8bWt3
c3RAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEpTQyBzaG91bGQgdGhyb3cgYSBtb3JlIGRlc2Ny
aXB0aXZlIGV4Y2VwdGlvbiB3aGVuIGJsb2NraW5nICdldmFsJyB2aWEgQ1NQLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQzMzEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbmxlc3MgZXhwbGljaXRseSB3
aGl0ZWxpc3RlZCwgdGhlICdzY3JpcHQtc3JjJyBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAg
ICAgICBkaXJlY3RpdmUgYmxvY2tzICdldmFsJyBhbmQgJ2V2YWwnLWxpa2UgY29uc3RydWN0cyBz
dWNoIGFzCisgICAgICAgICduZXcgRnVuY3Rpb24oKScuIFdoZW4gJ2V2YWwnIGlzIGVuY291bnRl
cmVkIGluIGNvZGUsIGFuICdFdmFsRXJyb3InIGlzCisgICAgICAgIHRocm93biwgYnV0IHRoZSBh
c3NvY2lhdGVkIG1lc3NhZ2UgaXMgcG9vcjogIkV2YWwgaXMgZGlzYWJsZWQiIGRvZXNuJ3QKKyAg
ICAgICAgZ2l2ZSBkZXZlbG9wZXJzIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCB3aHkgdGhlaXIg
Y29kZSBpc24ndCBiZWhhdmluZworICAgICAgICBhcyBleHBlY3RlZC4KKworICAgICAgICBUaGlz
IHBhdGNoIGFkZHMgYW4gJ2Vycm9yTWVzc2FnZScgcGFyYW1ldGVyIHRvIHRoZSBKYXZhU2NyaXB0
Q29yZSBtZXRob2QKKyAgICAgICAgdXNlZCB0byBkaXNhYmxlICdldmFsJzsgQ29udGVudFNlY3Vy
aXR5UG9saWN5IGhhcyB0aGUgb3Bwb3J0dW5pdHkgdG8KKyAgICAgICAgcGFzcyBpbiBhIG1vcmUg
ZGV0YWlsZWQgYW5kIGRlc2NyaXB0aXZlIGVycm9yIHRoYXQgY29udGFpbnMgbW9yZSBjb250ZXh0
CisgICAgICAgIGZvciB0aGUgZGV2ZWxvcGVyLgorCisgICAgICAgIFRoZSBuZXcgZXJyb3IgbWVz
c2FnZSBpcyB0ZXN0ZWQgYnkgYWRqdXN0aW5nIGV4aXN0aW5nIHRlc3RzOyBub3RoaW5nIG5ldwor
ICAgICAgICBpcyByZXF1aXJlZC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlw
dCk6CisgICAgICAgICAgICBSZWFkIHRoZSBlcnJvciBtZXNzYWdlIG9mZiB0aGUgZG9jdW1lbnQn
cyBDb250ZW50U2VjdXJpdHlQb2xpY3kuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9s
bGVyOjpkaXNhYmxlRXZhbCk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5oOgorICAgICAgICAoU2NyaXB0Q29udHJvbGxlcik6CisgICAgICAgICAgICBQaXBlIHRoZSBl
cnJvciBtZXNzYWdlIHRocm91Z2ggdG8gSlNHbG9iYWxPYmplY3Qgd2hlbiBkaXNhYmxpbmcgZXZh
bAorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdv
cmtlclNjcmlwdENvbnRyb2xsZXIpOgorICAgICAgICAgICAgUGlwZSB0aGUgZXJyb3IgbWVzc2Fn
ZSB0aHJvdWdoIHRvIEpTR2xvYmFsT2JqZWN0IHdoZW4gZGlzYWJsaW5nIGV2YWwKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3Jp
cHRDb250cm9sbGVyLmg6CisgICAgICAgIChTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgIChXb3JrZXJTY3JpcHRDb250
cm9sbGVyKToKKyAgICAgICAgICAgIFBsYWNlaG9sZGVyIGZvciBWOCBwaXBpbmcgdG8gYmUgYnVp
bHQgaW4gd2Viay5pdC85NDMzMi4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRpc2FibGVFdmFsKToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuaDoKKyAgICAgICAgKERvY3VtZW50KToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oOgorICAgICAgICAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgICAg
ICBQaXBlIHRoZSBlcnJvciBtZXNzYWdlIHRocm91Z2ggdG8gdGhlIFNjcmlwdENvbnRyb2xsZXIg
d2hlbgorICAgICAgICAgICAgZGlzYWJsaW5nIGV2YWwuCisgICAgICAgICogcGFnZS9Db250ZW50
U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6
ZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKToKKyAgICAgICAgICAgIEFjY2Vzc29yIGZvciB0aGUg
ZXJyb3IgbWVzc2FnZSB0aGF0IG91Z2h0IGJlIGRpc3BsYXllZCB0byBkZXZlbG9wZXJzCisgICAg
ICAgICAgICB3aGVuICdldmFsJyB1c2VkIHdoaWxlIGRpc2FibGVkIGZvciBhIHNwZWNpZmljIGRp
cmVjdGl2ZSBsaXN0LgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6c2V0RXZh
bERpc2FibGVkRXJyb3JNZXNzYWdlKToKKyAgICAgICAgICAgIE11dGF0b3IgZm9yIHRoZSBlcnJv
ciBtZXNzYWdlIHRoYXQgb3VnaHQgYmUgZGlzcGxheWVkIHRvIGRldmVsb3BlcnMKKyAgICAgICAg
ICAgIHdoZW4gJ2V2YWwnIHVzZWQgd2hpbGUgZGlzYWJsZWQgZm9yIGEgc3BlY2lmaWMgZGlyZWN0
aXZlIGxpc3QuCisgICAgICAgIChDU1BEaXJlY3RpdmVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNTUERpcmVjdGl2ZUxpc3Q6OmNyZWF0ZSk6CisgICAgICAgICAgICBVcG9uIGNyZWF0aW9uIG9m
IGEgQ1NQRGlyZWN0aXZlTGlzdCwgc2V0IHRoZSBlcnJvciBtZXNzYWdlIGlmIHRoZQorICAgICAg
ICAgICAgZGlyZWN0aXZlIGxpc3QgZGlzYWJsZXMgJ2V2YWwnLgorICAgICAgICAoV2ViQ29yZTo6
Q29udGVudFNlY3VyaXR5UG9saWN5OjpkaWRSZWNlaXZlSGVhZGVyKToKKyAgICAgICAgICAgIFBh
c3MgdGhlIGVycm9yIG1lc3NhZ2UgaW50byBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpkaXNhYmxl
RXZhbC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6ZXZhbERpc2Fi
bGVkRXJyb3JNZXNzYWdlKToKKyAgICAgICAgICAgIFB1YmxpYyBhY2Nlc3NvciBmb3IgdGhlIHBv
bGljeSdzIGVycm9yIG1lc3NhZ2U7IHdhbGtzIHRoZSBsaXN0IG9mCisgICAgICAgICAgICBkaXJl
Y3RpdmUgbGlzdHMgYW5kIHJldHVybnMgdGhlIGZpcnN0IGVycm9yIG1lc3NhZ2UgZm91bmQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5o
OgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJDb250ZXh0OjpkaXNhYmxlRXZhbCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJD
b250ZXh0Lmg6CisgICAgICAgIChXb3JrZXJDb250ZXh0KToKKyAgICAgICAgICAgIFBpcGUgdGhl
IGVycm9yIG1lc3NhZ2UgdGhyb3VnaCB0byB0aGUgU2NyaXB0Q29udHJvbGxlciB3aGVuCisgICAg
ICAgICAgICBkaXNhYmxpbmcgZXZhbC4KKwogMjAxMi0wOC0xNiAgVnNldm9sb2QgVmxhc292ICA8
dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBTbmlwcGV0IHNj
cmlwdCBtYXBwaW5nIHNob3VsZCBub3QgbG9hZCBzbmlwcGV0cyB1bnRpbCB3b3Jrc3BhY2UgcmVz
ZXQgZXZlbnQgaXMgZGlzcGF0Y2hlZCBvbiBzY3JpcHRzIHBhbmVsLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAppbmRleCA3M2I0YjZjNGYzMTc1ZmY4ZTc5
NWRjYzJiNzA2MzA3NDExNmJkMmVhLi43MzI0MzJhYzQ1ZGFiMjFjMWMyNWQ0ZmEzN2IxMGM2NWM4
ZDZlOTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRh
YmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNw
cApAQCAtMjEwLDcgKzIxMCw3IEBAIEpTT2JqZWN0KiBFdmFsRXhlY3V0YWJsZTo6Y29tcGlsZUlu
dGVybmFsKEV4ZWNTdGF0ZSogZXhlYywgU2NvcGVDaGFpbk5vZGUqIHNjb3BlCiAgICAgICAgIG1f
ZXZhbENvZGVCbG9jayA9IG5ld0NvZGVCbG9jay5yZWxlYXNlKCk7CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgaWYgKCFsZXhpY2FsR2xvYmFsT2JqZWN0LT5ldmFsRW5hYmxlZCgpKQotICAgICAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlRXZhbEVycm9yKGV4ZWMsICJFdmFsIGlz
IGRpc2FibGVkIikpOworICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRl
RXZhbEVycm9yKGV4ZWMsIGxleGljYWxHbG9iYWxPYmplY3QtPmV2YWxEaXNhYmxlZEVycm9yTWVz
c2FnZSgpKSk7CiAgICAgICAgIFJlZlB0cjxFdmFsTm9kZT4gZXZhbE5vZGUgPSBwYXJzZTxFdmFs
Tm9kZT4oZ2xvYmFsRGF0YSwgbGV4aWNhbEdsb2JhbE9iamVjdCwgbV9zb3VyY2UsIDAsIGlzU3Ry
aWN0TW9kZSgpID8gSlNQYXJzZVN0cmljdCA6IEpTUGFyc2VOb3JtYWwsIEV2YWxOb2RlOjppc0Z1
bmN0aW9uTm9kZSA/IEpTUGFyc2VGdW5jdGlvbkNvZGUgOiBKU1BhcnNlUHJvZ3JhbUNvZGUsIGxl
eGljYWxHbG9iYWxPYmplY3QtPmRlYnVnZ2VyKCksIGV4ZWMsICZleGNlcHRpb24pOwogICAgICAg
ICBpZiAoIWV2YWxOb2RlKSB7CiAgICAgICAgICAgICBBU1NFUlQoZXhjZXB0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IGFmMDNm
MzJlNjlmY2FmNTYzNjUxOTlkY2IyODI3YzZhNGRiMGNhMTAuLjY2NTk2ZWEyMmVhMzE0N2FkOGUx
YmI5NTI2ODE4YzZmNDcwNzdjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTQ5LDYgKzE0OSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBTeW1ib2xUYWJsZSBtX3N5bWJvbFRhYmxlOwogCiAgICAgICAgIGJvb2wgbV9ldmFs
RW5hYmxlZDsKKyAgICAgICAgVVN0cmluZyBtX2V2YWxEaXNhYmxlZEVycm9yTWVzc2FnZTsKICAg
ICAgICAgYm9vbCBtX2V4cGVyaW1lbnRzRW5hYmxlZDsKIAogICAgICAgICBzdGF0aWMgSlNfRVhQ
T1JUREFUQSBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBzX2dsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlOwpAQCAtMjk2LDggKzI5NywxMyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBi
b29sIGlzRHluYW1pY1Njb3BlKGJvb2wmIHJlcXVpcmVzRHluYW1pY0NoZWNrcykgY29uc3Q7CiAK
LSAgICAgICAgdm9pZCBzZXRFdmFsRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9ldmFsRW5hYmxl
ZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBldmFsRW5hYmxlZCgpIHsgcmV0dXJuIG1fZXZh
bEVuYWJsZWQ7IH0KKyAgICAgICAgYm9vbCBldmFsRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZXZhbEVuYWJsZWQ7IH0KKyAgICAgICAgY29uc3QgVVN0cmluZyYgZXZhbERpc2FibGVkRXJyb3JN
ZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2U7IH0KKyAg
ICAgICAgdm9pZCBzZXRFdmFsRW5hYmxlZChib29sIGVuYWJsZWQsIGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlID0gU3RyaW5nKCkpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fZXZhbEVuYWJs
ZWQgPSBlbmFibGVkOworICAgICAgICAgICAgbV9ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UgPSBV
U3RyaW5nKGVycm9yTWVzc2FnZS5pbXBsKCkpOworICAgICAgICB9CiAKICAgICAgICAgdm9pZCBy
ZXNldFByb3RvdHlwZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVlIHByb3RvdHlwZSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggZGE5
Mzk4NGVkNzZjMDQ4MjAzNWQ3NDk4YWU3ZjAyNzFmOTY3OWY4My4uODM4NTlhYmMyMmVlNzM5OTkw
ODg5YWYwOTQwYWUxMGY2MDlkNTk3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTIyMiw3ICsyMjIsNyBAQCBKU0RPTVdpbmRvd1No
ZWxsKiBTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KERPTVdyYXBwZXJXb3JsZCogd29ybGQp
CiAgICAgd2luZG93U2hlbGwtPndpbmRvdygpLT51cGRhdGVEb2N1bWVudCgpOwogCiAgICAgaWYg
KG1fZnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAgIHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0
RXZhbEVuYWJsZWQobV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCkt
PmFsbG93RXZhbCgwLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlN1cHByZXNzUmVwb3J0KSk7ICAg
CisgICAgICAgIHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQobV9mcmFtZS0+
ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93RXZhbCgwLCBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OlN1cHByZXNzUmVwb3J0KSwgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29u
dGVudFNlY3VyaXR5UG9saWN5KCktPmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpKTsgICAKIAog
ICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKSB7CiAgICAgICAgIGF0dGFjaERl
YnVnZ2VyKHdpbmRvd1NoZWxsLCBwYWdlLT5kZWJ1Z2dlcigpKTsKQEAgLTI1MCwxMiArMjUwLDEy
IEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZW5hYmxlRXZhbCgpCiAgICAgd2luZG93U2hlbGwt
PndpbmRvdygpLT5zZXRFdmFsRW5hYmxlZCh0cnVlKTsKIH0KIAotdm9pZCBTY3JpcHRDb250cm9s
bGVyOjpkaXNhYmxlRXZhbCgpCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewogICAgIEpTRE9NV2luZG93U2hlbGwqIHdpbmRv
d1NoZWxsID0gZXhpc3RpbmdXaW5kb3dTaGVsbChtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CiAg
ICAgaWYgKCF3aW5kb3dTaGVsbCkKICAgICAgICAgcmV0dXJuOwotICAgIHdpbmRvd1NoZWxsLT53
aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQoZmFsc2UpOworICAgIHdpbmRvd1NoZWxsLT53aW5kb3co
KS0+c2V0RXZhbEVuYWJsZWQoZmFsc2UsIGVycm9yTWVzc2FnZSk7CiB9CiAKIGJvb2wgU2NyaXB0
Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAppbmRleCBmNzZmZGU4ZmM3MmY2ODA1ZWY0OGMw
M2FmYzFkMDZhM2ExNTRjYTg3Li4xODdmYWI1MmJlZjBhZDIxY2Y1NGRlNTA2YTRlZjY1MWNmZmRi
ZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5o
CkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgogICAgIFdURjo6VGV4dFBvc2l0aW9uIGV2ZW50
SGFuZGxlclBvc2l0aW9uKCkgY29uc3Q7CiAKICAgICB2b2lkIGVuYWJsZUV2YWwoKTsKLSAgICB2
b2lkIGRpc2FibGVFdmFsKCk7CisgICAgdm9pZCBkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSk7CiAKICAgICBzdGF0aWMgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250
cm9sbGVyLmNwcAppbmRleCA5YmZkZThmMmFiMmUxZGUzZDUzYjFjYmUyMmIzM2NkZjU1Yzc2NjQ1
Li4zMDI5MTc0MzRiOTM5M2M3MmEyMTMwYzQ0ZDM3Y2YyYzViZjgyMTNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApA
QCAtMTg4LDEyICsxODgsMTIgQEAgYm9vbCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjppc0V4ZWN1
dGlvbkZvcmJpZGRlbigpIGNvbnN0CiAgICAgcmV0dXJuIG1fZXhlY3V0aW9uRm9yYmlkZGVuOwog
fQogCi12b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKCkKK3ZvaWQgV29y
a2VyU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UpCiB7CiAgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2so
Z2xvYmFsRGF0YSgpKTsKIAotICAgIG1fd29ya2VyQ29udGV4dFdyYXBwZXItPnNldEV2YWxFbmFi
bGVkKGZhbHNlKTsKKyAgICBtX3dvcmtlckNvbnRleHRXcmFwcGVyLT5zZXRFdmFsRW5hYmxlZChm
YWxzZSwgZXJyb3JNZXNzYWdlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCmlu
ZGV4IDNiMmFjZDRiNjRkNzAzOTlmYzM3ODhhZmQ4YjdjODYxZGZmMTYyZWMuLmEzMTNmYjBmZTFj
NTA0NTM1MjUwY2I0M2VjNzIxMzZjNjZlMDAzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKQEAgLTc1LDcgKzc1LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGZvcmJpZEV4ZWN1dGlvbigpOwogICAg
ICAgICBib29sIGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBk
aXNhYmxlRXZhbCgpOworICAgICAgICB2b2lkIGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlKTsKIAogICAgICAgICBKU0M6OkpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSgpIHsg
cmV0dXJuIG1fZ2xvYmFsRGF0YS5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDA2OTJlM2QyYjliODJkMzg5NmM5NTky
NjI5ZjM1Mjc0OWE3M2MwZWYuLjM5MDc0Y2I0NjQ4ZjQ2NjcxYmEyYWIwYmY0NWE3MjM2NDE1NGRi
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIu
Y3BwCkBAIC0zMzYsNyArMzM2LDcgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVyOjplbmFibGVFdmFs
KCkKICAgICB2OENvbnRleHQtPkFsbG93Q29kZUdlbmVyYXRpb25Gcm9tU3RyaW5ncyh0cnVlKTsK
IH0KIAotdm9pZCBTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCgpCit2b2lkIFNjcmlwdENv
bnRyb2xsZXI6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgLyogZXJyb3JNZXNzYWdlICovKQog
ewogICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsKICAgICB2ODo6SGFuZGxlPHY4OjpD
b250ZXh0PiB2OENvbnRleHQgPSBwcm94eSgpLT53aW5kb3dTaGVsbCgpLT5jb250ZXh0KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmgKaW5kZXggZDE4
OWRjMWM0N2Y5MThlMzk0ZjU4ZDZkODUxZjA2MTgyYTYyNjQ3Ni4uYjVhMDYyODNlZjA0YjlkMDA1
ZmNjNzBhMjZkMzA3NTg4MmE1YjU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdENvbnRyb2xsZXIuaApAQCAtMTI1LDcgKzEyNSw3IEBAIHB1YmxpYzoKICAgICBib29s
IGhhdmVJbnRlcnByZXRlcigpIGNvbnN0OwogCiAgICAgdm9pZCBlbmFibGVFdmFsKCk7Ci0gICAg
dm9pZCBkaXNhYmxlRXZhbCgpOworICAgIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpOwogCiAgICAgc3RhdGljIGJvb2wgY2FuQWNjZXNzRnJvbUN1cnJlbnRPcmln
aW4oRnJhbWUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBkNjc4OTUxMjk2NzMwOTBmNWI4YjBiYTZhMzdh
MmRkMzVmMjBjZDYxLi41ODllYWNhNGMzM2U5MmE4ZjkyMGUxZjgyYWY2OTY4NjE2M2UzYjM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250
cm9sbGVyLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIGJvb2wgV29ya2VyU2NyaXB0Q29udHJvbGxl
cjo6aXNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdAogICAgIHJldHVybiBtX2V4ZWN1dGlvbkZv
cmJpZGRlbjsKIH0KIAotdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCgp
Cit2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYg
LyogZXJyb3JNZXNzYWdlICovKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggNjFlZDdhYmMxMWM5ZDMzYmE2
YjY3YjkxNmM3YTIxNjc5OWRhNzIzMi4uNjhjZTg5YWFlMDdmZjM4NjU5MGJhZjhiOTk3ODQ2NjI4
NjA4N2MwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuaApAQCAtNzMsNyArNzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZvaWQgZm9yYmlkRXhlY3V0aW9uKCk7CiAgICAgICAgIGJvb2wgaXNFeGVjdXRpb25G
b3JiaWRkZW4oKSBjb25zdDsKIAotICAgICAgICB2b2lkIGRpc2FibGVFdmFsKCk7CisgICAgICAg
IHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJik7CiAKICAgICAgICAgLy8gUmV0dXJucyBX
b3JrZXJTY3JpcHRDb250cm9sbGVyIGZvciB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBjb250ZXh0
LiAwIHdpbGwgYmUgcmV0dXJuZWQgaWYgdGhlIGN1cnJlbnQgZXhlY3V0aW5nIGNvbnRleHQgaXMg
bm90IHRoZSB3b3JrZXIgY29udGV4dC4KICAgICAgICAgc3RhdGljIFdvcmtlclNjcmlwdENvbnRy
b2xsZXIqIGNvbnRyb2xsZXJGb3JDb250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCA5MWY5MjEwNDI4MGU2OTc2ZmMwZWIzYzYxNTBiZTRkNjU5MDIzOWVmLi4yZTVlOGJjZGFmYTkw
ZjhiOTYwNzhlMjkyY2IwMzljZjQyM2U1MWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTI4MDgsMTIgKzI4MDgsMTIgQEAgU3RyaW5nIERvY3VtZW50Ojp1c2VyQWdlbnQoY29uc3QgS1VS
TCYgdXJsKSBjb25zdAogICAgIHJldHVybiBmcmFtZSgpID8gZnJhbWUoKS0+bG9hZGVyKCktPnVz
ZXJBZ2VudCh1cmwpIDogU3RyaW5nKCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OmRpc2FibGVFdmFs
KCkKK3ZvaWQgRG9jdW1lbnQ6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
KQogewogICAgIGlmICghZnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZnJhbWUoKS0+
c2NyaXB0KCktPmRpc2FibGVFdmFsKCk7CisgICAgZnJhbWUoKS0+c2NyaXB0KCktPmRpc2FibGVF
dmFsKGVycm9yTWVzc2FnZSk7CiB9CiAKIGJvb2wgRG9jdW1lbnQ6OmNhbk5hdmlnYXRlKEZyYW1l
KiB0YXJnZXRGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggY2I0NzBjZmY0MWNmMTQ3ZWEx
M2U5NDk4MTc1OGM2MWFjMDMyMjg2Yy4uNjM3YWUwYmNiOGY0NDZiNWM4NzdiY2I1Yzc1MDIwZjY1
ZWIzYTA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTYzMCw3ICs2MzAsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgS1VSTCYpIGNvbnN0OwogCi0g
ICAgdmlydHVhbCB2b2lkIGRpc2FibGVFdmFsKCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGVF
dmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAogICAgIGJvb2wgY2FuTmF2aWdhdGUo
RnJhbWUqIHRhcmdldEZyYW1lKTsKICAgICBGcmFtZSogZmluZFVuc2FmZVBhcmVudFNjcm9sbFBy
b3BhZ2F0aW9uQm91bmRhcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oCmluZGV4IGU3NDY4MDM4YzZhMzg1Yjg4MTZmOWZjMWI0NzM1MDZhYzI2Y2ExMTAu
LjhhZDNlOWYyNDBhODNiMTZmNDI5YmFlMDE4ZDg3MjA4NGI0Mzc0MjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtNzksNyArNzksNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgS1VSTCYpIGNvbnN0ID0g
MDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbCgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpID0gMDsKIAogICAgIGJv
b2wgc2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50JiBsaW5lTnVt
YmVyLCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCA4ODJmOGM2YWE5ZmE0MTA0OTZhYzA2
YThmOTE4MWJlZjJjYjEyZTc3Li5mOThmZjhiNjNhZGQ2ZWM5Y2Y1YjVkZDkwYzYwZWVkOTM4NzRi
YzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGlj
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3Bw
CkBAIC03MjAsNiArNzIwLDcgQEAgcHVibGljOgogICAgIGJvb2wgYWxsb3dGb3JtQWN0aW9uKGNv
bnN0IEtVUkwmLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlJlcG9ydGluZ1N0YXR1cykgY29uc3Q7
CiAKICAgICB2b2lkIGdhdGhlclJlcG9ydFVSSXMoRE9NU3RyaW5nTGlzdCYpIGNvbnN0OworICAg
IGNvbnN0IFN0cmluZyYgZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKCkgeyByZXR1cm4gbV9ldmFs
RGlzYWJsZWRFcnJvck1lc3NhZ2U7IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBDU1BEaXJl
Y3RpdmVMaXN0KENvbnRlbnRTZWN1cml0eVBvbGljeSopOwpAQCAtNzQ1LDYgKzc0Niw4IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBjaGVja1NvdXJjZShTb3VyY2VMaXN0RGlyZWN0aXZlKiwgY29uc3Qg
S1VSTCYpIGNvbnN0OwogICAgIGJvb2wgY2hlY2tNZWRpYVR5cGUoTWVkaWFMaXN0RGlyZWN0aXZl
KiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHR5cGVBdHRyaWJ1dGUpIGNvbnN0
OwogCisgICAgdm9pZCBzZXRFdmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpIHsgbV9ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2U7
IH0KKwogICAgIGJvb2wgY2hlY2tFdmFsQW5kUmVwb3J0VmlvbGF0aW9uKFNvdXJjZUxpc3REaXJl
Y3RpdmUqLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBTdHJpbmcmIGNvbnRl
eHRVUkwgPSBTdHJpbmcoKSwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSA9
IFdURjo6T3JkaW5hbE51bWJlcjo6YmVmb3JlRmlyc3QoKSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+ID0gMCkgY29uc3Q7CiAgICAgYm9vbCBjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlv
bihTb3VyY2VMaXN0RGlyZWN0aXZlKiwgY29uc3QgU3RyaW5nJiBjb25zb2xlTWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRM
aW5lKSBjb25zdDsKICAgICBib29sIGNoZWNrTm9uY2VBbmRSZXBvcnRWaW9sYXRpb24oTm9uY2VE
aXJlY3RpdmUqLCBjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYg
Y29udGV4dExpbmUpIGNvbnN0OwpAQCAtNzU0LDYgKzc1Nyw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBkZW55SWZFbmZvcmNpbmdQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX3JlcG9ydE9ubHk7IH0K
IAogICAgIENvbnRlbnRTZWN1cml0eVBvbGljeSogbV9wb2xpY3k7CisKICAgICBTdHJpbmcgbV9o
ZWFkZXI7CiAKICAgICBib29sIG1fcmVwb3J0T25seTsKQEAgLTc3Myw2ICs3NzcsOCBAQCBwcml2
YXRlOgogICAgIE93blB0cjxTb3VyY2VMaXN0RGlyZWN0aXZlPiBtX3N0eWxlU3JjOwogCiAgICAg
VmVjdG9yPEtVUkw+IG1fcmVwb3J0VVJJczsKKworICAgIFN0cmluZyBtX2V2YWxEaXNhYmxlZEVy
cm9yTWVzc2FnZTsKIH07CiAKIENTUERpcmVjdGl2ZUxpc3Q6OkNTUERpcmVjdGl2ZUxpc3QoQ29u
dGVudFNlY3VyaXR5UG9saWN5KiBwb2xpY3kpCkBAIC03OTcsNiArODAzLDExIEBAIFBhc3NPd25Q
dHI8Q1NQRGlyZWN0aXZlTGlzdD4gQ1NQRGlyZWN0aXZlTGlzdDo6Y3JlYXRlKENvbnRlbnRTZWN1
cml0eVBvbGljeSogcG9sCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGlmICghZGlyZWN0
aXZlcy0+Y2hlY2tFdmFsKGRpcmVjdGl2ZXMtPm9wZXJhdGl2ZURpcmVjdGl2ZShkaXJlY3RpdmVz
LT5tX3NjcmlwdFNyYy5nZXQoKSkpKSB7CisgICAgICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0
cmluZygiUmVmdXNlZCB0byBldmFsdWF0ZSBhIHN0cmluZyBhcyBKYXZhU2NyaXB0IGJlY2F1c2Ug
aXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3Rp
dmU6IFwiIiwgZGlyZWN0aXZlcy0+b3BlcmF0aXZlRGlyZWN0aXZlKGRpcmVjdGl2ZXMtPm1fc2Ny
aXB0U3JjLmdldCgpKS0+dGV4dCgpLCAiXCIuXG4iKTsKKyAgICAgICAgZGlyZWN0aXZlcy0+c2V0
RXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKG1lc3NhZ2UpOworICAgIH0KKwogICAgIHJldHVybiBk
aXJlY3RpdmVzLnJlbGVhc2UoKTsKIH0KIApAQCAtMTI0OSw3ICsxMjYwLDcgQEAgdm9pZCBDb250
ZW50U2VjdXJpdHlQb2xpY3k6OmRpZFJlY2VpdmVIZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIs
IEhlYWRlclR5cGUgdHkKICAgICB9CiAKICAgICBpZiAoIWFsbG93RXZhbCgwLCBTdXBwcmVzc1Jl
cG9ydCkpCi0gICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGlzYWJsZUV2YWwoKTsK
KyAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5kaXNhYmxlRXZhbChldmFsRGlzYWJs
ZWRFcnJvck1lc3NhZ2UoKSk7CiB9CiAKIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpzZXRP
dmVycmlkZUFsbG93SW5saW5lU3R5bGUoYm9vbCB2YWx1ZSkKQEAgLTEzMzcsNiArMTM0OCwxNSBA
QCBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dFdmFsKFBhc3NSZWZQdHI8U2NyaXB0
Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIENvbgogICAgIHJldHVybiBpc0FsbG93ZWRCeUFsbFdpdGhD
YWxsU3RhY2s8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93RXZhbD4obV9wb2xpY2llcywgY2FsbFN0
YWNrLCByZXBvcnRpbmdTdGF0dXMpOwogfQogCitTdHJpbmcgQ29udGVudFNlY3VyaXR5UG9saWN5
OjpldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UoKSBjb25zdAoreworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbV9wb2xpY2llcy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoIW1fcG9saWNp
ZXNbaV0uZ2V0KCktPmFsbG93RXZhbCgwLCBTdXBwcmVzc1JlcG9ydCkpCisgICAgICAgICAgICBy
ZXR1cm4gbV9wb2xpY2llc1tpXS5nZXQoKS0+ZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKCk7Cisg
ICAgfQorICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OmFsbG93U2NyaXB0Tm9uY2UoY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBj
b250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBjb25zdCBL
VVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5QWxsV2l0aE5vbmNlPCZD
U1BEaXJlY3RpdmVMaXN0OjphbGxvd1NjcmlwdE5vbmNlPihtX3BvbGljaWVzLCBub25jZSwgY29u
dGV4dFVSTCwgY29udGV4dExpbmUsIHVybCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50
U2VjdXJpdHlQb2xpY3kuaAppbmRleCAzYzM5MDUxNmFhY2U1YmRlMzM3OGE4OGU4YmY2ZDMwMGIz
OTk3ZDIzLi41OTE0NmJlMTJlYThhZmVhMTc5NzBiYTFkMTMxODIyMWQxMjNkOTYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKQEAgLTExMCw2ICsxMTAs
NyBAQCBwdWJsaWM6CiAgICAgS1VSTCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25zdDsK
ICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKICAgICB2b2lkIGVu
Zm9yY2VTYW5kYm94RmxhZ3MoU2FuZGJveEZsYWdzKSBjb25zdDsKKyAgICBTdHJpbmcgZXZhbERp
c2FibGVkRXJyb3JNZXNzYWdlKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ29u
dGVudFNlY3VyaXR5UG9saWN5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCmluZGV4IGU1YmQxNWVhNmFlY2I2NWMzNmVkNDYy
YmY3ZmYzYzY4N2ZlYWM3MmEuLjdjMjlmMzM3NGMzZTkwM2FhZWZhN2M2ZWQ5MmU5MjU0NThjYjkx
NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcApAQCAtMTQ3LDkg
KzE0Nyw5IEBAIFN0cmluZyBXb3JrZXJDb250ZXh0Ojp1c2VyQWdlbnQoY29uc3QgS1VSTCYpIGNv
bnN0CiAgICAgcmV0dXJuIG1fdXNlckFnZW50OwogfQogCi12b2lkIFdvcmtlckNvbnRleHQ6OmRp
c2FibGVFdmFsKCkKK3ZvaWQgV29ya2VyQ29udGV4dDo6ZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UpCiB7Ci0gICAgbV9zY3JpcHQtPmRpc2FibGVFdmFsKCk7CisgICAgbV9z
Y3JpcHQtPmRpc2FibGVFdmFsKGVycm9yTWVzc2FnZSk7CiB9CiAKIFdvcmtlckxvY2F0aW9uKiBX
b3JrZXJDb250ZXh0Ojpsb2NhdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
Q29udGV4dC5oCmluZGV4IDM0ODE5ZDA3Y2RiYTZiNDk1ZjY4NTBjMDNiOTc2MTE2ZGQ1Mjg0NDEu
LmFlMzI2ZjNiODYyOWU0ZGY4NzM4NzA5OGYxY2MzY2Q0ZjUwZjhhNmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgY29uc3QgR3JvdXBTZXR0aW5ncyogZ3JvdXBTZXR0aW5ncygpIHsgcmV0
dXJuIG1fZ3JvdXBTZXR0aW5ncy5nZXQoKTsgfQogICAgICAgICB2aXJ0dWFsIFN0cmluZyB1c2Vy
QWdlbnQoY29uc3QgS1VSTCYpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxl
RXZhbCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpOwogCiAgICAgICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgp
IHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CiAgICAgICAgIHZvaWQgY2xlYXJTY3JpcHQoKSB7
IG1fc2NyaXB0LmNsZWFyKCk7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZjEwOWI5ZDRkZGIyZDU1OWNmNGU2YzI4Yjhk
NWQ4NGMwNmM4NDNlLi5iY2NiNTQ5Y2M5MWM3ODU5ZjNiMDIwMDQxZjJiOWMxNmI1MTgwNTZjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDgtMTcgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBKU0Mgc2hvdWxkIHRocm93IGEgbW9yZSBkZXNjcmlwdGl2ZSBl
eGNlcHRpb24gd2hlbiBibG9ja2luZyAnZXZhbCcgdmlhIENTUC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MzMxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9ldmFsLWJsb2NrZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtYmxvY2tlZC1pbi1h
Ym91dC1ibGFuay1pZnJhbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Z1bmN0aW9uLWNvbnN0cnVjdG9yLWJsb2NrZWQt
ZXhwZWN0ZWQudHh0OgorCiAyMDEyLTA4LTE2ICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2ds
ZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZWJhc2VsaW5lIG1lZGlhLWRvY3VtZW50LWF1
ZGlvLXJlcGFpbnQgYWZ0ZXIgQ2hyb21pdW0gcjE1MTk4OApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9ja2Vk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L2V2YWwtYmxvY2tlZC1leHBlY3RlZC50eHQKaW5kZXggNjk4NTU4YTg5Yjg3
NjIyOWVkYTkyYTNjNWE3OWFlMTZmZTQzNjg5ZS4uZGRiY2U2NzNmNWZkNjI2Y2FiMjc2YjY4N2Ux
ZmMwNWE3YzljOTk4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9ja2VkLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFs
LWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDEyOiBFdmFsRXJyb3I6IEV2YWwgaXMgZGlzYWJsZWQKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxNTogRXZhbEVycm9yOiBFdmFsIGlzIGRpc2FibGVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTI6IEV2YWxFcnJvcjogUmVmdXNlZCB0byBldmFsdWF0ZSBhIHN0cmluZyBhcyBKYXZhU2NyaXB0
IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGlj
eSBkaXJlY3RpdmU6ICJzY3JpcHQtc3JjICd1bnNhZmUtaW5saW5lJyIKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxNTogRXZhbEVycm9yOiBSZWZ1c2VkIHRvIGV2YWx1YXRlIGEgc3RyaW5nIGFzIEph
dmFTY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJp
dHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1zcmMgJ3Vuc2FmZS1pbmxpbmUnIgogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9ldmFsLWJsb2NrZWQtaW4tYWJvdXQtYmxhbmstaWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwt
YmxvY2tlZC1pbi1hYm91dC1ibGFuay1pZnJhbWUtZXhwZWN0ZWQudHh0CmluZGV4IGI4MDczYjc4
NmQzZDdmOWEyYWM3NzZjODc4NTczMmMyZmRmZjg3MWUuLjlmZWUwNzdiZmIxYzFiYzY5MTE4ZGM0
NGQxMjhjYmZkM2Q2YjQ0NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtYmxvY2tlZC1pbi1hYm91dC1ibGFuay1p
ZnJhbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtYmxvY2tlZC1pbi1hYm91dC1ibGFuay1pZnJhbWUt
ZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogQUxFUlQ6IC9QQVNTLwotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE6IEV2YWxFcnJvcjogRXZhbCBpcyBkaXNhYmxlZAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE6IEV2YWxFcnJvcjogUmVmdXNlZCB0byBldmFsdWF0ZSBhIHN0cmluZyBhcyBKYXZh
U2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5
IFBvbGljeSBkaXJlY3RpdmU6ICJzY3JpcHQtc3JjICd1bnNhZmUtaW5saW5lJyIKICBFdmFsIHNo
b3VsZCBiZSBibG9ja2VkIGluIHRoZSBpZnJhbWUsIGJ1dCBpbmxpbmUgc2NyaXB0IHNob3VsZCBi
ZSBhbGxvd2VkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvZnVuY3Rpb24tY29uc3RydWN0b3ItYmxvY2tlZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9mdW5jdGlvbi1jb25zdHJ1Y3Rvci1ibG9ja2VkLWV4cGVjdGVkLnR4dAppbmRleCA4Y2M4
M2NhMWZiMWUyYTA0OWNmMTQ0NzdlNDVmNjQxNWY0Zjc2MDUzLi4yOTIxZmZmMmI1NjY0MWY4MWIy
NGMxMzMzNmEyYjZjN2Y0YjM3ZWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9mdW5jdGlvbi1jb25zdHJ1Y3Rvci1ibG9j
a2VkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9mdW5jdGlvbi1jb25zdHJ1Y3Rvci1ibG9ja2VkLWV4cGVjdGVk
LnR4dApAQCAtMSwyICsxLDIgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMjogRXZhbEVycm9y
OiBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBkaXNhYmxlZAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDEyOiBFdmFsRXJyb3I6IFJlZnVzZWQgdG8gZXZhbHVhdGUgYSBzdHJpbmcgYXMgSmF2YVNjcmlw
dCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xp
Y3kgZGlyZWN0aXZlOiAic2NyaXB0LXNyYyAndW5zYWZlLWlubGluZSciCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159125</attachid>
            <date>2012-08-17 08:09:53 -0700</date>
            <delta_ts>2012-08-17 10:50:07 -0700</delta_ts>
            <desc>Resetting tests.</desc>
            <filename>bug-94331-20120817170919.patch</filename>
            <type>text/plain</type>
            <size>26469</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
Yzk1NzIzMDIxYzRmNmRlZDc1MjcwMGI3MjgzNTQyYjg1ZDM4OWQyLi5mNTBkOWIyY2NjY2YyNTky
MTMwNjZlYjEzMGNkODhlN2QzODZmMDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxMi0wOC0xNyAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEpTQyBzaG91bGQgdGhyb3cgYSBtb3JlIGRlc2NyaXB0aXZlIGV4Y2VwdGlvbiB3
aGVuIGJsb2NraW5nICdldmFsJyB2aWEgQ1NQLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVbmxlc3MgZXhwbGljaXRseSB3aGl0ZWxpc3RlZCwgdGhlICdz
Y3JpcHQtc3JjJyBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBkaXJlY3RpdmUgYmxv
Y2tzICdldmFsJyBhbmQgJ2V2YWwnLWxpa2UgY29uc3RydWN0cyBzdWNoIGFzCisgICAgICAgICdu
ZXcgRnVuY3Rpb24oKScuIFdoZW4gJ2V2YWwnIGlzIGVuY291bnRlcmVkIGluIGNvZGUsIGFuICdF
dmFsRXJyb3InIGlzCisgICAgICAgIHRocm93biwgYnV0IHRoZSBhc3NvY2lhdGVkIG1lc3NhZ2Ug
aXMgcG9vcjogIkV2YWwgaXMgZGlzYWJsZWQiIGRvZXNuJ3QKKyAgICAgICAgZ2l2ZSBkZXZlbG9w
ZXJzIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCB3aHkgdGhlaXIgY29kZSBpc24ndCBiZWhhdmlu
ZworICAgICAgICBhcyBleHBlY3RlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYW4gJ2Vy
cm9yTWVzc2FnZScgcGFyYW1ldGVyIHRvIHRoZSBKYXZhU2NyaXB0Q29yZSBtZXRob2QKKyAgICAg
ICAgdXNlZCB0byBkaXNhYmxlICdldmFsJzsgQ29udGVudFNlY3VyaXR5UG9saWN5IGhhcyB0aGUg
b3Bwb3J0dW5pdHkgdG8KKyAgICAgICAgcGFzcyBpbiBhIG1vcmUgZGV0YWlsZWQgYW5kIGRlc2Ny
aXB0aXZlIGVycm9yIHRoYXQgY29udGFpbnMgbW9yZSBjb250ZXh0CisgICAgICAgIGZvciB0aGUg
ZGV2ZWxvcGVyLgorCisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAg
KEpTQzo6RXZhbEV4ZWN1dGFibGU6OmNvbXBpbGVJbnRlcm5hbCk6CisgICAgICAgICAgICBEcm9w
IHRoZSBoYXJkLWNvZGVkICJFdmFsIGlzIGRpc2FibGVkIiBlcnJvciBtZXNzYWdlIGluIGZhdm9y
IG9mCisgICAgICAgICAgICByZWFkaW5nIHRoZSBlcnJvciBtZXNzYWdlIG9mZiB0aGUgZ2xvYmFs
IG9iamVjdC4KKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6CisgICAgICAgICAg
ICBEcm9wIHRoZSBoYXJkLWNvZGVkICJGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBkaXNhYmxlZCIg
ZXJyb3IgbWVzc2FnZQorICAgICAgICAgICAgaW4gZmF2b3Igb2YgcmVhZGluZyB0aGUgZXJyb3Ig
bWVzc2FnZSBvZmYgdGhlIGdsb2JhbCBvYmplY3QuCisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oOgorICAgICAgICAoSlNHbG9iYWxPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZXZhbEVuYWJsZWQpOgorICAgICAgICAgICAgTWFraW5nIHRoaXMgYWNjZXNz
b3IgbWV0aG9kIGNvbnN0LgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6ZXZhbERpc2Fi
bGVkRXJyb3JNZXNzYWdlKToKKyAgICAgICAgICAgIEFjY2Vzc29yIGZvciB0aGUgZXJyb3IgbWVz
c2FnZSBzZXQgdmlhICdzZXRFdmFsRGlzYWJsZWQnLgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6c2V0RXZhbEVuYWJsZWQpOgorICAgICAgICAgICAgQWRkaW5nIGFuICdlcnJvck1lc3Nh
Z2UnIHBhcmFtZXRlciB3aGljaCBpcyBzdG9yZWQgb24gdGhlIGdsb2JhbAorICAgICAgICAgICAg
b2JqZWN0LCBhbmQgdXNlZCB3aGVuIGV4Y2VwdGlvbnMgYXJlIHRocm93bi4KKwogMjAxMi0wOC0x
NiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFN0cnVjdHVyZSBj
aGVjayBob2lzdGluZyBzaG91bGQgYmUgbGVzcyBleHBlbnNpdmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNTU3
YjgxMzEwMTNlMGY1ZWY1ZmJiNmRlYWYwOWI2OTRmMzNjM2E0Li4yYTQ5ZDc2YTEzOGRmYjYyOTA0
N2E0OWQ3NGU2NTgwMDEyMDEyNWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTIt
MDgtMTcgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICBKU0Mgc2hv
dWxkIHRocm93IGEgbW9yZSBkZXNjcmlwdGl2ZSBleGNlcHRpb24gd2hlbiBibG9ja2luZyAnZXZh
bCcgdmlhIENTUC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk0MzMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVW5sZXNzIGV4cGxpY2l0bHkgd2hpdGVsaXN0ZWQsIHRoZSAnc2NyaXB0LXNyYycgQ29udGVu
dCBTZWN1cml0eSBQb2xpY3kKKyAgICAgICAgZGlyZWN0aXZlIGJsb2NrcyAnZXZhbCcgYW5kICdl
dmFsJy1saWtlIGNvbnN0cnVjdHMgc3VjaCBhcworICAgICAgICAnbmV3IEZ1bmN0aW9uKCknLiBX
aGVuICdldmFsJyBpcyBlbmNvdW50ZXJlZCBpbiBjb2RlLCBhbiAnRXZhbEVycm9yJyBpcworICAg
ICAgICB0aHJvd24sIGJ1dCB0aGUgYXNzb2NpYXRlZCBtZXNzYWdlIGlzIHBvb3I6ICJFdmFsIGlz
IGRpc2FibGVkIiBkb2Vzbid0CisgICAgICAgIGdpdmUgZGV2ZWxvcGVycyBlbm91Z2ggaW5mb3Jt
YXRpb24gYWJvdXQgd2h5IHRoZWlyIGNvZGUgaXNuJ3QgYmVoYXZpbmcKKyAgICAgICAgYXMgZXhw
ZWN0ZWQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGFuICdlcnJvck1lc3NhZ2UnIHBhcmFt
ZXRlciB0byB0aGUgSmF2YVNjcmlwdENvcmUgbWV0aG9kCisgICAgICAgIHVzZWQgdG8gZGlzYWJs
ZSAnZXZhbCc7IENvbnRlbnRTZWN1cml0eVBvbGljeSBoYXMgdGhlIG9wcG9ydHVuaXR5IHRvCisg
ICAgICAgIHBhc3MgaW4gYSBtb3JlIGRldGFpbGVkIGFuZCBkZXNjcmlwdGl2ZSBlcnJvciB0aGF0
IGNvbnRhaW5zIG1vcmUgY29udGV4dAorICAgICAgICBmb3IgdGhlIGRldmVsb3Blci4KKworICAg
ICAgICBUaGUgbmV3IGVycm9yIG1lc3NhZ2UgaXMgdGVzdGVkIGJ5IGFkanVzdGluZyBleGlzdGlu
ZyB0ZXN0czsgbm90aGluZyBuZXcKKyAgICAgICAgaXMgcmVxdWlyZWQuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dENvbnRyb2xsZXI6OmluaXRTY3JpcHQpOgorICAgICAgICAgICAgUmVhZCB0aGUgZXJyb3IgbWVz
c2FnZSBvZmYgdGhlIGRvY3VtZW50J3MgQ29udGVudFNlY3VyaXR5UG9saWN5LgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFNjcmlwdENvbnRyb2xsZXIpOgor
ICAgICAgICAgICAgUGlwZSB0aGUgZXJyb3IgbWVzc2FnZSB0aHJvdWdoIHRvIEpTR2xvYmFsT2Jq
ZWN0IHdoZW4gZGlzYWJsaW5nIGV2YWwKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3Jp
cHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xs
ZXI6OmRpc2FibGVFdmFsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250
cm9sbGVyLmg6CisgICAgICAgIChXb3JrZXJTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgICAg
IFBpcGUgdGhlIGVycm9yIG1lc3NhZ2UgdGhyb3VnaCB0byBKU0dsb2JhbE9iamVjdCB3aGVuIGRp
c2FibGluZyBldmFsCisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCk6CisgICAg
ICAgICogYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoU2NyaXB0Q29u
dHJvbGxlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZh
bCk6CisgICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oOgorICAg
ICAgICAoV29ya2VyU2NyaXB0Q29udHJvbGxlcik6CisgICAgICAgICAgICBQbGFjZWhvbGRlciBm
b3IgVjggcGlwaW5nIHRvIGJlIGJ1aWx0IGluIHdlYmsuaXQvOTQzMzIuCisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaXNhYmxlRXZhbCk6
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVudCk6CisgICAgICAg
ICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpOgorICAgICAgICAgICAgUGlwZSB0aGUgZXJyb3IgbWVzc2FnZSB0aHJvdWdoIHRv
IHRoZSBTY3JpcHRDb250cm9sbGVyIHdoZW4KKyAgICAgICAgICAgIGRpc2FibGluZyBldmFsLgor
ICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSk6CisgICAgICAg
ICAgICBBY2Nlc3NvciBmb3IgdGhlIGVycm9yIG1lc3NhZ2UgdGhhdCBvdWdodCBiZSBkaXNwbGF5
ZWQgdG8gZGV2ZWxvcGVycworICAgICAgICAgICAgd2hlbiAnZXZhbCcgdXNlZCB3aGlsZSBkaXNh
YmxlZCBmb3IgYSBzcGVjaWZpYyBkaXJlY3RpdmUgbGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
UERpcmVjdGl2ZUxpc3Q6OnNldEV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSk6CisgICAgICAgICAg
ICBNdXRhdG9yIGZvciB0aGUgZXJyb3IgbWVzc2FnZSB0aGF0IG91Z2h0IGJlIGRpc3BsYXllZCB0
byBkZXZlbG9wZXJzCisgICAgICAgICAgICB3aGVuICdldmFsJyB1c2VkIHdoaWxlIGRpc2FibGVk
IGZvciBhIHNwZWNpZmljIGRpcmVjdGl2ZSBsaXN0LgorICAgICAgICAoQ1NQRGlyZWN0aXZlTGlz
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpjcmVhdGUpOgorICAgICAg
ICAgICAgVXBvbiBjcmVhdGlvbiBvZiBhIENTUERpcmVjdGl2ZUxpc3QsIHNldCB0aGUgZXJyb3Ig
bWVzc2FnZSBpZiB0aGUKKyAgICAgICAgICAgIGRpcmVjdGl2ZSBsaXN0IGRpc2FibGVzICdldmFs
Jy4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2ZUhl
YWRlcik6CisgICAgICAgICAgICBQYXNzIHRoZSBlcnJvciBtZXNzYWdlIGludG8gU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6ZGlzYWJsZUV2YWwuCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSk6CisgICAgICAgICAgICBQdWJs
aWMgYWNjZXNzb3IgZm9yIHRoZSBwb2xpY3kncyBlcnJvciBtZXNzYWdlOyB3YWxrcyB0aGUgbGlz
dCBvZgorICAgICAgICAgICAgZGlyZWN0aXZlIGxpc3RzIGFuZCByZXR1cm5zIHRoZSBmaXJzdCBl
cnJvciBtZXNzYWdlIGZvdW5kLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9D
b250ZW50U2VjdXJpdHlQb2xpY3kuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6ZGlzYWJsZUV2YWwpOgorICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5oOgorICAgICAgICAoV29ya2VyQ29udGV4dCk6
CisgICAgICAgICAgICBQaXBlIHRoZSBlcnJvciBtZXNzYWdlIHRocm91Z2ggdG8gdGhlIFNjcmlw
dENvbnRyb2xsZXIgd2hlbgorICAgICAgICAgICAgZGlzYWJsaW5nIGV2YWwuCisKIDIwMTItMDgt
MTYgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogU25pcHBldCBzY3JpcHQgbWFwcGluZyBzaG91bGQgbm90IGxvYWQgc25pcHBl
dHMgdW50aWwgd29ya3NwYWNlIHJlc2V0IGV2ZW50IGlzIGRpc3BhdGNoZWQgb24gc2NyaXB0cyBw
YW5lbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFi
bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5k
ZXggNzNiNGI2YzRmMzE3NWZmOGU3OTVkY2MyYjcwNjMwNzQxMTZiZDJlYS4uNzMyNDMyYWM0NWRh
YjIxYzFjMjVkNGZhMzdiMTBjNjVjOGQ2ZTk1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCBKU09iamVjdCogRXZh
bEV4ZWN1dGFibGU6OmNvbXBpbGVJbnRlcm5hbChFeGVjU3RhdGUqIGV4ZWMsIFNjb3BlQ2hhaW5O
b2RlKiBzY29wZQogICAgICAgICBtX2V2YWxDb2RlQmxvY2sgPSBuZXdDb2RlQmxvY2sucmVsZWFz
ZSgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghbGV4aWNhbEdsb2JhbE9iamVjdC0+ZXZh
bEVuYWJsZWQoKSkKLSAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUV2
YWxFcnJvcihleGVjLCAiRXZhbCBpcyBkaXNhYmxlZCIpKTsKKyAgICAgICAgICAgIHJldHVybiB0
aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUV2YWxFcnJvcihleGVjLCBsZXhpY2FsR2xvYmFsT2JqZWN0
LT5ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UoKSkpOwogICAgICAgICBSZWZQdHI8RXZhbE5vZGU+
IGV2YWxOb2RlID0gcGFyc2U8RXZhbE5vZGU+KGdsb2JhbERhdGEsIGxleGljYWxHbG9iYWxPYmpl
Y3QsIG1fc291cmNlLCAwLCBpc1N0cmljdE1vZGUoKSA/IEpTUGFyc2VTdHJpY3QgOiBKU1BhcnNl
Tm9ybWFsLCBFdmFsTm9kZTo6aXNGdW5jdGlvbk5vZGUgPyBKU1BhcnNlRnVuY3Rpb25Db2RlIDog
SlNQYXJzZVByb2dyYW1Db2RlLCBsZXhpY2FsR2xvYmFsT2JqZWN0LT5kZWJ1Z2dlcigpLCBleGVj
LCAmZXhjZXB0aW9uKTsKICAgICAgICAgaWYgKCFldmFsTm9kZSkgewogICAgICAgICAgICAgQVNT
RVJUKGV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IDdmODJhNzRjZTAwZTBjMDI4OTVmM2JiODRj
NGZmOTgyZmM0ODM5YWYuLjJhNDhiZGQ1NTU2NmY1YzZkMjYzYzhjMGYzM2FhMDgzNjkxYjY4YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29u
c3RydWN0b3IuY3BwCkBAIC04Myw3ICs4Myw3IEBAIENhbGxUeXBlIEZ1bmN0aW9uQ29uc3RydWN0
b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKIEpTT2JqZWN0KiBj
b25zdHJ1Y3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MsIGNvbnN0IElkZW50aWZpZXImIGZ1bmN0aW9uTmFt
ZSwgY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24mIHBvc2l0aW9u
KQogewogICAgIGlmICghZ2xvYmFsT2JqZWN0LT5ldmFsRW5hYmxlZCgpKQotICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVFdmFsRXJyb3IoZXhlYywgIkZ1bmN0aW9uIGNvbnN0
cnVjdG9yIGlzIGRpc2FibGVkIikpOworICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBj
cmVhdGVFdmFsRXJyb3IoZXhlYywgZ2xvYmFsT2JqZWN0LT5ldmFsRGlzYWJsZWRFcnJvck1lc3Nh
Z2UoKSkpOwogICAgIHJldHVybiBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRD
aGVjayhleGVjLCBnbG9iYWxPYmplY3QsIGFyZ3MsIGZ1bmN0aW9uTmFtZSwgc291cmNlVVJMLCBw
b3NpdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCmluZGV4IGFmMDNmMzJlNjlmY2FmNTYzNjUxOTlkY2IyODI3YzZhNGRiMGNhMTAu
LjY2NTk2ZWEyMmVhMzE0N2FkOGUxYmI5NTI2ODE4YzZmNDcwNzdjNmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTQ5LDYgKzE0OSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTeW1ib2xUYWJsZSBtX3N5bWJvbFRhYmxlOwog
CiAgICAgICAgIGJvb2wgbV9ldmFsRW5hYmxlZDsKKyAgICAgICAgVVN0cmluZyBtX2V2YWxEaXNh
YmxlZEVycm9yTWVzc2FnZTsKICAgICAgICAgYm9vbCBtX2V4cGVyaW1lbnRzRW5hYmxlZDsKIAog
ICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSBzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlOwpAQCAtMjk2LDggKzI5NywxMyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBib29sIGlzRHluYW1pY1Njb3BlKGJvb2wmIHJlcXVpcmVzRHlu
YW1pY0NoZWNrcykgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBzZXRFdmFsRW5hYmxlZChib29sIGVu
YWJsZWQpIHsgbV9ldmFsRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBldmFsRW5h
YmxlZCgpIHsgcmV0dXJuIG1fZXZhbEVuYWJsZWQ7IH0KKyAgICAgICAgYm9vbCBldmFsRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXZhbEVuYWJsZWQ7IH0KKyAgICAgICAgY29uc3QgVVN0cmlu
ZyYgZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9ldmFsRGlzYWJs
ZWRFcnJvck1lc3NhZ2U7IH0KKyAgICAgICAgdm9pZCBzZXRFdmFsRW5hYmxlZChib29sIGVuYWJs
ZWQsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCkpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIG1fZXZhbEVuYWJsZWQgPSBlbmFibGVkOworICAgICAgICAgICAgbV9ldmFsRGlz
YWJsZWRFcnJvck1lc3NhZ2UgPSBVU3RyaW5nKGVycm9yTWVzc2FnZS5pbXBsKCkpOworICAgICAg
ICB9CiAKICAgICAgICAgdm9pZCByZXNldFByb3RvdHlwZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVl
IHByb3RvdHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5jcHAKaW5kZXggZGE5Mzk4NGVkNzZjMDQ4MjAzNWQ3NDk4YWU3ZjAyNzFmOTY3OWY4
My4uODM4NTlhYmMyMmVlNzM5OTkwODg5YWYwOTQwYWUxMGY2MDlkNTk3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTIyMiw3ICsy
MjIsNyBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KERP
TVdyYXBwZXJXb3JsZCogd29ybGQpCiAgICAgd2luZG93U2hlbGwtPndpbmRvdygpLT51cGRhdGVE
b2N1bWVudCgpOwogCiAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAgIHdpbmRv
d1NoZWxsLT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQobV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29u
dGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93RXZhbCgwLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OlN1cHByZXNzUmVwb3J0KSk7ICAgCisgICAgICAgIHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0
RXZhbEVuYWJsZWQobV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCkt
PmFsbG93RXZhbCgwLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlN1cHByZXNzUmVwb3J0KSwgbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmV2YWxEaXNhYmxlZEVy
cm9yTWVzc2FnZSgpKTsgICAKIAogICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgp
KSB7CiAgICAgICAgIGF0dGFjaERlYnVnZ2VyKHdpbmRvd1NoZWxsLCBwYWdlLT5kZWJ1Z2dlcigp
KTsKQEAgLTI1MCwxMiArMjUwLDEyIEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZW5hYmxlRXZh
bCgpCiAgICAgd2luZG93U2hlbGwtPndpbmRvdygpLT5zZXRFdmFsRW5hYmxlZCh0cnVlKTsKIH0K
IAotdm9pZCBTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCgpCit2b2lkIFNjcmlwdENvbnRy
b2xsZXI6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewogICAgIEpT
RE9NV2luZG93U2hlbGwqIHdpbmRvd1NoZWxsID0gZXhpc3RpbmdXaW5kb3dTaGVsbChtYWluVGhy
ZWFkTm9ybWFsV29ybGQoKSk7CiAgICAgaWYgKCF3aW5kb3dTaGVsbCkKICAgICAgICAgcmV0dXJu
OwotICAgIHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQoZmFsc2UpOworICAg
IHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQoZmFsc2UsIGVycm9yTWVzc2Fn
ZSk7CiB9CiAKIGJvb2wgU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAppbmRleCBm
NzZmZGU4ZmM3MmY2ODA1ZWY0OGMwM2FmYzFkMDZhM2ExNTRjYTg3Li4xODdmYWI1MmJlZjBhZDIx
Y2Y1NGRlNTA2YTRlZjY1MWNmZmRiZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5oCkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgogICAgIFdU
Rjo6VGV4dFBvc2l0aW9uIGV2ZW50SGFuZGxlclBvc2l0aW9uKCkgY29uc3Q7CiAKICAgICB2b2lk
IGVuYWJsZUV2YWwoKTsKLSAgICB2b2lkIGRpc2FibGVFdmFsKCk7CisgICAgdm9pZCBkaXNhYmxl
RXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKICAgICBzdGF0aWMgYm9vbCBwcm9j
ZXNzaW5nVXNlckdlc3R1cmUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA5YmZkZThmMmFiMmUxZGUzZDUz
YjFjYmUyMmIzM2NkZjU1Yzc2NjQ1Li4zMDI5MTc0MzRiOTM5M2M3MmEyMTMwYzQ0ZDM3Y2YyYzVi
ZjgyMTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3Jp
cHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTg4LDEyICsxODgsMTIgQEAgYm9vbCBXb3JrZXJTY3Jp
cHRDb250cm9sbGVyOjppc0V4ZWN1dGlvbkZvcmJpZGRlbigpIGNvbnN0CiAgICAgcmV0dXJuIG1f
ZXhlY3V0aW9uRm9yYmlkZGVuOwogfQogCi12b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRp
c2FibGVFdmFsKCkKK3ZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwoY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7CiAgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CiAg
ICAgSlNMb2NrSG9sZGVyIGxvY2soZ2xvYmFsRGF0YSgpKTsKIAotICAgIG1fd29ya2VyQ29udGV4
dFdyYXBwZXItPnNldEV2YWxFbmFibGVkKGZhbHNlKTsKKyAgICBtX3dvcmtlckNvbnRleHRXcmFw
cGVyLT5zZXRFdmFsRW5hYmxlZChmYWxzZSwgZXJyb3JNZXNzYWdlKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2Vy
U2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDNiMmFjZDRiNjRkNzAzOTlmYzM3ODhhZmQ4YjdjODYx
ZGZmMTYyZWMuLmEzMTNmYjBmZTFjNTA0NTM1MjUwY2I0M2VjNzIxMzZjNjZlMDAzNDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVy
LmgKQEAgLTc1LDcgKzc1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGZv
cmJpZEV4ZWN1dGlvbigpOwogICAgICAgICBib29sIGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkgY29u
c3Q7CiAKLSAgICAgICAgdm9pZCBkaXNhYmxlRXZhbCgpOworICAgICAgICB2b2lkIGRpc2FibGVF
dmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAogICAgICAgICBKU0M6OkpTR2xvYmFs
RGF0YSogZ2xvYmFsRGF0YSgpIHsgcmV0dXJuIG1fZ2xvYmFsRGF0YS5nZXQoKTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDA2
OTJlM2QyYjliODJkMzg5NmM5NTkyNjI5ZjM1Mjc0OWE3M2MwZWYuLjM5MDc0Y2I0NjQ4ZjQ2Njcx
YmEyYWIwYmY0NWE3MjM2NDE1NGRiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zMzYsNyArMzM2LDcgQEAgdm9pZCBTY3JpcHRD
b250cm9sbGVyOjplbmFibGVFdmFsKCkKICAgICB2OENvbnRleHQtPkFsbG93Q29kZUdlbmVyYXRp
b25Gcm9tU3RyaW5ncyh0cnVlKTsKIH0KIAotdm9pZCBTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxl
RXZhbCgpCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYg
LyogZXJyb3JNZXNzYWdlICovKQogewogICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsK
ICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSBwcm94eSgpLT53aW5kb3dT
aGVsbCgpLT5jb250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRD
b250cm9sbGVyLmgKaW5kZXggZDE4OWRjMWM0N2Y5MThlMzk0ZjU4ZDZkODUxZjA2MTgyYTYyNjQ3
Ni4uYjVhMDYyODNlZjA0YjlkMDA1ZmNjNzBhMjZkMzA3NTg4MmE1YjU4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuaApAQCAtMTI1LDcgKzEyNSw3
IEBAIHB1YmxpYzoKICAgICBib29sIGhhdmVJbnRlcnByZXRlcigpIGNvbnN0OwogCiAgICAgdm9p
ZCBlbmFibGVFdmFsKCk7Ci0gICAgdm9pZCBkaXNhYmxlRXZhbCgpOworICAgIHZvaWQgZGlzYWJs
ZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCiAgICAgc3RhdGljIGJvb2wgY2Fu
QWNjZXNzRnJvbUN1cnJlbnRPcmlnaW4oRnJhbWUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBkNjc4OTUx
Mjk2NzMwOTBmNWI4YjBiYTZhMzdhMmRkMzVmMjBjZDYxLi41ODllYWNhNGMzM2U5MmE4ZjkyMGUx
ZjgyYWY2OTY4NjE2M2UzYjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIGJvb2wg
V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6aXNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdAogICAg
IHJldHVybiBtX2V4ZWN1dGlvbkZvcmJpZGRlbjsKIH0KIAotdm9pZCBXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjpkaXNhYmxlRXZhbCgpCit2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRpc2Fi
bGVFdmFsKGNvbnN0IFN0cmluZyYgLyogZXJyb3JNZXNzYWdlICovKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKaW5k
ZXggNjFlZDdhYmMxMWM5ZDMzYmE2YjY3YjkxNmM3YTIxNjc5OWRhNzIzMi4uNjhjZTg5YWFlMDdm
ZjM4NjU5MGJhZjhiOTk3ODQ2NjI4NjA4N2MwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaApAQCAtNzMsNyArNzMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZm9yYmlkRXhlY3V0aW9uKCk7CiAgICAg
ICAgIGJvb2wgaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdDsKIAotICAgICAgICB2b2lkIGRp
c2FibGVFdmFsKCk7CisgICAgICAgIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJik7CiAK
ICAgICAgICAgLy8gUmV0dXJucyBXb3JrZXJTY3JpcHRDb250cm9sbGVyIGZvciB0aGUgY3VycmVu
dGx5IGV4ZWN1dGluZyBjb250ZXh0LiAwIHdpbGwgYmUgcmV0dXJuZWQgaWYgdGhlIGN1cnJlbnQg
ZXhlY3V0aW5nIGNvbnRleHQgaXMgbm90IHRoZSB3b3JrZXIgY29udGV4dC4KICAgICAgICAgc3Rh
dGljIFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIGNvbnRyb2xsZXJGb3JDb250ZXh0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCA5MWY5MjEwNDI4MGU2OTc2ZmMwZWIzYzYxNTBiZTRkNjU5
MDIzOWVmLi4yZTVlOGJjZGFmYTkwZjhiOTYwNzhlMjkyY2IwMzljZjQyM2U1MWM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI4MDgsMTIgKzI4MDgsMTIgQEAgU3RyaW5nIERvY3VtZW50
Ojp1c2VyQWdlbnQoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogICAgIHJldHVybiBmcmFtZSgpID8g
ZnJhbWUoKS0+bG9hZGVyKCktPnVzZXJBZ2VudCh1cmwpIDogU3RyaW5nKCk7CiB9CiAKLXZvaWQg
RG9jdW1lbnQ6OmRpc2FibGVFdmFsKCkKK3ZvaWQgRG9jdW1lbnQ6OmRpc2FibGVFdmFsKGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewogICAgIGlmICghZnJhbWUoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgZnJhbWUoKS0+c2NyaXB0KCktPmRpc2FibGVFdmFsKCk7CisgICAgZnJhbWUo
KS0+c2NyaXB0KCktPmRpc2FibGVFdmFsKGVycm9yTWVzc2FnZSk7CiB9CiAKIGJvb2wgRG9jdW1l
bnQ6OmNhbk5hdmlnYXRlKEZyYW1lKiB0YXJnZXRGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggY2I0NzBjZmY0MWNmMTQ3ZWExM2U5NDk4MTc1OGM2MWFjMDMyMjg2Yy4uNjM3YWUwYmNiOGY0
NDZiNWM4NzdiY2I1Yzc1MDIwZjY1ZWIzYTA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTYz
MCw3ICs2MzAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoY29u
c3QgS1VSTCYpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIGRpc2FibGVFdmFsKCk7CisgICAg
dmlydHVhbCB2b2lkIGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAog
ICAgIGJvb2wgY2FuTmF2aWdhdGUoRnJhbWUqIHRhcmdldEZyYW1lKTsKICAgICBGcmFtZSogZmlu
ZFVuc2FmZVBhcmVudFNjcm9sbFByb3BhZ2F0aW9uQm91bmRhcnkoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IGU3NDY4MDM4YzZhMzg1Yjg4MTZm
OWZjMWI0NzM1MDZhYzI2Y2ExMTAuLjhhZDNlOWYyNDBhODNiMTZmNDI5YmFlMDE4ZDg3MjA4NGI0
Mzc0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApA
QCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQo
Y29uc3QgS1VSTCYpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbCgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UpID0gMDsKIAogICAgIGJvb2wgc2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcmIGVycm9y
TWVzc2FnZSwgaW50JiBsaW5lTnVtYmVyLCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgdm9pZCBy
ZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCA4
ODJmOGM2YWE5ZmE0MTA0OTZhYzA2YThmOTE4MWJlZjJjYjEyZTc3Li5mOThmZjhiNjNhZGQ2ZWM5
Y2Y1YjVkZDkwYzYwZWVkOTM4NzRiYzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC03MjAsNiArNzIwLDcgQEAgcHVibGljOgogICAgIGJv
b2wgYWxsb3dGb3JtQWN0aW9uKGNvbnN0IEtVUkwmLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlJl
cG9ydGluZ1N0YXR1cykgY29uc3Q7CiAKICAgICB2b2lkIGdhdGhlclJlcG9ydFVSSXMoRE9NU3Ry
aW5nTGlzdCYpIGNvbnN0OworICAgIGNvbnN0IFN0cmluZyYgZXZhbERpc2FibGVkRXJyb3JNZXNz
YWdlKCkgeyByZXR1cm4gbV9ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2U7IH0KIAogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBDU1BEaXJlY3RpdmVMaXN0KENvbnRlbnRTZWN1cml0eVBvbGljeSopOwpA
QCAtNzQ1LDYgKzc0Niw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjaGVja1NvdXJjZShTb3VyY2VM
aXN0RGlyZWN0aXZlKiwgY29uc3QgS1VSTCYpIGNvbnN0OwogICAgIGJvb2wgY2hlY2tNZWRpYVR5
cGUoTWVkaWFMaXN0RGlyZWN0aXZlKiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IHR5cGVBdHRyaWJ1dGUpIGNvbnN0OwogCisgICAgdm9pZCBzZXRFdmFsRGlzYWJsZWRFcnJvck1l
c3NhZ2UoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsgbV9ldmFsRGlzYWJsZWRFcnJvck1l
c3NhZ2UgPSBlcnJvck1lc3NhZ2U7IH0KKwogICAgIGJvb2wgY2hlY2tFdmFsQW5kUmVwb3J0Vmlv
bGF0aW9uKFNvdXJjZUxpc3REaXJlY3RpdmUqLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwgPSBTdHJpbmcoKSwgY29uc3QgV1RGOjpPcmRpbmFs
TnVtYmVyJiBjb250ZXh0TGluZSA9IFdURjo6T3JkaW5hbE51bWJlcjo6YmVmb3JlRmlyc3QoKSwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCkgY29uc3Q7CiAgICAgYm9vbCBjaGVja0lu
bGluZUFuZFJlcG9ydFZpb2xhdGlvbihTb3VyY2VMaXN0RGlyZWN0aXZlKiwgY29uc3QgU3RyaW5n
JiBjb25zb2xlTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9y
ZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdDsKICAgICBib29sIGNoZWNrTm9uY2VBbmRS
ZXBvcnRWaW9sYXRpb24oTm9uY2VEaXJlY3RpdmUqLCBjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25z
dCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0
IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUpIGNvbnN0OwpAQCAtNzU0LDYgKzc1Nyw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBkZW55SWZFbmZvcmNpbmdQb2xpY3koKSBjb25zdCB7IHJl
dHVybiBtX3JlcG9ydE9ubHk7IH0KIAogICAgIENvbnRlbnRTZWN1cml0eVBvbGljeSogbV9wb2xp
Y3k7CisKICAgICBTdHJpbmcgbV9oZWFkZXI7CiAKICAgICBib29sIG1fcmVwb3J0T25seTsKQEAg
LTc3Myw2ICs3NzcsOCBAQCBwcml2YXRlOgogICAgIE93blB0cjxTb3VyY2VMaXN0RGlyZWN0aXZl
PiBtX3N0eWxlU3JjOwogCiAgICAgVmVjdG9yPEtVUkw+IG1fcmVwb3J0VVJJczsKKworICAgIFN0
cmluZyBtX2V2YWxEaXNhYmxlZEVycm9yTWVzc2FnZTsKIH07CiAKIENTUERpcmVjdGl2ZUxpc3Q6
OkNTUERpcmVjdGl2ZUxpc3QoQ29udGVudFNlY3VyaXR5UG9saWN5KiBwb2xpY3kpCkBAIC03OTcs
NiArODAzLDExIEBAIFBhc3NPd25QdHI8Q1NQRGlyZWN0aXZlTGlzdD4gQ1NQRGlyZWN0aXZlTGlz
dDo6Y3JlYXRlKENvbnRlbnRTZWN1cml0eVBvbGljeSogcG9sCiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAorICAgIGlmICghZGlyZWN0aXZlcy0+Y2hlY2tFdmFsKGRpcmVjdGl2ZXMtPm9wZXJhdGl2
ZURpcmVjdGl2ZShkaXJlY3RpdmVzLT5tX3NjcmlwdFNyYy5nZXQoKSkpKSB7CisgICAgICAgIFN0
cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiUmVmdXNlZCB0byBldmFsdWF0ZSBhIHN0cmluZyBh
cyBKYXZhU2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBDb250ZW50IFNl
Y3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6IFwiIiwgZGlyZWN0aXZlcy0+b3BlcmF0aXZlRGlyZWN0
aXZlKGRpcmVjdGl2ZXMtPm1fc2NyaXB0U3JjLmdldCgpKS0+dGV4dCgpLCAiXCIuXG4iKTsKKyAg
ICAgICAgZGlyZWN0aXZlcy0+c2V0RXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKG1lc3NhZ2UpOwor
ICAgIH0KKwogICAgIHJldHVybiBkaXJlY3RpdmVzLnJlbGVhc2UoKTsKIH0KIApAQCAtMTI0OSw3
ICsxMjYwLDcgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmRpZFJlY2VpdmVIZWFkZXIo
Y29uc3QgU3RyaW5nJiBoZWFkZXIsIEhlYWRlclR5cGUgdHkKICAgICB9CiAKICAgICBpZiAoIWFs
bG93RXZhbCgwLCBTdXBwcmVzc1JlcG9ydCkpCi0gICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+ZGlzYWJsZUV2YWwoKTsKKyAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5k
aXNhYmxlRXZhbChldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UoKSk7CiB9CiAKIHZvaWQgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpzZXRPdmVycmlkZUFsbG93SW5saW5lU3R5bGUoYm9vbCB2YWx1ZSkK
QEAgLTEzMzcsNiArMTM0OCwxNSBAQCBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dF
dmFsKFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIENvbgogICAgIHJldHVy
biBpc0FsbG93ZWRCeUFsbFdpdGhDYWxsU3RhY2s8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93RXZh
bD4obV9wb2xpY2llcywgY2FsbFN0YWNrLCByZXBvcnRpbmdTdGF0dXMpOwogfQogCitTdHJpbmcg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UoKSBjb25zdAor
eworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wb2xpY2llcy5zaXplKCk7ICsraSkgewor
ICAgICAgICBpZiAoIW1fcG9saWNpZXNbaV0uZ2V0KCktPmFsbG93RXZhbCgwLCBTdXBwcmVzc1Jl
cG9ydCkpCisgICAgICAgICAgICByZXR1cm4gbV9wb2xpY2llc1tpXS5nZXQoKS0+ZXZhbERpc2Fi
bGVkRXJyb3JNZXNzYWdlKCk7CisgICAgfQorICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwogYm9v
bCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93U2NyaXB0Tm9uY2UoY29uc3QgU3RyaW5nJiBu
b25jZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXIm
IGNvbnRleHRMaW5lLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzQWxs
b3dlZEJ5QWxsV2l0aE5vbmNlPCZDU1BEaXJlY3RpdmVMaXN0OjphbGxvd1NjcmlwdE5vbmNlPiht
X3BvbGljaWVzLCBub25jZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUsIHVybCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaAppbmRleCAzYzM5MDUxNmFhY2U1
YmRlMzM3OGE4OGU4YmY2ZDMwMGIzOTk3ZDIzLi41OTE0NmJlMTJlYThhZmVhMTc5NzBiYTFkMTMx
ODIyMWQxMjNkOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1
cml0eVBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9s
aWN5LmgKQEAgLTExMCw2ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgS1VSTCBjb21wbGV0ZVVSTChj
b25zdCBTdHJpbmcmKSBjb25zdDsKICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4o
KSBjb25zdDsKICAgICB2b2lkIGVuZm9yY2VTYW5kYm94RmxhZ3MoU2FuZGJveEZsYWdzKSBjb25z
dDsKKyAgICBTdHJpbmcgZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKCkgY29uc3Q7CiAKIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgQ29udGVudFNlY3VyaXR5UG9saWN5KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCmluZGV4IGU1
YmQxNWVhNmFlY2I2NWMzNmVkNDYyYmY3ZmYzYzY4N2ZlYWM3MmEuLjdjMjlmMzM3NGMzZTkwM2Fh
ZWZhN2M2ZWQ5MmU5MjU0NThjYjkxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJD
b250ZXh0LmNwcApAQCAtMTQ3LDkgKzE0Nyw5IEBAIFN0cmluZyBXb3JrZXJDb250ZXh0Ojp1c2Vy
QWdlbnQoY29uc3QgS1VSTCYpIGNvbnN0CiAgICAgcmV0dXJuIG1fdXNlckFnZW50OwogfQogCi12
b2lkIFdvcmtlckNvbnRleHQ6OmRpc2FibGVFdmFsKCkKK3ZvaWQgV29ya2VyQ29udGV4dDo6ZGlz
YWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7Ci0gICAgbV9zY3JpcHQtPmRp
c2FibGVFdmFsKCk7CisgICAgbV9zY3JpcHQtPmRpc2FibGVFdmFsKGVycm9yTWVzc2FnZSk7CiB9
CiAKIFdvcmtlckxvY2F0aW9uKiBXb3JrZXJDb250ZXh0Ojpsb2NhdGlvbigpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCmluZGV4IDM0ODE5ZDA3Y2RiYTZiNDk1ZjY4
NTBjMDNiOTc2MTE2ZGQ1Mjg0NDEuLmFlMzI2ZjNiODYyOWU0ZGY4NzM4NzA5OGYxY2MzY2Q0ZjUw
ZjhhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCkBAIC03Miw3ICs3
Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29uc3QgR3JvdXBTZXR0aW5ncyog
Z3JvdXBTZXR0aW5ncygpIHsgcmV0dXJuIG1fZ3JvdXBTZXR0aW5ncy5nZXQoKTsgfQogICAgICAg
ICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgS1VSTCYpIGNvbnN0OwogCi0gICAgICAg
IHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJs
ZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCiAgICAgICAgIFdvcmtlclNjcmlw
dENvbnRyb2xsZXIqIHNjcmlwdCgpIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CiAgICAgICAg
IHZvaWQgY2xlYXJTY3JpcHQoKSB7IG1fc2NyaXB0LmNsZWFyKCk7IH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZjEwOWI5
ZDRkZGIyZDU1OWNmNGU2YzI4YjhkNWQ4NGMwNmM4NDNlLi5iY2NiNTQ5Y2M5MWM3ODU5ZjNiMDIw
MDQxZjJiOWMxNmI1MTgwNTZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDgtMTcgIE1p
a2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICBKU0Mgc2hvdWxkIHRocm93
IGEgbW9yZSBkZXNjcmlwdGl2ZSBleGNlcHRpb24gd2hlbiBibG9ja2luZyAnZXZhbCcgdmlhIENT
UC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MzMx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLWJsb2NrZWQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L2V2YWwtYmxvY2tlZC1pbi1hYm91dC1ibGFuay1pZnJhbWUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Z1bmN0aW9u
LWNvbnN0cnVjdG9yLWJsb2NrZWQtZXhwZWN0ZWQudHh0OgorCiAyMDEyLTA4LTE2ICBBZHJpZW5u
ZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZWJhc2Vs
aW5lIG1lZGlhLWRvY3VtZW50LWF1ZGlvLXJlcGFpbnQgYWZ0ZXIgQ2hyb21pdW0gcjE1MTk4OApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvZXZhbC1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtYmxvY2tlZC1leHBlY3RlZC50
eHQKaW5kZXggNjk4NTU4YTg5Yjg3NjIyOWVkYTkyYTNjNWE3OWFlMTZmZTQzNjg5ZS4uMDkyOGYz
YjUzODUzYjA2YzA0ZGM1MDk2MTQzNDYyMDIwZTExZTc4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9ja2Vk
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9ldmFsLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBA
QAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBFdmFsRXJyb3I6IEV2YWwgaXMgZGlzYWJsZWQK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogRXZhbEVycm9yOiBFdmFsIGlzIGRpc2FibGVkCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IEV2YWxFcnJvcjogUmVmdXNlZCB0byBldmFsdWF0ZSBh
IHN0cmluZyBhcyBKYXZhU2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhlIGZvbGxvd2luZyBD
b250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICJzY3JpcHQtc3JjICd1bnNhZmUtaW5s
aW5lJyIuCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogRXZhbEVycm9yOiBSZWZ1c2VkIHRv
IGV2YWx1YXRlIGEgc3RyaW5nIGFzIEphdmFTY3JpcHQgYmVjYXVzZSBpdCB2aW9sYXRlcyB0aGUg
Zm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1zcmMg
J3Vuc2FmZS1pbmxpbmUnIi4KKwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLWJsb2NrZWQtaW4tYWJvdXQtYmxh
bmstaWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtYmxvY2tlZC1pbi1hYm91dC1ibGFuay1pZnJhbWUt
ZXhwZWN0ZWQudHh0CmluZGV4IGI4MDczYjc4NmQzZDdmOWEyYWM3NzZjODc4NTczMmMyZmRmZjg3
MWUuLjE3NWM4MGIzYTc4M2I0M2E2OGI4MjgxMTk3MThlZGNhOWFiOTZmYjQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2
YWwtYmxvY2tlZC1pbi1hYm91dC1ibGFuay1pZnJhbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtYmxv
Y2tlZC1pbi1hYm91dC1ibGFuay1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNCBAQAog
QUxFUlQ6IC9QQVNTLwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IEV2YWxFcnJvcjogRXZhbCBp
cyBkaXNhYmxlZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IEV2YWxFcnJvcjogUmVmdXNlZCB0
byBldmFsdWF0ZSBhIHN0cmluZyBhcyBKYXZhU2NyaXB0IGJlY2F1c2UgaXQgdmlvbGF0ZXMgdGhl
IGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICJzY3JpcHQtc3Jj
ICd1bnNhZmUtaW5saW5lJyIuCisKICBFdmFsIHNob3VsZCBiZSBibG9ja2VkIGluIHRoZSBpZnJh
bWUsIGJ1dCBpbmxpbmUgc2NyaXB0IHNob3VsZCBiZSBhbGxvd2VkLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZnVuY3Rp
b24tY29uc3RydWN0b3ItYmxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9mdW5jdGlvbi1jb25zdHJ1Y3Rvci1i
bG9ja2VkLWV4cGVjdGVkLnR4dAppbmRleCA4Y2M4M2NhMWZiMWUyYTA0OWNmMTQ0NzdlNDVmNjQx
NWY0Zjc2MDUzLi43MjE2NDYzNDVmMDk2NjliNjNhMWZmNTljMTc4ZGFhN2E3OGI4ZDZkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9mdW5jdGlvbi1jb25zdHJ1Y3Rvci1ibG9ja2VkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9mdW5jdGlv
bi1jb25zdHJ1Y3Rvci1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMSwyICsxLDMgQEAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAxMjogRXZhbEVycm9yOiBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBk
aXNhYmxlZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBFdmFsRXJyb3I6IFJlZnVzZWQgdG8g
ZXZhbHVhdGUgYSBzdHJpbmcgYXMgSmF2YVNjcmlwdCBiZWNhdXNlIGl0IHZpb2xhdGVzIHRoZSBm
b2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LXNyYyAn
dW5zYWZlLWlubGluZSciLgorCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159159</attachid>
            <date>2012-08-17 10:51:04 -0700</date>
            <delta_ts>2012-09-07 11:30:13 -0700</delta_ts>
            <desc>ggaren&apos;s feedback.</desc>
            <filename>bug-94331-20120817195030.patch</filename>
            <type>text/plain</type>
            <size>27590</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
Yzk1NzIzMDIxYzRmNmRlZDc1MjcwMGI3MjgzNTQyYjg1ZDM4OWQyLi5mNTBkOWIyY2NjY2YyNTky
MTMwNjZlYjEzMGNkODhlN2QzODZmMDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxMi0wOC0xNyAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEpTQyBzaG91bGQgdGhyb3cgYSBtb3JlIGRlc2NyaXB0aXZlIGV4Y2VwdGlvbiB3
aGVuIGJsb2NraW5nICdldmFsJyB2aWEgQ1NQLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVbmxlc3MgZXhwbGljaXRseSB3aGl0ZWxpc3RlZCwgdGhlICdz
Y3JpcHQtc3JjJyBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBkaXJlY3RpdmUgYmxv
Y2tzICdldmFsJyBhbmQgJ2V2YWwnLWxpa2UgY29uc3RydWN0cyBzdWNoIGFzCisgICAgICAgICdu
ZXcgRnVuY3Rpb24oKScuIFdoZW4gJ2V2YWwnIGlzIGVuY291bnRlcmVkIGluIGNvZGUsIGFuICdF
dmFsRXJyb3InIGlzCisgICAgICAgIHRocm93biwgYnV0IHRoZSBhc3NvY2lhdGVkIG1lc3NhZ2Ug
aXMgcG9vcjogIkV2YWwgaXMgZGlzYWJsZWQiIGRvZXNuJ3QKKyAgICAgICAgZ2l2ZSBkZXZlbG9w
ZXJzIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCB3aHkgdGhlaXIgY29kZSBpc24ndCBiZWhhdmlu
ZworICAgICAgICBhcyBleHBlY3RlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYW4gJ2Vy
cm9yTWVzc2FnZScgcGFyYW1ldGVyIHRvIHRoZSBKYXZhU2NyaXB0Q29yZSBtZXRob2QKKyAgICAg
ICAgdXNlZCB0byBkaXNhYmxlICdldmFsJzsgQ29udGVudFNlY3VyaXR5UG9saWN5IGhhcyB0aGUg
b3Bwb3J0dW5pdHkgdG8KKyAgICAgICAgcGFzcyBpbiBhIG1vcmUgZGV0YWlsZWQgYW5kIGRlc2Ny
aXB0aXZlIGVycm9yIHRoYXQgY29udGFpbnMgbW9yZSBjb250ZXh0CisgICAgICAgIGZvciB0aGUg
ZGV2ZWxvcGVyLgorCisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAg
KEpTQzo6RXZhbEV4ZWN1dGFibGU6OmNvbXBpbGVJbnRlcm5hbCk6CisgICAgICAgICAgICBEcm9w
IHRoZSBoYXJkLWNvZGVkICJFdmFsIGlzIGRpc2FibGVkIiBlcnJvciBtZXNzYWdlIGluIGZhdm9y
IG9mCisgICAgICAgICAgICByZWFkaW5nIHRoZSBlcnJvciBtZXNzYWdlIG9mZiB0aGUgZ2xvYmFs
IG9iamVjdC4KKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6CisgICAgICAgICAg
ICBEcm9wIHRoZSBoYXJkLWNvZGVkICJGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBkaXNhYmxlZCIg
ZXJyb3IgbWVzc2FnZQorICAgICAgICAgICAgaW4gZmF2b3Igb2YgcmVhZGluZyB0aGUgZXJyb3Ig
bWVzc2FnZSBvZmYgdGhlIGdsb2JhbCBvYmplY3QuCisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oOgorICAgICAgICAoSlNHbG9iYWxPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZXZhbEVuYWJsZWQpOgorICAgICAgICAgICAgTWFraW5nIHRoaXMgYWNjZXNz
b3IgbWV0aG9kIGNvbnN0LgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6ZXZhbERpc2Fi
bGVkRXJyb3JNZXNzYWdlKToKKyAgICAgICAgICAgIEFjY2Vzc29yIGZvciB0aGUgZXJyb3IgbWVz
c2FnZSBzZXQgdmlhICdzZXRFdmFsRGlzYWJsZWQnLgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6c2V0RXZhbEVuYWJsZWQpOgorICAgICAgICAgICAgQWRkaW5nIGFuICdlcnJvck1lc3Nh
Z2UnIHBhcmFtZXRlciB3aGljaCBpcyBzdG9yZWQgb24gdGhlIGdsb2JhbAorICAgICAgICAgICAg
b2JqZWN0LCBhbmQgdXNlZCB3aGVuIGV4Y2VwdGlvbnMgYXJlIHRocm93bi4KKwogMjAxMi0wOC0x
NiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFN0cnVjdHVyZSBj
aGVjayBob2lzdGluZyBzaG91bGQgYmUgbGVzcyBleHBlbnNpdmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNTU3
YjgxMzEwMTNlMGY1ZWY1ZmJiNmRlYWYwOWI2OTRmMzNjM2E0Li4yYTQ5ZDc2YTEzOGRmYjYyOTA0
N2E0OWQ3NGU2NTgwMDEyMDEyNWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMTIt
MDgtMTcgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKworICAgICAgICBKU0Mgc2hv
dWxkIHRocm93IGEgbW9yZSBkZXNjcmlwdGl2ZSBleGNlcHRpb24gd2hlbiBibG9ja2luZyAnZXZh
bCcgdmlhIENTUC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk0MzMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVW5sZXNzIGV4cGxpY2l0bHkgd2hpdGVsaXN0ZWQsIHRoZSAnc2NyaXB0LXNyYycgQ29udGVu
dCBTZWN1cml0eSBQb2xpY3kKKyAgICAgICAgZGlyZWN0aXZlIGJsb2NrcyAnZXZhbCcgYW5kICdl
dmFsJy1saWtlIGNvbnN0cnVjdHMgc3VjaCBhcworICAgICAgICAnbmV3IEZ1bmN0aW9uKCknLiBX
aGVuICdldmFsJyBpcyBlbmNvdW50ZXJlZCBpbiBjb2RlLCBhbiAnRXZhbEVycm9yJyBpcworICAg
ICAgICB0aHJvd24sIGJ1dCB0aGUgYXNzb2NpYXRlZCBtZXNzYWdlIGlzIHBvb3I6ICJFdmFsIGlz
IGRpc2FibGVkIiBkb2Vzbid0CisgICAgICAgIGdpdmUgZGV2ZWxvcGVycyBlbm91Z2ggaW5mb3Jt
YXRpb24gYWJvdXQgd2h5IHRoZWlyIGNvZGUgaXNuJ3QgYmVoYXZpbmcKKyAgICAgICAgYXMgZXhw
ZWN0ZWQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGFuICdlcnJvck1lc3NhZ2UnIHBhcmFt
ZXRlciB0byB0aGUgSmF2YVNjcmlwdENvcmUgbWV0aG9kCisgICAgICAgIHVzZWQgdG8gZGlzYWJs
ZSAnZXZhbCc7IENvbnRlbnRTZWN1cml0eVBvbGljeSBoYXMgdGhlIG9wcG9ydHVuaXR5IHRvCisg
ICAgICAgIHBhc3MgaW4gYSBtb3JlIGRldGFpbGVkIGFuZCBkZXNjcmlwdGl2ZSBlcnJvciB0aGF0
IGNvbnRhaW5zIG1vcmUgY29udGV4dAorICAgICAgICBmb3IgdGhlIGRldmVsb3Blci4KKworICAg
ICAgICBUaGUgbmV3IGVycm9yIG1lc3NhZ2UgaXMgdGVzdGVkIGJ5IGFkanVzdGluZyBleGlzdGlu
ZyB0ZXN0czsgbm90aGluZyBuZXcKKyAgICAgICAgaXMgcmVxdWlyZWQuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dENvbnRyb2xsZXI6OmluaXRTY3JpcHQpOgorICAgICAgICAgICAgUmVhZCB0aGUgZXJyb3IgbWVz
c2FnZSBvZmYgdGhlIGRvY3VtZW50J3MgQ29udGVudFNlY3VyaXR5UG9saWN5LgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFNjcmlwdENvbnRyb2xsZXIpOgor
ICAgICAgICAgICAgUGlwZSB0aGUgZXJyb3IgbWVzc2FnZSB0aHJvdWdoIHRvIEpTR2xvYmFsT2Jq
ZWN0IHdoZW4gZGlzYWJsaW5nIGV2YWwKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3Jp
cHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xs
ZXI6OmRpc2FibGVFdmFsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250
cm9sbGVyLmg6CisgICAgICAgIChXb3JrZXJTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgICAg
IFBpcGUgdGhlIGVycm9yIG1lc3NhZ2UgdGhyb3VnaCB0byBKU0dsb2JhbE9iamVjdCB3aGVuIGRp
c2FibGluZyBldmFsCisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCk6CisgICAg
ICAgICogYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoU2NyaXB0Q29u
dHJvbGxlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZh
bCk6CisgICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oOgorICAg
ICAgICAoV29ya2VyU2NyaXB0Q29udHJvbGxlcik6CisgICAgICAgICAgICBQbGFjZWhvbGRlciBm
b3IgVjggcGlwaW5nIHRvIGJlIGJ1aWx0IGluIHdlYmsuaXQvOTQzMzIuCisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaXNhYmxlRXZhbCk6
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVudCk6CisgICAgICAg
ICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpOgorICAgICAgICAgICAgUGlwZSB0aGUgZXJyb3IgbWVzc2FnZSB0aHJvdWdoIHRv
IHRoZSBTY3JpcHRDb250cm9sbGVyIHdoZW4KKyAgICAgICAgICAgIGRpc2FibGluZyBldmFsLgor
ICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSk6CisgICAgICAg
ICAgICBBY2Nlc3NvciBmb3IgdGhlIGVycm9yIG1lc3NhZ2UgdGhhdCBvdWdodCBiZSBkaXNwbGF5
ZWQgdG8gZGV2ZWxvcGVycworICAgICAgICAgICAgd2hlbiAnZXZhbCcgdXNlZCB3aGlsZSBkaXNh
YmxlZCBmb3IgYSBzcGVjaWZpYyBkaXJlY3RpdmUgbGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkNT
UERpcmVjdGl2ZUxpc3Q6OnNldEV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSk6CisgICAgICAgICAg
ICBNdXRhdG9yIGZvciB0aGUgZXJyb3IgbWVzc2FnZSB0aGF0IG91Z2h0IGJlIGRpc3BsYXllZCB0
byBkZXZlbG9wZXJzCisgICAgICAgICAgICB3aGVuICdldmFsJyB1c2VkIHdoaWxlIGRpc2FibGVk
IGZvciBhIHNwZWNpZmljIGRpcmVjdGl2ZSBsaXN0LgorICAgICAgICAoQ1NQRGlyZWN0aXZlTGlz
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpjcmVhdGUpOgorICAgICAg
ICAgICAgVXBvbiBjcmVhdGlvbiBvZiBhIENTUERpcmVjdGl2ZUxpc3QsIHNldCB0aGUgZXJyb3Ig
bWVzc2FnZSBpZiB0aGUKKyAgICAgICAgICAgIGRpcmVjdGl2ZSBsaXN0IGRpc2FibGVzICdldmFs
Jy4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2ZUhl
YWRlcik6CisgICAgICAgICAgICBQYXNzIHRoZSBlcnJvciBtZXNzYWdlIGludG8gU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6ZGlzYWJsZUV2YWwuCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSk6CisgICAgICAgICAgICBQdWJs
aWMgYWNjZXNzb3IgZm9yIHRoZSBwb2xpY3kncyBlcnJvciBtZXNzYWdlOyB3YWxrcyB0aGUgbGlz
dCBvZgorICAgICAgICAgICAgZGlyZWN0aXZlIGxpc3RzIGFuZCByZXR1cm5zIHRoZSBmaXJzdCBl
cnJvciBtZXNzYWdlIGZvdW5kLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9D
b250ZW50U2VjdXJpdHlQb2xpY3kuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dDo6ZGlzYWJsZUV2YWwpOgorICAg
ICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5oOgorICAgICAgICAoV29ya2VyQ29udGV4dCk6
CisgICAgICAgICAgICBQaXBlIHRoZSBlcnJvciBtZXNzYWdlIHRocm91Z2ggdG8gdGhlIFNjcmlw
dENvbnRyb2xsZXIgd2hlbgorICAgICAgICAgICAgZGlzYWJsaW5nIGV2YWwuCisKIDIwMTItMDgt
MTYgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogU25pcHBldCBzY3JpcHQgbWFwcGluZyBzaG91bGQgbm90IGxvYWQgc25pcHBl
dHMgdW50aWwgd29ya3NwYWNlIHJlc2V0IGV2ZW50IGlzIGRpc3BhdGNoZWQgb24gc2NyaXB0cyBw
YW5lbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFi
bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5k
ZXggNzNiNGI2YzRmMzE3NWZmOGU3OTVkY2MyYjcwNjMwNzQxMTZiZDJlYS4uNzMyNDMyYWM0NWRh
YjIxYzFjMjVkNGZhMzdiMTBjNjVjOGQ2ZTk1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCBKU09iamVjdCogRXZh
bEV4ZWN1dGFibGU6OmNvbXBpbGVJbnRlcm5hbChFeGVjU3RhdGUqIGV4ZWMsIFNjb3BlQ2hhaW5O
b2RlKiBzY29wZQogICAgICAgICBtX2V2YWxDb2RlQmxvY2sgPSBuZXdDb2RlQmxvY2sucmVsZWFz
ZSgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghbGV4aWNhbEdsb2JhbE9iamVjdC0+ZXZh
bEVuYWJsZWQoKSkKLSAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUV2
YWxFcnJvcihleGVjLCAiRXZhbCBpcyBkaXNhYmxlZCIpKTsKKyAgICAgICAgICAgIHJldHVybiB0
aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUV2YWxFcnJvcihleGVjLCBsZXhpY2FsR2xvYmFsT2JqZWN0
LT5ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UoKSkpOwogICAgICAgICBSZWZQdHI8RXZhbE5vZGU+
IGV2YWxOb2RlID0gcGFyc2U8RXZhbE5vZGU+KGdsb2JhbERhdGEsIGxleGljYWxHbG9iYWxPYmpl
Y3QsIG1fc291cmNlLCAwLCBpc1N0cmljdE1vZGUoKSA/IEpTUGFyc2VTdHJpY3QgOiBKU1BhcnNl
Tm9ybWFsLCBFdmFsTm9kZTo6aXNGdW5jdGlvbk5vZGUgPyBKU1BhcnNlRnVuY3Rpb25Db2RlIDog
SlNQYXJzZVByb2dyYW1Db2RlLCBsZXhpY2FsR2xvYmFsT2JqZWN0LT5kZWJ1Z2dlcigpLCBleGVj
LCAmZXhjZXB0aW9uKTsKICAgICAgICAgaWYgKCFldmFsTm9kZSkgewogICAgICAgICAgICAgQVNT
RVJUKGV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IDdmODJhNzRjZTAwZTBjMDI4OTVmM2JiODRj
NGZmOTgyZmM0ODM5YWYuLjJhNDhiZGQ1NTU2NmY1YzZkMjYzYzhjMGYzM2FhMDgzNjkxYjY4YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29u
c3RydWN0b3IuY3BwCkBAIC04Myw3ICs4Myw3IEBAIENhbGxUeXBlIEZ1bmN0aW9uQ29uc3RydWN0
b3I6OmdldENhbGxEYXRhKEpTQ2VsbCosIENhbGxEYXRhJiBjYWxsRGF0YSkKIEpTT2JqZWN0KiBj
b25zdHJ1Y3RGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MsIGNvbnN0IElkZW50aWZpZXImIGZ1bmN0aW9uTmFt
ZSwgY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRpb24mIHBvc2l0aW9u
KQogewogICAgIGlmICghZ2xvYmFsT2JqZWN0LT5ldmFsRW5hYmxlZCgpKQotICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVFdmFsRXJyb3IoZXhlYywgIkZ1bmN0aW9uIGNvbnN0
cnVjdG9yIGlzIGRpc2FibGVkIikpOworICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBj
cmVhdGVFdmFsRXJyb3IoZXhlYywgZ2xvYmFsT2JqZWN0LT5ldmFsRGlzYWJsZWRFcnJvck1lc3Nh
Z2UoKSkpOwogICAgIHJldHVybiBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJsZWRD
aGVjayhleGVjLCBnbG9iYWxPYmplY3QsIGFyZ3MsIGZ1bmN0aW9uTmFtZSwgc291cmNlVVJMLCBw
b3NpdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCmluZGV4IGFmMDNmMzJlNjlmY2FmNTYzNjUxOTlkY2IyODI3YzZhNGRiMGNhMTAu
LjY2NTk2ZWEyMmVhMzE0N2FkOGUxYmI5NTI2ODE4YzZmNDcwNzdjNmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTQ5LDYgKzE0OSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTeW1ib2xUYWJsZSBtX3N5bWJvbFRhYmxlOwog
CiAgICAgICAgIGJvb2wgbV9ldmFsRW5hYmxlZDsKKyAgICAgICAgVVN0cmluZyBtX2V2YWxEaXNh
YmxlZEVycm9yTWVzc2FnZTsKICAgICAgICAgYm9vbCBtX2V4cGVyaW1lbnRzRW5hYmxlZDsKIAog
ICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSBzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlOwpAQCAtMjk2LDggKzI5NywxMyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBib29sIGlzRHluYW1pY1Njb3BlKGJvb2wmIHJlcXVpcmVzRHlu
YW1pY0NoZWNrcykgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBzZXRFdmFsRW5hYmxlZChib29sIGVu
YWJsZWQpIHsgbV9ldmFsRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBldmFsRW5h
YmxlZCgpIHsgcmV0dXJuIG1fZXZhbEVuYWJsZWQ7IH0KKyAgICAgICAgYm9vbCBldmFsRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXZhbEVuYWJsZWQ7IH0KKyAgICAgICAgY29uc3QgVVN0cmlu
ZyYgZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9ldmFsRGlzYWJs
ZWRFcnJvck1lc3NhZ2U7IH0KKyAgICAgICAgdm9pZCBzZXRFdmFsRW5hYmxlZChib29sIGVuYWJs
ZWQsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlID0gU3RyaW5nKCkpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIG1fZXZhbEVuYWJsZWQgPSBlbmFibGVkOworICAgICAgICAgICAgbV9ldmFsRGlz
YWJsZWRFcnJvck1lc3NhZ2UgPSBVU3RyaW5nKGVycm9yTWVzc2FnZS5pbXBsKCkpOworICAgICAg
ICB9CiAKICAgICAgICAgdm9pZCByZXNldFByb3RvdHlwZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVl
IHByb3RvdHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5jcHAKaW5kZXggZGE5Mzk4NGVkNzZjMDQ4MjAzNWQ3NDk4YWU3ZjAyNzFmOTY3OWY4
My4uODM4NTlhYmMyMmVlNzM5OTkwODg5YWYwOTQwYWUxMGY2MDlkNTk3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTIyMiw3ICsy
MjIsNyBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KERP
TVdyYXBwZXJXb3JsZCogd29ybGQpCiAgICAgd2luZG93U2hlbGwtPndpbmRvdygpLT51cGRhdGVE
b2N1bWVudCgpOwogCiAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAgIHdpbmRv
d1NoZWxsLT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQobV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29u
dGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93RXZhbCgwLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OlN1cHByZXNzUmVwb3J0KSk7ICAgCisgICAgICAgIHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0
RXZhbEVuYWJsZWQobV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCkt
PmFsbG93RXZhbCgwLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlN1cHByZXNzUmVwb3J0KSwgbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmV2YWxEaXNhYmxlZEVy
cm9yTWVzc2FnZSgpKTsgICAKIAogICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgp
KSB7CiAgICAgICAgIGF0dGFjaERlYnVnZ2VyKHdpbmRvd1NoZWxsLCBwYWdlLT5kZWJ1Z2dlcigp
KTsKQEAgLTI1MCwxMiArMjUwLDEyIEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZW5hYmxlRXZh
bCgpCiAgICAgd2luZG93U2hlbGwtPndpbmRvdygpLT5zZXRFdmFsRW5hYmxlZCh0cnVlKTsKIH0K
IAotdm9pZCBTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCgpCit2b2lkIFNjcmlwdENvbnRy
b2xsZXI6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewogICAgIEpT
RE9NV2luZG93U2hlbGwqIHdpbmRvd1NoZWxsID0gZXhpc3RpbmdXaW5kb3dTaGVsbChtYWluVGhy
ZWFkTm9ybWFsV29ybGQoKSk7CiAgICAgaWYgKCF3aW5kb3dTaGVsbCkKICAgICAgICAgcmV0dXJu
OwotICAgIHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQoZmFsc2UpOworICAg
IHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQoZmFsc2UsIGVycm9yTWVzc2Fn
ZSk7CiB9CiAKIGJvb2wgU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAppbmRleCBm
NzZmZGU4ZmM3MmY2ODA1ZWY0OGMwM2FmYzFkMDZhM2ExNTRjYTg3Li4xODdmYWI1MmJlZjBhZDIx
Y2Y1NGRlNTA2YTRlZjY1MWNmZmRiZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5oCkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgogICAgIFdU
Rjo6VGV4dFBvc2l0aW9uIGV2ZW50SGFuZGxlclBvc2l0aW9uKCkgY29uc3Q7CiAKICAgICB2b2lk
IGVuYWJsZUV2YWwoKTsKLSAgICB2b2lkIGRpc2FibGVFdmFsKCk7CisgICAgdm9pZCBkaXNhYmxl
RXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKICAgICBzdGF0aWMgYm9vbCBwcm9j
ZXNzaW5nVXNlckdlc3R1cmUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA5YmZkZThmMmFiMmUxZGUzZDUz
YjFjYmUyMmIzM2NkZjU1Yzc2NjQ1Li4zMDI5MTc0MzRiOTM5M2M3MmEyMTMwYzQ0ZDM3Y2YyYzVi
ZjgyMTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3Jp
cHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTg4LDEyICsxODgsMTIgQEAgYm9vbCBXb3JrZXJTY3Jp
cHRDb250cm9sbGVyOjppc0V4ZWN1dGlvbkZvcmJpZGRlbigpIGNvbnN0CiAgICAgcmV0dXJuIG1f
ZXhlY3V0aW9uRm9yYmlkZGVuOwogfQogCi12b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRp
c2FibGVFdmFsKCkKK3ZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwoY29u
c3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7CiAgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CiAg
ICAgSlNMb2NrSG9sZGVyIGxvY2soZ2xvYmFsRGF0YSgpKTsKIAotICAgIG1fd29ya2VyQ29udGV4
dFdyYXBwZXItPnNldEV2YWxFbmFibGVkKGZhbHNlKTsKKyAgICBtX3dvcmtlckNvbnRleHRXcmFw
cGVyLT5zZXRFdmFsRW5hYmxlZChmYWxzZSwgZXJyb3JNZXNzYWdlKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2Vy
U2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDNiMmFjZDRiNjRkNzAzOTlmYzM3ODhhZmQ4YjdjODYx
ZGZmMTYyZWMuLmEzMTNmYjBmZTFjNTA0NTM1MjUwY2I0M2VjNzIxMzZjNjZlMDAzNDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVy
LmgKQEAgLTc1LDcgKzc1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGZv
cmJpZEV4ZWN1dGlvbigpOwogICAgICAgICBib29sIGlzRXhlY3V0aW9uRm9yYmlkZGVuKCkgY29u
c3Q7CiAKLSAgICAgICAgdm9pZCBkaXNhYmxlRXZhbCgpOworICAgICAgICB2b2lkIGRpc2FibGVF
dmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAogICAgICAgICBKU0M6OkpTR2xvYmFs
RGF0YSogZ2xvYmFsRGF0YSgpIHsgcmV0dXJuIG1fZ2xvYmFsRGF0YS5nZXQoKTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDA2
OTJlM2QyYjliODJkMzg5NmM5NTkyNjI5ZjM1Mjc0OWE3M2MwZWYuLjM5MDc0Y2I0NjQ4ZjQ2Njcx
YmEyYWIwYmY0NWE3MjM2NDE1NGRiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zMzYsNyArMzM2LDcgQEAgdm9pZCBTY3JpcHRD
b250cm9sbGVyOjplbmFibGVFdmFsKCkKICAgICB2OENvbnRleHQtPkFsbG93Q29kZUdlbmVyYXRp
b25Gcm9tU3RyaW5ncyh0cnVlKTsKIH0KIAotdm9pZCBTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxl
RXZhbCgpCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYg
LyogZXJyb3JNZXNzYWdlICovKQogewogICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsK
ICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSBwcm94eSgpLT53aW5kb3dT
aGVsbCgpLT5jb250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRD
b250cm9sbGVyLmgKaW5kZXggZDE4OWRjMWM0N2Y5MThlMzk0ZjU4ZDZkODUxZjA2MTgyYTYyNjQ3
Ni4uYjVhMDYyODNlZjA0YjlkMDA1ZmNjNzBhMjZkMzA3NTg4MmE1YjU4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuaApAQCAtMTI1LDcgKzEyNSw3
IEBAIHB1YmxpYzoKICAgICBib29sIGhhdmVJbnRlcnByZXRlcigpIGNvbnN0OwogCiAgICAgdm9p
ZCBlbmFibGVFdmFsKCk7Ci0gICAgdm9pZCBkaXNhYmxlRXZhbCgpOworICAgIHZvaWQgZGlzYWJs
ZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCiAgICAgc3RhdGljIGJvb2wgY2Fu
QWNjZXNzRnJvbUN1cnJlbnRPcmlnaW4oRnJhbWUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBkNjc4OTUx
Mjk2NzMwOTBmNWI4YjBiYTZhMzdhMmRkMzVmMjBjZDYxLi41ODllYWNhNGMzM2U5MmE4ZjkyMGUx
ZjgyYWY2OTY4NjE2M2UzYjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIGJvb2wg
V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6aXNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdAogICAg
IHJldHVybiBtX2V4ZWN1dGlvbkZvcmJpZGRlbjsKIH0KIAotdm9pZCBXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjpkaXNhYmxlRXZhbCgpCit2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRpc2Fi
bGVFdmFsKGNvbnN0IFN0cmluZyYgLyogZXJyb3JNZXNzYWdlICovKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKaW5k
ZXggNjFlZDdhYmMxMWM5ZDMzYmE2YjY3YjkxNmM3YTIxNjc5OWRhNzIzMi4uNjhjZTg5YWFlMDdm
ZjM4NjU5MGJhZjhiOTk3ODQ2NjI4NjA4N2MwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaApAQCAtNzMsNyArNzMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZm9yYmlkRXhlY3V0aW9uKCk7CiAgICAg
ICAgIGJvb2wgaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdDsKIAotICAgICAgICB2b2lkIGRp
c2FibGVFdmFsKCk7CisgICAgICAgIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJik7CiAK
ICAgICAgICAgLy8gUmV0dXJucyBXb3JrZXJTY3JpcHRDb250cm9sbGVyIGZvciB0aGUgY3VycmVu
dGx5IGV4ZWN1dGluZyBjb250ZXh0LiAwIHdpbGwgYmUgcmV0dXJuZWQgaWYgdGhlIGN1cnJlbnQg
ZXhlY3V0aW5nIGNvbnRleHQgaXMgbm90IHRoZSB3b3JrZXIgY29udGV4dC4KICAgICAgICAgc3Rh
dGljIFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIGNvbnRyb2xsZXJGb3JDb250ZXh0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCA5MWY5MjEwNDI4MGU2OTc2ZmMwZWIzYzYxNTBiZTRkNjU5
MDIzOWVmLi4yZTVlOGJjZGFmYTkwZjhiOTYwNzhlMjkyY2IwMzljZjQyM2U1MWM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI4MDgsMTIgKzI4MDgsMTIgQEAgU3RyaW5nIERvY3VtZW50
Ojp1c2VyQWdlbnQoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogICAgIHJldHVybiBmcmFtZSgpID8g
ZnJhbWUoKS0+bG9hZGVyKCktPnVzZXJBZ2VudCh1cmwpIDogU3RyaW5nKCk7CiB9CiAKLXZvaWQg
RG9jdW1lbnQ6OmRpc2FibGVFdmFsKCkKK3ZvaWQgRG9jdW1lbnQ6OmRpc2FibGVFdmFsKGNvbnN0
IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewogICAgIGlmICghZnJhbWUoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgZnJhbWUoKS0+c2NyaXB0KCktPmRpc2FibGVFdmFsKCk7CisgICAgZnJhbWUo
KS0+c2NyaXB0KCktPmRpc2FibGVFdmFsKGVycm9yTWVzc2FnZSk7CiB9CiAKIGJvb2wgRG9jdW1l
bnQ6OmNhbk5hdmlnYXRlKEZyYW1lKiB0YXJnZXRGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggY2I0NzBjZmY0MWNmMTQ3ZWExM2U5NDk4MTc1OGM2MWFjMDMyMjg2Yy4uNjM3YWUwYmNiOGY0
NDZiNWM4NzdiY2I1Yzc1MDIwZjY1ZWIzYTA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTYz
MCw3ICs2MzAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoY29u
c3QgS1VSTCYpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIGRpc2FibGVFdmFsKCk7CisgICAg
dmlydHVhbCB2b2lkIGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAog
ICAgIGJvb2wgY2FuTmF2aWdhdGUoRnJhbWUqIHRhcmdldEZyYW1lKTsKICAgICBGcmFtZSogZmlu
ZFVuc2FmZVBhcmVudFNjcm9sbFByb3BhZ2F0aW9uQm91bmRhcnkoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IGU3NDY4MDM4YzZhMzg1Yjg4MTZm
OWZjMWI0NzM1MDZhYzI2Y2ExMTAuLjhhZDNlOWYyNDBhODNiMTZmNDI5YmFlMDE4ZDg3MjA4NGI0
Mzc0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApA
QCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQo
Y29uc3QgS1VSTCYpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbCgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UpID0gMDsKIAogICAgIGJvb2wgc2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcmIGVycm9y
TWVzc2FnZSwgaW50JiBsaW5lTnVtYmVyLCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgdm9pZCBy
ZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCA4
ODJmOGM2YWE5ZmE0MTA0OTZhYzA2YThmOTE4MWJlZjJjYjEyZTc3Li5lZjIyMmI1ZjYwMTM2MWE3
YjFkZDdmMWY0ZTYzOTZjZjJiZTdjYWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC03MjAsNiArNzIwLDcgQEAgcHVibGljOgogICAgIGJv
b2wgYWxsb3dGb3JtQWN0aW9uKGNvbnN0IEtVUkwmLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlJl
cG9ydGluZ1N0YXR1cykgY29uc3Q7CiAKICAgICB2b2lkIGdhdGhlclJlcG9ydFVSSXMoRE9NU3Ry
aW5nTGlzdCYpIGNvbnN0OworICAgIGNvbnN0IFN0cmluZyYgZXZhbERpc2FibGVkRXJyb3JNZXNz
YWdlKCkgeyByZXR1cm4gbV9ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2U7IH0KIAogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBDU1BEaXJlY3RpdmVMaXN0KENvbnRlbnRTZWN1cml0eVBvbGljeSopOwpA
QCAtNzQ1LDYgKzc0Niw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjaGVja1NvdXJjZShTb3VyY2VM
aXN0RGlyZWN0aXZlKiwgY29uc3QgS1VSTCYpIGNvbnN0OwogICAgIGJvb2wgY2hlY2tNZWRpYVR5
cGUoTWVkaWFMaXN0RGlyZWN0aXZlKiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IHR5cGVBdHRyaWJ1dGUpIGNvbnN0OwogCisgICAgdm9pZCBzZXRFdmFsRGlzYWJsZWRFcnJvck1l
c3NhZ2UoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsgbV9ldmFsRGlzYWJsZWRFcnJvck1l
c3NhZ2UgPSBlcnJvck1lc3NhZ2U7IH0KKwogICAgIGJvb2wgY2hlY2tFdmFsQW5kUmVwb3J0Vmlv
bGF0aW9uKFNvdXJjZUxpc3REaXJlY3RpdmUqLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwgPSBTdHJpbmcoKSwgY29uc3QgV1RGOjpPcmRpbmFs
TnVtYmVyJiBjb250ZXh0TGluZSA9IFdURjo6T3JkaW5hbE51bWJlcjo6YmVmb3JlRmlyc3QoKSwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCkgY29uc3Q7CiAgICAgYm9vbCBjaGVja0lu
bGluZUFuZFJlcG9ydFZpb2xhdGlvbihTb3VyY2VMaXN0RGlyZWN0aXZlKiwgY29uc3QgU3RyaW5n
JiBjb25zb2xlTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9y
ZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdDsKICAgICBib29sIGNoZWNrTm9uY2VBbmRS
ZXBvcnRWaW9sYXRpb24oTm9uY2VEaXJlY3RpdmUqLCBjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25z
dCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0
IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUpIGNvbnN0OwpAQCAtNzU0LDYgKzc1Nyw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBkZW55SWZFbmZvcmNpbmdQb2xpY3koKSBjb25zdCB7IHJl
dHVybiBtX3JlcG9ydE9ubHk7IH0KIAogICAgIENvbnRlbnRTZWN1cml0eVBvbGljeSogbV9wb2xp
Y3k7CisKICAgICBTdHJpbmcgbV9oZWFkZXI7CiAKICAgICBib29sIG1fcmVwb3J0T25seTsKQEAg
LTc3Myw2ICs3NzcsOCBAQCBwcml2YXRlOgogICAgIE93blB0cjxTb3VyY2VMaXN0RGlyZWN0aXZl
PiBtX3N0eWxlU3JjOwogCiAgICAgVmVjdG9yPEtVUkw+IG1fcmVwb3J0VVJJczsKKworICAgIFN0
cmluZyBtX2V2YWxEaXNhYmxlZEVycm9yTWVzc2FnZTsKIH07CiAKIENTUERpcmVjdGl2ZUxpc3Q6
OkNTUERpcmVjdGl2ZUxpc3QoQ29udGVudFNlY3VyaXR5UG9saWN5KiBwb2xpY3kpCkBAIC03OTcs
NiArODAzLDExIEBAIFBhc3NPd25QdHI8Q1NQRGlyZWN0aXZlTGlzdD4gQ1NQRGlyZWN0aXZlTGlz
dDo6Y3JlYXRlKENvbnRlbnRTZWN1cml0eVBvbGljeSogcG9sCiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAorICAgIGlmICghZGlyZWN0aXZlcy0+Y2hlY2tFdmFsKGRpcmVjdGl2ZXMtPm9wZXJhdGl2
ZURpcmVjdGl2ZShkaXJlY3RpdmVzLT5tX3NjcmlwdFNyYy5nZXQoKSkpKSB7CisgICAgICAgIFN0
cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiUmVmdXNlZCB0byBldmFsdWF0ZSBhIHN0cmluZyBh
cyBKYXZhU2NyaXB0IGJlY2F1c2UgJ3Vuc2FmZS1ldmFsJyBpcyBub3QgYW4gYWxsb3dlZCBzb3Vy
Y2Ugb2Ygc2NyaXB0IGluIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGly
ZWN0aXZlOiBcIiIsIGRpcmVjdGl2ZXMtPm9wZXJhdGl2ZURpcmVjdGl2ZShkaXJlY3RpdmVzLT5t
X3NjcmlwdFNyYy5nZXQoKSktPnRleHQoKSwgIlwiLlxuIik7CisgICAgICAgIGRpcmVjdGl2ZXMt
PnNldEV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZShtZXNzYWdlKTsKKyAgICB9CisKICAgICByZXR1
cm4gZGlyZWN0aXZlcy5yZWxlYXNlKCk7CiB9CiAKQEAgLTEyNDksNyArMTI2MCw3IEBAIHZvaWQg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpkaWRSZWNlaXZlSGVhZGVyKGNvbnN0IFN0cmluZyYgaGVh
ZGVyLCBIZWFkZXJUeXBlIHR5CiAgICAgfQogCiAgICAgaWYgKCFhbGxvd0V2YWwoMCwgU3VwcHJl
c3NSZXBvcnQpKQotICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRpc2FibGVFdmFs
KCk7CisgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGlzYWJsZUV2YWwoZXZhbERp
c2FibGVkRXJyb3JNZXNzYWdlKCkpOwogfQogCiB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
c2V0T3ZlcnJpZGVBbGxvd0lubGluZVN0eWxlKGJvb2wgdmFsdWUpCkBAIC0xMzM3LDYgKzEzNDgs
MTUgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93RXZhbChQYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBDb24KICAgICByZXR1cm4gaXNBbGxvd2VkQnlBbGxX
aXRoQ2FsbFN0YWNrPCZDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0V2YWw+KG1fcG9saWNpZXMsIGNh
bGxTdGFjaywgcmVwb3J0aW5nU3RhdHVzKTsKIH0KIAorU3RyaW5nIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6ZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKCkgY29uc3QKK3sKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fcG9saWNpZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKCFtX3Bv
bGljaWVzW2ldLT5hbGxvd0V2YWwoMCwgU3VwcHJlc3NSZXBvcnQpKQorICAgICAgICAgICAgcmV0
dXJuIG1fcG9saWNpZXNbaV0tPmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpOworICAgIH0KKyAg
ICByZXR1cm4gU3RyaW5nKCk7Cit9CisKIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxv
d1NjcmlwdE5vbmNlKGNvbnN0IFN0cmluZyYgbm9uY2UsIGNvbnN0IFN0cmluZyYgY29udGV4dFVS
TCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSwgY29uc3QgS1VSTCYgdXJs
KSBjb25zdAogewogICAgIHJldHVybiBpc0FsbG93ZWRCeUFsbFdpdGhOb25jZTwmQ1NQRGlyZWN0
aXZlTGlzdDo6YWxsb3dTY3JpcHROb25jZT4obV9wb2xpY2llcywgbm9uY2UsIGNvbnRleHRVUkws
IGNvbnRleHRMaW5lLCB1cmwpOwpAQCAtMTM0NSw3ICsxMzY1LDcgQEAgYm9vbCBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OmFsbG93U2NyaXB0Tm9uY2UoY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3Qg
U3RyaW5nJgogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93UGx1Z2luVHlwZShjb25z
dCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdHlwZUF0dHJpYnV0ZSwgY29uc3QgS1VSTCYg
dXJsLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlJlcG9ydGluZ1N0YXR1cyByZXBvcnRpbmdTdGF0
dXMpIGNvbnN0CiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3BvbGljaWVzLnNpemUo
KTsgKytpKSB7Ci0gICAgICAgIGlmICghbV9wb2xpY2llc1tpXS5nZXQoKS0+YWxsb3dQbHVnaW5U
eXBlKHR5cGUsIHR5cGVBdHRyaWJ1dGUsIHVybCwgcmVwb3J0aW5nU3RhdHVzKSkKKyAgICAgICAg
aWYgKCFtX3BvbGljaWVzW2ldLT5hbGxvd1BsdWdpblR5cGUodHlwZSwgdHlwZUF0dHJpYnV0ZSwg
dXJsLCByZXBvcnRpbmdTdGF0dXMpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE0MDQsNyArMTQyNCw3IEBAIGJvb2wgQ29udGVudFNlY3Vy
aXR5UG9saWN5Ojppc0FjdGl2ZSgpIGNvbnN0CiB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
Z2F0aGVyUmVwb3J0VVJJcyhET01TdHJpbmdMaXN0JiBsaXN0KSBjb25zdAogewogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbV9wb2xpY2llcy5zaXplKCk7ICsraSkKLSAgICAgICAgbV9wb2xp
Y2llc1tpXS5nZXQoKS0+Z2F0aGVyUmVwb3J0VVJJcyhsaXN0KTsKKyAgICAgICAgbV9wb2xpY2ll
c1tpXS0+Z2F0aGVyUmVwb3J0VVJJcyhsaXN0KTsKIH0KIAogU2VjdXJpdHlPcmlnaW4qIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6c2VjdXJpdHlPcmlnaW4oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKaW5kZXggM2MzOTA1MTZhYWNlNWJkZTMzNzhh
ODhlOGJmNmQzMDBiMzk5N2QyMy4uNTkxNDZiZTEyZWE4YWZlYTE3OTcwYmExZDEzMTgyMjFkMTIz
ZDk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCkBA
IC0xMTAsNiArMTEwLDcgQEAgcHVibGljOgogICAgIEtVUkwgY29tcGxldGVVUkwoY29uc3QgU3Ry
aW5nJikgY29uc3Q7CiAgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7
CiAgICAgdm9pZCBlbmZvcmNlU2FuZGJveEZsYWdzKFNhbmRib3hGbGFncykgY29uc3Q7CisgICAg
U3RyaW5nIGV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpIGNvbnN0OwogCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IENvbnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAppbmRleCBlNWJkMTVlYTZh
ZWNiNjVjMzZlZDQ2MmJmN2ZmM2M2ODdmZWFjNzJhLi43YzI5ZjMzNzRjM2U5MDNhYWVmYTdjNmVk
OTJlOTI1NDU4Y2I5MTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5j
cHAKQEAgLTE0Nyw5ICsxNDcsOSBAQCBTdHJpbmcgV29ya2VyQ29udGV4dDo6dXNlckFnZW50KGNv
bnN0IEtVUkwmKSBjb25zdAogICAgIHJldHVybiBtX3VzZXJBZ2VudDsKIH0KIAotdm9pZCBXb3Jr
ZXJDb250ZXh0OjpkaXNhYmxlRXZhbCgpCit2b2lkIFdvcmtlckNvbnRleHQ6OmRpc2FibGVFdmFs
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewotICAgIG1fc2NyaXB0LT5kaXNhYmxlRXZh
bCgpOworICAgIG1fc2NyaXB0LT5kaXNhYmxlRXZhbChlcnJvck1lc3NhZ2UpOwogfQogCiBXb3Jr
ZXJMb2NhdGlvbiogV29ya2VyQ29udGV4dDo6bG9jYXRpb24oKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckNvbnRleHQuaAppbmRleCAzNDgxOWQwN2NkYmE2YjQ5NWY2ODUwYzAzYjk3
NjExNmRkNTI4NDQxLi5hZTMyNmYzYjg2MjllNGRmODczODcwOThmMWNjM2NkNGY1MGY4YTZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaApAQCAtNzIsNyArNzIsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IEdyb3VwU2V0dGluZ3MqIGdyb3VwU2V0
dGluZ3MoKSB7IHJldHVybiBtX2dyb3VwU2V0dGluZ3MuZ2V0KCk7IH0KICAgICAgICAgdmlydHVh
bCBTdHJpbmcgdXNlckFnZW50KGNvbnN0IEtVUkwmKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlzYWJsZUV2YWwoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpc2FibGVFdmFsKGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAogICAgICAgICBXb3JrZXJTY3JpcHRDb250cm9s
bGVyKiBzY3JpcHQoKSB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsgfQogICAgICAgICB2b2lkIGNs
ZWFyU2NyaXB0KCkgeyBtX3NjcmlwdC5jbGVhcigpOyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWYxMDliOWQ0ZGRiMmQ1
NTljZjRlNmMyOGI4ZDVkODRjMDZjODQzZS4uYmNjYjU0OWNjOTFjNzg1OWYzYjAyMDA0MWYyYjlj
MTZiNTE4MDU2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA4LTE3ICBNaWtlIFdlc3Qg
IDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSlNDIHNob3VsZCB0aHJvdyBhIG1vcmUg
ZGVzY3JpcHRpdmUgZXhjZXB0aW9uIHdoZW4gYmxvY2tpbmcgJ2V2YWwnIHZpYSBDU1AuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDMzMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9ja2VkLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFs
LWJsb2NrZWQtaW4tYWJvdXQtYmxhbmstaWZyYW1lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9mdW5jdGlvbi1jb25zdHJ1
Y3Rvci1ibG9ja2VkLWV4cGVjdGVkLnR4dDoKKwogMjAxMi0wOC0xNiAgQWRyaWVubmUgV2Fsa2Vy
ICA8ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmViYXNlbGluZSBtZWRp
YS1kb2N1bWVudC1hdWRpby1yZXBhaW50IGFmdGVyIENocm9taXVtIHIxNTE5ODgKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L2V2YWwtYmxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLWJsb2NrZWQtZXhwZWN0ZWQudHh0CmluZGV4
IDY5ODU1OGE4OWI4NzYyMjllZGE5MmEzYzVhNzlhZTE2ZmU0MzY4OWUuLjM2ODE3OWQ4OWNkMTli
NmMyODhmMjdjNTRjNGM2MTY5NTk1MWIyN2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtYmxvY2tlZC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvZXZhbC1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDUgQEAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAxMjogRXZhbEVycm9yOiBFdmFsIGlzIGRpc2FibGVkCi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTU6IEV2YWxFcnJvcjogRXZhbCBpcyBkaXNhYmxlZAorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDEyOiBFdmFsRXJyb3I6IFJlZnVzZWQgdG8gZXZhbHVhdGUgYSBzdHJpbmcg
YXMgSmF2YVNjcmlwdCBiZWNhdXNlICd1bnNhZmUtZXZhbCcgaXMgbm90IGFuIGFsbG93ZWQgc291
cmNlIG9mIHNjcmlwdCBpbiB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRp
cmVjdGl2ZTogInNjcmlwdC1zcmMgJ3Vuc2FmZS1pbmxpbmUnIi4KKworQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE1OiBFdmFsRXJyb3I6IFJlZnVzZWQgdG8gZXZhbHVhdGUgYSBzdHJpbmcgYXMgSmF2
YVNjcmlwdCBiZWNhdXNlICd1bnNhZmUtZXZhbCcgaXMgbm90IGFuIGFsbG93ZWQgc291cmNlIG9m
IHNjcmlwdCBpbiB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2
ZTogInNjcmlwdC1zcmMgJ3Vuc2FmZS1pbmxpbmUnIi4KKwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLWJsb2Nr
ZWQtaW4tYWJvdXQtYmxhbmstaWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtYmxvY2tlZC1pbi1hYm91
dC1ibGFuay1pZnJhbWUtZXhwZWN0ZWQudHh0CmluZGV4IGI4MDczYjc4NmQzZDdmOWEyYWM3NzZj
ODc4NTczMmMyZmRmZjg3MWUuLjljYzU2N2Q3YjZjNGVmMWE3ODBhMTY2ZThmMTU3ZTM4OWQwOTk2
ZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L2V2YWwtYmxvY2tlZC1pbi1hYm91dC1ibGFuay1pZnJhbWUtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L2V2YWwtYmxvY2tlZC1pbi1hYm91dC1ibGFuay1pZnJhbWUtZXhwZWN0ZWQudHh0CkBA
IC0xLDMgKzEsNCBAQAogQUxFUlQ6IC9QQVNTLwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IEV2
YWxFcnJvcjogRXZhbCBpcyBkaXNhYmxlZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IEV2YWxF
cnJvcjogUmVmdXNlZCB0byBldmFsdWF0ZSBhIHN0cmluZyBhcyBKYXZhU2NyaXB0IGJlY2F1c2Ug
J3Vuc2FmZS1ldmFsJyBpcyBub3QgYW4gYWxsb3dlZCBzb3VyY2Ugb2Ygc2NyaXB0IGluIHRoZSBm
b2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LXNyYyAn
dW5zYWZlLWlubGluZSciLgorCiAgRXZhbCBzaG91bGQgYmUgYmxvY2tlZCBpbiB0aGUgaWZyYW1l
LCBidXQgaW5saW5lIHNjcmlwdCBzaG91bGQgYmUgYWxsb3dlZC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Z1bmN0aW9u
LWNvbnN0cnVjdG9yLWJsb2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZnVuY3Rpb24tY29uc3RydWN0b3ItYmxv
Y2tlZC1leHBlY3RlZC50eHQKaW5kZXggOGNjODNjYTFmYjFlMmEwNDljZjE0NDc3ZTQ1ZjY0MTVm
NGY3NjA1My4uNTUxZDk3YTAwMzU0YjcwOGE5ODRiYWMwYzk1ZDQwNjY1NmFiNWJlMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvZnVuY3Rpb24tY29uc3RydWN0b3ItYmxvY2tlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZnVuY3Rpb24t
Y29uc3RydWN0b3ItYmxvY2tlZC1leHBlY3RlZC50eHQKQEAgLTEsMiArMSwzIEBACi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTI6IEV2YWxFcnJvcjogRnVuY3Rpb24gY29uc3RydWN0b3IgaXMgZGlz
YWJsZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMjogRXZhbEVycm9yOiBSZWZ1c2VkIHRvIGV2
YWx1YXRlIGEgc3RyaW5nIGFzIEphdmFTY3JpcHQgYmVjYXVzZSAndW5zYWZlLWV2YWwnIGlzIG5v
dCBhbiBhbGxvd2VkIHNvdXJjZSBvZiBzY3JpcHQgaW4gdGhlIGZvbGxvd2luZyBDb250ZW50IFNl
Y3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICJzY3JpcHQtc3JjICd1bnNhZmUtaW5saW5lJyIuCisK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162831</attachid>
            <date>2012-09-07 11:30:18 -0700</date>
            <delta_ts>2012-09-12 11:24:45 -0700</delta_ts>
            <desc>Rebasing onto ToT.</desc>
            <filename>bug-94331-20120907202958.patch</filename>
            <type>text/plain</type>
            <size>27523</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3ODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
MGIyZDYzMTJiNzM1MzJhODg3MWJhYjI5NWE0ZjMzZTZjOGI4NDc1Li41YjU1NDMzMzRiMGQzZDkz
NzM0YTZiNTQ5YmUyM2I5YWIyYTk1YzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxMi0wOS0wNyAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEpTQyBzaG91bGQgdGhyb3cgYSBtb3JlIGRlc2NyaXB0aXZlIGV4Y2VwdGlvbiB3
aGVuIGJsb2NraW5nICdldmFsJyB2aWEgQ1NQLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVbmxlc3MgZXhwbGljaXRseSB3aGl0ZWxpc3RlZCwgdGhlICdz
Y3JpcHQtc3JjJyBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBkaXJlY3RpdmUgYmxv
Y2tzICdldmFsJyBhbmQgJ2V2YWwnLWxpa2UgY29uc3RydWN0cyBzdWNoIGFzCisgICAgICAgICdu
ZXcgRnVuY3Rpb24oKScuIFdoZW4gJ2V2YWwnIGlzIGVuY291bnRlcmVkIGluIGNvZGUsIGFuICdF
dmFsRXJyb3InIGlzCisgICAgICAgIHRocm93biwgYnV0IHRoZSBhc3NvY2lhdGVkIG1lc3NhZ2Ug
aXMgcG9vcjogIkV2YWwgaXMgZGlzYWJsZWQiIGRvZXNuJ3QKKyAgICAgICAgZ2l2ZSBkZXZlbG9w
ZXJzIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCB3aHkgdGhlaXIgY29kZSBpc24ndCBiZWhhdmlu
ZworICAgICAgICBhcyBleHBlY3RlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYW4gJ2Vy
cm9yTWVzc2FnZScgcGFyYW1ldGVyIHRvIHRoZSBKYXZhU2NyaXB0Q29yZSBtZXRob2QKKyAgICAg
ICAgdXNlZCB0byBkaXNhYmxlICdldmFsJzsgQ29udGVudFNlY3VyaXR5UG9saWN5IGhhcyB0aGUg
b3Bwb3J0dW5pdHkgdG8KKyAgICAgICAgcGFzcyBpbiBhIG1vcmUgZGV0YWlsZWQgYW5kIGRlc2Ny
aXB0aXZlIGVycm9yIHRoYXQgY29udGFpbnMgbW9yZSBjb250ZXh0CisgICAgICAgIGZvciB0aGUg
ZGV2ZWxvcGVyLgorCisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAg
KEpTQzo6RXZhbEV4ZWN1dGFibGU6OmNvbXBpbGVJbnRlcm5hbCk6CisgICAgICAgICAgICBEcm9w
IHRoZSBoYXJkLWNvZGVkICJFdmFsIGlzIGRpc2FibGVkIiBlcnJvciBtZXNzYWdlIGluIGZhdm9y
IG9mCisgICAgICAgICAgICByZWFkaW5nIHRoZSBlcnJvciBtZXNzYWdlIG9mZiB0aGUgZ2xvYmFs
IG9iamVjdC4KKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6CisgICAgICAgICAg
ICBEcm9wIHRoZSBoYXJkLWNvZGVkICJGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBkaXNhYmxlZCIg
ZXJyb3IgbWVzc2FnZQorICAgICAgICAgICAgaW4gZmF2b3Igb2YgcmVhZGluZyB0aGUgZXJyb3Ig
bWVzc2FnZSBvZmYgdGhlIGdsb2JhbCBvYmplY3QuCisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oOgorICAgICAgICAoSlNHbG9iYWxPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZXZhbEVuYWJsZWQpOgorICAgICAgICAgICAgTWFraW5nIHRoaXMgYWNjZXNz
b3IgbWV0aG9kIGNvbnN0LgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6ZXZhbERpc2Fi
bGVkRXJyb3JNZXNzYWdlKToKKyAgICAgICAgICAgIEFjY2Vzc29yIGZvciB0aGUgZXJyb3IgbWVz
c2FnZSBzZXQgdmlhICdzZXRFdmFsRGlzYWJsZWQnLgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6c2V0RXZhbEVuYWJsZWQpOgorICAgICAgICAgICAgQWRkaW5nIGFuICdlcnJvck1lc3Nh
Z2UnIHBhcmFtZXRlciB3aGljaCBpcyBzdG9yZWQgb24gdGhlIGdsb2JhbAorICAgICAgICAgICAg
b2JqZWN0LCBhbmQgdXNlZCB3aGVuIGV4Y2VwdGlvbnMgYXJlIHRocm93bi4KKwogMjAxMi0wOS0w
NiAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIEpT
QyBzaG91bGQgaGF2ZSBhIHpvbWJpZSBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTMzYzUwOTQwZmU4YTA3
MDRjZDI2ZTVjMWMyMTU0M2I5YjU4ODEzMC4uMzExM2JhODVmYWQ2ZWRlODA3OWFjN2UzMjBlYjgz
NmE4ZDIzODk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEyLTA5LTA3ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSlNDIHNob3VsZCB0aHJvdyBh
IG1vcmUgZGVzY3JpcHRpdmUgZXhjZXB0aW9uIHdoZW4gYmxvY2tpbmcgJ2V2YWwnIHZpYSBDU1Au
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDMzMQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVubGVzcyBl
eHBsaWNpdGx5IHdoaXRlbGlzdGVkLCB0aGUgJ3NjcmlwdC1zcmMnIENvbnRlbnQgU2VjdXJpdHkg
UG9saWN5CisgICAgICAgIGRpcmVjdGl2ZSBibG9ja3MgJ2V2YWwnIGFuZCAnZXZhbCctbGlrZSBj
b25zdHJ1Y3RzIHN1Y2ggYXMKKyAgICAgICAgJ25ldyBGdW5jdGlvbigpJy4gV2hlbiAnZXZhbCcg
aXMgZW5jb3VudGVyZWQgaW4gY29kZSwgYW4gJ0V2YWxFcnJvcicgaXMKKyAgICAgICAgdGhyb3du
LCBidXQgdGhlIGFzc29jaWF0ZWQgbWVzc2FnZSBpcyBwb29yOiAiRXZhbCBpcyBkaXNhYmxlZCIg
ZG9lc24ndAorICAgICAgICBnaXZlIGRldmVsb3BlcnMgZW5vdWdoIGluZm9ybWF0aW9uIGFib3V0
IHdoeSB0aGVpciBjb2RlIGlzbid0IGJlaGF2aW5nCisgICAgICAgIGFzIGV4cGVjdGVkLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhbiAnZXJyb3JNZXNzYWdlJyBwYXJhbWV0ZXIgdG8gdGhl
IEphdmFTY3JpcHRDb3JlIG1ldGhvZAorICAgICAgICB1c2VkIHRvIGRpc2FibGUgJ2V2YWwnOyBD
b250ZW50U2VjdXJpdHlQb2xpY3kgaGFzIHRoZSBvcHBvcnR1bml0eSB0bworICAgICAgICBwYXNz
IGluIGEgbW9yZSBkZXRhaWxlZCBhbmQgZGVzY3JpcHRpdmUgZXJyb3IgdGhhdCBjb250YWlucyBt
b3JlIGNvbnRleHQKKyAgICAgICAgZm9yIHRoZSBkZXZlbG9wZXIuCisKKyAgICAgICAgVGhlIG5l
dyBlcnJvciBtZXNzYWdlIGlzIHRlc3RlZCBieSBhZGp1c3RpbmcgZXhpc3RpbmcgdGVzdHM7IG5v
dGhpbmcgbmV3CisgICAgICAgIGlzIHJlcXVpcmVkLgorCisgICAgICAgICogYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVy
Ojppbml0U2NyaXB0KToKKyAgICAgICAgICAgIFJlYWQgdGhlIGVycm9yIG1lc3NhZ2Ugb2ZmIHRo
ZSBkb2N1bWVudCdzIENvbnRlbnRTZWN1cml0eVBvbGljeS4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmg6CisgICAgICAgIChTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgICAg
IFBpcGUgdGhlIGVycm9yIG1lc3NhZ2UgdGhyb3VnaCB0byBKU0dsb2JhbE9iamVjdCB3aGVuIGRp
c2FibGluZyBldmFsCisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxl
RXZhbCk6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oOgor
ICAgICAgICAoV29ya2VyU2NyaXB0Q29udHJvbGxlcik6CisgICAgICAgICAgICBQaXBlIHRoZSBl
cnJvciBtZXNzYWdlIHRocm91Z2ggdG8gSlNHbG9iYWxPYmplY3Qgd2hlbiBkaXNhYmxpbmcgZXZh
bAorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwpOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFNjcmlwdENvbnRyb2xsZXIpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdvcmtl
clNjcmlwdENvbnRyb2xsZXIpOgorICAgICAgICAgICAgUGxhY2Vob2xkZXIgZm9yIFY4IHBpcGlu
ZyB0byBiZSBidWlsdCBpbiB3ZWJrLml0Lzk0MzMyLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGlzYWJsZUV2YWwpOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgIChTY3JpcHRFeGVjdXRpb25Db250ZXh0KToK
KyAgICAgICAgICAgIFBpcGUgdGhlIGVycm9yIG1lc3NhZ2UgdGhyb3VnaCB0byB0aGUgU2NyaXB0
Q29udHJvbGxlciB3aGVuCisgICAgICAgICAgICBkaXNhYmxpbmcgZXZhbC4KKyAgICAgICAgKiBw
YWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJl
Y3RpdmVMaXN0OjpldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UpOgorICAgICAgICAgICAgQWNjZXNz
b3IgZm9yIHRoZSBlcnJvciBtZXNzYWdlIHRoYXQgb3VnaHQgYmUgZGlzcGxheWVkIHRvIGRldmVs
b3BlcnMKKyAgICAgICAgICAgIHdoZW4gJ2V2YWwnIHVzZWQgd2hpbGUgZGlzYWJsZWQgZm9yIGEg
c3BlY2lmaWMgZGlyZWN0aXZlIGxpc3QuCisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVM
aXN0OjpzZXRFdmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UpOgorICAgICAgICAgICAgTXV0YXRvciBm
b3IgdGhlIGVycm9yIG1lc3NhZ2UgdGhhdCBvdWdodCBiZSBkaXNwbGF5ZWQgdG8gZGV2ZWxvcGVy
cworICAgICAgICAgICAgd2hlbiAnZXZhbCcgdXNlZCB3aGlsZSBkaXNhYmxlZCBmb3IgYSBzcGVj
aWZpYyBkaXJlY3RpdmUgbGlzdC4KKyAgICAgICAgKENTUERpcmVjdGl2ZUxpc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgICAgIFVwb24g
Y3JlYXRpb24gb2YgYSBDU1BEaXJlY3RpdmVMaXN0LCBzZXQgdGhlIGVycm9yIG1lc3NhZ2UgaWYg
dGhlCisgICAgICAgICAgICBkaXJlY3RpdmUgbGlzdCBkaXNhYmxlcyAnZXZhbCcuCisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmRpZFJlY2VpdmVIZWFkZXIpOgorICAg
ICAgICAgICAgUGFzcyB0aGUgZXJyb3IgbWVzc2FnZSBpbnRvIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OmRpc2FibGVFdmFsLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5
OjpldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UpOgorICAgICAgICAgICAgUHVibGljIGFjY2Vzc29y
IGZvciB0aGUgcG9saWN5J3MgZXJyb3IgbWVzc2FnZTsgd2Fsa3MgdGhlIGxpc3Qgb2YKKyAgICAg
ICAgICAgIGRpcmVjdGl2ZSBsaXN0cyBhbmQgcmV0dXJucyB0aGUgZmlyc3QgZXJyb3IgbWVzc2Fn
ZSBmb3VuZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3Vy
aXR5UG9saWN5Lmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OmRpc2FibGVFdmFsKToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlckNvbnRleHQuaDoKKyAgICAgICAgKFdvcmtlckNvbnRleHQpOgorICAgICAgICAg
ICAgUGlwZSB0aGUgZXJyb3IgbWVzc2FnZSB0aHJvdWdoIHRvIHRoZSBTY3JpcHRDb250cm9sbGVy
IHdoZW4KKyAgICAgICAgICAgIGRpc2FibGluZyBldmFsLgorCiAyMDEyLTA5LTA3ICBBbGxhbiBT
YW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgogCiAgICAgICAgIFNpbXBs
aWZ5IGhpdFRlc3RSZXN1bHRBdFBvaW50IGFuZCBub2Rlc0Zyb21SZWN0IEFQSXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggNWQyNzM5N2NlN2Ux
M2ZmNzYzNjJmZDE3N2Q4ZjE4ZGQ1MTc3OWI0OC4uYmMwMjNjMmQ2NmJmM2NmZjM5MWViY2ZiMmNi
MWRmMzdmNjkzZGUyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5jcHAKQEAgLTIwMiw3ICsyMDIsNyBAQCBKU09iamVjdCogRXZhbEV4ZWN1dGFibGU6OmNv
bXBpbGVJbnRlcm5hbChFeGVjU3RhdGUqIGV4ZWMsIEpTU2NvcGUqIHNjb3BlLCBKSVRDbwogICAg
ICAgICBtX2V2YWxDb2RlQmxvY2sgPSBuZXdDb2RlQmxvY2sucmVsZWFzZSgpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGlmICghbGV4aWNhbEdsb2JhbE9iamVjdC0+ZXZhbEVuYWJsZWQoKSkKLSAg
ICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUV2YWxFcnJvcihleGVjLCBB
U0NJSUxpdGVyYWwoIkV2YWwgaXMgZGlzYWJsZWQiKSkpOworICAgICAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IoZXhlYywgY3JlYXRlRXZhbEVycm9yKGV4ZWMsIGxleGljYWxHbG9iYWxPYmplY3Qt
PmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpKSk7CiAgICAgICAgIFJlZlB0cjxFdmFsTm9kZT4g
ZXZhbE5vZGUgPSBwYXJzZTxFdmFsTm9kZT4oZ2xvYmFsRGF0YSwgbGV4aWNhbEdsb2JhbE9iamVj
dCwgbV9zb3VyY2UsIDAsIElkZW50aWZpZXIoKSwgaXNTdHJpY3RNb2RlKCkgPyBKU1BhcnNlU3Ry
aWN0IDogSlNQYXJzZU5vcm1hbCwgRXZhbE5vZGU6OmlzRnVuY3Rpb25Ob2RlID8gSlNQYXJzZUZ1
bmN0aW9uQ29kZSA6IEpTUGFyc2VQcm9ncmFtQ29kZSwgbGV4aWNhbEdsb2JhbE9iamVjdC0+ZGVi
dWdnZXIoKSwgZXhlYywgJmV4Y2VwdGlvbik7CiAgICAgICAgIGlmICghZXZhbE5vZGUpIHsKICAg
ICAgICAgICAgIEFTU0VSVChleGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCA0MDUwN2RhZTE2NmJl
NzE2MTE3ZThkZjEzYjlhY2MzYTYwMzk0NDViLi41NzA0NDRlM2M2ZWM3NWFjMTcwNTBiZWI5NTUw
Y2Y5ZWY4YWYzNGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9G
dW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtODIsNyArODIsNyBAQCBDYWxsVHlwZSBGdW5j
dGlvbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEp
CiBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBBcmdMaXN0JiBhcmdzLCBjb25zdCBJZGVudGlmaWVy
JiBmdW5jdGlvbk5hbWUsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBjb25zdCBUZXh0UG9zaXRp
b24mIHBvc2l0aW9uKQogewogICAgIGlmICghZ2xvYmFsT2JqZWN0LT5ldmFsRW5hYmxlZCgpKQot
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVFdmFsRXJyb3IoZXhlYywgQVND
SUlMaXRlcmFsKCJGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBkaXNhYmxlZCIpKSk7CisgICAgICAg
IHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUV2YWxFcnJvcihleGVjLCBnbG9iYWxPYmpl
Y3QtPmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpKSk7CiAgICAgcmV0dXJuIGNvbnN0cnVjdEZ1
bmN0aW9uU2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrKGV4ZWMsIGdsb2JhbE9iamVjdCwgYXJncywg
ZnVuY3Rpb25OYW1lLCBzb3VyY2VVUkwsIHBvc2l0aW9uKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggNDA2YTY1YjUxMWE0Njdi
OTIyOWQ2MzJkMTZjMzJmNzllMDlmZWJmZS4uMmY0MjY2NDhjOWJjNWFhOGY4ZTJkNTRkZjU3NDhm
MjM1MmYxNGJlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oCkBAIC0xNTUsNiArMTU1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFdl
YWtSYW5kb20gbV93ZWFrUmFuZG9tOwogCiAgICAgICAgIGJvb2wgbV9ldmFsRW5hYmxlZDsKKyAg
ICAgICAgU3RyaW5nIG1fZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlOwogICAgICAgICBib29sIG1f
ZXhwZXJpbWVudHNFbmFibGVkOwogCiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0
IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIHNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGU7CkBAIC0z
MDQsOCArMzA1LDEzIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIGJvb2wgaXNEeW5hbWlj
U2NvcGUoYm9vbCYgcmVxdWlyZXNEeW5hbWljQ2hlY2tzKSBjb25zdDsKIAotICAgICAgICB2b2lk
IHNldEV2YWxFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2V2YWxFbmFibGVkID0gZW5hYmxlZDsg
fQotICAgICAgICBib29sIGV2YWxFbmFibGVkKCkgeyByZXR1cm4gbV9ldmFsRW5hYmxlZDsgfQor
ICAgICAgICBib29sIGV2YWxFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9ldmFsRW5hYmxlZDsg
fQorICAgICAgICBjb25zdCBTdHJpbmcmIGV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlOyB9CisgICAgICAgIHZvaWQgc2V0
RXZhbEVuYWJsZWQoYm9vbCBlbmFibGVkLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSA9IFN0
cmluZygpKQorICAgICAgICB7CisgICAgICAgICAgICBtX2V2YWxFbmFibGVkID0gZW5hYmxlZDsK
KyAgICAgICAgICAgIG1fZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlOwor
ICAgICAgICB9CiAKICAgICAgICAgdm9pZCByZXNldFByb3RvdHlwZShKU0dsb2JhbERhdGEmLCBK
U1ZhbHVlIHByb3RvdHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5jcHAKaW5kZXggMWYyZTlkMzcyNzE4YzNiNjA0MzMyNTQwZDMyY2JhODEy
NTA3ZmY0OC4uNDhmNjhjOGEzMjg2ZjVkOWE4MmUwZjFhMDdlZmE4Y2RkNGUyNWU1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTIy
Miw3ICsyMjIsNyBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3JpcHRDb250cm9sbGVyOjppbml0U2Ny
aXB0KERPTVdyYXBwZXJXb3JsZCogd29ybGQpCiAgICAgd2luZG93U2hlbGwtPndpbmRvdygpLT51
cGRhdGVEb2N1bWVudCgpOwogCiAgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAg
IHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQobV9mcmFtZS0+ZG9jdW1lbnQo
KS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93RXZhbCgwLCBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OlN1cHByZXNzUmVwb3J0KSk7ICAgCisgICAgICAgIHdpbmRvd1NoZWxsLT53aW5kb3co
KS0+c2V0RXZhbEVuYWJsZWQobV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9s
aWN5KCktPmFsbG93RXZhbCgwLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlN1cHByZXNzUmVwb3J0
KSwgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmV2YWxEaXNh
YmxlZEVycm9yTWVzc2FnZSgpKTsgICAKIAogICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+
cGFnZSgpKSB7CiAgICAgICAgIGF0dGFjaERlYnVnZ2VyKHdpbmRvd1NoZWxsLCBwYWdlLT5kZWJ1
Z2dlcigpKTsKQEAgLTI1MCwxMiArMjUwLDEyIEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZW5h
YmxlRXZhbCgpCiAgICAgd2luZG93U2hlbGwtPndpbmRvdygpLT5zZXRFdmFsRW5hYmxlZCh0cnVl
KTsKIH0KIAotdm9pZCBTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCgpCit2b2lkIFNjcmlw
dENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewog
ICAgIEpTRE9NV2luZG93U2hlbGwqIHdpbmRvd1NoZWxsID0gZXhpc3RpbmdXaW5kb3dTaGVsbCht
YWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CiAgICAgaWYgKCF3aW5kb3dTaGVsbCkKICAgICAgICAg
cmV0dXJuOwotICAgIHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQoZmFsc2Up
OworICAgIHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQoZmFsc2UsIGVycm9y
TWVzc2FnZSk7CiB9CiAKIGJvb2wgU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaApp
bmRleCBmNzZmZGU4ZmM3MmY2ODA1ZWY0OGMwM2FmYzFkMDZhM2ExNTRjYTg3Li4xODdmYWI1MmJl
ZjBhZDIxY2Y1NGRlNTA2YTRlZjY1MWNmZmRiZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgog
ICAgIFdURjo6VGV4dFBvc2l0aW9uIGV2ZW50SGFuZGxlclBvc2l0aW9uKCkgY29uc3Q7CiAKICAg
ICB2b2lkIGVuYWJsZUV2YWwoKTsKLSAgICB2b2lkIGRpc2FibGVFdmFsKCk7CisgICAgdm9pZCBk
aXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKICAgICBzdGF0aWMgYm9v
bCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBhNWZjMzViMjk5NDNh
MTc0NWIxN2NjNmY4ZmE1ZGU4MTgyNDQ5OTE1Li42MjEyOTY5NzY2NzM1NzMzNmQ1NjlhY2YxNzE0
MGM3NWY3Zjc3NDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTg4LDEyICsxODgsMTIgQEAgYm9vbCBXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyOjppc0V4ZWN1dGlvbkZvcmJpZGRlbigpIGNvbnN0CiAgICAgcmV0
dXJuIG1fZXhlY3V0aW9uRm9yYmlkZGVuOwogfQogCi12b2lkIFdvcmtlclNjcmlwdENvbnRyb2xs
ZXI6OmRpc2FibGVFdmFsKCkKK3ZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2
YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7CiAgICAgaW5pdFNjcmlwdElmTmVlZGVk
KCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZ2xvYmFsRGF0YSgpKTsKIAotICAgIG1fd29ya2Vy
Q29udGV4dFdyYXBwZXItPnNldEV2YWxFbmFibGVkKGZhbHNlKTsKKyAgICBtX3dvcmtlckNvbnRl
eHRXcmFwcGVyLT5zZXRFdmFsRW5hYmxlZChmYWxzZSwgZXJyb3JNZXNzYWdlKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V29ya2VyU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDNiMmFjZDRiNjRkNzAzOTlmYzM3ODhhZmQ4
YjdjODYxZGZmMTYyZWMuLmEzMTNmYjBmZTFjNTA0NTM1MjUwY2I0M2VjNzIxMzZjNjZlMDAzNDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250
cm9sbGVyLmgKQEAgLTc1LDcgKzc1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
b2lkIGZvcmJpZEV4ZWN1dGlvbigpOwogICAgICAgICBib29sIGlzRXhlY3V0aW9uRm9yYmlkZGVu
KCkgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBkaXNhYmxlRXZhbCgpOworICAgICAgICB2b2lkIGRp
c2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAogICAgICAgICBKU0M6OkpT
R2xvYmFsRGF0YSogZ2xvYmFsRGF0YSgpIHsgcmV0dXJuIG1fZ2xvYmFsRGF0YS5nZXQoKTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IDI2YjEyMzcyODZkODE5ZDA5OTBhMjRkYjc5ZTM1NTY4YWQyMzlhYzMuLmY0Zjc3NjhlYTUz
MTFmNGViZTFhYzBkZTkzOWE3Yzc5NWE3NjVjNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC00NzUsNyArNDc1LDcgQEAgdm9pZCBT
Y3JpcHRDb250cm9sbGVyOjplbmFibGVFdmFsKCkKICAgICB2OENvbnRleHQtPkFsbG93Q29kZUdl
bmVyYXRpb25Gcm9tU3RyaW5ncyh0cnVlKTsKIH0KIAotdm9pZCBTY3JpcHRDb250cm9sbGVyOjpk
aXNhYmxlRXZhbCgpCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKGNvbnN0IFN0
cmluZyYgLyogZXJyb3JNZXNzYWdlICovKQogewogICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVT
Y29wZTsKICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRleHQgPSB3aW5kb3dTaGVs
bCgpLT5jb250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250
cm9sbGVyLmgKaW5kZXggMzRjN2M2NGYzMWEwZWVjMTkwYjk1ZjM0NGY3OWZjYTIyNDJjODVhZi4u
NTNhMmE3NmNlYjMwM2NhZTU0MTBkNDYwYTY2ZTE0NTRkNWY5OGZkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuaApAQCAtMTQzLDcgKzE0Myw3IEBA
IHB1YmxpYzoKICAgICBib29sIGhhdmVJbnRlcnByZXRlcigpIGNvbnN0OwogCiAgICAgdm9pZCBl
bmFibGVFdmFsKCk7Ci0gICAgdm9pZCBkaXNhYmxlRXZhbCgpOworICAgIHZvaWQgZGlzYWJsZUV2
YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCiAgICAgc3RhdGljIGJvb2wgY2FuQWNj
ZXNzRnJvbUN1cnJlbnRPcmlnaW4oRnJhbWUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBiYmQ5MTU4YmVm
ZjE3MGUxODU5OWI0YzMxMjlhYzY0M2E1MmI1NTUxLi43MDIwOGUxZmVlNDBmNjA3ZDMzZGIzZTNk
YjdjZWVhMDgyZjU4ZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTMyLDcgKzEzMiw3IEBAIGJvb2wgV29y
a2VyU2NyaXB0Q29udHJvbGxlcjo6aXNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdAogICAgIHJl
dHVybiBtX2V4ZWN1dGlvbkZvcmJpZGRlbjsKIH0KIAotdm9pZCBXb3JrZXJTY3JpcHRDb250cm9s
bGVyOjpkaXNhYmxlRXZhbCgpCit2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVF
dmFsKGNvbnN0IFN0cmluZyYgLyogZXJyb3JNZXNzYWdlICovKQogewogICAgIG1fcHJveHktPnNl
dEV2YWxBbGxvd2VkKGZhbHNlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAppbmRleCA2MWVkN2FiYzExYzlkMzNiYTZiNjdi
OTE2YzdhMjE2Nzk5ZGE3MjMyLi42OGNlODlhYWUwN2ZmMzg2NTkwYmFmOGI5OTc4NDY2Mjg2MDg3
YzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0
Q29udHJvbGxlci5oCkBAIC03Myw3ICs3Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdm9pZCBmb3JiaWRFeGVjdXRpb24oKTsKICAgICAgICAgYm9vbCBpc0V4ZWN1dGlvbkZvcmJp
ZGRlbigpIGNvbnN0OwogCi0gICAgICAgIHZvaWQgZGlzYWJsZUV2YWwoKTsKKyAgICAgICAgdm9p
ZCBkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmKTsKIAogICAgICAgICAvLyBSZXR1cm5zIFdvcmtl
clNjcmlwdENvbnRyb2xsZXIgZm9yIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIGNvbnRleHQuIDAg
d2lsbCBiZSByZXR1cm5lZCBpZiB0aGUgY3VycmVudCBleGVjdXRpbmcgY29udGV4dCBpcyBub3Qg
dGhlIHdvcmtlciBjb250ZXh0LgogICAgICAgICBzdGF0aWMgV29ya2VyU2NyaXB0Q29udHJvbGxl
ciogY29udHJvbGxlckZvckNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGRm
YzczMzc5MGUxNDc0Y2U0YzdmY2NlNTMyZGQ0ZTJhOTBjMjhjYjQuLjA1MzA1N2ZiZGUzZTQ1Yzcy
NWIyYmVhY2FjYTllMzhkNTRjOWFjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjgx
MCwxMiArMjgxMCwxMiBAQCBTdHJpbmcgRG9jdW1lbnQ6OnVzZXJBZ2VudChjb25zdCBLVVJMJiB1
cmwpIGNvbnN0CiAgICAgcmV0dXJuIGZyYW1lKCkgPyBmcmFtZSgpLT5sb2FkZXIoKS0+dXNlckFn
ZW50KHVybCkgOiBTdHJpbmcoKTsKIH0KIAotdm9pZCBEb2N1bWVudDo6ZGlzYWJsZUV2YWwoKQor
dm9pZCBEb2N1bWVudDo6ZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7
CiAgICAgaWYgKCFmcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBmcmFtZSgpLT5zY3Jp
cHQoKS0+ZGlzYWJsZUV2YWwoKTsKKyAgICBmcmFtZSgpLT5zY3JpcHQoKS0+ZGlzYWJsZUV2YWwo
ZXJyb3JNZXNzYWdlKTsKIH0KIAogYm9vbCBEb2N1bWVudDo6Y2FuTmF2aWdhdGUoRnJhbWUqIHRh
cmdldEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkYWZlMDRiZTMxNGE0YTdiNTAxMDU1
Yzc1NWJhNTllZTA0NmQ2MmQzLi5lNDYwMTgzY2NkODIzZjExZTY1OWZhZThkZWE5OWVkNDM2N2E1
MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNjQyLDcgKzY0Miw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBLVVJMJikgY29uc3Q7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwo
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCiAgICAgYm9vbCBjYW5OYXZpZ2F0ZShGcmFt
ZSogdGFyZ2V0RnJhbWUpOwogICAgIEZyYW1lKiBmaW5kVW5zYWZlUGFyZW50U2Nyb2xsUHJvcGFn
YXRpb25Cb3VuZGFyeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgKaW5kZXggZTc0NjgwMzhjNmEzODViODgxNmY5ZmMxYjQ3MzUwNmFjMjZjYTExMC4uOGFk
M2U5ZjI0MGE4M2IxNmY0MjliYWUwMThkODcyMDg0YjQzNzQyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBLVVJMJikgY29uc3QgPSAwOwog
Ci0gICAgdmlydHVhbCB2b2lkIGRpc2FibGVFdmFsKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
aXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgPSAwOwogCiAgICAgYm9vbCBz
YW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQmIGxpbmVOdW1iZXIs
IFN0cmluZyYgc291cmNlVVJMKTsKICAgICB2b2lkIHJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IDFiZjkwN2Y1NTY4MzJlNjBmYjQxOGY2OWU1
NjVmZjAyMmNlNTNkYmQuLmY3ZTEzOTEzMWViMmZmZGY5NmJlM2QwYzI4NmY2MTU3NmNmODI5NzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAg
LTcyNSw2ICs3MjUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBhbGxvd0Zvcm1BY3Rpb24oY29uc3Qg
S1VSTCYsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0aW5nU3RhdHVzKSBjb25zdDsKIAog
ICAgIHZvaWQgZ2F0aGVyUmVwb3J0VVJJcyhET01TdHJpbmdMaXN0JikgY29uc3Q7CisgICAgY29u
c3QgU3RyaW5nJiBldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UoKSB7IHJldHVybiBtX2V2YWxEaXNh
YmxlZEVycm9yTWVzc2FnZTsgfQogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENTUERpcmVjdGl2
ZUxpc3QoQ29udGVudFNlY3VyaXR5UG9saWN5Kik7CkBAIC03NTAsNiArNzUxLDggQEAgcHJpdmF0
ZToKICAgICBib29sIGNoZWNrU291cmNlKFNvdXJjZUxpc3REaXJlY3RpdmUqLCBjb25zdCBLVVJM
JikgY29uc3Q7CiAgICAgYm9vbCBjaGVja01lZGlhVHlwZShNZWRpYUxpc3REaXJlY3RpdmUqLCBj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdHlwZUF0dHJpYnV0ZSkgY29uc3Q7CiAK
KyAgICB2b2lkIHNldEV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIGVycm9y
TWVzc2FnZSkgeyBtX2V2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZTsgfQor
CiAgICAgYm9vbCBjaGVja0V2YWxBbmRSZXBvcnRWaW9sYXRpb24oU291cmNlTGlzdERpcmVjdGl2
ZSosIGNvbnN0IFN0cmluZyYgY29uc29sZU1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgY29udGV4dFVS
TCA9IFN0cmluZygpLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lID0gV1RG
OjpPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4gPSAwKSBjb25zdDsKICAgICBib29sIGNoZWNrSW5saW5lQW5kUmVwb3J0VmlvbGF0aW9uKFNv
dXJjZUxpc3REaXJlY3RpdmUqLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBT
dHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUp
IGNvbnN0OwogICAgIGJvb2wgY2hlY2tOb25jZUFuZFJlcG9ydFZpb2xhdGlvbihOb25jZURpcmVj
dGl2ZSosIGNvbnN0IFN0cmluZyYgbm9uY2UsIGNvbnN0IFN0cmluZyYgY29uc29sZU1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250
ZXh0TGluZSkgY29uc3Q7CkBAIC03NTksNiArNzYyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIGRl
bnlJZkVuZm9yY2luZ1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0T25seTsgfQogCiAg
ICAgQ29udGVudFNlY3VyaXR5UG9saWN5KiBtX3BvbGljeTsKKwogICAgIFN0cmluZyBtX2hlYWRl
cjsKIAogICAgIGJvb2wgbV9yZXBvcnRPbmx5OwpAQCAtNzc4LDYgKzc4Miw4IEBAIHByaXZhdGU6
CiAgICAgT3duUHRyPFNvdXJjZUxpc3REaXJlY3RpdmU+IG1fc3R5bGVTcmM7CiAKICAgICBWZWN0
b3I8S1VSTD4gbV9yZXBvcnRVUklzOworCisgICAgU3RyaW5nIG1fZXZhbERpc2FibGVkRXJyb3JN
ZXNzYWdlOwogfTsKIAogQ1NQRGlyZWN0aXZlTGlzdDo6Q1NQRGlyZWN0aXZlTGlzdChDb250ZW50
U2VjdXJpdHlQb2xpY3kqIHBvbGljeSkKQEAgLTgwMiw2ICs4MDgsMTEgQEAgUGFzc093blB0cjxD
U1BEaXJlY3RpdmVMaXN0PiBDU1BEaXJlY3RpdmVMaXN0OjpjcmVhdGUoQ29udGVudFNlY3VyaXR5
UG9saWN5KiBwb2wKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgaWYgKCFkaXJlY3RpdmVz
LT5jaGVja0V2YWwoZGlyZWN0aXZlcy0+b3BlcmF0aXZlRGlyZWN0aXZlKGRpcmVjdGl2ZXMtPm1f
c2NyaXB0U3JjLmdldCgpKSkpIHsKKyAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5n
KCJSZWZ1c2VkIHRvIGV2YWx1YXRlIGEgc3RyaW5nIGFzIEphdmFTY3JpcHQgYmVjYXVzZSAndW5z
YWZlLWV2YWwnIGlzIG5vdCBhbiBhbGxvd2VkIHNvdXJjZSBvZiBzY3JpcHQgaW4gdGhlIGZvbGxv
d2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6IFwiIiwgZGlyZWN0aXZlcy0+
b3BlcmF0aXZlRGlyZWN0aXZlKGRpcmVjdGl2ZXMtPm1fc2NyaXB0U3JjLmdldCgpKS0+dGV4dCgp
LCAiXCIuXG4iKTsKKyAgICAgICAgZGlyZWN0aXZlcy0+c2V0RXZhbERpc2FibGVkRXJyb3JNZXNz
YWdlKG1lc3NhZ2UpOworICAgIH0KKwogICAgIHJldHVybiBkaXJlY3RpdmVzLnJlbGVhc2UoKTsK
IH0KIApAQCAtMTI1OCw3ICsxMjY5LDcgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmRp
ZFJlY2VpdmVIZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIsIEhlYWRlclR5cGUgdHkKICAgICB9
CiAKICAgICBpZiAoIWFsbG93RXZhbCgwLCBTdXBwcmVzc1JlcG9ydCkpCi0gICAgICAgIG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+ZGlzYWJsZUV2YWwoKTsKKyAgICAgICAgbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5kaXNhYmxlRXZhbChldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UoKSk7CiB9
CiAKIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpzZXRPdmVycmlkZUFsbG93SW5saW5lU3R5
bGUoYm9vbCB2YWx1ZSkKQEAgLTEzNDYsNiArMTM1NywxNSBAQCBib29sIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6YWxsb3dFdmFsKFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ss
IENvbgogICAgIHJldHVybiBpc0FsbG93ZWRCeUFsbFdpdGhDYWxsU3RhY2s8JkNTUERpcmVjdGl2
ZUxpc3Q6OmFsbG93RXZhbD4obV9wb2xpY2llcywgY2FsbFN0YWNrLCByZXBvcnRpbmdTdGF0dXMp
OwogfQogCitTdHJpbmcgQ29udGVudFNlY3VyaXR5UG9saWN5OjpldmFsRGlzYWJsZWRFcnJvck1l
c3NhZ2UoKSBjb25zdAoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wb2xpY2llcy5z
aXplKCk7ICsraSkgeworICAgICAgICBpZiAoIW1fcG9saWNpZXNbaV0tPmFsbG93RXZhbCgwLCBT
dXBwcmVzc1JlcG9ydCkpCisgICAgICAgICAgICByZXR1cm4gbV9wb2xpY2llc1tpXS0+ZXZhbERp
c2FibGVkRXJyb3JNZXNzYWdlKCk7CisgICAgfQorICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwog
Ym9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93U2NyaXB0Tm9uY2UoY29uc3QgU3RyaW5n
JiBub25jZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1i
ZXImIGNvbnRleHRMaW5lLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlz
QWxsb3dlZEJ5QWxsV2l0aE5vbmNlPCZDU1BEaXJlY3RpdmVMaXN0OjphbGxvd1NjcmlwdE5vbmNl
PihtX3BvbGljaWVzLCBub25jZSwgY29udGV4dFVSTCwgY29udGV4dExpbmUsIHVybCk7CkBAIC0x
MzU0LDcgKzEzNzQsNyBAQCBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dTY3JpcHRO
b25jZShjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmCiBib29sIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6YWxsb3dQbHVnaW5UeXBlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiB0eXBlQXR0cmlidXRlLCBjb25zdCBLVVJMJiB1cmwsIENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6UmVwb3J0aW5nU3RhdHVzIHJlcG9ydGluZ1N0YXR1cykgY29uc3QKIHsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG1fcG9saWNpZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKCFt
X3BvbGljaWVzW2ldLmdldCgpLT5hbGxvd1BsdWdpblR5cGUodHlwZSwgdHlwZUF0dHJpYnV0ZSwg
dXJsLCByZXBvcnRpbmdTdGF0dXMpKQorICAgICAgICBpZiAoIW1fcG9saWNpZXNbaV0tPmFsbG93
UGx1Z2luVHlwZSh0eXBlLCB0eXBlQXR0cmlidXRlLCB1cmwsIHJlcG9ydGluZ1N0YXR1cykpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpAQCAtMTQx
Myw3ICsxNDMzLDcgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmlzQWN0aXZlKCkgY29u
c3QKIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpnYXRoZXJSZXBvcnRVUklzKERPTVN0cmlu
Z0xpc3QmIGxpc3QpIGNvbnN0CiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3BvbGlj
aWVzLnNpemUoKTsgKytpKQotICAgICAgICBtX3BvbGljaWVzW2ldLmdldCgpLT5nYXRoZXJSZXBv
cnRVUklzKGxpc3QpOworICAgICAgICBtX3BvbGljaWVzW2ldLT5nYXRoZXJSZXBvcnRVUklzKGxp
c3QpOwogfQogCiBTZWN1cml0eU9yaWdpbiogQ29udGVudFNlY3VyaXR5UG9saWN5OjpzZWN1cml0
eU9yaWdpbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRT
ZWN1cml0eVBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuaAppbmRleCAzYzM5MDUxNmFhY2U1YmRlMzM3OGE4OGU4YmY2ZDMwMGIzOTk3ZDIzLi41OTE0
NmJlMTJlYThhZmVhMTc5NzBiYTFkMTMxODIyMWQxMjNkOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKQEAgLTExMCw2ICsxMTAsNyBAQCBwdWJsaWM6
CiAgICAgS1VSTCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICBTZWN1cml0
eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKICAgICB2b2lkIGVuZm9yY2VTYW5kYm94
RmxhZ3MoU2FuZGJveEZsYWdzKSBjb25zdDsKKyAgICBTdHJpbmcgZXZhbERpc2FibGVkRXJyb3JN
ZXNzYWdlKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ29udGVudFNlY3VyaXR5
UG9saWN5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckNvbnRleHQuY3BwCmluZGV4IGQ3ZWFmNWRiNDZlZThjYTc4MGViNzYxYzhmNDJiNDc2Yzkw
NTU3NDguLmMwNDBjMzk2Njk0YjYxNjQ1NTczMDhjZGU3MTIyZDYwZjEzMGQ0ZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcApAQCAtMTQ4LDkgKzE0OCw5IEBAIFN0
cmluZyBXb3JrZXJDb250ZXh0Ojp1c2VyQWdlbnQoY29uc3QgS1VSTCYpIGNvbnN0CiAgICAgcmV0
dXJuIG1fdXNlckFnZW50OwogfQogCi12b2lkIFdvcmtlckNvbnRleHQ6OmRpc2FibGVFdmFsKCkK
K3ZvaWQgV29ya2VyQ29udGV4dDo6ZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UpCiB7Ci0gICAgbV9zY3JpcHQtPmRpc2FibGVFdmFsKCk7CisgICAgbV9zY3JpcHQtPmRpc2Fi
bGVFdmFsKGVycm9yTWVzc2FnZSk7CiB9CiAKIFdvcmtlckxvY2F0aW9uKiBXb3JrZXJDb250ZXh0
Ojpsb2NhdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCmlu
ZGV4IGE2ZDYwYzgxNDI5YjZlNDJmZDJiOTkxMjQ3ZTc1YTFlMzAwNTU5OTIuLjk4NDFhNWUxZDI1
NmI1YmFmYjM5NzBkY2ZmMzA0YTEzZGVkY2IyNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyQ29udGV4dC5oCkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgY29uc3QgR3JvdXBTZXR0aW5ncyogZ3JvdXBTZXR0aW5ncygpIHsgcmV0dXJuIG1fZ3JvdXBT
ZXR0aW5ncy5nZXQoKTsgfQogICAgICAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoY29uc3Qg
S1VSTCYpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbCgpOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Up
OwogCiAgICAgICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlwdCgpIHsgcmV0dXJuIG1f
c2NyaXB0LmdldCgpOyB9CiAgICAgICAgIHZvaWQgY2xlYXJTY3JpcHQoKSB7IG1fc2NyaXB0LmNs
ZWFyKCk7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAzZTYzYzcyNzgyODZkZGZmOGYyMDNiMzZkNTIyNmIwZmM3YzRkMzg1
Li5kZTdiZWUwZWUzM2Q4N2YxOTgzN2Q4YWI5ZTM1MThkYjc1Y2UxNzAyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTItMDktMDcgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBKU0Mgc2hvdWxkIHRocm93IGEgbW9yZSBkZXNjcmlwdGl2ZSBleGNlcHRpb24gd2hl
biBibG9ja2luZyAnZXZhbCcgdmlhIENTUC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk0MzMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9ldmFsLWJsb2NrZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtYmxvY2tlZC1pbi1hYm91dC1ibGFuay1p
ZnJhbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2Z1bmN0aW9uLWNvbnN0cnVjdG9yLWJsb2NrZWQtZXhwZWN0ZWQudHh0
OgorCiAyMDEyLTA5LTA3ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0gZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9j
a2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2V2YWwtYmxvY2tlZC1leHBlY3RlZC50eHQKaW5kZXggNjk4NTU4YTg5
Yjg3NjIyOWVkYTkyYTNjNWE3OWFlMTZmZTQzNjg5ZS4uMzY4MTc5ZDg5Y2QxOWI2YzI4OGYyN2M1
NGM0YzYxNjk1OTUxYjI3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9ja2VkLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9l
dmFsLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBAQAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDEyOiBFdmFsRXJyb3I6IEV2YWwgaXMgZGlzYWJsZWQKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAxNTogRXZhbEVycm9yOiBFdmFsIGlzIGRpc2FibGVkCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTI6IEV2YWxFcnJvcjogUmVmdXNlZCB0byBldmFsdWF0ZSBhIHN0cmluZyBhcyBKYXZhU2Ny
aXB0IGJlY2F1c2UgJ3Vuc2FmZS1ldmFsJyBpcyBub3QgYW4gYWxsb3dlZCBzb3VyY2Ugb2Ygc2Ny
aXB0IGluIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAi
c2NyaXB0LXNyYyAndW5zYWZlLWlubGluZSciLgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU6
IEV2YWxFcnJvcjogUmVmdXNlZCB0byBldmFsdWF0ZSBhIHN0cmluZyBhcyBKYXZhU2NyaXB0IGJl
Y2F1c2UgJ3Vuc2FmZS1ldmFsJyBpcyBub3QgYW4gYWxsb3dlZCBzb3VyY2Ugb2Ygc2NyaXB0IGlu
IHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0
LXNyYyAndW5zYWZlLWlubGluZSciLgorCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtYmxvY2tlZC1pbi1hYm91
dC1ibGFuay1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9ja2VkLWluLWFib3V0LWJsYW5rLWlm
cmFtZS1leHBlY3RlZC50eHQKaW5kZXggYjgwNzNiNzg2ZDNkN2Y5YTJhYzc3NmM4Nzg1NzMyYzJm
ZGZmODcxZS4uOWNjNTY3ZDdiNmM0ZWYxYTc4MGExNjZlOGYxNTdlMzg5ZDA5OTZkNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvZXZhbC1ibG9ja2VkLWluLWFib3V0LWJsYW5rLWlmcmFtZS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZh
bC1ibG9ja2VkLWluLWFib3V0LWJsYW5rLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0
IEBACiBBTEVSVDogL1BBU1MvCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogRXZhbEVycm9yOiBF
dmFsIGlzIGRpc2FibGVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogRXZhbEVycm9yOiBSZWZ1
c2VkIHRvIGV2YWx1YXRlIGEgc3RyaW5nIGFzIEphdmFTY3JpcHQgYmVjYXVzZSAndW5zYWZlLWV2
YWwnIGlzIG5vdCBhbiBhbGxvd2VkIHNvdXJjZSBvZiBzY3JpcHQgaW4gdGhlIGZvbGxvd2luZyBD
b250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICJzY3JpcHQtc3JjICd1bnNhZmUtaW5s
aW5lJyIuCisKICBFdmFsIHNob3VsZCBiZSBibG9ja2VkIGluIHRoZSBpZnJhbWUsIGJ1dCBpbmxp
bmUgc2NyaXB0IHNob3VsZCBiZSBhbGxvd2VkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZnVuY3Rpb24tY29uc3RydWN0
b3ItYmxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9mdW5jdGlvbi1jb25zdHJ1Y3Rvci1ibG9ja2VkLWV4cGVj
dGVkLnR4dAppbmRleCA4Y2M4M2NhMWZiMWUyYTA0OWNmMTQ0NzdlNDVmNjQxNWY0Zjc2MDUzLi41
NTFkOTdhMDAzNTRiNzA4YTk4NGJhYzBjOTVkNDA2NjU2YWI1YmUyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9mdW5jdGlv
bi1jb25zdHJ1Y3Rvci1ibG9ja2VkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9mdW5jdGlvbi1jb25zdHJ1Y3Rv
ci1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMSwyICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAxMjogRXZhbEVycm9yOiBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBkaXNhYmxlZAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDEyOiBFdmFsRXJyb3I6IFJlZnVzZWQgdG8gZXZhbHVhdGUgYSBz
dHJpbmcgYXMgSmF2YVNjcmlwdCBiZWNhdXNlICd1bnNhZmUtZXZhbCcgaXMgbm90IGFuIGFsbG93
ZWQgc291cmNlIG9mIHNjcmlwdCBpbiB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9s
aWN5IGRpcmVjdGl2ZTogInNjcmlwdC1zcmMgJ3Vuc2FmZS1pbmxpbmUnIi4KKwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163662</attachid>
            <date>2012-09-12 11:24:51 -0700</date>
            <delta_ts>2012-09-14 12:57:42 -0700</delta_ts>
            <desc>Rebase onto ToT.</desc>
            <filename>bug-94331-20120912202423.patch</filename>
            <type>text/plain</type>
            <size>27592</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ZjhmNDhmOTEwNjgzNDJiZjAwYmZmMmI2NzlmMTcwYjgyMzZlZTI2Li43NmU3Mjk5NmI2OWYxODIw
NTI0ODQzNjIxOGNlNDlmZTUzOWVhMTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxMi0wOS0wNyAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEpTQyBzaG91bGQgdGhyb3cgYSBtb3JlIGRlc2NyaXB0aXZlIGV4Y2VwdGlvbiB3
aGVuIGJsb2NraW5nICdldmFsJyB2aWEgQ1NQLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVbmxlc3MgZXhwbGljaXRseSB3aGl0ZWxpc3RlZCwgdGhlICdz
Y3JpcHQtc3JjJyBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBkaXJlY3RpdmUgYmxv
Y2tzICdldmFsJyBhbmQgJ2V2YWwnLWxpa2UgY29uc3RydWN0cyBzdWNoIGFzCisgICAgICAgICdu
ZXcgRnVuY3Rpb24oKScuIFdoZW4gJ2V2YWwnIGlzIGVuY291bnRlcmVkIGluIGNvZGUsIGFuICdF
dmFsRXJyb3InIGlzCisgICAgICAgIHRocm93biwgYnV0IHRoZSBhc3NvY2lhdGVkIG1lc3NhZ2Ug
aXMgcG9vcjogIkV2YWwgaXMgZGlzYWJsZWQiIGRvZXNuJ3QKKyAgICAgICAgZ2l2ZSBkZXZlbG9w
ZXJzIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCB3aHkgdGhlaXIgY29kZSBpc24ndCBiZWhhdmlu
ZworICAgICAgICBhcyBleHBlY3RlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYW4gJ2Vy
cm9yTWVzc2FnZScgcGFyYW1ldGVyIHRvIHRoZSBKYXZhU2NyaXB0Q29yZSBtZXRob2QKKyAgICAg
ICAgdXNlZCB0byBkaXNhYmxlICdldmFsJzsgQ29udGVudFNlY3VyaXR5UG9saWN5IGhhcyB0aGUg
b3Bwb3J0dW5pdHkgdG8KKyAgICAgICAgcGFzcyBpbiBhIG1vcmUgZGV0YWlsZWQgYW5kIGRlc2Ny
aXB0aXZlIGVycm9yIHRoYXQgY29udGFpbnMgbW9yZSBjb250ZXh0CisgICAgICAgIGZvciB0aGUg
ZGV2ZWxvcGVyLgorCisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAg
KEpTQzo6RXZhbEV4ZWN1dGFibGU6OmNvbXBpbGVJbnRlcm5hbCk6CisgICAgICAgICAgICBEcm9w
IHRoZSBoYXJkLWNvZGVkICJFdmFsIGlzIGRpc2FibGVkIiBlcnJvciBtZXNzYWdlIGluIGZhdm9y
IG9mCisgICAgICAgICAgICByZWFkaW5nIHRoZSBlcnJvciBtZXNzYWdlIG9mZiB0aGUgZ2xvYmFs
IG9iamVjdC4KKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6CisgICAgICAgICAg
ICBEcm9wIHRoZSBoYXJkLWNvZGVkICJGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBkaXNhYmxlZCIg
ZXJyb3IgbWVzc2FnZQorICAgICAgICAgICAgaW4gZmF2b3Igb2YgcmVhZGluZyB0aGUgZXJyb3Ig
bWVzc2FnZSBvZmYgdGhlIGdsb2JhbCBvYmplY3QuCisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oOgorICAgICAgICAoSlNHbG9iYWxPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZXZhbEVuYWJsZWQpOgorICAgICAgICAgICAgTWFraW5nIHRoaXMgYWNjZXNz
b3IgbWV0aG9kIGNvbnN0LgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6ZXZhbERpc2Fi
bGVkRXJyb3JNZXNzYWdlKToKKyAgICAgICAgICAgIEFjY2Vzc29yIGZvciB0aGUgZXJyb3IgbWVz
c2FnZSBzZXQgdmlhICdzZXRFdmFsRGlzYWJsZWQnLgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6c2V0RXZhbEVuYWJsZWQpOgorICAgICAgICAgICAgQWRkaW5nIGFuICdlcnJvck1lc3Nh
Z2UnIHBhcmFtZXRlciB3aGljaCBpcyBzdG9yZWQgb24gdGhlIGdsb2JhbAorICAgICAgICAgICAg
b2JqZWN0LCBhbmQgdXNlZCB3aGVuIGV4Y2VwdGlvbnMgYXJlIHRocm93bi4KKwogMjAxMi0wOS0x
MSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFNlY29uZCBz
dGVwIHRvIGZpeGluZyB0aGUgV2luZG93cyBidWlsZDogQWRkIG5ldyBzeW1ib2xzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDc0ZDdmOWI0NmJmZTAxZjQ1MTdiM2U2NzY2MDhhZGNiNzUyNDE1NzAuLjYxNzhmMzI5
OTIyOTE3MzViOTU1NGI0ZWI0NDBhMmRjNjc5NzJiYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
OSBAQAorMjAxMi0wOS0wNyAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIEpTQyBzaG91bGQgdGhyb3cgYSBtb3JlIGRlc2NyaXB0aXZlIGV4Y2VwdGlvbiB3aGVuIGJs
b2NraW5nICdldmFsJyB2aWEgQ1NQLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTQzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVbmxlc3MgZXhwbGljaXRseSB3aGl0ZWxpc3RlZCwgdGhlICdzY3JpcHQt
c3JjJyBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBkaXJlY3RpdmUgYmxvY2tzICdl
dmFsJyBhbmQgJ2V2YWwnLWxpa2UgY29uc3RydWN0cyBzdWNoIGFzCisgICAgICAgICduZXcgRnVu
Y3Rpb24oKScuIFdoZW4gJ2V2YWwnIGlzIGVuY291bnRlcmVkIGluIGNvZGUsIGFuICdFdmFsRXJy
b3InIGlzCisgICAgICAgIHRocm93biwgYnV0IHRoZSBhc3NvY2lhdGVkIG1lc3NhZ2UgaXMgcG9v
cjogIkV2YWwgaXMgZGlzYWJsZWQiIGRvZXNuJ3QKKyAgICAgICAgZ2l2ZSBkZXZlbG9wZXJzIGVu
b3VnaCBpbmZvcm1hdGlvbiBhYm91dCB3aHkgdGhlaXIgY29kZSBpc24ndCBiZWhhdmluZworICAg
ICAgICBhcyBleHBlY3RlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYW4gJ2Vycm9yTWVz
c2FnZScgcGFyYW1ldGVyIHRvIHRoZSBKYXZhU2NyaXB0Q29yZSBtZXRob2QKKyAgICAgICAgdXNl
ZCB0byBkaXNhYmxlICdldmFsJzsgQ29udGVudFNlY3VyaXR5UG9saWN5IGhhcyB0aGUgb3Bwb3J0
dW5pdHkgdG8KKyAgICAgICAgcGFzcyBpbiBhIG1vcmUgZGV0YWlsZWQgYW5kIGRlc2NyaXB0aXZl
IGVycm9yIHRoYXQgY29udGFpbnMgbW9yZSBjb250ZXh0CisgICAgICAgIGZvciB0aGUgZGV2ZWxv
cGVyLgorCisgICAgICAgIFRoZSBuZXcgZXJyb3IgbWVzc2FnZSBpcyB0ZXN0ZWQgYnkgYWRqdXN0
aW5nIGV4aXN0aW5nIHRlc3RzOyBub3RoaW5nIG5ldworICAgICAgICBpcyByZXF1aXJlZC4KKwor
ICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCk6CisgICAgICAgICAgICBSZWFkIHRo
ZSBlcnJvciBtZXNzYWdlIG9mZiB0aGUgZG9jdW1lbnQncyBDb250ZW50U2VjdXJpdHlQb2xpY3ku
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoU2NyaXB0Q29u
dHJvbGxlcik6CisgICAgICAgICAgICBQaXBlIHRoZSBlcnJvciBtZXNzYWdlIHRocm91Z2ggdG8g
SlNHbG9iYWxPYmplY3Qgd2hlbiBkaXNhYmxpbmcgZXZhbAorICAgICAgICAqIGJpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2Ny
aXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtl
clNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdvcmtlclNjcmlwdENvbnRyb2xsZXIpOgor
ICAgICAgICAgICAgUGlwZSB0aGUgZXJyb3IgbWVzc2FnZSB0aHJvdWdoIHRvIEpTR2xvYmFsT2Jq
ZWN0IHdoZW4gZGlzYWJsaW5nIGV2YWwKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVF
dmFsKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAg
IChTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6
OmRpc2FibGVFdmFsKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9s
bGVyLmg6CisgICAgICAgIChXb3JrZXJTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgICAgIFBs
YWNlaG9sZGVyIGZvciBWOCBwaXBpbmcgdG8gYmUgYnVpbHQgaW4gd2Viay5pdC85NDMzMi4KKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRp
c2FibGVFdmFsKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3VtZW50
KToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAgICAoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgICAgICBQaXBlIHRoZSBlcnJvciBtZXNzYWdl
IHRocm91Z2ggdG8gdGhlIFNjcmlwdENvbnRyb2xsZXIgd2hlbgorICAgICAgICAgICAgZGlzYWJs
aW5nIGV2YWwuCisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6ZXZhbERpc2FibGVkRXJyb3JNZXNzYWdl
KToKKyAgICAgICAgICAgIEFjY2Vzc29yIGZvciB0aGUgZXJyb3IgbWVzc2FnZSB0aGF0IG91Z2h0
IGJlIGRpc3BsYXllZCB0byBkZXZlbG9wZXJzCisgICAgICAgICAgICB3aGVuICdldmFsJyB1c2Vk
IHdoaWxlIGRpc2FibGVkIGZvciBhIHNwZWNpZmljIGRpcmVjdGl2ZSBsaXN0LgorICAgICAgICAo
V2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6c2V0RXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKToK
KyAgICAgICAgICAgIE11dGF0b3IgZm9yIHRoZSBlcnJvciBtZXNzYWdlIHRoYXQgb3VnaHQgYmUg
ZGlzcGxheWVkIHRvIGRldmVsb3BlcnMKKyAgICAgICAgICAgIHdoZW4gJ2V2YWwnIHVzZWQgd2hp
bGUgZGlzYWJsZWQgZm9yIGEgc3BlY2lmaWMgZGlyZWN0aXZlIGxpc3QuCisgICAgICAgIChDU1BE
aXJlY3RpdmVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6OmNyZWF0
ZSk6CisgICAgICAgICAgICBVcG9uIGNyZWF0aW9uIG9mIGEgQ1NQRGlyZWN0aXZlTGlzdCwgc2V0
IHRoZSBlcnJvciBtZXNzYWdlIGlmIHRoZQorICAgICAgICAgICAgZGlyZWN0aXZlIGxpc3QgZGlz
YWJsZXMgJ2V2YWwnLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5Ojpk
aWRSZWNlaXZlSGVhZGVyKToKKyAgICAgICAgICAgIFBhc3MgdGhlIGVycm9yIG1lc3NhZ2UgaW50
byBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpkaXNhYmxlRXZhbC4KKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6ZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKToKKyAgICAg
ICAgICAgIFB1YmxpYyBhY2Nlc3NvciBmb3IgdGhlIHBvbGljeSdzIGVycm9yIG1lc3NhZ2U7IHdh
bGtzIHRoZSBsaXN0IG9mCisgICAgICAgICAgICBkaXJlY3RpdmUgbGlzdHMgYW5kIHJldHVybnMg
dGhlIGZpcnN0IGVycm9yIG1lc3NhZ2UgZm91bmQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjpkaXNhYmxl
RXZhbCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0Lmg6CisgICAgICAgIChXb3Jr
ZXJDb250ZXh0KToKKyAgICAgICAgICAgIFBpcGUgdGhlIGVycm9yIG1lc3NhZ2UgdGhyb3VnaCB0
byB0aGUgU2NyaXB0Q29udHJvbGxlciB3aGVuCisgICAgICAgICAgICBkaXNhYmxpbmcgZXZhbC4K
KwogMjAxMi0wOS0xMiAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZW1vdmUgbGFzdCBjYWxsIHRvIG51bWJlclRvU3RyaW5nKCkgZnJvbSBXZWJDb3Jl
IGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFi
bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5k
ZXggYjExMjIwYmVhNTYwZDE4ZDQ4MTZhZWQ3NWNhNTgwODBmN2FiYmE4Zi4uMjc5MWM2NWQ0YTI0
YmM5YmU0MTI1MDVkZmQ3NjY5OTc3NDI3NGY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKQEAgLTIwMiw3ICsyMDIsNyBAQCBKU09iamVjdCogRXZh
bEV4ZWN1dGFibGU6OmNvbXBpbGVJbnRlcm5hbChFeGVjU3RhdGUqIGV4ZWMsIEpTU2NvcGUqIHNj
b3BlLCBKSVRDbwogICAgICAgICBtX2V2YWxDb2RlQmxvY2sgPSBuZXdDb2RlQmxvY2sucmVsZWFz
ZSgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghbGV4aWNhbEdsb2JhbE9iamVjdC0+ZXZh
bEVuYWJsZWQoKSkKLSAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUV2
YWxFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkV2YWwgaXMgZGlzYWJsZWQiKSkpOworICAgICAg
ICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywgY3JlYXRlRXZhbEVycm9yKGV4ZWMsIGxleGlj
YWxHbG9iYWxPYmplY3QtPmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpKSk7CiAgICAgICAgIFJl
ZlB0cjxFdmFsTm9kZT4gZXZhbE5vZGUgPSBwYXJzZTxFdmFsTm9kZT4oZ2xvYmFsRGF0YSwgbGV4
aWNhbEdsb2JhbE9iamVjdCwgbV9zb3VyY2UsIDAsIElkZW50aWZpZXIoKSwgaXNTdHJpY3RNb2Rl
KCkgPyBKU1BhcnNlU3RyaWN0IDogSlNQYXJzZU5vcm1hbCwgRXZhbE5vZGU6OmlzRnVuY3Rpb25O
b2RlID8gSlNQYXJzZUZ1bmN0aW9uQ29kZSA6IEpTUGFyc2VQcm9ncmFtQ29kZSwgbGV4aWNhbEds
b2JhbE9iamVjdC0+ZGVidWdnZXIoKSwgZXhlYywgJmV4Y2VwdGlvbik7CiAgICAgICAgIGlmICgh
ZXZhbE5vZGUpIHsKICAgICAgICAgICAgIEFTU0VSVChleGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRl
eCA0MDUwN2RhZTE2NmJlNzE2MTE3ZThkZjEzYjlhY2MzYTYwMzk0NDViLi41NzA0NDRlM2M2ZWM3
NWFjMTcwNTBiZWI5NTUwY2Y5ZWY4YWYzNGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtODIsNyArODIsNyBA
QCBDYWxsVHlwZSBGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxs
RGF0YSYgY2FsbERhdGEpCiBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb24oRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBBcmdMaXN0JiBhcmdzLCBj
b25zdCBJZGVudGlmaWVyJiBmdW5jdGlvbk5hbWUsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBj
b25zdCBUZXh0UG9zaXRpb24mIHBvc2l0aW9uKQogewogICAgIGlmICghZ2xvYmFsT2JqZWN0LT5l
dmFsRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVFdmFs
RXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBkaXNhYmxl
ZCIpKSk7CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUV2YWxFcnJvcihl
eGVjLCBnbG9iYWxPYmplY3QtPmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpKSk7CiAgICAgcmV0
dXJuIGNvbnN0cnVjdEZ1bmN0aW9uU2tpcHBpbmdFdmFsRW5hYmxlZENoZWNrKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgYXJncywgZnVuY3Rpb25OYW1lLCBzb3VyY2VVUkwsIHBvc2l0aW9uKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXgg
NDA2YTY1YjUxMWE0NjdiOTIyOWQ2MzJkMTZjMzJmNzllMDlmZWJmZS4uMmY0MjY2NDhjOWJjNWFh
OGY4ZTJkNTRkZjU3NDhmMjM1MmYxNGJlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNTUsNiArMTU1LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIFdlYWtSYW5kb20gbV93ZWFrUmFuZG9tOwogCiAgICAgICAgIGJvb2wgbV9l
dmFsRW5hYmxlZDsKKyAgICAgICAgU3RyaW5nIG1fZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlOwog
ICAgICAgICBib29sIG1fZXhwZXJpbWVudHNFbmFibGVkOwogCiAgICAgICAgIHN0YXRpYyBKU19F
WFBPUlREQVRBIGNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIHNfZ2xvYmFsT2JqZWN0TWV0
aG9kVGFibGU7CkBAIC0zMDQsOCArMzA1LDEzIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAg
IGJvb2wgaXNEeW5hbWljU2NvcGUoYm9vbCYgcmVxdWlyZXNEeW5hbWljQ2hlY2tzKSBjb25zdDsK
IAotICAgICAgICB2b2lkIHNldEV2YWxFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2V2YWxFbmFi
bGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIGV2YWxFbmFibGVkKCkgeyByZXR1cm4gbV9l
dmFsRW5hYmxlZDsgfQorICAgICAgICBib29sIGV2YWxFbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV9ldmFsRW5hYmxlZDsgfQorICAgICAgICBjb25zdCBTdHJpbmcmIGV2YWxEaXNhYmxlZEVycm9y
TWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlOyB9Cisg
ICAgICAgIHZvaWQgc2V0RXZhbEVuYWJsZWQoYm9vbCBlbmFibGVkLCBjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSA9IFN0cmluZygpKQorICAgICAgICB7CisgICAgICAgICAgICBtX2V2YWxFbmFi
bGVkID0gZW5hYmxlZDsKKyAgICAgICAgICAgIG1fZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlID0g
ZXJyb3JNZXNzYWdlOworICAgICAgICB9CiAKICAgICAgICAgdm9pZCByZXNldFByb3RvdHlwZShK
U0dsb2JhbERhdGEmLCBKU1ZhbHVlIHByb3RvdHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggMWYyZTlkMzcyNzE4YzNiNjA0
MzMyNTQwZDMyY2JhODEyNTA3ZmY0OC4uNDhmNjhjOGEzMjg2ZjVkOWE4MmUwZjFhMDdlZmE4Y2Rk
NGUyNWU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHAKQEAgLTIyMiw3ICsyMjIsNyBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3JpcHRDb250
cm9sbGVyOjppbml0U2NyaXB0KERPTVdyYXBwZXJXb3JsZCogd29ybGQpCiAgICAgd2luZG93U2hl
bGwtPndpbmRvdygpLT51cGRhdGVEb2N1bWVudCgpOwogCiAgICAgaWYgKG1fZnJhbWUtPmRvY3Vt
ZW50KCkpCi0gICAgICAgIHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQobV9m
cmFtZS0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93RXZhbCgwLCBD
b250ZW50U2VjdXJpdHlQb2xpY3k6OlN1cHByZXNzUmVwb3J0KSk7ICAgCisgICAgICAgIHdpbmRv
d1NoZWxsLT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQobV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29u
dGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93RXZhbCgwLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OlN1cHByZXNzUmVwb3J0KSwgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3VyaXR5UG9s
aWN5KCktPmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpKTsgICAKIAogICAgIGlmIChQYWdlKiBw
YWdlID0gbV9mcmFtZS0+cGFnZSgpKSB7CiAgICAgICAgIGF0dGFjaERlYnVnZ2VyKHdpbmRvd1No
ZWxsLCBwYWdlLT5kZWJ1Z2dlcigpKTsKQEAgLTI1MCwxMiArMjUwLDEyIEBAIHZvaWQgU2NyaXB0
Q29udHJvbGxlcjo6ZW5hYmxlRXZhbCgpCiAgICAgd2luZG93U2hlbGwtPndpbmRvdygpLT5zZXRF
dmFsRW5hYmxlZCh0cnVlKTsKIH0KIAotdm9pZCBTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZh
bCgpCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlKQogewogICAgIEpTRE9NV2luZG93U2hlbGwqIHdpbmRvd1NoZWxsID0gZXhpc3Rp
bmdXaW5kb3dTaGVsbChtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CiAgICAgaWYgKCF3aW5kb3dT
aGVsbCkKICAgICAgICAgcmV0dXJuOwotICAgIHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0RXZh
bEVuYWJsZWQoZmFsc2UpOworICAgIHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0RXZhbEVuYWJs
ZWQoZmFsc2UsIGVycm9yTWVzc2FnZSk7CiB9CiAKIGJvb2wgU2NyaXB0Q29udHJvbGxlcjo6cHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuaAppbmRleCBmNzZmZGU4ZmM3MmY2ODA1ZWY0OGMwM2FmYzFkMDZhM2ExNTRj
YTg3Li4xODdmYWI1MmJlZjBhZDIxY2Y1NGRlNTA2YTRlZjY1MWNmZmRiZWJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCkBAIC0xMDUsNyArMTA1
LDcgQEAgcHVibGljOgogICAgIFdURjo6VGV4dFBvc2l0aW9uIGV2ZW50SGFuZGxlclBvc2l0aW9u
KCkgY29uc3Q7CiAKICAgICB2b2lkIGVuYWJsZUV2YWwoKTsKLSAgICB2b2lkIGRpc2FibGVFdmFs
KCk7CisgICAgdm9pZCBkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAK
ICAgICBzdGF0aWMgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRl
eCBhNWZjMzViMjk5NDNhMTc0NWIxN2NjNmY4ZmE1ZGU4MTgyNDQ5OTE1Li42MjEyOTY5NzY2NzM1
NzMzNmQ1NjlhY2YxNzE0MGM3NWY3Zjc3NDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTg4LDEyICsxODgs
MTIgQEAgYm9vbCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjppc0V4ZWN1dGlvbkZvcmJpZGRlbigp
IGNvbnN0CiAgICAgcmV0dXJuIG1fZXhlY3V0aW9uRm9yYmlkZGVuOwogfQogCi12b2lkIFdvcmtl
clNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKCkKK3ZvaWQgV29ya2VyU2NyaXB0Q29udHJv
bGxlcjo6ZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7CiAgICAgaW5p
dFNjcmlwdElmTmVlZGVkKCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2soZ2xvYmFsRGF0YSgpKTsK
IAotICAgIG1fd29ya2VyQ29udGV4dFdyYXBwZXItPnNldEV2YWxFbmFibGVkKGZhbHNlKTsKKyAg
ICBtX3dvcmtlckNvbnRleHRXcmFwcGVyLT5zZXRFdmFsRW5hYmxlZChmYWxzZSwgZXJyb3JNZXNz
YWdlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDNiMmFjZDRiNjRk
NzAzOTlmYzM3ODhhZmQ4YjdjODYxZGZmMTYyZWMuLmEzMTNmYjBmZTFjNTA0NTM1MjUwY2I0M2Vj
NzIxMzZjNjZlMDAzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmgKQEAgLTc1LDcgKzc1LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2b2lkIGZvcmJpZEV4ZWN1dGlvbigpOwogICAgICAgICBib29sIGlzRXhl
Y3V0aW9uRm9yYmlkZGVuKCkgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBkaXNhYmxlRXZhbCgpOwor
ICAgICAgICB2b2lkIGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAog
ICAgICAgICBKU0M6OkpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSgpIHsgcmV0dXJuIG1fZ2xvYmFs
RGF0YS5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENv
bnRyb2xsZXIuY3BwCmluZGV4IDIxMWJhOTQ3YTE3MjcxZmE2M2QzOTgxN2ZiNjhlYjlkYzA5NGEx
ODQuLmZiOWQ1NTdlOTJiNDY1MDk3ODM5MGMxMzFlMDgzOTI5OWEzMWRmNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC00ODUsNyAr
NDg1LDcgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVyOjplbmFibGVFdmFsKCkKICAgICB2OENvbnRl
eHQtPkFsbG93Q29kZUdlbmVyYXRpb25Gcm9tU3RyaW5ncyh0cnVlKTsKIH0KIAotdm9pZCBTY3Jp
cHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCgpCit2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmRpc2Fi
bGVFdmFsKGNvbnN0IFN0cmluZyYgLyogZXJyb3JNZXNzYWdlICovKQogewogICAgIHY4OjpIYW5k
bGVTY29wZSBoYW5kbGVTY29wZTsKICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB2OENvbnRl
eHQgPSB3aW5kb3dTaGVsbCgpLT5jb250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9TY3JpcHRDb250cm9sbGVyLmgKaW5kZXggMDQwMjE1MjM4YzUxNDNmZWY4OTYxMDRlMjVk
MmUzOWM0NmI1ZmIxMC4uZGZmZWUzNTAzYWRhMDRmN2YwMmMwNDdlNWQxMzRmY2ZjYTlkOGNhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuaApAQCAt
MTIxLDcgKzEyMSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhdmVJbnRlcnByZXRlcigpIGNvbnN0
OwogCiAgICAgdm9pZCBlbmFibGVFdmFsKCk7Ci0gICAgdm9pZCBkaXNhYmxlRXZhbCgpOworICAg
IHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCiAgICAgc3Rh
dGljIGJvb2wgY2FuQWNjZXNzRnJvbUN1cnJlbnRPcmlnaW4oRnJhbWUqKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApp
bmRleCBiYmQ5MTU4YmVmZjE3MGUxODU5OWI0YzMxMjlhYzY0M2E1MmI1NTUxLi43MDIwOGUxZmVl
NDBmNjA3ZDMzZGIzZTNkYjdjZWVhMDgyZjU4ZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTMyLDcgKzEz
Miw3IEBAIGJvb2wgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6aXNFeGVjdXRpb25Gb3JiaWRkZW4o
KSBjb25zdAogICAgIHJldHVybiBtX2V4ZWN1dGlvbkZvcmJpZGRlbjsKIH0KIAotdm9pZCBXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCgpCit2b2lkIFdvcmtlclNjcmlwdENvbnRy
b2xsZXI6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgLyogZXJyb3JNZXNzYWdlICovKQogewog
ICAgIG1fcHJveHktPnNldEV2YWxBbGxvd2VkKGZhbHNlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAppbmRleCA2MWVkN2Fi
YzExYzlkMzNiYTZiNjdiOTE2YzdhMjE2Nzk5ZGE3MjMyLi42OGNlODlhYWUwN2ZmMzg2NTkwYmFm
OGI5OTc4NDY2Mjg2MDg3YzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCkBAIC03Myw3ICs3Myw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdm9pZCBmb3JiaWRFeGVjdXRpb24oKTsKICAgICAgICAgYm9vbCBp
c0V4ZWN1dGlvbkZvcmJpZGRlbigpIGNvbnN0OwogCi0gICAgICAgIHZvaWQgZGlzYWJsZUV2YWwo
KTsKKyAgICAgICAgdm9pZCBkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmKTsKIAogICAgICAgICAv
LyBSZXR1cm5zIFdvcmtlclNjcmlwdENvbnRyb2xsZXIgZm9yIHRoZSBjdXJyZW50bHkgZXhlY3V0
aW5nIGNvbnRleHQuIDAgd2lsbCBiZSByZXR1cm5lZCBpZiB0aGUgY3VycmVudCBleGVjdXRpbmcg
Y29udGV4dCBpcyBub3QgdGhlIHdvcmtlciBjb250ZXh0LgogICAgICAgICBzdGF0aWMgV29ya2Vy
U2NyaXB0Q29udHJvbGxlciogY29udHJvbGxlckZvckNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDk3ODBmMjQ2ZGI3MjQ3OWU0ZjQ2NDMxM2RjNjgyNDc0MTJiYjI3MzcuLjFj
Nzk1YTU0MzQ1ZDNiMDQyYjQ3YTJkYzI4Nzk5NTgxMzA1ZDI2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtMjgxMCwxMiArMjgxMCwxMiBAQCBTdHJpbmcgRG9jdW1lbnQ6OnVzZXJBZ2Vu
dChjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiAgICAgcmV0dXJuIGZyYW1lKCkgPyBmcmFtZSgpLT5s
b2FkZXIoKS0+dXNlckFnZW50KHVybCkgOiBTdHJpbmcoKTsKIH0KIAotdm9pZCBEb2N1bWVudDo6
ZGlzYWJsZUV2YWwoKQordm9pZCBEb2N1bWVudDo6ZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpCiB7CiAgICAgaWYgKCFmcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBmcmFtZSgpLT5zY3JpcHQoKS0+ZGlzYWJsZUV2YWwoKTsKKyAgICBmcmFtZSgpLT5zY3JpcHQo
KS0+ZGlzYWJsZUV2YWwoZXJyb3JNZXNzYWdlKTsKIH0KIAogYm9vbCBEb2N1bWVudDo6Y2FuTmF2
aWdhdGUoRnJhbWUqIHRhcmdldEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkYWZlMDRi
ZTMxNGE0YTdiNTAxMDU1Yzc1NWJhNTllZTA0NmQ2MmQzLi5lNDYwMTgzY2NkODIzZjExZTY1OWZh
ZThkZWE5OWVkNDM2N2E1MjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNjQyLDcgKzY0Miw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBLVVJMJikg
Y29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCiAgICAgYm9vbCBj
YW5OYXZpZ2F0ZShGcmFtZSogdGFyZ2V0RnJhbWUpOwogICAgIEZyYW1lKiBmaW5kVW5zYWZlUGFy
ZW50U2Nyb2xsUHJvcGFnYXRpb25Cb3VuZGFyeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggZTc0NjgwMzhjNmEzODViODgxNmY5ZmMxYjQ3MzUw
NmFjMjZjYTExMC4uOGFkM2U5ZjI0MGE4M2IxNmY0MjliYWUwMThkODcyMDg0YjQzNzQyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC03OSw3ICs3
OSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBLVVJM
JikgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc2FibGVFdmFsKCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgPSAw
OwogCiAgICAgYm9vbCBzYW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNzYWdlLCBp
bnQmIGxpbmVOdW1iZXIsIFN0cmluZyYgc291cmNlVVJMKTsKICAgICB2b2lkIHJlcG9ydEV4Y2Vw
dGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmluZGV4IDAyYTE1MWJkM2Iw
MGM2M2ZlNGJkN2FkMjkwOGM3ZmVlN2JlYjczYzUuLjg5NWYyOTA4ODBkNzQ0ZmU4OTY1NWIxZTRh
NTE4MzYxMzQ2ZGEyZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNl
Y3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0
eVBvbGljeS5jcHAKQEAgLTcyNSw2ICs3MjUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBhbGxvd0Zv
cm1BY3Rpb24oY29uc3QgS1VSTCYsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0aW5nU3Rh
dHVzKSBjb25zdDsKIAogICAgIHZvaWQgZ2F0aGVyUmVwb3J0VVJJcyhET01TdHJpbmdMaXN0Jikg
Y29uc3Q7CisgICAgY29uc3QgU3RyaW5nJiBldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UoKSB7IHJl
dHVybiBtX2V2YWxEaXNhYmxlZEVycm9yTWVzc2FnZTsgfQogCiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IENTUERpcmVjdGl2ZUxpc3QoQ29udGVudFNlY3VyaXR5UG9saWN5Kik7CkBAIC03NTAsNiAr
NzUxLDggQEAgcHJpdmF0ZToKICAgICBib29sIGNoZWNrU291cmNlKFNvdXJjZUxpc3REaXJlY3Rp
dmUqLCBjb25zdCBLVVJMJikgY29uc3Q7CiAgICAgYm9vbCBjaGVja01lZGlhVHlwZShNZWRpYUxp
c3REaXJlY3RpdmUqLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdHlwZUF0dHJp
YnV0ZSkgY29uc3Q7CiAKKyAgICB2b2lkIHNldEV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZShjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgeyBtX2V2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSA9IGVy
cm9yTWVzc2FnZTsgfQorCiAgICAgYm9vbCBjaGVja0V2YWxBbmRSZXBvcnRWaW9sYXRpb24oU291
cmNlTGlzdERpcmVjdGl2ZSosIGNvbnN0IFN0cmluZyYgY29uc29sZU1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgY29udGV4dFVSTCA9IFN0cmluZygpLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNv
bnRleHRMaW5lID0gV1RGOjpPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpLCBQYXNzUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4gPSAwKSBjb25zdDsKICAgICBib29sIGNoZWNrSW5saW5lQW5kUmVw
b3J0VmlvbGF0aW9uKFNvdXJjZUxpc3REaXJlY3RpdmUqLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVN
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJl
ciYgY29udGV4dExpbmUpIGNvbnN0OwogICAgIGJvb2wgY2hlY2tOb25jZUFuZFJlcG9ydFZpb2xh
dGlvbihOb25jZURpcmVjdGl2ZSosIGNvbnN0IFN0cmluZyYgbm9uY2UsIGNvbnN0IFN0cmluZyYg
Y29uc29sZU1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRp
bmFsTnVtYmVyJiBjb250ZXh0TGluZSkgY29uc3Q7CkBAIC03NTksNiArNzYyLDcgQEAgcHJpdmF0
ZToKICAgICBib29sIGRlbnlJZkVuZm9yY2luZ1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVw
b3J0T25seTsgfQogCiAgICAgQ29udGVudFNlY3VyaXR5UG9saWN5KiBtX3BvbGljeTsKKwogICAg
IFN0cmluZyBtX2hlYWRlcjsKIAogICAgIGJvb2wgbV9yZXBvcnRPbmx5OwpAQCAtNzc4LDYgKzc4
Miw4IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFNvdXJjZUxpc3REaXJlY3RpdmU+IG1fc3R5bGVT
cmM7CiAKICAgICBWZWN0b3I8S1VSTD4gbV9yZXBvcnRVUklzOworCisgICAgU3RyaW5nIG1fZXZh
bERpc2FibGVkRXJyb3JNZXNzYWdlOwogfTsKIAogQ1NQRGlyZWN0aXZlTGlzdDo6Q1NQRGlyZWN0
aXZlTGlzdChDb250ZW50U2VjdXJpdHlQb2xpY3kqIHBvbGljeSkKQEAgLTgwMiw2ICs4MDgsMTEg
QEAgUGFzc093blB0cjxDU1BEaXJlY3RpdmVMaXN0PiBDU1BEaXJlY3RpdmVMaXN0OjpjcmVhdGUo
Q29udGVudFNlY3VyaXR5UG9saWN5KiBwb2wKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAg
aWYgKCFkaXJlY3RpdmVzLT5jaGVja0V2YWwoZGlyZWN0aXZlcy0+b3BlcmF0aXZlRGlyZWN0aXZl
KGRpcmVjdGl2ZXMtPm1fc2NyaXB0U3JjLmdldCgpKSkpIHsKKyAgICAgICAgU3RyaW5nIG1lc3Nh
Z2UgPSBtYWtlU3RyaW5nKCJSZWZ1c2VkIHRvIGV2YWx1YXRlIGEgc3RyaW5nIGFzIEphdmFTY3Jp
cHQgYmVjYXVzZSAndW5zYWZlLWV2YWwnIGlzIG5vdCBhbiBhbGxvd2VkIHNvdXJjZSBvZiBzY3Jp
cHQgaW4gdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6IFwi
IiwgZGlyZWN0aXZlcy0+b3BlcmF0aXZlRGlyZWN0aXZlKGRpcmVjdGl2ZXMtPm1fc2NyaXB0U3Jj
LmdldCgpKS0+dGV4dCgpLCAiXCIuXG4iKTsKKyAgICAgICAgZGlyZWN0aXZlcy0+c2V0RXZhbERp
c2FibGVkRXJyb3JNZXNzYWdlKG1lc3NhZ2UpOworICAgIH0KKwogICAgIHJldHVybiBkaXJlY3Rp
dmVzLnJlbGVhc2UoKTsKIH0KIApAQCAtMTI2MCw3ICsxMjcxLDcgQEAgdm9pZCBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OmRpZFJlY2VpdmVIZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIsIEhlYWRl
clR5cGUgdHkKICAgICB9CiAKICAgICBpZiAoIWFsbG93RXZhbCgwLCBTdXBwcmVzc1JlcG9ydCkp
Ci0gICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGlzYWJsZUV2YWwoKTsKKyAgICAg
ICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5kaXNhYmxlRXZhbChldmFsRGlzYWJsZWRFcnJv
ck1lc3NhZ2UoKSk7CiB9CiAKIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpzZXRPdmVycmlk
ZUFsbG93SW5saW5lU3R5bGUoYm9vbCB2YWx1ZSkKQEAgLTEzNDgsNiArMTM1OSwxNSBAQCBib29s
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dFdmFsKFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPiBjYWxsU3RhY2ssIENvbgogICAgIHJldHVybiBpc0FsbG93ZWRCeUFsbFdpdGhDYWxsU3Rh
Y2s8JkNTUERpcmVjdGl2ZUxpc3Q6OmFsbG93RXZhbD4obV9wb2xpY2llcywgY2FsbFN0YWNrLCBy
ZXBvcnRpbmdTdGF0dXMpOwogfQogCitTdHJpbmcgQ29udGVudFNlY3VyaXR5UG9saWN5OjpldmFs
RGlzYWJsZWRFcnJvck1lc3NhZ2UoKSBjb25zdAoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV9wb2xpY2llcy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoIW1fcG9saWNpZXNbaV0t
PmFsbG93RXZhbCgwLCBTdXBwcmVzc1JlcG9ydCkpCisgICAgICAgICAgICByZXR1cm4gbV9wb2xp
Y2llc1tpXS0+ZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKCk7CisgICAgfQorICAgIHJldHVybiBT
dHJpbmcoKTsKK30KKwogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93U2NyaXB0Tm9u
Y2UoY29uc3QgU3RyaW5nJiBub25jZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25zdCBX
VEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGlzQWxsb3dlZEJ5QWxsV2l0aE5vbmNlPCZDU1BEaXJlY3RpdmVMaXN0Ojph
bGxvd1NjcmlwdE5vbmNlPihtX3BvbGljaWVzLCBub25jZSwgY29udGV4dFVSTCwgY29udGV4dExp
bmUsIHVybCk7CkBAIC0xMzU2LDcgKzEzNzYsNyBAQCBib29sIENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6YWxsb3dTY3JpcHROb25jZShjb25zdCBTdHJpbmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmCiBi
b29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dQbHVnaW5UeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiB0eXBlQXR0cmlidXRlLCBjb25zdCBLVVJMJiB1cmwsIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6UmVwb3J0aW5nU3RhdHVzIHJlcG9ydGluZ1N0YXR1cykgY29uc3QK
IHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fcG9saWNpZXMuc2l6ZSgpOyArK2kpIHsK
LSAgICAgICAgaWYgKCFtX3BvbGljaWVzW2ldLmdldCgpLT5hbGxvd1BsdWdpblR5cGUodHlwZSwg
dHlwZUF0dHJpYnV0ZSwgdXJsLCByZXBvcnRpbmdTdGF0dXMpKQorICAgICAgICBpZiAoIW1fcG9s
aWNpZXNbaV0tPmFsbG93UGx1Z2luVHlwZSh0eXBlLCB0eXBlQXR0cmlidXRlLCB1cmwsIHJlcG9y
dGluZ1N0YXR1cykpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVy
biB0cnVlOwpAQCAtMTQxNSw3ICsxNDM1LDcgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OmlzQWN0aXZlKCkgY29uc3QKIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpnYXRoZXJSZXBv
cnRVUklzKERPTVN0cmluZ0xpc3QmIGxpc3QpIGNvbnN0CiB7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtX3BvbGljaWVzLnNpemUoKTsgKytpKQotICAgICAgICBtX3BvbGljaWVzW2ldLmdl
dCgpLT5nYXRoZXJSZXBvcnRVUklzKGxpc3QpOworICAgICAgICBtX3BvbGljaWVzW2ldLT5nYXRo
ZXJSZXBvcnRVUklzKGxpc3QpOwogfQogCiBTZWN1cml0eU9yaWdpbiogQ29udGVudFNlY3VyaXR5
UG9saWN5OjpzZWN1cml0eU9yaWdpbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZW50U2VjdXJpdHlQb2xpY3kuaAppbmRleCAzZDQwZWM0Y2QyMzYzMzZmMmZiMWExODEzZTAzOTEy
NjJmNTliMmVmLi4zYTc1MzU0NmQ1NTc4Y2RjMzg3YmZhZjdjYWMwOTMzOTFlNzYyMDRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKQEAgLTExMSw2ICsx
MTEsNyBAQCBwdWJsaWM6CiAgICAgS1VSTCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25z
dDsKICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKICAgICB2b2lk
IGVuZm9yY2VTYW5kYm94RmxhZ3MoU2FuZGJveEZsYWdzKSBjb25zdDsKKyAgICBTdHJpbmcgZXZh
bERpc2FibGVkRXJyb3JNZXNzYWdlKCkgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
Q29udGVudFNlY3VyaXR5UG9saWN5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCmluZGV4IGQ3ZWFmNWRiNDZlZThjYTc4MGVi
NzYxYzhmNDJiNDc2YzkwNTU3NDguLmMwNDBjMzk2Njk0YjYxNjQ1NTczMDhjZGU3MTIyZDYwZjEz
MGQ0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcApAQCAtMTQ4
LDkgKzE0OCw5IEBAIFN0cmluZyBXb3JrZXJDb250ZXh0Ojp1c2VyQWdlbnQoY29uc3QgS1VSTCYp
IGNvbnN0CiAgICAgcmV0dXJuIG1fdXNlckFnZW50OwogfQogCi12b2lkIFdvcmtlckNvbnRleHQ6
OmRpc2FibGVFdmFsKCkKK3ZvaWQgV29ya2VyQ29udGV4dDo6ZGlzYWJsZUV2YWwoY29uc3QgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UpCiB7Ci0gICAgbV9zY3JpcHQtPmRpc2FibGVFdmFsKCk7CisgICAg
bV9zY3JpcHQtPmRpc2FibGVFdmFsKGVycm9yTWVzc2FnZSk7CiB9CiAKIFdvcmtlckxvY2F0aW9u
KiBXb3JrZXJDb250ZXh0Ojpsb2NhdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyQ29udGV4dC5oCmluZGV4IGE2ZDYwYzgxNDI5YjZlNDJmZDJiOTkxMjQ3ZTc1YTFlMzAwNTU5
OTIuLjk4NDFhNWUxZDI1NmI1YmFmYjM5NzBkY2ZmMzA0YTEzZGVkY2IyNzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCkBAIC03Miw3ICs3Miw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgY29uc3QgR3JvdXBTZXR0aW5ncyogZ3JvdXBTZXR0aW5ncygpIHsg
cmV0dXJuIG1fZ3JvdXBTZXR0aW5ncy5nZXQoKTsgfQogICAgICAgICB2aXJ0dWFsIFN0cmluZyB1
c2VyQWdlbnQoY29uc3QgS1VSTCYpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNh
YmxlRXZhbCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UpOwogCiAgICAgICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIHNjcmlw
dCgpIHsgcmV0dXJuIG1fc2NyaXB0LmdldCgpOyB9CiAgICAgICAgIHZvaWQgY2xlYXJTY3JpcHQo
KSB7IG1fc2NyaXB0LmNsZWFyKCk7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MTE5MjFmMjBjM2NmNWQ4OGI4Yjc1ZTE1
NDA4N2FjZDgxZjRiNzhlLi5iYjQwNGEzOWY2OTAyYTY2ZTQ3OWU0YWJhYTdiNTY0ZTNmM2ExODgx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDktMDcgIE1pa2UgV2VzdCAgPG1rd3N0QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBKU0Mgc2hvdWxkIHRocm93IGEgbW9yZSBkZXNjcmlwdGl2
ZSBleGNlcHRpb24gd2hlbiBibG9ja2luZyAnZXZhbCcgdmlhIENTUC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MzMxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLWJsb2NrZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtYmxvY2tlZC1p
bi1hYm91dC1ibGFuay1pZnJhbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Z1bmN0aW9uLWNvbnN0cnVjdG9yLWJsb2Nr
ZWQtZXhwZWN0ZWQudHh0OgorCiAyMDEyLTA5LTEyICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxh
bGxhbi5qZW5zZW5Abm9raWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBU
aGVzZSB0ZXN0cyBzaG91bGQgaGF2ZSBiZWVuIHVuc2tpcHBlZCB3aGVuIGZpeGVkLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvZXZhbC1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtYmxvY2tlZC1leHBlY3RlZC50eHQKaW5k
ZXggNjk4NTU4YTg5Yjg3NjIyOWVkYTkyYTNjNWE3OWFlMTZmZTQzNjg5ZS4uMzY4MTc5ZDg5Y2Qx
OWI2YzI4OGYyN2M1NGM0YzYxNjk1OTUxYjI3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9ja2VkLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9ldmFsLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBAQAotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDEyOiBFdmFsRXJyb3I6IEV2YWwgaXMgZGlzYWJsZWQKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAxNTogRXZhbEVycm9yOiBFdmFsIGlzIGRpc2FibGVkCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTI6IEV2YWxFcnJvcjogUmVmdXNlZCB0byBldmFsdWF0ZSBhIHN0cmlu
ZyBhcyBKYXZhU2NyaXB0IGJlY2F1c2UgJ3Vuc2FmZS1ldmFsJyBpcyBub3QgYW4gYWxsb3dlZCBz
b3VyY2Ugb2Ygc2NyaXB0IGluIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kg
ZGlyZWN0aXZlOiAic2NyaXB0LXNyYyAndW5zYWZlLWlubGluZSciLgorCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTU6IEV2YWxFcnJvcjogUmVmdXNlZCB0byBldmFsdWF0ZSBhIHN0cmluZyBhcyBK
YXZhU2NyaXB0IGJlY2F1c2UgJ3Vuc2FmZS1ldmFsJyBpcyBub3QgYW4gYWxsb3dlZCBzb3VyY2Ug
b2Ygc2NyaXB0IGluIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0
aXZlOiAic2NyaXB0LXNyYyAndW5zYWZlLWlubGluZSciLgorCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtYmxv
Y2tlZC1pbi1hYm91dC1ibGFuay1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9ja2VkLWluLWFi
b3V0LWJsYW5rLWlmcmFtZS1leHBlY3RlZC50eHQKaW5kZXggYjgwNzNiNzg2ZDNkN2Y5YTJhYzc3
NmM4Nzg1NzMyYzJmZGZmODcxZS4uOWNjNTY3ZDdiNmM0ZWYxYTc4MGExNjZlOGYxNTdlMzg5ZDA5
OTZkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9ja2VkLWluLWFib3V0LWJsYW5rLWlmcmFtZS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvZXZhbC1ibG9ja2VkLWluLWFib3V0LWJsYW5rLWlmcmFtZS1leHBlY3RlZC50eHQK
QEAgLTEsMyArMSw0IEBACiBBTEVSVDogL1BBU1MvCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTog
RXZhbEVycm9yOiBFdmFsIGlzIGRpc2FibGVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogRXZh
bEVycm9yOiBSZWZ1c2VkIHRvIGV2YWx1YXRlIGEgc3RyaW5nIGFzIEphdmFTY3JpcHQgYmVjYXVz
ZSAndW5zYWZlLWV2YWwnIGlzIG5vdCBhbiBhbGxvd2VkIHNvdXJjZSBvZiBzY3JpcHQgaW4gdGhl
IGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJlY3RpdmU6ICJzY3JpcHQtc3Jj
ICd1bnNhZmUtaW5saW5lJyIuCisKICBFdmFsIHNob3VsZCBiZSBibG9ja2VkIGluIHRoZSBpZnJh
bWUsIGJ1dCBpbmxpbmUgc2NyaXB0IHNob3VsZCBiZSBhbGxvd2VkLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZnVuY3Rp
b24tY29uc3RydWN0b3ItYmxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9mdW5jdGlvbi1jb25zdHJ1Y3Rvci1i
bG9ja2VkLWV4cGVjdGVkLnR4dAppbmRleCA4Y2M4M2NhMWZiMWUyYTA0OWNmMTQ0NzdlNDVmNjQx
NWY0Zjc2MDUzLi41NTFkOTdhMDAzNTRiNzA4YTk4NGJhYzBjOTVkNDA2NjU2YWI1YmUyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9mdW5jdGlvbi1jb25zdHJ1Y3Rvci1ibG9ja2VkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9mdW5jdGlv
bi1jb25zdHJ1Y3Rvci1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMSwyICsxLDMgQEAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAxMjogRXZhbEVycm9yOiBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBk
aXNhYmxlZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBFdmFsRXJyb3I6IFJlZnVzZWQgdG8g
ZXZhbHVhdGUgYSBzdHJpbmcgYXMgSmF2YVNjcmlwdCBiZWNhdXNlICd1bnNhZmUtZXZhbCcgaXMg
bm90IGFuIGFsbG93ZWQgc291cmNlIG9mIHNjcmlwdCBpbiB0aGUgZm9sbG93aW5nIENvbnRlbnQg
U2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1zcmMgJ3Vuc2FmZS1pbmxpbmUnIi4K
KwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164211</attachid>
            <date>2012-09-14 12:57:48 -0700</date>
            <delta_ts>2012-09-14 14:44:45 -0700</delta_ts>
            <desc>Rebased.</desc>
            <filename>bug-94331-20120914215717.patch</filename>
            <type>text/plain</type>
            <size>27610</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NGU3MmI1NTMxYTZjZjlhNjZiNGZhY2QzNzc3NWQwNzc3YmMzMTU2Li5iODI2ZjRmYzU4OTg5YTE1
MDJhZTQ1ZDJkYWNlZGY5MGY1N2YzMWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxMi0wOS0xNCAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEpTQyBzaG91bGQgdGhyb3cgYSBtb3JlIGRlc2NyaXB0aXZlIGV4Y2VwdGlvbiB3
aGVuIGJsb2NraW5nICdldmFsJyB2aWEgQ1NQLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJl
eSBHYXJlbi4KKworICAgICAgICBVbmxlc3MgZXhwbGljaXRseSB3aGl0ZWxpc3RlZCwgdGhlICdz
Y3JpcHQtc3JjJyBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBkaXJlY3RpdmUgYmxv
Y2tzICdldmFsJyBhbmQgJ2V2YWwnLWxpa2UgY29uc3RydWN0cyBzdWNoIGFzCisgICAgICAgICdu
ZXcgRnVuY3Rpb24oKScuIFdoZW4gJ2V2YWwnIGlzIGVuY291bnRlcmVkIGluIGNvZGUsIGFuICdF
dmFsRXJyb3InIGlzCisgICAgICAgIHRocm93biwgYnV0IHRoZSBhc3NvY2lhdGVkIG1lc3NhZ2Ug
aXMgcG9vcjogIkV2YWwgaXMgZGlzYWJsZWQiIGRvZXNuJ3QKKyAgICAgICAgZ2l2ZSBkZXZlbG9w
ZXJzIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCB3aHkgdGhlaXIgY29kZSBpc24ndCBiZWhhdmlu
ZworICAgICAgICBhcyBleHBlY3RlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYW4gJ2Vy
cm9yTWVzc2FnZScgcGFyYW1ldGVyIHRvIHRoZSBKYXZhU2NyaXB0Q29yZSBtZXRob2QKKyAgICAg
ICAgdXNlZCB0byBkaXNhYmxlICdldmFsJzsgQ29udGVudFNlY3VyaXR5UG9saWN5IGhhcyB0aGUg
b3Bwb3J0dW5pdHkgdG8KKyAgICAgICAgcGFzcyBpbiBhIG1vcmUgZGV0YWlsZWQgYW5kIGRlc2Ny
aXB0aXZlIGVycm9yIHRoYXQgY29udGFpbnMgbW9yZSBjb250ZXh0CisgICAgICAgIGZvciB0aGUg
ZGV2ZWxvcGVyLgorCisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAg
KEpTQzo6RXZhbEV4ZWN1dGFibGU6OmNvbXBpbGVJbnRlcm5hbCk6CisgICAgICAgICAgICBEcm9w
IHRoZSBoYXJkLWNvZGVkICJFdmFsIGlzIGRpc2FibGVkIiBlcnJvciBtZXNzYWdlIGluIGZhdm9y
IG9mCisgICAgICAgICAgICByZWFkaW5nIHRoZSBlcnJvciBtZXNzYWdlIG9mZiB0aGUgZ2xvYmFs
IG9iamVjdC4KKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6CisgICAgICAgICAg
ICBEcm9wIHRoZSBoYXJkLWNvZGVkICJGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBkaXNhYmxlZCIg
ZXJyb3IgbWVzc2FnZQorICAgICAgICAgICAgaW4gZmF2b3Igb2YgcmVhZGluZyB0aGUgZXJyb3Ig
bWVzc2FnZSBvZmYgdGhlIGdsb2JhbCBvYmplY3QuCisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oOgorICAgICAgICAoSlNHbG9iYWxPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZXZhbEVuYWJsZWQpOgorICAgICAgICAgICAgTWFraW5nIHRoaXMgYWNjZXNz
b3IgbWV0aG9kIGNvbnN0LgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6ZXZhbERpc2Fi
bGVkRXJyb3JNZXNzYWdlKToKKyAgICAgICAgICAgIEFjY2Vzc29yIGZvciB0aGUgZXJyb3IgbWVz
c2FnZSBzZXQgdmlhICdzZXRFdmFsRGlzYWJsZWQnLgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6c2V0RXZhbEVuYWJsZWQpOgorICAgICAgICAgICAgQWRkaW5nIGFuICdlcnJvck1lc3Nh
Z2UnIHBhcmFtZXRlciB3aGljaCBpcyBzdG9yZWQgb24gdGhlIGdsb2JhbAorICAgICAgICAgICAg
b2JqZWN0LCBhbmQgdXNlZCB3aGVuIGV4Y2VwdGlvbnMgYXJlIHRocm93bi4KKwogMjAxMi0wOS0x
NCAgVG9yIEFybmUgVmVzdGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKICAgICAg
ICAgW1F0XSBNYWtlIGZvcmNlX3N0YXRpY19saWJzX2FzX3NoYXJlZCB3b3JrIG9uIE1hYyBPUwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDM3OTlkMDhhNjFkOTA2NTU4YmMzOTdiOTZkYjljMThmZjQ5MTI0MTkuLjAy
MzE5MzUyZTk1Y2M1MTNhOTJjNzU2MmE1YWRiYmE5OTczMWY5YzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3OSBAQAorMjAxMi0wOS0xNCAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEpTQyBzaG91bGQgdGhyb3cgYSBtb3JlIGRlc2NyaXB0aXZlIGV4Y2VwdGlvbiB3
aGVuIGJsb2NraW5nICdldmFsJyB2aWEgQ1NQLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJl
eSBHYXJlbi4KKworICAgICAgICBVbmxlc3MgZXhwbGljaXRseSB3aGl0ZWxpc3RlZCwgdGhlICdz
Y3JpcHQtc3JjJyBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBkaXJlY3RpdmUgYmxv
Y2tzICdldmFsJyBhbmQgJ2V2YWwnLWxpa2UgY29uc3RydWN0cyBzdWNoIGFzCisgICAgICAgICdu
ZXcgRnVuY3Rpb24oKScuIFdoZW4gJ2V2YWwnIGlzIGVuY291bnRlcmVkIGluIGNvZGUsIGFuICdF
dmFsRXJyb3InIGlzCisgICAgICAgIHRocm93biwgYnV0IHRoZSBhc3NvY2lhdGVkIG1lc3NhZ2Ug
aXMgcG9vcjogIkV2YWwgaXMgZGlzYWJsZWQiIGRvZXNuJ3QKKyAgICAgICAgZ2l2ZSBkZXZlbG9w
ZXJzIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCB3aHkgdGhlaXIgY29kZSBpc24ndCBiZWhhdmlu
ZworICAgICAgICBhcyBleHBlY3RlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYW4gJ2Vy
cm9yTWVzc2FnZScgcGFyYW1ldGVyIHRvIHRoZSBKYXZhU2NyaXB0Q29yZSBtZXRob2QKKyAgICAg
ICAgdXNlZCB0byBkaXNhYmxlICdldmFsJzsgQ29udGVudFNlY3VyaXR5UG9saWN5IGhhcyB0aGUg
b3Bwb3J0dW5pdHkgdG8KKyAgICAgICAgcGFzcyBpbiBhIG1vcmUgZGV0YWlsZWQgYW5kIGRlc2Ny
aXB0aXZlIGVycm9yIHRoYXQgY29udGFpbnMgbW9yZSBjb250ZXh0CisgICAgICAgIGZvciB0aGUg
ZGV2ZWxvcGVyLgorCisgICAgICAgIFRoZSBuZXcgZXJyb3IgbWVzc2FnZSBpcyB0ZXN0ZWQgYnkg
YWRqdXN0aW5nIGV4aXN0aW5nIHRlc3RzOyBub3RoaW5nIG5ldworICAgICAgICBpcyByZXF1aXJl
ZC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCk6CisgICAgICAgICAgICBS
ZWFkIHRoZSBlcnJvciBtZXNzYWdlIG9mZiB0aGUgZG9jdW1lbnQncyBDb250ZW50U2VjdXJpdHlQ
b2xpY3kuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCk6
CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoU2Ny
aXB0Q29udHJvbGxlcik6CisgICAgICAgICAgICBQaXBlIHRoZSBlcnJvciBtZXNzYWdlIHRocm91
Z2ggdG8gSlNHbG9iYWxPYmplY3Qgd2hlbiBkaXNhYmxpbmcgZXZhbAorICAgICAgICAqIGJpbmRp
bmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdvcmtlclNjcmlwdENvbnRyb2xs
ZXIpOgorICAgICAgICAgICAgUGlwZSB0aGUgZXJyb3IgbWVzc2FnZSB0aHJvdWdoIHRvIEpTR2xv
YmFsT2JqZWN0IHdoZW4gZGlzYWJsaW5nIGV2YWwKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3Jp
cHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmRp
c2FibGVFdmFsKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmg6Cisg
ICAgICAgIChTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRy
b2xsZXI6OmRpc2FibGVFdmFsKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRD
b250cm9sbGVyLmg6CisgICAgICAgIChXb3JrZXJTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAg
ICAgIFBsYWNlaG9sZGVyIGZvciBWOCBwaXBpbmcgdG8gYmUgYnVpbHQgaW4gd2Viay5pdC85NDMz
Mi4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OmRpc2FibGVFdmFsKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERv
Y3VtZW50KToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAg
ICAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgICAgICBQaXBlIHRoZSBlcnJvciBt
ZXNzYWdlIHRocm91Z2ggdG8gdGhlIFNjcmlwdENvbnRyb2xsZXIgd2hlbgorICAgICAgICAgICAg
ZGlzYWJsaW5nIGV2YWwuCisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6ZXZhbERpc2FibGVkRXJyb3JN
ZXNzYWdlKToKKyAgICAgICAgICAgIEFjY2Vzc29yIGZvciB0aGUgZXJyb3IgbWVzc2FnZSB0aGF0
IG91Z2h0IGJlIGRpc3BsYXllZCB0byBkZXZlbG9wZXJzCisgICAgICAgICAgICB3aGVuICdldmFs
JyB1c2VkIHdoaWxlIGRpc2FibGVkIGZvciBhIHNwZWNpZmljIGRpcmVjdGl2ZSBsaXN0LgorICAg
ICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6c2V0RXZhbERpc2FibGVkRXJyb3JNZXNz
YWdlKToKKyAgICAgICAgICAgIE11dGF0b3IgZm9yIHRoZSBlcnJvciBtZXNzYWdlIHRoYXQgb3Vn
aHQgYmUgZGlzcGxheWVkIHRvIGRldmVsb3BlcnMKKyAgICAgICAgICAgIHdoZW4gJ2V2YWwnIHVz
ZWQgd2hpbGUgZGlzYWJsZWQgZm9yIGEgc3BlY2lmaWMgZGlyZWN0aXZlIGxpc3QuCisgICAgICAg
IChDU1BEaXJlY3RpdmVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6
OmNyZWF0ZSk6CisgICAgICAgICAgICBVcG9uIGNyZWF0aW9uIG9mIGEgQ1NQRGlyZWN0aXZlTGlz
dCwgc2V0IHRoZSBlcnJvciBtZXNzYWdlIGlmIHRoZQorICAgICAgICAgICAgZGlyZWN0aXZlIGxp
c3QgZGlzYWJsZXMgJ2V2YWwnLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9s
aWN5OjpkaWRSZWNlaXZlSGVhZGVyKToKKyAgICAgICAgICAgIFBhc3MgdGhlIGVycm9yIG1lc3Nh
Z2UgaW50byBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpkaXNhYmxlRXZhbC4KKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6ZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKToK
KyAgICAgICAgICAgIFB1YmxpYyBhY2Nlc3NvciBmb3IgdGhlIHBvbGljeSdzIGVycm9yIG1lc3Nh
Z2U7IHdhbGtzIHRoZSBsaXN0IG9mCisgICAgICAgICAgICBkaXJlY3RpdmUgbGlzdHMgYW5kIHJl
dHVybnMgdGhlIGZpcnN0IGVycm9yIG1lc3NhZ2UgZm91bmQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0Ojpk
aXNhYmxlRXZhbCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0Lmg6CisgICAgICAg
IChXb3JrZXJDb250ZXh0KToKKyAgICAgICAgICAgIFBpcGUgdGhlIGVycm9yIG1lc3NhZ2UgdGhy
b3VnaCB0byB0aGUgU2NyaXB0Q29udHJvbGxlciB3aGVuCisgICAgICAgICAgICBkaXNhYmxpbmcg
ZXZhbC4KKwogMjAxMi0wOS0xNCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4K
IAogICAgICAgICBSRUdSRVNTSU9OKHIxMjY3MTcpOiBJdCBtYWRlIGluc3BlY3Rvci9zdHlsZXMv
bWVkaWEtcXVlcmllcy5odG1sIGZhaWwvZmxha2V5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4IGIxMTIyMGJlYTU2MGQxOGQ0ODE2YWVkNzVjYTU4
MDgwZjdhYmJhOGYuLjI3OTFjNjVkNGEyNGJjOWJlNDEyNTA1ZGZkNzY2OTk3NzQyNzRmOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBAIC0yMDIs
NyArMjAyLDcgQEAgSlNPYmplY3QqIEV2YWxFeGVjdXRhYmxlOjpjb21waWxlSW50ZXJuYWwoRXhl
Y1N0YXRlKiBleGVjLCBKU1Njb3BlKiBzY29wZSwgSklUQ28KICAgICAgICAgbV9ldmFsQ29kZUJs
b2NrID0gbmV3Q29kZUJsb2NrLnJlbGVhc2UoKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAo
IWxleGljYWxHbG9iYWxPYmplY3QtPmV2YWxFbmFibGVkKCkpCi0gICAgICAgICAgICByZXR1cm4g
dGhyb3dFcnJvcihleGVjLCBjcmVhdGVFdmFsRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJFdmFs
IGlzIGRpc2FibGVkIikpKTsKKyAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNy
ZWF0ZUV2YWxFcnJvcihleGVjLCBsZXhpY2FsR2xvYmFsT2JqZWN0LT5ldmFsRGlzYWJsZWRFcnJv
ck1lc3NhZ2UoKSkpOwogICAgICAgICBSZWZQdHI8RXZhbE5vZGU+IGV2YWxOb2RlID0gcGFyc2U8
RXZhbE5vZGU+KGdsb2JhbERhdGEsIGxleGljYWxHbG9iYWxPYmplY3QsIG1fc291cmNlLCAwLCBJ
ZGVudGlmaWVyKCksIGlzU3RyaWN0TW9kZSgpID8gSlNQYXJzZVN0cmljdCA6IEpTUGFyc2VOb3Jt
YWwsIEV2YWxOb2RlOjppc0Z1bmN0aW9uTm9kZSA/IEpTUGFyc2VGdW5jdGlvbkNvZGUgOiBKU1Bh
cnNlUHJvZ3JhbUNvZGUsIGxleGljYWxHbG9iYWxPYmplY3QtPmRlYnVnZ2VyKCksIGV4ZWMsICZl
eGNlcHRpb24pOwogICAgICAgICBpZiAoIWV2YWxOb2RlKSB7CiAgICAgICAgICAgICBBU1NFUlQo
ZXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXggNDA1MDdkYWUxNjZiZTcxNjExN2U4ZGYxM2I5YWNj
M2E2MDM5NDQ1Yi4uNTcwNDQ0ZTNjNmVjNzVhYzE3MDUwYmViOTU1MGNmOWVmOGFmMzRlYyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1
Y3Rvci5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgQ2FsbFR5cGUgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6
Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogSlNPYmplY3QqIGNvbnN0
cnVjdEZ1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgY29uc3QgQXJnTGlzdCYgYXJncywgY29uc3QgSWRlbnRpZmllciYgZnVuY3Rpb25OYW1lLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBwb3NpdGlvbikKIHsK
ICAgICBpZiAoIWdsb2JhbE9iamVjdC0+ZXZhbEVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IoZXhlYywgY3JlYXRlRXZhbEVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiRnVuY3Rp
b24gY29uc3RydWN0b3IgaXMgZGlzYWJsZWQiKSkpOworICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cihleGVjLCBjcmVhdGVFdmFsRXJyb3IoZXhlYywgZ2xvYmFsT2JqZWN0LT5ldmFsRGlzYWJsZWRF
cnJvck1lc3NhZ2UoKSkpOwogICAgIHJldHVybiBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZh
bEVuYWJsZWRDaGVjayhleGVjLCBnbG9iYWxPYmplY3QsIGFyZ3MsIGZ1bmN0aW9uTmFtZSwgc291
cmNlVVJMLCBwb3NpdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDQwNmE2NWI1MTFhNDY3YjkyMjlkNjMyZDE2YzMyZjc5
ZTA5ZmViZmUuLjJmNDI2NjQ4YzliYzVhYThmOGUyZDU0ZGY1NzQ4ZjIzNTJmMTRiZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTU1
LDYgKzE1NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBXZWFrUmFuZG9tIG1fd2Vha1Jh
bmRvbTsKIAogICAgICAgICBib29sIG1fZXZhbEVuYWJsZWQ7CisgICAgICAgIFN0cmluZyBtX2V2
YWxEaXNhYmxlZEVycm9yTWVzc2FnZTsKICAgICAgICAgYm9vbCBtX2V4cGVyaW1lbnRzRW5hYmxl
ZDsKIAogICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBHbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSBzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlOwpAQCAtMzA0LDggKzMwNSwxMyBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBib29sIGlzRHluYW1pY1Njb3BlKGJvb2wmIHJlcXVp
cmVzRHluYW1pY0NoZWNrcykgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBzZXRFdmFsRW5hYmxlZChi
b29sIGVuYWJsZWQpIHsgbV9ldmFsRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBl
dmFsRW5hYmxlZCgpIHsgcmV0dXJuIG1fZXZhbEVuYWJsZWQ7IH0KKyAgICAgICAgYm9vbCBldmFs
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXZhbEVuYWJsZWQ7IH0KKyAgICAgICAgY29uc3Qg
U3RyaW5nJiBldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX2V2YWxE
aXNhYmxlZEVycm9yTWVzc2FnZTsgfQorICAgICAgICB2b2lkIHNldEV2YWxFbmFibGVkKGJvb2wg
ZW5hYmxlZCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoKSkKKyAgICAgICAg
eworICAgICAgICAgICAgbV9ldmFsRW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgICAgICAgICBtX2V2
YWxEaXNhYmxlZEVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZTsKKyAgICAgICAgfQogCiAgICAg
ICAgIHZvaWQgcmVzZXRQcm90b3R5cGUoSlNHbG9iYWxEYXRhJiwgSlNWYWx1ZSBwcm90b3R5cGUp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3Bw
CmluZGV4IDFmMmU5ZDM3MjcxOGMzYjYwNDMzMjU0MGQzMmNiYTgxMjUwN2ZmNDguLjQ4ZjY4Yzhh
MzI4NmY1ZDlhODJlMGYxYTA3ZWZhOGNkZDRlMjVlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0yMjIsNyArMjIyLDcgQEAgSlNE
T01XaW5kb3dTaGVsbCogU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdChET01XcmFwcGVyV29y
bGQqIHdvcmxkKQogICAgIHdpbmRvd1NoZWxsLT53aW5kb3coKS0+dXBkYXRlRG9jdW1lbnQoKTsK
IAogICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpKQotICAgICAgICB3aW5kb3dTaGVsbC0+d2lu
ZG93KCktPnNldEV2YWxFbmFibGVkKG1fZnJhbWUtPmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0
eVBvbGljeSgpLT5hbGxvd0V2YWwoMCwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpTdXBwcmVzc1Jl
cG9ydCkpOyAgIAorICAgICAgICB3aW5kb3dTaGVsbC0+d2luZG93KCktPnNldEV2YWxFbmFibGVk
KG1fZnJhbWUtPmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0V2YWwo
MCwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpTdXBwcmVzc1JlcG9ydCksIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2Uo
KSk7ICAgCiAKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkgewogICAgICAg
ICBhdHRhY2hEZWJ1Z2dlcih3aW5kb3dTaGVsbCwgcGFnZS0+ZGVidWdnZXIoKSk7CkBAIC0yNTAs
MTIgKzI1MCwxMiBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmVuYWJsZUV2YWwoKQogICAgIHdp
bmRvd1NoZWxsLT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQodHJ1ZSk7CiB9CiAKLXZvaWQgU2Ny
aXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwoKQordm9pZCBTY3JpcHRDb250cm9sbGVyOjpkaXNh
YmxlRXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKICAgICBKU0RPTVdpbmRvd1No
ZWxsKiB3aW5kb3dTaGVsbCA9IGV4aXN0aW5nV2luZG93U2hlbGwobWFpblRocmVhZE5vcm1hbFdv
cmxkKCkpOwogICAgIGlmICghd2luZG93U2hlbGwpCiAgICAgICAgIHJldHVybjsKLSAgICB3aW5k
b3dTaGVsbC0+d2luZG93KCktPnNldEV2YWxFbmFibGVkKGZhbHNlKTsKKyAgICB3aW5kb3dTaGVs
bC0+d2luZG93KCktPnNldEV2YWxFbmFibGVkKGZhbHNlLCBlcnJvck1lc3NhZ2UpOwogfQogCiBi
b29sIFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKaW5kZXggZjc2ZmRlOGZjNzJm
NjgwNWVmNDhjMDNhZmMxZDA2YTNhMTU0Y2E4Ny4uMTg3ZmFiNTJiZWYwYWQyMWNmNTRkZTUwNmE0
ZWY2NTFjZmZkYmViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENv
bnRyb2xsZXIuaApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKICAgICBXVEY6OlRleHRQb3Np
dGlvbiBldmVudEhhbmRsZXJQb3NpdGlvbigpIGNvbnN0OwogCiAgICAgdm9pZCBlbmFibGVFdmFs
KCk7Ci0gICAgdm9pZCBkaXNhYmxlRXZhbCgpOworICAgIHZvaWQgZGlzYWJsZUV2YWwoY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCiAgICAgc3RhdGljIGJvb2wgcHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtl
clNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2Vy
U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggNzRhMjRiMDhmNzM1NTU5MWMxYWU4YmRlMDM3OTNm
YmM0MTRlYTY4Ni4uNTVjMzQ3NjdiM2QzYWIzODQyNGJiYTFhZGE5OTZkYmJmZDU1M2QyOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJv
bGxlci5jcHAKQEAgLTE4OSwxMiArMTg5LDEyIEBAIGJvb2wgV29ya2VyU2NyaXB0Q29udHJvbGxl
cjo6aXNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdAogICAgIHJldHVybiBtX2V4ZWN1dGlvbkZv
cmJpZGRlbjsKIH0KIAotdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCgp
Cit2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlKQogewogICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOwogICAgIEpTTG9ja0hv
bGRlciBsb2NrKGdsb2JhbERhdGEoKSk7CiAKLSAgICBtX3dvcmtlckNvbnRleHRXcmFwcGVyLT5z
ZXRFdmFsRW5hYmxlZChmYWxzZSk7CisgICAgbV93b3JrZXJDb250ZXh0V3JhcHBlci0+c2V0RXZh
bEVuYWJsZWQoZmFsc2UsIGVycm9yTWVzc2FnZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuaAppbmRleCAzYjJhY2Q0YjY0ZDcwMzk5ZmMzNzg4YWZkOGI3Yzg2MWRmZjE2MmVjLi5h
MzEzZmIwZmUxYzUwNDUzNTI1MGNiNDNlYzcyMTM2YzY2ZTAwMzQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCkBAIC03NSw3
ICs3NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBmb3JiaWRFeGVjdXRp
b24oKTsKICAgICAgICAgYm9vbCBpc0V4ZWN1dGlvbkZvcmJpZGRlbigpIGNvbnN0OwogCi0gICAg
ICAgIHZvaWQgZGlzYWJsZUV2YWwoKTsKKyAgICAgICAgdm9pZCBkaXNhYmxlRXZhbChjb25zdCBT
dHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKICAgICAgICAgSlNDOjpKU0dsb2JhbERhdGEqIGdsb2Jh
bERhdGEoKSB7IHJldHVybiBtX2dsb2JhbERhdGEuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAyMTFiYTk0N2ExNzI3
MWZhNjNkMzk4MTdmYjY4ZWI5ZGMwOTRhMTg0Li5mYjlkNTU3ZTkyYjQ2NTA5NzgzOTBjMTMxZTA4
MzkyOTlhMzFkZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRD
b250cm9sbGVyLmNwcApAQCAtNDg1LDcgKzQ4NSw3IEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6
ZW5hYmxlRXZhbCgpCiAgICAgdjhDb250ZXh0LT5BbGxvd0NvZGVHZW5lcmF0aW9uRnJvbVN0cmlu
Z3ModHJ1ZSk7CiB9CiAKLXZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwoKQordm9p
ZCBTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIC8qIGVycm9yTWVz
c2FnZSAqLykKIHsKICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CiAgICAgdjg6Okhh
bmRsZTx2ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gd2luZG93U2hlbGwoKS0+Y29udGV4dCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDA0
MDIxNTIzOGM1MTQzZmVmODk2MTA0ZTI1ZDJlMzljNDZiNWZiMTAuLmRmZmVlMzUwM2FkYTA0Zjdm
MDJjMDQ3ZTVkMTM0ZmNmY2E5ZDhjYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHRDb250cm9sbGVyLmgKQEAgLTEyMSw3ICsxMjEsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBoYXZlSW50ZXJwcmV0ZXIoKSBjb25zdDsKIAogICAgIHZvaWQgZW5hYmxlRXZhbCgpOwotICAg
IHZvaWQgZGlzYWJsZUV2YWwoKTsKKyAgICB2b2lkIGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlKTsKIAogICAgIHN0YXRpYyBib29sIGNhbkFjY2Vzc0Zyb21DdXJyZW50T3Jp
Z2luKEZyYW1lKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggYmJkOTE1OGJlZmYxNzBlMTg1OTliNGMzMTI5
YWM2NDNhNTJiNTU1MS4uNzAyMDhlMWZlZTQwZjYwN2QzM2RiM2UzZGI3Y2VlYTA4MmY1OGYxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29u
dHJvbGxlci5jcHAKQEAgLTEzMiw3ICsxMzIsNyBAQCBib29sIFdvcmtlclNjcmlwdENvbnRyb2xs
ZXI6OmlzRXhlY3V0aW9uRm9yYmlkZGVuKCkgY29uc3QKICAgICByZXR1cm4gbV9leGVjdXRpb25G
b3JiaWRkZW47CiB9CiAKLXZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwo
KQordm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcm
IC8qIGVycm9yTWVzc2FnZSAqLykKIHsKICAgICBtX3Byb3h5LT5zZXRFdmFsQWxsb3dlZChmYWxz
ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3Jp
cHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRD
b250cm9sbGVyLmgKaW5kZXggNjFlZDdhYmMxMWM5ZDMzYmE2YjY3YjkxNmM3YTIxNjc5OWRhNzIz
Mi4uNjhjZTg5YWFlMDdmZjM4NjU5MGJhZjhiOTk3ODQ2NjI4NjA4N2MwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaApAQCAt
NzMsNyArNzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZm9yYmlkRXhl
Y3V0aW9uKCk7CiAgICAgICAgIGJvb2wgaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdDsKIAot
ICAgICAgICB2b2lkIGRpc2FibGVFdmFsKCk7CisgICAgICAgIHZvaWQgZGlzYWJsZUV2YWwoY29u
c3QgU3RyaW5nJik7CiAKICAgICAgICAgLy8gUmV0dXJucyBXb3JrZXJTY3JpcHRDb250cm9sbGVy
IGZvciB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBjb250ZXh0LiAwIHdpbGwgYmUgcmV0dXJuZWQg
aWYgdGhlIGN1cnJlbnQgZXhlY3V0aW5nIGNvbnRleHQgaXMgbm90IHRoZSB3b3JrZXIgY29udGV4
dC4KICAgICAgICAgc3RhdGljIFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIGNvbnRyb2xsZXJGb3JD
b250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAzYWM1ZDllYzAyMzcwNzI5YjVl
OTA5NWUwNzg2M2YyNWUyYWEzOGVlLi45Y2JkNmMyYTliMTFjZjdhYzkzMjgzZDQ0NzgwOTJmMTE2
OWUwYWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI4MjEsMTIgKzI4MjEsMTIgQEAg
U3RyaW5nIERvY3VtZW50Ojp1c2VyQWdlbnQoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogICAgIHJl
dHVybiBmcmFtZSgpID8gZnJhbWUoKS0+bG9hZGVyKCktPnVzZXJBZ2VudCh1cmwpIDogU3RyaW5n
KCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OmRpc2FibGVFdmFsKCkKK3ZvaWQgRG9jdW1lbnQ6OmRp
c2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewogICAgIGlmICghZnJhbWUo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZnJhbWUoKS0+c2NyaXB0KCktPmRpc2FibGVFdmFs
KCk7CisgICAgZnJhbWUoKS0+c2NyaXB0KCktPmRpc2FibGVFdmFsKGVycm9yTWVzc2FnZSk7CiB9
CiAKIGJvb2wgRG9jdW1lbnQ6OmNhbk5hdmlnYXRlKEZyYW1lKiB0YXJnZXRGcmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggYWNiYTA0YzAwNTQwYWM5YTk1ZmIwYmFlMzdkZDliYjgzYTlkZDEx
MC4uM2MxZjU3NGVlMmIxZjU3MGYzMDY0NDVhNmFjNzI5NGFjOWM5Y2JlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTY0NCw3ICs2NDQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmlu
ZyB1c2VyQWdlbnQoY29uc3QgS1VSTCYpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIGRpc2Fi
bGVFdmFsKCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlKTsKIAogICAgIGJvb2wgY2FuTmF2aWdhdGUoRnJhbWUqIHRhcmdldEZyYW1lKTsK
ICAgICBGcmFtZSogZmluZFVuc2FmZVBhcmVudFNjcm9sbFByb3BhZ2F0aW9uQm91bmRhcnkoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IGU3NDY4
MDM4YzZhMzg1Yjg4MTZmOWZjMWI0NzM1MDZhYzI2Y2ExMTAuLjhhZDNlOWYyNDBhODNiMTZmNDI5
YmFlMDE4ZDg3MjA4NGI0Mzc0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0
cmluZyB1c2VyQWdlbnQoY29uc3QgS1VSTCYpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgdm9p
ZCBkaXNhYmxlRXZhbCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwoY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UpID0gMDsKIAogICAgIGJvb2wgc2FuaXRpemVTY3JpcHRFcnJv
cihTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50JiBsaW5lTnVtYmVyLCBTdHJpbmcmIHNvdXJjZVVS
TCk7CiAgICAgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Us
IGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNl
Y3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9s
aWN5LmNwcAppbmRleCAxNDIyMTg2NWM2NzU4ZDg0NjQ0MGJkY2VjOTg4MTgwYzI0NmNmYTE0Li40
YjhkMGJkYWUxODU0Mjc1MDA5ZDg0MDMzNDA3YjBiZDA4ZjBhMzVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC03MjYsNiArNzI2LDcgQEAg
cHVibGljOgogICAgIGJvb2wgYWxsb3dGb3JtQWN0aW9uKGNvbnN0IEtVUkwmLCBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OlJlcG9ydGluZ1N0YXR1cykgY29uc3Q7CiAKICAgICB2b2lkIGdhdGhlclJl
cG9ydFVSSXMoRE9NU3RyaW5nTGlzdCYpIGNvbnN0OworICAgIGNvbnN0IFN0cmluZyYgZXZhbERp
c2FibGVkRXJyb3JNZXNzYWdlKCkgeyByZXR1cm4gbV9ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2U7
IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBDU1BEaXJlY3RpdmVMaXN0KENvbnRlbnRTZWN1
cml0eVBvbGljeSopOwpAQCAtNzUxLDYgKzc1Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjaGVj
a1NvdXJjZShTb3VyY2VMaXN0RGlyZWN0aXZlKiwgY29uc3QgS1VSTCYpIGNvbnN0OwogICAgIGJv
b2wgY2hlY2tNZWRpYVR5cGUoTWVkaWFMaXN0RGlyZWN0aXZlKiwgY29uc3QgU3RyaW5nJiB0eXBl
LCBjb25zdCBTdHJpbmcmIHR5cGVBdHRyaWJ1dGUpIGNvbnN0OwogCisgICAgdm9pZCBzZXRFdmFs
RGlzYWJsZWRFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsgbV9ldmFs
RGlzYWJsZWRFcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2U7IH0KKwogICAgIGJvb2wgY2hlY2tF
dmFsQW5kUmVwb3J0VmlvbGF0aW9uKFNvdXJjZUxpc3REaXJlY3RpdmUqLCBjb25zdCBTdHJpbmcm
IGNvbnNvbGVNZXNzYWdlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwgPSBTdHJpbmcoKSwgY29u
c3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSA9IFdURjo6T3JkaW5hbE51bWJlcjo6
YmVmb3JlRmlyc3QoKSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCkgY29uc3Q7CiAg
ICAgYm9vbCBjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihTb3VyY2VMaXN0RGlyZWN0aXZl
KiwgY29uc3QgU3RyaW5nJiBjb25zb2xlTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJM
LCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdDsKICAgICBib29s
IGNoZWNrTm9uY2VBbmRSZXBvcnRWaW9sYXRpb24oTm9uY2VEaXJlY3RpdmUqLCBjb25zdCBTdHJp
bmcmIG5vbmNlLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBTdHJpbmcmIGNv
bnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUpIGNvbnN0OwpA
QCAtNzYwLDYgKzc2Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBkZW55SWZFbmZvcmNpbmdQb2xp
Y3koKSBjb25zdCB7IHJldHVybiBtX3JlcG9ydE9ubHk7IH0KIAogICAgIENvbnRlbnRTZWN1cml0
eVBvbGljeSogbV9wb2xpY3k7CisKICAgICBTdHJpbmcgbV9oZWFkZXI7CiAKICAgICBib29sIG1f
cmVwb3J0T25seTsKQEAgLTc3OSw2ICs3ODMsOCBAQCBwcml2YXRlOgogICAgIE93blB0cjxTb3Vy
Y2VMaXN0RGlyZWN0aXZlPiBtX3N0eWxlU3JjOwogCiAgICAgVmVjdG9yPEtVUkw+IG1fcmVwb3J0
VVJJczsKKworICAgIFN0cmluZyBtX2V2YWxEaXNhYmxlZEVycm9yTWVzc2FnZTsKIH07CiAKIENT
UERpcmVjdGl2ZUxpc3Q6OkNTUERpcmVjdGl2ZUxpc3QoQ29udGVudFNlY3VyaXR5UG9saWN5KiBw
b2xpY3kpCkBAIC04MDMsNiArODA5LDExIEBAIFBhc3NPd25QdHI8Q1NQRGlyZWN0aXZlTGlzdD4g
Q1NQRGlyZWN0aXZlTGlzdDo6Y3JlYXRlKENvbnRlbnRTZWN1cml0eVBvbGljeSogcG9sCiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIAorICAgIGlmICghZGlyZWN0aXZlcy0+Y2hlY2tFdmFsKGRpcmVj
dGl2ZXMtPm9wZXJhdGl2ZURpcmVjdGl2ZShkaXJlY3RpdmVzLT5tX3NjcmlwdFNyYy5nZXQoKSkp
KSB7CisgICAgICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiUmVmdXNlZCB0byBldmFs
dWF0ZSBhIHN0cmluZyBhcyBKYXZhU2NyaXB0IGJlY2F1c2UgJ3Vuc2FmZS1ldmFsJyBpcyBub3Qg
YW4gYWxsb3dlZCBzb3VyY2Ugb2Ygc2NyaXB0IGluIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1
cml0eSBQb2xpY3kgZGlyZWN0aXZlOiBcIiIsIGRpcmVjdGl2ZXMtPm9wZXJhdGl2ZURpcmVjdGl2
ZShkaXJlY3RpdmVzLT5tX3NjcmlwdFNyYy5nZXQoKSktPnRleHQoKSwgIlwiLlxuIik7CisgICAg
ICAgIGRpcmVjdGl2ZXMtPnNldEV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZShtZXNzYWdlKTsKKyAg
ICB9CisKICAgICByZXR1cm4gZGlyZWN0aXZlcy5yZWxlYXNlKCk7CiB9CiAKQEAgLTEyNjEsNyAr
MTI3Miw3IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpkaWRSZWNlaXZlSGVhZGVyKGNv
bnN0IFN0cmluZyYgaGVhZGVyLCBIZWFkZXJUeXBlIHR5CiAgICAgfQogCiAgICAgaWYgKCFhbGxv
d0V2YWwoMCwgU3VwcHJlc3NSZXBvcnQpKQotICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQtPmRpc2FibGVFdmFsKCk7CisgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGlz
YWJsZUV2YWwoZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKCkpOwogfQogCiB2b2lkIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6c2V0T3ZlcnJpZGVBbGxvd0lubGluZVN0eWxlKGJvb2wgdmFsdWUpCkBA
IC0xMzQ5LDYgKzEzNjAsMTUgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93RXZh
bChQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBDb24KICAgICByZXR1cm4g
aXNBbGxvd2VkQnlBbGxXaXRoQ2FsbFN0YWNrPCZDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0V2YWw+
KG1fcG9saWNpZXMsIGNhbGxTdGFjaywgcmVwb3J0aW5nU3RhdHVzKTsKIH0KIAorU3RyaW5nIENv
bnRlbnRTZWN1cml0eVBvbGljeTo6ZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKCkgY29uc3QKK3sK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fcG9saWNpZXMuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgaWYgKCFtX3BvbGljaWVzW2ldLT5hbGxvd0V2YWwoMCwgU3VwcHJlc3NSZXBvcnQpKQor
ICAgICAgICAgICAgcmV0dXJuIG1fcG9saWNpZXNbaV0tPmV2YWxEaXNhYmxlZEVycm9yTWVzc2Fn
ZSgpOworICAgIH0KKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKIGJvb2wgQ29udGVudFNlY3Vy
aXR5UG9saWN5OjphbGxvd1NjcmlwdE5vbmNlKGNvbnN0IFN0cmluZyYgbm9uY2UsIGNvbnN0IFN0
cmluZyYgY29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSwg
Y29uc3QgS1VSTCYgdXJsKSBjb25zdAogewogICAgIHJldHVybiBpc0FsbG93ZWRCeUFsbFdpdGhO
b25jZTwmQ1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHROb25jZT4obV9wb2xpY2llcywgbm9u
Y2UsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lLCB1cmwpOwpAQCAtMTM1Nyw3ICsxMzc3LDcgQEAg
Ym9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93U2NyaXB0Tm9uY2UoY29uc3QgU3RyaW5n
JiBub25jZSwgY29uc3QgU3RyaW5nJgogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93
UGx1Z2luVHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdHlwZUF0dHJpYnV0
ZSwgY29uc3QgS1VSTCYgdXJsLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlJlcG9ydGluZ1N0YXR1
cyByZXBvcnRpbmdTdGF0dXMpIGNvbnN0CiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X3BvbGljaWVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmICghbV9wb2xpY2llc1tpXS5nZXQo
KS0+YWxsb3dQbHVnaW5UeXBlKHR5cGUsIHR5cGVBdHRyaWJ1dGUsIHVybCwgcmVwb3J0aW5nU3Rh
dHVzKSkKKyAgICAgICAgaWYgKCFtX3BvbGljaWVzW2ldLT5hbGxvd1BsdWdpblR5cGUodHlwZSwg
dHlwZUF0dHJpYnV0ZSwgdXJsLCByZXBvcnRpbmdTdGF0dXMpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE0MTYsNyArMTQzNiw3IEBAIGJv
b2wgQ29udGVudFNlY3VyaXR5UG9saWN5Ojppc0FjdGl2ZSgpIGNvbnN0CiB2b2lkIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6Z2F0aGVyUmVwb3J0VVJJcyhET01TdHJpbmdMaXN0JiBsaXN0KSBjb25z
dAogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wb2xpY2llcy5zaXplKCk7ICsraSkK
LSAgICAgICAgbV9wb2xpY2llc1tpXS5nZXQoKS0+Z2F0aGVyUmVwb3J0VVJJcyhsaXN0KTsKKyAg
ICAgICAgbV9wb2xpY2llc1tpXS0+Z2F0aGVyUmVwb3J0VVJJcyhsaXN0KTsKIH0KIAogU2VjdXJp
dHlPcmlnaW4qIENvbnRlbnRTZWN1cml0eVBvbGljeTo6c2VjdXJpdHlPcmlnaW4oKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKaW5kZXggZGEzZDk3
OGNhYTYwOTJlMDdjNWE4ZTQ4YTZjMjE0MGZlYWEyM2U3OC4uNTAxMGE3N2Q1NTg3NDhjNmI3MTZk
NTNjMzMxNjdlMTE3ZTZjZTEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250
ZW50U2VjdXJpdHlQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1
cml0eVBvbGljeS5oCkBAIC0xMTIsNiArMTEyLDcgQEAgcHVibGljOgogICAgIEtVUkwgY29tcGxl
dGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5
T3JpZ2luKCkgY29uc3Q7CiAgICAgdm9pZCBlbmZvcmNlU2FuZGJveEZsYWdzKFNhbmRib3hGbGFn
cykgY29uc3Q7CisgICAgU3RyaW5nIGV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpIGNvbnN0Owog
CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENvbnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcApp
bmRleCBkN2VhZjVkYjQ2ZWU4Y2E3ODBlYjc2MWM4ZjQyYjQ3NmM5MDU1NzQ4Li5jMDQwYzM5NjY5
NGI2MTY0NTU3MzA4Y2RlNzEyMmQ2MGYxMzBkNGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyQ29udGV4dC5jcHAKQEAgLTE0OCw5ICsxNDgsOSBAQCBTdHJpbmcgV29ya2VyQ29udGV4
dDo6dXNlckFnZW50KGNvbnN0IEtVUkwmKSBjb25zdAogICAgIHJldHVybiBtX3VzZXJBZ2VudDsK
IH0KIAotdm9pZCBXb3JrZXJDb250ZXh0OjpkaXNhYmxlRXZhbCgpCit2b2lkIFdvcmtlckNvbnRl
eHQ6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewotICAgIG1fc2Ny
aXB0LT5kaXNhYmxlRXZhbCgpOworICAgIG1fc2NyaXB0LT5kaXNhYmxlRXZhbChlcnJvck1lc3Nh
Z2UpOwogfQogCiBXb3JrZXJMb2NhdGlvbiogV29ya2VyQ29udGV4dDo6bG9jYXRpb24oKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAppbmRleCBhNmQ2MGM4MTQyOWI2
ZTQyZmQyYjk5MTI0N2U3NWExZTMwMDU1OTkyLi45ODQxYTVlMWQyNTZiNWJhZmIzOTcwZGNmZjMw
NGExM2RlZGNiMjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaApAQCAt
NzIsNyArNzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IEdyb3VwU2V0
dGluZ3MqIGdyb3VwU2V0dGluZ3MoKSB7IHJldHVybiBtX2dyb3VwU2V0dGluZ3MuZ2V0KCk7IH0K
ICAgICAgICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KGNvbnN0IEtVUkwmKSBjb25zdDsKIAot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwoKTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAogICAgICAgICBXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyKiBzY3JpcHQoKSB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsgfQog
ICAgICAgICB2b2lkIGNsZWFyU2NyaXB0KCkgeyBtX3NjcmlwdC5jbGVhcigpOyB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZDlmMmFiYTYwNzQ5YjMyODdhM2IxYWRhNzMyODY0NmNmNDRlMGQzNS4uNGViY2JlNjM5NzJiODJm
ODZmM2QyNDBlZTc2NzNlMmMwMjcxZTYzMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA5
LTE0ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSlNDIHNob3Vs
ZCB0aHJvdyBhIG1vcmUgZGVzY3JpcHRpdmUgZXhjZXB0aW9uIHdoZW4gYmxvY2tpbmcgJ2V2YWwn
IHZpYSBDU1AuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NDMzMQorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9ja2Vk
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9ldmFsLWJsb2NrZWQtaW4tYWJvdXQtYmxhbmstaWZyYW1lLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9m
dW5jdGlvbi1jb25zdHJ1Y3Rvci1ibG9ja2VkLWV4cGVjdGVkLnR4dDoKKwogMjAxMi0wOS0xNCAg
T2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENvbXBsZXRlIGZvcmdv
dHRlbiByZWJhc2VsaW5lLiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk2NzUxLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2V2YWwtYmxvY2tl
ZC1leHBlY3RlZC50eHQKaW5kZXggNjk4NTU4YTg5Yjg3NjIyOWVkYTkyYTNjNWE3OWFlMTZmZTQz
Njg5ZS4uMzY4MTc5ZDg5Y2QxOWI2YzI4OGYyN2M1NGM0YzYxNjk1OTUxYjI3YiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
ZXZhbC1ibG9ja2VkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBA
IC0xLDMgKzEsNSBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBFdmFsRXJyb3I6IEV2YWwg
aXMgZGlzYWJsZWQKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxNTogRXZhbEVycm9yOiBFdmFsIGlz
IGRpc2FibGVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IEV2YWxFcnJvcjogUmVmdXNlZCB0
byBldmFsdWF0ZSBhIHN0cmluZyBhcyBKYXZhU2NyaXB0IGJlY2F1c2UgJ3Vuc2FmZS1ldmFsJyBp
cyBub3QgYW4gYWxsb3dlZCBzb3VyY2Ugb2Ygc2NyaXB0IGluIHRoZSBmb2xsb3dpbmcgQ29udGVu
dCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LXNyYyAndW5zYWZlLWlubGluZSci
LgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU6IEV2YWxFcnJvcjogUmVmdXNlZCB0byBldmFs
dWF0ZSBhIHN0cmluZyBhcyBKYXZhU2NyaXB0IGJlY2F1c2UgJ3Vuc2FmZS1ldmFsJyBpcyBub3Qg
YW4gYWxsb3dlZCBzb3VyY2Ugb2Ygc2NyaXB0IGluIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1
cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LXNyYyAndW5zYWZlLWlubGluZSciLgorCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L2V2YWwtYmxvY2tlZC1pbi1hYm91dC1ibGFuay1pZnJhbWUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
ZXZhbC1ibG9ja2VkLWluLWFib3V0LWJsYW5rLWlmcmFtZS1leHBlY3RlZC50eHQKaW5kZXggYjgw
NzNiNzg2ZDNkN2Y5YTJhYzc3NmM4Nzg1NzMyYzJmZGZmODcxZS4uOWNjNTY3ZDdiNmM0ZWYxYTc4
MGExNjZlOGYxNTdlMzg5ZDA5OTZkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9ja2VkLWluLWFib3V0LWJs
YW5rLWlmcmFtZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9ja2VkLWluLWFib3V0LWJsYW5rLWlm
cmFtZS1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0IEBACiBBTEVSVDogL1BBU1MvCi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTogRXZhbEVycm9yOiBFdmFsIGlzIGRpc2FibGVkCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTogRXZhbEVycm9yOiBSZWZ1c2VkIHRvIGV2YWx1YXRlIGEgc3RyaW5nIGFz
IEphdmFTY3JpcHQgYmVjYXVzZSAndW5zYWZlLWV2YWwnIGlzIG5vdCBhbiBhbGxvd2VkIHNvdXJj
ZSBvZiBzY3JpcHQgaW4gdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBkaXJl
Y3RpdmU6ICJzY3JpcHQtc3JjICd1bnNhZmUtaW5saW5lJyIuCisKICBFdmFsIHNob3VsZCBiZSBi
bG9ja2VkIGluIHRoZSBpZnJhbWUsIGJ1dCBpbmxpbmUgc2NyaXB0IHNob3VsZCBiZSBhbGxvd2Vk
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvZnVuY3Rpb24tY29uc3RydWN0b3ItYmxvY2tlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9mdW5j
dGlvbi1jb25zdHJ1Y3Rvci1ibG9ja2VkLWV4cGVjdGVkLnR4dAppbmRleCA4Y2M4M2NhMWZiMWUy
YTA0OWNmMTQ0NzdlNDVmNjQxNWY0Zjc2MDUzLi41NTFkOTdhMDAzNTRiNzA4YTk4NGJhYzBjOTVk
NDA2NjU2YWI1YmUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9mdW5jdGlvbi1jb25zdHJ1Y3Rvci1ibG9ja2VkLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9mdW5jdGlvbi1jb25zdHJ1Y3Rvci1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAt
MSwyICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMjogRXZhbEVycm9yOiBGdW5jdGlv
biBjb25zdHJ1Y3RvciBpcyBkaXNhYmxlZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBFdmFs
RXJyb3I6IFJlZnVzZWQgdG8gZXZhbHVhdGUgYSBzdHJpbmcgYXMgSmF2YVNjcmlwdCBiZWNhdXNl
ICd1bnNhZmUtZXZhbCcgaXMgbm90IGFuIGFsbG93ZWQgc291cmNlIG9mIHNjcmlwdCBpbiB0aGUg
Zm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlwdC1zcmMg
J3Vuc2FmZS1pbmxpbmUnIi4KKwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164229</attachid>
            <date>2012-09-14 14:44:51 -0700</date>
            <delta_ts>2012-09-14 16:32:58 -0700</delta_ts>
            <desc>rebasing.</desc>
            <filename>bug-94331-20120914234420.patch</filename>
            <type>text/plain</type>
            <size>27597</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NGU3MmI1NTMxYTZjZjlhNjZiNGZhY2QzNzc3NWQwNzc3YmMzMTU2Li5iODI2ZjRmYzU4OTg5YTE1
MDJhZTQ1ZDJkYWNlZGY5MGY1N2YzMWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAxMi0wOS0xNCAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEpTQyBzaG91bGQgdGhyb3cgYSBtb3JlIGRlc2NyaXB0aXZlIGV4Y2VwdGlvbiB3
aGVuIGJsb2NraW5nICdldmFsJyB2aWEgQ1NQLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJl
eSBHYXJlbi4KKworICAgICAgICBVbmxlc3MgZXhwbGljaXRseSB3aGl0ZWxpc3RlZCwgdGhlICdz
Y3JpcHQtc3JjJyBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBkaXJlY3RpdmUgYmxv
Y2tzICdldmFsJyBhbmQgJ2V2YWwnLWxpa2UgY29uc3RydWN0cyBzdWNoIGFzCisgICAgICAgICdu
ZXcgRnVuY3Rpb24oKScuIFdoZW4gJ2V2YWwnIGlzIGVuY291bnRlcmVkIGluIGNvZGUsIGFuICdF
dmFsRXJyb3InIGlzCisgICAgICAgIHRocm93biwgYnV0IHRoZSBhc3NvY2lhdGVkIG1lc3NhZ2Ug
aXMgcG9vcjogIkV2YWwgaXMgZGlzYWJsZWQiIGRvZXNuJ3QKKyAgICAgICAgZ2l2ZSBkZXZlbG9w
ZXJzIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCB3aHkgdGhlaXIgY29kZSBpc24ndCBiZWhhdmlu
ZworICAgICAgICBhcyBleHBlY3RlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYW4gJ2Vy
cm9yTWVzc2FnZScgcGFyYW1ldGVyIHRvIHRoZSBKYXZhU2NyaXB0Q29yZSBtZXRob2QKKyAgICAg
ICAgdXNlZCB0byBkaXNhYmxlICdldmFsJzsgQ29udGVudFNlY3VyaXR5UG9saWN5IGhhcyB0aGUg
b3Bwb3J0dW5pdHkgdG8KKyAgICAgICAgcGFzcyBpbiBhIG1vcmUgZGV0YWlsZWQgYW5kIGRlc2Ny
aXB0aXZlIGVycm9yIHRoYXQgY29udGFpbnMgbW9yZSBjb250ZXh0CisgICAgICAgIGZvciB0aGUg
ZGV2ZWxvcGVyLgorCisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAg
KEpTQzo6RXZhbEV4ZWN1dGFibGU6OmNvbXBpbGVJbnRlcm5hbCk6CisgICAgICAgICAgICBEcm9w
IHRoZSBoYXJkLWNvZGVkICJFdmFsIGlzIGRpc2FibGVkIiBlcnJvciBtZXNzYWdlIGluIGZhdm9y
IG9mCisgICAgICAgICAgICByZWFkaW5nIHRoZSBlcnJvciBtZXNzYWdlIG9mZiB0aGUgZ2xvYmFs
IG9iamVjdC4KKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpnZXRDYWxsRGF0YSk6CisgICAgICAgICAg
ICBEcm9wIHRoZSBoYXJkLWNvZGVkICJGdW5jdGlvbiBjb25zdHJ1Y3RvciBpcyBkaXNhYmxlZCIg
ZXJyb3IgbWVzc2FnZQorICAgICAgICAgICAgaW4gZmF2b3Igb2YgcmVhZGluZyB0aGUgZXJyb3Ig
bWVzc2FnZSBvZmYgdGhlIGdsb2JhbCBvYmplY3QuCisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oOgorICAgICAgICAoSlNHbG9iYWxPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0ds
b2JhbE9iamVjdDo6ZXZhbEVuYWJsZWQpOgorICAgICAgICAgICAgTWFraW5nIHRoaXMgYWNjZXNz
b3IgbWV0aG9kIGNvbnN0LgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6ZXZhbERpc2Fi
bGVkRXJyb3JNZXNzYWdlKToKKyAgICAgICAgICAgIEFjY2Vzc29yIGZvciB0aGUgZXJyb3IgbWVz
c2FnZSBzZXQgdmlhICdzZXRFdmFsRGlzYWJsZWQnLgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6c2V0RXZhbEVuYWJsZWQpOgorICAgICAgICAgICAgQWRkaW5nIGFuICdlcnJvck1lc3Nh
Z2UnIHBhcmFtZXRlciB3aGljaCBpcyBzdG9yZWQgb24gdGhlIGdsb2JhbAorICAgICAgICAgICAg
b2JqZWN0LCBhbmQgdXNlZCB3aGVuIGV4Y2VwdGlvbnMgYXJlIHRocm93bi4KKwogMjAxMi0wOS0x
NCAgVG9yIEFybmUgVmVzdGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKICAgICAg
ICAgW1F0XSBNYWtlIGZvcmNlX3N0YXRpY19saWJzX2FzX3NoYXJlZCB3b3JrIG9uIE1hYyBPUwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGZiYjMwZjJhNjhkYzI5MTlhM2E2NDljZTMzOGM4ZTdmMzI2YWEwMWYuLmY3
NGFjNzM1ODY1ODExMmNhM2I4YWQ2MGE2MzExODk2MmNjYmVhNDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3OSBAQAorMjAxMi0wOS0xNCAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEpTQyBzaG91bGQgdGhyb3cgYSBtb3JlIGRlc2NyaXB0aXZlIGV4Y2VwdGlvbiB3
aGVuIGJsb2NraW5nICdldmFsJyB2aWEgQ1NQLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQzMzEKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJl
eSBHYXJlbi4KKworICAgICAgICBVbmxlc3MgZXhwbGljaXRseSB3aGl0ZWxpc3RlZCwgdGhlICdz
Y3JpcHQtc3JjJyBDb250ZW50IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBkaXJlY3RpdmUgYmxv
Y2tzICdldmFsJyBhbmQgJ2V2YWwnLWxpa2UgY29uc3RydWN0cyBzdWNoIGFzCisgICAgICAgICdu
ZXcgRnVuY3Rpb24oKScuIFdoZW4gJ2V2YWwnIGlzIGVuY291bnRlcmVkIGluIGNvZGUsIGFuICdF
dmFsRXJyb3InIGlzCisgICAgICAgIHRocm93biwgYnV0IHRoZSBhc3NvY2lhdGVkIG1lc3NhZ2Ug
aXMgcG9vcjogIkV2YWwgaXMgZGlzYWJsZWQiIGRvZXNuJ3QKKyAgICAgICAgZ2l2ZSBkZXZlbG9w
ZXJzIGVub3VnaCBpbmZvcm1hdGlvbiBhYm91dCB3aHkgdGhlaXIgY29kZSBpc24ndCBiZWhhdmlu
ZworICAgICAgICBhcyBleHBlY3RlZC4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYW4gJ2Vy
cm9yTWVzc2FnZScgcGFyYW1ldGVyIHRvIHRoZSBKYXZhU2NyaXB0Q29yZSBtZXRob2QKKyAgICAg
ICAgdXNlZCB0byBkaXNhYmxlICdldmFsJzsgQ29udGVudFNlY3VyaXR5UG9saWN5IGhhcyB0aGUg
b3Bwb3J0dW5pdHkgdG8KKyAgICAgICAgcGFzcyBpbiBhIG1vcmUgZGV0YWlsZWQgYW5kIGRlc2Ny
aXB0aXZlIGVycm9yIHRoYXQgY29udGFpbnMgbW9yZSBjb250ZXh0CisgICAgICAgIGZvciB0aGUg
ZGV2ZWxvcGVyLgorCisgICAgICAgIFRoZSBuZXcgZXJyb3IgbWVzc2FnZSBpcyB0ZXN0ZWQgYnkg
YWRqdXN0aW5nIGV4aXN0aW5nIHRlc3RzOyBub3RoaW5nIG5ldworICAgICAgICBpcyByZXF1aXJl
ZC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCk6CisgICAgICAgICAgICBS
ZWFkIHRoZSBlcnJvciBtZXNzYWdlIG9mZiB0aGUgZG9jdW1lbnQncyBDb250ZW50U2VjdXJpdHlQ
b2xpY3kuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCk6
CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoU2Ny
aXB0Q29udHJvbGxlcik6CisgICAgICAgICAgICBQaXBlIHRoZSBlcnJvciBtZXNzYWdlIHRocm91
Z2ggdG8gSlNHbG9iYWxPYmplY3Qgd2hlbiBkaXNhYmxpbmcgZXZhbAorICAgICAgICAqIGJpbmRp
bmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdvcmtlclNjcmlwdENvbnRyb2xs
ZXIpOgorICAgICAgICAgICAgUGlwZSB0aGUgZXJyb3IgbWVzc2FnZSB0aHJvdWdoIHRvIEpTR2xv
YmFsT2JqZWN0IHdoZW4gZGlzYWJsaW5nIGV2YWwKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3Jp
cHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmRp
c2FibGVFdmFsKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmg6Cisg
ICAgICAgIChTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRy
b2xsZXI6OmRpc2FibGVFdmFsKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRD
b250cm9sbGVyLmg6CisgICAgICAgIChXb3JrZXJTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAg
ICAgIFBsYWNlaG9sZGVyIGZvciBWOCBwaXBpbmcgdG8gYmUgYnVpbHQgaW4gd2Viay5pdC85NDMz
Mi4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OmRpc2FibGVFdmFsKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERv
Y3VtZW50KToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAg
ICAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgICAgICBQaXBlIHRoZSBlcnJvciBt
ZXNzYWdlIHRocm91Z2ggdG8gdGhlIFNjcmlwdENvbnRyb2xsZXIgd2hlbgorICAgICAgICAgICAg
ZGlzYWJsaW5nIGV2YWwuCisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6ZXZhbERpc2FibGVkRXJyb3JN
ZXNzYWdlKToKKyAgICAgICAgICAgIEFjY2Vzc29yIGZvciB0aGUgZXJyb3IgbWVzc2FnZSB0aGF0
IG91Z2h0IGJlIGRpc3BsYXllZCB0byBkZXZlbG9wZXJzCisgICAgICAgICAgICB3aGVuICdldmFs
JyB1c2VkIHdoaWxlIGRpc2FibGVkIGZvciBhIHNwZWNpZmljIGRpcmVjdGl2ZSBsaXN0LgorICAg
ICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZlTGlzdDo6c2V0RXZhbERpc2FibGVkRXJyb3JNZXNz
YWdlKToKKyAgICAgICAgICAgIE11dGF0b3IgZm9yIHRoZSBlcnJvciBtZXNzYWdlIHRoYXQgb3Vn
aHQgYmUgZGlzcGxheWVkIHRvIGRldmVsb3BlcnMKKyAgICAgICAgICAgIHdoZW4gJ2V2YWwnIHVz
ZWQgd2hpbGUgZGlzYWJsZWQgZm9yIGEgc3BlY2lmaWMgZGlyZWN0aXZlIGxpc3QuCisgICAgICAg
IChDU1BEaXJlY3RpdmVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxpc3Q6
OmNyZWF0ZSk6CisgICAgICAgICAgICBVcG9uIGNyZWF0aW9uIG9mIGEgQ1NQRGlyZWN0aXZlTGlz
dCwgc2V0IHRoZSBlcnJvciBtZXNzYWdlIGlmIHRoZQorICAgICAgICAgICAgZGlyZWN0aXZlIGxp
c3QgZGlzYWJsZXMgJ2V2YWwnLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9s
aWN5OjpkaWRSZWNlaXZlSGVhZGVyKToKKyAgICAgICAgICAgIFBhc3MgdGhlIGVycm9yIG1lc3Nh
Z2UgaW50byBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpkaXNhYmxlRXZhbC4KKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6ZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKToK
KyAgICAgICAgICAgIFB1YmxpYyBhY2Nlc3NvciBmb3IgdGhlIHBvbGljeSdzIGVycm9yIG1lc3Nh
Z2U7IHdhbGtzIHRoZSBsaXN0IG9mCisgICAgICAgICAgICBkaXJlY3RpdmUgbGlzdHMgYW5kIHJl
dHVybnMgdGhlIGZpcnN0IGVycm9yIG1lc3NhZ2UgZm91bmQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0Ojpk
aXNhYmxlRXZhbCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0Lmg6CisgICAgICAg
IChXb3JrZXJDb250ZXh0KToKKyAgICAgICAgICAgIFBpcGUgdGhlIGVycm9yIG1lc3NhZ2UgdGhy
b3VnaCB0byB0aGUgU2NyaXB0Q29udHJvbGxlciB3aGVuCisgICAgICAgICAgICBkaXNhYmxpbmcg
ZXZhbC4KKwogMjAxMi0wOS0xNCAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBJbWFnZUxvYWRlciBjYW4ndCBiZSBjbGVhcmVkIHdoZW4gdmlkZW8gZWxlbWVudCBw
b3N0ZXIgYXR0cmlidXRlIHJlbW92ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0V4ZWN1dGFibGUuY3BwCmluZGV4IGIxMTIyMGJlYTU2MGQxOGQ0ODE2YWVkNzVjYTU4MDgwZjdh
YmJhOGYuLjI3OTFjNjVkNGEyNGJjOWJlNDEyNTA1ZGZkNzY2OTk3NzQyNzRmOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBAIC0yMDIsNyArMjAy
LDcgQEAgSlNPYmplY3QqIEV2YWxFeGVjdXRhYmxlOjpjb21waWxlSW50ZXJuYWwoRXhlY1N0YXRl
KiBleGVjLCBKU1Njb3BlKiBzY29wZSwgSklUQ28KICAgICAgICAgbV9ldmFsQ29kZUJsb2NrID0g
bmV3Q29kZUJsb2NrLnJlbGVhc2UoKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoIWxleGlj
YWxHbG9iYWxPYmplY3QtPmV2YWxFbmFibGVkKCkpCi0gICAgICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcihleGVjLCBjcmVhdGVFdmFsRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJFdmFsIGlzIGRp
c2FibGVkIikpKTsKKyAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUV2
YWxFcnJvcihleGVjLCBsZXhpY2FsR2xvYmFsT2JqZWN0LT5ldmFsRGlzYWJsZWRFcnJvck1lc3Nh
Z2UoKSkpOwogICAgICAgICBSZWZQdHI8RXZhbE5vZGU+IGV2YWxOb2RlID0gcGFyc2U8RXZhbE5v
ZGU+KGdsb2JhbERhdGEsIGxleGljYWxHbG9iYWxPYmplY3QsIG1fc291cmNlLCAwLCBJZGVudGlm
aWVyKCksIGlzU3RyaWN0TW9kZSgpID8gSlNQYXJzZVN0cmljdCA6IEpTUGFyc2VOb3JtYWwsIEV2
YWxOb2RlOjppc0Z1bmN0aW9uTm9kZSA/IEpTUGFyc2VGdW5jdGlvbkNvZGUgOiBKU1BhcnNlUHJv
Z3JhbUNvZGUsIGxleGljYWxHbG9iYWxPYmplY3QtPmRlYnVnZ2VyKCksIGV4ZWMsICZleGNlcHRp
b24pOwogICAgICAgICBpZiAoIWV2YWxOb2RlKSB7CiAgICAgICAgICAgICBBU1NFUlQoZXhjZXB0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9u
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25D
b25zdHJ1Y3Rvci5jcHAKaW5kZXggNDA1MDdkYWUxNjZiZTcxNjExN2U4ZGYxM2I5YWNjM2E2MDM5
NDQ1Yi4uNTcwNDQ0ZTNjNmVjNzVhYzE3MDUwYmViOTU1MGNmOWVmOGFmMzRlYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5j
cHAKQEAgLTgyLDcgKzgyLDcgQEAgQ2FsbFR5cGUgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6Z2V0Q2Fs
bERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmIGNhbGxEYXRhKQogSlNPYmplY3QqIGNvbnN0cnVjdEZ1
bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29u
c3QgQXJnTGlzdCYgYXJncywgY29uc3QgSWRlbnRpZmllciYgZnVuY3Rpb25OYW1lLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCwgY29uc3QgVGV4dFBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBp
ZiAoIWdsb2JhbE9iamVjdC0+ZXZhbEVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoZXhlYywgY3JlYXRlRXZhbEVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiRnVuY3Rpb24gY29u
c3RydWN0b3IgaXMgZGlzYWJsZWQiKSkpOworICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVj
LCBjcmVhdGVFdmFsRXJyb3IoZXhlYywgZ2xvYmFsT2JqZWN0LT5ldmFsRGlzYWJsZWRFcnJvck1l
c3NhZ2UoKSkpOwogICAgIHJldHVybiBjb25zdHJ1Y3RGdW5jdGlvblNraXBwaW5nRXZhbEVuYWJs
ZWRDaGVjayhleGVjLCBnbG9iYWxPYmplY3QsIGFyZ3MsIGZ1bmN0aW9uTmFtZSwgc291cmNlVVJM
LCBwb3NpdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5oCmluZGV4IDQwNmE2NWI1MTFhNDY3YjkyMjlkNjMyZDE2YzMyZjc5ZTA5ZmVi
ZmUuLjJmNDI2NjQ4YzliYzVhYThmOGUyZDU0ZGY1NzQ4ZjIzNTJmMTRiZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTU1LDYgKzE1
NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBXZWFrUmFuZG9tIG1fd2Vha1JhbmRvbTsK
IAogICAgICAgICBib29sIG1fZXZhbEVuYWJsZWQ7CisgICAgICAgIFN0cmluZyBtX2V2YWxEaXNh
YmxlZEVycm9yTWVzc2FnZTsKICAgICAgICAgYm9vbCBtX2V4cGVyaW1lbnRzRW5hYmxlZDsKIAog
ICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSBzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlOwpAQCAtMzA0LDggKzMwNSwxMyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICBib29sIGlzRHluYW1pY1Njb3BlKGJvb2wmIHJlcXVpcmVzRHlu
YW1pY0NoZWNrcykgY29uc3Q7CiAKLSAgICAgICAgdm9pZCBzZXRFdmFsRW5hYmxlZChib29sIGVu
YWJsZWQpIHsgbV9ldmFsRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCBldmFsRW5h
YmxlZCgpIHsgcmV0dXJuIG1fZXZhbEVuYWJsZWQ7IH0KKyAgICAgICAgYm9vbCBldmFsRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXZhbEVuYWJsZWQ7IH0KKyAgICAgICAgY29uc3QgU3RyaW5n
JiBldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX2V2YWxEaXNhYmxl
ZEVycm9yTWVzc2FnZTsgfQorICAgICAgICB2b2lkIHNldEV2YWxFbmFibGVkKGJvb2wgZW5hYmxl
ZCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UgPSBTdHJpbmcoKSkKKyAgICAgICAgeworICAg
ICAgICAgICAgbV9ldmFsRW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgICAgICAgICBtX2V2YWxEaXNh
YmxlZEVycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZTsKKyAgICAgICAgfQogCiAgICAgICAgIHZv
aWQgcmVzZXRQcm90b3R5cGUoSlNHbG9iYWxEYXRhJiwgSlNWYWx1ZSBwcm90b3R5cGUpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4
IDFmMmU5ZDM3MjcxOGMzYjYwNDMzMjU0MGQzMmNiYTgxMjUwN2ZmNDguLjQ4ZjY4YzhhMzI4NmY1
ZDlhODJlMGYxYTA3ZWZhOGNkZDRlMjVlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0yMjIsNyArMjIyLDcgQEAgSlNET01XaW5k
b3dTaGVsbCogU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdChET01XcmFwcGVyV29ybGQqIHdv
cmxkKQogICAgIHdpbmRvd1NoZWxsLT53aW5kb3coKS0+dXBkYXRlRG9jdW1lbnQoKTsKIAogICAg
IGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpKQotICAgICAgICB3aW5kb3dTaGVsbC0+d2luZG93KCkt
PnNldEV2YWxFbmFibGVkKG1fZnJhbWUtPmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpLT5hbGxvd0V2YWwoMCwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpTdXBwcmVzc1JlcG9ydCkp
OyAgIAorICAgICAgICB3aW5kb3dTaGVsbC0+d2luZG93KCktPnNldEV2YWxFbmFibGVkKG1fZnJh
bWUtPmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0V2YWwoMCwgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpTdXBwcmVzc1JlcG9ydCksIG1fZnJhbWUtPmRvY3VtZW50KCkt
PmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2UoKSk7ICAg
CiAKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkgewogICAgICAgICBhdHRh
Y2hEZWJ1Z2dlcih3aW5kb3dTaGVsbCwgcGFnZS0+ZGVidWdnZXIoKSk7CkBAIC0yNTAsMTIgKzI1
MCwxMiBAQCB2b2lkIFNjcmlwdENvbnRyb2xsZXI6OmVuYWJsZUV2YWwoKQogICAgIHdpbmRvd1No
ZWxsLT53aW5kb3coKS0+c2V0RXZhbEVuYWJsZWQodHJ1ZSk7CiB9CiAKLXZvaWQgU2NyaXB0Q29u
dHJvbGxlcjo6ZGlzYWJsZUV2YWwoKQordm9pZCBTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZh
bChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKICAgICBKU0RPTVdpbmRvd1NoZWxsKiB3
aW5kb3dTaGVsbCA9IGV4aXN0aW5nV2luZG93U2hlbGwobWFpblRocmVhZE5vcm1hbFdvcmxkKCkp
OwogICAgIGlmICghd2luZG93U2hlbGwpCiAgICAgICAgIHJldHVybjsKLSAgICB3aW5kb3dTaGVs
bC0+d2luZG93KCktPnNldEV2YWxFbmFibGVkKGZhbHNlKTsKKyAgICB3aW5kb3dTaGVsbC0+d2lu
ZG93KCktPnNldEV2YWxFbmFibGVkKGZhbHNlLCBlcnJvck1lc3NhZ2UpOwogfQogCiBib29sIFNj
cmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKaW5kZXggZjc2ZmRlOGZjNzJmNjgwNWVm
NDhjMDNhZmMxZDA2YTNhMTU0Y2E4Ny4uMTg3ZmFiNTJiZWYwYWQyMWNmNTRkZTUwNmE0ZWY2NTFj
ZmZkYmViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xs
ZXIuaApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKICAgICBXVEY6OlRleHRQb3NpdGlvbiBl
dmVudEhhbmRsZXJQb3NpdGlvbigpIGNvbnN0OwogCiAgICAgdm9pZCBlbmFibGVFdmFsKCk7Ci0g
ICAgdm9pZCBkaXNhYmxlRXZhbCgpOworICAgIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UpOwogCiAgICAgc3RhdGljIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJl
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlw
dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0
Q29udHJvbGxlci5jcHAKaW5kZXggNzRhMjRiMDhmNzM1NTU5MWMxYWU4YmRlMDM3OTNmYmM0MTRl
YTY4Ni4uNTVjMzQ3NjdiM2QzYWIzODQyNGJiYTFhZGE5OTZkYmJmZDU1M2QyOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5j
cHAKQEAgLTE4OSwxMiArMTg5LDEyIEBAIGJvb2wgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6aXNF
eGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdAogICAgIHJldHVybiBtX2V4ZWN1dGlvbkZvcmJpZGRl
bjsKIH0KIAotdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCgpCit2b2lk
IFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlKQogewogICAgIGluaXRTY3JpcHRJZk5lZWRlZCgpOwogICAgIEpTTG9ja0hvbGRlciBs
b2NrKGdsb2JhbERhdGEoKSk7CiAKLSAgICBtX3dvcmtlckNvbnRleHRXcmFwcGVyLT5zZXRFdmFs
RW5hYmxlZChmYWxzZSk7CisgICAgbV93b3JrZXJDb250ZXh0V3JhcHBlci0+c2V0RXZhbEVuYWJs
ZWQoZmFsc2UsIGVycm9yTWVzc2FnZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIu
aAppbmRleCAzYjJhY2Q0YjY0ZDcwMzk5ZmMzNzg4YWZkOGI3Yzg2MWRmZjE2MmVjLi5hMzEzZmIw
ZmUxYzUwNDUzNTI1MGNiNDNlYzcyMTM2YzY2ZTAwMzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCkBAIC03NSw3ICs3NSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBmb3JiaWRFeGVjdXRpb24oKTsK
ICAgICAgICAgYm9vbCBpc0V4ZWN1dGlvbkZvcmJpZGRlbigpIGNvbnN0OwogCi0gICAgICAgIHZv
aWQgZGlzYWJsZUV2YWwoKTsKKyAgICAgICAgdm9pZCBkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSk7CiAKICAgICAgICAgSlNDOjpKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEo
KSB7IHJldHVybiBtX2dsb2JhbERhdGEuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAyMTFiYTk0N2ExNzI3MWZhNjNk
Mzk4MTdmYjY4ZWI5ZGMwOTRhMTg0Li5mYjlkNTU3ZTkyYjQ2NTA5NzgzOTBjMTMxZTA4MzkyOTlh
MzFkZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRDb250cm9s
bGVyLmNwcApAQCAtNDg1LDcgKzQ4NSw3IEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZW5hYmxl
RXZhbCgpCiAgICAgdjhDb250ZXh0LT5BbGxvd0NvZGVHZW5lcmF0aW9uRnJvbVN0cmluZ3ModHJ1
ZSk7CiB9CiAKLXZvaWQgU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwoKQordm9pZCBTY3Jp
cHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIC8qIGVycm9yTWVzc2FnZSAq
LykKIHsKICAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CiAgICAgdjg6OkhhbmRsZTx2
ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gd2luZG93U2hlbGwoKS0+Y29udGV4dCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDA0MDIxNTIz
OGM1MTQzZmVmODk2MTA0ZTI1ZDJlMzljNDZiNWZiMTAuLmRmZmVlMzUwM2FkYTA0ZjdmMDJjMDQ3
ZTVkMTM0ZmNmY2E5ZDhjYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHRDb250cm9sbGVyLmgKQEAgLTEyMSw3ICsxMjEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXZl
SW50ZXJwcmV0ZXIoKSBjb25zdDsKIAogICAgIHZvaWQgZW5hYmxlRXZhbCgpOwotICAgIHZvaWQg
ZGlzYWJsZUV2YWwoKTsKKyAgICB2b2lkIGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlKTsKIAogICAgIHN0YXRpYyBib29sIGNhbkFjY2Vzc0Zyb21DdXJyZW50T3JpZ2luKEZy
YW1lKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5jcHAKaW5kZXggYmJkOTE1OGJlZmYxNzBlMTg1OTliNGMzMTI5YWM2NDNh
NTJiNTU1MS4uNzAyMDhlMWZlZTQwZjYwN2QzM2RiM2UzZGI3Y2VlYTA4MmY1OGYxMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHAKQEAgLTEzMiw3ICsxMzIsNyBAQCBib29sIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6Omlz
RXhlY3V0aW9uRm9yYmlkZGVuKCkgY29uc3QKICAgICByZXR1cm4gbV9leGVjdXRpb25Gb3JiaWRk
ZW47CiB9CiAKLXZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZGlzYWJsZUV2YWwoKQordm9p
ZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbChjb25zdCBTdHJpbmcmIC8qIGVy
cm9yTWVzc2FnZSAqLykKIHsKICAgICBtX3Byb3h5LT5zZXRFdmFsQWxsb3dlZChmYWxzZSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9s
bGVyLmgKaW5kZXggNjFlZDdhYmMxMWM5ZDMzYmE2YjY3YjkxNmM3YTIxNjc5OWRhNzIzMi4uNjhj
ZTg5YWFlMDdmZjM4NjU5MGJhZjhiOTk3ODQ2NjI4NjA4N2MwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaApAQCAtNzMsNyAr
NzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZm9yYmlkRXhlY3V0aW9u
KCk7CiAgICAgICAgIGJvb2wgaXNFeGVjdXRpb25Gb3JiaWRkZW4oKSBjb25zdDsKIAotICAgICAg
ICB2b2lkIGRpc2FibGVFdmFsKCk7CisgICAgICAgIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3Ry
aW5nJik7CiAKICAgICAgICAgLy8gUmV0dXJucyBXb3JrZXJTY3JpcHRDb250cm9sbGVyIGZvciB0
aGUgY3VycmVudGx5IGV4ZWN1dGluZyBjb250ZXh0LiAwIHdpbGwgYmUgcmV0dXJuZWQgaWYgdGhl
IGN1cnJlbnQgZXhlY3V0aW5nIGNvbnRleHQgaXMgbm90IHRoZSB3b3JrZXIgY29udGV4dC4KICAg
ICAgICAgc3RhdGljIFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIGNvbnRyb2xsZXJGb3JDb250ZXh0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA0NTQ2ZmY1ZTM4Nzk5YTk2ODI2NTc3MzM2
OTU3OGU1NGQzMTc5ZGU2Li4zNGQ1YjNlNTcxZTU5YTA0YzFjMjhhMDY3N2RlNjcxZWFhNmNmY2Iw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI4MjEsMTIgKzI4MjEsMTIgQEAgU3RyaW5n
IERvY3VtZW50Ojp1c2VyQWdlbnQoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogICAgIHJldHVybiBm
cmFtZSgpID8gZnJhbWUoKS0+bG9hZGVyKCktPnVzZXJBZ2VudCh1cmwpIDogU3RyaW5nKCk7CiB9
CiAKLXZvaWQgRG9jdW1lbnQ6OmRpc2FibGVFdmFsKCkKK3ZvaWQgRG9jdW1lbnQ6OmRpc2FibGVF
dmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewogICAgIGlmICghZnJhbWUoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgZnJhbWUoKS0+c2NyaXB0KCktPmRpc2FibGVFdmFsKCk7Cisg
ICAgZnJhbWUoKS0+c2NyaXB0KCktPmRpc2FibGVFdmFsKGVycm9yTWVzc2FnZSk7CiB9CiAKIGJv
b2wgRG9jdW1lbnQ6OmNhbk5hdmlnYXRlKEZyYW1lKiB0YXJnZXRGcmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKaW5kZXggNTBmN2ViMjAyNjBhZTg2M2VlOTA5ZjEzNDc3ZDk0YTFiMTZhM2QyZS4uMTI5
MjhhYTBmNTNjYTJhYzljM2FmNGE5ZDM5Y2JkZGMxZmRhNWE4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKQEAgLTY0NCw3ICs2NDQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyB1c2Vy
QWdlbnQoY29uc3QgS1VSTCYpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIGRpc2FibGVFdmFs
KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNz
YWdlKTsKIAogICAgIGJvb2wgY2FuTmF2aWdhdGUoRnJhbWUqIHRhcmdldEZyYW1lKTsKICAgICBG
cmFtZSogZmluZFVuc2FmZVBhcmVudFNjcm9sbFByb3BhZ2F0aW9uQm91bmRhcnkoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IGU3NDY4MDM4YzZh
Mzg1Yjg4MTZmOWZjMWI0NzM1MDZhYzI2Y2ExMTAuLjhhZDNlOWYyNDBhODNiMTZmNDI5YmFlMDE4
ZDg3MjA4NGI0Mzc0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyB1
c2VyQWdlbnQoY29uc3QgS1VSTCYpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNh
YmxlRXZhbCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UpID0gMDsKIAogICAgIGJvb2wgc2FuaXRpemVTY3JpcHRFcnJvcihTdHJp
bmcmIGVycm9yTWVzc2FnZSwgaW50JiBsaW5lTnVtYmVyLCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAg
ICAgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBs
aW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNw
cAppbmRleCAxNDIyMTg2NWM2NzU4ZDg0NjQ0MGJkY2VjOTg4MTgwYzI0NmNmYTE0Li40YjhkMGJk
YWUxODU0Mjc1MDA5ZDg0MDMzNDA3YjBiZDA4ZjBhMzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC03MjYsNiArNzI2LDcgQEAgcHVibGlj
OgogICAgIGJvb2wgYWxsb3dGb3JtQWN0aW9uKGNvbnN0IEtVUkwmLCBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OlJlcG9ydGluZ1N0YXR1cykgY29uc3Q7CiAKICAgICB2b2lkIGdhdGhlclJlcG9ydFVS
SXMoRE9NU3RyaW5nTGlzdCYpIGNvbnN0OworICAgIGNvbnN0IFN0cmluZyYgZXZhbERpc2FibGVk
RXJyb3JNZXNzYWdlKCkgeyByZXR1cm4gbV9ldmFsRGlzYWJsZWRFcnJvck1lc3NhZ2U7IH0KIAog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBDU1BEaXJlY3RpdmVMaXN0KENvbnRlbnRTZWN1cml0eVBv
bGljeSopOwpAQCAtNzUxLDYgKzc1Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjaGVja1NvdXJj
ZShTb3VyY2VMaXN0RGlyZWN0aXZlKiwgY29uc3QgS1VSTCYpIGNvbnN0OwogICAgIGJvb2wgY2hl
Y2tNZWRpYVR5cGUoTWVkaWFMaXN0RGlyZWN0aXZlKiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIHR5cGVBdHRyaWJ1dGUpIGNvbnN0OwogCisgICAgdm9pZCBzZXRFdmFsRGlzYWJs
ZWRFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsgbV9ldmFsRGlzYWJs
ZWRFcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2U7IH0KKwogICAgIGJvb2wgY2hlY2tFdmFsQW5k
UmVwb3J0VmlvbGF0aW9uKFNvdXJjZUxpc3REaXJlY3RpdmUqLCBjb25zdCBTdHJpbmcmIGNvbnNv
bGVNZXNzYWdlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwgPSBTdHJpbmcoKSwgY29uc3QgV1RG
OjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSA9IFdURjo6T3JkaW5hbE51bWJlcjo6YmVmb3Jl
Rmlyc3QoKSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCkgY29uc3Q7CiAgICAgYm9v
bCBjaGVja0lubGluZUFuZFJlcG9ydFZpb2xhdGlvbihTb3VyY2VMaXN0RGlyZWN0aXZlKiwgY29u
c3QgU3RyaW5nJiBjb25zb2xlTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBjb25z
dCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lKSBjb25zdDsKICAgICBib29sIGNoZWNr
Tm9uY2VBbmRSZXBvcnRWaW9sYXRpb24oTm9uY2VEaXJlY3RpdmUqLCBjb25zdCBTdHJpbmcmIG5v
bmNlLCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRV
UkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUpIGNvbnN0OwpAQCAtNzYw
LDYgKzc2Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBkZW55SWZFbmZvcmNpbmdQb2xpY3koKSBj
b25zdCB7IHJldHVybiBtX3JlcG9ydE9ubHk7IH0KIAogICAgIENvbnRlbnRTZWN1cml0eVBvbGlj
eSogbV9wb2xpY3k7CisKICAgICBTdHJpbmcgbV9oZWFkZXI7CiAKICAgICBib29sIG1fcmVwb3J0
T25seTsKQEAgLTc3OSw2ICs3ODMsOCBAQCBwcml2YXRlOgogICAgIE93blB0cjxTb3VyY2VMaXN0
RGlyZWN0aXZlPiBtX3N0eWxlU3JjOwogCiAgICAgVmVjdG9yPEtVUkw+IG1fcmVwb3J0VVJJczsK
KworICAgIFN0cmluZyBtX2V2YWxEaXNhYmxlZEVycm9yTWVzc2FnZTsKIH07CiAKIENTUERpcmVj
dGl2ZUxpc3Q6OkNTUERpcmVjdGl2ZUxpc3QoQ29udGVudFNlY3VyaXR5UG9saWN5KiBwb2xpY3kp
CkBAIC04MDMsNiArODA5LDExIEBAIFBhc3NPd25QdHI8Q1NQRGlyZWN0aXZlTGlzdD4gQ1NQRGly
ZWN0aXZlTGlzdDo6Y3JlYXRlKENvbnRlbnRTZWN1cml0eVBvbGljeSogcG9sCiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIAorICAgIGlmICghZGlyZWN0aXZlcy0+Y2hlY2tFdmFsKGRpcmVjdGl2ZXMt
Pm9wZXJhdGl2ZURpcmVjdGl2ZShkaXJlY3RpdmVzLT5tX3NjcmlwdFNyYy5nZXQoKSkpKSB7Cisg
ICAgICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiUmVmdXNlZCB0byBldmFsdWF0ZSBh
IHN0cmluZyBhcyBKYXZhU2NyaXB0IGJlY2F1c2UgJ3Vuc2FmZS1ldmFsJyBpcyBub3QgYW4gYWxs
b3dlZCBzb3VyY2Ugb2Ygc2NyaXB0IGluIHRoZSBmb2xsb3dpbmcgQ29udGVudCBTZWN1cml0eSBQ
b2xpY3kgZGlyZWN0aXZlOiBcIiIsIGRpcmVjdGl2ZXMtPm9wZXJhdGl2ZURpcmVjdGl2ZShkaXJl
Y3RpdmVzLT5tX3NjcmlwdFNyYy5nZXQoKSktPnRleHQoKSwgIlwiLlxuIik7CisgICAgICAgIGRp
cmVjdGl2ZXMtPnNldEV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZShtZXNzYWdlKTsKKyAgICB9CisK
ICAgICByZXR1cm4gZGlyZWN0aXZlcy5yZWxlYXNlKCk7CiB9CiAKQEAgLTEyNjEsNyArMTI3Miw3
IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpkaWRSZWNlaXZlSGVhZGVyKGNvbnN0IFN0
cmluZyYgaGVhZGVyLCBIZWFkZXJUeXBlIHR5CiAgICAgfQogCiAgICAgaWYgKCFhbGxvd0V2YWwo
MCwgU3VwcHJlc3NSZXBvcnQpKQotICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRp
c2FibGVFdmFsKCk7CisgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGlzYWJsZUV2
YWwoZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKCkpOwogfQogCiB2b2lkIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6c2V0T3ZlcnJpZGVBbGxvd0lubGluZVN0eWxlKGJvb2wgdmFsdWUpCkBAIC0xMzQ5
LDYgKzEzNjAsMTUgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93RXZhbChQYXNz
UmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBDb24KICAgICByZXR1cm4gaXNBbGxv
d2VkQnlBbGxXaXRoQ2FsbFN0YWNrPCZDU1BEaXJlY3RpdmVMaXN0OjphbGxvd0V2YWw+KG1fcG9s
aWNpZXMsIGNhbGxTdGFjaywgcmVwb3J0aW5nU3RhdHVzKTsKIH0KIAorU3RyaW5nIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6ZXZhbERpc2FibGVkRXJyb3JNZXNzYWdlKCkgY29uc3QKK3sKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG1fcG9saWNpZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
aWYgKCFtX3BvbGljaWVzW2ldLT5hbGxvd0V2YWwoMCwgU3VwcHJlc3NSZXBvcnQpKQorICAgICAg
ICAgICAgcmV0dXJuIG1fcG9saWNpZXNbaV0tPmV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpOwor
ICAgIH0KKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKIGJvb2wgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjphbGxvd1NjcmlwdE5vbmNlKGNvbnN0IFN0cmluZyYgbm9uY2UsIGNvbnN0IFN0cmluZyYg
Y29udGV4dFVSTCwgY29uc3QgV1RGOjpPcmRpbmFsTnVtYmVyJiBjb250ZXh0TGluZSwgY29uc3Qg
S1VSTCYgdXJsKSBjb25zdAogewogICAgIHJldHVybiBpc0FsbG93ZWRCeUFsbFdpdGhOb25jZTwm
Q1NQRGlyZWN0aXZlTGlzdDo6YWxsb3dTY3JpcHROb25jZT4obV9wb2xpY2llcywgbm9uY2UsIGNv
bnRleHRVUkwsIGNvbnRleHRMaW5lLCB1cmwpOwpAQCAtMTM1Nyw3ICsxMzc3LDcgQEAgYm9vbCBD
b250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93U2NyaXB0Tm9uY2UoY29uc3QgU3RyaW5nJiBub25j
ZSwgY29uc3QgU3RyaW5nJgogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93UGx1Z2lu
VHlwZShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdHlwZUF0dHJpYnV0ZSwgY29u
c3QgS1VSTCYgdXJsLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OlJlcG9ydGluZ1N0YXR1cyByZXBv
cnRpbmdTdGF0dXMpIGNvbnN0CiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3BvbGlj
aWVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmICghbV9wb2xpY2llc1tpXS5nZXQoKS0+YWxs
b3dQbHVnaW5UeXBlKHR5cGUsIHR5cGVBdHRyaWJ1dGUsIHVybCwgcmVwb3J0aW5nU3RhdHVzKSkK
KyAgICAgICAgaWYgKCFtX3BvbGljaWVzW2ldLT5hbGxvd1BsdWdpblR5cGUodHlwZSwgdHlwZUF0
dHJpYnV0ZSwgdXJsLCByZXBvcnRpbmdTdGF0dXMpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE0MTYsNyArMTQzNiw3IEBAIGJvb2wgQ29u
dGVudFNlY3VyaXR5UG9saWN5Ojppc0FjdGl2ZSgpIGNvbnN0CiB2b2lkIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6Z2F0aGVyUmVwb3J0VVJJcyhET01TdHJpbmdMaXN0JiBsaXN0KSBjb25zdAogewog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wb2xpY2llcy5zaXplKCk7ICsraSkKLSAgICAg
ICAgbV9wb2xpY2llc1tpXS5nZXQoKS0+Z2F0aGVyUmVwb3J0VVJJcyhsaXN0KTsKKyAgICAgICAg
bV9wb2xpY2llc1tpXS0+Z2F0aGVyUmVwb3J0VVJJcyhsaXN0KTsKIH0KIAogU2VjdXJpdHlPcmln
aW4qIENvbnRlbnRTZWN1cml0eVBvbGljeTo6c2VjdXJpdHlPcmlnaW4oKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKaW5kZXggZGEzZDk3OGNhYTYw
OTJlMDdjNWE4ZTQ4YTZjMjE0MGZlYWEyM2U3OC4uNTAxMGE3N2Q1NTg3NDhjNmI3MTZkNTNjMzMx
NjdlMTE3ZTZjZTEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2Vj
dXJpdHlQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBv
bGljeS5oCkBAIC0xMTIsNiArMTEyLDcgQEAgcHVibGljOgogICAgIEtVUkwgY29tcGxldGVVUkwo
Y29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2lu
KCkgY29uc3Q7CiAgICAgdm9pZCBlbmZvcmNlU2FuZGJveEZsYWdzKFNhbmRib3hGbGFncykgY29u
c3Q7CisgICAgU3RyaW5nIGV2YWxEaXNhYmxlZEVycm9yTWVzc2FnZSgpIGNvbnN0OwogCiBwcml2
YXRlOgogICAgIGV4cGxpY2l0IENvbnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRFeGVjdXRpb25D
b250ZXh0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAppbmRleCBk
N2VhZjVkYjQ2ZWU4Y2E3ODBlYjc2MWM4ZjQyYjQ3NmM5MDU1NzQ4Li5jMDQwYzM5NjY5NGI2MTY0
NTU3MzA4Y2RlNzEyMmQ2MGYxMzBkNGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
Q29udGV4dC5jcHAKQEAgLTE0OCw5ICsxNDgsOSBAQCBTdHJpbmcgV29ya2VyQ29udGV4dDo6dXNl
ckFnZW50KGNvbnN0IEtVUkwmKSBjb25zdAogICAgIHJldHVybiBtX3VzZXJBZ2VudDsKIH0KIAot
dm9pZCBXb3JrZXJDb250ZXh0OjpkaXNhYmxlRXZhbCgpCit2b2lkIFdvcmtlckNvbnRleHQ6OmRp
c2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewotICAgIG1fc2NyaXB0LT5k
aXNhYmxlRXZhbCgpOworICAgIG1fc2NyaXB0LT5kaXNhYmxlRXZhbChlcnJvck1lc3NhZ2UpOwog
fQogCiBXb3JrZXJMb2NhdGlvbiogV29ya2VyQ29udGV4dDo6bG9jYXRpb24oKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAppbmRleCBhNmQ2MGM4MTQyOWI2ZTQyZmQy
Yjk5MTI0N2U3NWExZTMwMDU1OTkyLi45ODQxYTVlMWQyNTZiNWJhZmIzOTcwZGNmZjMwNGExM2Rl
ZGNiMjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaApAQCAtNzIsNyAr
NzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IEdyb3VwU2V0dGluZ3Mq
IGdyb3VwU2V0dGluZ3MoKSB7IHJldHVybiBtX2dyb3VwU2V0dGluZ3MuZ2V0KCk7IH0KICAgICAg
ICAgdmlydHVhbCBTdHJpbmcgdXNlckFnZW50KGNvbnN0IEtVUkwmKSBjb25zdDsKIAotICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpc2Fi
bGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAogICAgICAgICBXb3JrZXJTY3Jp
cHRDb250cm9sbGVyKiBzY3JpcHQoKSB7IHJldHVybiBtX3NjcmlwdC5nZXQoKTsgfQogICAgICAg
ICB2b2lkIGNsZWFyU2NyaXB0KCkgeyBtX3NjcmlwdC5jbGVhcigpOyB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjM2Y2Q3
YzE1Njg4NzY1Mjc5Mjk5ZmEzMDZmNTQ0OGE2ZWNjNzBhMy4uNGMzMjM0NzJkYzA0ZjAxNDUwYTk1
N2YwMmUyMGFjMmQ5NTY0ZWI4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA5LTE0ICBN
aWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSlNDIHNob3VsZCB0aHJv
dyBhIG1vcmUgZGVzY3JpcHRpdmUgZXhjZXB0aW9uIHdoZW4gYmxvY2tpbmcgJ2V2YWwnIHZpYSBD
U1AuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDMz
MQorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9ja2VkLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9ldmFsLWJsb2NrZWQtaW4tYWJvdXQtYmxhbmstaWZyYW1lLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9mdW5jdGlv
bi1jb25zdHJ1Y3Rvci1ibG9ja2VkLWV4cGVjdGVkLnR4dDoKKwogMjAxMi0wOS0xNCAgVG9tIFNl
cGV6ICA8dHNlcGV6QGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbWFnZUxvYWRlciBjYW4ndCBi
ZSBjbGVhcmVkIHdoZW4gdmlkZW8gZWxlbWVudCBwb3N0ZXIgYXR0cmlidXRlIHJlbW92ZWQuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9ldmFsLWJsb2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZhbC1ibG9ja2VkLWV4cGVjdGVkLnR4
dAppbmRleCA2OTg1NThhODliODc2MjI5ZWRhOTJhM2M1YTc5YWUxNmZlNDM2ODllLi4zNjgxNzlk
ODljZDE5YjZjMjg4ZjI3YzU0YzRjNjE2OTU5NTFiMjdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLWJsb2NrZWQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2V2YWwtYmxvY2tlZC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw1IEBA
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IEV2YWxFcnJvcjogRXZhbCBpcyBkaXNhYmxlZAot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE1OiBFdmFsRXJyb3I6IEV2YWwgaXMgZGlzYWJsZWQKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxMjogRXZhbEVycm9yOiBSZWZ1c2VkIHRvIGV2YWx1YXRlIGEg
c3RyaW5nIGFzIEphdmFTY3JpcHQgYmVjYXVzZSAndW5zYWZlLWV2YWwnIGlzIG5vdCBhbiBhbGxv
d2VkIHNvdXJjZSBvZiBzY3JpcHQgaW4gdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBv
bGljeSBkaXJlY3RpdmU6ICJzY3JpcHQtc3JjICd1bnNhZmUtaW5saW5lJyIuCisKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxNTogRXZhbEVycm9yOiBSZWZ1c2VkIHRvIGV2YWx1YXRlIGEgc3RyaW5n
IGFzIEphdmFTY3JpcHQgYmVjYXVzZSAndW5zYWZlLWV2YWwnIGlzIG5vdCBhbiBhbGxvd2VkIHNv
dXJjZSBvZiBzY3JpcHQgaW4gdGhlIGZvbGxvd2luZyBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBk
aXJlY3RpdmU6ICJzY3JpcHQtc3JjICd1bnNhZmUtaW5saW5lJyIuCisKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZXZh
bC1ibG9ja2VkLWluLWFib3V0LWJsYW5rLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLWJsb2NrZWQt
aW4tYWJvdXQtYmxhbmstaWZyYW1lLWV4cGVjdGVkLnR4dAppbmRleCBiODA3M2I3ODZkM2Q3Zjlh
MmFjNzc2Yzg3ODU3MzJjMmZkZmY4NzFlLi45Y2M1NjdkN2I2YzRlZjFhNzgwYTE2NmU4ZjE1N2Uz
ODlkMDk5NmQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9ldmFsLWJsb2NrZWQtaW4tYWJvdXQtYmxhbmstaWZyYW1lLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9ldmFsLWJsb2NrZWQtaW4tYWJvdXQtYmxhbmstaWZyYW1lLWV4cGVjdGVk
LnR4dApAQCAtMSwzICsxLDQgQEAKIEFMRVJUOiAvUEFTUy8KLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxOiBFdmFsRXJyb3I6IEV2YWwgaXMgZGlzYWJsZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAx
OiBFdmFsRXJyb3I6IFJlZnVzZWQgdG8gZXZhbHVhdGUgYSBzdHJpbmcgYXMgSmF2YVNjcmlwdCBi
ZWNhdXNlICd1bnNhZmUtZXZhbCcgaXMgbm90IGFuIGFsbG93ZWQgc291cmNlIG9mIHNjcmlwdCBp
biB0aGUgZm9sbG93aW5nIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGRpcmVjdGl2ZTogInNjcmlw
dC1zcmMgJ3Vuc2FmZS1pbmxpbmUnIi4KKwogIEV2YWwgc2hvdWxkIGJlIGJsb2NrZWQgaW4gdGhl
IGlmcmFtZSwgYnV0IGlubGluZSBzY3JpcHQgc2hvdWxkIGJlIGFsbG93ZWQuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9m
dW5jdGlvbi1jb25zdHJ1Y3Rvci1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Z1bmN0aW9uLWNvbnN0cnVj
dG9yLWJsb2NrZWQtZXhwZWN0ZWQudHh0CmluZGV4IDhjYzgzY2ExZmIxZTJhMDQ5Y2YxNDQ3N2U0
NWY2NDE1ZjRmNzYwNTMuLjU1MWQ5N2EwMDM1NGI3MDhhOTg0YmFjMGM5NWQ0MDY2NTZhYjViZTIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L2Z1bmN0aW9uLWNvbnN0cnVjdG9yLWJsb2NrZWQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Z1
bmN0aW9uLWNvbnN0cnVjdG9yLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEsMyBAQAot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiBFdmFsRXJyb3I6IEZ1bmN0aW9uIGNvbnN0cnVjdG9y
IGlzIGRpc2FibGVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IEV2YWxFcnJvcjogUmVmdXNl
ZCB0byBldmFsdWF0ZSBhIHN0cmluZyBhcyBKYXZhU2NyaXB0IGJlY2F1c2UgJ3Vuc2FmZS1ldmFs
JyBpcyBub3QgYW4gYWxsb3dlZCBzb3VyY2Ugb2Ygc2NyaXB0IGluIHRoZSBmb2xsb3dpbmcgQ29u
dGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAic2NyaXB0LXNyYyAndW5zYWZlLWlubGlu
ZSciLgorCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>