<?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>157134</bug_id>
          
          <creation_ts>2016-04-28 05:46:07 -0700</creation_ts>
          <short_desc>[css-grid] Add CSS Grid Layout runtime flag</short_desc>
          <delta_ts>2016-04-29 22:15:20 -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>Layout and Rendering</component>
          <version>WebKit 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>60731</blocked>
    
    <blocked>157137</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Manuel Rego Casasnovas">rego</reporter>
          <assigned_to name="Manuel Rego Casasnovas">rego</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>jfernandez</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1188216</commentid>
    <comment_count>0</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-04-28 05:46:07 -0700</bug_when>
    <thetext>As announced on the mailing list, we&apos;re adding a runtime flag to CSS Grid Layout.

In a next patch we&apos;ll be removing the prefixes.

More info at: https://lists.webkit.org/pipermail/webkit-dev/2016-April/028192.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188223</commentid>
    <comment_count>1</comment_count>
      <attachid>277615</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-04-28 06:18:41 -0700</bug_when>
    <thetext>Created attachment 277615
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188240</commentid>
    <comment_count>2</comment_count>
      <attachid>277615</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2016-04-28 07:42:25 -0700</bug_when>
    <thetext>Comment on attachment 277615
Patch

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

I was tempted to r+ it but I&apos;ll let a third party do it instead.

&gt; Source/WebCore/ChangeLog:14
&gt; +        Test: fast/css-grid-layout/grid-disable.html

Can&apos;t you use fast/css/getComputedStyle/computed-style.html for adding the new tests?

&gt; Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp:116
&gt; +#if ENABLE(CSS_GRID_LAYOUT)

We could remove the build flag in the same patch. Not a strong opinion though.

&gt; Source/WebCore/css/CSSParser.cpp:2801
&gt; +        if (!cssGridLayoutEnabled())

isCSSGridLayoutEnabled() sounds better for me but I concede that you could find examples of both in the current code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188336</commentid>
    <comment_count>3</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-04-28 12:12:22 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I was tempted to r+ it but I&apos;ll let a third party do it instead.

Yeah it&apos;d be nice if someone else can take a look.
I&apos;m adding more reviewers on CC.

&gt; &gt; Source/WebCore/ChangeLog:14
&gt; &gt; +        Test: fast/css-grid-layout/grid-disable.html
&gt; 
&gt; Can&apos;t you use fast/css/getComputedStyle/computed-style.html for adding the
&gt; new tests?

I don&apos;t get what you mean, that test is not disabling any runtime feature like I&apos;m doing.
The goal of my test is to check that we can disable grid layout turning of the runtime flag.

&gt; &gt; Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp:116
&gt; &gt; +#if ENABLE(CSS_GRID_LAYOUT)
&gt; 
&gt; We could remove the build flag in the same patch. Not a strong opinion
&gt; though.

Dunno, I think I prefer to do it in separated steps.

&gt; &gt; Source/WebCore/css/CSSParser.cpp:2801
&gt; &gt; +        if (!cssGridLayoutEnabled())
&gt; 
&gt; isCSSGridLayoutEnabled() sounds better for me but I concede that you could
&gt; find examples of both in the current code.

The other CSS runtime flags in this file use this format, so I&apos;m for keeping it but I don&apos;t have strong opinion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188340</commentid>
    <comment_count>4</comment_count>
      <attachid>277615</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-04-28 12:20:43 -0700</bug_when>
    <thetext>Comment on attachment 277615
Patch

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

What about CSS OM stuff?

&gt; Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h:246
&gt; +    bool cssGridLayoutEnabled() const { return m_isCSSGridLayoutEnabled; }

I would call this isCSSGridLayoutEnabled()

&gt; Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h:363
&gt; +    bool m_isCSSGridLayoutEnabled;

I would call this m_cssGridLayoutEnabled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188344</commentid>
    <comment_count>5</comment_count>
      <attachid>277615</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-04-28 12:27:02 -0700</bug_when>
    <thetext>Comment on attachment 277615
Patch

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

&gt;&gt; Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp:116
&gt;&gt; +#if ENABLE(CSS_GRID_LAYOUT)
&gt; 
&gt; We could remove the build flag in the same patch. Not a strong opinion though.

No, please keep the build flag for now. For experimental features we want both a build flag and a runtime switch. That way if a shipping browser wants to disable it, they don&apos;t need to even build the code (reducing binary size).

&gt; Source/WebKit2/Shared/WebPreferencesDefinitions.h:233
&gt; +    macro(CSSGridLayoutEnabled, cssGridLayoutEnabled, Bool, bool, true, &quot;&quot;, &quot;&quot;) \

I think this is a good case of something we could put in the new Experimental Features section. This would allow a browser to query WebKit to dynamically build a menu of features to enable and disable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188348</commentid>
    <comment_count>6</comment_count>
      <attachid>277615</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-04-28 12:41:50 -0700</bug_when>
    <thetext>Comment on attachment 277615
Patch

I think bugzilla erased smfr&apos;s r+ when I commented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188356</commentid>
    <comment_count>7</comment_count>
      <attachid>277643</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-04-28 13:10:23 -0700</bug_when>
    <thetext>Created attachment 277643
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188377</commentid>
    <comment_count>8</comment_count>
      <attachid>277647</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-04-28 14:01:14 -0700</bug_when>
    <thetext>Created attachment 277647
=Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188378</commentid>
    <comment_count>9</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-04-28 14:01:54 -0700</bug_when>
    <thetext>
Thanks for the quick reviews!

(In reply to comment #4)
&gt; Comment on attachment 277615 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=277615&amp;action=review
&gt; 
&gt; What about CSS OM stuff?

This is an old issue that happens for all the runtime flags (see bug #128271).

&gt; &gt; Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h:246
&gt; &gt; +    bool cssGridLayoutEnabled() const { return m_isCSSGridLayoutEnabled; }
&gt; 
&gt; I would call this isCSSGridLayoutEnabled()
&gt; 
&gt; &gt; Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h:363
&gt; &gt; +    bool m_isCSSGridLayoutEnabled;
&gt; 
&gt; I would call this m_cssGridLayoutEnabled

I&apos;ve changed this and also the other similar methods like in CSSParser as Sergio suggested before.


(In reply to comment #5)
&gt; Comment on attachment 277615 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=277615&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp:116
&gt; &gt;&gt; +#if ENABLE(CSS_GRID_LAYOUT)
&gt; &gt; 
&gt; &gt; We could remove the build flag in the same patch. Not a strong opinion though.
&gt; 
&gt; No, please keep the build flag for now. For experimental features we want
&gt; both a build flag and a runtime switch. That way if a shipping browser wants
&gt; to disable it, they don&apos;t need to even build the code (reducing binary size).

Good reason, we&apos;ll keep it.
Once CSS Grid Layout is shipped by default and the implementation is stable enough we could get rid of the build flag.

&gt; &gt; Source/WebKit2/Shared/WebPreferencesDefinitions.h:233
&gt; &gt; +    macro(CSSGridLayoutEnabled, cssGridLayoutEnabled, Bool, bool, true, &quot;&quot;, &quot;&quot;) \
&gt; 
&gt; I think this is a good case of something we could put in the new
&gt; Experimental Features section. This would allow a browser to query WebKit to
&gt; dynamically build a menu of features to enable and disable.

Moved to the experimental features section.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188424</commentid>
    <comment_count>10</comment_count>
      <attachid>277647</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-28 16:13:30 -0700</bug_when>
    <thetext>Comment on attachment 277647
=Patch for landing

Clearing flags on attachment: 277647

Committed r200215: &lt;http://trac.webkit.org/changeset/200215&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188425</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-28 16:13:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188545</commentid>
    <comment_count>12</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2016-04-29 00:36:45 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 277615 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=277615&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp:116
&gt; &gt;&gt; +#if ENABLE(CSS_GRID_LAYOUT)
&gt; &gt; 
&gt; &gt; We could remove the build flag in the same patch. Not a strong opinion though.
&gt; 
&gt; No, please keep the build flag for now. For experimental features we want
&gt; both a build flag and a runtime switch. That way if a shipping browser wants
&gt; to disable it, they don&apos;t need to even build the code (reducing binary size).

I have to disagree with this. I concede is experimental in the sense that we are changing it constantly, but that&apos;s just because the specs are changing like mad (even thought they&apos;re supposed to be quite close the CR).

My point is that CSS Grid Layout will be a basic feature of every single web engine, so disabling it would be like disabling tables, something we definitely do not want to permit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189019</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-29 22:15:20 -0700</bug_when>
    <thetext>Sure, that time is coming soon.

We will remove both the build flag and the runtime switch when we reach that point.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277615</attachid>
            <date>2016-04-28 06:18:41 -0700</date>
            <delta_ts>2016-04-28 13:10:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157134-20160428151911.patch</filename>
            <type>text/plain</type>
            <size>33022</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ5MTRlYTIwYWVlOGI5
OTdjZWIxOGQwOGMyYTA5OGY4MDE4Y2I4MS4uZmNmZjZlMjc0MmJkNjM3NmFjYmNlYzg1NGQ3MTkw
MzQxYWJmODVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE2LTA0LTI4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtZ3Jp
ZF0gQWRkIENTUyBHcmlkIExheW91dCBydW50aW1lIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzEzNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBDU1MgR3JpZCBMYXlvdXQgcnVudGltZSBm
bGFnIGVuYWJsZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgRGlzYWJsZSBwYXJzaW5nIG9mIENTUyBH
cmlkIExheW91dCBwcm9wZXJ0aWVzCisgICAgICAgIGlmIHRoZSBydW50aW1lIGZsYWcgaXMgbm90
IGVuYWJsZWQuCisgICAgICAgIEV4cG9zZSBydW50aW1lIGZsYWcgdGhyb3VnaCBpbnRlcm5hbHMg
dG8gdmVyaWZ5IHRoYXQKKyAgICAgICAgaXQncyB3b3JraW5nIGFzIGV4cGVjdGVkLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtZGlzYWJsZS5odG1sCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6UnVudGltZUVuYWJsZWRGZWF0dXJl
cyk6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6
CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRDU1NHcmlkTGF5
b3V0RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpj
c3NHcmlkTGF5b3V0RW5hYmxlZCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6aXNWYWxpZEtleXdv
cmRQcm9wZXJ0eUFuZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlSW50ZWdlck9yQ3VzdG9t
SWRlbnRGcm9tR3JpZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VHcmlkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdyaWRJ
dGVtUG9zaXRpb25TaG9ydGhhbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJz
ZUdyaWRHYXBTaG9ydGhhbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdy
aWRUZW1wbGF0ZUNvbHVtbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdy
aWRUZW1wbGF0ZVJvd3NBbmRBcmVhc0FuZENvbHVtbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZUdyaWRUZW1wbGF0ZVNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6OnBhcnNlR3JpZFNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnBhcnNlR3JpZEFyZWFTaG9ydGhhbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpwYXJzZVNpbmdsZUdyaWRBcmVhTG9uZ2hhbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyOjpwYXJzZUdyaWRMaW5lTmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpw
YXJzZUdyaWRUcmFja0xpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdy
aWRUcmFja1JlcGVhdEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VHcmlkVHJhY2tTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlk
QnJlYWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZEF1dG9GbG93
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlkVGVtcGxhdGVBcmVhc1Jv
dyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZFRlbXBsYXRlQXJlYXMp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjc3NHcmlkTGF5b3V0RW5hYmxlZCk6Cisg
ICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXJNb2RlLmg6
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
Ojpjc3NHcmlkTGF5b3V0RW5hYmxlZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTYtMDQtMjggIFNlcmdp
byBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1ncmlk
XSBTdG9yZSBhdXRvLXJlcGVhdCBpbmZvcm1hdGlvbiBpbiBzdHlsZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IGIyOGE0MWZjMmNlODJmZDI4ZDRiMTU5MmM0NzdjNzczY2ZiNGZmMDcuLmU4NTBkZDkxMTE1
MzdkZGUyZjVjOTRhNzM0OWFhMmJhYTUyNzVlYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAxNi0wNC0yOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlh
LmNvbT4KKworICAgICAgICBbY3NzLWdyaWRdIEFkZCBDU1MgR3JpZCBMYXlvdXQgcnVudGltZSBm
bGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcx
MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
Q1NTIEdyaWQgTGF5b3V0IHJ1bnRpbWUgZmxhZyBiYXNlZCBvbiBwcmVmZXJlbmNlcywKKyAgICAg
ICAgZW5hYmxlZCBieSBkZWZhdWx0LgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAg
ICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6CisgICAgICAgICgtW1dlYlByZWZl
cmVuY2VzIGNzc0dyaWRMYXlvdXRFbmFibGVkXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2Vz
IHNldENTU0dyaWRMYXlvdXRFbmFibGVkOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWQ6XSk6CisKIDIwMTYtMDQtMjcgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIENTUDogQWRkIGFwcC1zcGVjaWZp
YyB3b3JrYXJvdW5kIGZvciBFY29iZWUgYW5kIFF1b3JhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjU4ODgxMTMx
NGIyYTIyNjUxM2RiZjVkNTk3YjExY2Q4ODczNzM5NC4uZTRkNDM0YjAxNDEzMGM2OWVmMTNlODFh
YzQ5MTM0NjE4YTc1MTk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTA0LTI4
ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtj
c3MtZ3JpZF0gQWRkIENTUyBHcmlkIExheW91dCBydW50aW1lIGZsYWcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzEzNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBDU1MgR3JpZCBMYXlvdXQgcnVu
dGltZSBmbGFnIGJhc2VkIG9uIHByZWZlcmVuY2VzLAorICAgICAgICBlbmFibGVkIGJ5IGRlZmF1
bHQuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJl
ZmVyZW5jZXNTZXRDU1NHcmlkTGF5b3V0RW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2Vz
R2V0Q1NTR3JpZExheW91dEVuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6
b3ZlcnJpZGVCb29sUHJlZmVyZW5jZUZvclRlc3RSdW5uZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRl
UHJlZmVyZW5jZXMpOgorCiAyMDE2LTA0LTI3ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5j
b20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI1OTE1MjUzPiBSRUdSRVNTSU9OIChyMTk5
NjI4KTogTmV0ZmxpeCBwbGF5YmFjayBmYWlscyBpbiBTYWZhcmkgVGVjaG5vbG9neSBQcmV2aWV3
IHdpdGggZXJyb3IgY29kZSBTNzM2My0xMjYwLUZGRkY1OEQ4CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcApp
bmRleCAxY2Y0YWE3OGNkNzUzZDA3MGFkNWJlNDE4MTlhNDAyZDQ4Mzk0YjIwLi4zOGFiMGZlYTJk
YTczZmNlYmY3NDk5MzQxYTk1NTEyYjM0NjA0YWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKQEAg
LTExMyw2ICsxMTMsOSBAQCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpSdW50aW1lRW5hYmxlZEZl
YXR1cmVzKCkKICNpZiBFTkFCTEUoV0VCX0FOSU1BVElPTlMpCiAgICAgLCBtX2FyZVdlYkFuaW1h
dGlvbnNFbmFibGVkKGZhbHNlKQogI2VuZGlmCisjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkK
KyAgICAsIG1faXNDU1NHcmlkTGF5b3V0RW5hYmxlZCh0cnVlKQorI2VuZGlmCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgKaW5kZXggNWQ2NDY4NjUwMjYxYjE3MDc4Y2ViM2M1MjA2ODkxM2U1MDUwMmUw
YS4uYTE4YTYwMDg1NjI3NWNjZDUyYjlkMWRiNmIyMzdkYjkxOTZiYWYyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgKQEAgLTI0MSw2ICsyNDEsMTEgQEAgcHVibGljOgogICAgIGJvb2wgZG93bmxvYWRBdHRy
aWJ1dGVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0Rvd25sb2FkQXR0cmlidXRlRW5hYmxl
ZDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorICAgIHZvaWQgc2V0
Q1NTR3JpZExheW91dEVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc0NTU0dyaWRMYXlvdXRF
bmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9vbCBjc3NHcmlkTGF5b3V0RW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNDU1NHcmlkTGF5b3V0RW5hYmxlZDsgfQorI2VuZGlmCisKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUnVudGltZUVuYWJsZWRGZWF0dXJlcyYgc2hhcmVkRmVhdHVy
ZXMoKTsKIAogcHJpdmF0ZToKQEAgLTM1NCw2ICszNTksMTAgQEAgcHJpdmF0ZToKICAgICBib29s
IG1faXNEb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorICAgIGJvb2wgbV9pc0NTU0dyaWRMYXlvdXRFbmFibGVk
OworI2VuZGlmCisKICAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZlckRlc3Ryb3llZDxSdW50aW1l
RW5hYmxlZEZlYXR1cmVzPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggNGUz
ZDZjYjkwYjU5ZDBkMzAwMzY1YmNmZTA4M2Y2ZjdmNDFkNDg1Zi4uOGMyZjUxNzczMWZmOGNjYzlj
NGQ3ZmU0Y2Q5MDliZDFlNzYyMmM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTI0
OCw2ICsyNDgsOSBAQCBDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KENTU1BhcnNl
ck1vZGUgbW9kZSwgY29uc3QgVVJMJiBiYXNlVVJMKQogICAgICwgaXNIVE1MRG9jdW1lbnQoZmFs
c2UpCiAgICAgLCBpc0NTU1JlZ2lvbnNFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkuY3NzUmVnaW9uc0VuYWJsZWQoKSkKICAgICAsIGlzQ1NTQ29tcG9zaXRp
bmdFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuY3NzQ29t
cG9zaXRpbmdFbmFibGVkKCkpCisjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKKyAgICAsIGlz
Q1NTR3JpZExheW91dEVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5jc3NHcmlkTGF5b3V0RW5hYmxlZCgpKQorI2VuZGlmCiAgICAgLCBuZWVkc1NpdGVTcGVj
aWZpY1F1aXJrcyhmYWxzZSkKICAgICAsIGVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9k
ZSh0cnVlKQogICAgICwgdXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvcihm
YWxzZSkKQEAgLTI2Nyw2ICsyNzAsOSBAQCBDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250
ZXh0KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiBiYXNlVVJMLCBjb25zdAogICAgICwg
aXNIVE1MRG9jdW1lbnQoZG9jdW1lbnQuaXNIVE1MRG9jdW1lbnQoKSkKICAgICAsIGlzQ1NTUmVn
aW9uc0VuYWJsZWQoZG9jdW1lbnQuY3NzUmVnaW9uc0VuYWJsZWQoKSkKICAgICAsIGlzQ1NTQ29t
cG9zaXRpbmdFbmFibGVkKGRvY3VtZW50LmNzc0NvbXBvc2l0aW5nRW5hYmxlZCgpKQorI2lmIEVO
QUJMRShDU1NfR1JJRF9MQVlPVVQpCisgICAgLCBpc0NTU0dyaWRMYXlvdXRFbmFibGVkKGRvY3Vt
ZW50LmNzc0dyaWRMYXlvdXRFbmFibGVkKCkpCisjZW5kaWYKICAgICAsIG5lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzKGRvY3VtZW50LnNldHRpbmdzKCkgPyBkb2N1bWVudC5zZXR0aW5ncygpLT5uZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcygpIDogZmFsc2UpCiAgICAgLCBlbmZvcmNlc0NTU01JTUVUeXBl
SW5Ob1F1aXJrc01vZGUoIWRvY3VtZW50LnNldHRpbmdzKCkgfHwgZG9jdW1lbnQuc2V0dGluZ3Mo
KS0+ZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUoKSkKICAgICAsIHVzZUxlZ2FjeUJh
Y2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IoZG9jdW1lbnQuc2V0dGluZ3MoKSA/IGRvY3Vt
ZW50LnNldHRpbmdzKCktPnVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3Io
KSA6IGZhbHNlKQpAQCAtMjg3LDYgKzI5Myw5IEBAIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQ
YXJzZXJDb250ZXh0JiBhLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBiKQogICAgICAgICAmJiBh
LmlzSFRNTERvY3VtZW50ID09IGIuaXNIVE1MRG9jdW1lbnQKICAgICAgICAgJiYgYS5pc0NTU1Jl
Z2lvbnNFbmFibGVkID09IGIuaXNDU1NSZWdpb25zRW5hYmxlZAogICAgICAgICAmJiBhLmlzQ1NT
Q29tcG9zaXRpbmdFbmFibGVkID09IGIuaXNDU1NDb21wb3NpdGluZ0VuYWJsZWQKKyNpZiBFTkFC
TEUoQ1NTX0dSSURfTEFZT1VUKQorICAgICAgICAmJiBhLmlzQ1NTR3JpZExheW91dEVuYWJsZWQg
PT0gYi5pc0NTU0dyaWRMYXlvdXRFbmFibGVkCisjZW5kaWYKICAgICAgICAgJiYgYS5uZWVkc1Np
dGVTcGVjaWZpY1F1aXJrcyA9PSBiLm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzCiAgICAgICAgICYm
IGEuZW5mb3JjZXNDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlID09IGIuZW5mb3JjZXNDU1NNSU1F
VHlwZUluTm9RdWlya3NNb2RlCiAgICAgICAgICYmIGEudXNlTGVnYWN5QmFja2dyb3VuZFNpemVT
aG9ydGhhbmRCZWhhdmlvciA9PSBiLnVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVo
YXZpb3I7CkBAIC02NzQsNyArNjgzLDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRLZXl3
b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIGludAogICAgICAg
ICBpZiAoKHZhbHVlSUQgPj0gQ1NTVmFsdWVJbmxpbmUgJiYgdmFsdWVJRCA8PSBDU1NWYWx1ZUNv
bnRlbnRzKSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlTm9uZSkKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCi0gICAgICAgIGlmICh2YWx1ZUlEID09
IENTU1ZhbHVlV2Via2l0R3JpZCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0SW5saW5lR3Jp
ZCkKKyAgICAgICAgaWYgKHBhcnNlckNvbnRleHQuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCAmJiAo
dmFsdWVJRCA9PSBDU1NWYWx1ZVdlYmtpdEdyaWQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVdlYmtp
dElubGluZUdyaWQpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKICAgICAgICAg
YnJlYWs7CkBAIC0yNzg5LDExICsyNzk4LDE1IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVl
KENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICNpZiBFTkFCTEUoQ1NTX0dS
SURfTEFZT1VUKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQXV0b0NvbHVtbnM6CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRBdXRvUm93czoKKyAgICAgICAgaWYgKCFjc3NH
cmlkTGF5b3V0RW5hYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBw
YXJzZWRWYWx1ZSA9IHBhcnNlR3JpZFRyYWNrU2l6ZSgqbV92YWx1ZUxpc3QpOwogICAgICAgICBi
cmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkVGVtcGxhdGVDb2x1bW5zOgog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkVGVtcGxhdGVSb3dzOgorICAgICAgICBpZiAo
IWNzc0dyaWRMYXlvdXRFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIHBhcnNlZFZhbHVlID0gcGFyc2VHcmlkVHJhY2tMaXN0KCk7CiAgICAgICAgIGJyZWFrOwog
CkBAIC0yODAxLDM1ICsyODE0LDUyIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1By
b3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0R3JpZENvbHVtbkVuZDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd1N0YXJ0
OgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkUm93RW5kOgorICAgICAgICBpZiAoIWNz
c0dyaWRMYXlvdXRFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IHBhcnNlZFZhbHVlID0gcGFyc2VHcmlkUG9zaXRpb24oKTsKICAgICAgICAgYnJlYWs7CiAKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVtbkdhcDoKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0R3JpZFJvd0dhcDoKKyAgICAgICAgaWYgKCFjc3NHcmlkTGF5b3V0RW5hYmxlZCgp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHZh
bGlkYXRlVW5pdCh2YWx1ZVdpdGhDYWxjdWxhdGlvbiwgRkxlbmd0aCB8IEZOb25OZWcpOwogICAg
ICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkR2FwOgorICAgICAg
ICBpZiAoIWNzc0dyaWRMYXlvdXRFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIHJldHVybiBwYXJzZUdyaWRHYXBTaG9ydGhhbmQoaW1wb3J0YW50KTsKIAogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uOgotICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRHcmlkUm93OiB7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3c6CisgICAg
ICAgIGlmICghY3NzR3JpZExheW91dEVuYWJsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgcmV0dXJuIHBhcnNlR3JpZEl0ZW1Qb3NpdGlvblNob3J0aGFuZChwcm9wSWQs
IGltcG9ydGFudCk7Ci0gICAgfQogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRUZW1w
bGF0ZToKKyAgICAgICAgaWYgKCFjc3NHcmlkTGF5b3V0RW5hYmxlZCgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICByZXR1cm4gcGFyc2VHcmlkVGVtcGxhdGVTaG9ydGhhbmQo
aW1wb3J0YW50KTsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkOgorICAgICAgICBp
ZiAoIWNzc0dyaWRMYXlvdXRFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgIHJldHVybiBwYXJzZUdyaWRTaG9ydGhhbmQoaW1wb3J0YW50KTsKIAogICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRHcmlkQXJlYToKKyAgICAgICAgaWYgKCFjc3NHcmlkTGF5b3V0RW5h
YmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXR1cm4gcGFyc2VH
cmlkQXJlYVNob3J0aGFuZChpbXBvcnRhbnQpOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtp
dEdyaWRUZW1wbGF0ZUFyZWFzOgorICAgICAgICBpZiAoIWNzc0dyaWRMYXlvdXRFbmFibGVkKCkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHBhcnNlZFZhbHVlID0gcGFyc2VH
cmlkVGVtcGxhdGVBcmVhcygpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0R3JpZEF1dG9GbG93OgorICAgICAgICBpZiAoIWNzc0dyaWRMYXlvdXRFbmFibGVkKCkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHBhcnNlZFZhbHVlID0gcGFyc2VH
cmlkQXV0b0Zsb3coKm1fdmFsdWVMaXN0KTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYgLyogRU5B
QkxFKENTU19HUklEX0xBWU9VVCkgKi8KQEAgLTU0MjIsNiArNTQ1Miw4IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBpc1ZhbGlkR3JpZFBvc2l0aW9uQ3VzdG9tSWRlbnQoY29uc3QgQ1NTUGFyc2VyVmFs
dWUmIHZhbHVlKQogLy8gVGhlIGZ1bmN0aW9uIHBhcnNlcyBbIDxpbnRlZ2VyPiB8fCA8Y3VzdG9t
LWlkZW50PiBdIGluIDxncmlkLWxpbmU+ICh3aGljaCBjYW4gYmUgc3RhbmQgYWxvbmUgb3Igd2l0
aCAnc3BhbicpLgogYm9vbCBDU1NQYXJzZXI6OnBhcnNlSW50ZWdlck9yQ3VzdG9tSWRlbnRGcm9t
R3JpZFBvc2l0aW9uKFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4mIG51bWVyaWNWYWx1ZSwgUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiYgZ3JpZExpbmVOYW1lKQogeworICAgIEFTU0VSVChjc3NH
cmlkTGF5b3V0RW5hYmxlZCgpKTsKKwogICAgIFZhbHVlV2l0aENhbGN1bGF0aW9uIHZhbHVlV2l0
aENhbGN1bGF0aW9uKCptX3ZhbHVlTGlzdC0+Y3VycmVudCgpKTsKICAgICBpZiAodmFsaWRhdGVV
bml0KHZhbHVlV2l0aENhbGN1bGF0aW9uLCBGSW50ZWdlcikgJiYgdmFsdWVXaXRoQ2FsY3VsYXRp
b24udmFsdWUoKS5mVmFsdWUpIHsKICAgICAgICAgbnVtZXJpY1ZhbHVlID0gY3JlYXRlUHJpbWl0
aXZlTnVtZXJpY1ZhbHVlKHZhbHVlV2l0aENhbGN1bGF0aW9uKTsKQEAgLTU0NTAsNiArNTQ4Miw4
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUludGVnZXJPckN1c3RvbUlkZW50RnJvbUdyaWRQb3Np
dGlvbihSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsCiAKIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2Vy
OjpwYXJzZUdyaWRQb3NpdGlvbigpCiB7CisgICAgQVNTRVJUKGNzc0dyaWRMYXlvdXRFbmFibGVk
KCkpOworCiAgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gbV92YWx1ZUxpc3QtPmN1cnJlbnQo
KTsKICAgICBpZiAodmFsdWUtPmlkID09IENTU1ZhbHVlQXV0bykgewogICAgICAgICBtX3ZhbHVl
TGlzdC0+bmV4dCgpOwpAQCAtNTUxMiw2ICs1NTQ2LDggQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1
ZT4gZ3JpZE1pc3NpbmdHcmlkUG9zaXRpb25WYWx1ZShDU1NWYWx1ZSYgdmFsdWUpCiAKIGJvb2wg
Q1NTUGFyc2VyOjpwYXJzZUdyaWRJdGVtUG9zaXRpb25TaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCBz
aG9ydGhhbmRJZCwgYm9vbCBpbXBvcnRhbnQpCiB7CisgICAgQVNTRVJUKGNzc0dyaWRMYXlvdXRF
bmFibGVkKCkpOworCiAgICAgU2hvcnRoYW5kU2NvcGUgc2NvcGUodGhpcywgc2hvcnRoYW5kSWQp
OwogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFuZCA9IHNob3J0aGFu
ZEZvclByb3BlcnR5KHNob3J0aGFuZElkKTsKICAgICBBU1NFUlQoc2hvcnRoYW5kLmxlbmd0aCgp
ID09IDIpOwpAQCAtNTU0MSw2ICs1NTc3LDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZEl0
ZW1Qb3NpdGlvblNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHNob3J0aGFuZElkLCBib29sIGkKIAog
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZEdhcFNob3J0aGFuZChib29sIGltcG9ydGFudCkKIHsK
KyAgICBBU1NFUlQoY3NzR3JpZExheW91dEVuYWJsZWQoKSk7CisKICAgICBTaG9ydGhhbmRTY29w
ZSBzY29wZSh0aGlzLCBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRHYXApOwogICAgIEFTU0VSVChzaG9y
dGhhbmRGb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEdyaWRHYXApLmxlbmd0aCgpID09IDIp
OwogCkBAIC01NTc4LDYgKzU2MTYsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkR2FwU2hv
cnRoYW5kKGJvb2wgaW1wb3J0YW50KQogCiBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFy
c2VHcmlkVGVtcGxhdGVDb2x1bW5zKCkKIHsKKyAgICBBU1NFUlQoY3NzR3JpZExheW91dEVuYWJs
ZWQoKSk7CisKICAgICBpZiAoIShtX3ZhbHVlTGlzdC0+Y3VycmVudCgpICYmIGlzRm9yd2FyZFNs
YXNoT3BlcmF0b3IoKm1fdmFsdWVMaXN0LT5jdXJyZW50KCkpICYmIG1fdmFsdWVMaXN0LT5uZXh0
KCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoYXV0byBjb2x1bW5zVmFsdWUg
PSBwYXJzZUdyaWRUcmFja0xpc3QoKSkgewpAQCAtNTU5MSw2ICs1NjMxLDggQEAgUmVmUHRyPENT
U1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlR3JpZFRlbXBsYXRlQ29sdW1ucygpCiAKIGJvb2wgQ1NT
UGFyc2VyOjpwYXJzZUdyaWRUZW1wbGF0ZVJvd3NBbmRBcmVhc0FuZENvbHVtbnMoYm9vbCBpbXBv
cnRhbnQpCiB7CisgICAgQVNTRVJUKGNzc0dyaWRMYXlvdXRFbmFibGVkKCkpOworCiAgICAgLy8g
QXQgbGVhc3QgdGVtcGxhdGUtYXJlYXMgc3RyaW5ncyBtdXN0IGJlIGRlZmluZWQuCiAgICAgaWYg
KCFtX3ZhbHVlTGlzdC0+Y3VycmVudCgpIHx8IGlzRm9yd2FyZFNsYXNoT3BlcmF0b3IoKm1fdmFs
dWVMaXN0LT5jdXJyZW50KCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01NjU0LDYgKzU2
OTYsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkVGVtcGxhdGVSb3dzQW5kQXJlYXNBbmRD
b2x1bW5zKGJvb2wgaW1wb3J0YW50KQogCiBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkVGVtcGxh
dGVTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiB7CisgICAgQVNTRVJUKGNzc0dyaWRMYXlvdXRF
bmFibGVkKCkpOworCiAgICAgU2hvcnRoYW5kU2NvcGUgc2NvcGUodGhpcywgQ1NTUHJvcGVydHlX
ZWJraXRHcmlkVGVtcGxhdGUpOwogICAgIEFTU0VSVChzaG9ydGhhbmRGb3JQcm9wZXJ0eShDU1NQ
cm9wZXJ0eVdlYmtpdEdyaWRUZW1wbGF0ZSkubGVuZ3RoKCkgPT0gMyk7CiAKQEAgLTU2OTgsNiAr
NTc0Miw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRUZW1wbGF0ZVNob3J0aGFuZChib29s
IGltcG9ydGFudCkKIAogYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZFNob3J0aGFuZChib29sIGlt
cG9ydGFudCkKIHsKKyAgICBBU1NFUlQoY3NzR3JpZExheW91dEVuYWJsZWQoKSk7CisKICAgICBT
aG9ydGhhbmRTY29wZSBzY29wZSh0aGlzLCBDU1NQcm9wZXJ0eVdlYmtpdEdyaWQpOwogICAgIEFT
U0VSVChzaG9ydGhhbmRGb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEdyaWQpLmxlbmd0aCgp
ID09IDgpOwogCkBAIC01NzYyLDYgKzU4MDgsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlk
U2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogCiBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkQXJl
YVNob3J0aGFuZChib29sIGltcG9ydGFudCkKIHsKKyAgICBBU1NFUlQoY3NzR3JpZExheW91dEVu
YWJsZWQoKSk7CisKICAgICBTaG9ydGhhbmRTY29wZSBzY29wZSh0aGlzLCBDU1NQcm9wZXJ0eVdl
YmtpdEdyaWRBcmVhKTsKICAgICBBU1NFUlQoc2hvcnRoYW5kRm9yUHJvcGVydHkoQ1NTUHJvcGVy
dHlXZWJraXRHcmlkQXJlYSkubGVuZ3RoKCkgPT0gNCk7CiAKQEAgLTU3OTksNiArNTg0Nyw4IEBA
IGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRBcmVhU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQog
CiBib29sIENTU1BhcnNlcjo6cGFyc2VTaW5nbGVHcmlkQXJlYUxvbmdoYW5kKFJlZlB0cjxDU1NW
YWx1ZT4mIHByb3BlcnR5KQogeworICAgIEFTU0VSVChjc3NHcmlkTGF5b3V0RW5hYmxlZCgpKTsK
KwogICAgIGlmICghbV92YWx1ZUxpc3QtPmN1cnJlbnQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAKQEAgLTU4MTQsNiArNTg2NCw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVNpbmdsZUdyaWRB
cmVhTG9uZ2hhbmQoUmVmUHRyPENTU1ZhbHVlPiYgcHJvcGVydHkpCiAKIGJvb2wgQ1NTUGFyc2Vy
OjpwYXJzZUdyaWRMaW5lTmFtZXMoQ1NTUGFyc2VyVmFsdWVMaXN0JiBpbnB1dExpc3QsIENTU1Zh
bHVlTGlzdCYgdmFsdWVMaXN0LCBDU1NHcmlkTGluZU5hbWVzVmFsdWUqIHByZXZpb3VzTmFtZWRB
cmVhVHJhaWxpbmdMaW5lTmFtZXMpCiB7CisgICAgQVNTRVJUKGNzc0dyaWRMYXlvdXRFbmFibGVk
KCkpOwogICAgIEFTU0VSVChpbnB1dExpc3QuY3VycmVudCgpICYmIGlucHV0TGlzdC5jdXJyZW50
KCktPnVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6OlZhbHVlTGlzdCk7CiAKICAgICBDU1NQYXJzZXJW
YWx1ZUxpc3QmIGlkZW50TGlzdCA9ICppbnB1dExpc3QuY3VycmVudCgpLT52YWx1ZUxpc3Q7CkBA
IC01ODY1LDYgKzU5MTYsOCBAQCBzdGF0aWMgYm9vbCBhbGxUcmFja3NBcmVGaXhlZFNpemVkKENT
U1ZhbHVlTGlzdCYgdmFsdWVMaXN0KQogCiBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFy
c2VHcmlkVHJhY2tMaXN0KCkKIHsKKyAgICBBU1NFUlQoY3NzR3JpZExheW91dEVuYWJsZWQoKSk7
CisKICAgICBDU1NQYXJzZXJWYWx1ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOwog
ICAgIGlmICh2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVOb25lKSB7CiAgICAgICAgIG1fdmFsdWVMaXN0
LT5uZXh0KCk7CkBAIC01OTE2LDYgKzU5NjksOCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNl
cjo6cGFyc2VHcmlkVHJhY2tMaXN0KCkKIAogYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNr
UmVwZWF0RnVuY3Rpb24oQ1NTVmFsdWVMaXN0JiBsaXN0LCBib29sJiBpc0F1dG9SZXBlYXQpCiB7
CisgICAgQVNTRVJUKGNzc0dyaWRMYXlvdXRFbmFibGVkKCkpOworCiAgICAgQ1NTUGFyc2VyVmFs
dWVMaXN0KiBhcmd1bWVudHMgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpLT5mdW5jdGlvbi0+YXJn
cy5nZXQoKTsKICAgICBpZiAoIWFyZ3VtZW50cyB8fCBhcmd1bWVudHMtPnNpemUoKSA8IDMgfHwg
IWlzQ29tbWEoYXJndW1lbnRzLT52YWx1ZUF0KDEpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpA
QCAtNTk3OSw2ICs2MDM0LDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrUmVwZWF0
RnVuY3Rpb24oQ1NTVmFsdWVMaXN0JiBsaXN0LCBib29sJiBpc0F1dG9SZXAKIAogUmVmUHRyPENT
U1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrU2l6ZShDU1NQYXJzZXJWYWx1ZUxpc3Qm
IGlucHV0TGlzdCwgVHJhY2tTaXplUmVzdHJpY3Rpb24gcmVzdHJpY3Rpb24pCiB7CisgICAgQVNT
RVJUKGNzc0dyaWRMYXlvdXRFbmFibGVkKCkpOworCiAgICAgQ1NTUGFyc2VyVmFsdWUmIGN1cnJl
bnRWYWx1ZSA9ICppbnB1dExpc3QuY3VycmVudCgpOwogICAgIGlucHV0TGlzdC5uZXh0KCk7CiAK
QEAgLTYwMTAsNiArNjA2Nyw4IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdy
aWRUcmFja1NpemUoQ1NTUGFyc2VyVmFsdWVMaXN0JiBpbnB1dExpc3QsIFRyCiAKIFJlZlB0cjxD
U1NQcmltaXRpdmVWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRCcmVhZHRoKENTU1BhcnNlclZh
bHVlJiB2YWx1ZSwgVHJhY2tTaXplUmVzdHJpY3Rpb24gcmVzdHJpY3Rpb24pCiB7CisgICAgQVNT
RVJUKGNzc0dyaWRMYXlvdXRFbmFibGVkKCkpOworCiAgICAgaWYgKHZhbHVlLmlkID09IENTU1Zh
bHVlV2Via2l0TWluQ29udGVudCB8fCB2YWx1ZS5pZCA9PSBDU1NWYWx1ZVdlYmtpdE1heENvbnRl
bnQgfHwgdmFsdWUuaWQgPT0gQ1NTVmFsdWVBdXRvKSB7CiAgICAgICAgIGlmIChyZXN0cmljdGlv
biA9PSBGaXhlZFNpemVPbmx5KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC02MDQz
LDYgKzYxMDIsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZEdyaWRBdXRvRmxvd0lkKENT
U1ZhbHVlSUQgaWQpCiAKIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRBdXRv
RmxvdyhDU1NQYXJzZXJWYWx1ZUxpc3QmIGlucHV0TGlzdCkKIHsKKyAgICBBU1NFUlQoY3NzR3Jp
ZExheW91dEVuYWJsZWQoKSk7CisKICAgICAvLyBbIHJvdyB8IGNvbHVtbiBdIHx8IGRlbnNlCiAg
ICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gaW5wdXRMaXN0LmN1cnJlbnQoKTsKICAgICBpZiAo
IXZhbHVlKQpAQCAtNjI2Myw2ICs2MzI0LDggQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHBhcnNl
R3JpZFRlbXBsYXRlQXJlYXNDb2x1bW5OYW1lcyhjb25zdCBTdHJpbmcmIGdyaWRSb3dOYW0KIAog
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZFRlbXBsYXRlQXJlYXNSb3coTmFtZWRHcmlkQXJlYU1h
cCYgZ3JpZEFyZWFNYXAsIGNvbnN0IHVuc2lnbmVkIHJvd0NvdW50LCB1bnNpZ25lZCYgY29sdW1u
Q291bnQpCiB7CisgICAgQVNTRVJUKGNzc0dyaWRMYXlvdXRFbmFibGVkKCkpOworCiAgICAgQ1NT
UGFyc2VyVmFsdWUqIGN1cnJlbnRWYWx1ZSA9IG1fdmFsdWVMaXN0LT5jdXJyZW50KCk7CiAgICAg
aWYgKCFjdXJyZW50VmFsdWUgfHwgY3VycmVudFZhbHVlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfU1RSSU5HKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC02MzI0LDYgKzYzODcs
OCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkVGVtcGxhdGVBcmVhc1JvdyhOYW1lZEdyaWRB
cmVhTWFwJiBncmlkQXJlYU1hcCwgY29uc3QgdQogCiBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNl
cjo6cGFyc2VHcmlkVGVtcGxhdGVBcmVhcygpCiB7CisgICAgQVNTRVJUKGNzc0dyaWRMYXlvdXRF
bmFibGVkKCkpOworCiAgICAgaWYgKG1fdmFsdWVMaXN0LT5jdXJyZW50KCkgJiYgbV92YWx1ZUxp
c3QtPmN1cnJlbnQoKS0+aWQgPT0gQ1NTVmFsdWVOb25lKSB7CiAgICAgICAgIG1fdmFsdWVMaXN0
LT5uZXh0KCk7CiAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOwpAQCAtMTAyMTIsNiArMTAyNzcsMTMgQEAg
Ym9vbCBDU1NQYXJzZXI6OmNzc0NvbXBvc2l0aW5nRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJu
IG1fY29udGV4dC5pc0NTU0NvbXBvc2l0aW5nRW5hYmxlZDsKIH0KIAorI2lmIEVOQUJMRShDU1Nf
R1JJRF9MQVlPVVQpCitib29sIENTU1BhcnNlcjo6Y3NzR3JpZExheW91dEVuYWJsZWQoKSBjb25z
dAoreworICAgIHJldHVybiBtX2NvbnRleHQuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZDsKK30KKyNl
bmRpZgorCiAjaWYgRU5BQkxFKENTU19SRUdJT05TKQogCiAvLyBub25lIHwgPGlkZW50PgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5oCmluZGV4IGVmMjQzOTBlNDExYTkyNjFkNjY3YThiY2M5ZjVkZWJiMTA2
NGJjYWMuLjI5ZjZmM2NlMzgzMDJlYzdmYjA3Mzk4YTcxNjkyZmE1ZTUzMjViYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmgKQEAgLTIwOCw2ICsyMDgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBwYXJz
ZUNvbHVtbnNTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOwogCiAjaWYgRU5BQkxFKENTU19HUklE
X0xBWU9VVCkKKyAgICBib29sIGNzc0dyaWRMYXlvdXRFbmFibGVkKCkgY29uc3Q7CiAgICAgUmVm
UHRyPENTU1ZhbHVlPiBwYXJzZUdyaWRQb3NpdGlvbigpOwogICAgIGJvb2wgcGFyc2VHcmlkSXRl
bVBvc2l0aW9uU2hvcnRoYW5kKENTU1Byb3BlcnR5SUQsIGJvb2wgaW1wb3J0YW50KTsKICAgICBS
ZWZQdHI8Q1NTVmFsdWU+IHBhcnNlR3JpZFRlbXBsYXRlQ29sdW1ucygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlck1vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXJNb2RlLmgKaW5kZXggMWYyOWI4NDMwNThjM2JmZjM5YjljYzZjZjcxYjI5NWM0OWMw
NjZhMS4uMTYxNWMxNmFkNTU4MjdhMGRkNzVhMjZhZmVlZWI4NmY1NjhmZDc3MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlck1vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyTW9kZS5oCkBAIC02Niw2ICs2Niw5IEBAIHB1YmxpYzoKICAgICBib29s
IGlzSFRNTERvY3VtZW50OwogICAgIGJvb2wgaXNDU1NSZWdpb25zRW5hYmxlZDsKICAgICBib29s
IGlzQ1NTQ29tcG9zaXRpbmdFbmFibGVkOworI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisg
ICAgYm9vbCBpc0NTU0dyaWRMYXlvdXRFbmFibGVkOworI2VuZGlmCiAgICAgYm9vbCBuZWVkc1Np
dGVTcGVjaWZpY1F1aXJrczsKICAgICBib29sIGVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5vUXVpcmtz
TW9kZTsKICAgICBib29sIHVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3I7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA2YjE4MzNlNjY2ZTA0OTkxYzNmZDU4YjM2YTdm
YmNhYjIxNzQ1NWMzLi5kNTU2YWE4MTVkNTM5MGE0ZmM2ODI5MTNmY2FjMDMwYzljNGZiMjdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTExMzgsNiArMTEzOCwxMyBAQCBib29sIERvY3Vt
ZW50Ojpjc3NDb21wb3NpdGluZ0VuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmNzc0NvbXBvc2l0aW5nRW5hYmxlZCgpOwog
fQogCisjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKK2Jvb2wgRG9jdW1lbnQ6OmNzc0dyaWRM
YXlvdXRFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5jc3NHcmlkTGF5b3V0RW5hYmxlZCgpOworfQorI2VuZGlmCisK
ICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAKIFJlZlB0cjxET01OYW1lZEZsb3dDb2xsZWN0aW9u
PiBEb2N1bWVudDo6d2Via2l0R2V0TmFtZWRGbG93cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IGRkOGVmOTdiZmEwNzYwMGE2NWU0ODA0YmU3M2MyNjgxNGJiYzJjYmIuLjhlZTBiM2MwMWI5MzMx
OGQyYTdlYWRhMDAwMWJkOWY5MjM2YTAyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zOTQs
NiArMzk0LDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBjc3NSZWdpb25zRW5hYmxlZCgpIGNvbnN0
OwogICAgIGJvb2wgY3NzQ29tcG9zaXRpbmdFbmFibGVkKCkgY29uc3Q7CisjaWYgRU5BQkxFKENT
U19HUklEX0xBWU9VVCkKKyAgICBib29sIGNzc0dyaWRMYXlvdXRFbmFibGVkKCkgY29uc3Q7Cisj
ZW5kaWYKICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgUmVmUHRyPERPTU5hbWVkRmxvd0Nv
bGxlY3Rpb24+IHdlYmtpdEdldE5hbWVkRmxvd3MoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCmluZGV4IGQ0NWFjY2Q1ZjBiY2UwNjcxN2VmZWM4YTliMDI2Y2FjODYy
MmZiYTkuLjIxZDhiNzY5ZGNmMjZhNDEyYmE2ZDA1YzFjNWY3YWU5YmJmYTFkZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMzMTgsNCArMzMxOCwxMSBAQCB2b2lkIElu
dGVybmFsczo6c2V0TGlua1ByZWxvYWRTdXBwb3J0KGJvb2wgZW5hYmxlKQogICAgIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0TGlua1ByZWxvYWRFbmFibGVkKGVu
YWJsZSk7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQordm9pZCBJbnRlcm5hbHM6
OnNldENTU0dyaWRMYXlvdXRFbmFibGVkKGJvb2wgZW5hYmxlKQoreworICAgIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoZW5h
YmxlKTsKK30KKyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBm
M2FmZjJmZjk3MTg3Yzk5ZWFlMmFlOWQ5NzJlNTdmMzc0NDczNjE0Li41ODgyZTc2ZjA2NWQxMDFl
ZmZhYTgwNDE2ZDNhYjEwZmMzZDRjOWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
QEAgLTQ2OSw2ICs0NjksMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Vmlld3BvcnRGb3JjZUFs
d2F5c1VzZXJTY2FsYWJsZShib29sKTsKICAgICB2b2lkIHNldExpbmtQcmVsb2FkU3VwcG9ydChi
b29sKTsKIAorI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisgICAgdm9pZCBzZXRDU1NHcmlk
TGF5b3V0RW5hYmxlZChib29sKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IElu
dGVybmFscyhEb2N1bWVudCYpOwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAzMmFkYjFjMDEzYWFlODc0
MDQxZDRhMTc1NmQwNWUwMzQwMjc3ZTRkLi4zZTAyNjZmNWY3YzFkZDRhN2I0ZmFlYmRhZDAyNWZj
ODUyMzViM2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC00NDYsNCAr
NDQ2LDkgQEAgZW51bSBBdXRvRmlsbEJ1dHRvblR5cGUgewogCiAgICAgdm9pZCBzZXRWaWV3cG9y
dEZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKGJvb2xlYW4gc2NhbGFibGUpOwogICAgIHZvaWQgc2V0
TGlua1ByZWxvYWRTdXBwb3J0KGJvb2xlYW4gc2NhbGFibGUpOworCisjaWYgZGVmaW5lZChFTkFC
TEVfQ1NTX0dSSURfTEFZT1VUKSAmJiBFTkFCTEVfQ1NTX0dSSURfTEFZT1VUCisgICAgdm9pZCBz
ZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChib29sZWFuIGVuYWJsZSk7CisjZW5kaWYKKwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oCmluZGV4IDRmYTliYTdkYWM0ZWQyN2MyYTczMjE5NmY5MThiNTc1YTY1ZmFiZGEuLjNkMTZl
ZGM0NDU0ZDg1NjNiNDVkNmRiMDQ3MDc1N2FkM2E1M2EyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTY0LDYg
KzE2NCw3IEBACiAjZGVmaW5lIFdlYktpdEN1c3RvbUVsZW1lbnRzRW5hYmxlZFByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRDdXN0b21FbGVtZW50c0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEZldGNoQVBJ
RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRGZXRjaEFQSUVuYWJsZWQiCiAjZGVmaW5lIFdl
YktpdERvd25sb2FkQXR0cmlidXRlRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREb3dubG9h
ZEF0dHJpYnV0ZUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIgogCiAjaWYgIVRBUkdFVF9P
U19JUEhPTkUKIC8vIFRoZXNlIGFyZSBwcml2YXRlIGJvdGggYmVjYXVzZSBjYWxsZXJzIHNob3Vs
ZCBiZSB1c2luZyB0aGUgY292ZXIgbWV0aG9kcyBhbmQgYmVjYXVzZSB0aGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDk2NzY0MDJlMGE0ZWVhYjNm
M2VhNGU4MTAwNDRkNzY0N2UyMDY1NmIuLjkxOGVkOWM3MzQyNGIyZTZkMmM5MDc5YjVmM2UxOWJl
NWEzY2RhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5t
bQpAQCAtNjE5LDYgKzYxOSw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoRE9XTkxPQURfQVRUUklC
VVRFKQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCBXZWJLaXREb3dubG9h
ZEF0dHJpYnV0ZUVuYWJsZWRQcmVmZXJlbmNlS2V5LAogI2VuZGlmCisjaWYgRU5BQkxFKENTU19H
UklEX0xBWU9VVCkKKyAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sIFdlYktp
dENTU0dyaWRMYXlvdXRFbmFibGVkUHJlZmVyZW5jZUtleSwKKyNlbmRpZgogICAgICAgICBuaWxd
OwogCiAjaWYgIVBMQVRGT1JNKElPUykKQEAgLTI3MzksNiArMjc0MiwxNiBAQCBzdGF0aWMgTlNT
dHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpm
bGFnIGZvcktleTpXZWJLaXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsK
IH0KIAorLSAoQk9PTCljc3NHcmlkTGF5b3V0RW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBf
Ym9vbFZhbHVlRm9yS2V5OldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkUHJlZmVyZW5jZUtleV07
Cit9CisKKy0gKHZvaWQpc2V0Q1NTR3JpZExheW91dEVuYWJsZWQ6KEJPT0wpZmxhZworeworICAg
IFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0Q1NTR3JpZExheW91dEVuYWJs
ZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViUHJlZmVy
ZW5jZXMgKFdlYkludGVybmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggN2NhYTk4ZGZmMTNlMWQxODg2YmJjZjU5YzRhNTM1
NzM0OWNjYTM2Ni4uZDRiZTVlMmMxMjg0YTUyZGJjNGEwM2IxN2JjMDJjYWFjODUwNzZiNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CkBAIC00OTAsNiArNDkwLDkgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hl
TW9kZWxDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb247CiAtICh2b2lkKXNldERvd25sb2FkQXR0
cmlidXRlRW5hYmxlZDooQk9PTClmbGFnOwogLSAoQk9PTClkb3dubG9hZEF0dHJpYnV0ZUVuYWJs
ZWQ7CiAKKy0gKHZvaWQpc2V0Q1NTR3JpZExheW91dEVuYWJsZWQ6KEJPT0wpZmxhZzsKKy0gKEJP
T0wpY3NzR3JpZExheW91dEVuYWJsZWQ7CisKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGph
dmFTY3JpcHRNYXJrdXBFbmFibGVkOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbWVkaWFE
YXRhTG9hZHNBdXRvbWF0aWNhbGx5OwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYXR0YWNo
bWVudEVsZW1lbnRFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4
IDMyMWFlN2FmNDk0MDg1N2Q5MDZkYTc4NTM1Yzc0ZTFmYTM1ZTFiMTguLjBjMzc3NzZkZjc4MmY2
Mzg1YTkwNGI0OTFmMjc3MDJkNzkyNzQxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KQEAgLTI0OTMsNiArMjQ5MywxMCBAQCBzdGF0aWMgYm9vbCBuZWVkc1NlbGZSZXRhaW5X
aGlsZUxvYWRpbmdRdWlyaygpCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5zZXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQoW3ByZWZlcmVuY2VzIGRvd25sb2Fk
QXR0cmlidXRlRW5hYmxlZF0pOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VU
KQorICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NTR3Jp
ZExheW91dEVuYWJsZWQoW3ByZWZlcmVuY2VzIGNzc0dyaWRMYXlvdXRFbmFibGVkXSk7CisjZW5k
aWYKKwogICAgIE5TVGltZUludGVydmFsIHRpbWVvdXQgPSBbcHJlZmVyZW5jZXMgaW5jcmVtZW50
YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHNdOwogICAgIGlmICh0aW1lb3V0
ID4gMCkKICAgICAgICAgc2V0dGluZ3Muc2V0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lv
blRpbWVvdXRJblNlY29uZHModGltZW91dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCAyYTU5ODZlNWU1NWFiOGQ0MDI3NDdj
Zjc2ZDc4NjIwOWFmODgyNTQ0Li45ODM4YjFmYTkzZGM0ZGMxYzE2OWY3NzllMDg2OGUzNGY1ZTNj
NjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmlu
aXRpb25zLmgKQEAgLTIzMCw2ICsyMzAsNyBAQAogICAgIG1hY3JvKEZldGNoQVBJRW5hYmxlZCwg
ZmV0Y2hBUElFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBcCiAgICAgbWFjcm8o
V2ViR0wyRW5hYmxlZCwgd2ViR0wyRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAiIikg
XAogICAgIG1hY3JvKERvd25sb2FkQXR0cmlidXRlRW5hYmxlZCwgZG93bmxvYWRBdHRyaWJ1dGVF
bmFibGVkLCBCb29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBcCisgICAgbWFjcm8oQ1NTR3JpZExh
eW91dEVuYWJsZWQsIGNzc0dyaWRMYXlvdXRFbmFibGVkLCBCb29sLCBib29sLCB0cnVlLCAiIiwg
IiIpIFwKICAgICBGT1JfRUFDSF9BRERJVElPTkFMX1dFQktJVF9CT09MX1BSRUZFUkVOQ0UobWFj
cm8pIFwKICAgICBcCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzLmNwcAppbmRleCAwOGM2M2NiMDNjMTJhYWFhNDY2ZDVhNzQwNzU2ZmNjOTljNzAy
ODZjLi5mYjJhNWEzZjYzYjllZDRlZjI1YzI4NGRlNTNjMTBiZDY0ODFjYzhhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0xNTQw
LDMgKzE1NDAsMTMgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0RG93bmxvYWRBdHRyaWJ1dGVFbmFi
bGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCiB7CiAgICAgcmV0dXJuIHRvSW1w
bChwcmVmZXJlbmNlc1JlZiktPmRvd25sb2FkQXR0cmlidXRlRW5hYmxlZCgpOwogfQorCit2b2lk
IFdLUHJlZmVyZW5jZXNTZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpCit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+
c2V0Q1NTR3JpZExheW91dEVuYWJsZWQoZmxhZyk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dl
dENTU0dyaWRMYXlvdXRFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7
CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmNzc0dyaWRMYXlvdXRFbmFibGVk
KCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1JlZlByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCmluZGV4IDlkYTMxNDAxNTNlZGQ0ZGYwMTEzODhiYTk4MDk2
NDQ0Zjk0MGQ4YzMuLjM1OWRlNDUzOWM0ODJiMWYxNTI1Yjk3NmVjMzY3ZjhkMjM5ZGExOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVm
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzUmVmUHJpdmF0ZS5oCkBAIC00MzEsNiArNDMxLDEwIEBAIFdLX0VYUE9SVCBib29sIFdLUHJl
ZmVyZW5jZXNHZXRGZXRjaEFQSUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CiBXS19FWFBPUlQg
dm9pZCBXS1ByZWZlcmVuY2VzU2V0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkKFdLUHJlZmVyZW5j
ZXNSZWYsIGJvb2wgZmxhZyk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0RG93bmxv
YWRBdHRyaWJ1dGVFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwogCisvLyBEZWZhdWx0cyB0byB0
cnVlCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0Q1NTR3JpZExheW91dEVuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsKK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5j
ZXNHZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKKwogI2lmZGVmIF9f
Y3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggNDcxM2Q1MGMy
OGJkZjFjZDkxZThiNWEwNTY3MzJjYTg3MTEzOGI2ZS4uODkzZmM2ZjljZmE0ZDI5MjI0Yjc1ZDQ0
YWQ1MmVmNzU4ZjhhMTgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTIxNyw3ICsyMTcs
MTIgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6b3ZlcnJpZGVCb29sUHJlZmVyZW5jZUZvclRlc3RS
dW5uZXIoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2UKICAgICBpZiAocHJlZmVyZW5jZSA9PSAiV2Vi
S2l0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkIikKICAgICAgICAgUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQoZW5hYmxl
ZCk7CiAjZW5kaWYKLSAgICAKKworI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisgICAgaWYg
KHByZWZlcmVuY2UgPT0gIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIikKKyAgICAgICAgUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NHcmlkTGF5b3V0RW5h
YmxlZChlbmFibGVkKTsKKyNlbmRpZgorCiAgICAgLy8gTWFwIHRoZSBuYW1lcyB1c2VkIGluIExh
eW91dFRlc3RzIHdpdGggdGhlIG5hbWVzIHVzZWQgaW4gV2ViQ29yZTo6U2V0dGluZ3MgYW5kIFdl
YlByZWZlcmVuY2VzU3RvcmUuCiAjZGVmaW5lIEZPUl9FQUNIX09WRVJSSURFX0JPT0xfUFJFRkVS
RU5DRShtYWNybykgXAogICAgIG1hY3JvKFdlYktpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkLCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCwgYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCBmZWNiNTRjODNiYTUzMzFjYWZiMTU4MWQyMTM4YTQ5OWIwMDU4MjAwLi5hMmQ4
MTFhY2RkODFlYmEwMjJmNjkyMzUzZTIwZWIyNzAzODQ2YjViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMTE4LDYgKzMxMTgsMTAgQEAg
dm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3Jl
JiBzdG9yZSkKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNl
dERvd25sb2FkQXR0cmlidXRlRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OmRvd25sb2FkQXR0cmlidXRlRW5hYmxlZEtleSgpKSk7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmNzc0dyaWRMYXlvdXRFbmFibGVkS2V5KCkpKTsK
KyNlbmRpZgorCiAgICAgYm9vbCBwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkID0gc3RvcmUuZ2V0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpwYWdlVmlzaWJpbGl0eUJhc2VkUHJv
Y2Vzc1N1cHByZXNzaW9uRW5hYmxlZEtleSgpKTsKICAgICBpZiAobV9wcm9jZXNzU3VwcHJlc3Np
b25FbmFibGVkICE9IHByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQpIHsKICAgICAgICAgbV9wcm9j
ZXNzU3VwcHJlc3Npb25FbmFibGVkID0gcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZDsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA3ZWQyNzU5OTI4NzZmZjI3ZWMxZTRmOTU2YTM2NzQ5ZTczNGJjMmQ5Li5kMDA0ZGExODFmNTRi
YTEyZDA2OTdkOTc1ZTg3NWRjNzQ3YWE2NzYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTYt
MDQtMjggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKKyAgICAg
ICAgW2Nzcy1ncmlkXSBBZGQgQ1NTIEdyaWQgTGF5b3V0IHJ1bnRpbWUgZmxhZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MTM0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgdG8gdmVyaWZ5
IHRoYXQgQ1NTIEdyaWQgTGF5b3V0IGlzIGRpc2FibGVkIGlmIHRoZSBmbGFnIGlzIG9mZi4KKwor
ICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtZGlzYWJsZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtZGlzYWJsZS5odG1s
OiBBZGRlZC4KKworMjAxNi0wNC0yOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdh
bGlhLmNvbT4KKwogICAgICAgICBbY3NzLWdyaWRdIEZpeCBhbGlnbm1lbnQgd2l0aCBjb250ZW50
IGRpc3RyaWJ1dGlvbgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU2NjIzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5
b3V0L2dyaWQtZGlzYWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlk
LWxheW91dC9ncmlkLWRpc2FibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4ODg3Mzk3NGQ0
ZDc4NzU4ZTI0NjE5MWEyZDg3NGY3NzIwODcxNWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWRpc2FibGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTEgQEAKK1ZlcmlmaWVzIHRoYXQgQ1NTIEdyaWQgTGF5b3V0IGRvZXMgbm90IHdvcmsg
aWYgcnVudGltZSBmZWF0dXJlIGlzIGRpc2FibGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JpZCcpLnN0eWxlLmRpc3Bs
YXkgaXMgJycKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lubGluZWdyaWQnKS5zdHls
ZS5kaXNwbGF5IGlzICcnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQv
Z3JpZC1kaXNhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlk
LWRpc2FibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTUxZDRhMGI5NjViZGY2MjkwODIxOTY0ODkxYzA3
NzgwNGM2NmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1s
YXlvdXQvZ3JpZC1kaXNhYmxlLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgd2luZG93LmludGVybmFscy5z
ZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChmYWxzZSk7Cis8L3NjcmlwdD4KKworPGRpdiBpZD0iZ3Jp
ZCIgc3R5bGU9ImRpc3BsYXk6IC13ZWJraXQtZ3JpZCI+PC9kaXY+Cis8ZGl2IGlkPSJpbmxpbmVn
cmlkIiBzdHlsZT0iZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZ3JpZCI+PC9kaXY+CisKKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0IENTUyBHcmlkIExheW91dCBkb2VzIG5vdCB3
b3JrIGlmIHJ1bnRpbWUgZmVhdHVyZSBpcyBkaXNhYmxlZC4iKTsKKworc2hvdWxkQmUoImRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdncmlkJykuc3R5bGUuZGlzcGxheSIsICInJyIpOworc2hvdWxk
QmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmxpbmVncmlkJykuc3R5bGUuZGlzcGxheSIs
ICInJyIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277643</attachid>
            <date>2016-04-28 13:10:23 -0700</date>
            <delta_ts>2016-04-28 14:01:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157134-20160428221054.patch</filename>
            <type>text/plain</type>
            <size>33144</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ5MTRlYTIwYWVlOGI5
OTdjZWIxOGQwOGMyYTA5OGY4MDE4Y2I4MS4uN2JjZWRhM2NiN2I3YTNjNjI5MjlmOTcxMTJkNDAx
YTZhOWFjYzc2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE2LTA0LTI4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtZ3Jp
ZF0gQWRkIENTUyBHcmlkIExheW91dCBydW50aW1lIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzEzNAorCisgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlci4KKworICAgICAgICBBZGQgQ1NTIEdyaWQgTGF5b3V0IHJ1bnRpbWUgZmxh
ZyBlbmFibGVkIGJ5IGRlZmF1bHQuCisgICAgICAgIERpc2FibGUgcGFyc2luZyBvZiBDU1MgR3Jp
ZCBMYXlvdXQgcHJvcGVydGllcworICAgICAgICBpZiB0aGUgcnVudGltZSBmbGFnIGlzIG5vdCBl
bmFibGVkLgorICAgICAgICBFeHBvc2UgcnVudGltZSBmbGFnIHRocm91Z2ggaW50ZXJuYWxzIHRv
IHZlcmlmeSB0aGF0CisgICAgICAgIGl0J3Mgd29ya2luZyBhcyBleHBlY3RlZC4KKworICAgICAg
ICBUZXN0OiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWRpc2FibGUuaHRtbAorCisgICAgICAg
ICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMp
OgorICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgor
ICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0Q1NTR3JpZExheW91
dEVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXND
U1NHcmlkTGF5b3V0RW5hYmxlZCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6aXNWYWxpZEtleXdv
cmRQcm9wZXJ0eUFuZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlSW50ZWdlck9yQ3VzdG9t
SWRlbnRGcm9tR3JpZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VHcmlkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdyaWRJ
dGVtUG9zaXRpb25TaG9ydGhhbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJz
ZUdyaWRHYXBTaG9ydGhhbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdy
aWRUZW1wbGF0ZUNvbHVtbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdy
aWRUZW1wbGF0ZVJvd3NBbmRBcmVhc0FuZENvbHVtbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZUdyaWRUZW1wbGF0ZVNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6OnBhcnNlR3JpZFNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnBhcnNlR3JpZEFyZWFTaG9ydGhhbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpwYXJzZVNpbmdsZUdyaWRBcmVhTG9uZ2hhbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyOjpwYXJzZUdyaWRMaW5lTmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpw
YXJzZUdyaWRUcmFja0xpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdy
aWRUcmFja1JlcGVhdEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VHcmlkVHJhY2tTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlk
QnJlYWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZEF1dG9GbG93
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlkVGVtcGxhdGVBcmVhc1Jv
dyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZFRlbXBsYXRlQXJlYXMp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjppc2NTU0dyaWRMYXlvdXRFbmFibGVkKToK
KyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NTU1BhcnNlck1vZGUu
aDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OmlzQ1NTR3JpZExheW91dEVuYWJsZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6c2V0Q1NTR3JpZExheW91dEVuYWJsZWQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDE2LTA0LTI4ICBT
ZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3Mt
Z3JpZF0gU3RvcmUgYXV0by1yZXBlYXQgaW5mb3JtYXRpb24gaW4gc3R5bGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwppbmRleCBiMjhhNDFmYzJjZTgyZmQyOGQ0YjE1OTJjNDc3Yzc3M2NmYjRmZjA3Li43MTM1ZTc3
N2QzOTJjZjQxNjE3YzgwODZhYmRhZTY0YThiOGUyZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjIgQEAKKzIwMTYtMDQtMjggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGln
YWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBBZGQgQ1NTIEdyaWQgTGF5b3V0IHJ1bnRp
bWUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU3MTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFk
ZCBDU1MgR3JpZCBMYXlvdXQgcnVudGltZSBmbGFnIGJhc2VkIG9uIHByZWZlcmVuY2VzLAorICAg
ICAgICBlbmFibGVkIGJ5IGRlZmF1bHQuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06Cisg
ICAgICAgICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKToKKyAgICAgICAgKC1bV2ViUHJl
ZmVyZW5jZXMgaXNDU1NHcmlkTGF5b3V0RW5hYmxlZF0pOgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDE2LTA0LTI3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBDU1A6IEFkZCBhcHAtc3Bl
Y2lmaWMgd29ya2Fyb3VuZCBmb3IgRWNvYmVlIGFuZCBRdW9yYQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI1ODg4
MTEzMTRiMmEyMjY1MTNkYmY1ZDU5N2IxMWNkODg3MzczOTQuLjMzNDFkMzM1ODFlYzYzM2Y0M2Ex
Y2M2NGQwMDhlZmQwZjE0MGRlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNi0w
NC0yOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAg
ICBbY3NzLWdyaWRdIEFkZCBDU1MgR3JpZCBMYXlvdXQgcnVudGltZSBmbGFnCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcxMzQKKworICAgICAgICBS
ZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWRkIENTUyBHcmlkIExheW91dCBy
dW50aW1lIGZsYWcgYmFzZWQgb24gcHJlZmVyZW5jZXMsCisgICAgICAgIGVuYWJsZWQgYnkgZGVm
YXVsdC4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQ
cmVmZXJlbmNlc1NldENTU0dyaWRMYXlvdXRFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5j
ZXNHZXRDU1NHcmlkTGF5b3V0RW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxl
OjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRh
dGVQcmVmZXJlbmNlcyk6CisKIDIwMTYtMDQtMjcgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxl
LmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjU5MTUyNTM+IFJFR1JFU1NJT04gKHIx
OTk2MjgpOiBOZXRmbGl4IHBsYXliYWNrIGZhaWxzIGluIFNhZmFyaSBUZWNobm9sb2d5IFByZXZp
ZXcgd2l0aCBlcnJvciBjb2RlIFM3MzYzLTEyNjAtRkZGRjU4RDgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3Bw
CmluZGV4IDFjZjRhYTc4Y2Q3NTNkMDcwYWQ1YmU0MTgxOWE0MDJkNDgzOTRiMjAuLjJjYzYxMjQx
Mzc4ZjQ1ZDEyZDdlMjk2OGYxOTAzZDAwY2M2NWU5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcApA
QCAtMTEzLDYgKzExMyw5IEBAIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMoKQogI2lmIEVOQUJMRShXRUJfQU5JTUFUSU9OUykKICAgICAsIG1fYXJlV2ViQW5p
bWF0aW9uc0VuYWJsZWQoZmFsc2UpCiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VU
KQorICAgICwgbV9jc3NHcmlkTGF5b3V0RW5hYmxlZCh0cnVlKQorI2VuZGlmCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgKaW5kZXggNWQ2NDY4NjUwMjYxYjE3MDc4Y2ViM2M1MjA2ODkxM2U1MDUwMmUw
YS4uMTFlY2Q5NTMzZDRkOGJlZjk4ZTFmZGQzNWYxNWNlNGVkMWNlZDFlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgKQEAgLTI0MSw2ICsyNDEsMTEgQEAgcHVibGljOgogICAgIGJvb2wgZG93bmxvYWRBdHRy
aWJ1dGVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0Rvd25sb2FkQXR0cmlidXRlRW5hYmxl
ZDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorICAgIHZvaWQgc2V0
Q1NTR3JpZExheW91dEVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9jc3NHcmlkTGF5b3V0RW5h
YmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fY3NzR3JpZExheW91dEVuYWJsZWQ7IH0KKyNlbmRpZgorCiAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMmIHNoYXJlZEZlYXR1cmVz
KCk7CiAKIHByaXZhdGU6CkBAIC0zNTQsNiArMzU5LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2lzRG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogCisjaWYgRU5B
QkxFKENTU19HUklEX0xBWU9VVCkKKyAgICBib29sIG1fY3NzR3JpZExheW91dEVuYWJsZWQ7Cisj
ZW5kaWYKKwogICAgIGZyaWVuZCBjbGFzcyBXVEY6Ok5ldmVyRGVzdHJveWVkPFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA0ZTNkNmNi
OTBiNTlkMGQzMDAzNjViY2ZlMDgzZjZmN2Y0MWQ0ODVmLi5mY2JkMzQwZmEwNzliODVjZTAwNWY3
NDYwYzNhODg3OTZkZjdlN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMjQ4LDYg
KzI0OCw5IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQoQ1NTUGFyc2VyTW9k
ZSBtb2RlLCBjb25zdCBVUkwmIGJhc2VVUkwpCiAgICAgLCBpc0hUTUxEb2N1bWVudChmYWxzZSkK
ICAgICAsIGlzQ1NTUmVnaW9uc0VuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5jc3NSZWdpb25zRW5hYmxlZCgpKQogICAgICwgaXNDU1NDb21wb3NpdGluZ0Vu
YWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5jc3NDb21wb3Np
dGluZ0VuYWJsZWQoKSkKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorICAgICwgY3NzR3Jp
ZExheW91dEVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5p
c0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpCisjZW5kaWYKICAgICAsIG5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzKGZhbHNlKQogICAgICwgZW5mb3JjZXNDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlKHRy
dWUpCiAgICAgLCB1c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yKGZhbHNl
KQpAQCAtMjY3LDYgKzI3MCw5IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0CiAgICAgLCBpc0hU
TUxEb2N1bWVudChkb2N1bWVudC5pc0hUTUxEb2N1bWVudCgpKQogICAgICwgaXNDU1NSZWdpb25z
RW5hYmxlZChkb2N1bWVudC5jc3NSZWdpb25zRW5hYmxlZCgpKQogICAgICwgaXNDU1NDb21wb3Np
dGluZ0VuYWJsZWQoZG9jdW1lbnQuY3NzQ29tcG9zaXRpbmdFbmFibGVkKCkpCisjaWYgRU5BQkxF
KENTU19HUklEX0xBWU9VVCkKKyAgICAsIGNzc0dyaWRMYXlvdXRFbmFibGVkKGRvY3VtZW50Lmlz
Q1NTR3JpZExheW91dEVuYWJsZWQoKSkKKyNlbmRpZgogICAgICwgbmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MoZG9jdW1lbnQuc2V0dGluZ3MoKSA/IGRvY3VtZW50LnNldHRpbmdzKCktPm5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzKCkgOiBmYWxzZSkKICAgICAsIGVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5v
UXVpcmtzTW9kZSghZG9jdW1lbnQuc2V0dGluZ3MoKSB8fCBkb2N1bWVudC5zZXR0aW5ncygpLT5l
bmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZSgpKQogICAgICwgdXNlTGVnYWN5QmFja2dy
b3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvcihkb2N1bWVudC5zZXR0aW5ncygpID8gZG9jdW1lbnQu
c2V0dGluZ3MoKS0+dXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvcigpIDog
ZmFsc2UpCkBAIC0yODcsNiArMjkzLDkgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAgICAgICAgICYmIGEuaXNI
VE1MRG9jdW1lbnQgPT0gYi5pc0hUTUxEb2N1bWVudAogICAgICAgICAmJiBhLmlzQ1NTUmVnaW9u
c0VuYWJsZWQgPT0gYi5pc0NTU1JlZ2lvbnNFbmFibGVkCiAgICAgICAgICYmIGEuaXNDU1NDb21w
b3NpdGluZ0VuYWJsZWQgPT0gYi5pc0NTU0NvbXBvc2l0aW5nRW5hYmxlZAorI2lmIEVOQUJMRShD
U1NfR1JJRF9MQVlPVVQpCisgICAgICAgICYmIGEuY3NzR3JpZExheW91dEVuYWJsZWQgPT0gYi5j
c3NHcmlkTGF5b3V0RW5hYmxlZAorI2VuZGlmCiAgICAgICAgICYmIGEubmVlZHNTaXRlU3BlY2lm
aWNRdWlya3MgPT0gYi5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcwogICAgICAgICAmJiBhLmVuZm9y
Y2VzQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZSA9PSBiLmVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5v
UXVpcmtzTW9kZQogICAgICAgICAmJiBhLnVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5k
QmVoYXZpb3IgPT0gYi51c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yOwpA
QCAtNjc0LDcgKzY4Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkS2V5d29yZFByb3Bl
cnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkLCBpbnQKICAgICAgICAgaWYgKCh2
YWx1ZUlEID49IENTU1ZhbHVlSW5saW5lICYmIHZhbHVlSUQgPD0gQ1NTVmFsdWVDb250ZW50cykg
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNp
ZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQotICAgICAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1
ZVdlYmtpdEdyaWQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVdlYmtpdElubGluZUdyaWQpCisgICAg
ICAgIGlmIChwYXJzZXJDb250ZXh0LmNzc0dyaWRMYXlvdXRFbmFibGVkICYmICh2YWx1ZUlEID09
IENTU1ZhbHVlV2Via2l0R3JpZCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0SW5saW5lR3Jp
ZCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogICAgICAgICBicmVhazsKQEAg
LTI3ODksMTEgKzI3OTgsMTUgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVy
dHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQp
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRBdXRvQ29sdW1uczoKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0R3JpZEF1dG9Sb3dzOgorICAgICAgICBpZiAoIWlzQ1NTR3JpZExheW91
dEVuYWJsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcGFyc2VkVmFs
dWUgPSBwYXJzZUdyaWRUcmFja1NpemUoKm1fdmFsdWVMaXN0KTsKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFRlbXBsYXRlQ29sdW1uczoKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0R3JpZFRlbXBsYXRlUm93czoKKyAgICAgICAgaWYgKCFpc0NTU0dy
aWRMYXlvdXRFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHBh
cnNlZFZhbHVlID0gcGFyc2VHcmlkVHJhY2tMaXN0KCk7CiAgICAgICAgIGJyZWFrOwogCkBAIC0y
ODAxLDM1ICsyODE0LDUyIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5
SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3Jp
ZENvbHVtbkVuZDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd1N0YXJ0OgogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkUm93RW5kOgorICAgICAgICBpZiAoIWlzQ1NTR3Jp
ZExheW91dEVuYWJsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcGFy
c2VkVmFsdWUgPSBwYXJzZUdyaWRQb3NpdGlvbigpOwogICAgICAgICBicmVhazsKIAogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uR2FwOgogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRHcmlkUm93R2FwOgorICAgICAgICBpZiAoIWlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxp
ZGF0ZVVuaXQodmFsdWVXaXRoQ2FsY3VsYXRpb24sIEZMZW5ndGggfCBGTm9uTmVnKTsKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZEdhcDoKKyAgICAgICAg
aWYgKCFpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIHJldHVybiBwYXJzZUdyaWRHYXBTaG9ydGhhbmQoaW1wb3J0YW50KTsKIAogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uOgotICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRHcmlkUm93OiB7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3c6CisgICAg
ICAgIGlmICghaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICByZXR1cm4gcGFyc2VHcmlkSXRlbVBvc2l0aW9uU2hvcnRoYW5kKHByb3BJ
ZCwgaW1wb3J0YW50KTsKLSAgICB9CiAKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFRl
bXBsYXRlOgorICAgICAgICBpZiAoIWlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIHBhcnNlR3JpZFRlbXBsYXRlU2hvcnRo
YW5kKGltcG9ydGFudCk7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZDoKKyAgICAg
ICAgaWYgKCFpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIHJldHVybiBwYXJzZUdyaWRTaG9ydGhhbmQoaW1wb3J0YW50KTsKIAogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQXJlYToKKyAgICAgICAgaWYgKCFpc0NTU0dyaWRM
YXlvdXRFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVy
biBwYXJzZUdyaWRBcmVhU2hvcnRoYW5kKGltcG9ydGFudCk7CiAKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0R3JpZFRlbXBsYXRlQXJlYXM6CisgICAgICAgIGlmICghaXNDU1NHcmlkTGF5b3V0
RW5hYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBwYXJzZWRWYWx1
ZSA9IHBhcnNlR3JpZFRlbXBsYXRlQXJlYXMoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEdyaWRBdXRvRmxvdzoKKyAgICAgICAgaWYgKCFpc0NTU0dyaWRMYXlv
dXRFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHBhcnNlZFZh
bHVlID0gcGFyc2VHcmlkQXV0b0Zsb3coKm1fdmFsdWVMaXN0KTsKICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYgLyogRU5BQkxFKENTU19HUklEX0xBWU9VVCkgKi8KQEAgLTU0MjIsNiArNTQ1Miw4IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkR3JpZFBvc2l0aW9uQ3VzdG9tSWRlbnQoY29uc3Qg
Q1NTUGFyc2VyVmFsdWUmIHZhbHVlKQogLy8gVGhlIGZ1bmN0aW9uIHBhcnNlcyBbIDxpbnRlZ2Vy
PiB8fCA8Y3VzdG9tLWlkZW50PiBdIGluIDxncmlkLWxpbmU+ICh3aGljaCBjYW4gYmUgc3RhbmQg
YWxvbmUgb3Igd2l0aCAnc3BhbicpLgogYm9vbCBDU1NQYXJzZXI6OnBhcnNlSW50ZWdlck9yQ3Vz
dG9tSWRlbnRGcm9tR3JpZFBvc2l0aW9uKFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4mIG51bWVy
aWNWYWx1ZSwgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiYgZ3JpZExpbmVOYW1lKQogeworICAg
IEFTU0VSVChpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpOworCiAgICAgVmFsdWVXaXRoQ2FsY3Vs
YXRpb24gdmFsdWVXaXRoQ2FsY3VsYXRpb24oKm1fdmFsdWVMaXN0LT5jdXJyZW50KCkpOwogICAg
IGlmICh2YWxpZGF0ZVVuaXQodmFsdWVXaXRoQ2FsY3VsYXRpb24sIEZJbnRlZ2VyKSAmJiB2YWx1
ZVdpdGhDYWxjdWxhdGlvbi52YWx1ZSgpLmZWYWx1ZSkgewogICAgICAgICBudW1lcmljVmFsdWUg
PSBjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUodmFsdWVXaXRoQ2FsY3VsYXRpb24pOwpAQCAt
NTQ1MCw2ICs1NDgyLDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlSW50ZWdlck9yQ3VzdG9tSWRl
bnRGcm9tR3JpZFBvc2l0aW9uKFJlZlB0cjxDU1NQcmltaXRpdmVWYWwKIAogUmVmUHRyPENTU1Zh
bHVlPiBDU1NQYXJzZXI6OnBhcnNlR3JpZFBvc2l0aW9uKCkKIHsKKyAgICBBU1NFUlQoaXNDU1NH
cmlkTGF5b3V0RW5hYmxlZCgpKTsKKwogICAgIENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFs
dWVMaXN0LT5jdXJyZW50KCk7CiAgICAgaWYgKHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUF1dG8pIHsK
ICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKQEAgLTU1MTIsNiArNTU0Niw4IEBAIHN0YXRp
YyBSZWZQdHI8Q1NTVmFsdWU+IGdyaWRNaXNzaW5nR3JpZFBvc2l0aW9uVmFsdWUoQ1NTVmFsdWUm
IHZhbHVlKQogCiBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkSXRlbVBvc2l0aW9uU2hvcnRoYW5k
KENTU1Byb3BlcnR5SUQgc2hvcnRoYW5kSWQsIGJvb2wgaW1wb3J0YW50KQogeworICAgIEFTU0VS
VChpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpOworCiAgICAgU2hvcnRoYW5kU2NvcGUgc2NvcGUo
dGhpcywgc2hvcnRoYW5kSWQpOwogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNo
b3J0aGFuZCA9IHNob3J0aGFuZEZvclByb3BlcnR5KHNob3J0aGFuZElkKTsKICAgICBBU1NFUlQo
c2hvcnRoYW5kLmxlbmd0aCgpID09IDIpOwpAQCAtNTU0MSw2ICs1NTc3LDggQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlR3JpZEl0ZW1Qb3NpdGlvblNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHNob3J0
aGFuZElkLCBib29sIGkKIAogYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZEdhcFNob3J0aGFuZChi
b29sIGltcG9ydGFudCkKIHsKKyAgICBBU1NFUlQoaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKTsK
KwogICAgIFNob3J0aGFuZFNjb3BlIHNjb3BlKHRoaXMsIENTU1Byb3BlcnR5V2Via2l0R3JpZEdh
cCk7CiAgICAgQVNTRVJUKHNob3J0aGFuZEZvclByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0R3Jp
ZEdhcCkubGVuZ3RoKCkgPT0gMik7CiAKQEAgLTU1NzgsNiArNTYxNiw4IEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZUdyaWRHYXBTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiAKIFJlZlB0cjxDU1NW
YWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRUZW1wbGF0ZUNvbHVtbnMoKQogeworICAgIEFTU0VS
VChpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpOworCiAgICAgaWYgKCEobV92YWx1ZUxpc3QtPmN1
cnJlbnQoKSAmJiBpc0ZvcndhcmRTbGFzaE9wZXJhdG9yKCptX3ZhbHVlTGlzdC0+Y3VycmVudCgp
KSAmJiBtX3ZhbHVlTGlzdC0+bmV4dCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
aWYgKGF1dG8gY29sdW1uc1ZhbHVlID0gcGFyc2VHcmlkVHJhY2tMaXN0KCkpIHsKQEAgLTU1OTEs
NiArNTYzMSw4IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRUZW1wbGF0
ZUNvbHVtbnMoKQogCiBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkVGVtcGxhdGVSb3dzQW5kQXJl
YXNBbmRDb2x1bW5zKGJvb2wgaW1wb3J0YW50KQogeworICAgIEFTU0VSVChpc0NTU0dyaWRMYXlv
dXRFbmFibGVkKCkpOworCiAgICAgLy8gQXQgbGVhc3QgdGVtcGxhdGUtYXJlYXMgc3RyaW5ncyBt
dXN0IGJlIGRlZmluZWQuCiAgICAgaWYgKCFtX3ZhbHVlTGlzdC0+Y3VycmVudCgpIHx8IGlzRm9y
d2FyZFNsYXNoT3BlcmF0b3IoKm1fdmFsdWVMaXN0LT5jdXJyZW50KCkpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC01NjU0LDYgKzU2OTYsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlk
VGVtcGxhdGVSb3dzQW5kQXJlYXNBbmRDb2x1bW5zKGJvb2wgaW1wb3J0YW50KQogCiBib29sIENT
U1BhcnNlcjo6cGFyc2VHcmlkVGVtcGxhdGVTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiB7Cisg
ICAgQVNTRVJUKGlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSk7CisKICAgICBTaG9ydGhhbmRTY29w
ZSBzY29wZSh0aGlzLCBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRUZW1wbGF0ZSk7CiAgICAgQVNTRVJU
KHNob3J0aGFuZEZvclByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0R3JpZFRlbXBsYXRlKS5sZW5n
dGgoKSA9PSAzKTsKIApAQCAtNTY5OCw2ICs1NzQyLDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNl
R3JpZFRlbXBsYXRlU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogCiBib29sIENTU1BhcnNlcjo6
cGFyc2VHcmlkU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogeworICAgIEFTU0VSVChpc0NTU0dy
aWRMYXlvdXRFbmFibGVkKCkpOworCiAgICAgU2hvcnRoYW5kU2NvcGUgc2NvcGUodGhpcywgQ1NT
UHJvcGVydHlXZWJraXRHcmlkKTsKICAgICBBU1NFUlQoc2hvcnRoYW5kRm9yUHJvcGVydHkoQ1NT
UHJvcGVydHlXZWJraXRHcmlkKS5sZW5ndGgoKSA9PSA4KTsKIApAQCAtNTc2Miw2ICs1ODA4LDgg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZFNob3J0aGFuZChib29sIGltcG9ydGFudCkKIAog
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZEFyZWFTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiB7
CisgICAgQVNTRVJUKGlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSk7CisKICAgICBTaG9ydGhhbmRT
Y29wZSBzY29wZSh0aGlzLCBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRBcmVhKTsKICAgICBBU1NFUlQo
c2hvcnRoYW5kRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRHcmlkQXJlYSkubGVuZ3RoKCkg
PT0gNCk7CiAKQEAgLTU3OTksNiArNTg0Nyw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRB
cmVhU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogCiBib29sIENTU1BhcnNlcjo6cGFyc2VTaW5n
bGVHcmlkQXJlYUxvbmdoYW5kKFJlZlB0cjxDU1NWYWx1ZT4mIHByb3BlcnR5KQogeworICAgIEFT
U0VSVChpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpOworCiAgICAgaWYgKCFtX3ZhbHVlTGlzdC0+
Y3VycmVudCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtNTgxNCw2ICs1ODY0LDcgQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlU2luZ2xlR3JpZEFyZWFMb25naGFuZChSZWZQdHI8Q1NTVmFs
dWU+JiBwcm9wZXJ0eSkKIAogYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZExpbmVOYW1lcyhDU1NQ
YXJzZXJWYWx1ZUxpc3QmIGlucHV0TGlzdCwgQ1NTVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIENTU0dy
aWRMaW5lTmFtZXNWYWx1ZSogcHJldmlvdXNOYW1lZEFyZWFUcmFpbGluZ0xpbmVOYW1lcykKIHsK
KyAgICBBU1NFUlQoaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKTsKICAgICBBU1NFUlQoaW5wdXRM
aXN0LmN1cnJlbnQoKSAmJiBpbnB1dExpc3QuY3VycmVudCgpLT51bml0ID09IENTU1BhcnNlclZh
bHVlOjpWYWx1ZUxpc3QpOwogCiAgICAgQ1NTUGFyc2VyVmFsdWVMaXN0JiBpZGVudExpc3QgPSAq
aW5wdXRMaXN0LmN1cnJlbnQoKS0+dmFsdWVMaXN0OwpAQCAtNTg2NSw2ICs1OTE2LDggQEAgc3Rh
dGljIGJvb2wgYWxsVHJhY2tzQXJlRml4ZWRTaXplZChDU1NWYWx1ZUxpc3QmIHZhbHVlTGlzdCkK
IAogUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrTGlzdCgpCiB7Cisg
ICAgQVNTRVJUKGlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSk7CisKICAgICBDU1NQYXJzZXJWYWx1
ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOwogICAgIGlmICh2YWx1ZS0+aWQgPT0g
Q1NTVmFsdWVOb25lKSB7CiAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CkBAIC01OTE2LDYg
KzU5NjksOCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tMaXN0
KCkKIAogYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrUmVwZWF0RnVuY3Rpb24oQ1NTVmFs
dWVMaXN0JiBsaXN0LCBib29sJiBpc0F1dG9SZXBlYXQpCiB7CisgICAgQVNTRVJUKGlzQ1NTR3Jp
ZExheW91dEVuYWJsZWQoKSk7CisKICAgICBDU1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3VtZW50cyA9
IG1fdmFsdWVMaXN0LT5jdXJyZW50KCktPmZ1bmN0aW9uLT5hcmdzLmdldCgpOwogICAgIGlmICgh
YXJndW1lbnRzIHx8IGFyZ3VtZW50cy0+c2l6ZSgpIDwgMyB8fCAhaXNDb21tYShhcmd1bWVudHMt
PnZhbHVlQXQoMSkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01OTc5LDYgKzYwMzQsOCBA
QCBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tSZXBlYXRGdW5jdGlvbihDU1NWYWx1ZUxp
c3QmIGxpc3QsIGJvb2wmIGlzQXV0b1JlcAogCiBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6
cGFyc2VHcmlkVHJhY2tTaXplKENTU1BhcnNlclZhbHVlTGlzdCYgaW5wdXRMaXN0LCBUcmFja1Np
emVSZXN0cmljdGlvbiByZXN0cmljdGlvbikKIHsKKyAgICBBU1NFUlQoaXNDU1NHcmlkTGF5b3V0
RW5hYmxlZCgpKTsKKwogICAgIENTU1BhcnNlclZhbHVlJiBjdXJyZW50VmFsdWUgPSAqaW5wdXRM
aXN0LmN1cnJlbnQoKTsKICAgICBpbnB1dExpc3QubmV4dCgpOwogCkBAIC02MDEwLDYgKzYwNjcs
OCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tTaXplKENTU1Bh
cnNlclZhbHVlTGlzdCYgaW5wdXRMaXN0LCBUcgogCiBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IENTU1BhcnNlcjo6cGFyc2VHcmlkQnJlYWR0aChDU1NQYXJzZXJWYWx1ZSYgdmFsdWUsIFRyYWNr
U2l6ZVJlc3RyaWN0aW9uIHJlc3RyaWN0aW9uKQogeworICAgIEFTU0VSVChpc0NTU0dyaWRMYXlv
dXRFbmFibGVkKCkpOworCiAgICAgaWYgKHZhbHVlLmlkID09IENTU1ZhbHVlV2Via2l0TWluQ29u
dGVudCB8fCB2YWx1ZS5pZCA9PSBDU1NWYWx1ZVdlYmtpdE1heENvbnRlbnQgfHwgdmFsdWUuaWQg
PT0gQ1NTVmFsdWVBdXRvKSB7CiAgICAgICAgIGlmIChyZXN0cmljdGlvbiA9PSBGaXhlZFNpemVP
bmx5KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC02MDQzLDYgKzYxMDIsOCBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZEdyaWRBdXRvRmxvd0lkKENTU1ZhbHVlSUQgaWQpCiAK
IFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRBdXRvRmxvdyhDU1NQYXJzZXJW
YWx1ZUxpc3QmIGlucHV0TGlzdCkKIHsKKyAgICBBU1NFUlQoaXNDU1NHcmlkTGF5b3V0RW5hYmxl
ZCgpKTsKKwogICAgIC8vIFsgcm93IHwgY29sdW1uIF0gfHwgZGVuc2UKICAgICBDU1NQYXJzZXJW
YWx1ZSogdmFsdWUgPSBpbnB1dExpc3QuY3VycmVudCgpOwogICAgIGlmICghdmFsdWUpCkBAIC02
MjYzLDYgKzYzMjQsOCBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VHcmlkVGVtcGxhdGVB
cmVhc0NvbHVtbk5hbWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJvd05hbQogCiBib29sIENTU1BhcnNl
cjo6cGFyc2VHcmlkVGVtcGxhdGVBcmVhc1JvdyhOYW1lZEdyaWRBcmVhTWFwJiBncmlkQXJlYU1h
cCwgY29uc3QgdW5zaWduZWQgcm93Q291bnQsIHVuc2lnbmVkJiBjb2x1bW5Db3VudCkKIHsKKyAg
ICBBU1NFUlQoaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKTsKKwogICAgIENTU1BhcnNlclZhbHVl
KiBjdXJyZW50VmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOwogICAgIGlmICghY3VycmVu
dFZhbHVlIHx8IGN1cnJlbnRWYWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NU
UklORykKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjMyNCw2ICs2Mzg3LDggQEAgYm9vbCBD
U1NQYXJzZXI6OnBhcnNlR3JpZFRlbXBsYXRlQXJlYXNSb3coTmFtZWRHcmlkQXJlYU1hcCYgZ3Jp
ZEFyZWFNYXAsIGNvbnN0IHUKIAogUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlR3Jp
ZFRlbXBsYXRlQXJlYXMoKQogeworICAgIEFTU0VSVChpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkp
OworCiAgICAgaWYgKG1fdmFsdWVMaXN0LT5jdXJyZW50KCkgJiYgbV92YWx1ZUxpc3QtPmN1cnJl
bnQoKS0+aWQgPT0gQ1NTVmFsdWVOb25lKSB7CiAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7
CiAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOwpAQCAtMTAyMTIsNiArMTAyNzcsMTMgQEAgYm9vbCBDU1NQ
YXJzZXI6OmNzc0NvbXBvc2l0aW5nRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4
dC5pc0NTU0NvbXBvc2l0aW5nRW5hYmxlZDsKIH0KIAorI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlP
VVQpCitib29sIENTU1BhcnNlcjo6aXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fY29udGV4dC5jc3NHcmlkTGF5b3V0RW5hYmxlZDsKK30KKyNlbmRpZgorCiAj
aWYgRU5BQkxFKENTU19SRUdJT05TKQogCiAvLyBub25lIHwgPGlkZW50PgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5oCmluZGV4IGVmMjQzOTBlNDExYTkyNjFkNjY3YThiY2M5ZjVkZWJiMTA2NGJjYWMuLjgy
ODZjZjczZTIwYmU0OGEzODNmNDU0N2VhYjI2ODgxMjNjM2UxODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmgKQEAgLTIwOCw2ICsyMDgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBwYXJzZUNvbHVtbnNT
aG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOwogCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkK
KyAgICBib29sIGlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSBjb25zdDsKICAgICBSZWZQdHI8Q1NT
VmFsdWU+IHBhcnNlR3JpZFBvc2l0aW9uKCk7CiAgICAgYm9vbCBwYXJzZUdyaWRJdGVtUG9zaXRp
b25TaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCwgYm9vbCBpbXBvcnRhbnQpOwogICAgIFJlZlB0cjxD
U1NWYWx1ZT4gcGFyc2VHcmlkVGVtcGxhdGVDb2x1bW5zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyTW9kZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ck1vZGUuaAppbmRleCAxZjI5Yjg0MzA1OGMzYmZmMzliOWNjNmNmNzFiMjk1YzQ5YzA2NmExLi5h
ZTA1NGE0ODUxODcwZGM1NTAyYTdiMzAzZWUzNDEyOWY0OGJjOGViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyTW9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXJNb2RlLmgKQEAgLTY2LDYgKzY2LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNIVE1M
RG9jdW1lbnQ7CiAgICAgYm9vbCBpc0NTU1JlZ2lvbnNFbmFibGVkOwogICAgIGJvb2wgaXNDU1ND
b21wb3NpdGluZ0VuYWJsZWQ7CisjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKKyAgICBib29s
IGNzc0dyaWRMYXlvdXRFbmFibGVkOworI2VuZGlmCiAgICAgYm9vbCBuZWVkc1NpdGVTcGVjaWZp
Y1F1aXJrczsKICAgICBib29sIGVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZTsKICAg
ICBib29sIHVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3I7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCA2YjE4MzNlNjY2ZTA0OTkxYzNmZDU4YjM2YTdmYmNhYjIxNzQ1
NWMzLi40MjExMGQ2OGNlMjY5ZmVhOTI0ODA5MTRlYTlkNzJiY2VhYjc4ZmEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTExMzgsNiArMTEzOCwxMyBAQCBib29sIERvY3VtZW50Ojpjc3ND
b21wb3NpdGluZ0VuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLmNzc0NvbXBvc2l0aW5nRW5hYmxlZCgpOwogfQogCisjaWYg
RU5BQkxFKENTU19HUklEX0xBWU9VVCkKK2Jvb2wgRG9jdW1lbnQ6OmlzQ1NTR3JpZExheW91dEVu
YWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKTsKK30KKyNlbmRpZgorCiAjaWYg
RU5BQkxFKENTU19SRUdJT05TKQogCiBSZWZQdHI8RE9NTmFtZWRGbG93Q29sbGVjdGlvbj4gRG9j
dW1lbnQ6OndlYmtpdEdldE5hbWVkRmxvd3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkZDhl
Zjk3YmZhMDc2MDBhNjVlNDgwNGJlNzNjMjY4MTRiYmMyY2JiLi4xYmNiNDhiZTI1ZWJhYmQ5YWM2
OGVjY2Q1MDFlNjY1MTkxNTE3ZTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzk0LDYgKzM5
NCw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgY3NzUmVnaW9uc0VuYWJsZWQoKSBjb25zdDsKICAg
ICBib29sIGNzc0NvbXBvc2l0aW5nRW5hYmxlZCgpIGNvbnN0OworI2lmIEVOQUJMRShDU1NfR1JJ
RF9MQVlPVVQpCisgICAgYm9vbCBpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkgY29uc3Q7CisjZW5k
aWYKICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgUmVmUHRyPERPTU5hbWVkRmxvd0NvbGxl
Y3Rpb24+IHdlYmtpdEdldE5hbWVkRmxvd3MoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IGQ0NWFjY2Q1ZjBiY2UwNjcxN2VmZWM4YTliMDI2Y2FjODYyMmZi
YTkuLjIxZDhiNzY5ZGNmMjZhNDEyYmE2ZDA1YzFjNWY3YWU5YmJmYTFkZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMzMTgsNCArMzMxOCwxMSBAQCB2b2lkIEludGVy
bmFsczo6c2V0TGlua1ByZWxvYWRTdXBwb3J0KGJvb2wgZW5hYmxlKQogICAgIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0TGlua1ByZWxvYWRFbmFibGVkKGVuYWJs
ZSk7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQordm9pZCBJbnRlcm5hbHM6OnNl
dENTU0dyaWRMYXlvdXRFbmFibGVkKGJvb2wgZW5hYmxlKQoreworICAgIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoZW5hYmxl
KTsKK30KKyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBmM2Fm
ZjJmZjk3MTg3Yzk5ZWFlMmFlOWQ5NzJlNTdmMzc0NDczNjE0Li41ODgyZTc2ZjA2NWQxMDFlZmZh
YTgwNDE2ZDNhYjEwZmMzZDRjOWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAg
LTQ2OSw2ICs0NjksMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Vmlld3BvcnRGb3JjZUFsd2F5
c1VzZXJTY2FsYWJsZShib29sKTsKICAgICB2b2lkIHNldExpbmtQcmVsb2FkU3VwcG9ydChib29s
KTsKIAorI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisgICAgdm9pZCBzZXRDU1NHcmlkTGF5
b3V0RW5hYmxlZChib29sKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVy
bmFscyhEb2N1bWVudCYpOwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAzMmFkYjFjMDEzYWFlODc0MDQx
ZDRhMTc1NmQwNWUwMzQwMjc3ZTRkLi4zZTAyNjZmNWY3YzFkZDRhN2I0ZmFlYmRhZDAyNWZjODUy
MzViM2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC00NDYsNCArNDQ2
LDkgQEAgZW51bSBBdXRvRmlsbEJ1dHRvblR5cGUgewogCiAgICAgdm9pZCBzZXRWaWV3cG9ydEZv
cmNlQWx3YXlzVXNlclNjYWxhYmxlKGJvb2xlYW4gc2NhbGFibGUpOwogICAgIHZvaWQgc2V0TGlu
a1ByZWxvYWRTdXBwb3J0KGJvb2xlYW4gc2NhbGFibGUpOworCisjaWYgZGVmaW5lZChFTkFCTEVf
Q1NTX0dSSURfTEFZT1VUKSAmJiBFTkFCTEVfQ1NTX0dSSURfTEFZT1VUCisgICAgdm9pZCBzZXRD
U1NHcmlkTGF5b3V0RW5hYmxlZChib29sZWFuIGVuYWJsZSk7CisjZW5kaWYKKwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
CmluZGV4IDRmYTliYTdkYWM0ZWQyN2MyYTczMjE5NmY5MThiNTc1YTY1ZmFiZGEuLjNkMTZlZGM0
NDU0ZDg1NjNiNDVkNmRiMDQ3MDc1N2FkM2E1M2EyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTY0LDYgKzE2
NCw3IEBACiAjZGVmaW5lIFdlYktpdEN1c3RvbUVsZW1lbnRzRW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRDdXN0b21FbGVtZW50c0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEZldGNoQVBJRW5h
YmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRGZXRjaEFQSUVuYWJsZWQiCiAjZGVmaW5lIFdlYktp
dERvd25sb2FkQXR0cmlidXRlRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREb3dubG9hZEF0
dHJpYnV0ZUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIgogCiAjaWYgIVRBUkdFVF9PU19J
UEhPTkUKIC8vIFRoZXNlIGFyZSBwcml2YXRlIGJvdGggYmVjYXVzZSBjYWxsZXJzIHNob3VsZCBi
ZSB1c2luZyB0aGUgY292ZXIgbWV0aG9kcyBhbmQgYmVjYXVzZSB0aGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDk2NzY0MDJlMGE0ZWVhYjNmM2Vh
NGU4MTAwNDRkNzY0N2UyMDY1NmIuLmVhNDRiODI1OTFkYjc1MDAzOTE2NTI0ZGU0MDUxYTU3MWE2
NTAxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpA
QCAtNjE5LDYgKzYxOSw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoRE9XTkxPQURfQVRUUklCVVRF
KQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCBXZWJLaXREb3dubG9hZEF0
dHJpYnV0ZUVuYWJsZWRQcmVmZXJlbmNlS2V5LAogI2VuZGlmCisjaWYgRU5BQkxFKENTU19HUklE
X0xBWU9VVCkKKyAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sIFdlYktpdENT
U0dyaWRMYXlvdXRFbmFibGVkUHJlZmVyZW5jZUtleSwKKyNlbmRpZgogICAgICAgICBuaWxdOwog
CiAjaWYgIVBMQVRGT1JNKElPUykKQEAgLTI3MzksNiArMjc0MiwxNiBAQCBzdGF0aWMgTlNTdHJp
bmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFn
IGZvcktleTpXZWJLaXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0K
IAorLSAoQk9PTClpc0NTU0dyaWRMYXlvdXRFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9i
b29sVmFsdWVGb3JLZXk6V2ViS2l0Q1NTR3JpZExheW91dEVuYWJsZWRQcmVmZXJlbmNlS2V5XTsK
K30KKworLSAodm9pZClzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZDooQk9PTClmbGFnCit7CisgICAg
W3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRDU1NHcmlkTGF5b3V0RW5hYmxl
ZFByZWZlcmVuY2VLZXldOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJl
bmNlcyAoV2ViSW50ZXJuYWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA3Y2FhOThkZmYxM2UxZDE4ODZiYmNmNTljNGE1MzU3
MzQ5Y2NhMzY2Li5lNDEyMmJjYTU3YTVkMjRiZmIzNjdjYWJkZGU4ZGYwYjkzZWY0OGYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgK
QEAgLTQ5MCw2ICs0OTAsOSBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVN
b2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbjsKIC0gKHZvaWQpc2V0RG93bmxvYWRBdHRy
aWJ1dGVFbmFibGVkOihCT09MKWZsYWc7CiAtIChCT09MKWRvd25sb2FkQXR0cmlidXRlRW5hYmxl
ZDsKIAorLSAodm9pZClzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZDooQk9PTClmbGFnOworLSAoQk9P
TClpc0NTU0dyaWRMYXlvdXRFbmFibGVkOworCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBq
YXZhU2NyaXB0TWFya3VwRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIG1lZGlh
RGF0YUxvYWRzQXV0b21hdGljYWxseTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGF0dGFj
aG1lbnRFbGVtZW50RW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRl
eCAzMjFhZTdhZjQ5NDA4NTdkOTA2ZGE3ODUzNWM3NGUxZmEzNWUxYjE4Li4wYzM3Nzc2ZGY3ODJm
NjM4NWE5MDRiNDkxZjI3NzAyZDc5Mjc0MWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCkBAIC0yNDkzLDYgKzI0OTMsMTAgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWlu
V2hpbGVMb2FkaW5nUXVpcmsoKQogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuc2V0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkKFtwcmVmZXJlbmNlcyBkb3dubG9h
ZEF0dHJpYnV0ZUVuYWJsZWRdKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKENTU19HUklEX0xBWU9V
VCkKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldENTU0dy
aWRMYXlvdXRFbmFibGVkKFtwcmVmZXJlbmNlcyBjc3NHcmlkTGF5b3V0RW5hYmxlZF0pOworI2Vu
ZGlmCisKICAgICBOU1RpbWVJbnRlcnZhbCB0aW1lb3V0ID0gW3ByZWZlcmVuY2VzIGluY3JlbWVu
dGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzXTsKICAgICBpZiAodGltZW91
dCA+IDApCiAgICAgICAgIHNldHRpbmdzLnNldEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Np
b25UaW1lb3V0SW5TZWNvbmRzKHRpbWVvdXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKaW5kZXggMmE1OTg2ZTVlNTVhYjhkNDAyNzQ3
Y2Y3NmQ3ODYyMDlhZjg4MjU0NC4uZTYzMzQ3YWFhZWM5NjZkODk0YmE1MTRkYzI2NDE0OGEyMGRi
OWE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVm
aW5pdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9ucy5oCkBAIC0yODEsNiArMjgxLDcgQEAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0VY
UEVSSU1FTlRBTF9GRUFUVVJFX1BSRUZFUkVOQ0UobWFjcm8pIFwKICAgICBtYWNybyhFeHBlcmlt
ZW50YWxTaGFkb3dET01FbmFibGVkLCBleHBlcmltZW50YWxTaGFkb3dET01FbmFibGVkLCBCb29s
LCBib29sLCBmYWxzZSwgIlNoYWRvdyBET00iLCAiU3VwcG9ydCBmb3IgdGhlIFNoYWRvdyBET00g
ZmVhdHVyZSIpIFwKICAgICBtYWNybyhFeHBlcmltZW50YWxXZWJHTDJFbmFibGVkLCBleHBlcmlt
ZW50YWxXZWJHTDJFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSwgIldlYkdMIDIuMCIsICJQcm90
b3R5cGUgV2ViR0wgMiBTdXBwb3J0IikgXAorICAgIG1hY3JvKENTU0dyaWRMYXlvdXRFbmFibGVk
LCBjc3NHcmlkTGF5b3V0RW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSwgIiIsICIiKSBcCiAgICAg
XAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggMDhjNjNjYjAzYzEyYWFhYTQ2NmQ1YTc0MDc1
NmZjYzk5YzcwMjg2Yy4uZmIyYTVhM2Y2M2I5ZWQ0ZWYyNWMyODRkZTUzYzEwYmQ2NDgxY2M4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNw
cApAQCAtMTU0MCwzICsxNTQwLDEzIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldERvd25sb2FkQXR0
cmlidXRlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogewogICAgIHJl
dHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5kb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQoKTsK
IH0KKwordm9pZCBXS1ByZWZlcmVuY2VzU2V0Q1NTR3JpZExheW91dEVuYWJsZWQoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKQoreworICAgIHRvSW1wbChwcmVmZXJl
bmNlc1JlZiktPnNldENTU0dyaWRMYXlvdXRFbmFibGVkKGZsYWcpOworfQorCitib29sIFdLUHJl
ZmVyZW5jZXNHZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5jc3NHcmlkTGF5
b3V0RW5hYmxlZCgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAppbmRleCA5ZGEzMTQwMTUzZWRkNGRmMDEx
Mzg4YmE5ODA5NjQ0NGY5NDBkOGMzLi4zNTlkZTQ1MzljNDgyYjFmMTUyNWI5NzZlYzM2N2Y4ZDIz
OWRhMTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApAQCAtNDMxLDYgKzQzMSwxMCBAQCBXS19FWFBPUlQg
Ym9vbCBXS1ByZWZlcmVuY2VzR2V0RmV0Y2hBUElFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwog
V0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldERvd25sb2FkQXR0cmlidXRlRW5hYmxlZChX
S1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNl
c0dldERvd25sb2FkQXR0cmlidXRlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKIAorLy8gRGVm
YXVsdHMgdG8gdHJ1ZQorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldENTU0dyaWRMYXlv
dXRFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxhZyk7CitXS19FWFBPUlQgYm9vbCBX
S1ByZWZlcmVuY2VzR2V0Q1NTR3JpZExheW91dEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CisK
ICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4
IDQ3MTNkNTBjMjhiZGYxY2Q5MWU4YjVhMDU2NzMyY2E4NzExMzhiNmUuLjg5M2ZjNmY5Y2ZhNGQy
OTIyNGI3NWQ0NGFkNTJlZjc1OGY4YTE4MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0y
MTcsNyArMjE3LDEyIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6Om92ZXJyaWRlQm9vbFByZWZlcmVu
Y2VGb3JUZXN0UnVubmVyKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlCiAgICAgaWYgKHByZWZlcmVu
Y2UgPT0gIldlYktpdERvd25sb2FkQXR0cmlidXRlRW5hYmxlZCIpCiAgICAgICAgIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0RG93bmxvYWRBdHRyaWJ1dGVFbmFi
bGVkKGVuYWJsZWQpOwogI2VuZGlmCi0gICAgCisKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VU
KQorICAgIGlmIChwcmVmZXJlbmNlID09ICJXZWJLaXRDU1NHcmlkTGF5b3V0RW5hYmxlZCIpCisg
ICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NTR3Jp
ZExheW91dEVuYWJsZWQoZW5hYmxlZCk7CisjZW5kaWYKKwogICAgIC8vIE1hcCB0aGUgbmFtZXMg
dXNlZCBpbiBMYXlvdXRUZXN0cyB3aXRoIHRoZSBuYW1lcyB1c2VkIGluIFdlYkNvcmU6OlNldHRp
bmdzIGFuZCBXZWJQcmVmZXJlbmNlc1N0b3JlLgogI2RlZmluZSBGT1JfRUFDSF9PVkVSUklERV9C
T09MX1BSRUZFUkVOQ0UobWFjcm8pIFwKICAgICBtYWNybyhXZWJLaXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZCwgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIGFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdFbmFibGVkKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggZmVjYjU0YzgzYmE1MzMxY2FmYjE1ODFkMjEzOGE0OTliMDA1
ODIwMC4uYTJkODExYWNkZDgxZWJhMDIyZjY5MjM1M2UyMGViMjcwMzg0NmI1YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzExOCw2ICsz
MTE4LDEwIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5zZXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpkb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWRLZXkoKSkpOwog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorICAgIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoc3RvcmUu
Z2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpjc3NHcmlkTGF5b3V0RW5hYmxl
ZEtleSgpKSk7CisjZW5kaWYKKwogICAgIGJvb2wgcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCA9
IHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cGFnZVZpc2liaWxp
dHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWRLZXkoKSk7CiAgICAgaWYgKG1fcHJvY2Vz
c1N1cHByZXNzaW9uRW5hYmxlZCAhPSBwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKSB7CiAgICAg
ICAgIG1fcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCA9IHByb2Nlc3NTdXBwcmVzc2lvbkVuYWJs
ZWQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggN2VkMjc1OTkyODc2ZmYyN2VjMWU0Zjk1NmEzNjc0OWU3MzRiYzJkOS4uOTA2
ZjM2ZjgwOWUxMzNmMTM4MmZhNzFiOGRjNzcxMTNjMGZjN2RhNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3
IEBACiAyMDE2LTA0LTI4ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29t
PgogCisgICAgICAgIFtjc3MtZ3JpZF0gQWRkIENTUyBHcmlkIExheW91dCBydW50aW1lIGZsYWcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzEzNAor
CisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBBZGQgdGVzdCB0
byB2ZXJpZnkgdGhhdCBDU1MgR3JpZCBMYXlvdXQgaXMgZGlzYWJsZWQgaWYgdGhlIGZsYWcgaXMg
b2ZmLgorCisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1kaXNhYmxlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1kaXNh
YmxlLmh0bWw6IEFkZGVkLgorCisyMDE2LTA0LTI4ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8
cmVnb0BpZ2FsaWEuY29tPgorCiAgICAgICAgIFtjc3MtZ3JpZF0gRml4IGFsaWdubWVudCB3aXRo
IGNvbnRlbnQgZGlzdHJpYnV0aW9uCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTY2MjMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mt
Z3JpZC1sYXlvdXQvZ3JpZC1kaXNhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2dyaWQtZGlzYWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg4
ODczOTc0ZDRkNzg3NThlMjQ2MTkxYTJkODc0Zjc3MjA4NzE1ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtZGlzYWJsZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMSBAQAorVmVyaWZpZXMgdGhhdCBDU1MgR3JpZCBMYXlvdXQgZG9lcyBu
b3Qgd29yayBpZiBydW50aW1lIGZlYXR1cmUgaXMgZGlzYWJsZWQuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncmlkJykuc3R5
bGUuZGlzcGxheSBpcyAnJworUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5saW5lZ3Jp
ZCcpLnN0eWxlLmRpc3BsYXkgaXMgJycKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlk
LWxheW91dC9ncmlkLWRpc2FibGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5
b3V0L2dyaWQtZGlzYWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlNTFkNGEwYjk2NWJkZjYyOTA4MjE5
NjQ4OTFjMDc3ODA0YzY2ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWRpc2FibGUuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldENTU0dyaWRMYXlvdXRFbmFibGVkKGZhbHNlKTsKKzwvc2NyaXB0PgorCis8ZGl2
IGlkPSJncmlkIiBzdHlsZT0iZGlzcGxheTogLXdlYmtpdC1ncmlkIj48L2Rpdj4KKzxkaXYgaWQ9
ImlubGluZWdyaWQiIHN0eWxlPSJkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ncmlkIj48L2Rpdj4K
KworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlZlcmlmaWVzIHRoYXQgQ1NTIEdyaWQgTGF5b3V0IGRv
ZXMgbm90IHdvcmsgaWYgcnVudGltZSBmZWF0dXJlIGlzIGRpc2FibGVkLiIpOworCitzaG91bGRC
ZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dyaWQnKS5zdHlsZS5kaXNwbGF5IiwgIicnIik7
CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lubGluZWdyaWQnKS5zdHlsZS5k
aXNwbGF5IiwgIicnIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277647</attachid>
            <date>2016-04-28 14:01:14 -0700</date>
            <delta_ts>2016-04-28 16:13:30 -0700</delta_ts>
            <desc>=Patch for landing</desc>
            <filename>bug-157134-20160428230144.patch</filename>
            <type>text/plain</type>
            <size>33146</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ5MTRlYTIwYWVlOGI5
OTdjZWIxOGQwOGMyYTA5OGY4MDE4Y2I4MS4uN2JjZWRhM2NiN2I3YTNjNjI5MjlmOTcxMTJkNDAx
YTZhOWFjYzc2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE2LTA0LTI4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3MtZ3Jp
ZF0gQWRkIENTUyBHcmlkIExheW91dCBydW50aW1lIGZsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzEzNAorCisgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlci4KKworICAgICAgICBBZGQgQ1NTIEdyaWQgTGF5b3V0IHJ1bnRpbWUgZmxh
ZyBlbmFibGVkIGJ5IGRlZmF1bHQuCisgICAgICAgIERpc2FibGUgcGFyc2luZyBvZiBDU1MgR3Jp
ZCBMYXlvdXQgcHJvcGVydGllcworICAgICAgICBpZiB0aGUgcnVudGltZSBmbGFnIGlzIG5vdCBl
bmFibGVkLgorICAgICAgICBFeHBvc2UgcnVudGltZSBmbGFnIHRocm91Z2ggaW50ZXJuYWxzIHRv
IHZlcmlmeSB0aGF0CisgICAgICAgIGl0J3Mgd29ya2luZyBhcyBleHBlY3RlZC4KKworICAgICAg
ICBUZXN0OiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWRpc2FibGUuaHRtbAorCisgICAgICAg
ICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMp
OgorICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgor
ICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0Q1NTR3JpZExheW91
dEVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXND
U1NHcmlkTGF5b3V0RW5hYmxlZCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6aXNWYWxpZEtleXdv
cmRQcm9wZXJ0eUFuZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlSW50ZWdlck9yQ3VzdG9t
SWRlbnRGcm9tR3JpZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VHcmlkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdyaWRJ
dGVtUG9zaXRpb25TaG9ydGhhbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJz
ZUdyaWRHYXBTaG9ydGhhbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdy
aWRUZW1wbGF0ZUNvbHVtbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdy
aWRUZW1wbGF0ZVJvd3NBbmRBcmVhc0FuZENvbHVtbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZUdyaWRUZW1wbGF0ZVNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6OnBhcnNlR3JpZFNob3J0aGFuZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnBhcnNlR3JpZEFyZWFTaG9ydGhhbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpwYXJzZVNpbmdsZUdyaWRBcmVhTG9uZ2hhbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFy
c2VyOjpwYXJzZUdyaWRMaW5lTmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpw
YXJzZUdyaWRUcmFja0xpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdy
aWRUcmFja1JlcGVhdEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFy
c2VHcmlkVHJhY2tTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlk
QnJlYWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZEF1dG9GbG93
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VHcmlkVGVtcGxhdGVBcmVhc1Jv
dyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlR3JpZFRlbXBsYXRlQXJlYXMp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjppc2NTU0dyaWRMYXlvdXRFbmFibGVkKToK
KyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NTU1BhcnNlck1vZGUu
aDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OmlzQ1NTR3JpZExheW91dEVuYWJsZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6c2V0Q1NTR3JpZExheW91dEVuYWJsZWQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDE2LTA0LTI4ICBT
ZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3Mt
Z3JpZF0gU3RvcmUgYXV0by1yZXBlYXQgaW5mb3JtYXRpb24gaW4gc3R5bGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwppbmRleCBiMjhhNDFmYzJjZTgyZmQyOGQ0YjE1OTJjNDc3Yzc3M2NmYjRmZjA3Li43MTM1ZTc3
N2QzOTJjZjQxNjE3YzgwODZhYmRhZTY0YThiOGUyZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjIgQEAKKzIwMTYtMDQtMjggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGln
YWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1ncmlkXSBBZGQgQ1NTIEdyaWQgTGF5b3V0IHJ1bnRp
bWUgZmxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTU3MTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFk
ZCBDU1MgR3JpZCBMYXlvdXQgcnVudGltZSBmbGFnIGJhc2VkIG9uIHByZWZlcmVuY2VzLAorICAg
ICAgICBlbmFibGVkIGJ5IGRlZmF1bHQuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06Cisg
ICAgICAgICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKToKKyAgICAgICAgKC1bV2ViUHJl
ZmVyZW5jZXMgaXNDU1NHcmlkTGF5b3V0RW5hYmxlZF0pOgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDE2LTA0LTI3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBDU1A6IEFkZCBhcHAtc3Bl
Y2lmaWMgd29ya2Fyb3VuZCBmb3IgRWNvYmVlIGFuZCBRdW9yYQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI1ODg4
MTEzMTRiMmEyMjY1MTNkYmY1ZDU5N2IxMWNkODg3MzczOTQuLjMzNDFkMzM1ODFlYzYzM2Y0M2Ex
Y2M2NGQwMDhlZmQwZjE0MGRlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNi0w
NC0yOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAg
ICBbY3NzLWdyaWRdIEFkZCBDU1MgR3JpZCBMYXlvdXQgcnVudGltZSBmbGFnCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcxMzQKKworICAgICAgICBS
ZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWRkIENTUyBHcmlkIExheW91dCBy
dW50aW1lIGZsYWcgYmFzZWQgb24gcHJlZmVyZW5jZXMsCisgICAgICAgIGVuYWJsZWQgYnkgZGVm
YXVsdC4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQ
cmVmZXJlbmNlc1NldENTU0dyaWRMYXlvdXRFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5j
ZXNHZXRDU1NHcmlkTGF5b3V0RW5hYmxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxl
OjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRh
dGVQcmVmZXJlbmNlcyk6CisKIDIwMTYtMDQtMjcgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxl
LmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjU5MTUyNTM+IFJFR1JFU1NJT04gKHIx
OTk2MjgpOiBOZXRmbGl4IHBsYXliYWNrIGZhaWxzIGluIFNhZmFyaSBUZWNobm9sb2d5IFByZXZp
ZXcgd2l0aCBlcnJvciBjb2RlIFM3MzYzLTEyNjAtRkZGRjU4RDgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3Bw
CmluZGV4IDFjZjRhYTc4Y2Q3NTNkMDcwYWQ1YmU0MTgxOWE0MDJkNDgzOTRiMjAuLjJjYzYxMjQx
Mzc4ZjQ1ZDEyZDdlMjk2OGYxOTAzZDAwY2M2NWU5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcApA
QCAtMTEzLDYgKzExMyw5IEBAIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMoKQogI2lmIEVOQUJMRShXRUJfQU5JTUFUSU9OUykKICAgICAsIG1fYXJlV2ViQW5p
bWF0aW9uc0VuYWJsZWQoZmFsc2UpCiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VU
KQorICAgICwgbV9jc3NHcmlkTGF5b3V0RW5hYmxlZCh0cnVlKQorI2VuZGlmCiB7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgKaW5kZXggNWQ2NDY4NjUwMjYxYjE3MDc4Y2ViM2M1MjA2ODkxM2U1MDUwMmUw
YS4uMTFlY2Q5NTMzZDRkOGJlZjk4ZTFmZGQzNWYxNWNlNGVkMWNlZDFlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgKQEAgLTI0MSw2ICsyNDEsMTEgQEAgcHVibGljOgogICAgIGJvb2wgZG93bmxvYWRBdHRy
aWJ1dGVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0Rvd25sb2FkQXR0cmlidXRlRW5hYmxl
ZDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorICAgIHZvaWQgc2V0
Q1NTR3JpZExheW91dEVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9jc3NHcmlkTGF5b3V0RW5h
YmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fY3NzR3JpZExheW91dEVuYWJsZWQ7IH0KKyNlbmRpZgorCiAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMmIHNoYXJlZEZlYXR1cmVz
KCk7CiAKIHByaXZhdGU6CkBAIC0zNTQsNiArMzU5LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2lzRG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgogCisjaWYgRU5B
QkxFKENTU19HUklEX0xBWU9VVCkKKyAgICBib29sIG1fY3NzR3JpZExheW91dEVuYWJsZWQ7Cisj
ZW5kaWYKKwogICAgIGZyaWVuZCBjbGFzcyBXVEY6Ok5ldmVyRGVzdHJveWVkPFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM+OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA0ZTNkNmNi
OTBiNTlkMGQzMDAzNjViY2ZlMDgzZjZmN2Y0MWQ0ODVmLi5mY2JkMzQwZmEwNzliODVjZTAwNWY3
NDYwYzNhODg3OTZkZjdlN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMjQ4LDYg
KzI0OCw5IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQoQ1NTUGFyc2VyTW9k
ZSBtb2RlLCBjb25zdCBVUkwmIGJhc2VVUkwpCiAgICAgLCBpc0hUTUxEb2N1bWVudChmYWxzZSkK
ICAgICAsIGlzQ1NTUmVnaW9uc0VuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5jc3NSZWdpb25zRW5hYmxlZCgpKQogICAgICwgaXNDU1NDb21wb3NpdGluZ0Vu
YWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5jc3NDb21wb3Np
dGluZ0VuYWJsZWQoKSkKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorICAgICwgY3NzR3Jp
ZExheW91dEVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5p
c0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpCisjZW5kaWYKICAgICAsIG5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzKGZhbHNlKQogICAgICwgZW5mb3JjZXNDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlKHRy
dWUpCiAgICAgLCB1c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yKGZhbHNl
KQpAQCAtMjY3LDYgKzI3MCw5IEBAIENTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0CiAgICAgLCBpc0hU
TUxEb2N1bWVudChkb2N1bWVudC5pc0hUTUxEb2N1bWVudCgpKQogICAgICwgaXNDU1NSZWdpb25z
RW5hYmxlZChkb2N1bWVudC5jc3NSZWdpb25zRW5hYmxlZCgpKQogICAgICwgaXNDU1NDb21wb3Np
dGluZ0VuYWJsZWQoZG9jdW1lbnQuY3NzQ29tcG9zaXRpbmdFbmFibGVkKCkpCisjaWYgRU5BQkxF
KENTU19HUklEX0xBWU9VVCkKKyAgICAsIGNzc0dyaWRMYXlvdXRFbmFibGVkKGRvY3VtZW50Lmlz
Q1NTR3JpZExheW91dEVuYWJsZWQoKSkKKyNlbmRpZgogICAgICwgbmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MoZG9jdW1lbnQuc2V0dGluZ3MoKSA/IGRvY3VtZW50LnNldHRpbmdzKCktPm5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzKCkgOiBmYWxzZSkKICAgICAsIGVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5v
UXVpcmtzTW9kZSghZG9jdW1lbnQuc2V0dGluZ3MoKSB8fCBkb2N1bWVudC5zZXR0aW5ncygpLT5l
bmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZSgpKQogICAgICwgdXNlTGVnYWN5QmFja2dy
b3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvcihkb2N1bWVudC5zZXR0aW5ncygpID8gZG9jdW1lbnQu
c2V0dGluZ3MoKS0+dXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvcigpIDog
ZmFsc2UpCkBAIC0yODcsNiArMjkzLDkgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1BhcnNl
ckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAgICAgICAgICYmIGEuaXNI
VE1MRG9jdW1lbnQgPT0gYi5pc0hUTUxEb2N1bWVudAogICAgICAgICAmJiBhLmlzQ1NTUmVnaW9u
c0VuYWJsZWQgPT0gYi5pc0NTU1JlZ2lvbnNFbmFibGVkCiAgICAgICAgICYmIGEuaXNDU1NDb21w
b3NpdGluZ0VuYWJsZWQgPT0gYi5pc0NTU0NvbXBvc2l0aW5nRW5hYmxlZAorI2lmIEVOQUJMRShD
U1NfR1JJRF9MQVlPVVQpCisgICAgICAgICYmIGEuY3NzR3JpZExheW91dEVuYWJsZWQgPT0gYi5j
c3NHcmlkTGF5b3V0RW5hYmxlZAorI2VuZGlmCiAgICAgICAgICYmIGEubmVlZHNTaXRlU3BlY2lm
aWNRdWlya3MgPT0gYi5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcwogICAgICAgICAmJiBhLmVuZm9y
Y2VzQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZSA9PSBiLmVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5v
UXVpcmtzTW9kZQogICAgICAgICAmJiBhLnVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5k
QmVoYXZpb3IgPT0gYi51c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yOwpA
QCAtNjc0LDcgKzY4Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkS2V5d29yZFByb3Bl
cnR5QW5kVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkLCBpbnQKICAgICAgICAgaWYgKCh2
YWx1ZUlEID49IENTU1ZhbHVlSW5saW5lICYmIHZhbHVlSUQgPD0gQ1NTVmFsdWVDb250ZW50cykg
fHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNp
ZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQotICAgICAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1
ZVdlYmtpdEdyaWQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVdlYmtpdElubGluZUdyaWQpCisgICAg
ICAgIGlmIChwYXJzZXJDb250ZXh0LmNzc0dyaWRMYXlvdXRFbmFibGVkICYmICh2YWx1ZUlEID09
IENTU1ZhbHVlV2Via2l0R3JpZCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlV2Via2l0SW5saW5lR3Jp
ZCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogICAgICAgICBicmVhazsKQEAg
LTI3ODksMTEgKzI3OTgsMTUgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVy
dHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQp
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRBdXRvQ29sdW1uczoKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0R3JpZEF1dG9Sb3dzOgorICAgICAgICBpZiAoIWlzQ1NTR3JpZExheW91
dEVuYWJsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcGFyc2VkVmFs
dWUgPSBwYXJzZUdyaWRUcmFja1NpemUoKm1fdmFsdWVMaXN0KTsKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFRlbXBsYXRlQ29sdW1uczoKICAgICBjYXNl
IENTU1Byb3BlcnR5V2Via2l0R3JpZFRlbXBsYXRlUm93czoKKyAgICAgICAgaWYgKCFpc0NTU0dy
aWRMYXlvdXRFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHBh
cnNlZFZhbHVlID0gcGFyc2VHcmlkVHJhY2tMaXN0KCk7CiAgICAgICAgIGJyZWFrOwogCkBAIC0y
ODAxLDM1ICsyODE0LDUyIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5
SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3Jp
ZENvbHVtbkVuZDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd1N0YXJ0OgogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkUm93RW5kOgorICAgICAgICBpZiAoIWlzQ1NTR3Jp
ZExheW91dEVuYWJsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcGFy
c2VkVmFsdWUgPSBwYXJzZUdyaWRQb3NpdGlvbigpOwogICAgICAgICBicmVhazsKIAogICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uR2FwOgogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRHcmlkUm93R2FwOgorICAgICAgICBpZiAoIWlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB2YWxp
ZGF0ZVVuaXQodmFsdWVXaXRoQ2FsY3VsYXRpb24sIEZMZW5ndGggfCBGTm9uTmVnKTsKICAgICAg
ICAgYnJlYWs7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZEdhcDoKKyAgICAgICAg
aWYgKCFpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIHJldHVybiBwYXJzZUdyaWRHYXBTaG9ydGhhbmQoaW1wb3J0YW50KTsKIAogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uOgotICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRHcmlkUm93OiB7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3c6CisgICAg
ICAgIGlmICghaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICByZXR1cm4gcGFyc2VHcmlkSXRlbVBvc2l0aW9uU2hvcnRoYW5kKHByb3BJ
ZCwgaW1wb3J0YW50KTsKLSAgICB9CiAKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFRl
bXBsYXRlOgorICAgICAgICBpZiAoIWlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIHBhcnNlR3JpZFRlbXBsYXRlU2hvcnRo
YW5kKGltcG9ydGFudCk7CiAKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZDoKKyAgICAg
ICAgaWYgKCFpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIHJldHVybiBwYXJzZUdyaWRTaG9ydGhhbmQoaW1wb3J0YW50KTsKIAogICAg
IGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQXJlYToKKyAgICAgICAgaWYgKCFpc0NTU0dyaWRM
YXlvdXRFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVy
biBwYXJzZUdyaWRBcmVhU2hvcnRoYW5kKGltcG9ydGFudCk7CiAKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0R3JpZFRlbXBsYXRlQXJlYXM6CisgICAgICAgIGlmICghaXNDU1NHcmlkTGF5b3V0
RW5hYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBwYXJzZWRWYWx1
ZSA9IHBhcnNlR3JpZFRlbXBsYXRlQXJlYXMoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEdyaWRBdXRvRmxvdzoKKyAgICAgICAgaWYgKCFpc0NTU0dyaWRMYXlv
dXRFbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHBhcnNlZFZh
bHVlID0gcGFyc2VHcmlkQXV0b0Zsb3coKm1fdmFsdWVMaXN0KTsKICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYgLyogRU5BQkxFKENTU19HUklEX0xBWU9VVCkgKi8KQEAgLTU0MjIsNiArNTQ1Miw4IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc1ZhbGlkR3JpZFBvc2l0aW9uQ3VzdG9tSWRlbnQoY29uc3Qg
Q1NTUGFyc2VyVmFsdWUmIHZhbHVlKQogLy8gVGhlIGZ1bmN0aW9uIHBhcnNlcyBbIDxpbnRlZ2Vy
PiB8fCA8Y3VzdG9tLWlkZW50PiBdIGluIDxncmlkLWxpbmU+ICh3aGljaCBjYW4gYmUgc3RhbmQg
YWxvbmUgb3Igd2l0aCAnc3BhbicpLgogYm9vbCBDU1NQYXJzZXI6OnBhcnNlSW50ZWdlck9yQ3Vz
dG9tSWRlbnRGcm9tR3JpZFBvc2l0aW9uKFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4mIG51bWVy
aWNWYWx1ZSwgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiYgZ3JpZExpbmVOYW1lKQogeworICAg
IEFTU0VSVChpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpOworCiAgICAgVmFsdWVXaXRoQ2FsY3Vs
YXRpb24gdmFsdWVXaXRoQ2FsY3VsYXRpb24oKm1fdmFsdWVMaXN0LT5jdXJyZW50KCkpOwogICAg
IGlmICh2YWxpZGF0ZVVuaXQodmFsdWVXaXRoQ2FsY3VsYXRpb24sIEZJbnRlZ2VyKSAmJiB2YWx1
ZVdpdGhDYWxjdWxhdGlvbi52YWx1ZSgpLmZWYWx1ZSkgewogICAgICAgICBudW1lcmljVmFsdWUg
PSBjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUodmFsdWVXaXRoQ2FsY3VsYXRpb24pOwpAQCAt
NTQ1MCw2ICs1NDgyLDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlSW50ZWdlck9yQ3VzdG9tSWRl
bnRGcm9tR3JpZFBvc2l0aW9uKFJlZlB0cjxDU1NQcmltaXRpdmVWYWwKIAogUmVmUHRyPENTU1Zh
bHVlPiBDU1NQYXJzZXI6OnBhcnNlR3JpZFBvc2l0aW9uKCkKIHsKKyAgICBBU1NFUlQoaXNDU1NH
cmlkTGF5b3V0RW5hYmxlZCgpKTsKKwogICAgIENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IG1fdmFs
dWVMaXN0LT5jdXJyZW50KCk7CiAgICAgaWYgKHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUF1dG8pIHsK
ICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKQEAgLTU1MTIsNiArNTU0Niw4IEBAIHN0YXRp
YyBSZWZQdHI8Q1NTVmFsdWU+IGdyaWRNaXNzaW5nR3JpZFBvc2l0aW9uVmFsdWUoQ1NTVmFsdWUm
IHZhbHVlKQogCiBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkSXRlbVBvc2l0aW9uU2hvcnRoYW5k
KENTU1Byb3BlcnR5SUQgc2hvcnRoYW5kSWQsIGJvb2wgaW1wb3J0YW50KQogeworICAgIEFTU0VS
VChpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpOworCiAgICAgU2hvcnRoYW5kU2NvcGUgc2NvcGUo
dGhpcywgc2hvcnRoYW5kSWQpOwogICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNo
b3J0aGFuZCA9IHNob3J0aGFuZEZvclByb3BlcnR5KHNob3J0aGFuZElkKTsKICAgICBBU1NFUlQo
c2hvcnRoYW5kLmxlbmd0aCgpID09IDIpOwpAQCAtNTU0MSw2ICs1NTc3LDggQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlR3JpZEl0ZW1Qb3NpdGlvblNob3J0aGFuZChDU1NQcm9wZXJ0eUlEIHNob3J0
aGFuZElkLCBib29sIGkKIAogYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZEdhcFNob3J0aGFuZChi
b29sIGltcG9ydGFudCkKIHsKKyAgICBBU1NFUlQoaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKTsK
KwogICAgIFNob3J0aGFuZFNjb3BlIHNjb3BlKHRoaXMsIENTU1Byb3BlcnR5V2Via2l0R3JpZEdh
cCk7CiAgICAgQVNTRVJUKHNob3J0aGFuZEZvclByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0R3Jp
ZEdhcCkubGVuZ3RoKCkgPT0gMik7CiAKQEAgLTU1NzgsNiArNTYxNiw4IEBAIGJvb2wgQ1NTUGFy
c2VyOjpwYXJzZUdyaWRHYXBTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiAKIFJlZlB0cjxDU1NW
YWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRUZW1wbGF0ZUNvbHVtbnMoKQogeworICAgIEFTU0VS
VChpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpOworCiAgICAgaWYgKCEobV92YWx1ZUxpc3QtPmN1
cnJlbnQoKSAmJiBpc0ZvcndhcmRTbGFzaE9wZXJhdG9yKCptX3ZhbHVlTGlzdC0+Y3VycmVudCgp
KSAmJiBtX3ZhbHVlTGlzdC0+bmV4dCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
aWYgKGF1dG8gY29sdW1uc1ZhbHVlID0gcGFyc2VHcmlkVHJhY2tMaXN0KCkpIHsKQEAgLTU1OTEs
NiArNTYzMSw4IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRUZW1wbGF0
ZUNvbHVtbnMoKQogCiBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkVGVtcGxhdGVSb3dzQW5kQXJl
YXNBbmRDb2x1bW5zKGJvb2wgaW1wb3J0YW50KQogeworICAgIEFTU0VSVChpc0NTU0dyaWRMYXlv
dXRFbmFibGVkKCkpOworCiAgICAgLy8gQXQgbGVhc3QgdGVtcGxhdGUtYXJlYXMgc3RyaW5ncyBt
dXN0IGJlIGRlZmluZWQuCiAgICAgaWYgKCFtX3ZhbHVlTGlzdC0+Y3VycmVudCgpIHx8IGlzRm9y
d2FyZFNsYXNoT3BlcmF0b3IoKm1fdmFsdWVMaXN0LT5jdXJyZW50KCkpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC01NjU0LDYgKzU2OTYsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlk
VGVtcGxhdGVSb3dzQW5kQXJlYXNBbmRDb2x1bW5zKGJvb2wgaW1wb3J0YW50KQogCiBib29sIENT
U1BhcnNlcjo6cGFyc2VHcmlkVGVtcGxhdGVTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiB7Cisg
ICAgQVNTRVJUKGlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSk7CisKICAgICBTaG9ydGhhbmRTY29w
ZSBzY29wZSh0aGlzLCBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRUZW1wbGF0ZSk7CiAgICAgQVNTRVJU
KHNob3J0aGFuZEZvclByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0R3JpZFRlbXBsYXRlKS5sZW5n
dGgoKSA9PSAzKTsKIApAQCAtNTY5OCw2ICs1NzQyLDggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNl
R3JpZFRlbXBsYXRlU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogCiBib29sIENTU1BhcnNlcjo6
cGFyc2VHcmlkU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogeworICAgIEFTU0VSVChpc0NTU0dy
aWRMYXlvdXRFbmFibGVkKCkpOworCiAgICAgU2hvcnRoYW5kU2NvcGUgc2NvcGUodGhpcywgQ1NT
UHJvcGVydHlXZWJraXRHcmlkKTsKICAgICBBU1NFUlQoc2hvcnRoYW5kRm9yUHJvcGVydHkoQ1NT
UHJvcGVydHlXZWJraXRHcmlkKS5sZW5ndGgoKSA9PSA4KTsKIApAQCAtNTc2Miw2ICs1ODA4LDgg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZFNob3J0aGFuZChib29sIGltcG9ydGFudCkKIAog
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZEFyZWFTaG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpCiB7
CisgICAgQVNTRVJUKGlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSk7CisKICAgICBTaG9ydGhhbmRT
Y29wZSBzY29wZSh0aGlzLCBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRBcmVhKTsKICAgICBBU1NFUlQo
c2hvcnRoYW5kRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRHcmlkQXJlYSkubGVuZ3RoKCkg
PT0gNCk7CiAKQEAgLTU3OTksNiArNTg0Nyw4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRB
cmVhU2hvcnRoYW5kKGJvb2wgaW1wb3J0YW50KQogCiBib29sIENTU1BhcnNlcjo6cGFyc2VTaW5n
bGVHcmlkQXJlYUxvbmdoYW5kKFJlZlB0cjxDU1NWYWx1ZT4mIHByb3BlcnR5KQogeworICAgIEFT
U0VSVChpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkpOworCiAgICAgaWYgKCFtX3ZhbHVlTGlzdC0+
Y3VycmVudCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtNTgxNCw2ICs1ODY0LDcgQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlU2luZ2xlR3JpZEFyZWFMb25naGFuZChSZWZQdHI8Q1NTVmFs
dWU+JiBwcm9wZXJ0eSkKIAogYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZExpbmVOYW1lcyhDU1NQ
YXJzZXJWYWx1ZUxpc3QmIGlucHV0TGlzdCwgQ1NTVmFsdWVMaXN0JiB2YWx1ZUxpc3QsIENTU0dy
aWRMaW5lTmFtZXNWYWx1ZSogcHJldmlvdXNOYW1lZEFyZWFUcmFpbGluZ0xpbmVOYW1lcykKIHsK
KyAgICBBU1NFUlQoaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKTsKICAgICBBU1NFUlQoaW5wdXRM
aXN0LmN1cnJlbnQoKSAmJiBpbnB1dExpc3QuY3VycmVudCgpLT51bml0ID09IENTU1BhcnNlclZh
bHVlOjpWYWx1ZUxpc3QpOwogCiAgICAgQ1NTUGFyc2VyVmFsdWVMaXN0JiBpZGVudExpc3QgPSAq
aW5wdXRMaXN0LmN1cnJlbnQoKS0+dmFsdWVMaXN0OwpAQCAtNTg2NSw2ICs1OTE2LDggQEAgc3Rh
dGljIGJvb2wgYWxsVHJhY2tzQXJlRml4ZWRTaXplZChDU1NWYWx1ZUxpc3QmIHZhbHVlTGlzdCkK
IAogUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrTGlzdCgpCiB7Cisg
ICAgQVNTRVJUKGlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSk7CisKICAgICBDU1NQYXJzZXJWYWx1
ZSogdmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOwogICAgIGlmICh2YWx1ZS0+aWQgPT0g
Q1NTVmFsdWVOb25lKSB7CiAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7CkBAIC01OTE2LDYg
KzU5NjksOCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tMaXN0
KCkKIAogYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZFRyYWNrUmVwZWF0RnVuY3Rpb24oQ1NTVmFs
dWVMaXN0JiBsaXN0LCBib29sJiBpc0F1dG9SZXBlYXQpCiB7CisgICAgQVNTRVJUKGlzQ1NTR3Jp
ZExheW91dEVuYWJsZWQoKSk7CisKICAgICBDU1NQYXJzZXJWYWx1ZUxpc3QqIGFyZ3VtZW50cyA9
IG1fdmFsdWVMaXN0LT5jdXJyZW50KCktPmZ1bmN0aW9uLT5hcmdzLmdldCgpOwogICAgIGlmICgh
YXJndW1lbnRzIHx8IGFyZ3VtZW50cy0+c2l6ZSgpIDwgMyB8fCAhaXNDb21tYShhcmd1bWVudHMt
PnZhbHVlQXQoMSkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01OTc5LDYgKzYwMzQsOCBA
QCBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tSZXBlYXRGdW5jdGlvbihDU1NWYWx1ZUxp
c3QmIGxpc3QsIGJvb2wmIGlzQXV0b1JlcAogCiBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6
cGFyc2VHcmlkVHJhY2tTaXplKENTU1BhcnNlclZhbHVlTGlzdCYgaW5wdXRMaXN0LCBUcmFja1Np
emVSZXN0cmljdGlvbiByZXN0cmljdGlvbikKIHsKKyAgICBBU1NFUlQoaXNDU1NHcmlkTGF5b3V0
RW5hYmxlZCgpKTsKKwogICAgIENTU1BhcnNlclZhbHVlJiBjdXJyZW50VmFsdWUgPSAqaW5wdXRM
aXN0LmN1cnJlbnQoKTsKICAgICBpbnB1dExpc3QubmV4dCgpOwogCkBAIC02MDEwLDYgKzYwNjcs
OCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VHcmlkVHJhY2tTaXplKENTU1Bh
cnNlclZhbHVlTGlzdCYgaW5wdXRMaXN0LCBUcgogCiBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+
IENTU1BhcnNlcjo6cGFyc2VHcmlkQnJlYWR0aChDU1NQYXJzZXJWYWx1ZSYgdmFsdWUsIFRyYWNr
U2l6ZVJlc3RyaWN0aW9uIHJlc3RyaWN0aW9uKQogeworICAgIEFTU0VSVChpc0NTU0dyaWRMYXlv
dXRFbmFibGVkKCkpOworCiAgICAgaWYgKHZhbHVlLmlkID09IENTU1ZhbHVlV2Via2l0TWluQ29u
dGVudCB8fCB2YWx1ZS5pZCA9PSBDU1NWYWx1ZVdlYmtpdE1heENvbnRlbnQgfHwgdmFsdWUuaWQg
PT0gQ1NTVmFsdWVBdXRvKSB7CiAgICAgICAgIGlmIChyZXN0cmljdGlvbiA9PSBGaXhlZFNpemVP
bmx5KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC02MDQzLDYgKzYxMDIsOCBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZEdyaWRBdXRvRmxvd0lkKENTU1ZhbHVlSUQgaWQpCiAK
IFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRBdXRvRmxvdyhDU1NQYXJzZXJW
YWx1ZUxpc3QmIGlucHV0TGlzdCkKIHsKKyAgICBBU1NFUlQoaXNDU1NHcmlkTGF5b3V0RW5hYmxl
ZCgpKTsKKwogICAgIC8vIFsgcm93IHwgY29sdW1uIF0gfHwgZGVuc2UKICAgICBDU1NQYXJzZXJW
YWx1ZSogdmFsdWUgPSBpbnB1dExpc3QuY3VycmVudCgpOwogICAgIGlmICghdmFsdWUpCkBAIC02
MjYzLDYgKzYzMjQsOCBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gcGFyc2VHcmlkVGVtcGxhdGVB
cmVhc0NvbHVtbk5hbWVzKGNvbnN0IFN0cmluZyYgZ3JpZFJvd05hbQogCiBib29sIENTU1BhcnNl
cjo6cGFyc2VHcmlkVGVtcGxhdGVBcmVhc1JvdyhOYW1lZEdyaWRBcmVhTWFwJiBncmlkQXJlYU1h
cCwgY29uc3QgdW5zaWduZWQgcm93Q291bnQsIHVuc2lnbmVkJiBjb2x1bW5Db3VudCkKIHsKKyAg
ICBBU1NFUlQoaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKTsKKwogICAgIENTU1BhcnNlclZhbHVl
KiBjdXJyZW50VmFsdWUgPSBtX3ZhbHVlTGlzdC0+Y3VycmVudCgpOwogICAgIGlmICghY3VycmVu
dFZhbHVlIHx8IGN1cnJlbnRWYWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NU
UklORykKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjMyNCw2ICs2Mzg3LDggQEAgYm9vbCBD
U1NQYXJzZXI6OnBhcnNlR3JpZFRlbXBsYXRlQXJlYXNSb3coTmFtZWRHcmlkQXJlYU1hcCYgZ3Jp
ZEFyZWFNYXAsIGNvbnN0IHUKIAogUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlR3Jp
ZFRlbXBsYXRlQXJlYXMoKQogeworICAgIEFTU0VSVChpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkp
OworCiAgICAgaWYgKG1fdmFsdWVMaXN0LT5jdXJyZW50KCkgJiYgbV92YWx1ZUxpc3QtPmN1cnJl
bnQoKS0+aWQgPT0gQ1NTVmFsdWVOb25lKSB7CiAgICAgICAgIG1fdmFsdWVMaXN0LT5uZXh0KCk7
CiAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUlkZW50aWZp
ZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOwpAQCAtMTAyMTIsNiArMTAyNzcsMTMgQEAgYm9vbCBDU1NQ
YXJzZXI6OmNzc0NvbXBvc2l0aW5nRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29udGV4
dC5pc0NTU0NvbXBvc2l0aW5nRW5hYmxlZDsKIH0KIAorI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlP
VVQpCitib29sIENTU1BhcnNlcjo6aXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fY29udGV4dC5jc3NHcmlkTGF5b3V0RW5hYmxlZDsKK30KKyNlbmRpZgorCiAj
aWYgRU5BQkxFKENTU19SRUdJT05TKQogCiAvLyBub25lIHwgPGlkZW50PgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5oCmluZGV4IGVmMjQzOTBlNDExYTkyNjFkNjY3YThiY2M5ZjVkZWJiMTA2NGJjYWMuLjgy
ODZjZjczZTIwYmU0OGEzODNmNDU0N2VhYjI2ODgxMjNjM2UxODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmgKQEAgLTIwOCw2ICsyMDgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBwYXJzZUNvbHVtbnNT
aG9ydGhhbmQoYm9vbCBpbXBvcnRhbnQpOwogCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkK
KyAgICBib29sIGlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSBjb25zdDsKICAgICBSZWZQdHI8Q1NT
VmFsdWU+IHBhcnNlR3JpZFBvc2l0aW9uKCk7CiAgICAgYm9vbCBwYXJzZUdyaWRJdGVtUG9zaXRp
b25TaG9ydGhhbmQoQ1NTUHJvcGVydHlJRCwgYm9vbCBpbXBvcnRhbnQpOwogICAgIFJlZlB0cjxD
U1NWYWx1ZT4gcGFyc2VHcmlkVGVtcGxhdGVDb2x1bW5zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyTW9kZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ck1vZGUuaAppbmRleCAxZjI5Yjg0MzA1OGMzYmZmMzliOWNjNmNmNzFiMjk1YzQ5YzA2NmExLi5h
ZTA1NGE0ODUxODcwZGM1NTAyYTdiMzAzZWUzNDEyOWY0OGJjOGViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyTW9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXJNb2RlLmgKQEAgLTY2LDYgKzY2LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNIVE1M
RG9jdW1lbnQ7CiAgICAgYm9vbCBpc0NTU1JlZ2lvbnNFbmFibGVkOwogICAgIGJvb2wgaXNDU1ND
b21wb3NpdGluZ0VuYWJsZWQ7CisjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKKyAgICBib29s
IGNzc0dyaWRMYXlvdXRFbmFibGVkOworI2VuZGlmCiAgICAgYm9vbCBuZWVkc1NpdGVTcGVjaWZp
Y1F1aXJrczsKICAgICBib29sIGVuZm9yY2VzQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZTsKICAg
ICBib29sIHVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3I7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCA2YjE4MzNlNjY2ZTA0OTkxYzNmZDU4YjM2YTdmYmNhYjIxNzQ1
NWMzLi40MjExMGQ2OGNlMjY5ZmVhOTI0ODA5MTRlYTlkNzJiY2VhYjc4ZmEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTExMzgsNiArMTEzOCwxMyBAQCBib29sIERvY3VtZW50Ojpjc3ND
b21wb3NpdGluZ0VuYWJsZWQoKSBjb25zdAogICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLmNzc0NvbXBvc2l0aW5nRW5hYmxlZCgpOwogfQogCisjaWYg
RU5BQkxFKENTU19HUklEX0xBWU9VVCkKK2Jvb2wgRG9jdW1lbnQ6OmlzQ1NTR3JpZExheW91dEVu
YWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKTsKK30KKyNlbmRpZgorCiAjaWYg
RU5BQkxFKENTU19SRUdJT05TKQogCiBSZWZQdHI8RE9NTmFtZWRGbG93Q29sbGVjdGlvbj4gRG9j
dW1lbnQ6OndlYmtpdEdldE5hbWVkRmxvd3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkZDhl
Zjk3YmZhMDc2MDBhNjVlNDgwNGJlNzNjMjY4MTRiYmMyY2JiLi4xYmNiNDhiZTI1ZWJhYmQ5YWM2
OGVjY2Q1MDFlNjY1MTkxNTE3ZTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzk0LDYgKzM5
NCw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgY3NzUmVnaW9uc0VuYWJsZWQoKSBjb25zdDsKICAg
ICBib29sIGNzc0NvbXBvc2l0aW5nRW5hYmxlZCgpIGNvbnN0OworI2lmIEVOQUJMRShDU1NfR1JJ
RF9MQVlPVVQpCisgICAgYm9vbCBpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkgY29uc3Q7CisjZW5k
aWYKICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCiAgICAgUmVmUHRyPERPTU5hbWVkRmxvd0NvbGxl
Y3Rpb24+IHdlYmtpdEdldE5hbWVkRmxvd3MoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IGQ0NWFjY2Q1ZjBiY2UwNjcxN2VmZWM4YTliMDI2Y2FjODYyMmZi
YTkuLjIxZDhiNzY5ZGNmMjZhNDEyYmE2ZDA1YzFjNWY3YWU5YmJmYTFkZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMzMTgsNCArMzMxOCwxMSBAQCB2b2lkIEludGVy
bmFsczo6c2V0TGlua1ByZWxvYWRTdXBwb3J0KGJvb2wgZW5hYmxlKQogICAgIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0TGlua1ByZWxvYWRFbmFibGVkKGVuYWJs
ZSk7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQordm9pZCBJbnRlcm5hbHM6OnNl
dENTU0dyaWRMYXlvdXRFbmFibGVkKGJvb2wgZW5hYmxlKQoreworICAgIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoZW5hYmxl
KTsKK30KKyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBmM2Fm
ZjJmZjk3MTg3Yzk5ZWFlMmFlOWQ5NzJlNTdmMzc0NDczNjE0Li41ODgyZTc2ZjA2NWQxMDFlZmZh
YTgwNDE2ZDNhYjEwZmMzZDRjOWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAg
LTQ2OSw2ICs0NjksMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Vmlld3BvcnRGb3JjZUFsd2F5
c1VzZXJTY2FsYWJsZShib29sKTsKICAgICB2b2lkIHNldExpbmtQcmVsb2FkU3VwcG9ydChib29s
KTsKIAorI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisgICAgdm9pZCBzZXRDU1NHcmlkTGF5
b3V0RW5hYmxlZChib29sKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVy
bmFscyhEb2N1bWVudCYpOwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAzMmFkYjFjMDEzYWFlODc0MDQx
ZDRhMTc1NmQwNWUwMzQwMjc3ZTRkLi4zZTAyNjZmNWY3YzFkZDRhN2I0ZmFlYmRhZDAyNWZjODUy
MzViM2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC00NDYsNCArNDQ2
LDkgQEAgZW51bSBBdXRvRmlsbEJ1dHRvblR5cGUgewogCiAgICAgdm9pZCBzZXRWaWV3cG9ydEZv
cmNlQWx3YXlzVXNlclNjYWxhYmxlKGJvb2xlYW4gc2NhbGFibGUpOwogICAgIHZvaWQgc2V0TGlu
a1ByZWxvYWRTdXBwb3J0KGJvb2xlYW4gc2NhbGFibGUpOworCisjaWYgZGVmaW5lZChFTkFCTEVf
Q1NTX0dSSURfTEFZT1VUKSAmJiBFTkFCTEVfQ1NTX0dSSURfTEFZT1VUCisgICAgdm9pZCBzZXRD
U1NHcmlkTGF5b3V0RW5hYmxlZChib29sZWFuIGVuYWJsZSk7CisjZW5kaWYKKwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
CmluZGV4IDRmYTliYTdkYWM0ZWQyN2MyYTczMjE5NmY5MThiNTc1YTY1ZmFiZGEuLjNkMTZlZGM0
NDU0ZDg1NjNiNDVkNmRiMDQ3MDc1N2FkM2E1M2EyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTY0LDYgKzE2
NCw3IEBACiAjZGVmaW5lIFdlYktpdEN1c3RvbUVsZW1lbnRzRW5hYmxlZFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRDdXN0b21FbGVtZW50c0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEZldGNoQVBJRW5h
YmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRGZXRjaEFQSUVuYWJsZWQiCiAjZGVmaW5lIFdlYktp
dERvd25sb2FkQXR0cmlidXRlRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXREb3dubG9hZEF0
dHJpYnV0ZUVuYWJsZWQiCisjZGVmaW5lIFdlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIgogCiAjaWYgIVRBUkdFVF9PU19J
UEhPTkUKIC8vIFRoZXNlIGFyZSBwcml2YXRlIGJvdGggYmVjYXVzZSBjYWxsZXJzIHNob3VsZCBi
ZSB1c2luZyB0aGUgY292ZXIgbWV0aG9kcyBhbmQgYmVjYXVzZSB0aGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDk2NzY0MDJlMGE0ZWVhYjNmM2Vh
NGU4MTAwNDRkNzY0N2UyMDY1NmIuLmVhNDRiODI1OTFkYjc1MDAzOTE2NTI0ZGU0MDUxYTU3MWE2
NTAxNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpA
QCAtNjE5LDYgKzYxOSw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoRE9XTkxPQURfQVRUUklCVVRF
KQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCBXZWJLaXREb3dubG9hZEF0
dHJpYnV0ZUVuYWJsZWRQcmVmZXJlbmNlS2V5LAogI2VuZGlmCisjaWYgRU5BQkxFKENTU19HUklE
X0xBWU9VVCkKKyAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sIFdlYktpdENT
U0dyaWRMYXlvdXRFbmFibGVkUHJlZmVyZW5jZUtleSwKKyNlbmRpZgogICAgICAgICBuaWxdOwog
CiAjaWYgIVBMQVRGT1JNKElPUykKQEAgLTI3MzksNiArMjc0MiwxNiBAQCBzdGF0aWMgTlNTdHJp
bmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFn
IGZvcktleTpXZWJLaXREb3dubG9hZEF0dHJpYnV0ZUVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0K
IAorLSAoQk9PTClpc0NTU0dyaWRMYXlvdXRFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9i
b29sVmFsdWVGb3JLZXk6V2ViS2l0Q1NTR3JpZExheW91dEVuYWJsZWRQcmVmZXJlbmNlS2V5XTsK
K30KKworLSAodm9pZClzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZDooQk9PTClmbGFnCit7CisgICAg
W3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRDU1NHcmlkTGF5b3V0RW5hYmxl
ZFByZWZlcmVuY2VLZXldOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJl
bmNlcyAoV2ViSW50ZXJuYWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA3Y2FhOThkZmYxM2UxZDE4ODZiYmNmNTljNGE1MzU3
MzQ5Y2NhMzY2Li5lNDEyMmJjYTU3YTVkMjRiZmIzNjdjYWJkZGU4ZGYwYjkzZWY0OGYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgK
QEAgLTQ5MCw2ICs0OTAsOSBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2FjaGVN
b2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbjsKIC0gKHZvaWQpc2V0RG93bmxvYWRBdHRy
aWJ1dGVFbmFibGVkOihCT09MKWZsYWc7CiAtIChCT09MKWRvd25sb2FkQXR0cmlidXRlRW5hYmxl
ZDsKIAorLSAodm9pZClzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZDooQk9PTClmbGFnOworLSAoQk9P
TClpc0NTU0dyaWRMYXlvdXRFbmFibGVkOworCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBq
YXZhU2NyaXB0TWFya3VwRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIG1lZGlh
RGF0YUxvYWRzQXV0b21hdGljYWxseTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGF0dGFj
aG1lbnRFbGVtZW50RW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRl
eCAzMjFhZTdhZjQ5NDA4NTdkOTA2ZGE3ODUzNWM3NGUxZmEzNWUxYjE4Li5jOTdkMzk5ZTMxY2Mw
M2JjMjYwYjdmY2RmNTg5OTZjYWNmZDM5NjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCkBAIC0yNDkzLDYgKzI0OTMsMTAgQEAgc3RhdGljIGJvb2wgbmVlZHNTZWxmUmV0YWlu
V2hpbGVMb2FkaW5nUXVpcmsoKQogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuc2V0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkKFtwcmVmZXJlbmNlcyBkb3dubG9h
ZEF0dHJpYnV0ZUVuYWJsZWRdKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKENTU19HUklEX0xBWU9V
VCkKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldENTU0dy
aWRMYXlvdXRFbmFibGVkKFtwcmVmZXJlbmNlcyBpc0NTU0dyaWRMYXlvdXRFbmFibGVkXSk7Cisj
ZW5kaWYKKwogICAgIE5TVGltZUludGVydmFsIHRpbWVvdXQgPSBbcHJlZmVyZW5jZXMgaW5jcmVt
ZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHNdOwogICAgIGlmICh0aW1l
b3V0ID4gMCkKICAgICAgICAgc2V0dGluZ3Muc2V0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVz
c2lvblRpbWVvdXRJblNlY29uZHModGltZW91dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCAyYTU5ODZlNWU1NWFiOGQ0MDI3
NDdjZjc2ZDc4NjIwOWFmODgyNTQ0Li5lNjMzNDdhYWFlYzk2NmQ4OTRiYTUxNGRjMjY0MTQ4YTIw
ZGI5YTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNE
ZWZpbml0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0Rl
ZmluaXRpb25zLmgKQEAgLTI4MSw2ICsyODEsNyBAQAogI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRf
RVhQRVJJTUVOVEFMX0ZFQVRVUkVfUFJFRkVSRU5DRShtYWNybykgXAogICAgIG1hY3JvKEV4cGVy
aW1lbnRhbFNoYWRvd0RPTUVuYWJsZWQsIGV4cGVyaW1lbnRhbFNoYWRvd0RPTUVuYWJsZWQsIEJv
b2wsIGJvb2wsIGZhbHNlLCAiU2hhZG93IERPTSIsICJTdXBwb3J0IGZvciB0aGUgU2hhZG93IERP
TSBmZWF0dXJlIikgXAogICAgIG1hY3JvKEV4cGVyaW1lbnRhbFdlYkdMMkVuYWJsZWQsIGV4cGVy
aW1lbnRhbFdlYkdMMkVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiV2ViR0wgMi4wIiwgIlBy
b3RvdHlwZSBXZWJHTCAyIFN1cHBvcnQiKSBcCisgICAgbWFjcm8oQ1NTR3JpZExheW91dEVuYWJs
ZWQsIGNzc0dyaWRMYXlvdXRFbmFibGVkLCBCb29sLCBib29sLCB0cnVlLCAiIiwgIiIpIFwKICAg
ICBcCiAKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCAwOGM2M2NiMDNjMTJhYWFhNDY2ZDVhNzQw
NzU2ZmNjOTljNzAyODZjLi5mYjJhNWEzZjYzYjllZDRlZjI1YzI4NGRlNTNjMTBiZDY0ODFjYzhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
Y3BwCkBAIC0xNTQwLDMgKzE1NDAsMTMgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0RG93bmxvYWRB
dHRyaWJ1dGVFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCiB7CiAgICAg
cmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmRvd25sb2FkQXR0cmlidXRlRW5hYmxlZCgp
OwogfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpCit7CisgICAgdG9JbXBsKHByZWZl
cmVuY2VzUmVmKS0+c2V0Q1NTR3JpZExheW91dEVuYWJsZWQoZmxhZyk7Cit9CisKK2Jvb2wgV0tQ
cmVmZXJlbmNlc0dldENTU0dyaWRMYXlvdXRFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVy
ZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmNzc0dyaWRM
YXlvdXRFbmFibGVkKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCmluZGV4IDlkYTMxNDAxNTNlZGQ0ZGYw
MTEzODhiYTk4MDk2NDQ0Zjk0MGQ4YzMuLjM1OWRlNDUzOWM0ODJiMWYxNTI1Yjk3NmVjMzY3Zjhk
MjM5ZGExOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCkBAIC00MzEsNiArNDMxLDEwIEBAIFdLX0VYUE9S
VCBib29sIFdLUHJlZmVyZW5jZXNHZXRGZXRjaEFQSUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7
CiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVk
KFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxhZyk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVu
Y2VzR2V0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwogCisvLyBE
ZWZhdWx0cyB0byB0cnVlCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0Q1NTR3JpZExh
eW91dEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsKK1dLX0VYUE9SVCBib29s
IFdLUHJlZmVyZW5jZXNHZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsK
KwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5k
ZXggNDcxM2Q1MGMyOGJkZjFjZDkxZThiNWEwNTY3MzJjYTg3MTEzOGI2ZS4uODkzZmM2ZjljZmE0
ZDI5MjI0Yjc1ZDQ0YWQ1MmVmNzU4ZjhhMTgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAg
LTIxNyw3ICsyMTcsMTIgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6b3ZlcnJpZGVCb29sUHJlZmVy
ZW5jZUZvclRlc3RSdW5uZXIoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2UKICAgICBpZiAocHJlZmVy
ZW5jZSA9PSAiV2ViS2l0RG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkIikKICAgICAgICAgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXREb3dubG9hZEF0dHJpYnV0ZUVu
YWJsZWQoZW5hYmxlZCk7CiAjZW5kaWYKLSAgICAKKworI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlP
VVQpCisgICAgaWYgKHByZWZlcmVuY2UgPT0gIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIikK
KyAgICAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NH
cmlkTGF5b3V0RW5hYmxlZChlbmFibGVkKTsKKyNlbmRpZgorCiAgICAgLy8gTWFwIHRoZSBuYW1l
cyB1c2VkIGluIExheW91dFRlc3RzIHdpdGggdGhlIG5hbWVzIHVzZWQgaW4gV2ViQ29yZTo6U2V0
dGluZ3MgYW5kIFdlYlByZWZlcmVuY2VzU3RvcmUuCiAjZGVmaW5lIEZPUl9FQUNIX09WRVJSSURF
X0JPT0xfUFJFRkVSRU5DRShtYWNybykgXAogICAgIG1hY3JvKFdlYktpdEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkLCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCwgYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0VuYWJsZWQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCBmZWNiNTRjODNiYTUzMzFjYWZiMTU4MWQyMTM4YTQ5OWIw
MDU4MjAwLi5hMmQ4MTFhY2RkODFlYmEwMjJmNjkyMzUzZTIwZWIyNzAzODQ2YjViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMTE4LDYg
KzMxMTgsMTAgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVm
ZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLnNldERvd25sb2FkQXR0cmlidXRlRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRvd25sb2FkQXR0cmlidXRlRW5hYmxlZEtleSgpKSk7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisgICAgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChzdG9y
ZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmNzc0dyaWRMYXlvdXRFbmFi
bGVkS2V5KCkpKTsKKyNlbmRpZgorCiAgICAgYm9vbCBwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVk
ID0gc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpwYWdlVmlzaWJp
bGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZEtleSgpKTsKICAgICBpZiAobV9wcm9j
ZXNzU3VwcHJlc3Npb25FbmFibGVkICE9IHByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQpIHsKICAg
ICAgICAgbV9wcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkID0gcHJvY2Vzc1N1cHByZXNzaW9uRW5h
YmxlZDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA3ZWQyNzU5OTI4NzZmZjI3ZWMxZTRmOTU2YTM2NzQ5ZTczNGJjMmQ5Li45
MDZmMzZmODA5ZTEzM2YxMzgyZmE3MWI4ZGM3NzExM2MwZmM3ZGE0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MTcgQEAKIDIwMTYtMDQtMjggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5j
b20+CiAKKyAgICAgICAgW2Nzcy1ncmlkXSBBZGQgQ1NTIEdyaWQgTGF5b3V0IHJ1bnRpbWUgZmxh
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MTM0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFkZCB0ZXN0
IHRvIHZlcmlmeSB0aGF0IENTUyBHcmlkIExheW91dCBpcyBkaXNhYmxlZCBpZiB0aGUgZmxhZyBp
cyBvZmYuCisKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWRpc2FibGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWRp
c2FibGUuaHRtbDogQWRkZWQuCisKKzIwMTYtMDQtMjggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMg
IDxyZWdvQGlnYWxpYS5jb20+CisKICAgICAgICAgW2Nzcy1ncmlkXSBGaXggYWxpZ25tZW50IHdp
dGggY29udGVudCBkaXN0cmlidXRpb24KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NjYyMwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWRpc2FibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1kaXNhYmxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ODg4NzM5NzRkNGQ3ODc1OGUyNDYxOTFhMmQ4NzRmNzcyMDg3MTVkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1kaXNhYmxlLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitWZXJpZmllcyB0aGF0IENTUyBHcmlkIExheW91dCBkb2Vz
IG5vdCB3b3JrIGlmIHJ1bnRpbWUgZmVhdHVyZSBpcyBkaXNhYmxlZC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dyaWQnKS5z
dHlsZS5kaXNwbGF5IGlzICcnCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmxpbmVn
cmlkJykuc3R5bGUuZGlzcGxheSBpcyAnJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdy
aWQtbGF5b3V0L2dyaWQtZGlzYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1s
YXlvdXQvZ3JpZC1kaXNhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU1MWQ0YTBiOTY1YmRmNjI5MDgy
MTk2NDg5MWMwNzc4MDRjNjZkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2dyaWQtZGlzYWJsZS5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoZmFsc2UpOworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9ImdyaWQiIHN0eWxlPSJkaXNwbGF5OiAtd2Via2l0LWdyaWQiPjwvZGl2PgorPGRpdiBp
ZD0iaW5saW5lZ3JpZCIgc3R5bGU9ImRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWdyaWQiPjwvZGl2
PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVmVyaWZpZXMgdGhhdCBDU1MgR3JpZCBMYXlvdXQg
ZG9lcyBub3Qgd29yayBpZiBydW50aW1lIGZlYXR1cmUgaXMgZGlzYWJsZWQuIik7CisKK3Nob3Vs
ZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JpZCcpLnN0eWxlLmRpc3BsYXkiLCAiJyci
KTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5saW5lZ3JpZCcpLnN0eWxl
LmRpc3BsYXkiLCAiJyciKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>