<?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>135515</bug_id>
          
          <creation_ts>2014-08-01 11:02:32 -0700</creation_ts>
          <short_desc>Create stub long mouse press controller. Part of 135257 - Add long mouse press gesture</short_desc>
          <delta_ts>2014-08-18 11:34:07 -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>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>135476</dependson>
          <blocked>135580</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Peyton Randolph">prandolph</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>prandolph</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1026276</commentid>
    <comment_count>0</comment_count>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-01 11:02:32 -0700</bug_when>
    <thetext>I&apos;d like to have a long press controller in the web process to handle the lifecycle of a long press. Eventually, when a long press begins, this controller will generate information at the point of the long press, such as a snapshot of the long-pressed item, an origin for that snapshot, an associated URL if available, etc. The controller will hold onto this long press data through triggering or canceling the long press, at which point it will release that information and send it up to the UI process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026286</commentid>
    <comment_count>1</comment_count>
      <attachid>235894</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-01 11:25:44 -0700</bug_when>
    <thetext>Created attachment 235894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026334</commentid>
    <comment_count>2</comment_count>
      <attachid>235894</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-08-01 14:27:10 -0700</bug_when>
    <thetext>Comment on attachment 235894
Patch

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

&gt; Source/WebCore/page/ChromeClient.h:198
&gt; +    virtual void startLongMousePress(const IntPoint&amp;) const = 0;

This should be didStartLongMousePress, right?

&gt; Source/WebCore/page/ChromeClient.h:199
&gt; +    virtual void triggerLongMousePress() const = 0;

triggered?

&gt; Source/WebCore/page/ChromeClient.h:200
&gt; +    virtual void cancelLongMousePress() const = 0;

didCancel?

&gt; Source/WebKit2/Shared/LongMousePressData.h:48
&gt; +    String urlString;

Can this be a URL?

&gt; Source/WebKit2/WebProcess/WebPage/LongMousePressController.h:50
&gt; +    __unused WebPage* m_webPage;

Weird.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:1176
&gt; +    LongMousePressController m_longMousePressController;

Can we store in a unique_pointer and only allocate when we need one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026350</commentid>
    <comment_count>3</comment_count>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-01 15:31:05 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 235894 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=235894&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/ChromeClient.h:198
&gt; &gt; +    virtual void startLongMousePress(const IntPoint&amp;) const = 0;
&gt; 
&gt; This should be didStartLongMousePress, right?

I&apos;ll rename these methods to be in the past tense.

&gt; 
&gt; &gt; Source/WebCore/page/ChromeClient.h:199
&gt; &gt; +    virtual void triggerLongMousePress() const = 0;
&gt; 
&gt; triggered?

Ditto.
&gt; 
&gt; &gt; Source/WebCore/page/ChromeClient.h:200
&gt; &gt; +    virtual void cancelLongMousePress() const = 0;
&gt; 
&gt; didCancel?

Ditto.

&gt; 
&gt; &gt; Source/WebKit2/Shared/LongMousePressData.h:48
&gt; &gt; +    String urlString;
&gt; 
&gt; Can this be a URL?

I think so. But similar structures like InteractionInformationAtPosition and every WebPageProxy message represent URLs as Strings. I don&apos;t know why, so I&apos;ll tentatively leave this as String.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/LongMousePressController.h:50
&gt; &gt; +    __unused WebPage* m_webPage;
&gt; 
&gt; Weird.

Removed member variable. I&apos;ll add it back when it&apos;s used in a future patch.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:1176
&gt; &gt; +    LongMousePressController m_longMousePressController;
&gt; 
&gt; Can we store in a unique_pointer and only allocate when we need one?

Done.

(In reply to comment #2)
&gt; (From update of attachment 235894 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=235894&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/ChromeClient.h:198
&gt; &gt; +    virtual void startLongMousePress(const IntPoint&amp;) const = 0;
&gt; 
&gt; This should be didStartLongMousePress, right?
&gt; 
&gt; &gt; Source/WebCore/page/ChromeClient.h:199
&gt; &gt; +    virtual void triggerLongMousePress() const = 0;
&gt; 
&gt; triggered?
&gt; 
&gt; &gt; Source/WebCore/page/ChromeClient.h:200
&gt; &gt; +    virtual void cancelLongMousePress() const = 0;
&gt; 
&gt; didCancel?
&gt; 
&gt; &gt; Source/WebKit2/Shared/LongMousePressData.h:48
&gt; &gt; +    String urlString;
&gt; 
&gt; Can this be a URL?
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/LongMousePressController.h:50
&gt; &gt; +    __unused WebPage* m_webPage;
&gt; 
&gt; Weird.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:1176
&gt; &gt; +    LongMousePressController m_longMousePressController;
&gt; 
&gt; Can we store in a unique_pointer and only allocate when we need one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026361</commentid>
    <comment_count>4</comment_count>
      <attachid>235912</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-01 15:47:15 -0700</bug_when>
    <thetext>Created attachment 235912
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026364</commentid>
    <comment_count>5</comment_count>
      <attachid>235913</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-01 15:47:56 -0700</bug_when>
    <thetext>Created attachment 235913
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026365</commentid>
    <comment_count>6</comment_count>
      <attachid>235914</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-01 15:48:38 -0700</bug_when>
    <thetext>Created attachment 235914
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026905</commentid>
    <comment_count>7</comment_count>
      <attachid>236039</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-05 11:41:24 -0700</bug_when>
    <thetext>Created attachment 236039
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026991</commentid>
    <comment_count>8</comment_count>
      <attachid>236062</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-05 16:12:33 -0700</bug_when>
    <thetext>Created attachment 236062
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027211</commentid>
    <comment_count>9</comment_count>
      <attachid>236113</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-06 10:52:14 -0700</bug_when>
    <thetext>Created attachment 236113
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027718</commentid>
    <comment_count>10</comment_count>
      <attachid>236248</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-07 17:57:08 -0700</bug_when>
    <thetext>Created attachment 236248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027928</commentid>
    <comment_count>11</comment_count>
      <attachid>236248</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-08 13:43:48 -0700</bug_when>
    <thetext>Comment on attachment 236248
Patch

I forgot to alphabetize LongMousePressController.{h,cpp} in the Xcode project. I will do so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027940</commentid>
    <comment_count>12</comment_count>
      <attachid>236248</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-08 14:13:18 -0700</bug_when>
    <thetext>Comment on attachment 236248
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests.

Either tell us why, or remove the line entirely.

&gt; Source/WebKit/mac/ChangeLog:3
&gt; +        Pass long mouse press event up to the web page. 

It&apos;s probably best if all of these changelog titles match the bug, though I&apos;m not s sure that&apos;s actually a rule.

&gt; Source/WebCore/page/ChromeClient.h:198
&gt; +    virtual void didBeginLongMousePress(const IntPoint&amp;) const = 0;

Ditto the thing I said in 135515 about this being a *potential* long mouse press, or something.

&gt; Source/WebCore/page/EventHandler.cpp:1577
&gt; -    
&gt; +

Would be nice if the other patch didn&apos;t add the bad whitespace in the first place, if that&apos;s what&apos;s happening here.

&gt; Source/WebCore/page/EventHandler.cpp:1589
&gt; +    m_longMousePressTimer.startOneShot(longMousePressDelay);

Why do you have startOneShot here twice?!

&gt; Source/WebKit2/Shared/LongMousePressDataStore.cpp:39
&gt; +    encoder &lt;&lt; snapshotHandle;

I cannot remember if encoding null handles is safe, or if you need to send a boolean first marking whether you have a handle following, and not send the handle if it&apos;s null. You should check.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:86
&gt; +#import &lt;WebCore/Element.h&gt;

this should be in the big block up a few lines.

&gt; Source/WebKit2/WebProcess/WebPage/LongMousePressController.h:42
&gt; +    explicit LongMousePressController(WebPage*);

This should take a reference.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:190
&gt; +#if ENABLE(LONG_MOUSE_PRESS)

forward declarations don&apos;t need to be ifdeffed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027957</commentid>
    <comment_count>13</comment_count>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-08 14:45:34 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 236248 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=236248&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        No new tests.
&gt; 
&gt; Either tell us why, or remove the line entirely.

Removed.
&gt; 
&gt; &gt; Source/WebKit/mac/ChangeLog:3
&gt; &gt; +        Pass long mouse press event up to the web page. 
&gt; 
&gt; It&apos;s probably best if all of these changelog titles match the bug, though I&apos;m not s sure that&apos;s actually a rule.

Updated all the changelog titles to match the bug.

&gt; 
&gt; &gt; Source/WebCore/page/ChromeClient.h:198
&gt; &gt; +    virtual void didBeginLongMousePress(const IntPoint&amp;) const = 0;
&gt; 
&gt; Ditto the thing I said in 135515 about this being a *potential* long mouse press, or something.

didBeginTrackingPotentialLongMousePress. Verbose but descriptive.
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:1577
&gt; &gt; -    
&gt; &gt; +
&gt; 
&gt; Would be nice if the other patch didn&apos;t add the bad whitespace in the first place, if that&apos;s what&apos;s happening here.

Will update the previous patch.

&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:1589
&gt; &gt; +    m_longMousePressTimer.startOneShot(longMousePressDelay);
&gt; 
&gt; Why do you have startOneShot here twice?!

Removed. Rebase glitch.

&gt; 
&gt; &gt; Source/WebKit2/Shared/LongMousePressDataStore.cpp:39
&gt; &gt; +    encoder &lt;&lt; snapshotHandle;
&gt; 
&gt; I cannot remember if encoding null handles is safe, or if you need to send a boolean first marking whether you have a handle following, and not send the handle if it&apos;s null. You should check.

The precedent I followed is InteractionInformationAtPosition&apos;s image, and that class doesn&apos;t send an extra boolean and there are cases where its image is null. I&apos;ll do some more digging.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:86
&gt; &gt; +#import &lt;WebCore/Element.h&gt;
&gt; 
&gt; this should be in the big block up a few lines.

Done. Also it should be an #include, not an #import.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/LongMousePressController.h:42
&gt; &gt; +    explicit LongMousePressController(WebPage*);
&gt; 
&gt; This should take a reference.

Done.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:190
&gt; &gt; +#if ENABLE(LONG_MOUSE_PRESS)
&gt; 
&gt; forward declarations don&apos;t need to be ifdeffed.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027963</commentid>
    <comment_count>14</comment_count>
      <attachid>236312</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-08 15:03:10 -0700</bug_when>
    <thetext>Created attachment 236312
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028015</commentid>
    <comment_count>15</comment_count>
      <attachid>236312</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-08 17:08:23 -0700</bug_when>
    <thetext>Comment on attachment 236312
Patch

Rejecting attachment 236312 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 236312, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
pp
patching file Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h
patching file Source/WebKit2/WebProcess/WebPage/LongMousePressController.cpp
patching file Source/WebKit2/WebProcess/WebPage/LongMousePressController.h
patching file Source/WebKit2/WebProcess/WebPage/WebPage.cpp
patching file Source/WebKit2/WebProcess/WebPage/WebPage.h

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Tim Horton&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/5560314498121728</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028022</commentid>
    <comment_count>16</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-08 17:18:59 -0700</bug_when>
    <thetext>Needs a rebase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028027</commentid>
    <comment_count>17</comment_count>
      <attachid>236328</attachid>
    <who name="Peyton Randolph">prandolph</who>
    <bug_when>2014-08-08 17:58:32 -0700</bug_when>
    <thetext>Created attachment 236328
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235894</attachid>
            <date>2014-08-01 11:25:44 -0700</date>
            <delta_ts>2014-08-01 15:47:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135515-20140801112531.patch</filename>
            <type>text/plain</type>
            <size>31607</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzg1OTU5MDI5MDk2ODQ3
NjQwZTMyMTRlZGNhNjdkOWM2MzdhMDg1NC4uYTcwZGZhYTg2YzhiN2FkYTY2NzI3MDVkYzM3Njg4
Y2Q1MmI2NDc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTA4LTAxICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCisgICAgICAgIFRlbGwgdGhlIENo
cm9tZSBjbGllbnQgYWJvdXQgbG9uZyBtb3VzZSBwcmVzcyBldmVudHMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU1MTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAg
ICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIE92ZXJyaWRlIGxvbmcgbW91c2Ug
cHJlc3MgbWV0aG9kcyBpbiBFbXB0eUNocm9tZUNsaWVudC4KKyAgICAgICAgKiBwYWdlL0Nocm9t
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnN0YXJ0TG9uZ01vdXNlUHJlc3MpOiBB
ZGRlZC4gU2VuZCBsb25nIG1vdXNlIHByZXNzIGV2ZW50IHRvIHRoZSBDaHJvbWUgY2xpZW50Lgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjp0cmlnZ2VyTG9uZ01vdXNlUHJlc3MpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y2FuY2VsTG9uZ01vdXNlUHJlc3MpOiBEaXR0by4K
KyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOiBBZGQgbG9uZyBtb3VzZSBwcmVzcyBsaWZlY3ljbGUg
bWV0aG9kcy4KKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOiBEaXR0by4KKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OnN0YXJ0TG9uZ01vdXNlUHJlc3MpOiBUZWxsIENocm9tZSBhYm91dCB0aGUgbG9uZyBtb3VzZSBw
cmVzcyBldmVudC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dHJpZ2dlckxvbmdN
b3VzZVByZXNzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNhbmNl
bExvbmdNb3VzZVByZXNzKTogRGl0dG8uCisKIDIwMTQtMDctMzEgIFBleXRvbiBSYW5kb2xwaCAg
PHByYW5kb2xwaEBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGxvbmcgbW91c2UgcHJl
c3Mgb3ZlciBsaW5rcy4gUGFydCBvZiAxMzUyNTcgLSBBZGQgbG9uZy1wcmVzcyBnZXN0dXJlIHRv
IE1hYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBkNTk0NTgxNGEzNmQyMWFlNzBjMzA5NDViYjA1ODMz
NWU2MjExZGM3Li43OTYwYjgwZTM1YzcyOWY3NjhkNmNmNDlmMDdlOGIzMzFiMjM1ZWQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDgtMDEgIFBleXRvbiBSYW5kb2xw
aCAgPHByYW5kb2xwaEBhcHBsZS5jb20+CisKKyAgICAgICAgUGFzcyBsb25nIG1vdXNlIHByZXNz
IGV2ZW50IHVwIHRvIHRoZSB3ZWIgcGFnZS4gCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU1MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
ICAgICAgICBPdmVycmlkZSBsb25nIG1vdXNlIHByZXNzIGxpZmVjeWNsZSBtZXRob2RzLgorCiAy
MDE0LTA3LTMwICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBVU0Uo
Q09OVEVOVF9GSUxURVJJTkcpIHNob3VsZCBiZSBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggYjkxMDZmNTNhMjEyOTk1YjNlMGY5YWZmZTk5NTcyMGUyZWQ0ZGNhMC4uNjk4
NzA2YWQ1ZTNjZmU1N2Y0MjVkMDA3ZWM0ODY1MzE4ZDZiMmI2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQxIEBACisyMDE0LTA4LTAxICBQZXl0b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUu
Y29tPgorCisgICAgICAgIENyZWF0ZSBzdHViIGxvbmcgbW91c2UgcHJlc3MgY29udHJvbGxlci4g
UGFydCBvZiAxMzUyNTcgLSBBZGQgbG9uZyBtb3VzZSBwcmVzcyBnZXN0dXJlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU1MTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVj
ZXMgdHdvIG5ldyBjbGFzc2VzLCBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIgYW5kIExvbmdNb3Vz
ZVByZXNzRGF0YS4gSXQgYWxzbworICAgICAgICBwcm92aWRlcyB0aGUgbmVjZXNzYXJ5IGNhbGxp
bmcgaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMu
cHk6CisgICAgICAgIChzdHJ1Y3Rfb3JfY2xhc3MpOiBNYXJrIExvbmdNb3VzZVByZXNzRGF0YSBh
cyBhIHN0cnVjdCBzbyBpdCBwbGF5cyBuaWNlbHkgd2l0aCBvdXIgSVBDLgorICAgICAgICAqIFNo
YXJlZC9Mb25nTW91c2VQcmVzc0RhdGEuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TG9u
Z01vdXNlUHJlc3NEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpMb25nTW91c2VQcmVz
c0RhdGE6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0YS5oOiBB
ZGRlZC4gRW5jYXBzdWxhdGUgaW5mb3JtYXRpb24gbmVlZGVkIGJ5IHRoZSBVSSBwcm9jZXNzIGZv
ciB0aGUgbG9uZworICAgICAgICBwcmVzcywgbGlrZSBhIHNuYXBzaG90IG9mIHRoZSBsb25nLXBy
ZXNzZWQgaXRlbSwgYW4gYXNzb2NpYXRlZCBVUkwsIGFuZCBldmVudHVhbGx5IGFzc29jaWF0ZWQg
dGV4dCwKKyAgICAgICAgZXRjLgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajogQWRkZWQgTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyIGFuZCBMb25nTW91c2VQcmVz
c0RhdGEuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnN0YXJ0TG9uZ01vdXNl
UHJlc3MpOiBBZGRlZC4gVGVsbCB0aGUgbG9uZyBtb3VzZSBwcmVzcyBjb250cm9sbGVyLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnRyaWdnZXJMb25nTW91c2VQcmVzcyk6IERp
dHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNhbmNlbExvbmdNb3VzZVBy
ZXNzKTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3ND
b250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkxvbmdNb3VzZVByZXNzQ29u
dHJvbGxlcjo6TG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6TG9u
Z01vdXNlUHJlc3NDb250cm9sbGVyOjpzdGFydExvbmdNb3VzZVByZXNzKTogQWRkZWQgc3R1Yi4g
SW4gYSBmdXR1cmUgcGF0Y2gsIHRoaXMgbWV0aG9kIAorICAgICAgICB3aWxsIGdlbmVyYXRlIGEg
TG9uZ01vdXNlUHJlc3NEYXRhIGZvciB0aGUgbG9uZy1wcmVzc2VkIHBvaW50IGFuZCB3aWxsIHNl
bmQgdGhhdCBpbmZvcm1hdGlvbiB0byB0aGUgVUkKKyAgICAgICAgcHJvY2Vzcy4KKyAgICAgICAg
KFdlYktpdDo6TG9uZ01vdXNlUHJlc3NDb250cm9sbGVyOjp0cmlnZ2VyTG9uZ01vdXNlUHJlc3Mp
OiBBZGRlZCBzdHViLiBJbiBhIGZ1dHVyZSBwYXRjaCwgdGhpcyBtZXRob2QKKyAgICAgICAgd2ls
bCBzZW5kIHRoZSBMb25nTW91c2VQcmVzc0RhdGEgdG8gdGhlIFVJIHByb2Nlc3MuCisgICAgICAg
IChXZWJLaXQ6OkxvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6Y2FuY2VsTG9uZ01vdXNlUHJlc3Mp
OiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250
cm9sbGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDogQWRkZWQgbG9uZyBtb3VzZSBwcmVzcyBjb250cm9sbGVyLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
OiAKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKTog
QWRkZWQgZ2V0dGVyLgorCiAyMDE0LTA3LTMxICBQcnplbXlzbGF3IEt1Y3p5bnNraSAgPHAua3Vj
enluc2tpQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEZpeCB1bmluaXRpYWxpemVkIHNjYWxhciB2
YXJpYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDY4NjcwYzc4YzM1
MWZhMjdlMmEyMDI3Y2FjZDRkMTA1ZDY0MzgzNjYuLmFhNDkyMTQ4YTY4NmFjZjljODI4OGU1N2E3
MWUzN2ZlYjNmZGNlZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0
OSw2ICsxNDksMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURp
ZENoYW5nZSgpIGNvbnN0IG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1v
dmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQpIG92ZXJyaWRlIHsg
fQogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0
TG9uZ01vdXNlUHJlc3MoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZSB7IH07CisgICAg
dmlydHVhbCB2b2lkIHRyaWdnZXJMb25nTW91c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRlIHsgfTsK
KyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTG9uZ01vdXNlUHJlc3MoKSBjb25zdCBvdmVycmlkZSB7
IH07CisjZW5kaWYKKyAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJp
bmcmLCBUZXh0RGlyZWN0aW9uKSBvdmVycmlkZSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwcmlu
dChGcmFtZSopIG92ZXJyaWRlIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDBiNTJjMjk1
ODhhYTFhOTNlYTExN2VkM2FjODZiZDYwYjZiOWFhNWUuLjc2MzJkZDk5NGIwNTkyMWYxNmZiZTQ3
MTRiYzE5NDYzOTJiOGI4MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTM5Nyw2ICszOTcs
MjMgQEAgdm9pZCBDaHJvbWU6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RS
ZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWYKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoJm1fcGFnZSwgcmVzdWx0LCBtb2RpZmllckZs
YWdzKTsKIH0KKyAgICAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKK3ZvaWQgQ2hyb21l
OjpzdGFydExvbmdNb3VzZVByZXNzKGNvbnN0IEludFBvaW50JiBtb3VzZUxvY2F0aW9uKQorewor
ICAgIG1fY2xpZW50LnN0YXJ0TG9uZ01vdXNlUHJlc3MobW91c2VMb2NhdGlvbik7Cit9CisKK3Zv
aWQgQ2hyb21lOjp0cmlnZ2VyTG9uZ01vdXNlUHJlc3MoKQoreworICAgIG1fY2xpZW50LnRyaWdn
ZXJMb25nTW91c2VQcmVzcygpOworfQorCit2b2lkIENocm9tZTo6Y2FuY2VsTG9uZ01vdXNlUHJl
c3MoKQoreworICAgIG1fY2xpZW50LmNhbmNlbExvbmdNb3VzZVByZXNzKCk7Cit9CisjZW5kaWYK
IAogdm9pZCBDaHJvbWU6OnNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggYzI0NTgzYjQ5ZTBiNTZkYzU5Mzc2MWQ2ZmNiNDJkN2Qz
MGQzMmZkOC4uMzQxZmZlM2FmNGRjNjBlZGRkYjRkNWNkZjlmYmY4ZWIwOGZjMmIzNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5oCkBAIC0xNTEsNiArMTUxLDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbW91
c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlm
aWVyRmxhZ3MpOwogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdm9pZCBzdGFy
dExvbmdNb3VzZVByZXNzKGNvbnN0IEludFBvaW50Jik7CisgICAgdm9pZCB0cmlnZ2VyTG9uZ01v
dXNlUHJlc3MoKTsKKyAgICB2b2lkIGNhbmNlbExvbmdNb3VzZVByZXNzKCk7CisjZW5kaWYKKyAg
ICAKICAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYpOwogCiAgICAgdm9p
ZCBwcmludChGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNWZiYTM4
MzE5ZWNmY2E4M2UzMjZkMzg4NjJkYTVmYjNiODk5ZmNlMC4uYTUwZDUyNmE3NTg2YjNkNzY2Nzc0
Zjk1ZDhkYWMxMGMyMjU1M2U3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0x
OTQsNiArMTk0LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVn
aW5CdXR0b25DbGlja2VkKEVsZW1lbnQqLCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1v
dmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFn
cykgPSAwOwogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdmlydHVhbCB2b2lk
IHN0YXJ0TG9uZ01vdXNlUHJlc3MoY29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHRyaWdnZXJMb25nTW91c2VQcmVzcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY2FuY2VsTG9uZ01vdXNlUHJlc3MoKSBjb25zdCA9IDA7CisjZW5kaWYKKyAgICAKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSA9
IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUqKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKaW5kZXggOGI1ZGI3ZmQwNjQ3MWUwMDY0N2Q3NWZmNmNhNGQ3YjU2
NTk0OWFlNi4uZDI5ODIyOTQ4ZjBkNTk2NjQyYWU1MGVhYTQ5ZmNiNzA2ODkyZTI3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTU3MiwzMCArMTU3Miw0MyBAQCB2b2lk
IEV2ZW50SGFuZGxlcjo6YXV0b0hpZGVDdXJzb3JUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxl
cj4mIHRpbWVyKQogICAgICAgICB2aWV3LT5zZXRDdXJzb3IobV9jdXJyZW50TW91c2VDdXJzb3Ip
OwogfQogI2VuZGlmCi0gICAgCisKICNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKIHZvaWQg
RXZlbnRIYW5kbGVyOjpzdGFydExvbmdNb3VzZVByZXNzKCkKIHsKICAgICBjbGVhckxvbmdNb3Vz
ZVByZXNzU3RhdGUoKTsKLSAgICAKKwogICAgIG1fbG9uZ01vdXNlUHJlc3NUaW1lci5zdGFydE9u
ZVNob3QobG9uZ01vdXNlUHJlc3NEZWxheSk7Ci0gICAgCi0gICAgLy8gRklYTUU6IGJ1YmJsZSBs
b25nIG1vdXNlIHByZXNzIHVwIHRvIFVJIHByb2Nlc3MuCisKKyAgICBQYWdlKiBwYWdlID0gbV9m
cmFtZS5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2xv
bmdNb3VzZVByZXNzVGltZXIuc3RhcnRPbmVTaG90KGxvbmdNb3VzZVByZXNzRGVsYXkpOworICAg
IHBhZ2UtPmNocm9tZSgpLnN0YXJ0TG9uZ01vdXNlUHJlc3MobV9tb3VzZURvd25Qb3MpOwogfQot
ICAgIAorCiB2b2lkIEV2ZW50SGFuZGxlcjo6dHJpZ2dlckxvbmdNb3VzZVByZXNzKCkKIHsKLSAg
ICAvLyBGSVhNRTogYnViYmxlIGxvbmcgbW91c2UgcHJlc3MgdXAgdG8gVUkgcHJvY2Vzcy4KKyAg
ICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBwYWdlLT5jaHJvbWUoKS50cmlnZ2VyTG9uZ01vdXNlUHJlc3MoKTsKIH0K
LSAgICAKKwogdm9pZCBFdmVudEhhbmRsZXI6OmNhbmNlbExvbmdNb3VzZVByZXNzKCkKIHsKICAg
ICBpZiAoIW1fbG9uZ01vdXNlUHJlc3NUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICByZXR1cm47
CiAKICAgICBjbGVhckxvbmdNb3VzZVByZXNzU3RhdGUoKTsKLSAgICAKLSAgICAvLyBGSVhNRTog
YnViYmxlIGxvbmcgbW91c2UgcHJlc3MgdXAgdG8gVUkgcHJvY2Vzcy4KKworICAgIFBhZ2UqIHBh
Z2UgPSBtX2ZyYW1lLnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHBhZ2UtPmNocm9tZSgpLmNhbmNlbExvbmdNb3VzZVByZXNzKCk7CiB9CiAKIHZvaWQgRXZl
bnRIYW5kbGVyOjpjbGVhckxvbmdNb3VzZVByZXNzU3RhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjYTg1YWYxZDRl
MmVjZDZhNTZhZWZjYTI5ZDkxNTM2Yjc4YmM1NTJlLi41MDU5MjMxZDlkYTFjMzBmYTA1MmI5N2M4
MmM3NDUwYTVjZjE3MDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTE2LDYgKzExNiwxMiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVt
ZW50KiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVy
RmxhZ3MpIG92ZXJyaWRlOwogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdmly
dHVhbCB2b2lkIHN0YXJ0TG9uZ01vdXNlUHJlc3MoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJpZ2dlckxvbmdNb3VzZVByZXNzKGNvbnN0IEludFBv
aW50JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbExvbmdNb3VzZVBy
ZXNzKGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIHZpcnR1
YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVj
dGlvbikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUq
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9t
ZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQpp
bmRleCBiYzA1MmI4Yzg1OTYxZjE2MTczYWI4OWNhZTdlYjViN2FmOGY1YzZkLi4xMDRlYmRkOTNl
ZTJkYzE0MDliYjc2MDVkMzJjYTdhOWNmMGFlMzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQyL21lc3NhZ2VzLnB5CkBAIC0yMDIsNiArMjAyLDcgQEAgZGVmIHN0cnVjdF9vcl9j
bGFzcyhuYW1lc3BhY2UsIHR5cGUpOgogICAgICAgICAnV2ViS2l0OjpFZGl0aW5nUmFuZ2UnLAog
ICAgICAgICAnV2ViS2l0OjpFZGl0b3JTdGF0ZScsCiAgICAgICAgICdXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJywKKyAgICAgICAgJ1dlYktpdDo6TG9uZ01vdXNlUHJl
c3NEYXRhJywKICAgICAgICAgJ1dlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEnLAogICAgICAg
ICAnV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycycsCiAgICAgICAgICdX
ZWJLaXQ6OlBhZ2VTdGF0ZScsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9u
Z01vdXNlUHJlc3NEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Mb25nTW91c2VQcmVz
c0RhdGEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5MmNmZDUzNTI4ZTY4MjQzOTkzZDNmYjFlNzVmZjEyZGI5
Y2UxYTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNl
UHJlc3NEYXRhLmNwcApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShM
T05HX01PVVNFX1BSRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9uZ01v
dXNlUHJlc3NEYXRhLmgiCisKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgTG9uZ01vdXNlUHJlc3NEYXRhOjplbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBvcmln
aW47CisgICAgZW5jb2RlciA8PCBzbmFwc2hvdEhhbmRsZTsKKyAgICBlbmNvZGVyIDw8IHVybFN0
cmluZzsKK30KKworYm9vbCBMb25nTW91c2VQcmVzc0RhdGE6OmRlY29kZShJUEM6OkFyZ3VtZW50
RGVjb2RlciYgZGVjb2RlciwgTG9uZ01vdXNlUHJlc3NEYXRhJiByZXN1bHQpCit7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQub3JpZ2luKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc25hcHNob3RIYW5kbGUpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC51cmxTdHJp
bmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGEuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGEuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
YWUwYTNjZjE0ZGI2NGUyN2M3NGEyNmM0ZTE1ZThjMmE0NWZjZjRjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0YS5oCkBAIC0wLDAgKzEs
NTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisKKyNpZm5k
ZWYgTG9uZ01vdXNlUHJlc3NEYXRhX2gKKyNkZWZpbmUgTG9uZ01vdXNlUHJlc3NEYXRhX2gKKwor
I2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlN0cmluZy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEFyZ3Vt
ZW50RGVjb2RlcjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3N0cnVjdCBMb25nTW91c2VQcmVzc0RhdGEgeworICAgIHZvaWQgZW5jb2RlKElQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJn
dW1lbnREZWNvZGVyJiwgTG9uZ01vdXNlUHJlc3NEYXRhJik7CisKKyAgICBXZWJDb3JlOjpGbG9h
dFBvaW50IG9yaWdpbjsKKyAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBzbmFwc2hvdEhhbmRs
ZTsKKyAgICBTdHJpbmcgdXJsU3RyaW5nOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBMb25nTW91c2VQcmVzc0luZm9faAorCisjZW5kaWYgLy8gRU5BQkxFKExPTkdf
TU9VU0VfUFJFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNTE5Y2Y4ZWI4YTI1YjhjZTFhYTI3NDYxMDdjMGFhYmE2NTUwNGVk
Zi4uNmZiNDc5Mzc5ZGYyMzRmZGUwNzkyYzdlNjExOWI2YjQzY2U3ODk1NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA5NSw2
ICsxMDk1LDEwIEBACiAJCTkzOTFGMkNCMTIxQjY3QUQwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oICovOyB9OwogCQk5MzlBRTc2NjEzMTZFOTlDMDBBRTA2QTYgLyogV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzOUFFNzY1MTMxNkU5OUMwMEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICov
OyB9OwogCQk5M0JERUIwMTE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5cGVzUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCREVC
MDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5QzRFNkI3MTE5OEMwMDUx
MDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlDNEU2QjZGMTk4QzAwNTEwMDg3NjU1QSAv
KiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwICovOyB9OworCQk5QzRFNkI3MjE5OEMwMDUx
MDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QzRFNkI3MDE5OEMwMDUxMDA4NzY1NUEgLyog
TG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmggKi87IH07CisJCTlDNEU2Qjc1MTk4QzAyOTgwMDg3
NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUM0RTZCNzMxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3Vz
ZVByZXNzRGF0YS5jcHAgKi87IH07CisJCTlDNEU2Qjc2MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25n
TW91c2VQcmVzc0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlDNEU2Qjc0MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGEuaCAq
LzsgfTsKIAkJOUY1NEY4OEYxNjQ4OEU4NzAwN0RGODFBIC8qIENoaWxkUHJvY2Vzc01hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGNTRGODhFMTY0
ODhFODcwMDdERjgxQSAvKiBDaGlsZFByb2Nlc3NNYWMubW0gKi87IH07CiAJCTlGNTRGODk1MTY0
OEFFMEYwMDdERjgxQSAvKiBQbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGNTRGODk0MTY0OEFFMEUwMDdERjgx
QSAvKiBQbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5tbSAqLzsgfTsKIAkJOUZCNUYzOTQxNjlFNkE4
MDAwMkMyNUJGIC8qIFdLQ29udGV4dFByaXZhdGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkI1RjM5MjE2OUU2QTgwMDAyQzI1QkYgLyogV0tD
b250ZXh0UHJpdmF0ZU1hYy5tbSAqLzsgfTsKQEAgLTMxNDksNiArMzE1MywxMCBAQAogCQk5Mzkx
RjI4NDEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUFFNzY1MTMxNkU5OUMw
MEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTNCREVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRU
eXBlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlTG9h
ZFR5cGVzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QzRFNkI2RjE5
OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvbmdNb3VzZVByZXNzQ29udHJvbGxlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlDNEU2QjcwMTk4QzAwNTEwMDg3NjU1QSAv
KiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTlDNEU2QjczMTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGEuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTG9uZ01vdXNlUHJlc3NEYXRh
LmNwcDsgcGF0aCA9IFNoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGEuY3BwOyBzb3VyY2VUcmVlID0g
U09VUkNFX1JPT1Q7IH07CisJCTlDNEU2Qjc0MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQ
cmVzc0RhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTG9uZ01vdXNlUHJl
c3NEYXRhLmg7IHBhdGggPSBTaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhLmg7IHNvdXJjZVRyZWUg
PSBTT1VSQ0VfUk9PVDsgfTsKIAkJOUY1NEY4OEUxNjQ4OEU4NzAwN0RGODFBIC8qIENoaWxkUHJv
Y2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENoaWxk
UHJvY2Vzc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUY1NEY4OTQxNjQ4
QUUwRTAwN0RGODFBIC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGx1Z2luUHJvY2Vzc01hbmFnZXJNYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGQjVGMzkyMTY5RTZBODAwMDJDMjVCRiAvKiBX
S0NvbnRleHRQcml2YXRlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gV0tDb250ZXh0UHJpdmF0ZU1hYy5tbTsgcGF0aCA9IG1hYy9XS0NvbnRleHRQcml2YXRl
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDQyMyw2ICs0NDMxLDggQEAK
IAkJCQlDNThDREYyQzE4ODc2MDlGMDA4NzE1MzYgLyogSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24uaCAqLywKIAkJCQkxQTkyREMxMjEyRjhCQUI5MDAxN0FGNjUgLyogTGF5ZXJUcmVl
Q29udGV4dC5jcHAgKi8sCiAJCQkJMUE5MkRDMTAxMkY4QkE0NjAwMTdBRjY1IC8qIExheWVyVHJl
ZUNvbnRleHQuaCAqLywKKwkJCQk5QzRFNkI3MzE5OEMwMjk4MDA4NzY1NUEgLyogTG9uZ01vdXNl
UHJlc3NEYXRhLmNwcCAqLywKKwkJCQk5QzRFNkI3NDE5OEMwMjk4MDA4NzY1NUEgLyogTG9uZ01v
dXNlUHJlc3NEYXRhLmggKi8sCiAJCQkJQkNCMEFFRTgxMjJGNTNFMzAwQjEzNDFFIC8qIE11dGFi
bGVEaWN0aW9uYXJ5LmNwcCAqLywKIAkJCQlCQ0IwQUVFNzEyMkY1M0UzMDBCMTM0MUUgLyogTXV0
YWJsZURpY3Rpb25hcnkuaCAqLywKIAkJCQkxQURDQjg2ODE4OTgzMUIzMDAyMkVFNUEgLyogTmF2
aWdhdGlvbkFjdGlvbkRhdGEuY3BwICovLApAQCAtNTcwMyw2ICs1NzEzLDggQEAKIAkJQkMwMzJE
NUUxMEY0MzcyQjAwNThDMTVBIC8qIFdlYlBhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTlDNEU2QjZGMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91
c2VQcmVzc0NvbnRyb2xsZXIuY3BwICovLAorCQkJCTlDNEU2QjcwMTk4QzAwNTEwMDg3NjU1QSAv
KiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCAqLywKIAkJCQkyRDI5RUNDRDE5MkYyQzJFMDA5
ODRCNzggLyogQ29jb2EgKi8sCiAJCQkJMkRBOTQ0QjQxODg0RUEyQTAwRUQ4NkRCIC8qIGlvcyAq
LywKIAkJCQlCQzk2M0Q2QzExM0REMTk1MDA1NzRCRTIgLyogbWFjICovLApAQCAtNzE2Miw2ICs3
MTc0LDcgQEAKIAkJCQkxQUJDM0RGQzE4OTlGNTFDMDA0RjA2MjYgLyogV0tOYXZpZ2F0aW9uRGVs
ZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTUyRjkyMTkyMDFEQTcwMEExRkEzNyAvKiBB
UElDb250ZXh0Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzNjFENzMxOTI3
RkEzNjAwMzZBNTlEIC8qIFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5QzRFNkI3MjE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRpdGlu
Z1JhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDE0MEVCMDE4RjM3QkUwMDA1RTc1QTAgLyog
UGFnZU92ZXJsYXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE3NzUzRjExOEJB
QkYwMDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKQEAgLTc0ODQs
NiArNzQ5Nyw3IEBACiAJCQkJMkQ4NzEwMTcxODI4NDE1RDAwMThGQTAxIC8qIFBsYXRmb3JtQ0FM
YXllclJlbW90ZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEzREQyMDIxMjVFNUExRjAw
NDUxNUU2IC8qIFdlYkZpbmRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOTBDMUVFMTI2
NEZENTAwMDNFNDRENCAvKiBXZWJGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUM0
RTZCNzYxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNFNDY5NTQxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1DbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDRTQ2OTU2MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtU3VibWlz
c2lvbkxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1QThEMkQ3MTg3RDMwM0Ew
MEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuaCBpbiBIZWFkZXJzICovLApAQCAtODc0Niw2ICs4NzYw
LDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJ
CQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTlDNEU2Qjc1MTk4QzAyOTgwMDg3NjU1QSAvKiBM
b25nTW91c2VQcmVzc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzVBOEQyRTIxODdERUMx
RTAwQzM5QzlFIC8qIEFQSVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdENzkyRDYx
NzY3Q0I2RTAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUI2MzQwM0Y5MTQ5MTBENTcwMDEwNzBCNSAvKiBBUElPYmplY3QuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC05MzE2LDYgKzkzMzEsNyBAQAogCQkJCTFBQzc1MzdGMTgzQkU1MEYwMDcyQ0IxNSAv
KiBEYXRhUmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0I0RTQ3MThCQkUwNDQw
MDBGQ0ZDOSAvKiBQYWdlQ2xpZW50SW1wbElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxMkUz
NEU0MTMwQjREMDUwMEFCRDE5QSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTlDNEU2QjcxMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVz
c0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFDOTYxMTgxODNEMjk0NzAwRDIw
MDJFIC8qIFdlYklEQlNlcnZlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM0MDc1RjMxMjRGRjAyNzAwNjhGMjBBIC8qIFdLQXJyYXkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTExOEE5RjIxOTA4QjhFQTAwRjdDOTJCIC8qIF9XS05TRmlsZU1hbmFn
ZXJFeHRyYXMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAx
MzI2NGRiNWZiZTNhNDUyMWY1ZjNlNjliYTdkNjQ4YzE4MWE3OWY0Li45MTA0ZGU2NmY5ZDk3YjQy
ZjVlMzE0MmQwN2QyNmNiMmYxMzFkMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC04
Myw2ICs4Myw4IEBACiAjaW5jbHVkZSAiUHJpbnRlckxpc3RHdGsuaCIKICNlbmRpZgogCisjaW1w
b3J0IDxXZWJDb3JlL0VsZW1lbnQuaD4KKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCkBAIC02MDMsNiArNjA1LDI0IEBAIHZvaWQgV2ViQ2hy
b21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiBo
aXRUZXN0UmVzdWx0CiAgICAgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSB3ZWJIaXRUZXN0UmVzdWx0
RGF0YShoaXRUZXN0UmVzdWx0KTsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6TW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQod2ViSGl0VGVzdFJlc3VsdERhdGEsIG1vZGlm
aWVyRmxhZ3MsIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgp
KSkpOwogfQorICAgIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQordm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnN0YXJ0TG9uZ01vdXNlUHJlc3MoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIG1v
dXNlTG9jYXRpb24pIGNvbnN0Cit7CisgICAgbV9wYWdlLT5sb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIoKS5zdGFydExvbmdNb3VzZVByZXNzKG1vdXNlTG9jYXRpb24pOworfQorCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6dHJpZ2dlckxvbmdNb3VzZVByZXNzKCkgY29uc3QKK3sKKyAgICBtX3BhZ2Ut
PmxvbmdNb3VzZVByZXNzQ29udHJvbGxlcigpLnRyaWdnZXJMb25nTW91c2VQcmVzcygpOworfQor
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2FuY2VsTG9uZ01vdXNlUHJlc3MoKSBjb25zdAorewor
ICAgIG1fcGFnZS0+bG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKCkuY2FuY2VsTG9uZ01vdXNlUHJl
c3MoKTsKK30KKyNlbmRpZgorCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRUb29sVGlwKGNv
bnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CmluZGV4IGRkMTYyZmNhZGM3YWY0OTU2Zjc3YzE5NGI5NGIzOGEyMjZmNzlhYzIuLjA4OTRiN2Yx
ZTJkOGE5YmZmZWU3ZmVmNDUxYWNkMWFlNzU1M2M1YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApA
QCAtMTMxLDYgKzEzMSwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJz
TW9kZURpZENoYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQg
bW9kaWZpZXJGbGFncykgb3ZlcnJpZGU7CiAgICAgCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJF
U1MpCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0TG9uZ01vdXNlUHJlc3MoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJpZ2dlckxvbmdN
b3VzZVByZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbExvbmdN
b3VzZVByZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CisjZW5kaWYKKyAgICAKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKSBvdmVy
cmlkZTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKSBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Mb25n
TW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDNjMTA3MjNlNTc3
NWRiOGMyODBhMzdkYjFhZjhkMmE1MDRlODNkMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwCkBA
IC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1Mp
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIuaCIKKworI2luY2x1ZGUgIkxvbmdNb3VzZVByZXNzRGF0YS5oIgorI2luY2x1ZGUgIldlYlBh
Z2UuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI6OkxvbmdNb3VzZVByZXNzQ29udHJvbGxlcihXZWJQ
YWdlKiB3ZWJQYWdlKQorICAgIDogbV93ZWJQYWdlKHdlYlBhZ2UpCit7Cit9CisKK3ZvaWQgTG9u
Z01vdXNlUHJlc3NDb250cm9sbGVyOjpzdGFydExvbmdNb3VzZVByZXNzKGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JikKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50LgorfQorCit2b2lkIExvbmdN
b3VzZVByZXNzQ29udHJvbGxlcjo6dHJpZ2dlckxvbmdNb3VzZVByZXNzKCkKK3sKKyAgICAvLyBG
SVhNRTogaW1wbGVtZW50LgorfQorCit2b2lkIExvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6Y2Fu
Y2VsTG9uZ01vdXNlUHJlc3MoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQuCit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKExPTkdfTU9VU0VfUFJFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNl
UHJlc3NDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTG9u
Z01vdXNlUHJlc3NDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjAwNzdhMGNkNTc0NDY2Zjg1M2Iw
MTViNzQ2NmM5MDQ5OGE0OTc5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaApAQCAtMCwwICsxLDU3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorCisjaWZuZGVm
IExvbmdNb3VzZVByZXNzQ29udHJvbGxlcl9oCisjZGVmaW5lIExvbmdNb3VzZVByZXNzQ29udHJv
bGxlcl9oCisKKyNpbmNsdWRlICJMb25nTW91c2VQcmVzc0RhdGEuaCIKKyNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisK
K2NsYXNzIExvbmdNb3VzZVByZXNzQ29udHJvbGxlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKTsKKworcHVibGljOgorICAgIGV4cGxpY2l0IExv
bmdNb3VzZVByZXNzQ29udHJvbGxlcihXZWJQYWdlKik7CisKKyAgICB2b2lkIHN0YXJ0TG9uZ01v
dXNlUHJlc3MoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKKyAgICB2b2lkIHRyaWdnZXJMb25n
TW91c2VQcmVzcygpOworICAgIHZvaWQgY2FuY2VsTG9uZ01vdXNlUHJlc3MoKTsKKworcHJpdmF0
ZToKKyAgICBMb25nTW91c2VQcmVzc0RhdGEgbV9sb25nTW91c2VQcmVzc0RhdGE7CisgICAgX191
bnVzZWQgV2ViUGFnZSogbV93ZWJQYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXJfaAorCisjZW5kaWYgLy8gRU5BQkxF
KExPTkdfTU9VU0VfUFJFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggMDk2Zjc0MTZmNGUzNDBjNmZhYzA0ODExYzMyMDgyZDU2YjMxODM0
Ny4uYzVhNWI3NjE3OGYxMjMzMTczYzc1OTEwM2VkMmI2NjczOWEyMjgyMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjc0LDYgKzI3NCw5
IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgICwgbV9mb3JtQ2xpZW50KHN0ZDo6bWFrZV91
bmlxdWU8QVBJOjpJbmplY3RlZEJ1bmRsZTo6Rm9ybUNsaWVudD4oKSkKICAgICAsIG1fdWlDbGll
bnQoc3RkOjptYWtlX3VuaXF1ZTxBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdlVUlDbGllbnQ+KCkp
CiAgICAgLCBtX2ZpbmRDb250cm9sbGVyKHRoaXMpCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJF
U1MpCisgICAgLCBtX2xvbmdNb3VzZVByZXNzQ29udHJvbGxlcih0aGlzKQorI2VuZGlmCiAjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAgICAgLCBtX2FjdGl2ZUNvbG9yQ2hvb3NlcigwKQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCA2Y2RmNzBhYjkyZWFmOWRiYTU0YjdmNzJiNTYyOTAxMDU4ZTE1OTFhLi43NDk3MjI3MTBlYzIz
YzgxNWQ4OTk1ZDI1YjE0Y2Q1OWM0MTRkM2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwMyw2ICsxMDMsMTAgQEAgT0JKQ19DTEFTUyBXS0Fj
Y2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0OwogI2RlZmluZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hP
VFRFRF9QTFVHSU5fSEVVUklTVElDIDEKICNlbmRpZgogCisjaWYgRU5BQkxFKExPTkdfTU9VU0Vf
UFJFU1MpCisjaW5jbHVkZSAiTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmgiCisjZW5kaWYKKwog
bmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBBcnJheTsKIH0KQEAgLTIzOCw2ICsyNDIsMTAgQEAgcHVi
bGljOgogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBmdWxsU2NyZWVuTWFuYWdlcigpOwogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyAgICBMb25nTW91c2VQcmVzc0Nv
bnRyb2xsZXImIGxvbmdNb3VzZVByZXNzQ29udHJvbGxlcigpIHsgcmV0dXJuIG1fbG9uZ01vdXNl
UHJlc3NDb250cm9sbGVyOyB9CisjZW5kaWYKKwogICAgIC8vIC0tIENhbGxlZCBieSB0aGUgRHJh
d2luZ0FyZWEuCiAgICAgLy8gRklYTUU6IFdlIGNvdWxkIGdlbmVyaWNpemUgdGhlc2UgaW50byBh
IERyYXdpbmdBcmVhIGNsaWVudCBpbnRlcmZhY2UuIFdvdWxkIHRoYXQgYmUgYmVuZWZpY2lhbD8K
ICAgICB2b2lkIGRyYXdSZWN0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKTsKQEAgLTExNjQsNiArMTE3MiwxMCBAQCBwcml2YXRlOgogCiAgICAgRmlu
ZENvbnRyb2xsZXIgbV9maW5kQ29udHJvbGxlcjsKIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BS
RVNTKQorICAgIExvbmdNb3VzZVByZXNzQ29udHJvbGxlciBtX2xvbmdNb3VzZVByZXNzQ29udHJv
bGxlcjsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBSZWZQdHI8V2ViSW5z
cGVjdG9yPiBtX2luc3BlY3RvcjsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235912</attachid>
            <date>2014-08-01 15:47:15 -0700</date>
            <delta_ts>2014-08-01 15:47:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135515-20140801154702.patch</filename>
            <type>text/plain</type>
            <size>33002</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmExZWVjOWU0ZmRiZTg2
ODc3YWNjMDdlYjE2NWZjZGIyY2EwMjMyNi4uMDBjODZhODI3MDhkNGJlMTc2NjU4MDVmNjk2OWU0
NDliYjA2ZmYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTA4LTAxICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCisgICAgICAgIFRlbGwgdGhlIENo
cm9tZSBjbGllbnQgYWJvdXQgbG9uZyBtb3VzZSBwcmVzcyBldmVudHMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU1MTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAg
ICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIE92ZXJyaWRlIGxvbmcgbW91c2Ug
cHJlc3MgbWV0aG9kcyBpbiBFbXB0eUNocm9tZUNsaWVudC4KKyAgICAgICAgKiBwYWdlL0Nocm9t
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmRpZEJlZ2luTG9uZ01vdXNlUHJlc3Mp
OiBBZGRlZC4gU2VuZCBsb25nIG1vdXNlIHByZXNzIGV2ZW50IHRvIHRoZSBDaHJvbWUgY2xpZW50
LgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpkaWRDYW5jZWxMb25nTW91c2VQcmVz
cyk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6IEFkZCBsb25nIG1vdXNlIHByZXNz
IGxpZmVjeWNsZSBtZXRob2RzLgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6IERpdHRv
LgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyk6IFRlbGwgQ2hyb21lIGFib3V0IHRo
ZSBsb25nIG1vdXNlIHByZXNzIGV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERpdHRvLgorCiAyMDE0LTA3
LTMxICBQZXl0b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgogCiAgICAgICAgIElt
cGxlbWVudCBsb25nIG1vdXNlIHByZXNzIG92ZXIgbGlua3MuIFBhcnQgb2YgMTM1MjU3IC0gQWRk
IGxvbmctcHJlc3MgZ2VzdHVyZSB0byBNYWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZDU5NDU4MTRh
MzZkMjFhZTcwYzMwOTQ1YmIwNTgzMzVlNjIxMWRjNy4uNzk2MGI4MGUzNWM3MjlmNzY4ZDZjZjQ5
ZjA3ZThiMzMxYjIzNWVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE0
LTA4LTAxICBQZXl0b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCisgICAgICAg
IFBhc3MgbG9uZyBtb3VzZSBwcmVzcyBldmVudCB1cCB0byB0aGUgd2ViIHBhZ2UuIAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1NTE1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgT3ZlcnJpZGUgbG9uZyBtb3VzZSBwcmVzcyBs
aWZlY3ljbGUgbWV0aG9kcy4KKwogMjAxNC0wNy0zMCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBs
ZS5jb20+CiAKICAgICAgICAgVVNFKENPTlRFTlRfRklMVEVSSU5HKSBzaG91bGQgYmUgRU5BQkxF
KENPTlRFTlRfRklMVEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI5MTA2ZjUzYTIxMjk5NWIzZTBmOWFm
ZmU5OTU3MjBlMmVkNGRjYTAuLmFiMzI3ZDRkOGZhMjAwNTg4ZWJkZjI3YTg0YmI1ZDNiOTVjOTZh
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxNC0wOC0wMSAgUGV5dG9uIFJhbmRv
bHBoICA8cHJhbmRvbHBoQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgc3R1YiBsb25nIG1v
dXNlIHByZXNzIGNvbnRyb2xsZXIuIFBhcnQgb2YgMTM1MjU3IC0gQWRkIGxvbmcgbW91c2UgcHJl
c3MgZ2VzdHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM1NTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHR3byBuZXcgY2xhc3NlcywgTG9uZ01vdXNlUHJlc3ND
b250cm9sbGVyIGFuZCBMb25nTW91c2VQcmVzc0RhdGEuIEl0IGFsc28KKyAgICAgICAgcHJvdmlk
ZXMgdGhlIG5lY2Vzc2FyeSBjYWxsaW5nIGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5OgorICAgICAgICAoc3RydWN0X29yX2NsYXNzKTogTWFy
ayBMb25nTW91c2VQcmVzc0RhdGEgYXMgYSBzdHJ1Y3Qgc28gaXQgcGxheXMgbmljZWx5IHdpdGgg
b3VyIElQQy4KKyAgICAgICAgKiBTaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OkxvbmdNb3VzZVByZXNzRGF0YTo6ZW5jb2RlKToKKyAgICAgICAg
KFdlYktpdDo6TG9uZ01vdXNlUHJlc3NEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9M
b25nTW91c2VQcmVzc0RhdGEuaDogQWRkZWQuIEVuY2Fwc3VsYXRlIGluZm9ybWF0aW9uIG5lZWRl
ZCBieSB0aGUgVUkgcHJvY2VzcyBmb3IgdGhlIGxvbmcKKyAgICAgICAgcHJlc3MsIGxpa2UgYSBz
bmFwc2hvdCBvZiB0aGUgbG9uZy1wcmVzc2VkIGl0ZW0sIGFuIGFzc29jaWF0ZWQgVVJMLCBhbmQg
ZXZlbnR1YWxseSBhc3NvY2lhdGVkIHRleHQsCisgICAgICAgIGV0Yy4KKyAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIExvbmdNb3VzZVByZXNzQ29udHJv
bGxlciBhbmQgTG9uZ01vdXNlUHJlc3NEYXRhLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpkaWRCZWdpbkxvbmdNb3VzZVByZXNzKTogQWRkZWQuIFRlbGwgdGhlIGxvbmcgbW91
c2UgcHJlc3MgY29udHJvbGxlci4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpk
aWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6OmRpZENhbmNlbExvbmdNb3VzZVByZXNzKTogRGl0dG8uCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OkxvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6TG9uZ01vdXNlUHJlc3ND
b250cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6TG9uZ01vdXNlUHJlc3NDb250cm9sbGVyOjpk
aWRCZWdpbkxvbmdNb3VzZVByZXNzKTogQWRkZWQgc3R1Yi4gSW4gYSBmdXR1cmUgcGF0Y2gsIHRo
aXMgbWV0aG9kIAorICAgICAgICB3aWxsIGdlbmVyYXRlIGEgTG9uZ01vdXNlUHJlc3NEYXRhIGZv
ciB0aGUgbG9uZy1wcmVzc2VkIHBvaW50IGFuZCB3aWxsIHNlbmQgdGhhdCBpbmZvcm1hdGlvbiB0
byB0aGUgVUkKKyAgICAgICAgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6TG9uZ01vdXNlUHJl
c3NDb250cm9sbGVyOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IEFkZGVkIHN0dWIuIElu
IGEgZnV0dXJlIHBhdGNoLCB0aGlzIG1ldGhvZAorICAgICAgICB3aWxsIHNlbmQgdGhlIExvbmdN
b3VzZVByZXNzRGF0YSB0byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6TG9uZ01v
dXNlUHJlc3NDb250cm9sbGVyOjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOiBBZGRlZCBsb25n
IG1vdXNlIHByZXNzIGNvbnRyb2xsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBh
Z2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6IAorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpsb25nTW91c2VQcmVzc0NvbnRyb2xsZXIpOiBBZGRlZCBnZXR0ZXIu
CisKIDIwMTQtMDctMzEgIFByemVteXNsYXcgS3Vjenluc2tpICA8cC5rdWN6eW5za2lAc2Ftc3Vu
Zy5jb20+CiAKICAgICAgICAgRml4IHVuaW5pdGlhbGl6ZWQgc2NhbGFyIHZhcmlhYmxlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggNjg2NzBjNzhjMzUxZmEyN2UyYTIwMjdj
YWNkNGQxMDVkNjQzODM2Ni4uYmM5NDM4NmZlMGEyNWM4M2ZjYmExMjUxYmY1ZjA5ZjM2NmFlMWJm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTQ5LDYgKzE0OSwxMiBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29u
c3Qgb3ZlcnJpZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50
KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCkgb3ZlcnJpZGUgeyB9CiAKKyNpZiBFTkFC
TEUoTE9OR19NT1VTRV9QUkVTUykKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5Mb25nTW91c2VQ
cmVzcyhjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlIHsgfTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKSBjb25zdCBvdmVycmlkZSB7IH07CisgICAg
dmlydHVhbCB2b2lkIGRpZENhbmNlbExvbmdNb3VzZVByZXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyB9
OworI2VuZGlmCisgICAgCiAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5n
JiwgVGV4dERpcmVjdGlvbikgb3ZlcnJpZGUgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQo
RnJhbWUqKSBvdmVycmlkZSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCAwYjUyYzI5NTg4
YWExYTkzZWExMTdlZDNhYzg2YmQ2MGI2YjlhYTVlLi5iOWJjOTJlMTg0MDI3MmUxZTczYTlmNDI5
ZTEzNjIwMzBlMzQ5Y2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC0zOTcsNiArMzk3LDIz
IEBAIHZvaWQgQ2hyb21lOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVz
dWx0JiByZXN1bHQsIHVuc2lnbmVkIG1vZGlmCiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KCZtX3BhZ2UsIHJlc3VsdCwgbW9kaWZpZXJGbGFn
cyk7CiB9CisgICAgCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCit2b2lkIENocm9tZTo6
ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhjb25zdCBJbnRQb2ludCYgbW91c2VMb2NhdGlvbikKK3sK
KyAgICBtX2NsaWVudC5kaWRCZWdpbkxvbmdNb3VzZVByZXNzKG1vdXNlTG9jYXRpb24pOworfQor
Cit2b2lkIENocm9tZTo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKQoreworICAgIG1fY2xp
ZW50LmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7Cit9CisKK3ZvaWQgQ2hyb21lOjpkaWRD
YW5jZWxMb25nTW91c2VQcmVzcygpCit7CisgICAgbV9jbGllbnQuZGlkQ2FuY2VsTG9uZ01vdXNl
UHJlc3MoKTsKK30KKyNlbmRpZgogCiB2b2lkIENocm9tZTo6c2V0VG9vbFRpcChjb25zdCBIaXRU
ZXN0UmVzdWx0JiByZXN1bHQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCBjMjQ1ODNiNDllMGI1
NmRjNTkzNzYxZDZmY2I0MmQ3ZDMwZDMyZmQ4Li43NTJjOTAzNWRkZDY2MWIxMDM4ODE0NTVhOTY4
NzM5ZWJmODg2Yzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTE1MSw2ICsxNTEsMTIgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVz
dWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9Q
UkVTUykKKyAgICB2b2lkIGRpZEJlZ2luTG9uZ01vdXNlUHJlc3MoY29uc3QgSW50UG9pbnQmKTsK
KyAgICB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7CisgICAgdm9pZCBkaWRDYW5j
ZWxMb25nTW91c2VQcmVzcygpOworI2VuZGlmCisgICAgCiAgICAgdm9pZCBzZXRUb29sVGlwKGNv
bnN0IEhpdFRlc3RSZXN1bHQmKTsKIAogICAgIHZvaWQgcHJpbnQoRnJhbWUqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDVmYmEzODMxOWVjZmNhODNlMzI2ZDM4ODYyZGE1ZmIz
Yjg5OWZjZTAuLmZhODRlN2M3ZTkzNTc1MTUxYmE5MTdjZjExMjJiOTNlNGYxMjkwNWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTk0LDYgKzE5NCwxMiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50Kiwg
UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVz
dFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpID0gMDsKIAorI2lmIEVOQUJMRShMT05H
X01PVVNFX1BSRVNTKQorICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkxvbmdNb3VzZVByZXNzKGNv
bnN0IEludFBvaW50JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNvZ25pemVM
b25nTW91c2VQcmVzcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsTG9u
Z01vdXNlUHJlc3MoKSBjb25zdCA9IDA7CisjZW5kaWYKKyAgICAKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSA9IDA7CiAKICAgICB2aXJ0
dWFsIHZvaWQgcHJpbnQoRnJhbWUqKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKaW5kZXggOTgwM2I1NmFmMjg5NDVlZjM0Y2UzYmFmZTNkYzk4M2NjMWNhYTYwMy4uYjEzM2Y5
YjYxMzMwZDc1NGYzNGEzMDY5YjVhM2E2ZGM2MzI5MmUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcApAQCAtMTU3MiwxNyArMTU3MiwyMiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
YXV0b0hpZGVDdXJzb3JUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4mIHRpbWVyKQogICAg
ICAgICB2aWV3LT5zZXRDdXJzb3IobV9jdXJyZW50TW91c2VDdXJzb3IpOwogfQogI2VuZGlmCi0g
ICAgCisKICNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKIHZvaWQgRXZlbnRIYW5kbGVyOjpz
dGFydExvbmdNb3VzZVByZXNzKCkKIHsKICAgICBjbGVhckxvbmdNb3VzZVByZXNzU3RhdGUoKTsK
LSAgICAKKwogICAgIG1fbG9uZ01vdXNlUHJlc3NUaW1lci5zdGFydE9uZVNob3QobG9uZ01vdXNl
UHJlc3NEZWxheSk7Ci0gICAgCi0gICAgLy8gRklYTUU6IGJ1YmJsZSBsb25nIG1vdXNlIHByZXNz
IHVwIHRvIFVJIHByb2Nlc3MuCisKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7Cisg
ICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2xvbmdNb3VzZVByZXNzVGlt
ZXIuc3RhcnRPbmVTaG90KGxvbmdNb3VzZVByZXNzRGVsYXkpOworICAgIHBhZ2UtPmNocm9tZSgp
LmRpZEJlZ2luTG9uZ01vdXNlUHJlc3MobV9tb3VzZURvd25Qb3MpOwogfQotICAgIAorCiB2b2lk
IEV2ZW50SGFuZGxlcjo6cmVjb2duaXplTG9uZ01vdXNlUHJlc3MoVGltZXI8RXZlbnRIYW5kbGVy
PiYgdGltZXIpCiB7CiAgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgJnRpbWVyID09ICZtX2xvbmdN
b3VzZVByZXNzVGltZXIpOwpAQCAtMTU5MywxNyArMTU5OCwyNSBAQCB2b2lkIEV2ZW50SGFuZGxl
cjo6cmVjb2duaXplTG9uZ01vdXNlUHJlc3MoVGltZXI8RXZlbnRIYW5kbGVyPiYgdGltZXIpCiAg
ICAgbV9tb3VzZVByZXNzZWQgPSBmYWxzZTsKICAgICBpbnZhbGlkYXRlQ2xpY2soKTsKIAotICAg
IC8vIEZJWE1FOiBidWJibGUgbG9uZyBtb3VzZSBwcmVzcyB1cCB0byBVSSBwcm9jZXNzLgorICAg
IFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJl
dHVybjsKKworICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7
CiB9Ci0gICAgCisKIHZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxMb25nTW91c2VQcmVzcygpCiB7
CiAgICAgaWYgKCFtX2xvbmdNb3VzZVByZXNzVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgY2xlYXJMb25nTW91c2VQcmVzc1N0YXRlKCk7Ci0gICAgCi0gICAgLy8gRklY
TUU6IGJ1YmJsZSBsb25nIG1vdXNlIHByZXNzIHVwIHRvIFVJIHByb2Nlc3MuCisKKyAgICBQYWdl
KiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47
CisKKyAgICBwYWdlLT5jaHJvbWUoKS5kaWRDYW5jZWxMb25nTW91c2VQcmVzcygpOwogfQogCiB2
b2lkIEV2ZW50SGFuZGxlcjo6Y2xlYXJMb25nTW91c2VQcmVzc1N0YXRlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggY2E4
NWFmMWQ0ZTJlY2Q2YTU2YWVmY2EyOWQ5MTUzNmI3OGJjNTUyZS4uYmFhZTE0MjBjZTg2ZjQ2NzA2
YzkxNGQzNzJkYTc5YmY0ODY5NTRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTExNiw2ICsxMTYsMTIgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29y
ZTo6RWxlbWVudCosIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWls
YWJpbGl0eVJlYXNvbikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBt
b2RpZmllckZsYWdzKSBvdmVycmlkZTsKIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQor
ICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkxvbmdNb3VzZVByZXNzKGNvbnN0IEludFBvaW50Jikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVBy
ZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbExvbmdNb3Vz
ZVByZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBzZXRU
b29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgb3ZlcnJp
ZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weSBi
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQppbmRleCBiYzA1MmI4
Yzg1OTYxZjE2MTczYWI4OWNhZTdlYjViN2FmOGY1YzZkLi4xMDRlYmRkOTNlZTJkYzE0MDliYjc2
MDVkMzJjYTdhOWNmMGFlMzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dl
YmtpdDIvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21l
c3NhZ2VzLnB5CkBAIC0yMDIsNiArMjAyLDcgQEAgZGVmIHN0cnVjdF9vcl9jbGFzcyhuYW1lc3Bh
Y2UsIHR5cGUpOgogICAgICAgICAnV2ViS2l0OjpFZGl0aW5nUmFuZ2UnLAogICAgICAgICAnV2Vi
S2l0OjpFZGl0b3JTdGF0ZScsCiAgICAgICAgICdXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uJywKKyAgICAgICAgJ1dlYktpdDo6TG9uZ01vdXNlUHJlc3NEYXRhJywKICAg
ICAgICAgJ1dlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEnLAogICAgICAgICAnV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycycsCiAgICAgICAgICdXZWJLaXQ6OlBhZ2VT
dGF0ZScsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NE
YXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGEuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE3Mjc1YmIxOTE2YzAwZGYyYWY3YmQ1MjI2MjI5Mjg4NmRmZTVlNWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhLmNw
cApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShMT05HX01PVVNFX1BS
RVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9uZ01vdXNlUHJlc3NEYXRh
LmgiCisKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3ZvaWQgTG9uZ01vdXNlUHJlc3NEYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB1cmxTdHJpbmc7CisgICAg
ZW5jb2RlciA8PCBvcmlnaW47CisKKyAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBzbmFwc2hv
dEhhbmRsZTsKKyAgICBpZiAoc25hcHNob3QpCisgICAgICAgIHNuYXBzaG90LT5jcmVhdGVIYW5k
bGUoc25hcHNob3RIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgIGVuY29kZXIg
PDwgc25hcHNob3RIYW5kbGU7Cit9CisKK2Jvb2wgTG9uZ01vdXNlUHJlc3NEYXRhOjpkZWNvZGUo
SVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIExvbmdNb3VzZVByZXNzRGF0YSYgcmVzdWx0
KQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVybFN0cmluZykpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm9yaWdpbikp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIHNu
YXBzaG90SGFuZGxlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc25hcHNob3RIYW5kbGUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIXNuYXBzaG90SGFuZGxlLmlzTnVsbCgp
KQorICAgICAgICByZXN1bHQuc25hcHNob3QgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShzbmFw
c2hvdEhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTE9OR19NT1VT
RV9QUkVTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Mb25nTW91c2VQcmVz
c0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGEuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YjY0MjlkNGJmMWYyMDJkNjgyMTUxNGY2ZDA1ZGNiMjBlYmVkZTBhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0YS5oCkBA
IC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1Mp
CisKKyNpZm5kZWYgTG9uZ01vdXNlUHJlc3NEYXRhX2gKKyNkZWZpbmUgTG9uZ01vdXNlUHJlc3NE
YXRhX2gKKworI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlN0cmluZy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorCituYW1lc3BhY2UgSVBDIHsKK2Ns
YXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK30KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3N0cnVjdCBMb25nTW91c2VQcmVzc0RhdGEgeworICAgIHZvaWQgZW5j
b2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KElQQzo6QXJndW1lbnREZWNvZGVyJiwgTG9uZ01vdXNlUHJlc3NEYXRhJik7CisKKyAgICBTdHJp
bmcgdXJsU3RyaW5nOworICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgb3JpZ2luOworICAgIFJlZlB0
cjxTaGFyZWFibGVCaXRtYXA+IHNuYXBzaG90OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBMb25nTW91c2VQcmVzc0luZm9faAorCisjZW5kaWYgLy8gRU5BQkxFKExP
TkdfTU9VU0VfUFJFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNTE5Y2Y4ZWI4YTI1YjhjZTFhYTI3NDYxMDdjMGFhYmE2NTUw
NGVkZi4uNmZiNDc5Mzc5ZGYyMzRmZGUwNzkyYzdlNjExOWI2YjQzY2U3ODk1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA5
NSw2ICsxMDk1LDEwIEBACiAJCTkzOTFGMkNCMTIxQjY3QUQwMEVCRjdFOCAvKiBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oICovOyB9OwogCQk5MzlBRTc2NjEzMTZFOTlDMDBBRTA2QTYgLyogV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOUFFNzY1MTMxNkU5OUMwMEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
ICovOyB9OwogCQk5M0JERUIwMTE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5cGVzUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNC
REVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5QzRFNkI3MTE5OEMw
MDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlDNEU2QjZGMTk4QzAwNTEwMDg3NjU1
QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwICovOyB9OworCQk5QzRFNkI3MjE5OEMw
MDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QzRFNkI3MDE5OEMwMDUxMDA4NzY1NUEg
LyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmggKi87IH07CisJCTlDNEU2Qjc1MTk4QzAyOTgw
MDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUM0RTZCNzMxOThDMDI5ODAwODc2NTVBIC8qIExvbmdN
b3VzZVByZXNzRGF0YS5jcHAgKi87IH07CisJCTlDNEU2Qjc2MTk4QzAyOTgwMDg3NjU1QSAvKiBM
b25nTW91c2VQcmVzc0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlDNEU2Qjc0MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGEu
aCAqLzsgfTsKIAkJOUY1NEY4OEYxNjQ4OEU4NzAwN0RGODFBIC8qIENoaWxkUHJvY2Vzc01hYy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGNTRGODhF
MTY0ODhFODcwMDdERjgxQSAvKiBDaGlsZFByb2Nlc3NNYWMubW0gKi87IH07CiAJCTlGNTRGODk1
MTY0OEFFMEYwMDdERjgxQSAvKiBQbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGNTRGODk0MTY0OEFFMEUwMDdE
RjgxQSAvKiBQbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5tbSAqLzsgfTsKIAkJOUZCNUYzOTQxNjlF
NkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4dFByaXZhdGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkI1RjM5MjE2OUU2QTgwMDAyQzI1QkYgLyog
V0tDb250ZXh0UHJpdmF0ZU1hYy5tbSAqLzsgfTsKQEAgLTMxNDksNiArMzE1MywxMCBAQAogCQk5
MzkxRjI4NDEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUFFNzY1MTMxNkU5
OUMwMEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCREVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxv
YWRUeXBlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdl
TG9hZFR5cGVzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QzRFNkI2
RjE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvbmdNb3VzZVByZXNzQ29udHJvbGxlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlDNEU2QjcwMTk4QzAwNTEwMDg3NjU1
QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTlDNEU2QjczMTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGEu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTG9uZ01vdXNlUHJlc3NE
YXRhLmNwcDsgcGF0aCA9IFNoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGEuY3BwOyBzb3VyY2VUcmVl
ID0gU09VUkNFX1JPT1Q7IH07CisJCTlDNEU2Qjc0MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91
c2VQcmVzc0RhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTG9uZ01vdXNl
UHJlc3NEYXRhLmg7IHBhdGggPSBTaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhLmg7IHNvdXJjZVRy
ZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJOUY1NEY4OEUxNjQ4OEU4NzAwN0RGODFBIC8qIENoaWxk
UHJvY2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENo
aWxkUHJvY2Vzc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUY1NEY4OTQx
NjQ4QUUwRTAwN0RGODFBIC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyTWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGx1Z2luUHJvY2Vzc01hbmFnZXJNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGQjVGMzkyMTY5RTZBODAwMDJDMjVCRiAv
KiBXS0NvbnRleHRQcml2YXRlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gV0tDb250ZXh0UHJpdmF0ZU1hYy5tbTsgcGF0aCA9IG1hYy9XS0NvbnRleHRQcml2
YXRlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDQyMyw2ICs0NDMxLDgg
QEAKIAkJCQlDNThDREYyQzE4ODc2MDlGMDA4NzE1MzYgLyogSW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24uaCAqLywKIAkJCQkxQTkyREMxMjEyRjhCQUI5MDAxN0FGNjUgLyogTGF5ZXJU
cmVlQ29udGV4dC5jcHAgKi8sCiAJCQkJMUE5MkRDMTAxMkY4QkE0NjAwMTdBRjY1IC8qIExheWVy
VHJlZUNvbnRleHQuaCAqLywKKwkJCQk5QzRFNkI3MzE5OEMwMjk4MDA4NzY1NUEgLyogTG9uZ01v
dXNlUHJlc3NEYXRhLmNwcCAqLywKKwkJCQk5QzRFNkI3NDE5OEMwMjk4MDA4NzY1NUEgLyogTG9u
Z01vdXNlUHJlc3NEYXRhLmggKi8sCiAJCQkJQkNCMEFFRTgxMjJGNTNFMzAwQjEzNDFFIC8qIE11
dGFibGVEaWN0aW9uYXJ5LmNwcCAqLywKIAkJCQlCQ0IwQUVFNzEyMkY1M0UzMDBCMTM0MUUgLyog
TXV0YWJsZURpY3Rpb25hcnkuaCAqLywKIAkJCQkxQURDQjg2ODE4OTgzMUIzMDAyMkVFNUEgLyog
TmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwICovLApAQCAtNTcwMyw2ICs1NzEzLDggQEAKIAkJQkMw
MzJENUUxMEY0MzcyQjAwNThDMTVBIC8qIFdlYlBhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTlDNEU2QjZGMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25n
TW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwICovLAorCQkJCTlDNEU2QjcwMTk4QzAwNTEwMDg3NjU1
QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCAqLywKIAkJCQkyRDI5RUNDRDE5MkYyQzJF
MDA5ODRCNzggLyogQ29jb2EgKi8sCiAJCQkJMkRBOTQ0QjQxODg0RUEyQTAwRUQ4NkRCIC8qIGlv
cyAqLywKIAkJCQlCQzk2M0Q2QzExM0REMTk1MDA1NzRCRTIgLyogbWFjICovLApAQCAtNzE2Miw2
ICs3MTc0LDcgQEAKIAkJCQkxQUJDM0RGQzE4OTlGNTFDMDA0RjA2MjYgLyogV0tOYXZpZ2F0aW9u
RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTUyRjkyMTkyMDFEQTcwMEExRkEzNyAv
KiBBUElDb250ZXh0Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzNjFENzMx
OTI3RkEzNjAwMzZBNTlEIC8qIFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5QzRFNkI3MjE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRp
dGluZ1JhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDE0MEVCMDE4RjM3QkUwMDA1RTc1QTAg
LyogUGFnZU92ZXJsYXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE3NzUzRjEx
OEJBQkYwMDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKQEAgLTc0
ODQsNiArNzQ5Nyw3IEBACiAJCQkJMkQ4NzEwMTcxODI4NDE1RDAwMThGQTAxIC8qIFBsYXRmb3Jt
Q0FMYXllclJlbW90ZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEzREQyMDIxMjVFNUEx
RjAwNDUxNUU2IC8qIFdlYkZpbmRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOTBDMUVF
MTI2NEZENTAwMDNFNDRENCAvKiBXZWJGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OUM0RTZCNzYxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNFNDY5NTQxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1DbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTU2MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtU3Vi
bWlzc2lvbkxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1QThEMkQ3MTg3RDMw
M0EwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuaCBpbiBIZWFkZXJzICovLApAQCAtODc0Niw2ICs4
NzYwLDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgK
IAkJCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTlDNEU2Qjc1MTk4QzAyOTgwMDg3NjU1QSAv
KiBMb25nTW91c2VQcmVzc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzVBOEQyRTIxODdE
RUMxRTAwQzM5QzlFIC8qIEFQSVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdENzky
RDYxNzY3Q0I2RTAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUI2MzQwM0Y5MTQ5MTBENTcwMDEwNzBCNSAvKiBBUElPYmplY3QuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC05MzE2LDYgKzkzMzEsNyBAQAogCQkJCTFBQzc1MzdGMTgzQkU1MEYwMDcyQ0Ix
NSAvKiBEYXRhUmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0I0RTQ3MThCQkUw
NDQwMDBGQ0ZDOSAvKiBQYWdlQ2xpZW50SW1wbElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUx
MkUzNEU0MTMwQjREMDUwMEFCRDE5QSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTlDNEU2QjcxMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91c2VQ
cmVzc0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFDOTYxMTgxODNEMjk0NzAw
RDIwMDJFIC8qIFdlYklEQlNlcnZlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM0MDc1RjMxMjRGRjAyNzAwNjhGMjBBIC8qIFdLQXJyYXkuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTExOEE5RjIxOTA4QjhFQTAwRjdDOTJCIC8qIF9XS05TRmlsZU1h
bmFnZXJFeHRyYXMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCAxMzI2NGRiNWZiZTNhNDUyMWY1ZjNlNjliYTdkNjQ4YzE4MWE3OWY0Li5kNTk1ZDk0NDRjZTU0
ZGM0ZmE0OWUzMjIxMzYwYTQ4MzVlYjhjNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC04Myw2ICs4Myw4IEBACiAjaW5jbHVkZSAiUHJpbnRlckxpc3RHdGsuaCIKICNlbmRpZgogCisj
aW1wb3J0IDxXZWJDb3JlL0VsZW1lbnQuaD4KKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCkBAIC02MDMsNiArNjA1LDI0IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0
JiBoaXRUZXN0UmVzdWx0CiAgICAgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSB3ZWJIaXRUZXN0UmVz
dWx0RGF0YShoaXRUZXN0UmVzdWx0KTsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6TW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQod2ViSGl0VGVzdFJlc3VsdERhdGEsIG1v
ZGlmaWVyRmxhZ3MsIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdl
dCgpKSkpOwogfQorICAgIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmRpZEJlZ2luTG9uZ01vdXNlUHJlc3MoY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIG1vdXNlTG9jYXRpb24pIGNvbnN0Cit7CisgICAgbV9wYWdlLT5sb25nTW91c2VQcmVzc0Nv
bnRyb2xsZXIoKS5kaWRCZWdpbkxvbmdNb3VzZVByZXNzKG1vdXNlTG9jYXRpb24pOworfQorCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKSBjb25zdAor
eworICAgIG1fcGFnZS0+bG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKCkuZGlkUmVjb2duaXplTG9u
Z01vdXNlUHJlc3MoKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZENhbmNlbExvbmdN
b3VzZVByZXNzKCkgY29uc3QKK3sKKyAgICBtX3BhZ2UtPmxvbmdNb3VzZVByZXNzQ29udHJvbGxl
cigpLmRpZENhbmNlbExvbmdNb3VzZVByZXNzKCk7Cit9CisjZW5kaWYKKwogCiB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmIHRvb2xUaXAsIFRleHREaXJlY3Rp
b24pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBkZDE2MmZjYWRjN2FmNDk1NmY3N2MxOTRi
OTRiMzhhMjI2Zjc5YWMyLi4yZTNiOTY0MzkyNDI0OTM1MmMwMGJhZDIwZjJmMzgzMDEyYmEyZWVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEzMSw2ICsxMzEsMTIgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6
SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIG92ZXJyaWRlOwogICAgIAor
I2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkxv
bmdNb3VzZVByZXNzKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbExvbmdNb3VzZVByZXNzKCkgY29uc3Qgb3Zl
cnJpZGU7CisjZW5kaWYKKyAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBT
dHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKSBvdmVycmlkZTsKICAgICAKICAgICB2aXJ0
dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29u
dHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE1MGYwODEyNGNmMDZkNzlhZTE0OTRkNzVlYzhhZTE0
N2IyYzhjNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIkxv
bmdNb3VzZVByZXNzRGF0YS5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitMb25nTW91c2VQcmVzc0NvbnRy
b2xsZXI6OkxvbmdNb3VzZVByZXNzQ29udHJvbGxlcihXZWJQYWdlKiB3ZWJQYWdlKQoreworfQor
Cit2b2lkIExvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudC4KK30K
Kwordm9pZCBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI6OmRpZFJlY29nbml6ZUxvbmdNb3VzZVBy
ZXNzKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50LgorfQorCit2b2lkIExvbmdNb3VzZVBy
ZXNzQ29udHJvbGxlcjo6ZGlkQ2FuY2VsTG9uZ01vdXNlUHJlc3MoKQoreworICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQuCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKExPTkdfTU9VU0VfUFJFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjEyODg3OTYwOTRkZjIzYjQxMTE3OGIwYjkzY2UxYTUxOTMwNTk0NAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRy
b2xsZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShMT05HX01P
VVNFX1BSRVNTKQorCisjaWZuZGVmIExvbmdNb3VzZVByZXNzQ29udHJvbGxlcl9oCisjZGVmaW5l
IExvbmdNb3VzZVByZXNzQ29udHJvbGxlcl9oCisKKyNpbmNsdWRlICJMb25nTW91c2VQcmVzc0Rh
dGEuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIExvbmdNb3VzZVByZXNzQ29udHJvbGxlciB7Cisg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKTsKKworcHVi
bGljOgorICAgIGV4cGxpY2l0IExvbmdNb3VzZVByZXNzQ29udHJvbGxlcihXZWJQYWdlKik7CisK
KyAgICB2b2lkIGRpZEJlZ2luTG9uZ01vdXNlUHJlc3MoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
KTsKKyAgICB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7CisgICAgdm9pZCBkaWRD
YW5jZWxMb25nTW91c2VQcmVzcygpOworCitwcml2YXRlOgorICAgIExvbmdNb3VzZVByZXNzRGF0
YSBtX2xvbmdNb3VzZVByZXNzRGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyX2gKKworI2VuZGlmIC8vIEVOQUJMRShM
T05HX01PVVNFX1BSRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDA5NmY3NDE2ZjRlMzQwYzZmYWMwNDgxMWMzMjA4MmQ1NmIzMTgzNDcu
LjFkNjRjZjExMmEzMGRhZjQ1YzgzYjRmNTkwNzFjZDA2YzU2NmYzOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTIwNSw2ICsyMDUsMTAg
QEAKICNpbmNsdWRlICJDb29yZGluYXRlZExheWVyVHJlZUhvc3RNZXNzYWdlcy5oIgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyNpbmNsdWRlICJMb25nTW91c2VQcmVz
c0NvbnRyb2xsZXIuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEyODQsNiArMTI4OCwxNiBAQCB2b2lkIFdlYlBhZ2U6OnNj
cm9sbE1haW5GcmFtZUlmTm90QXRNYXhTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRTaXplJiBzY3Jv
bGxPZmZzZQogICAgIGZyYW1lVmlldy0+c2V0U2Nyb2xsUG9zaXRpb24oZnJhbWVWaWV3LT5zY3Jv
bGxQb3NpdGlvbigpICsgbmV3U2Nyb2xsT2Zmc2V0KTsKIH0KIAorI2lmIEVOQUJMRShMT05HX01P
VVNFX1BSRVNTKQorTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyJiBXZWJQYWdlOjpsb25nTW91c2VQ
cmVzc0NvbnRyb2xsZXIoKQoreworICAgIGlmICghbV9sb25nTW91c2VQcmVzc0NvbnRyb2xsZXIp
CisgICAgICAgIG1fbG9uZ01vdXNlUHJlc3NDb250cm9sbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxM
b25nTW91c2VQcmVzc0NvbnRyb2xsZXI+KHRoaXMpOworCisgICAgcmV0dXJuICptX2xvbmdNb3Vz
ZVByZXNzQ29udHJvbGxlci5nZXQoKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2U6OmRyYXdS
ZWN0KEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0
KQogewogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihncmFwaGljc0Nv
bnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggNmNkZjcwYWI5MmVhZjlkYmE1NGI3ZjcyYjU2MjkwMTA1OGUxNTkxYS4uNWY5ZDFkMTA1Mjc4
MzY2OGIxZWVkODE5MWQyYjcwODM4ZDU2MWZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDMsNiArMTAzLDEwIEBAIE9CSkNfQ0xBU1MgV0tB
Y2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdDsKICNkZWZpbmUgRU5BQkxFX1BSSU1BUllfU05BUFNI
T1RURURfUExVR0lOX0hFVVJJU1RJQyAxCiAjZW5kaWYKIAorI2lmIEVOQUJMRShMT05HX01PVVNF
X1BSRVNTKQorI2luY2x1ZGUgIkxvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXJyYXk7CiB9CkBAIC0xODMsNiArMTg3LDEwIEBAIGNs
YXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogY2xhc3MgV2ViVG91Y2hFdmVudDsKICNl
bmRpZgogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCitjbGFzcyBMb25nTW91c2VQcmVz
c0NvbnRyb2xsZXI7CisjZW5kaWYKKwogY2xhc3MgV2ViUGFnZSA6IHB1YmxpYyBBUEk6Ok9iamVj
dEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZVBhZ2U+LCBwdWJsaWMgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgewogcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYlBhZ2U+IGNyZWF0ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKQEAgLTIzOCw2ICsyNDYsMTAgQEAgcHVibGljOgogICAg
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBmdWxsU2NyZWVuTWFuYWdlcigpOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyAgICBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIm
IGxvbmdNb3VzZVByZXNzQ29udHJvbGxlcigpOworI2VuZGlmCisKICAgICAvLyAtLSBDYWxsZWQg
YnkgdGhlIERyYXdpbmdBcmVhLgogICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBnZW5lcmljaXplIHRo
ZXNlIGludG8gYSBEcmF3aW5nQXJlYSBjbGllbnQgaW50ZXJmYWNlLiBXb3VsZCB0aGF0IGJlIGJl
bmVmaWNpYWw/CiAgICAgdm9pZCBkcmF3UmVjdChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CkBAIC0xMTY0LDYgKzExNzYsMTAgQEAgcHJpdmF0ZToK
IAogICAgIEZpbmRDb250cm9sbGVyIG1fZmluZENvbnRyb2xsZXI7CiAKKyNpZiBFTkFCTEUoTE9O
R19NT1VTRV9QUkVTUykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TG9uZ01vdXNlUHJlc3NDb250cm9s
bGVyPiBtX2xvbmdNb3VzZVByZXNzQ29udHJvbGxlcjsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKICAgICBSZWZQdHI8V2ViSW5zcGVjdG9yPiBtX2luc3BlY3RvcjsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235913</attachid>
            <date>2014-08-01 15:47:56 -0700</date>
            <delta_ts>2014-08-01 15:48:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135515-20140801154743.patch</filename>
            <type>text/plain</type>
            <size>11231</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzgxOWE0ODM3NGY3OWVk
MzgyZWFlYmNkY2MwYWNiZjAzZDUzMTczZS4uZmExZWVjOWU0ZmRiZTg2ODc3YWNjMDdlYjE2NWZj
ZGIyY2EwMjMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTA3LTMxICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBs
b25nIG1vdXNlIHByZXNzIG92ZXIgbGlua3MuIFBhcnQgb2YgMTM1MjU3IC0gQWRkIGxvbmctcHJl
c3MgZ2VzdHVyZSB0byBNYWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzU0NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6RXZlbnRIYW5kbGVyKTogCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OmNsZWFyKTogQ2xlYXIgbG9uZyBwcmVzcyBzdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KTogU3RhcnQgdGhlIGxvbmctcHJlc3Mg
aWYgdGhlIG1vdXNlIHByZXNzIGlzIGEgbGVmdAorICAgICAgICBtb3VzZSBwcmVzcyBvdmVyIGEg
bGluay4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZXZlbnRNYXlTdGFydERyYWcp
OiBXZSBjYW5ub3Qgc3RhcnQgYSBkcmFnIGlmIHdlJ3ZlIHJlY29nbml6ZWQgYSBsb25nIHByZXNz
LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVJlbGVhc2VFdmVu
dCk6IAorICAgICAgICBJZiB3ZSBkaWRuJ3QgcmVjb2duaXplIGEgbG9uZyBwcmVzcywgY2FuY2Vs
IHRoZSBsb25nIHByZXNzLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpiZWdpbkxv
bmdNb3VzZVByZXNzKTogCisgICAgICAgIEJlZ2luIHRoZSBsb25nIG1vdXNlIHByZXNzIGJ5IGtp
Y2tpbmcgb2ZmIGEgdGltZXIuIElmIHRoZSB0aW1lciBmaXJlcyBiZWZvcmUgdGhlIGxvbmcgcHJl
c3MgaXMKKyAgICAgICAgY2FuY2VsbGVkLCB0aGUgbG9uZyBwcmVzcyBpcyByZWNvZ25pemVkLgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpyZWNvZ25pemVMb25nTW91c2VQcmVzcyk6
IEFkZGVkLiBUcmlnZ2VyIHRoZSBsb25nLXByZXNzIGFuZCBkaXNhYmxlIG90aGVyCisgICAgICAg
IGFjdGlvbnMgbGlrZSBkcmFnZ2luZy4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
Y2FuY2VsTG9uZ01vdXNlUHJlc3MpOiBBZGRlZC4gQ2FuY2VsIHRoZSBsb25nIHByZXNzIGJ5IGNs
ZWFyaW5nIHJlbGF0ZWQgc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNs
ZWFyTG9uZ01vdXNlUHJlc3NTdGF0ZSk6IEFkZGVkLiBDbGVhciBsb25nIHByZXNzIHN0YXRlLgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVMb25nTW91c2VQcmVzc01vdXNl
TW92ZWRFdmVudCk6IEFkZGVkLiBDYW5jZWwgdGhlIGxvbmcgcHJlc3MgaWYKKyAgICAgICAgdGhl
IG1vdXNlIG1vdmVzIG91dHNpZGUgYSBzcGVjaWZpZWQgaHlzdGVyZXNpcyBpbnRlcnZhbC4gVXBk
YXRlIHRoZSBjdXJzb3IgaWYgdGhlIGxvbmcgcHJlc3MgaGFzIGJlZW4KKyAgICAgICAgdHJpZ2dl
cmVkIGFscmVhZHkuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNl
TW92ZUV2ZW50KTogQXNrIGhhbmRsZUxvbmdNb3VzZVByZXNzTW91c2VNb3ZlZEV2ZW50IHdoZXRo
ZXIgdG8KKyAgICAgICAgcmV0dXJuIGVhcmx5IGFuZCBub3QgdXBkYXRlIGhvdmVycywgY3Vyc29y
cywgZHJhZ3MsIGV0Yy4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZHJhZ0h5c3Rl
cmVzaXNFeGNlZWRlZCk6IEZhY3RvciBvdXQgdGhlIGh5c3RlcmVzaXMgYm91bmRzIGNoZWNrIGlu
dG8KKyAgICAgICAgbW91c2VIeXN0ZXJlc2lzRXhjZWVkZWQoKS4KKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6aGFuZGxlRHJhZyk6IENhbmNlbCBsb25nIHByZXNzIHVwb24gc3RhcnRp
bmcgZHJhZy4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6bW91c2VIeXN0ZXJlc2lz
RXhjZWVkZWQpOiBBZGRlZC4gR2VuZXJhbCBoeXN0ZXJlc2lzIGZ1bmN0aW9uIHRoYXQgdGFrZXMg
YW4KKyAgICAgICAgYXJiaXRyYXJ5IG1vdXNlIG1vdmVtZW50IHRocmVzaG9sZC4gRmFjdG9yZWQg
b3V0IGZyb20gZHJhZ0h5c3RlcmVzaXNFeGNlZWRlZC4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFu
ZGxlci5oOgorCiAyMDE0LTA3LTMxICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT046IFNlYXJjaCBoaWdobGlnaHQgaXMgYnJva2VuIGluIFJUTCBt
dWx0aWNvbHVtbiBjb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXgg
ODdiYjIxM2ZkMWQyOTc2ZGI4NmI5ZGEwOTkwNGViMzg4MGY5OWZlZi4uOTgwM2I1NmFmMjg5NDVl
ZjM0Y2UzYmFmZTNkYzk4M2NjMWNhYTYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcApAQCAtMTYyLDYgKzE2MiwxMSBAQCBjb25zdCBkb3VibGUgY3Vyc29yVXBkYXRlSW50ZXJ2
YWwgPSAwLjAyOwogCiBjb25zdCBpbnQgbWF4aW11bUN1cnNvclNpemUgPSAxMjg7CiAjZW5kaWYK
KyAgICAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKK2NvbnN0IGRvdWJsZSBsb25nTW91
c2VQcmVzc0RlbGF5ID0gMC41OworY29uc3QgaW50IGxvbmdNb3VzZVByZXNzSHlzdGVyZXNpcyA9
IDU7CisjZW5kaWYKIAogI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCiAvLyBJdCdzIHBy
ZXR0eSB1bmxpa2VseSB0aGF0IGEgc2NhbGUgb2YgbGVzcyB0aGFuIG9uZSB3b3VsZCBldmVyIGJl
IHVzZWQuIEJ1dCBhbGwgd2UgcmVhbGx5CkBAIC0zNzEsNiArMzc2LDEwIEBAIEV2ZW50SGFuZGxl
cjo6RXZlbnRIYW5kbGVyKEZyYW1lJiBmcmFtZSkKICNpZiBFTkFCTEUoQ1VSU09SX1NVUFBPUlQp
CiAgICAgLCBtX2N1cnNvclVwZGF0ZVRpbWVyKHRoaXMsICZFdmVudEhhbmRsZXI6OmN1cnNvclVw
ZGF0ZVRpbWVyRmlyZWQpCiAjZW5kaWYKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyAg
ICAsIG1fbG9uZ01vdXNlUHJlc3NUaW1lcih0aGlzLCAmRXZlbnRIYW5kbGVyOjpyZWNvZ25pemVM
b25nTW91c2VQcmVzcykKKyAgICAsIG1fZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoZmFsc2Up
CisjZW5kaWYKICAgICAsIG1fYXV0b3Njcm9sbENvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxB
dXRvc2Nyb2xsQ29udHJvbGxlcj4oKSkKICAgICAsIG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Ny
b2xsKGZhbHNlKQogICAgICwgbV9tb3VzZURvd25XYXNJblN1YmZyYW1lKGZhbHNlKQpAQCAtNDQ3
LDYgKzQ1Niw5IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAjaWYgRU5BQkxFKENVUlNP
Ul9WSVNJQklMSVRZKQogICAgIGNhbmNlbEF1dG9IaWRlQ3Vyc29yVGltZXIoKTsKICNlbmRpZgor
I2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorICAgIGNsZWFyTG9uZ01vdXNlUHJlc3NTdGF0
ZSgpOworI2VuZGlmCiAgICAgbV9yZXNpemVMYXllciA9IDA7CiAgICAgbV9lbGVtZW50VW5kZXJN
b3VzZSA9IG51bGxwdHI7CiAgICAgbV9sYXN0RWxlbWVudFVuZGVyTW91c2UgPSBudWxscHRyOwpA
QCAtNzYyLDYgKzc3NCwxMSBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2
ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZQogICAgICAgICB9CiAg
ICAgfQogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgaWYgKGV2ZW50LmlzT3Zl
ckxpbmsoKSAmJiBldmVudC5ldmVudCgpLmJ1dHRvbigpID09IExlZnRCdXR0b24pCisgICAgICAg
IGJlZ2luTG9uZ01vdXNlUHJlc3MoKTsKKyNlbmRpZgorCiAgICAgLy8gV2UgZG9uJ3QgZG8gdGhp
cyBhdCB0aGUgc3RhcnQgb2YgbW91c2UgZG93biBoYW5kbGluZywKICAgICAvLyBiZWNhdXNlIHdl
IGRvbid0IHdhbnQgdG8gZG8gaXQgdW50aWwgd2Uga25vdyB3ZSBkaWRuJ3QgaGl0IGEgd2lkZ2V0
LgogICAgIGlmIChzaW5nbGVDbGljaykKQEAgLTg0Niw2ICs4NjMsMTEgQEAgYm9vbCBFdmVudEhh
bmRsZXI6OmV2ZW50TWF5U3RhcnREcmFnKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQp
IGNvbnN0CiAKICAgICBpZiAoZXZlbnQuYnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCBldmVudC5j
bGlja0NvdW50KCkgIT0gMSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYgRU5BQkxFKExP
TkdfTU9VU0VfUFJFU1MpCisgICAgaWYgKG1fZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogICAgIAogICAgIEZyYW1lVmlldyogdmlldyA9
IG1fZnJhbWUudmlldygpOwogICAgIGlmICghdmlldykKQEAgLTEwMDIsNiArMTAyNCwxMSBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY29uc3QgTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyYgZQogICAgIG1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSA9IGZh
bHNlOwogICAKICAgICBib29sIGhhbmRsZWQgPSBmYWxzZTsKKyAgICAKKyNpZiBFTkFCTEUoTE9O
R19NT1VTRV9QUkVTUykKKyAgICBpZiAoIW1fZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MgJiYg
ZXZlbnQuZXZlbnQoKS5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKQorICAgICAgICBjbGVhckxvbmdN
b3VzZVByZXNzU3RhdGUoKTsKKyNlbmRpZgogCiAgICAgLy8gQ2xlYXIgdGhlIHNlbGVjdGlvbiBp
ZiB0aGUgbW91c2UgZGlkbid0IG1vdmUgYWZ0ZXIgdGhlIGxhc3QgbW91c2UKICAgICAvLyBwcmVz
cyBhbmQgaXQncyBub3QgYSBjb250ZXh0IG1lbnUgY2xpY2suICBXZSBkbyB0aGlzIHNvIHdoZW4g
Y2xpY2tpbmcKQEAgLTE1NDUsNiArMTU3Miw2NiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6YXV0b0hp
ZGVDdXJzb3JUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4mIHRpbWVyKQogICAgICAgICB2
aWV3LT5zZXRDdXJzb3IobV9jdXJyZW50TW91c2VDdXJzb3IpOwogfQogI2VuZGlmCisgICAgCisj
aWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCit2b2lkIEV2ZW50SGFuZGxlcjo6c3RhcnRMb25n
TW91c2VQcmVzcygpCit7CisgICAgY2xlYXJMb25nTW91c2VQcmVzc1N0YXRlKCk7CisgICAgCisg
ICAgbV9sb25nTW91c2VQcmVzc1RpbWVyLnN0YXJ0T25lU2hvdChsb25nTW91c2VQcmVzc0RlbGF5
KTsKKyAgICAKKyAgICAvLyBGSVhNRTogYnViYmxlIGxvbmcgbW91c2UgcHJlc3MgdXAgdG8gVUkg
cHJvY2Vzcy4KK30KKyAgICAKK3ZvaWQgRXZlbnRIYW5kbGVyOjpyZWNvZ25pemVMb25nTW91c2VQ
cmVzcyhUaW1lcjxFdmVudEhhbmRsZXI+JiB0aW1lcikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHRp
bWVyLCAmdGltZXIgPT0gJm1fbG9uZ01vdXNlUHJlc3NUaW1lcik7CisKKyAgICBtX2RpZFJlY29n
bml6ZUxvbmdNb3VzZVByZXNzID0gdHJ1ZTsKKworICAgIC8vIENsZWFyIG1vdXNlIHN0YXRlIHRv
IGF2b2lkIGluaXRpYXRpbmcgYSBkcmFnLgorICAgIG1fbW91c2VQcmVzc2VkID0gZmFsc2U7Cisg
ICAgaW52YWxpZGF0ZUNsaWNrKCk7CisKKyAgICAvLyBGSVhNRTogYnViYmxlIGxvbmcgbW91c2Ug
cHJlc3MgdXAgdG8gVUkgcHJvY2Vzcy4KK30KKyAgICAKK3ZvaWQgRXZlbnRIYW5kbGVyOjpjYW5j
ZWxMb25nTW91c2VQcmVzcygpCit7CisgICAgaWYgKCFtX2xvbmdNb3VzZVByZXNzVGltZXIuaXNB
Y3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2xlYXJMb25nTW91c2VQcmVzc1N0YXRl
KCk7CisgICAgCisgICAgLy8gRklYTUU6IGJ1YmJsZSBsb25nIG1vdXNlIHByZXNzIHVwIHRvIFVJ
IHByb2Nlc3MuCit9CisKK3ZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhckxvbmdNb3VzZVByZXNzU3Rh
dGUoKQoreworICAgIG1fbG9uZ01vdXNlUHJlc3NUaW1lci5zdG9wKCk7CisgICAgbV9kaWRSZWNv
Z25pemVMb25nTW91c2VQcmVzcyA9IGZhbHNlOworfQorICAgIAorYm9vbCBFdmVudEhhbmRsZXI6
OmhhbmRsZUxvbmdNb3VzZVByZXNzTW91c2VNb3ZlZEV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYgbW91c2VFdmVudCkKK3sKKyAgICBpZiAobW91c2VFdmVudC5idXR0b24oKSAhPSBMZWZ0
QnV0dG9uIHx8IG1vdXNlRXZlbnQudHlwZSgpICE9IFBsYXRmb3JtRXZlbnQ6Ok1vdXNlTW92ZWQp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChtX2RpZFJlY29nbml6ZUxvbmdNb3Vz
ZVByZXNzKSB7CisgICAgICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLnZpZXcoKSkK
KyAgICAgICAgICAgIHZpZXctPnNldEN1cnNvcihwb2ludGVyQ3Vyc29yKCkpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIW1vdXNlSHlzdGVyZXNpc0V4Y2VlZGVkKG1v
dXNlRXZlbnQucG9zaXRpb24oKSwgbG9uZ01vdXNlUHJlc3NIeXN0ZXJlc2lzKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgY2FuY2VsTG9uZ01vdXNlUHJlc3MoKTsKKworICAgIHJldHVy
biBmYWxzZTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQogCiBzdGF0
aWMgTGF5b3V0UG9pbnQgZG9jdW1lbnRQb2ludEZvcldpbmRvd1BvaW50KEZyYW1lJiBmcmFtZSwg
Y29uc3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KQogewpAQCAtMTc5Niw2ICsxODgzLDExIEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZU1vdmVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmIG1vdXNlRXZlbnQsIEhpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyAgICBpZiAoaGFuZGxlTG9uZ01vdXNlUHJlc3NN
b3VzZU1vdmVkRXZlbnQobW91c2VFdmVudCkpCisgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlm
CisKICAgICBSZWZQdHI8RnJhbWVWaWV3PiBwcm90ZWN0b3IobV9mcmFtZS52aWV3KCkpOwogICAg
IAogICAgIHNldExhc3RLbm93bk1vdXNlUG9zaXRpb24obW91c2VFdmVudCk7CkBAIC0zMjE1LDEy
ICszMzA3LDYgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmRyYWdIeXN0ZXJlc2lzRXhjZWVkZWQoY29u
c3QgSW50UG9pbnQmIGZsb2F0RHJhZ1ZpZXdwb3J0TG9jYXQKIAogYm9vbCBFdmVudEhhbmRsZXI6
OmRyYWdIeXN0ZXJlc2lzRXhjZWVkZWQoY29uc3QgRmxvYXRQb2ludCYgZHJhZ1ZpZXdwb3J0TG9j
YXRpb24pIGNvbnN0CiB7Ci0gICAgRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS52aWV3KCk7Ci0g
ICAgaWYgKCF2aWV3KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgSW50UG9pbnQgZHJhZ0xv
Y2F0aW9uID0gdmlldy0+d2luZG93VG9Db250ZW50cyhmbG9vcmVkSW50UG9pbnQoZHJhZ1ZpZXdw
b3J0TG9jYXRpb24pKTsKLSAgICBJbnRTaXplIGRlbHRhID0gZHJhZ0xvY2F0aW9uIC0gbV9tb3Vz
ZURvd25Qb3M7Ci0gICAgCiAgICAgaW50IHRocmVzaG9sZCA9IEdlbmVyYWxEcmFnSHlzdGVyZXNp
czsKICAgICBzd2l0Y2ggKGRyYWdTdGF0ZSgpLnR5cGUpIHsKICAgICBjYXNlIERyYWdTb3VyY2VB
Y3Rpb25TZWxlY3Rpb246CkBAIC0zMjM5LDcgKzMzMjUsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6
ZHJhZ0h5c3RlcmVzaXNFeGNlZWRlZChjb25zdCBGbG9hdFBvaW50JiBkcmFnVmlld3BvcnRMb2Nh
dGlvbgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAgICAgCi0gICAgcmV0
dXJuIGFicyhkZWx0YS53aWR0aCgpKSA+PSB0aHJlc2hvbGQgfHwgYWJzKGRlbHRhLmhlaWdodCgp
KSA+PSB0aHJlc2hvbGQ7CisgICAgcmV0dXJuIG1vdXNlSHlzdGVyZXNpc0V4Y2VlZGVkKGRyYWdW
aWV3cG9ydExvY2F0aW9uLCB0aHJlc2hvbGQpOwogfQogICAgIAogdm9pZCBFdmVudEhhbmRsZXI6
OmZyZWVEYXRhVHJhbnNmZXIoKQpAQCAtMzQxMyw2ICszNDk5LDEwIEBAIGJvb2wgRXZlbnRIYW5k
bGVyOjpoYW5kbGVEcmFnKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZW50
LCBDaGVja0RyCiAgICAgICAgIC8vIE9uIE9TIFggdGhpcyBjYXVzZXMgcHJvYmxlbXMgd2l0aCB0
aGUgb3duZXJzaGlwIG9mIHRoZSBwYXN0ZWJvYXJkIGFuZCB0aGUgcHJvbWlzZWQgdHlwZXMuCiAg
ICAgICAgIGlmIChtX2RpZFN0YXJ0RHJhZykgewogICAgICAgICAgICAgbV9tb3VzZURvd25NYXlT
dGFydERyYWcgPSBmYWxzZTsKKworI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorICAgICAg
ICAgICAgY2FuY2VsTG9uZ01vdXNlUHJlc3MoKTsKKyNlbmRpZgogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGRyYWdTdGF0ZSgpLnNvdXJjZSAmJiBkcmFn
U3RhdGUoKS5zaG91bGREaXNwYXRjaEV2ZW50cykgewpAQCAtMzQzMyw3ICszNTIzLDIwIEBAIGNs
ZWFudXBEcmFnOgogICAgIHJldHVybiB0cnVlOwogfQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NV
UFBPUlQpCi0gIAorICAgIAorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpIHx8IEVOQUJMRShMT05H
X01PVVNFX1BSRVNTKQorYm9vbCBFdmVudEhhbmRsZXI6Om1vdXNlSHlzdGVyZXNpc0V4Y2VlZGVk
KGNvbnN0IEZsb2F0UG9pbnQmIHZpZXdwb3J0TG9jYXRpb24sIGNvbnN0IGludCB0aHJlc2hvbGQp
IGNvbnN0Cit7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS52aWV3KCk7CisgICAgaWYg
KCF2aWV3KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgSW50UG9pbnQgbG9jYXRpb24gPSB2
aWV3LT53aW5kb3dUb0NvbnRlbnRzKGZsb29yZWRJbnRQb2ludCh2aWV3cG9ydExvY2F0aW9uKSk7
CisgICAgSW50U2l6ZSBkZWx0YSA9IGxvY2F0aW9uIC0gbV9tb3VzZURvd25Qb3M7CisgICAgCisg
ICAgcmV0dXJuIGFicyhkZWx0YS53aWR0aCgpKSA+PSB0aHJlc2hvbGQgfHwgYWJzKGRlbHRhLmhl
aWdodCgpKSA+PSB0aHJlc2hvbGQ7Cit9CisjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkg
fHwgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisKIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVU
ZXh0SW5wdXRFdmVudChjb25zdCBTdHJpbmcmIHRleHQsIEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQs
IFRleHRFdmVudElucHV0VHlwZSBpbnB1dFR5cGUpCiB7CiAgICAgLy8gUGxhdGZvcm1zIHNob3Vs
ZCBkaWZmZXJlbnRpYXRlIHJlYWwgY29tbWFuZHMgbGlrZSBzZWxlY3RBbGwgZnJvbSB0ZXh0IGlu
cHV0IGluIGRpc2d1aXNlIChsaWtlIGluc2VydE5ld2xpbmUpLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmgKaW5kZXggZjY0MGE0NDZjMjZiZmVmZDFlZTNkNTljNGQ2MTBkYjU5ZDVjMmQyOS4u
OGNhYmQyODVjN2RiNWYwOTkxNTZjYmU5MjhiZjA2YmRhMmVlOTEwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oCkBAIC0zNzksNiArMzc5LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBk
cmFnSHlzdGVyZXNpc0V4Y2VlZGVkKGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKICAgICBib29s
IGRyYWdIeXN0ZXJlc2lzRXhjZWVkZWQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKICNlbmRpZiAv
LyBFTkFCTEUoRFJBR19TVVBQT1JUKQorICAgIAorI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpIHx8
IEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorICAgIGJvb2wgbW91c2VIeXN0ZXJlc2lzRXhjZWVk
ZWQoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IGludCkgY29uc3Q7CisjZW5kaWYKIAogICAgIGJv
b2wgcGFzc01vdXNlUHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVz
dWx0cyYsIEZyYW1lKiBzdWJmcmFtZSk7CiAgICAgYm9vbCBwYXNzTW91c2VNb3ZlRXZlbnRUb1N1
YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmLCBGcmFtZSogc3ViZnJhbWUsIEhp
dFRlc3RSZXN1bHQqIGhvdmVyZWROb2RlID0gMCk7CkBAIC00MzgsNiArNDQyLDE1IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBhdXRvSGlkZUN1cnNvclRpbWVyRmlyZWQoVGltZXI8RXZlbnRIYW5kbGVy
PiYpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyAgICB2b2lkIGJl
Z2luTG9uZ01vdXNlUHJlc3MoKTsKKyAgICB2b2lkIHJlY29nbml6ZUxvbmdNb3VzZVByZXNzKFRp
bWVyPEV2ZW50SGFuZGxlcj4mKTsKKyAgICB2b2lkIGNhbmNlbExvbmdNb3VzZVByZXNzKCk7Cisg
ICAgYm9vbCBsb25nTW91c2VQcmVzc0h5c3RlcmVzaXNFeGNlZWRlZCgpOworICAgIHZvaWQgY2xl
YXJMb25nTW91c2VQcmVzc1N0YXRlKCk7CisgICAgYm9vbCBoYW5kbGVMb25nTW91c2VQcmVzc01v
dXNlTW92ZWRFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKKyNlbmRpZgorICAgIAog
ICAgIHZvaWQgY2xlYXJMYXRjaGVkU3RhdGUoKTsKIAogICAgIEZyYW1lJiBtX2ZyYW1lOwpAQCAt
NDY1LDYgKzQ3OCwxMCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShDVVJTT1JfU1VQUE9SVCkKICAg
ICBUaW1lcjxFdmVudEhhbmRsZXI+IG1fY3Vyc29yVXBkYXRlVGltZXI7CiAjZW5kaWYKKyNpZiBF
TkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyAgICBUaW1lcjxFdmVudEhhbmRsZXI+IG1fbG9uZ01v
dXNlUHJlc3NUaW1lcjsKKyAgICBib29sIG1fZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3M7Cisj
ZW5kaWYKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdXRvc2Nyb2xsQ29udHJvbGxlcj4gbV9hdXRv
c2Nyb2xsQ29udHJvbGxlcjsKICAgICBib29sIG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xs
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235914</attachid>
            <date>2014-08-01 15:48:38 -0700</date>
            <delta_ts>2014-08-05 11:41:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135515-20140801154825.patch</filename>
            <type>text/plain</type>
            <size>33002</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmExZWVjOWU0ZmRiZTg2
ODc3YWNjMDdlYjE2NWZjZGIyY2EwMjMyNi4uMDBjODZhODI3MDhkNGJlMTc2NjU4MDVmNjk2OWU0
NDliYjA2ZmYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTA4LTAxICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCisgICAgICAgIFRlbGwgdGhlIENo
cm9tZSBjbGllbnQgYWJvdXQgbG9uZyBtb3VzZSBwcmVzcyBldmVudHMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU1MTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAg
ICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIE92ZXJyaWRlIGxvbmcgbW91c2Ug
cHJlc3MgbWV0aG9kcyBpbiBFbXB0eUNocm9tZUNsaWVudC4KKyAgICAgICAgKiBwYWdlL0Nocm9t
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmRpZEJlZ2luTG9uZ01vdXNlUHJlc3Mp
OiBBZGRlZC4gU2VuZCBsb25nIG1vdXNlIHByZXNzIGV2ZW50IHRvIHRoZSBDaHJvbWUgY2xpZW50
LgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpkaWRDYW5jZWxMb25nTW91c2VQcmVz
cyk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6IEFkZCBsb25nIG1vdXNlIHByZXNz
IGxpZmVjeWNsZSBtZXRob2RzLgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6IERpdHRv
LgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyk6IFRlbGwgQ2hyb21lIGFib3V0IHRo
ZSBsb25nIG1vdXNlIHByZXNzIGV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERpdHRvLgorCiAyMDE0LTA3
LTMxICBQZXl0b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgogCiAgICAgICAgIElt
cGxlbWVudCBsb25nIG1vdXNlIHByZXNzIG92ZXIgbGlua3MuIFBhcnQgb2YgMTM1MjU3IC0gQWRk
IGxvbmctcHJlc3MgZ2VzdHVyZSB0byBNYWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZDU5NDU4MTRh
MzZkMjFhZTcwYzMwOTQ1YmIwNTgzMzVlNjIxMWRjNy4uNzk2MGI4MGUzNWM3MjlmNzY4ZDZjZjQ5
ZjA3ZThiMzMxYjIzNWVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE0
LTA4LTAxICBQZXl0b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCisgICAgICAg
IFBhc3MgbG9uZyBtb3VzZSBwcmVzcyBldmVudCB1cCB0byB0aGUgd2ViIHBhZ2UuIAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1NTE1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgT3ZlcnJpZGUgbG9uZyBtb3VzZSBwcmVzcyBs
aWZlY3ljbGUgbWV0aG9kcy4KKwogMjAxNC0wNy0zMCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBs
ZS5jb20+CiAKICAgICAgICAgVVNFKENPTlRFTlRfRklMVEVSSU5HKSBzaG91bGQgYmUgRU5BQkxF
KENPTlRFTlRfRklMVEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI5MTA2ZjUzYTIxMjk5NWIzZTBmOWFm
ZmU5OTU3MjBlMmVkNGRjYTAuLmFiMzI3ZDRkOGZhMjAwNTg4ZWJkZjI3YTg0YmI1ZDNiOTVjOTZh
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxNC0wOC0wMSAgUGV5dG9uIFJhbmRv
bHBoICA8cHJhbmRvbHBoQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgc3R1YiBsb25nIG1v
dXNlIHByZXNzIGNvbnRyb2xsZXIuIFBhcnQgb2YgMTM1MjU3IC0gQWRkIGxvbmcgbW91c2UgcHJl
c3MgZ2VzdHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM1NTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHR3byBuZXcgY2xhc3NlcywgTG9uZ01vdXNlUHJlc3ND
b250cm9sbGVyIGFuZCBMb25nTW91c2VQcmVzc0RhdGEuIEl0IGFsc28KKyAgICAgICAgcHJvdmlk
ZXMgdGhlIG5lY2Vzc2FyeSBjYWxsaW5nIGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5OgorICAgICAgICAoc3RydWN0X29yX2NsYXNzKTogTWFy
ayBMb25nTW91c2VQcmVzc0RhdGEgYXMgYSBzdHJ1Y3Qgc28gaXQgcGxheXMgbmljZWx5IHdpdGgg
b3VyIElQQy4KKyAgICAgICAgKiBTaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OkxvbmdNb3VzZVByZXNzRGF0YTo6ZW5jb2RlKToKKyAgICAgICAg
KFdlYktpdDo6TG9uZ01vdXNlUHJlc3NEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9M
b25nTW91c2VQcmVzc0RhdGEuaDogQWRkZWQuIEVuY2Fwc3VsYXRlIGluZm9ybWF0aW9uIG5lZWRl
ZCBieSB0aGUgVUkgcHJvY2VzcyBmb3IgdGhlIGxvbmcKKyAgICAgICAgcHJlc3MsIGxpa2UgYSBz
bmFwc2hvdCBvZiB0aGUgbG9uZy1wcmVzc2VkIGl0ZW0sIGFuIGFzc29jaWF0ZWQgVVJMLCBhbmQg
ZXZlbnR1YWxseSBhc3NvY2lhdGVkIHRleHQsCisgICAgICAgIGV0Yy4KKyAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIExvbmdNb3VzZVByZXNzQ29udHJv
bGxlciBhbmQgTG9uZ01vdXNlUHJlc3NEYXRhLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpkaWRCZWdpbkxvbmdNb3VzZVByZXNzKTogQWRkZWQuIFRlbGwgdGhlIGxvbmcgbW91
c2UgcHJlc3MgY29udHJvbGxlci4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpk
aWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6OmRpZENhbmNlbExvbmdNb3VzZVByZXNzKTogRGl0dG8uCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OkxvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6TG9uZ01vdXNlUHJlc3ND
b250cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6TG9uZ01vdXNlUHJlc3NDb250cm9sbGVyOjpk
aWRCZWdpbkxvbmdNb3VzZVByZXNzKTogQWRkZWQgc3R1Yi4gSW4gYSBmdXR1cmUgcGF0Y2gsIHRo
aXMgbWV0aG9kIAorICAgICAgICB3aWxsIGdlbmVyYXRlIGEgTG9uZ01vdXNlUHJlc3NEYXRhIGZv
ciB0aGUgbG9uZy1wcmVzc2VkIHBvaW50IGFuZCB3aWxsIHNlbmQgdGhhdCBpbmZvcm1hdGlvbiB0
byB0aGUgVUkKKyAgICAgICAgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6TG9uZ01vdXNlUHJl
c3NDb250cm9sbGVyOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IEFkZGVkIHN0dWIuIElu
IGEgZnV0dXJlIHBhdGNoLCB0aGlzIG1ldGhvZAorICAgICAgICB3aWxsIHNlbmQgdGhlIExvbmdN
b3VzZVByZXNzRGF0YSB0byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6TG9uZ01v
dXNlUHJlc3NDb250cm9sbGVyOjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOiBBZGRlZCBsb25n
IG1vdXNlIHByZXNzIGNvbnRyb2xsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBh
Z2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6IAorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpsb25nTW91c2VQcmVzc0NvbnRyb2xsZXIpOiBBZGRlZCBnZXR0ZXIu
CisKIDIwMTQtMDctMzEgIFByemVteXNsYXcgS3Vjenluc2tpICA8cC5rdWN6eW5za2lAc2Ftc3Vu
Zy5jb20+CiAKICAgICAgICAgRml4IHVuaW5pdGlhbGl6ZWQgc2NhbGFyIHZhcmlhYmxlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggNjg2NzBjNzhjMzUxZmEyN2UyYTIwMjdj
YWNkNGQxMDVkNjQzODM2Ni4uYmM5NDM4NmZlMGEyNWM4M2ZjYmExMjUxYmY1ZjA5ZjM2NmFlMWJm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTQ5LDYgKzE0OSwxMiBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29u
c3Qgb3ZlcnJpZGUgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50
KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCkgb3ZlcnJpZGUgeyB9CiAKKyNpZiBFTkFC
TEUoTE9OR19NT1VTRV9QUkVTUykKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5Mb25nTW91c2VQ
cmVzcyhjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlIHsgfTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKSBjb25zdCBvdmVycmlkZSB7IH07CisgICAg
dmlydHVhbCB2b2lkIGRpZENhbmNlbExvbmdNb3VzZVByZXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyB9
OworI2VuZGlmCisgICAgCiAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5n
JiwgVGV4dERpcmVjdGlvbikgb3ZlcnJpZGUgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQo
RnJhbWUqKSBvdmVycmlkZSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCAwYjUyYzI5NTg4
YWExYTkzZWExMTdlZDNhYzg2YmQ2MGI2YjlhYTVlLi5iOWJjOTJlMTg0MDI3MmUxZTczYTlmNDI5
ZTEzNjIwMzBlMzQ5Y2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC0zOTcsNiArMzk3LDIz
IEBAIHZvaWQgQ2hyb21lOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVz
dWx0JiByZXN1bHQsIHVuc2lnbmVkIG1vZGlmCiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KCZtX3BhZ2UsIHJlc3VsdCwgbW9kaWZpZXJGbGFn
cyk7CiB9CisgICAgCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCit2b2lkIENocm9tZTo6
ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhjb25zdCBJbnRQb2ludCYgbW91c2VMb2NhdGlvbikKK3sK
KyAgICBtX2NsaWVudC5kaWRCZWdpbkxvbmdNb3VzZVByZXNzKG1vdXNlTG9jYXRpb24pOworfQor
Cit2b2lkIENocm9tZTo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKQoreworICAgIG1fY2xp
ZW50LmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7Cit9CisKK3ZvaWQgQ2hyb21lOjpkaWRD
YW5jZWxMb25nTW91c2VQcmVzcygpCit7CisgICAgbV9jbGllbnQuZGlkQ2FuY2VsTG9uZ01vdXNl
UHJlc3MoKTsKK30KKyNlbmRpZgogCiB2b2lkIENocm9tZTo6c2V0VG9vbFRpcChjb25zdCBIaXRU
ZXN0UmVzdWx0JiByZXN1bHQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCBjMjQ1ODNiNDllMGI1
NmRjNTkzNzYxZDZmY2I0MmQ3ZDMwZDMyZmQ4Li43NTJjOTAzNWRkZDY2MWIxMDM4ODE0NTVhOTY4
NzM5ZWJmODg2Yzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTE1MSw2ICsxNTEsMTIgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVz
dWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9Q
UkVTUykKKyAgICB2b2lkIGRpZEJlZ2luTG9uZ01vdXNlUHJlc3MoY29uc3QgSW50UG9pbnQmKTsK
KyAgICB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7CisgICAgdm9pZCBkaWRDYW5j
ZWxMb25nTW91c2VQcmVzcygpOworI2VuZGlmCisgICAgCiAgICAgdm9pZCBzZXRUb29sVGlwKGNv
bnN0IEhpdFRlc3RSZXN1bHQmKTsKIAogICAgIHZvaWQgcHJpbnQoRnJhbWUqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDVmYmEzODMxOWVjZmNhODNlMzI2ZDM4ODYyZGE1ZmIz
Yjg5OWZjZTAuLmZhODRlN2M3ZTkzNTc1MTUxYmE5MTdjZjExMjJiOTNlNGYxMjkwNWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTk0LDYgKzE5NCwxMiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50Kiwg
UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVz
dFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpID0gMDsKIAorI2lmIEVOQUJMRShMT05H
X01PVVNFX1BSRVNTKQorICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkxvbmdNb3VzZVByZXNzKGNv
bnN0IEludFBvaW50JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNvZ25pemVM
b25nTW91c2VQcmVzcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsTG9u
Z01vdXNlUHJlc3MoKSBjb25zdCA9IDA7CisjZW5kaWYKKyAgICAKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSA9IDA7CiAKICAgICB2aXJ0
dWFsIHZvaWQgcHJpbnQoRnJhbWUqKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKaW5kZXggOTgwM2I1NmFmMjg5NDVlZjM0Y2UzYmFmZTNkYzk4M2NjMWNhYTYwMy4uYjEzM2Y5
YjYxMzMwZDc1NGYzNGEzMDY5YjVhM2E2ZGM2MzI5MmUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcApAQCAtMTU3MiwxNyArMTU3MiwyMiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
YXV0b0hpZGVDdXJzb3JUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4mIHRpbWVyKQogICAg
ICAgICB2aWV3LT5zZXRDdXJzb3IobV9jdXJyZW50TW91c2VDdXJzb3IpOwogfQogI2VuZGlmCi0g
ICAgCisKICNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKIHZvaWQgRXZlbnRIYW5kbGVyOjpz
dGFydExvbmdNb3VzZVByZXNzKCkKIHsKICAgICBjbGVhckxvbmdNb3VzZVByZXNzU3RhdGUoKTsK
LSAgICAKKwogICAgIG1fbG9uZ01vdXNlUHJlc3NUaW1lci5zdGFydE9uZVNob3QobG9uZ01vdXNl
UHJlc3NEZWxheSk7Ci0gICAgCi0gICAgLy8gRklYTUU6IGJ1YmJsZSBsb25nIG1vdXNlIHByZXNz
IHVwIHRvIFVJIHByb2Nlc3MuCisKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7Cisg
ICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2xvbmdNb3VzZVByZXNzVGlt
ZXIuc3RhcnRPbmVTaG90KGxvbmdNb3VzZVByZXNzRGVsYXkpOworICAgIHBhZ2UtPmNocm9tZSgp
LmRpZEJlZ2luTG9uZ01vdXNlUHJlc3MobV9tb3VzZURvd25Qb3MpOwogfQotICAgIAorCiB2b2lk
IEV2ZW50SGFuZGxlcjo6cmVjb2duaXplTG9uZ01vdXNlUHJlc3MoVGltZXI8RXZlbnRIYW5kbGVy
PiYgdGltZXIpCiB7CiAgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgJnRpbWVyID09ICZtX2xvbmdN
b3VzZVByZXNzVGltZXIpOwpAQCAtMTU5MywxNyArMTU5OCwyNSBAQCB2b2lkIEV2ZW50SGFuZGxl
cjo6cmVjb2duaXplTG9uZ01vdXNlUHJlc3MoVGltZXI8RXZlbnRIYW5kbGVyPiYgdGltZXIpCiAg
ICAgbV9tb3VzZVByZXNzZWQgPSBmYWxzZTsKICAgICBpbnZhbGlkYXRlQ2xpY2soKTsKIAotICAg
IC8vIEZJWE1FOiBidWJibGUgbG9uZyBtb3VzZSBwcmVzcyB1cCB0byBVSSBwcm9jZXNzLgorICAg
IFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJl
dHVybjsKKworICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7
CiB9Ci0gICAgCisKIHZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxMb25nTW91c2VQcmVzcygpCiB7
CiAgICAgaWYgKCFtX2xvbmdNb3VzZVByZXNzVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgY2xlYXJMb25nTW91c2VQcmVzc1N0YXRlKCk7Ci0gICAgCi0gICAgLy8gRklY
TUU6IGJ1YmJsZSBsb25nIG1vdXNlIHByZXNzIHVwIHRvIFVJIHByb2Nlc3MuCisKKyAgICBQYWdl
KiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47
CisKKyAgICBwYWdlLT5jaHJvbWUoKS5kaWRDYW5jZWxMb25nTW91c2VQcmVzcygpOwogfQogCiB2
b2lkIEV2ZW50SGFuZGxlcjo6Y2xlYXJMb25nTW91c2VQcmVzc1N0YXRlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggY2E4
NWFmMWQ0ZTJlY2Q2YTU2YWVmY2EyOWQ5MTUzNmI3OGJjNTUyZS4uYmFhZTE0MjBjZTg2ZjQ2NzA2
YzkxNGQzNzJkYTc5YmY0ODY5NTRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTExNiw2ICsxMTYsMTIgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29y
ZTo6RWxlbWVudCosIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWls
YWJpbGl0eVJlYXNvbikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBt
b2RpZmllckZsYWdzKSBvdmVycmlkZTsKIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQor
ICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkxvbmdNb3VzZVByZXNzKGNvbnN0IEludFBvaW50Jikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVBy
ZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbExvbmdNb3Vz
ZVByZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CisjZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBzZXRU
b29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgb3ZlcnJp
ZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weSBi
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQppbmRleCBiYzA1MmI4
Yzg1OTYxZjE2MTczYWI4OWNhZTdlYjViN2FmOGY1YzZkLi4xMDRlYmRkOTNlZTJkYzE0MDliYjc2
MDVkMzJjYTdhOWNmMGFlMzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dl
YmtpdDIvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21l
c3NhZ2VzLnB5CkBAIC0yMDIsNiArMjAyLDcgQEAgZGVmIHN0cnVjdF9vcl9jbGFzcyhuYW1lc3Bh
Y2UsIHR5cGUpOgogICAgICAgICAnV2ViS2l0OjpFZGl0aW5nUmFuZ2UnLAogICAgICAgICAnV2Vi
S2l0OjpFZGl0b3JTdGF0ZScsCiAgICAgICAgICdXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uJywKKyAgICAgICAgJ1dlYktpdDo6TG9uZ01vdXNlUHJlc3NEYXRhJywKICAg
ICAgICAgJ1dlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEnLAogICAgICAgICAnV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycycsCiAgICAgICAgICdXZWJLaXQ6OlBhZ2VT
dGF0ZScsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NE
YXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGEuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE3Mjc1YmIxOTE2YzAwZGYyYWY3YmQ1MjI2MjI5Mjg4NmRmZTVlNWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhLmNw
cApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShMT05HX01PVVNFX1BS
RVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9uZ01vdXNlUHJlc3NEYXRh
LmgiCisKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3ZvaWQgTG9uZ01vdXNlUHJlc3NEYXRhOjplbmNvZGUoSVBDOjpBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCB1cmxTdHJpbmc7CisgICAg
ZW5jb2RlciA8PCBvcmlnaW47CisKKyAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBzbmFwc2hv
dEhhbmRsZTsKKyAgICBpZiAoc25hcHNob3QpCisgICAgICAgIHNuYXBzaG90LT5jcmVhdGVIYW5k
bGUoc25hcHNob3RIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVhZE9ubHkpOworICAgIGVuY29kZXIg
PDwgc25hcHNob3RIYW5kbGU7Cit9CisKK2Jvb2wgTG9uZ01vdXNlUHJlc3NEYXRhOjpkZWNvZGUo
SVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIExvbmdNb3VzZVByZXNzRGF0YSYgcmVzdWx0
KQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVybFN0cmluZykpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm9yaWdpbikp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIHNu
YXBzaG90SGFuZGxlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc25hcHNob3RIYW5kbGUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIXNuYXBzaG90SGFuZGxlLmlzTnVsbCgp
KQorICAgICAgICByZXN1bHQuc25hcHNob3QgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShzbmFw
c2hvdEhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTE9OR19NT1VT
RV9QUkVTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Mb25nTW91c2VQcmVz
c0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGEuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YjY0MjlkNGJmMWYyMDJkNjgyMTUxNGY2ZDA1ZGNiMjBlYmVkZTBhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0YS5oCkBA
IC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1Mp
CisKKyNpZm5kZWYgTG9uZ01vdXNlUHJlc3NEYXRhX2gKKyNkZWZpbmUgTG9uZ01vdXNlUHJlc3NE
YXRhX2gKKworI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgIlN0cmluZy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorCituYW1lc3BhY2UgSVBDIHsKK2Ns
YXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK30KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3N0cnVjdCBMb25nTW91c2VQcmVzc0RhdGEgeworICAgIHZvaWQgZW5j
b2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KElQQzo6QXJndW1lbnREZWNvZGVyJiwgTG9uZ01vdXNlUHJlc3NEYXRhJik7CisKKyAgICBTdHJp
bmcgdXJsU3RyaW5nOworICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgb3JpZ2luOworICAgIFJlZlB0
cjxTaGFyZWFibGVCaXRtYXA+IHNuYXBzaG90OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBMb25nTW91c2VQcmVzc0luZm9faAorCisjZW5kaWYgLy8gRU5BQkxFKExP
TkdfTU9VU0VfUFJFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNTE5Y2Y4ZWI4YTI1YjhjZTFhYTI3NDYxMDdjMGFhYmE2NTUw
NGVkZi4uNmZiNDc5Mzc5ZGYyMzRmZGUwNzkyYzdlNjExOWI2YjQzY2U3ODk1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA5
NSw2ICsxMDk1LDEwIEBACiAJCTkzOTFGMkNCMTIxQjY3QUQwMEVCRjdFOCAvKiBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oICovOyB9OwogCQk5MzlBRTc2NjEzMTZFOTlDMDBBRTA2QTYgLyogV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOUFFNzY1MTMxNkU5OUMwMEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
ICovOyB9OwogCQk5M0JERUIwMTE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5cGVzUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNC
REVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5QzRFNkI3MTE5OEMw
MDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlDNEU2QjZGMTk4QzAwNTEwMDg3NjU1
QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwICovOyB9OworCQk5QzRFNkI3MjE5OEMw
MDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QzRFNkI3MDE5OEMwMDUxMDA4NzY1NUEg
LyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmggKi87IH07CisJCTlDNEU2Qjc1MTk4QzAyOTgw
MDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUM0RTZCNzMxOThDMDI5ODAwODc2NTVBIC8qIExvbmdN
b3VzZVByZXNzRGF0YS5jcHAgKi87IH07CisJCTlDNEU2Qjc2MTk4QzAyOTgwMDg3NjU1QSAvKiBM
b25nTW91c2VQcmVzc0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlDNEU2Qjc0MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGEu
aCAqLzsgfTsKIAkJOUY1NEY4OEYxNjQ4OEU4NzAwN0RGODFBIC8qIENoaWxkUHJvY2Vzc01hYy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGNTRGODhF
MTY0ODhFODcwMDdERjgxQSAvKiBDaGlsZFByb2Nlc3NNYWMubW0gKi87IH07CiAJCTlGNTRGODk1
MTY0OEFFMEYwMDdERjgxQSAvKiBQbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGNTRGODk0MTY0OEFFMEUwMDdE
RjgxQSAvKiBQbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5tbSAqLzsgfTsKIAkJOUZCNUYzOTQxNjlF
NkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4dFByaXZhdGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkI1RjM5MjE2OUU2QTgwMDAyQzI1QkYgLyog
V0tDb250ZXh0UHJpdmF0ZU1hYy5tbSAqLzsgfTsKQEAgLTMxNDksNiArMzE1MywxMCBAQAogCQk5
MzkxRjI4NDEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUFFNzY1MTMxNkU5
OUMwMEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCREVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxv
YWRUeXBlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdl
TG9hZFR5cGVzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QzRFNkI2
RjE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvbmdNb3VzZVByZXNzQ29udHJvbGxlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlDNEU2QjcwMTk4QzAwNTEwMDg3NjU1
QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTlDNEU2QjczMTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGEu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTG9uZ01vdXNlUHJlc3NE
YXRhLmNwcDsgcGF0aCA9IFNoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGEuY3BwOyBzb3VyY2VUcmVl
ID0gU09VUkNFX1JPT1Q7IH07CisJCTlDNEU2Qjc0MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91
c2VQcmVzc0RhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTG9uZ01vdXNl
UHJlc3NEYXRhLmg7IHBhdGggPSBTaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhLmg7IHNvdXJjZVRy
ZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJOUY1NEY4OEUxNjQ4OEU4NzAwN0RGODFBIC8qIENoaWxk
UHJvY2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENo
aWxkUHJvY2Vzc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUY1NEY4OTQx
NjQ4QUUwRTAwN0RGODFBIC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyTWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGx1Z2luUHJvY2Vzc01hbmFnZXJNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGQjVGMzkyMTY5RTZBODAwMDJDMjVCRiAv
KiBXS0NvbnRleHRQcml2YXRlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gV0tDb250ZXh0UHJpdmF0ZU1hYy5tbTsgcGF0aCA9IG1hYy9XS0NvbnRleHRQcml2
YXRlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDQyMyw2ICs0NDMxLDgg
QEAKIAkJCQlDNThDREYyQzE4ODc2MDlGMDA4NzE1MzYgLyogSW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24uaCAqLywKIAkJCQkxQTkyREMxMjEyRjhCQUI5MDAxN0FGNjUgLyogTGF5ZXJU
cmVlQ29udGV4dC5jcHAgKi8sCiAJCQkJMUE5MkRDMTAxMkY4QkE0NjAwMTdBRjY1IC8qIExheWVy
VHJlZUNvbnRleHQuaCAqLywKKwkJCQk5QzRFNkI3MzE5OEMwMjk4MDA4NzY1NUEgLyogTG9uZ01v
dXNlUHJlc3NEYXRhLmNwcCAqLywKKwkJCQk5QzRFNkI3NDE5OEMwMjk4MDA4NzY1NUEgLyogTG9u
Z01vdXNlUHJlc3NEYXRhLmggKi8sCiAJCQkJQkNCMEFFRTgxMjJGNTNFMzAwQjEzNDFFIC8qIE11
dGFibGVEaWN0aW9uYXJ5LmNwcCAqLywKIAkJCQlCQ0IwQUVFNzEyMkY1M0UzMDBCMTM0MUUgLyog
TXV0YWJsZURpY3Rpb25hcnkuaCAqLywKIAkJCQkxQURDQjg2ODE4OTgzMUIzMDAyMkVFNUEgLyog
TmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwICovLApAQCAtNTcwMyw2ICs1NzEzLDggQEAKIAkJQkMw
MzJENUUxMEY0MzcyQjAwNThDMTVBIC8qIFdlYlBhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTlDNEU2QjZGMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25n
TW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwICovLAorCQkJCTlDNEU2QjcwMTk4QzAwNTEwMDg3NjU1
QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCAqLywKIAkJCQkyRDI5RUNDRDE5MkYyQzJF
MDA5ODRCNzggLyogQ29jb2EgKi8sCiAJCQkJMkRBOTQ0QjQxODg0RUEyQTAwRUQ4NkRCIC8qIGlv
cyAqLywKIAkJCQlCQzk2M0Q2QzExM0REMTk1MDA1NzRCRTIgLyogbWFjICovLApAQCAtNzE2Miw2
ICs3MTc0LDcgQEAKIAkJCQkxQUJDM0RGQzE4OTlGNTFDMDA0RjA2MjYgLyogV0tOYXZpZ2F0aW9u
RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTUyRjkyMTkyMDFEQTcwMEExRkEzNyAv
KiBBUElDb250ZXh0Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzNjFENzMx
OTI3RkEzNjAwMzZBNTlEIC8qIFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5QzRFNkI3MjE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRp
dGluZ1JhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDE0MEVCMDE4RjM3QkUwMDA1RTc1QTAg
LyogUGFnZU92ZXJsYXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE3NzUzRjEx
OEJBQkYwMDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKQEAgLTc0
ODQsNiArNzQ5Nyw3IEBACiAJCQkJMkQ4NzEwMTcxODI4NDE1RDAwMThGQTAxIC8qIFBsYXRmb3Jt
Q0FMYXllclJlbW90ZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEzREQyMDIxMjVFNUEx
RjAwNDUxNUU2IC8qIFdlYkZpbmRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOTBDMUVF
MTI2NEZENTAwMDNFNDRENCAvKiBXZWJGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OUM0RTZCNzYxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNFNDY5NTQxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1DbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTU2MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtU3Vi
bWlzc2lvbkxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1QThEMkQ3MTg3RDMw
M0EwMEMzOUM5RSAvKiBXS1Nlc3Npb25SZWYuaCBpbiBIZWFkZXJzICovLApAQCAtODc0Niw2ICs4
NzYwLDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgK
IAkJCQk1MUUzNTIwMDE4MEY1RDBGMDBFNTNCRTkgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTlDNEU2Qjc1MTk4QzAyOTgwMDg3NjU1QSAv
KiBMb25nTW91c2VQcmVzc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzVBOEQyRTIxODdE
RUMxRTAwQzM5QzlFIC8qIEFQSVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdENzky
RDYxNzY3Q0I2RTAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUI2MzQwM0Y5MTQ5MTBENTcwMDEwNzBCNSAvKiBBUElPYmplY3QuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC05MzE2LDYgKzkzMzEsNyBAQAogCQkJCTFBQzc1MzdGMTgzQkU1MEYwMDcyQ0Ix
NSAvKiBEYXRhUmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0I0RTQ3MThCQkUw
NDQwMDBGQ0ZDOSAvKiBQYWdlQ2xpZW50SW1wbElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUx
MkUzNEU0MTMwQjREMDUwMEFCRDE5QSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTlDNEU2QjcxMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91c2VQ
cmVzc0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFDOTYxMTgxODNEMjk0NzAw
RDIwMDJFIC8qIFdlYklEQlNlcnZlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM0MDc1RjMxMjRGRjAyNzAwNjhGMjBBIC8qIFdLQXJyYXkuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTExOEE5RjIxOTA4QjhFQTAwRjdDOTJCIC8qIF9XS05TRmlsZU1h
bmFnZXJFeHRyYXMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCAxMzI2NGRiNWZiZTNhNDUyMWY1ZjNlNjliYTdkNjQ4YzE4MWE3OWY0Li5kNTk1ZDk0NDRjZTU0
ZGM0ZmE0OWUzMjIxMzYwYTQ4MzVlYjhjNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC04Myw2ICs4Myw4IEBACiAjaW5jbHVkZSAiUHJpbnRlckxpc3RHdGsuaCIKICNlbmRpZgogCisj
aW1wb3J0IDxXZWJDb3JlL0VsZW1lbnQuaD4KKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCkBAIC02MDMsNiArNjA1LDI0IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0
JiBoaXRUZXN0UmVzdWx0CiAgICAgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSB3ZWJIaXRUZXN0UmVz
dWx0RGF0YShoaXRUZXN0UmVzdWx0KTsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6TW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQod2ViSGl0VGVzdFJlc3VsdERhdGEsIG1v
ZGlmaWVyRmxhZ3MsIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdl
dCgpKSkpOwogfQorICAgIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmRpZEJlZ2luTG9uZ01vdXNlUHJlc3MoY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIG1vdXNlTG9jYXRpb24pIGNvbnN0Cit7CisgICAgbV9wYWdlLT5sb25nTW91c2VQcmVzc0Nv
bnRyb2xsZXIoKS5kaWRCZWdpbkxvbmdNb3VzZVByZXNzKG1vdXNlTG9jYXRpb24pOworfQorCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKSBjb25zdAor
eworICAgIG1fcGFnZS0+bG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKCkuZGlkUmVjb2duaXplTG9u
Z01vdXNlUHJlc3MoKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZENhbmNlbExvbmdN
b3VzZVByZXNzKCkgY29uc3QKK3sKKyAgICBtX3BhZ2UtPmxvbmdNb3VzZVByZXNzQ29udHJvbGxl
cigpLmRpZENhbmNlbExvbmdNb3VzZVByZXNzKCk7Cit9CisjZW5kaWYKKwogCiB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmIHRvb2xUaXAsIFRleHREaXJlY3Rp
b24pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBkZDE2MmZjYWRjN2FmNDk1NmY3N2MxOTRi
OTRiMzhhMjI2Zjc5YWMyLi4yZTNiOTY0MzkyNDI0OTM1MmMwMGJhZDIwZjJmMzgzMDEyYmEyZWVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEzMSw2ICsxMzEsMTIgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6
SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIG92ZXJyaWRlOwogICAgIAor
I2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkxv
bmdNb3VzZVByZXNzKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbExvbmdNb3VzZVByZXNzKCkgY29uc3Qgb3Zl
cnJpZGU7CisjZW5kaWYKKyAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBT
dHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKSBvdmVycmlkZTsKICAgICAKICAgICB2aXJ0
dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29u
dHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE1MGYwODEyNGNmMDZkNzlhZTE0OTRkNzVlYzhhZTE0
N2IyYzhjNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIkxv
bmdNb3VzZVByZXNzRGF0YS5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitMb25nTW91c2VQcmVzc0NvbnRy
b2xsZXI6OkxvbmdNb3VzZVByZXNzQ29udHJvbGxlcihXZWJQYWdlKiB3ZWJQYWdlKQoreworfQor
Cit2b2lkIExvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudC4KK30K
Kwordm9pZCBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI6OmRpZFJlY29nbml6ZUxvbmdNb3VzZVBy
ZXNzKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50LgorfQorCit2b2lkIExvbmdNb3VzZVBy
ZXNzQ29udHJvbGxlcjo6ZGlkQ2FuY2VsTG9uZ01vdXNlUHJlc3MoKQoreworICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQuCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5B
QkxFKExPTkdfTU9VU0VfUFJFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjEyODg3OTYwOTRkZjIzYjQxMTE3OGIwYjkzY2UxYTUxOTMwNTk0NAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRy
b2xsZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShMT05HX01P
VVNFX1BSRVNTKQorCisjaWZuZGVmIExvbmdNb3VzZVByZXNzQ29udHJvbGxlcl9oCisjZGVmaW5l
IExvbmdNb3VzZVByZXNzQ29udHJvbGxlcl9oCisKKyNpbmNsdWRlICJMb25nTW91c2VQcmVzc0Rh
dGEuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIExvbmdNb3VzZVByZXNzQ29udHJvbGxlciB7Cisg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKTsKKworcHVi
bGljOgorICAgIGV4cGxpY2l0IExvbmdNb3VzZVByZXNzQ29udHJvbGxlcihXZWJQYWdlKik7CisK
KyAgICB2b2lkIGRpZEJlZ2luTG9uZ01vdXNlUHJlc3MoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
KTsKKyAgICB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7CisgICAgdm9pZCBkaWRD
YW5jZWxMb25nTW91c2VQcmVzcygpOworCitwcml2YXRlOgorICAgIExvbmdNb3VzZVByZXNzRGF0
YSBtX2xvbmdNb3VzZVByZXNzRGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyX2gKKworI2VuZGlmIC8vIEVOQUJMRShM
T05HX01PVVNFX1BSRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDA5NmY3NDE2ZjRlMzQwYzZmYWMwNDgxMWMzMjA4MmQ1NmIzMTgzNDcu
LjFkNjRjZjExMmEzMGRhZjQ1YzgzYjRmNTkwNzFjZDA2YzU2NmYzOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTIwNSw2ICsyMDUsMTAg
QEAKICNpbmNsdWRlICJDb29yZGluYXRlZExheWVyVHJlZUhvc3RNZXNzYWdlcy5oIgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyNpbmNsdWRlICJMb25nTW91c2VQcmVz
c0NvbnRyb2xsZXIuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEyODQsNiArMTI4OCwxNiBAQCB2b2lkIFdlYlBhZ2U6OnNj
cm9sbE1haW5GcmFtZUlmTm90QXRNYXhTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRTaXplJiBzY3Jv
bGxPZmZzZQogICAgIGZyYW1lVmlldy0+c2V0U2Nyb2xsUG9zaXRpb24oZnJhbWVWaWV3LT5zY3Jv
bGxQb3NpdGlvbigpICsgbmV3U2Nyb2xsT2Zmc2V0KTsKIH0KIAorI2lmIEVOQUJMRShMT05HX01P
VVNFX1BSRVNTKQorTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyJiBXZWJQYWdlOjpsb25nTW91c2VQ
cmVzc0NvbnRyb2xsZXIoKQoreworICAgIGlmICghbV9sb25nTW91c2VQcmVzc0NvbnRyb2xsZXIp
CisgICAgICAgIG1fbG9uZ01vdXNlUHJlc3NDb250cm9sbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxM
b25nTW91c2VQcmVzc0NvbnRyb2xsZXI+KHRoaXMpOworCisgICAgcmV0dXJuICptX2xvbmdNb3Vz
ZVByZXNzQ29udHJvbGxlci5nZXQoKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2U6OmRyYXdS
ZWN0KEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0
KQogewogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihncmFwaGljc0Nv
bnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggNmNkZjcwYWI5MmVhZjlkYmE1NGI3ZjcyYjU2MjkwMTA1OGUxNTkxYS4uNWY5ZDFkMTA1Mjc4
MzY2OGIxZWVkODE5MWQyYjcwODM4ZDU2MWZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDMsNiArMTAzLDEwIEBAIE9CSkNfQ0xBU1MgV0tB
Y2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdDsKICNkZWZpbmUgRU5BQkxFX1BSSU1BUllfU05BUFNI
T1RURURfUExVR0lOX0hFVVJJU1RJQyAxCiAjZW5kaWYKIAorI2lmIEVOQUJMRShMT05HX01PVVNF
X1BSRVNTKQorI2luY2x1ZGUgIkxvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXJyYXk7CiB9CkBAIC0xODMsNiArMTg3LDEwIEBAIGNs
YXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogY2xhc3MgV2ViVG91Y2hFdmVudDsKICNl
bmRpZgogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCitjbGFzcyBMb25nTW91c2VQcmVz
c0NvbnRyb2xsZXI7CisjZW5kaWYKKwogY2xhc3MgV2ViUGFnZSA6IHB1YmxpYyBBUEk6Ok9iamVj
dEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZVBhZ2U+LCBwdWJsaWMgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIgewogcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYlBhZ2U+IGNyZWF0ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKQEAgLTIzOCw2ICsyNDYsMTAgQEAgcHVibGljOgogICAg
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBmdWxsU2NyZWVuTWFuYWdlcigpOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyAgICBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIm
IGxvbmdNb3VzZVByZXNzQ29udHJvbGxlcigpOworI2VuZGlmCisKICAgICAvLyAtLSBDYWxsZWQg
YnkgdGhlIERyYXdpbmdBcmVhLgogICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBnZW5lcmljaXplIHRo
ZXNlIGludG8gYSBEcmF3aW5nQXJlYSBjbGllbnQgaW50ZXJmYWNlLiBXb3VsZCB0aGF0IGJlIGJl
bmVmaWNpYWw/CiAgICAgdm9pZCBkcmF3UmVjdChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CkBAIC0xMTY0LDYgKzExNzYsMTAgQEAgcHJpdmF0ZToK
IAogICAgIEZpbmRDb250cm9sbGVyIG1fZmluZENvbnRyb2xsZXI7CiAKKyNpZiBFTkFCTEUoTE9O
R19NT1VTRV9QUkVTUykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TG9uZ01vdXNlUHJlc3NDb250cm9s
bGVyPiBtX2xvbmdNb3VzZVByZXNzQ29udHJvbGxlcjsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKICAgICBSZWZQdHI8V2ViSW5zcGVjdG9yPiBtX2luc3BlY3RvcjsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236039</attachid>
            <date>2014-08-05 11:41:24 -0700</date>
            <delta_ts>2014-08-05 16:12:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135515-20140805114121.patch</filename>
            <type>text/plain</type>
            <size>33485</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyMDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM1MjU2OGJkOTFhYTk5
MjBkNDk4Y2Q2ZGIyZGM5YmJkZjM2NjI5OS4uZTQxMTdjZGEzZDNhYmM1YjM5N2I5ZDE4YzdkZjgx
YjZkNGY0MWIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMTEwOSw2ICsxMTA5LDI4IEBACiAgICAgICAgICog
cGFnZS9GcmFtZVZpZXcuY3BwOgogICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpwZXJmb3Jt
UG9zdExheW91dFRhc2tzKToKIAorMjAxNC0wOC0wMSAgUGV5dG9uIFJhbmRvbHBoICA8cHJhbmRv
bHBoQGFwcGxlLmNvbT4KKworICAgICAgICBUZWxsIHRoZSBDaHJvbWUgY2xpZW50IGFib3V0IGxv
bmcgbW91c2UgcHJlc3MgZXZlbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM1NTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oOgorICAgICAgICBPdmVycmlkZSBsb25nIG1vdXNlIHByZXNzIG1ldGhvZHMgaW4gRW1w
dHlDaHJvbWVDbGllbnQuCisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21lOjpkaWRCZWdpbkxvbmdNb3VzZVByZXNzKTogQWRkZWQuIFNlbmQgbG9uZyBt
b3VzZSBwcmVzcyBldmVudCB0byB0aGUgQ2hyb21lIGNsaWVudC4KKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZTo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZTo6ZGlkQ2FuY2VsTG9uZ01vdXNlUHJlc3MpOiBEaXR0by4KKyAgICAgICAg
KiBwYWdlL0Nocm9tZS5oOiBBZGQgbG9uZyBtb3VzZSBwcmVzcyBsaWZlY3ljbGUgbWV0aG9kcy4K
KyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0V2
ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpZEJlZ2lu
TG9uZ01vdXNlUHJlc3MpOiBUZWxsIENocm9tZSBhYm91dCB0aGUgbG9uZyBtb3VzZSBwcmVzcyBl
dmVudC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlkUmVjb2duaXplTG9uZ01v
dXNlUHJlc3MpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGlkQ2Fu
Y2VsTG9uZ01vdXNlUHJlc3MpOiBEaXR0by4KKwogMjAxNC0wNy0zMSAgUGV5dG9uIFJhbmRvbHBo
ICA8cHJhbmRvbHBoQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgbG9uZyBtb3VzZSBw
cmVzcyBvdmVyIGxpbmtzLiBQYXJ0IG9mIDEzNTI1NyAtIEFkZCBsb25nLXByZXNzIGdlc3R1cmUg
dG8gTWFjLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDIxMGQ1ZmMzN2VkNTZkMTI4ODlkMDVkODE4Mjgz
ZmNmNmM4YWViMzguLjA2NzY2NGEzNTliOGY0ZGMzMmZjMDk5ZDM5NDEwN2QxYzBiMDE4ZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKQEAgLTIxLDYgKzIxLDE2IEBACiAgICAgICAgICogQ29uZmlndXJhdGlv
bnMvV2ViS2l0TGVnYWN5LnhjY29uZmlnOiBSZW1vdmVkIC1mcmFtZXdvcmsgTW9iaWxlQXNzZXQg
ZnJvbQogICAgICAgICBPVEhFUl9MREZMQUdTX2lwaG9uZW9zLgogCisyMDE0LTA4LTAxICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCisgICAgICAgIFBhc3MgbG9uZyBt
b3VzZSBwcmVzcyBldmVudCB1cCB0byB0aGUgd2ViIHBhZ2UuIAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1NTE1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgT3ZlcnJpZGUgbG9uZyBtb3VzZSBwcmVzcyBsaWZlY3ljbGUgbWV0
aG9kcy4KKwogMjAxNC0wNy0zMCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgVVNFKENPTlRFTlRfRklMVEVSSU5HKSBzaG91bGQgYmUgRU5BQkxFKENPTlRFTlRfRklM
VEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IGQxMDAzZmY0ZjY5ZDY1ZjdmNTEyZWNlMzI0MDA1OWY1YWE1
OTczNWUuLmQ2NzhjYjEyYjZmMmNkYmE3MGM2YmQ4N2ZmYzBkNzJlN2I4YzI1MmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTI0NCw2ICsyNDQsNDQgQEAKIAogICAgICAgICAqIENvbmZpZ3VyYXRpb25zL05ldHdv
cmstaU9TLmVudGl0bGVtZW50czoKIAorMjAxNC0wOC0wMSAgUGV5dG9uIFJhbmRvbHBoICA8cHJh
bmRvbHBoQGFwcGxlLmNvbT4KKworICAgICAgICBDcmVhdGUgc3R1YiBsb25nIG1vdXNlIHByZXNz
IGNvbnRyb2xsZXIuIFBhcnQgb2YgMTM1MjU3IC0gQWRkIGxvbmcgbW91c2UgcHJlc3MgZ2VzdHVy
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1NTE1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBpbnRyb2R1Y2VzIHR3byBuZXcgY2xhc3NlcywgTG9uZ01vdXNlUHJlc3NDb250cm9sbGVy
IGFuZCBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS4gSXQgYWxzbworICAgICAgICBwcm92aWRlcyB0
aGUgbmVjZXNzYXJ5IGNhbGxpbmcgaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAgIChzdHJ1Y3Rfb3JfY2xhc3MpOiBNYXJrIExv
bmdNb3VzZVByZXNzRGF0YSBhcyBhIHN0cnVjdCBzbyBpdCBwbGF5cyBuaWNlbHkgd2l0aCBvdXIg
SVBDLgorICAgICAgICAqIFNoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGFTdG9yZS5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpMb25nTW91c2VQcmVzc0RhdGFTdG9yZTo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6TG9uZ01vdXNlUHJlc3NEYXRhU3RvcmU6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmg6IEFkZGVkLiBFbmNhcHN1bGF0ZSBp
bmZvcm1hdGlvbiBuZWVkZWQgYnkgdGhlIGNsaWVudCBmb3IgdGhlIGxvbmcKKyAgICAgICAgcHJl
c3MsIGxpa2UgYSBzbmFwc2hvdCBvZiB0aGUgbG9uZy1wcmVzc2VkIGl0ZW0sIGFuIGFzc29jaWF0
ZWQgVVJMLCBhbmQgZXZlbnR1YWxseSBhc3NvY2lhdGVkIHRleHQsCisgICAgICAgIGV0Yy4KKyAg
ICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIExvbmdNb3Vz
ZVByZXNzQ29udHJvbGxlciBhbmQgTG9uZ01vdXNlUHJlc3NEYXRhLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpkaWRCZWdpbkxvbmdNb3VzZVByZXNzKTogQWRkZWQuIFRlbGwg
dGhlIGxvbmcgbW91c2UgcHJlc3MgY29udHJvbGxlci4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hy
b21lQ2xpZW50OjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAgICAgICAo
V2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpZENhbmNlbExvbmdNb3VzZVByZXNzKTogRGl0dG8u
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkxvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6TG9u
Z01vdXNlUHJlc3NDb250cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6TG9uZ01vdXNlUHJlc3ND
b250cm9sbGVyOjpkaWRCZWdpbkxvbmdNb3VzZVByZXNzKTogQWRkZWQgc3R1Yi4gSW4gYSBmdXR1
cmUgcGF0Y2gsIHRoaXMgbWV0aG9kIAorICAgICAgICB3aWxsIGdlbmVyYXRlIGEgTG9uZ01vdXNl
UHJlc3NEYXRhIGZvciB0aGUgbG9uZy1wcmVzc2VkIHBvaW50IGFuZCB3aWxsIHNlbmQgdGhhdCBp
bmZvcm1hdGlvbiB0byB0aGUgCisgICAgICAgIHdlYiBwYWdlIHByb3h5LgorICAgICAgICAoV2Vi
S2l0OjpMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI6OmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNz
KTogQWRkZWQgc3R1Yi4gSW4gYSBmdXR1cmUgcGF0Y2gsIHRoaXMgbWV0aG9kCisgICAgICAgIHdp
bGwgc2VuZCB0aGUgTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUgdG8gdGhlIHdlYiBwYWdlIHByb3h5
LgorICAgICAgICAoV2ViS2l0OjpMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI6OmRpZENhbmNlbExv
bmdNb3VzZVByZXNzKTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xvbmdN
b3VzZVByZXNzQ29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHA6IEFkZGVkIGxvbmcgbW91c2UgcHJlc3MgY29udHJvbGxlci4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaDogCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvbmdNb3VzZVByZXNz
Q29udHJvbGxlcik6IEFkZGVkIGdldHRlci4KKwogMjAxNC0wNy0zMSAgUHJ6ZW15c2xhdyBLdWN6
eW5za2kgIDxwLmt1Y3p5bnNraUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBGaXggdW5pbml0aWFs
aXplZCBzY2FsYXIgdmFyaWFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRl
eCA2ODY3MGM3OGMzNTFmYTI3ZTJhMjAyN2NhY2Q0ZDEwNWQ2NDM4MzY2Li5iYzk0Mzg2ZmUwYTI1
YzgzZmNiYTEyNTFiZjVmMDlmMzY2YWUxYmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCkBAIC0xNDksNiArMTQ5LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBvdmVycmlkZSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVk
KSBvdmVycmlkZSB7IH0KIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorICAgIHZpcnR1
YWwgdm9pZCBkaWRCZWdpbkxvbmdNb3VzZVByZXNzKGNvbnN0IEludFBvaW50JikgY29uc3Qgb3Zl
cnJpZGUgeyB9OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygp
IGNvbnN0IG92ZXJyaWRlIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsTG9uZ01vdXNl
UHJlc3MoKSBjb25zdCBvdmVycmlkZSB7IH07CisjZW5kaWYKKyAgICAKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSBvdmVycmlkZSB7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSopIG92ZXJyaWRlIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuY3BwCmluZGV4IDBiNTJjMjk1ODhhYTFhOTNlYTExN2VkM2FjODZiZDYwYjZiOWFhNWUu
LmI5YmM5MmUxODQwMjcyZTFlNzNhOWY0MjllMTM2MjAzMGUzNDljYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5jcHAKQEAgLTM5Nyw2ICszOTcsMjMgQEAgdm9pZCBDaHJvbWU6Om1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWYKIAog
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoJm1f
cGFnZSwgcmVzdWx0LCBtb2RpZmllckZsYWdzKTsKIH0KKyAgICAKKyNpZiBFTkFCTEUoTE9OR19N
T1VTRV9QUkVTUykKK3ZvaWQgQ2hyb21lOjpkaWRCZWdpbkxvbmdNb3VzZVByZXNzKGNvbnN0IElu
dFBvaW50JiBtb3VzZUxvY2F0aW9uKQoreworICAgIG1fY2xpZW50LmRpZEJlZ2luTG9uZ01vdXNl
UHJlc3MobW91c2VMb2NhdGlvbik7Cit9CisKK3ZvaWQgQ2hyb21lOjpkaWRSZWNvZ25pemVMb25n
TW91c2VQcmVzcygpCit7CisgICAgbV9jbGllbnQuZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3Mo
KTsKK30KKwordm9pZCBDaHJvbWU6OmRpZENhbmNlbExvbmdNb3VzZVByZXNzKCkKK3sKKyAgICBt
X2NsaWVudC5kaWRDYW5jZWxMb25nTW91c2VQcmVzcygpOworfQorI2VuZGlmCiAKIHZvaWQgQ2hy
b21lOjpzZXRUb29sVGlwKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5oCmluZGV4IGMyNDU4M2I0OWUwYjU2ZGM1OTM3NjFkNmZjYjQyZDdkMzBkMzJmZDguLjc1
MmM5MDM1ZGRkNjYxYjEwMzg4MTQ1NWE5Njg3MzllYmY4ODZjOTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
aApAQCAtMTUxLDYgKzE1MSwxMiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsK
IAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorICAgIHZvaWQgZGlkQmVnaW5Mb25nTW91
c2VQcmVzcyhjb25zdCBJbnRQb2ludCYpOworICAgIHZvaWQgZGlkUmVjb2duaXplTG9uZ01vdXNl
UHJlc3MoKTsKKyAgICB2b2lkIGRpZENhbmNlbExvbmdNb3VzZVByZXNzKCk7CisjZW5kaWYKKyAg
ICAKICAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYpOwogCiAgICAgdm9p
ZCBwcmludChGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNWZiYTM4
MzE5ZWNmY2E4M2UzMjZkMzg4NjJkYTVmYjNiODk5ZmNlMC4uZmE4NGU3YzdlOTM1NzUxNTFiYTkx
N2NmMTEyMmI5M2U0ZjEyOTA1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0x
OTQsNiArMTk0LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVn
aW5CdXR0b25DbGlja2VkKEVsZW1lbnQqLCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1v
dmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFn
cykgPSAwOwogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdmlydHVhbCB2b2lk
IGRpZEJlZ2luTG9uZ01vdXNlUHJlc3MoY29uc3QgSW50UG9pbnQmKSBjb25zdCA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCkgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxMb25nTW91c2VQcmVzcygpIGNvbnN0ID0gMDsKKyNlbmRp
ZgorICAgIAogICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHRE
aXJlY3Rpb24pID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSopID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBmMzE0ZTRiOTA5MjZlZmRjOWM5NGYw
YjkwNTZjOTc5NDg2ZDY2YmM2Li5lMGVmZDFhNDkwMGY2ZTM0ZjBiZTQ0Y2EyMzczZTA1M2Q5MzMy
YWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xNTcyLDE3ICsxNTcy
LDIyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjphdXRvSGlkZUN1cnNvclRpbWVyRmlyZWQoVGltZXI8
RXZlbnRIYW5kbGVyPiYgdGltZXIpCiAgICAgICAgIHZpZXctPnNldEN1cnNvcihtX2N1cnJlbnRN
b3VzZUN1cnNvcik7CiB9CiAjZW5kaWYKLSAgICAKKwogI2lmIEVOQUJMRShMT05HX01PVVNFX1BS
RVNTKQogdm9pZCBFdmVudEhhbmRsZXI6OmJlZ2luTG9uZ01vdXNlUHJlc3MoKQogewogICAgIGNs
ZWFyTG9uZ01vdXNlUHJlc3NTdGF0ZSgpOwotICAgIAorCiAgICAgbV9sb25nTW91c2VQcmVzc1Rp
bWVyLnN0YXJ0T25lU2hvdChsb25nTW91c2VQcmVzc0RlbGF5KTsKLSAgICAKLSAgICAvLyBGSVhN
RTogYnViYmxlIGxvbmcgbW91c2UgcHJlc3MgdXAgdG8gdGhlIGNsaWVudC4KKworICAgIFBhZ2Uq
IHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fbG9uZ01vdXNlUHJlc3NUaW1lci5zdGFydE9uZVNob3QobG9uZ01vdXNlUHJlc3NE
ZWxheSk7CisgICAgcGFnZS0+Y2hyb21lKCkuZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhtX21vdXNl
RG93blBvcyk7CiB9Ci0gICAgCisKIHZvaWQgRXZlbnRIYW5kbGVyOjpyZWNvZ25pemVMb25nTW91
c2VQcmVzcyhUaW1lcjxFdmVudEhhbmRsZXI+JiB0aW1lcikKIHsKICAgICBBU1NFUlRfVU5VU0VE
KHRpbWVyLCAmdGltZXIgPT0gJm1fbG9uZ01vdXNlUHJlc3NUaW1lcik7CkBAIC0xNTkzLDE3ICsx
NTk4LDI1IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpyZWNvZ25pemVMb25nTW91c2VQcmVzcyhUaW1l
cjxFdmVudEhhbmRsZXI+JiB0aW1lcikKICAgICBtX21vdXNlUHJlc3NlZCA9IGZhbHNlOwogICAg
IGludmFsaWRhdGVDbGljaygpOwogCi0gICAgLy8gRklYTUU6IGJ1YmJsZSBsb25nIG1vdXNlIHBy
ZXNzIHVwIHRvIHRoZSBjbGllbnQuCisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwor
ICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZS0+Y2hyb21lKCkuZGlk
UmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKTsKIH0KLSAgICAKKwogdm9pZCBFdmVudEhhbmRsZXI6
OmNhbmNlbExvbmdNb3VzZVByZXNzKCkKIHsKICAgICBpZiAoIW1fbG9uZ01vdXNlUHJlc3NUaW1l
ci5pc0FjdGl2ZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBjbGVhckxvbmdNb3VzZVByZXNz
U3RhdGUoKTsKLSAgICAKLSAgICAvLyBGSVhNRTogYnViYmxlIGxvbmcgbW91c2UgcHJlc3MgdXAg
dG8gdGhlIGNsaWVudC4KKworICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKKyAgICBp
ZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPmNocm9tZSgpLmRpZENhbmNl
bExvbmdNb3VzZVByZXNzKCk7CiB9CiAKIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhckxvbmdNb3Vz
ZVByZXNzU3RhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAppbmRleCBjYTg1YWYxZDRlMmVjZDZhNTZhZWZjYTI5ZDkxNTM2Yjc4
YmM1NTJlLi5iYWFlMTQyMGNlODZmNDY3MDZjOTE0ZDM3MmRhNzliZjQ4Njk1NGJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApA
QCAtMTE2LDYgKzExNiwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxl
UGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVtZW50KiwgV2ViQ29yZTo6UmVuZGVyRW1i
ZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6
SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIG92ZXJyaWRlOwogCisjaWYg
RU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luTG9uZ01v
dXNlUHJlc3MoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2FuY2VsTG9uZ01vdXNlUHJlc3MoKSBjb25zdCBvdmVycmlkZTsKKyNlbmRp
ZgorCiAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJD
b3JlOjpUZXh0RGlyZWN0aW9uKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBwcmludChX
ZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2Ny
aXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQy
L21lc3NhZ2VzLnB5CmluZGV4IGJjMDUyYjhjODU5NjFmMTYxNzNhYjg5Y2FlN2ViNWI3YWY4ZjVj
NmQuLjI2ZjkyYWU4NmEzY2UwOGVhYmVjZmI3NjgwZDQyY2ZmNzdkOGEyODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTIwMiw2ICsyMDIsNyBAQCBk
ZWYgc3RydWN0X29yX2NsYXNzKG5hbWVzcGFjZSwgdHlwZSk6CiAgICAgICAgICdXZWJLaXQ6OkVk
aXRpbmdSYW5nZScsCiAgICAgICAgICdXZWJLaXQ6OkVkaXRvclN0YXRlJywKICAgICAgICAgJ1dl
YktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24nLAorICAgICAgICAnV2ViS2l0
OjpMb25nTW91c2VQcmVzc0RhdGFTdG9yZScsCiAgICAgICAgICdXZWJLaXQ6Ok5hdmlnYXRpb25B
Y3Rpb25EYXRhJywKICAgICAgICAgJ1dlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMnLAogICAgICAgICAnV2ViS2l0OjpQYWdlU3RhdGUnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGFTdG9yZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU3NzM4
MDgxMGNhMjRmNWMyYzg3NzY2NjFlODExMTBlZjNhNTVkYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGFTdG9yZS5jcHAKQEAgLTAsMCAr
MSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMb25n
TW91c2VQcmVzc0RhdGFTdG9yZS5oIgorCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIExvbmdNb3VzZVByZXNzRGF0YVN0b3Jl
OjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2RlciA8PCB1cmxTdHJpbmc7CisgICAgZW5jb2RlciA8PCBvcmlnaW47CisKKyAgICBTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSBzbmFwc2hvdEhhbmRsZTsKKyAgICBpZiAoc25hcHNob3QpCisgICAg
ICAgIHNuYXBzaG90LT5jcmVhdGVIYW5kbGUoc25hcHNob3RIYW5kbGUsIFNoYXJlZE1lbW9yeTo6
UmVhZE9ubHkpOworICAgIGVuY29kZXIgPDwgc25hcHNob3RIYW5kbGU7Cit9CisKK2Jvb2wgTG9u
Z01vdXNlUHJlc3NEYXRhU3RvcmU6OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC51cmxTdHJpbmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5vcmlnaW4pKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBzbmFwc2hvdEhhbmRsZTsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHNuYXBzaG90SGFuZGxlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKCFzbmFwc2hvdEhhbmRsZS5pc051bGwoKSkKKyAgICAgICAgcmVzdWx0LnNuYXBz
aG90ID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoc25hcHNob3RIYW5kbGUsIFNoYXJlZE1lbW9y
eTo6UmVhZE9ubHkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0
YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kYjA3ODBjMjZlNGJiY2I0ZTcxM2M5Y2RkMTM0ZjY1YWNhYjViMmJiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0
YVN0b3JlLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTG9uZ01vdXNl
UHJlc3NEYXRhU3RvcmVfaAorI2RlZmluZSBMb25nTW91c2VQcmVzc0RhdGFTdG9yZV9oCisKKyNp
bmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIElQQyB7Citj
bGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBBcmd1bWVudEVuY29kZXI7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUgeworICAgIHZv
aWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUmKTsK
KworICAgIFN0cmluZyB1cmxTdHJpbmc7CisgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW47
CisgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gc25hcHNob3Q7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIExvbmdNb3VzZVByZXNzU3RvcmVfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUxOWNm
OGViOGEyNWI4Y2UxYWEyNzQ2MTA3YzBhYWJhNjU1MDRlZGYuLjZmYWYxNjE3Zjk5NDlmMTMxNGE1
OGZmNmRkY2U3MWFjOTNhNTk0ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwOTUsNiArMTA5NSwxMCBAQAogCQk5MzkxRjJD
QjEyMUI2N0FEMDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUYyODMxMjFCMzhGNTAw
RUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLzsgfTsKIAkJOTM5QUU3NjYx
MzE2RTk5QzAwQUUwNkE2IC8qIFdlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlBRTc2NTEzMTZFOTlDMDBBRTA2
QTYgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCAqLzsgfTsKIAkJOTNCREVCMDExNzFERDdB
RjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBX
S1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOUM0RTZCNzExOThDMDA1MTAwODc2NTVBIC8qIExvbmdNb3VzZVBy
ZXNzQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5QzRFNkI2RjE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9s
bGVyLmNwcCAqLzsgfTsKKwkJOUM0RTZCNzIxOThDMDA1MTAwODc2NTVBIC8qIExvbmdNb3VzZVBy
ZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUM0RTZCNzAxOThDMDA1MTAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzQ29udHJvbGxl
ci5oICovOyB9OworCQk5QzRFNkI3NTE5OEMwMjk4MDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NE
YXRhU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUM0RTZCNzMxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNw
cCAqLzsgfTsKKwkJOUM0RTZCNzYxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0
YVN0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QzRFNkI3NDE5OEMwMjk4MDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaCAqLzsg
fTsKIAkJOUY1NEY4OEYxNjQ4OEU4NzAwN0RGODFBIC8qIENoaWxkUHJvY2Vzc01hYy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGNTRGODhFMTY0ODhF
ODcwMDdERjgxQSAvKiBDaGlsZFByb2Nlc3NNYWMubW0gKi87IH07CiAJCTlGNTRGODk1MTY0OEFF
MEYwMDdERjgxQSAvKiBQbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGNTRGODk0MTY0OEFFMEUwMDdERjgxQSAv
KiBQbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5tbSAqLzsgfTsKIAkJOUZCNUYzOTQxNjlFNkE4MDAw
MkMyNUJGIC8qIFdLQ29udGV4dFByaXZhdGVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkI1RjM5MjE2OUU2QTgwMDAyQzI1QkYgLyogV0tDb250
ZXh0UHJpdmF0ZU1hYy5tbSAqLzsgfTsKQEAgLTMxNDksNiArMzE1MywxMCBAQAogCQk5MzkxRjI4
NDEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOUFFNzY1MTMxNkU5OUMwMEFF
MDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNCREVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBl
c1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlTG9hZFR5
cGVzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QzRFNkI2RjE5OEMw
MDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvbmdNb3VzZVByZXNzQ29udHJvbGxlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlDNEU2QjcwMTk4QzAwNTEwMDg3NjU1QSAvKiBM
b25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTlDNEU2QjczMTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMb25nTW91c2VQcmVzc0Rh
dGFTdG9yZS5jcHA7IHBhdGggPSBTaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3BwOyBz
b3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTlDNEU2Qjc0MTk4QzAyOTgwMDg3NjU1QSAv
KiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5oOyBwYXRoID0gU2hhcmVkL0xvbmdNb3VzZVBy
ZXNzRGF0YVN0b3JlLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJOUY1NEY4OEUx
NjQ4OEU4NzAwN0RGODFBIC8qIENoaWxkUHJvY2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IENoaWxkUHJvY2Vzc01hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUY1NEY4OTQxNjQ4QUUwRTAwN0RGODFBIC8qIFBsdWdpblByb2Nlc3NN
YW5hZ2VyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGx1
Z2luUHJvY2Vzc01hbmFnZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlG
QjVGMzkyMTY5RTZBODAwMDJDMjVCRiAvKiBXS0NvbnRleHRQcml2YXRlTWFjLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tDb250ZXh0UHJpdmF0ZU1hYy5tbTsg
cGF0aCA9IG1hYy9XS0NvbnRleHRQcml2YXRlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNDQyMyw2ICs0NDMxLDggQEAKIAkJCQlDNThDREYyQzE4ODc2MDlGMDA4NzE1MzYg
LyogSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCAqLywKIAkJCQkxQTkyREMxMjEy
RjhCQUI5MDAxN0FGNjUgLyogTGF5ZXJUcmVlQ29udGV4dC5jcHAgKi8sCiAJCQkJMUE5MkRDMTAx
MkY4QkE0NjAwMTdBRjY1IC8qIExheWVyVHJlZUNvbnRleHQuaCAqLywKKwkJCQk5QzRFNkI3MzE5
OEMwMjk4MDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3BwICovLAorCQkJCTlD
NEU2Qjc0MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5oICovLAog
CQkJCUJDQjBBRUU4MTIyRjUzRTMwMEIxMzQxRSAvKiBNdXRhYmxlRGljdGlvbmFyeS5jcHAgKi8s
CiAJCQkJQkNCMEFFRTcxMjJGNTNFMzAwQjEzNDFFIC8qIE11dGFibGVEaWN0aW9uYXJ5LmggKi8s
CiAJCQkJMUFEQ0I4NjgxODk4MzFCMzAwMjJFRTVBIC8qIE5hdmlnYXRpb25BY3Rpb25EYXRhLmNw
cCAqLywKQEAgLTU3MDMsNiArNTcxMyw4IEBACiAJCUJDMDMyRDVFMTBGNDM3MkIwMDU4QzE1QSAv
KiBXZWJQYWdlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJ
CQk5QzRFNkI2RjE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNw
cCAqLywKKwkJCQk5QzRFNkI3MDE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250
cm9sbGVyLmggKi8sCiAJCQkJMkQyOUVDQ0QxOTJGMkMyRTAwOTg0Qjc4IC8qIENvY29hICovLAog
CQkJCTJEQTk0NEI0MTg4NEVBMkEwMEVEODZEQiAvKiBpb3MgKi8sCiAJCQkJQkM5NjNENkMxMTNE
RDE5NTAwNTc0QkUyIC8qIG1hYyAqLywKQEAgLTcxNjIsNiArNzE3NCw3IEBACiAJCQkJMUFCQzNE
RkMxODk5RjUxQzAwNEYwNjI2IC8qIFdLTmF2aWdhdGlvbkRlbGVnYXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUU1MkY5MjE5MjAxREE3MDBBMUZBMzcgLyogQVBJQ29udGV4dENvbmZpZ3VyYXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTdDMzYxRDczMTkyN0ZBMzYwMDM2QTU5RCAvKiBXZWJT
Y3JpcHRNZXNzYWdlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUM0RTZCNzIxOThDMDA1
MTAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTEwNUZFNTQxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkQxNDBFQjAxOEYzN0JFMDAwNUU3NUEwIC8qIFBhZ2VPdmVybGF5Q29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxNzc1M0YxMThCQUJGMDAwN0Q5RTlBIC8qIEdlbmVy
aWNDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCkBAIC03NDg0LDYgKzc0OTcsNyBAQAogCQkJCTJE
ODcxMDE3MTgyODQxNUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaCBp
biBIZWFkZXJzICovLAogCQkJCTFBM0REMjAyMTI1RTVBMUYwMDQ1MTVFNiAvKiBXZWJGaW5kQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTkwQzFFRTEyNjRGRDUwMDAzRTQ0RDQgLyogV2Vi
RmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTlDNEU2Qjc2MTk4QzAyOTgwMDg3NjU1
QSAvKiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5
NTQxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDRTQ2OTU2MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJv
eHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1QThEMkQ3MTg3RDMwM0EwMEMzOUM5RSAvKiBXS1Nl
c3Npb25SZWYuaCBpbiBIZWFkZXJzICovLApAQCAtODc0Niw2ICs4NzYwLDcgQEAKIAkJCWJ1aWxk
QWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQk1MUUzNTIwMDE4MEY1
RDBGMDBFNTNCRTkgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTlDNEU2Qjc1MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0Rh
dGFTdG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NUE4RDJFMjE4N0RFQzFFMDBDMzlDOUUg
LyogQVBJU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Q3OTJENjE3NjdDQjZFMDA4
ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjYzNDAz
RjkxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQSU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTkz
MTYsNiArOTMzMSw3IEBACiAJCQkJMUFDNzUzN0YxODNCRTUwRjAwNzJDQjE1IC8qIERhdGFSZWZl
cmVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDQjRFNDcxOEJCRTA0NDAwMEZDRkM5IC8q
IFBhZ2VDbGllbnRJbXBsSU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyRTM0RTQxMzBCNEQw
NTAwQUJEMTlBIC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJOUM0RTZCNzExOThDMDA1MTAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzQ29udHJvbGxl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUM5NjExODE4M0QyOTQ3MDBEMjAwMkUgLyogV2Vi
SURCU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzQwNzVGMzEyNEZGMDI3MDA2OEYyMEEgLyogV0tBcnJheS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBMTE4QTlGMjE5MDhCOEVBMDBGN0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5t
bSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDEzMjY0ZGI1ZmJl
M2E0NTIxZjVmM2U2OWJhN2Q2NDhjMTgxYTc5ZjQuLmQ1OTVkOTQ0NGNlNTRkYzRmYTQ5ZTMyMjEz
NjBhNDgzNWViOGM3N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTgzLDYgKzgzLDgg
QEAKICNpbmNsdWRlICJQcmludGVyTGlzdEd0ay5oIgogI2VuZGlmCiAKKyNpbXBvcnQgPFdlYkNv
cmUvRWxlbWVudC5oPgorCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKQEAgLTYwMyw2ICs2MDUsMjQgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1
bHQKICAgICBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhIHdlYkhpdFRlc3RSZXN1bHREYXRhKGhpdFRl
c3RSZXN1bHQpOwogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpNb3Vz
ZURpZE1vdmVPdmVyRWxlbWVudCh3ZWJIaXRUZXN0UmVzdWx0RGF0YSwgbW9kaWZpZXJGbGFncywg
SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEuZ2V0KCkpKSk7CiB9Cisg
ICAgCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbW91c2VMb2Nh
dGlvbikgY29uc3QKK3sKKyAgICBtX3BhZ2UtPmxvbmdNb3VzZVByZXNzQ29udHJvbGxlcigpLmRp
ZEJlZ2luTG9uZ01vdXNlUHJlc3MobW91c2VMb2NhdGlvbik7Cit9CisKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpIGNvbnN0Cit7CisgICAgbV9wYWdl
LT5sb25nTW91c2VQcmVzc0NvbnRyb2xsZXIoKS5kaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygp
OworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQ2FuY2VsTG9uZ01vdXNlUHJlc3MoKSBj
b25zdAoreworICAgIG1fcGFnZS0+bG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKCkuZGlkQ2FuY2Vs
TG9uZ01vdXNlUHJlc3MoKTsKK30KKyNlbmRpZgorCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpz
ZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCmluZGV4IGRkMTYyZmNhZGM3YWY0OTU2Zjc3YzE5NGI5NGIzOGEyMjZmNzlh
YzIuLjJlM2I5NjQzOTI0MjQ5MzUyYzAwYmFkMjBmMmYzODMwMTJiYTJlZWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaApAQCAtMTMxLDYgKzEzMSwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0
JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgb3ZlcnJpZGU7CiAgICAgCisjaWYgRU5BQkxFKExP
TkdfTU9VU0VfUFJFU1MpCisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luTG9uZ01vdXNlUHJlc3Mo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2FuY2VsTG9uZ01vdXNlUHJlc3MoKSBjb25zdCBvdmVycmlkZTsKKyNlbmRp
ZgorICAgIAogICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFdlYkNv
cmU6OlRleHREaXJlY3Rpb24pIG92ZXJyaWRlOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCBwcmlu
dChXZWJDb3JlOjpGcmFtZSopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40MGM4OGQ2MzkzOGU4OGVjNDRjZDk4NjU1ZDZiODZkNDgyZmMwZDE0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xvbmdNb3Vz
ZVByZXNzQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBF
TkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkxvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oIgorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2lu
Y2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyOjpMb25n
TW91c2VQcmVzc0NvbnRyb2xsZXIoV2ViUGFnZSogd2ViUGFnZSkKK3sKK30KKwordm9pZCBMb25n
TW91c2VQcmVzc0NvbnRyb2xsZXI6OmRpZEJlZ2luTG9uZ01vdXNlUHJlc3MoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIG1vdXNlUG9zKQoreworICAgIC8vIEZJWE1FOiBHZW5lcmF0ZSBkYXRhIHN0
b3JlIGZyb20gbG9jYXRpb24uCisKKyAgICAvLyBGSVhNRTogTm90aWZ5IGNsaWVudCBvZiBsb25n
IG1vdXNlIHByZXNzIGV2ZW50LgorfQorCit2b2lkIExvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6
ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKQoreworICAgIC8vIEZJWE1FOiBOb3RpZnkgY2xp
ZW50IG9mIGxvbmcgbW91c2UgcHJlc3MgZXZlbnQuCit9CisKK3ZvaWQgTG9uZ01vdXNlUHJlc3ND
b250cm9sbGVyOjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcygpCit7CisgICAgLy8gRklYTUU6IE5v
dGlmeSBjbGllbnQgb2YgbG9uZyBtb3VzZSBwcmVzcyBldmVudC4KK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVz
c0NvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjQxNzc3ZjIxNzAyY2RlYTNjNWUxN2RmZDA0MDZm
YTY1NmIyYjZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisKKyNpZm5kZWYgTG9uZ01vdXNl
UHJlc3NDb250cm9sbGVyX2gKKyNkZWZpbmUgTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyX2gKKwor
I2luY2x1ZGUgIkxvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmgiCisjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFz
cyBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExv
bmdNb3VzZVByZXNzQ29udHJvbGxlcik7CisKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBMb25nTW91
c2VQcmVzc0NvbnRyb2xsZXIoV2ViUGFnZSopOworCisgICAgdm9pZCBkaWRCZWdpbkxvbmdNb3Vz
ZVByZXNzKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CisgICAgdm9pZCBkaWRSZWNvZ25pemVM
b25nTW91c2VQcmVzcygpOworICAgIHZvaWQgZGlkQ2FuY2VsTG9uZ01vdXNlUHJlc3MoKTsKKwor
cHJpdmF0ZToKKyAgICBMb25nTW91c2VQcmVzc0RhdGFTdG9yZSBtX2RhdGFTdG9yZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gTG9uZ01vdXNlUHJlc3NDb250cm9s
bGVyX2gKKworI2VuZGlmIC8vIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDA5NmY3NDE2ZjRlMzQw
YzZmYWMwNDgxMWMzMjA4MmQ1NmIzMTgzNDcuLjFkNjRjZjExMmEzMGRhZjQ1YzgzYjRmNTkwNzFj
ZDA2YzU2NmYzOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTIwNSw2ICsyMDUsMTAgQEAKICNpbmNsdWRlICJDb29yZGluYXRlZExheWVy
VHJlZUhvc3RNZXNzYWdlcy5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVT
UykKKyNpbmNsdWRlICJMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCIKKyNlbmRpZgorCiB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEyODQsNiAr
MTI4OCwxNiBAQCB2b2lkIFdlYlBhZ2U6OnNjcm9sbE1haW5GcmFtZUlmTm90QXRNYXhTY3JvbGxQ
b3NpdGlvbihjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZQogICAgIGZyYW1lVmlldy0+c2V0U2Ny
b2xsUG9zaXRpb24oZnJhbWVWaWV3LT5zY3JvbGxQb3NpdGlvbigpICsgbmV3U2Nyb2xsT2Zmc2V0
KTsKIH0KIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorTG9uZ01vdXNlUHJlc3NDb250
cm9sbGVyJiBXZWJQYWdlOjpsb25nTW91c2VQcmVzc0NvbnRyb2xsZXIoKQoreworICAgIGlmICgh
bV9sb25nTW91c2VQcmVzc0NvbnRyb2xsZXIpCisgICAgICAgIG1fbG9uZ01vdXNlUHJlc3NDb250
cm9sbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI+KHRoaXMp
OworCisgICAgcmV0dXJuICptX2xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5nZXQoKTsKK30KKyNl
bmRpZgorCiB2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0KEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3ND
b250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRl
U2F2ZXIgc3RhdGVTYXZlcihncmFwaGljc0NvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNmNkZjcwYWI5MmVhZjlkYmE1NGI3ZjcyYjU2
MjkwMTA1OGUxNTkxYS4uNWY5ZDFkMTA1Mjc4MzY2OGIxZWVkODE5MWQyYjcwODM4ZDU2MWZlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDMs
NiArMTAzLDEwIEBAIE9CSkNfQ0xBU1MgV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdDsKICNk
ZWZpbmUgRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQyAxCiAjZW5k
aWYKIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorI2luY2x1ZGUgIkxvbmdNb3VzZVBy
ZXNzQ29udHJvbGxlci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXJyYXk7
CiB9CkBAIC0xODMsNiArMTg3LDEwIEBAIGNsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OwogY2xhc3MgV2ViVG91Y2hFdmVudDsKICNlbmRpZgogCisjaWYgRU5BQkxFKExPTkdfTU9VU0Vf
UFJFU1MpCitjbGFzcyBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI7CisjZW5kaWYKKwogY2xhc3Mg
V2ViUGFnZSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRs
ZVBhZ2U+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VT
ZW5kZXIgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlBhZ2U+IGNyZWF0ZSh1
aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKQEAgLTIz
OCw2ICsyNDYsMTAgQEAgcHVibGljOgogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBmdWxsU2Ny
ZWVuTWFuYWdlcigpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyAg
ICBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXImIGxvbmdNb3VzZVByZXNzQ29udHJvbGxlcigpOwor
I2VuZGlmCisKICAgICAvLyAtLSBDYWxsZWQgYnkgdGhlIERyYXdpbmdBcmVhLgogICAgIC8vIEZJ
WE1FOiBXZSBjb3VsZCBnZW5lcmljaXplIHRoZXNlIGludG8gYSBEcmF3aW5nQXJlYSBjbGllbnQg
aW50ZXJmYWNlLiBXb3VsZCB0aGF0IGJlIGJlbmVmaWNpYWw/CiAgICAgdm9pZCBkcmF3UmVjdChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CkBAIC0x
MTY0LDYgKzExNzYsMTAgQEAgcHJpdmF0ZToKIAogICAgIEZpbmRDb250cm9sbGVyIG1fZmluZENv
bnRyb2xsZXI7CiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8TG9uZ01vdXNlUHJlc3NDb250cm9sbGVyPiBtX2xvbmdNb3VzZVByZXNzQ29udHJvbGxl
cjsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBSZWZQdHI8V2ViSW5zcGVj
dG9yPiBtX2luc3BlY3RvcjsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236062</attachid>
            <date>2014-08-05 16:12:33 -0700</date>
            <delta_ts>2014-08-06 10:52:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135515-20140805161229.patch</filename>
            <type>text/plain</type>
            <size>33196</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyMDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ5MDg0Njg3MWY2MzQz
ZDA4YWViYWNkZGYyOTdkNWI0NjVhMzA2Yi4uZWM2ZGM0NWRiYTdmM2JkMTM0ZGY2NjNjZjVkNzM5
YWM0MzE3MTgyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTA4LTAxICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCisgICAgICAgIFRlbGwgdGhlIENo
cm9tZSBjbGllbnQgYWJvdXQgbG9uZyBtb3VzZSBwcmVzcyBldmVudHMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU1MTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAg
ICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIE92ZXJyaWRlIGxvbmcgbW91c2Ug
cHJlc3MgbWV0aG9kcyBpbiBFbXB0eUNocm9tZUNsaWVudC4KKyAgICAgICAgKiBwYWdlL0Nocm9t
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmRpZEJlZ2luTG9uZ01vdXNlUHJlc3Mp
OiBBZGRlZC4gU2VuZCBsb25nIG1vdXNlIHByZXNzIGV2ZW50IHRvIHRoZSBDaHJvbWUgY2xpZW50
LgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpkaWRDYW5jZWxMb25nTW91c2VQcmVz
cyk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6IEFkZCBsb25nIG1vdXNlIHByZXNz
IGxpZmVjeWNsZSBtZXRob2RzLgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6IERpdHRv
LgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyk6IFRlbGwgQ2hyb21lIGFib3V0IHRo
ZSBsb25nIG1vdXNlIHByZXNzIGV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERpdHRvLgorCiAyMDE0LTA4
LTA1ICBQZXl0b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bmFtZSBNQUNfTE9OR19QUkVTUyBmZWF0dXJlIGZsYWcgdG8gTE9OR19NT1VTRV9QUkVTUy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwppbmRleCBhYWQ4OWRkYjZiOWVkMTQzN2FjNDU5ZDA1YTg1N2E3M2M4YjcwYWY4
Li41MjAzZWMzYzlhNmQ1Yzg3OTVlZTE5MDRjNWY5Nzg1MjhiYzQ1MmNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDgtMDEgIFBleXRvbiBSYW5kb2xwaCAgPHByYW5k
b2xwaEBhcHBsZS5jb20+CisKKyAgICAgICAgUGFzcyBsb25nIG1vdXNlIHByZXNzIGV2ZW50IHVw
IHRvIHRoZSB3ZWIgcGFnZS4gCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzU1MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICBP
dmVycmlkZSBsb25nIG1vdXNlIHByZXNzIGxpZmVjeWNsZSBtZXRob2RzLgorCiAyMDE0LTA4LTA1
ICBQZXl0b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFt
ZSBNQUNfTE9OR19QUkVTUyBmZWF0dXJlIGZsYWcgdG8gTE9OR19NT1VTRV9QUkVTUy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBmNWViY2VlYjA0NjM0ZTlkNzYwYmI3YjQ2YTNhZDBiYzI2MzZjOWE5Li4wM2U3NDY5
NzY1NzVjOWE5OGNhOWI4ZGI2MWExMzEwMjgxYzlkMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDEgQEAKKzIwMTQtMDgtMDEgIFBleXRvbiBSYW5kb2xwaCAgPHByYW5kb2xwaEBhcHBsZS5jb20+
CisKKyAgICAgICAgQ3JlYXRlIHN0dWIgbG9uZyBtb3VzZSBwcmVzcyBjb250cm9sbGVyLiBQYXJ0
IG9mIDEzNTI1NyAtIEFkZCBsb25nIG1vdXNlIHByZXNzIGdlc3R1cmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTUxNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyB0
d28gbmV3IGNsYXNzZXMsIExvbmdNb3VzZVByZXNzQ29udHJvbGxlciBhbmQgTG9uZ01vdXNlUHJl
c3NEYXRhU3RvcmUuIEl0IGFsc28KKyAgICAgICAgcHJvdmlkZXMgdGhlIG5lY2Vzc2FyeSBjYWxs
aW5nIGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2Vz
LnB5OgorICAgICAgICAoc3RydWN0X29yX2NsYXNzKTogTWFyayBMb25nTW91c2VQcmVzc0RhdGEg
YXMgYSBzdHJ1Y3Qgc28gaXQgcGxheXMgbmljZWx5IHdpdGggb3VyIElQQy4KKyAgICAgICAgKiBT
aGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6TG9uZ01vdXNlUHJlc3NEYXRhU3RvcmU6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6Okxv
bmdNb3VzZVByZXNzRGF0YVN0b3JlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Mb25nTW91
c2VQcmVzc0RhdGFTdG9yZS5oOiBBZGRlZC4gRW5jYXBzdWxhdGUgaW5mb3JtYXRpb24gbmVlZGVk
IGJ5IHRoZSBjbGllbnQgZm9yIHRoZSBsb25nCisgICAgICAgIHByZXNzLCBsaWtlIGEgc25hcHNo
b3Qgb2YgdGhlIGxvbmctcHJlc3NlZCBpdGVtLCBhbiBhc3NvY2lhdGVkIFVSTCwgYW5kIGV2ZW50
dWFsbHkgYXNzb2NpYXRlZCB0ZXh0LAorICAgICAgICBldGMuCisgICAgICAgICogV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIg
YW5kIExvbmdNb3VzZVByZXNzRGF0YS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyk6IEFkZGVkLiBUZWxsIHRoZSBsb25nIG1vdXNlIHBy
ZXNzIGNvbnRyb2xsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkUmVj
b2duaXplTG9uZ01vdXNlUHJlc3MpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI6OkxvbmdNb3VzZVByZXNzQ29udHJv
bGxlcik6CisgICAgICAgIChXZWJLaXQ6OkxvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6ZGlkQmVn
aW5Mb25nTW91c2VQcmVzcyk6IEFkZGVkIHN0dWIuIEluIGEgZnV0dXJlIHBhdGNoLCB0aGlzIG1l
dGhvZCAKKyAgICAgICAgd2lsbCBnZW5lcmF0ZSBhIExvbmdNb3VzZVByZXNzRGF0YSBmb3IgdGhl
IGxvbmctcHJlc3NlZCBwb2ludCBhbmQgd2lsbCBzZW5kIHRoYXQgaW5mb3JtYXRpb24gdG8gdGhl
IAorICAgICAgICB3ZWIgcGFnZSBwcm94eS4KKyAgICAgICAgKFdlYktpdDo6TG9uZ01vdXNlUHJl
c3NDb250cm9sbGVyOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IEFkZGVkIHN0dWIuIElu
IGEgZnV0dXJlIHBhdGNoLCB0aGlzIG1ldGhvZAorICAgICAgICB3aWxsIHNlbmQgdGhlIExvbmdN
b3VzZVByZXNzRGF0YVN0b3JlIHRvIHRoZSB3ZWIgcGFnZSBwcm94eS4KKyAgICAgICAgKFdlYktp
dDo6TG9uZ01vdXNlUHJlc3NDb250cm9sbGVyOjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERp
dHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOiBB
ZGRlZCBsb25nIG1vdXNlIHByZXNzIGNvbnRyb2xsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OldlYlBhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6IAor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb25nTW91c2VQcmVzc0NvbnRyb2xsZXIpOiBBZGRl
ZCBnZXR0ZXIuCisKIDIwMTQtMDgtMDUgIFBleXRvbiBSYW5kb2xwaCAgPHByYW5kb2xwaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVuYW1lIE1BQ19MT05HX1BSRVNTIGZlYXR1cmUgZmxhZyB0byBM
T05HX01PVVNFX1BSRVNTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDY4
NjcwYzc4YzM1MWZhMjdlMmEyMDI3Y2FjZDRkMTA1ZDY0MzgzNjYuLmJjOTQzODZmZTBhMjVjODNm
Y2JhMTI1MWJmNWYwOWYzNjZhZTFiZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKQEAgLTE0OSw2ICsxNDksMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxi
YXJzTW9kZURpZENoYW5nZSgpIGNvbnN0IG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBt
b3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQpIG92
ZXJyaWRlIHsgfQogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdmlydHVhbCB2
b2lkIGRpZEJlZ2luTG9uZ01vdXNlUHJlc3MoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlk
ZSB7IH07CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCkgY29u
c3Qgb3ZlcnJpZGUgeyB9OworICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxMb25nTW91c2VQcmVz
cygpIGNvbnN0IG92ZXJyaWRlIHsgfTsKKyNlbmRpZgorICAgIAogICAgIHZpcnR1YWwgdm9pZCBz
ZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rpb24pIG92ZXJyaWRlIHsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lKikgb3ZlcnJpZGUgeyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5jcHAKaW5kZXggMGI1MmMyOTU4OGFhMWE5M2VhMTE3ZWQzYWM4NmJkNjBiNmI5YWE1ZS4uYjli
YzkyZTE4NDAyNzJlMWU3M2E5ZjQyOWUxMzYyMDMwZTM0OWNjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmNwcApAQCAtMzk3LDYgKzM5NywyMyBAQCB2b2lkIENocm9tZTo6bW91c2VEaWRNb3ZlT3ZlckVs
ZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNpZ25lZCBtb2RpZgogCiAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudCgmbV9wYWdl
LCByZXN1bHQsIG1vZGlmaWVyRmxhZ3MpOwogfQorICAgIAorI2lmIEVOQUJMRShMT05HX01PVVNF
X1BSRVNTKQordm9pZCBDaHJvbWU6OmRpZEJlZ2luTG9uZ01vdXNlUHJlc3MoY29uc3QgSW50UG9p
bnQmIG1vdXNlTG9jYXRpb24pCit7CisgICAgbV9jbGllbnQuZGlkQmVnaW5Mb25nTW91c2VQcmVz
cyhtb3VzZUxvY2F0aW9uKTsKK30KKwordm9pZCBDaHJvbWU6OmRpZFJlY29nbml6ZUxvbmdNb3Vz
ZVByZXNzKCkKK3sKKyAgICBtX2NsaWVudC5kaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpOwor
fQorCit2b2lkIENocm9tZTo6ZGlkQ2FuY2VsTG9uZ01vdXNlUHJlc3MoKQoreworICAgIG1fY2xp
ZW50LmRpZENhbmNlbExvbmdNb3VzZVByZXNzKCk7Cit9CisjZW5kaWYKIAogdm9pZCBDaHJvbWU6
OnNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmgKaW5kZXggYzI0NTgzYjQ5ZTBiNTZkYzU5Mzc2MWQ2ZmNiNDJkN2QzMGQzMmZkOC4uNzUyYzkw
MzVkZGQ2NjFiMTAzODgxNDU1YTk2ODczOWViZjg4NmM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBA
IC0xNTEsNiArMTUxLDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVs
ZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogCisj
aWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdm9pZCBkaWRCZWdpbkxvbmdNb3VzZVBy
ZXNzKGNvbnN0IEludFBvaW50Jik7CisgICAgdm9pZCBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVz
cygpOworICAgIHZvaWQgZGlkQ2FuY2VsTG9uZ01vdXNlUHJlc3MoKTsKKyNlbmRpZgorICAgIAog
ICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBIaXRUZXN0UmVzdWx0Jik7CiAKICAgICB2b2lkIHBy
aW50KEZyYW1lKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA1ZmJhMzgzMTll
Y2ZjYTgzZTMyNmQzODg2MmRhNWZiM2I4OTlmY2UwLi5mYTg0ZTdjN2U5MzU3NTE1MWJhOTE3Y2Yx
MTIyYjkzZTRmMTI5MDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTE5NCw2
ICsxOTQsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWQoRWxlbWVudCosIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWls
YWJpbGl0eVJlYXNvbikgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSA9
IDA7CiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
QmVnaW5Mb25nTW91c2VQcmVzcyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGRpZENhbmNlbExvbmdNb3VzZVByZXNzKCkgY29uc3QgPSAwOworI2VuZGlmCisg
ICAgCiAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgVGV4dERpcmVj
dGlvbikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lKikgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGYzMTRlNGI5MDkyNmVmZGM5Yzk0ZjBiOTA1
NmM5Nzk0ODZkNjZiYzYuLmUwZWZkMWE0OTAwZjZlMzRmMGJlNDRjYTIzNzNlMDUzZDkzMzJhZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTE1NzIsMTcgKzE1NzIsMjIg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OmF1dG9IaWRlQ3Vyc29yVGltZXJGaXJlZChUaW1lcjxFdmVu
dEhhbmRsZXI+JiB0aW1lcikKICAgICAgICAgdmlldy0+c2V0Q3Vyc29yKG1fY3VycmVudE1vdXNl
Q3Vyc29yKTsKIH0KICNlbmRpZgotICAgIAorCiAjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1Mp
CiB2b2lkIEV2ZW50SGFuZGxlcjo6YmVnaW5Mb25nTW91c2VQcmVzcygpCiB7CiAgICAgY2xlYXJM
b25nTW91c2VQcmVzc1N0YXRlKCk7Ci0gICAgCisKICAgICBtX2xvbmdNb3VzZVByZXNzVGltZXIu
c3RhcnRPbmVTaG90KGxvbmdNb3VzZVByZXNzRGVsYXkpOwotICAgIAotICAgIC8vIEZJWE1FOiBi
dWJibGUgbG9uZyBtb3VzZSBwcmVzcyB1cCB0byB0aGUgY2xpZW50LgorCisgICAgUGFnZSogcGFn
ZSA9IG1fZnJhbWUucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9sb25nTW91c2VQcmVzc1RpbWVyLnN0YXJ0T25lU2hvdChsb25nTW91c2VQcmVzc0RlbGF5
KTsKKyAgICBwYWdlLT5jaHJvbWUoKS5kaWRCZWdpbkxvbmdNb3VzZVByZXNzKG1fbW91c2VEb3du
UG9zKTsKIH0KLSAgICAKKwogdm9pZCBFdmVudEhhbmRsZXI6OnJlY29nbml6ZUxvbmdNb3VzZVBy
ZXNzKFRpbWVyPEV2ZW50SGFuZGxlcj4mIHRpbWVyKQogewogICAgIEFTU0VSVF9VTlVTRUQodGlt
ZXIsICZ0aW1lciA9PSAmbV9sb25nTW91c2VQcmVzc1RpbWVyKTsKQEAgLTE1OTMsMTcgKzE1OTgs
MjUgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnJlY29nbml6ZUxvbmdNb3VzZVByZXNzKFRpbWVyPEV2
ZW50SGFuZGxlcj4mIHRpbWVyKQogICAgIG1fbW91c2VQcmVzc2VkID0gZmFsc2U7CiAgICAgaW52
YWxpZGF0ZUNsaWNrKCk7CiAKLSAgICAvLyBGSVhNRTogYnViYmxlIGxvbmcgbW91c2UgcHJlc3Mg
dXAgdG8gdGhlIGNsaWVudC4KKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7CisgICAg
aWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBwYWdlLT5jaHJvbWUoKS5kaWRSZWNv
Z25pemVMb25nTW91c2VQcmVzcygpOwogfQotICAgIAorCiB2b2lkIEV2ZW50SGFuZGxlcjo6Y2Fu
Y2VsTG9uZ01vdXNlUHJlc3MoKQogewogICAgIGlmICghbV9sb25nTW91c2VQcmVzc1RpbWVyLmlz
QWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGNsZWFyTG9uZ01vdXNlUHJlc3NTdGF0
ZSgpOwotICAgIAotICAgIC8vIEZJWE1FOiBidWJibGUgbG9uZyBtb3VzZSBwcmVzcyB1cCB0byB0
aGUgY2xpZW50LgorCisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOworICAgIGlmICgh
cGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZS0+Y2hyb21lKCkuZGlkQ2FuY2VsTG9u
Z01vdXNlUHJlc3MoKTsKIH0KIAogdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyTG9uZ01vdXNlUHJl
c3NTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCmluZGV4IGNhODVhZjFkNGUyZWNkNmE1NmFlZmNhMjlkOTE1MzZiNzhiYzU1
MmUuLmJhYWUxNDIwY2U4NmY0NjcwNmM5MTRkMzcyZGE3OWJmNDg2OTU0YmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0x
MTYsNiArMTE2LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVn
aW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpSZW5kZXJFbWJlZGRl
ZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRU
ZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgb3ZlcnJpZGU7CiAKKyNpZiBFTkFC
TEUoTE9OR19NT1VTRV9QUkVTUykKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5Mb25nTW91c2VQ
cmVzcyhjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaWRDYW5jZWxMb25nTW91c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRlOworI2VuZGlmCisK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6
OlRleHREaXJlY3Rpb24pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHByaW50KFdlYkNv
cmU6OkZyYW1lKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRz
L3dlYmtpdDIvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVz
c2FnZXMucHkKaW5kZXggYmMwNTJiOGM4NTk2MWYxNjE3M2FiODljYWU3ZWI1YjdhZjhmNWM2ZC4u
MjZmOTJhZTg2YTNjZTA4ZWFiZWNmYjc2ODBkNDJjZmY3N2Q4YTI4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQpAQCAtMjAyLDYgKzIwMiw3IEBAIGRlZiBz
dHJ1Y3Rfb3JfY2xhc3MobmFtZXNwYWNlLCB0eXBlKToKICAgICAgICAgJ1dlYktpdDo6RWRpdGlu
Z1JhbmdlJywKICAgICAgICAgJ1dlYktpdDo6RWRpdG9yU3RhdGUnLAogICAgICAgICAnV2ViS2l0
OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbicsCisgICAgICAgICdXZWJLaXQ6Okxv
bmdNb3VzZVByZXNzRGF0YVN0b3JlJywKICAgICAgICAgJ1dlYktpdDo6TmF2aWdhdGlvbkFjdGlv
bkRhdGEnLAogICAgICAgICAnV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cycsCiAgICAgICAgICdXZWJLaXQ6OlBhZ2VTdGF0ZScsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTc3MzgwODEw
Y2EyNGY1YzJjODc3NjY2MWU4MTExMGVmM2E1NWRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcApAQCAtMCwwICsxLDYy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvbmdNb3Vz
ZVByZXNzRGF0YVN0b3JlLmgiCisKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmU6OmVu
Y29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVy
IDw8IHVybFN0cmluZzsKKyAgICBlbmNvZGVyIDw8IG9yaWdpbjsKKworICAgIFNoYXJlYWJsZUJp
dG1hcDo6SGFuZGxlIHNuYXBzaG90SGFuZGxlOworICAgIGlmIChzbmFwc2hvdCkKKyAgICAgICAg
c25hcHNob3QtPmNyZWF0ZUhhbmRsZShzbmFwc2hvdEhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFk
T25seSk7CisgICAgZW5jb2RlciA8PCBzbmFwc2hvdEhhbmRsZTsKK30KKworYm9vbCBMb25nTW91
c2VQcmVzc0RhdGFTdG9yZTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBM
b25nTW91c2VQcmVzc0RhdGFTdG9yZSYgcmVzdWx0KQoreworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocmVzdWx0LnVybFN0cmluZykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm9yaWdpbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIHNuYXBzaG90SGFuZGxlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoc25hcHNob3RIYW5kbGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoIXNuYXBzaG90SGFuZGxlLmlzTnVsbCgpKQorICAgICAgICByZXN1bHQuc25hcHNob3Qg
PSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShzbmFwc2hvdEhhbmRsZSwgU2hhcmVkTWVtb3J5OjpS
ZWFkT25seSk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3Rv
cmUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGFTdG9yZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRiMDc4MGMyNmU0YmJjYjRlNzEzYzljZGQxMzRmNjVhY2FiNWIyYmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3Rv
cmUuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBMb25nTW91c2VQcmVz
c0RhdGFTdG9yZV9oCisjZGVmaW5lIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlX2gKKworI2luY2x1
ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNz
IEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK3N0cnVjdCBMb25nTW91c2VQcmVzc0RhdGFTdG9yZSB7CisgICAgdm9pZCBl
bmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBMb25nTW91c2VQcmVzc0RhdGFTdG9yZSYpOworCisg
ICAgU3RyaW5nIHVybFN0cmluZzsKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdpbjsKKyAg
ICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBzbmFwc2hvdDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gTG9uZ01vdXNlUHJlc3NTdG9yZV9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTE5Y2Y4ZWI4
YTI1YjhjZTFhYTI3NDYxMDdjMGFhYmE2NTUwNGVkZi4uNmZhZjE2MTdmOTk0OWYxMzE0YTU4ZmY2
ZGRjZTcxYWM5M2E1OTRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA5NSw2ICsxMDk1LDEwIEBACiAJCTkzOTFGMkNCMTIx
QjY3QUQwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxRjI4MzEyMUIzOEY1MDBFQkY3
RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovOyB9OwogCQk5MzlBRTc2NjEzMTZF
OTlDMDBBRTA2QTYgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUFFNzY1MTMxNkU5OUMwMEFFMDZBNiAv
KiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICovOyB9OwogCQk5M0JERUIwMTE3MUREN0FGMDBC
RkVFMUIgLyogV0tQYWdlTG9hZFR5cGVzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCREVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFn
ZUxvYWRUeXBlc1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk5QzRFNkI3MTE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3ND
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDlDNEU2QjZGMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIu
Y3BwICovOyB9OworCQk5QzRFNkI3MjE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3ND
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QzRFNkI3MDE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmgg
Ki87IH07CisJCTlDNEU2Qjc1MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGFT
dG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QzRFNkI3MzE5OEMwMjk4MDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3BwICov
OyB9OworCQk5QzRFNkI3NjE5OEMwMjk4MDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NEYXRhU3Rv
cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlDNEU2
Qjc0MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5oICovOyB9Owog
CQk5RjU0Rjg4RjE2NDg4RTg3MDA3REY4MUEgLyogQ2hpbGRQcm9jZXNzTWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUY1NEY4OEUxNjQ4OEU4NzAw
N0RGODFBIC8qIENoaWxkUHJvY2Vzc01hYy5tbSAqLzsgfTsKIAkJOUY1NEY4OTUxNjQ4QUUwRjAw
N0RGODFBIC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUY1NEY4OTQxNjQ4QUUwRTAwN0RGODFBIC8qIFBs
dWdpblByb2Nlc3NNYW5hZ2VyTWFjLm1tICovOyB9OwogCQk5RkI1RjM5NDE2OUU2QTgwMDAyQzI1
QkYgLyogV0tDb250ZXh0UHJpdmF0ZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlGQjVGMzkyMTY5RTZBODAwMDJDMjVCRiAvKiBXS0NvbnRleHRQ
cml2YXRlTWFjLm1tICovOyB9OwpAQCAtMzE0OSw2ICszMTUzLDEwIEBACiAJCTkzOTFGMjg0MTIx
QjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5QUU3NjUxMzE2RTk5QzAwQUUwNkE2
IC8qIFdlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0JERUIwMDE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5cGVzUHJp
dmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VMb2FkVHlwZXNQ
cml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlDNEU2QjZGMTk4QzAwNTEw
MDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUM0RTZCNzAxOThDMDA1MTAwODc2NTVBIC8qIExvbmdN
b3VzZVByZXNzQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBM
b25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OUM0RTZCNzMxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExvbmdNb3VzZVByZXNzRGF0YVN0
b3JlLmNwcDsgcGF0aCA9IFNoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGFTdG9yZS5jcHA7IHNvdXJj
ZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJOUM0RTZCNzQxOThDMDI5ODAwODc2NTVBIC8qIExv
bmdNb3VzZVByZXNzRGF0YVN0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmg7IHBhdGggPSBTaGFyZWQvTG9uZ01vdXNlUHJlc3NE
YXRhU3RvcmUuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk5RjU0Rjg4RTE2NDg4
RTg3MDA3REY4MUEgLyogQ2hpbGRQcm9jZXNzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gQ2hpbGRQcm9jZXNzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5RjU0Rjg5NDE2NDhBRTBFMDA3REY4MUEgLyogUGx1Z2luUHJvY2Vzc01hbmFn
ZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbHVnaW5Q
cm9jZXNzTWFuYWdlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUZCNUYz
OTIxNjlFNkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4dFByaXZhdGVNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0NvbnRleHRQcml2YXRlTWFjLm1tOyBwYXRo
ID0gbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC00NDIzLDYgKzQ0MzEsOCBAQAogCQkJCUM1OENERjJDMTg4NzYwOUYwMDg3MTUzNiAvKiBJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oICovLAogCQkJCTFBOTJEQzEyMTJGOEJB
QjkwMDE3QUY2NSAvKiBMYXllclRyZWVDb250ZXh0LmNwcCAqLywKIAkJCQkxQTkyREMxMDEyRjhC
QTQ2MDAxN0FGNjUgLyogTGF5ZXJUcmVlQ29udGV4dC5oICovLAorCQkJCTlDNEU2QjczMTk4QzAy
OTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5jcHAgKi8sCisJCQkJOUM0RTZC
NzQxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmggKi8sCiAJCQkJ
QkNCMEFFRTgxMjJGNTNFMzAwQjEzNDFFIC8qIE11dGFibGVEaWN0aW9uYXJ5LmNwcCAqLywKIAkJ
CQlCQ0IwQUVFNzEyMkY1M0UzMDBCMTM0MUUgLyogTXV0YWJsZURpY3Rpb25hcnkuaCAqLywKIAkJ
CQkxQURDQjg2ODE4OTgzMUIzMDAyMkVFNUEgLyogTmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwICov
LApAQCAtNTcwMyw2ICs1NzEzLDggQEAKIAkJQkMwMzJENUUxMEY0MzcyQjAwNThDMTVBIC8qIFdl
YlBhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTlD
NEU2QjZGMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwICov
LAorCQkJCTlDNEU2QjcwMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIuaCAqLywKIAkJCQkyRDI5RUNDRDE5MkYyQzJFMDA5ODRCNzggLyogQ29jb2EgKi8sCiAJCQkJ
MkRBOTQ0QjQxODg0RUEyQTAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQlCQzk2M0Q2QzExM0REMTk1
MDA1NzRCRTIgLyogbWFjICovLApAQCAtNzE2Miw2ICs3MTc0LDcgQEAKIAkJCQkxQUJDM0RGQzE4
OTlGNTFDMDA0RjA2MjYgLyogV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBRTUyRjkyMTkyMDFEQTcwMEExRkEzNyAvKiBBUElDb250ZXh0Q29uZmlndXJhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzNjFENzMxOTI3RkEzNjAwMzZBNTlEIC8qIFdlYlNjcmlw
dE1lc3NhZ2VIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QzRFNkI3MjE5OEMwMDUxMDA4
NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
MTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRDE0MEVCMDE4RjM3QkUwMDA1RTc1QTAgLyogUGFnZU92ZXJsYXlDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzE3NzUzRjExOEJBQkYwMDA3RDlFOUEgLyogR2VuZXJpY0Nh
bGxiYWNrLmggaW4gSGVhZGVycyAqLywKQEAgLTc0ODQsNiArNzQ5Nyw3IEBACiAJCQkJMkQ4NzEw
MTcxODI4NDE1RDAwMThGQTAxIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUEzREQyMDIxMjVFNUExRjAwNDUxNUU2IC8qIFdlYkZpbmRDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBOTBDMUVFMTI2NEZENTAwMDNFNDRENCAvKiBXZWJGaW5k
T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUM0RTZCNzYxOThDMDI5ODAwODc2NTVBIC8q
IExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0Njk1NDEy
MTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNF
NDY5NTYxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzVBOEQyRDcxODdEMzAzQTAwQzM5QzlFIC8qIFdLU2Vzc2lv
blJlZi5oIGluIEhlYWRlcnMgKi8sCkBAIC04NzQ2LDYgKzg3NjAsNyBAQAogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAogCQkJCTUxRTM1MjAwMTgwRjVEMEYw
MEU1M0JFOSAvKiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJOUM0RTZCNzUxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0
b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1QThEMkUyMTg3REVDMUUwMEMzOUM5RSAvKiBB
UElTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RDc5MkQ2MTc2N0NCNkUwMDg4MUNC
RSAvKiBBY3Rpdml0eUFzc2VydGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNjM0MDNGOTE0
OTEwRDU3MDAxMDcwQjUgLyogQVBJT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTMxNiw2
ICs5MzMxLDcgQEAKIAkJCQkxQUM3NTM3RjE4M0JFNTBGMDA3MkNCMTUgLyogRGF0YVJlZmVyZW5j
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkNCNEU0NzE4QkJFMDQ0MDAwRkNGQzkgLyogUGFn
ZUNsaWVudEltcGxJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTJFMzRFNDEzMEI0RDA1MDBB
QkQxOUEgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk5QzRFNkI3MTE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxQzk2MTE4MTgzRDI5NDcwMEQyMDAyRSAvKiBXZWJJREJT
ZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
NDA3NUYzMTI0RkYwMjcwMDY4RjIwQSAvKiBXS0FycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUExMThBOUYyMTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMTMyNjRkYjVmYmUzYTQ1
MjFmNWYzZTY5YmE3ZDY0OGMxODFhNzlmNC4uZDU5NWQ5NDQ0Y2U1NGRjNGZhNDllMzIyMTM2MGE0
ODM1ZWI4Yzc3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtODMsNiArODMsOCBAQAog
I2luY2x1ZGUgIlByaW50ZXJMaXN0R3RrLmgiCiAjZW5kaWYKIAorI2ltcG9ydCA8V2ViQ29yZS9F
bGVtZW50Lmg+CisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIApAQCAtNjAzLDYgKzYwNSwyNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6bW91
c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsdAog
ICAgIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEgd2ViSGl0VGVzdFJlc3VsdERhdGEoaGl0VGVzdFJl
c3VsdCk7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Ok1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50KHdlYkhpdFRlc3RSZXN1bHREYXRhLCBtb2RpZmllckZsYWdzLCBJbmpl
Y3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpKTsKIH0KKyAgICAK
KyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRC
ZWdpbkxvbmdNb3VzZVByZXNzKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBtb3VzZUxvY2F0aW9u
KSBjb25zdAoreworICAgIG1fcGFnZS0+bG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKCkuZGlkQmVn
aW5Mb25nTW91c2VQcmVzcyhtb3VzZUxvY2F0aW9uKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCkgY29uc3QKK3sKKyAgICBtX3BhZ2UtPmxv
bmdNb3VzZVByZXNzQ29udHJvbGxlcigpLmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7Cit9
CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcygpIGNvbnN0
Cit7CisgICAgbV9wYWdlLT5sb25nTW91c2VQcmVzc0NvbnRyb2xsZXIoKS5kaWRDYW5jZWxMb25n
TW91c2VQcmVzcygpOworfQorI2VuZGlmCisKIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRv
b2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGlyZWN0aW9uKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKaW5kZXggZGQxNjJmY2FkYzdhZjQ5NTZmNzdjMTk0Yjk0YjM4YTIyNmY3OWFjMi4u
MmUzYjk2NDM5MjQyNDkzNTJjMDBiYWQyMGYyZjM4MzAxMmJhMmVlYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCkBAIC0xMzEsNiArMTMxLDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNj
cm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1
bnNpZ25lZCBtb2RpZmllckZsYWdzKSBvdmVycmlkZTsKICAgICAKKyNpZiBFTkFCTEUoTE9OR19N
T1VTRV9QUkVTUykKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaWRDYW5jZWxMb25nTW91c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRlOworI2VuZGlmCisg
ICAgCiAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6
VGV4dERpcmVjdGlvbikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHByaW50KFdl
YkNvcmU6OkZyYW1lKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQwYzg4ZDYzOTM4ZTg4ZWM0NGNkOTg2NTVkNmI4NmQ0ODJmYzBkMTQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJl
c3NDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJM
RShMT05HX01PVVNFX1BSRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9u
Z01vdXNlUHJlc3NDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI6OkxvbmdNb3Vz
ZVByZXNzQ29udHJvbGxlcihXZWJQYWdlKiB3ZWJQYWdlKQoreworfQorCit2b2lkIExvbmdNb3Vz
ZVByZXNzQ29udHJvbGxlcjo6ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgbW91c2VQb3MpCit7CisgICAgLy8gRklYTUU6IEdlbmVyYXRlIGRhdGEgc3RvcmUg
ZnJvbSBsb2NhdGlvbi4KKworICAgIC8vIEZJWE1FOiBOb3RpZnkgY2xpZW50IG9mIGxvbmcgbW91
c2UgcHJlc3MgZXZlbnQuCit9CisKK3ZvaWQgTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyOjpkaWRS
ZWNvZ25pemVMb25nTW91c2VQcmVzcygpCit7CisgICAgLy8gRklYTUU6IE5vdGlmeSBjbGllbnQg
b2YgbG9uZyBtb3VzZSBwcmVzcyBldmVudC4KK30KKwordm9pZCBMb25nTW91c2VQcmVzc0NvbnRy
b2xsZXI6OmRpZENhbmNlbExvbmdNb3VzZVByZXNzKCkKK3sKKyAgICAvLyBGSVhNRTogTm90aWZ5
IGNsaWVudCBvZiBsb25nIG1vdXNlIHByZXNzIGV2ZW50LgorfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29udHJvbGxl
ci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29u
dHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2NDE3NzdmMjE3MDJjZGVhM2M1ZTE3ZGZkMDQwNmZhNjU2
YjJiNmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKworI2lmbmRlZiBMb25nTW91c2VQcmVz
c0NvbnRyb2xsZXJfaAorI2RlZmluZSBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXJfaAorCisjaW5j
bHVkZSAiTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFi
bGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIExv
bmdNb3VzZVByZXNzQ29udHJvbGxlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9uZ01v
dXNlUHJlc3NDb250cm9sbGVyKTsKKworcHVibGljOgorICAgIGV4cGxpY2l0IExvbmdNb3VzZVBy
ZXNzQ29udHJvbGxlcihXZWJQYWdlKik7CisKKyAgICB2b2lkIGRpZEJlZ2luTG9uZ01vdXNlUHJl
c3MoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKKyAgICB2b2lkIGRpZFJlY29nbml6ZUxvbmdN
b3VzZVByZXNzKCk7CisgICAgdm9pZCBkaWRDYW5jZWxMb25nTW91c2VQcmVzcygpOworCitwcml2
YXRlOgorICAgIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlIG1fZGF0YVN0b3JlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXJf
aAorCisjZW5kaWYgLy8gRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMDk2Zjc0MTZmNGUzNDBjNmZh
YzA0ODExYzMyMDgyZDU2YjMxODM0Ny4uMWQ2NGNmMTEyYTMwZGFmNDVjODNiNGY1OTA3MWNkMDZj
NTY2ZjM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtMjA1LDYgKzIwNSwxMCBAQAogI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdE1lc3NhZ2VzLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQor
I2luY2x1ZGUgIkxvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oIgorI2VuZGlmCisKIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTI4NCw2ICsxMjg4
LDE2IEBAIHZvaWQgV2ViUGFnZTo6c2Nyb2xsTWFpbkZyYW1lSWZOb3RBdE1heFNjcm9sbFBvc2l0
aW9uKGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNlCiAgICAgZnJhbWVWaWV3LT5zZXRTY3JvbGxQ
b3NpdGlvbihmcmFtZVZpZXctPnNjcm9sbFBvc2l0aW9uKCkgKyBuZXdTY3JvbGxPZmZzZXQpOwog
fQogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCitMb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXImIFdlYlBhZ2U6OmxvbmdNb3VzZVByZXNzQ29udHJvbGxlcigpCit7CisgICAgaWYgKCFtX2xv
bmdNb3VzZVByZXNzQ29udHJvbGxlcikKKyAgICAgICAgbV9sb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPExvbmdNb3VzZVByZXNzQ29udHJvbGxlcj4odGhpcyk7CisK
KyAgICByZXR1cm4gKm1fbG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmdldCgpOworfQorI2VuZGlm
CisKIHZvaWQgV2ViUGFnZTo6ZHJhd1JlY3QoR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRl
eHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZl
ciBzdGF0ZVNhdmVyKGdyYXBoaWNzQ29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA2Y2RmNzBhYjkyZWFmOWRiYTU0YjdmNzJiNTYyOTAx
MDU4ZTE1OTFhLi41ZjlkMWQxMDUyNzgzNjY4YjFlZWQ4MTkxZDJiNzA4MzhkNTYxZmUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwMyw2ICsx
MDMsMTAgQEAgT0JKQ19DTEFTUyBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0OwogI2RlZmlu
ZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElDIDEKICNlbmRpZgog
CisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisjaW5jbHVkZSAiTG9uZ01vdXNlUHJlc3ND
b250cm9sbGVyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBBcnJheTsKIH0K
QEAgLTE4Myw2ICsxODcsMTAgQEAgY2xhc3MgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247CiBj
bGFzcyBXZWJUb3VjaEV2ZW50OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVT
UykKK2NsYXNzIExvbmdNb3VzZVByZXNzQ29udHJvbGxlcjsKKyNlbmRpZgorCiBjbGFzcyBXZWJQ
YWdlIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlUGFn
ZT4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRl
ciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUGFnZT4gY3JlYXRlKHVpbnQ2
NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwpAQCAtMjM4LDYg
KzI0NiwxMCBAQCBwdWJsaWM6CiAgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXIqIGZ1bGxTY3JlZW5N
YW5hZ2VyKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorICAgIExv
bmdNb3VzZVByZXNzQ29udHJvbGxlciYgbG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKCk7CisjZW5k
aWYKKwogICAgIC8vIC0tIENhbGxlZCBieSB0aGUgRHJhd2luZ0FyZWEuCiAgICAgLy8gRklYTUU6
IFdlIGNvdWxkIGdlbmVyaWNpemUgdGhlc2UgaW50byBhIERyYXdpbmdBcmVhIGNsaWVudCBpbnRl
cmZhY2UuIFdvdWxkIHRoYXQgYmUgYmVuZWZpY2lhbD8KICAgICB2b2lkIGRyYXdSZWN0KFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKQEAgLTExNjQs
NiArMTE3NiwxMCBAQCBwcml2YXRlOgogCiAgICAgRmluZENvbnRyb2xsZXIgbV9maW5kQ29udHJv
bGxlcjsKIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorICAgIHN0ZDo6dW5pcXVlX3B0
cjxMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI+IG1fbG9uZ01vdXNlUHJlc3NDb250cm9sbGVyOwor
I2VuZGlmCisKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIFJlZlB0cjxXZWJJbnNwZWN0b3I+
IG1faW5zcGVjdG9yOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236113</attachid>
            <date>2014-08-06 10:52:14 -0700</date>
            <delta_ts>2014-08-07 17:57:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135515-20140806105202.patch</filename>
            <type>text/plain</type>
            <size>33232</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyMTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhkMjRhMmE2YzMxNjZh
NTM4YjczMDEwNzJkNDQ2ZTg0OGM3NTUwZC4uZDQ1MjNlZDE4NTBlMzI1MTJjZTU0MmRkMmM1MzMx
MjhkNzBkOGM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTA4LTA2ICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCisgICAgICAgIFRlbGwgdGhlIENo
cm9tZSBjbGllbnQgYWJvdXQgbG9uZyBtb3VzZSBwcmVzcyBldmVudHMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU1MTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAg
ICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIE92ZXJyaWRlIGxvbmcgbW91c2Ug
cHJlc3MgbWV0aG9kcyBpbiBFbXB0eUNocm9tZUNsaWVudC4KKyAgICAgICAgKiBwYWdlL0Nocm9t
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmRpZEJlZ2luTG9uZ01vdXNlUHJlc3Mp
OiBBZGRlZC4gU2VuZCBsb25nIG1vdXNlIHByZXNzIGV2ZW50IHRvIHRoZSBDaHJvbWUgY2xpZW50
LgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpkaWRDYW5jZWxMb25nTW91c2VQcmVz
cyk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6IEFkZCBsb25nIG1vdXNlIHByZXNz
IGxpZmVjeWNsZSBtZXRob2RzLgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6IERpdHRv
LgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyk6IFRlbGwgQ2hyb21lIGFib3V0IHRo
ZSBsb25nIG1vdXNlIHByZXNzIGV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERpdHRvLgorCiAyMDE0LTA4
LTA2ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBRdWlj
a0xvb2sgcmV0dXJucyBhbiBpbnZhbGlkIE1JTUUgdHlwZSBmb3Igc29tZSBkb2N1bWVudHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwppbmRleCA0YWM2MjRlYTViYmViOWU1YzVlNWU1ZDI0MWM1MWYxYmNjYjMzZGQx
Li4wMzE0ZTcyMTE4YWNkZTFjNDQ2Y2EzMzg1ZTYyODQ2MzgxODEwZDMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMDgtMDYgIFBleXRvbiBSYW5kb2xwaCAgPHByYW5k
b2xwaEBhcHBsZS5jb20+CisKKyAgICAgICAgUGFzcyBsb25nIG1vdXNlIHByZXNzIGV2ZW50IHVw
IHRvIHRoZSB3ZWIgcGFnZS4gCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzU1MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICBP
dmVycmlkZSBsb25nIG1vdXNlIHByZXNzIGxpZmVjeWNsZSBtZXRob2RzLgorCiAyMDE0LTA4LTA1
ICBQZXl0b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFt
ZSBNQUNfTE9OR19QUkVTUyBmZWF0dXJlIGZsYWcgdG8gTE9OR19NT1VTRV9QUkVTUy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBmNDUwYWJmOTIzMTUwOTJmYWMzMmRkN2U2ZDlmNGQ5M2ZiOWMxYWQyLi42YTUwNDgy
M2JiNzBkNGVmMTdiNTIzMGI1YmVmNzVmMmUwNTg2MDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDEgQEAKKzIwMTQtMDgtMDYgIFBleXRvbiBSYW5kb2xwaCAgPHByYW5kb2xwaEBhcHBsZS5jb20+
CisKKyAgICAgICAgQ3JlYXRlIHN0dWIgbG9uZyBtb3VzZSBwcmVzcyBjb250cm9sbGVyLiBQYXJ0
IG9mIDEzNTI1NyAtIEFkZCBsb25nIG1vdXNlIHByZXNzIGdlc3R1cmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTUxNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyB0
d28gbmV3IGNsYXNzZXMsIExvbmdNb3VzZVByZXNzQ29udHJvbGxlciBhbmQgTG9uZ01vdXNlUHJl
c3NEYXRhU3RvcmUuIEl0IGFsc28KKyAgICAgICAgcHJvdmlkZXMgdGhlIG5lY2Vzc2FyeSBjYWxs
aW5nIGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2Vz
LnB5OgorICAgICAgICAoc3RydWN0X29yX2NsYXNzKTogTWFyayBMb25nTW91c2VQcmVzc0RhdGEg
YXMgYSBzdHJ1Y3Qgc28gaXQgcGxheXMgbmljZWx5IHdpdGggb3VyIElQQy4KKyAgICAgICAgKiBT
aGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6TG9uZ01vdXNlUHJlc3NEYXRhU3RvcmU6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6Okxv
bmdNb3VzZVByZXNzRGF0YVN0b3JlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Mb25nTW91
c2VQcmVzc0RhdGFTdG9yZS5oOiBBZGRlZC4gRW5jYXBzdWxhdGUgaW5mb3JtYXRpb24gbmVlZGVk
IGJ5IHRoZSBjbGllbnQgZm9yIHRoZSBsb25nCisgICAgICAgIHByZXNzLCBsaWtlIGEgc25hcHNo
b3Qgb2YgdGhlIGxvbmctcHJlc3NlZCBpdGVtLCBhbiBhc3NvY2lhdGVkIFVSTCwgYW5kIGV2ZW50
dWFsbHkgYXNzb2NpYXRlZCB0ZXh0LAorICAgICAgICBldGMuCisgICAgICAgICogV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIg
YW5kIExvbmdNb3VzZVByZXNzRGF0YS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyk6IEFkZGVkLiBUZWxsIHRoZSBsb25nIG1vdXNlIHBy
ZXNzIGNvbnRyb2xsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkUmVj
b2duaXplTG9uZ01vdXNlUHJlc3MpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI6OkxvbmdNb3VzZVByZXNzQ29udHJv
bGxlcik6CisgICAgICAgIChXZWJLaXQ6OkxvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6ZGlkQmVn
aW5Mb25nTW91c2VQcmVzcyk6IEFkZGVkIHN0dWIuIEluIGEgZnV0dXJlIHBhdGNoLCB0aGlzIG1l
dGhvZCAKKyAgICAgICAgd2lsbCBnZW5lcmF0ZSBhIExvbmdNb3VzZVByZXNzRGF0YSBmb3IgdGhl
IGxvbmctcHJlc3NlZCBwb2ludCBhbmQgd2lsbCBzZW5kIHRoYXQgaW5mb3JtYXRpb24gdG8gdGhl
IAorICAgICAgICB3ZWIgcGFnZSBwcm94eS4KKyAgICAgICAgKFdlYktpdDo6TG9uZ01vdXNlUHJl
c3NDb250cm9sbGVyOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IEFkZGVkIHN0dWIuIElu
IGEgZnV0dXJlIHBhdGNoLCB0aGlzIG1ldGhvZAorICAgICAgICB3aWxsIHNlbmQgdGhlIExvbmdN
b3VzZVByZXNzRGF0YVN0b3JlIHRvIHRoZSB3ZWIgcGFnZSBwcm94eS4KKyAgICAgICAgKFdlYktp
dDo6TG9uZ01vdXNlUHJlc3NDb250cm9sbGVyOjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERp
dHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOiBB
ZGRlZCBsb25nIG1vdXNlIHByZXNzIGNvbnRyb2xsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OldlYlBhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6IAor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb25nTW91c2VQcmVzc0NvbnRyb2xsZXIpOiBBZGRl
ZCBnZXR0ZXIuCisKIDIwMTQtMDgtMDYgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgc3VwcG9ydCBmb3IgdXNlciBzY3JpcHRz
IHRvIFdlYktpdFVzZXJDb250ZW50TWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oCmluZGV4IDY4NjcwYzc4YzM1MWZhMjdlMmEyMDI3Y2FjZDRkMTA1ZDY0MzgzNjYuLmJjOTQz
ODZmZTBhMjVjODNmY2JhMTI1MWJmNWYwOWYzNjZhZTFiZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKQEAgLTE0OSw2ICsxNDksMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0IG92ZXJyaWRlIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0Jiwg
dW5zaWduZWQpIG92ZXJyaWRlIHsgfQogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisg
ICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luTG9uZ01vdXNlUHJlc3MoY29uc3QgSW50UG9pbnQmKSBj
b25zdCBvdmVycmlkZSB7IH07CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3Vz
ZVByZXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyB9OworICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxM
b25nTW91c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRlIHsgfTsKKyNlbmRpZgorICAgIAogICAgIHZp
cnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rpb24pIG92ZXJy
aWRlIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lKikgb3ZlcnJpZGUgeyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggMGI1MmMyOTU4OGFhMWE5M2VhMTE3ZWQzYWM4NmJkNjBi
NmI5YWE1ZS4uYjliYzkyZTE4NDAyNzJlMWU3M2E5ZjQyOWUxMzYyMDMwZTM0OWNjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcApAQCAtMzk3LDYgKzM5NywyMyBAQCB2b2lkIENocm9tZTo6bW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNpZ25lZCBt
b2RpZgogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjptb3VzZURpZE1vdmVPdmVyRWxl
bWVudCgmbV9wYWdlLCByZXN1bHQsIG1vZGlmaWVyRmxhZ3MpOwogfQorICAgIAorI2lmIEVOQUJM
RShMT05HX01PVVNFX1BSRVNTKQordm9pZCBDaHJvbWU6OmRpZEJlZ2luTG9uZ01vdXNlUHJlc3Mo
Y29uc3QgSW50UG9pbnQmIG1vdXNlTG9jYXRpb24pCit7CisgICAgbV9jbGllbnQuZGlkQmVnaW5M
b25nTW91c2VQcmVzcyhtb3VzZUxvY2F0aW9uKTsKK30KKwordm9pZCBDaHJvbWU6OmRpZFJlY29n
bml6ZUxvbmdNb3VzZVByZXNzKCkKK3sKKyAgICBtX2NsaWVudC5kaWRSZWNvZ25pemVMb25nTW91
c2VQcmVzcygpOworfQorCit2b2lkIENocm9tZTo6ZGlkQ2FuY2VsTG9uZ01vdXNlUHJlc3MoKQor
eworICAgIG1fY2xpZW50LmRpZENhbmNlbExvbmdNb3VzZVByZXNzKCk7Cit9CisjZW5kaWYKIAog
dm9pZCBDaHJvbWU6OnNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmgKaW5kZXggYzJlOGVmMmIxMjFiM2MyZDZlOWI2NGUyNGUyNTY1OWJiZmMw
NWRiYy4uMjdlZjExYjE2ODI0MGI4N2MyNzYwMmNhZWU2NjBmMGVlNzllMTE0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZS5oCkBAIC0xNTEsNiArMTUxLDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVy
RmxhZ3MpOwogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdm9pZCBkaWRCZWdp
bkxvbmdNb3VzZVByZXNzKGNvbnN0IEludFBvaW50Jik7CisgICAgdm9pZCBkaWRSZWNvZ25pemVM
b25nTW91c2VQcmVzcygpOworICAgIHZvaWQgZGlkQ2FuY2VsTG9uZ01vdXNlUHJlc3MoKTsKKyNl
bmRpZgorICAgIAogICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBIaXRUZXN0UmVzdWx0Jik7CiAK
ICAgICB2b2lkIHByaW50KEZyYW1lKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRl
eCA1ZmJhMzgzMTllY2ZjYTgzZTMyNmQzODg2MmRhNWZiM2I4OTlmY2UwLi5mYTg0ZTdjN2U5MzU3
NTE1MWJhOTE3Y2YxMTIyYjkzZTRmMTI5MDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKQEAgLTE5NCw2ICsxOTQsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1bmF2YWls
YWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCosIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQ
bHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1v
dXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2Rp
ZmllckZsYWdzKSA9IDA7CiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbExvbmdNb3VzZVByZXNzKCkgY29uc3QgPSAw
OworI2VuZGlmCisgICAgCiAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5n
JiwgVGV4dERpcmVjdGlvbikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lKikg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGYzMTRlNGI5MDkyNmVm
ZGM5Yzk0ZjBiOTA1NmM5Nzk0ODZkNjZiYzYuLmUwZWZkMWE0OTAwZjZlMzRmMGJlNDRjYTIzNzNl
MDUzZDkzMzJhZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTE1NzIs
MTcgKzE1NzIsMjIgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmF1dG9IaWRlQ3Vyc29yVGltZXJGaXJl
ZChUaW1lcjxFdmVudEhhbmRsZXI+JiB0aW1lcikKICAgICAgICAgdmlldy0+c2V0Q3Vyc29yKG1f
Y3VycmVudE1vdXNlQ3Vyc29yKTsKIH0KICNlbmRpZgotICAgIAorCiAjaWYgRU5BQkxFKExPTkdf
TU9VU0VfUFJFU1MpCiB2b2lkIEV2ZW50SGFuZGxlcjo6YmVnaW5Mb25nTW91c2VQcmVzcygpCiB7
CiAgICAgY2xlYXJMb25nTW91c2VQcmVzc1N0YXRlKCk7Ci0gICAgCisKICAgICBtX2xvbmdNb3Vz
ZVByZXNzVGltZXIuc3RhcnRPbmVTaG90KGxvbmdNb3VzZVByZXNzRGVsYXkpOwotICAgIAotICAg
IC8vIEZJWE1FOiBidWJibGUgbG9uZyBtb3VzZSBwcmVzcyB1cCB0byB0aGUgY2xpZW50LgorCisg
ICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9sb25nTW91c2VQcmVzc1RpbWVyLnN0YXJ0T25lU2hvdChsb25nTW91
c2VQcmVzc0RlbGF5KTsKKyAgICBwYWdlLT5jaHJvbWUoKS5kaWRCZWdpbkxvbmdNb3VzZVByZXNz
KG1fbW91c2VEb3duUG9zKTsKIH0KLSAgICAKKwogdm9pZCBFdmVudEhhbmRsZXI6OnJlY29nbml6
ZUxvbmdNb3VzZVByZXNzKFRpbWVyPEV2ZW50SGFuZGxlcj4mIHRpbWVyKQogewogICAgIEFTU0VS
VF9VTlVTRUQodGltZXIsICZ0aW1lciA9PSAmbV9sb25nTW91c2VQcmVzc1RpbWVyKTsKQEAgLTE1
OTMsMTcgKzE1OTgsMjUgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnJlY29nbml6ZUxvbmdNb3VzZVBy
ZXNzKFRpbWVyPEV2ZW50SGFuZGxlcj4mIHRpbWVyKQogICAgIG1fbW91c2VQcmVzc2VkID0gZmFs
c2U7CiAgICAgaW52YWxpZGF0ZUNsaWNrKCk7CiAKLSAgICAvLyBGSVhNRTogYnViYmxlIGxvbmcg
bW91c2UgcHJlc3MgdXAgdG8gdGhlIGNsaWVudC4KKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS5w
YWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBwYWdlLT5jaHJv
bWUoKS5kaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpOwogfQotICAgIAorCiB2b2lkIEV2ZW50
SGFuZGxlcjo6Y2FuY2VsTG9uZ01vdXNlUHJlc3MoKQogewogICAgIGlmICghbV9sb25nTW91c2VQ
cmVzc1RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGNsZWFyTG9uZ01v
dXNlUHJlc3NTdGF0ZSgpOwotICAgIAotICAgIC8vIEZJWE1FOiBidWJibGUgbG9uZyBtb3VzZSBw
cmVzcyB1cCB0byB0aGUgY2xpZW50LgorCisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgp
OworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZS0+Y2hyb21lKCku
ZGlkQ2FuY2VsTG9uZ01vdXNlUHJlc3MoKTsKIH0KIAogdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFy
TG9uZ01vdXNlUHJlc3NTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGNhODVhZjFkNGUyZWNkNmE1NmFlZmNhMjlk
OTE1MzZiNzhiYzU1MmUuLmJhYWUxNDIwY2U4NmY0NjcwNmM5MTRkMzcyZGE3OWJmNDg2OTU0YmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCkBAIC0xMTYsNiArMTE2LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdW5h
dmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpS
ZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBX
ZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgb3ZlcnJpZGU7
CiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVn
aW5Mb25nTW91c2VQcmVzcyhjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxMb25nTW91c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRl
OworI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0cmlu
ZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lk
IHByaW50KFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRz
L3dlYmtpdDIvbWVzc2FnZXMucHkKaW5kZXggYmMwNTJiOGM4NTk2MWYxNjE3M2FiODljYWU3ZWI1
YjdhZjhmNWM2ZC4uMjZmOTJhZTg2YTNjZTA4ZWFiZWNmYjc2ODBkNDJjZmY3N2Q4YTI4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQpAQCAtMjAyLDYgKzIw
Miw3IEBAIGRlZiBzdHJ1Y3Rfb3JfY2xhc3MobmFtZXNwYWNlLCB0eXBlKToKICAgICAgICAgJ1dl
YktpdDo6RWRpdGluZ1JhbmdlJywKICAgICAgICAgJ1dlYktpdDo6RWRpdG9yU3RhdGUnLAogICAg
ICAgICAnV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbicsCisgICAgICAg
ICdXZWJLaXQ6OkxvbmdNb3VzZVByZXNzRGF0YVN0b3JlJywKICAgICAgICAgJ1dlYktpdDo6TmF2
aWdhdGlvbkFjdGlvbkRhdGEnLAogICAgICAgICAnV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycycsCiAgICAgICAgICdXZWJLaXQ6OlBhZ2VTdGF0ZScsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xZGE5ZjQ4NWU1MGZjN2YwMDAzYjg5MjUyMDFlYTJjYmVhZjJkOWU1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcApA
QCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkxvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmgiCisKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgTG9uZ01vdXNlUHJlc3NE
YXRhU3RvcmU6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBzbmFwc2hvdEhhbmRsZTsKKyAgICBpZiAoc25h
cHNob3QpCisgICAgICAgIHNuYXBzaG90LT5jcmVhdGVIYW5kbGUoc25hcHNob3RIYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UmVhZE9ubHkpOworCisgICAgZW5jb2RlciA8PCBzbmFwc2hvdEhhbmRsZTsK
KyAgICBlbmNvZGVyIDw8IHNuYXBzaG90T3JpZ2luOworICAgIGVuY29kZXIgPDwgdXJsU3RyaW5n
OworfQorCitib29sIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlOjpkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlJiByZXN1bHQpCit7Cisg
ICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgc25hcHNob3RIYW5kbGU7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShzbmFwc2hvdEhhbmRsZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGlmICghc25hcHNob3RIYW5kbGUuaXNOdWxsKCkpCisgICAgICAgIHJlc3VsdC5zbmFwc2hvdCA9
IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKHNuYXBzaG90SGFuZGxlLCBTaGFyZWRNZW1vcnk6OlJl
YWRPbmx5KTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNuYXBzaG90T3JpZ2lu
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQudXJsU3RyaW5nKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzg2Y2U3YmFiY2I3MGU5MGMy
NGM3NjQ0MTNjYTUyMDZjMzNjNTZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmVfaAorI2RlZmluZSBMb25nTW91
c2VQcmVzc0RhdGFTdG9yZV9oCisKKyNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBBcmd1
bWVudEVuY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgTG9uZ01vdXNl
UHJlc3NEYXRhU3RvcmUgeworICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikg
Y29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgTG9u
Z01vdXNlUHJlc3NEYXRhU3RvcmUmKTsKKworICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IHNu
YXBzaG90OworICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgc25hcHNob3RPcmlnaW47CisgICAgU3Ry
aW5nIHVybFN0cmluZzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
TG9uZ01vdXNlUHJlc3NTdG9yZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTE5Y2Y4ZWI4YTI1YjhjZTFhYTI3NDYxMDdjMGFh
YmE2NTUwNGVkZi4uNmZhZjE2MTdmOTk0OWYxMzE0YTU4ZmY2ZGRjZTcxYWM5M2E1OTRlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTA5NSw2ICsxMDk1LDEwIEBACiAJCTkzOTFGMkNCMTIxQjY3QUQwMEVCRjdFOCAvKiBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oICovOyB9OwogCQk5MzlBRTc2NjEzMTZFOTlDMDBBRTA2QTYgLyogV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzOUFFNzY1MTMxNkU5OUMwMEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwICovOyB9OwogCQk5M0JERUIwMTE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5
cGVzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNCREVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5QzRFNkI3
MTE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlDNEU2QjZGMTk4QzAwNTEw
MDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwICovOyB9OworCQk5QzRFNkI3
MjE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QzRFNkI3MDE5OEMwMDUxMDA4
NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmggKi87IH07CisJCTlDNEU2Qjc1MTk4
QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QzRFNkI3MzE5OEMwMjk4MDA4NzY1
NUEgLyogTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3BwICovOyB9OworCQk5QzRFNkI3NjE5OEMw
Mjk4MDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlDNEU2Qjc0MTk4QzAyOTgwMDg3NjU1QSAv
KiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5oICovOyB9OwogCQk5RjU0Rjg4RjE2NDg4RTg3MDA3
REY4MUEgLyogQ2hpbGRQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUY1NEY4OEUxNjQ4OEU4NzAwN0RGODFBIC8qIENoaWxkUHJvY2Vz
c01hYy5tbSAqLzsgfTsKIAkJOUY1NEY4OTUxNjQ4QUUwRjAwN0RGODFBIC8qIFBsdWdpblByb2Nl
c3NNYW5hZ2VyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUY1NEY4OTQxNjQ4QUUwRTAwN0RGODFBIC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyTWFj
Lm1tICovOyB9OwogCQk5RkI1RjM5NDE2OUU2QTgwMDAyQzI1QkYgLyogV0tDb250ZXh0UHJpdmF0
ZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlG
QjVGMzkyMTY5RTZBODAwMDJDMjVCRiAvKiBXS0NvbnRleHRQcml2YXRlTWFjLm1tICovOyB9OwpA
QCAtMzE0OSw2ICszMTUzLDEwIEBACiAJCTkzOTFGMjg0MTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM5QUU3NjUxMzE2RTk5QzAwQUUwNkE2IC8qIFdlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JERUIwMDE3
MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5cGVzUHJpdmF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTlDNEU2QjZGMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91c2VQ
cmVzc0NvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOUM0RTZCNzAxOThDMDA1MTAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzQ29udHJvbGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUM0RTZCNzMxOThDMDI5ODAwODc2
NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcDsgcGF0aCA9IFNoYXJl
ZC9Mb25nTW91c2VQcmVzc0RhdGFTdG9yZS5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsg
fTsKKwkJOUM0RTZCNzQxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0b3Jl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExvbmdNb3VzZVByZXNzRGF0YVN0
b3JlLmg7IHBhdGggPSBTaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaDsgc291cmNlVHJl
ZSA9IFNPVVJDRV9ST09UOyB9OwogCQk5RjU0Rjg4RTE2NDg4RTg3MDA3REY4MUEgLyogQ2hpbGRQ
cm9jZXNzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ2hp
bGRQcm9jZXNzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjU0Rjg5NDE2
NDhBRTBFMDA3REY4MUEgLyogUGx1Z2luUHJvY2Vzc01hbmFnZXJNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUZCNUYzOTIxNjlFNkE4MDAwMkMyNUJGIC8q
IFdLQ29udGV4dFByaXZhdGVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBXS0NvbnRleHRQcml2YXRlTWFjLm1tOyBwYXRoID0gbWFjL1dLQ29udGV4dFByaXZh
dGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NDIzLDYgKzQ0MzEsOCBA
QAogCQkJCUM1OENERjJDMTg4NzYwOUYwMDg3MTUzNiAvKiBJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbi5oICovLAogCQkJCTFBOTJEQzEyMTJGOEJBQjkwMDE3QUY2NSAvKiBMYXllclRy
ZWVDb250ZXh0LmNwcCAqLywKIAkJCQkxQTkyREMxMDEyRjhCQTQ2MDAxN0FGNjUgLyogTGF5ZXJU
cmVlQ29udGV4dC5oICovLAorCQkJCTlDNEU2QjczMTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91
c2VQcmVzc0RhdGFTdG9yZS5jcHAgKi8sCisJCQkJOUM0RTZCNzQxOThDMDI5ODAwODc2NTVBIC8q
IExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmggKi8sCiAJCQkJQkNCMEFFRTgxMjJGNTNFMzAwQjEz
NDFFIC8qIE11dGFibGVEaWN0aW9uYXJ5LmNwcCAqLywKIAkJCQlCQ0IwQUVFNzEyMkY1M0UzMDBC
MTM0MUUgLyogTXV0YWJsZURpY3Rpb25hcnkuaCAqLywKIAkJCQkxQURDQjg2ODE4OTgzMUIzMDAy
MkVFNUEgLyogTmF2aWdhdGlvbkFjdGlvbkRhdGEuY3BwICovLApAQCAtNTcwMyw2ICs1NzEzLDgg
QEAKIAkJQkMwMzJENUUxMEY0MzcyQjAwNThDMTVBIC8qIFdlYlBhZ2UgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTlDNEU2QjZGMTk4QzAwNTEwMDg3NjU1
QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwICovLAorCQkJCTlDNEU2QjcwMTk4QzAw
NTEwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCAqLywKIAkJCQkyRDI5RUND
RDE5MkYyQzJFMDA5ODRCNzggLyogQ29jb2EgKi8sCiAJCQkJMkRBOTQ0QjQxODg0RUEyQTAwRUQ4
NkRCIC8qIGlvcyAqLywKIAkJCQlCQzk2M0Q2QzExM0REMTk1MDA1NzRCRTIgLyogbWFjICovLApA
QCAtNzE2Miw2ICs3MTc0LDcgQEAKIAkJCQkxQUJDM0RGQzE4OTlGNTFDMDA0RjA2MjYgLyogV0tO
YXZpZ2F0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTUyRjkyMTkyMDFEQTcw
MEExRkEzNyAvKiBBUElDb250ZXh0Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0MzNjFENzMxOTI3RkEzNjAwMzZBNTlEIC8qIFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5QzRFNkI3MjE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJl
c3NDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3
QTggLyogRWRpdGluZ1JhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDE0MEVCMDE4RjM3QkUw
MDA1RTc1QTAgLyogUGFnZU92ZXJsYXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzE3NzUzRjExOEJBQkYwMDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKQEAgLTc0ODQsNiArNzQ5Nyw3IEBACiAJCQkJMkQ4NzEwMTcxODI4NDE1RDAwMThGQTAxIC8q
IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEzREQy
MDIxMjVFNUExRjAwNDUxNUU2IC8qIFdlYkZpbmRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOTBDMUVFMTI2NEZENTAwMDNFNDRENCAvKiBXZWJGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOUM0RTZCNzYxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0
b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0Njk1NDEyMTRFNkNCMDAwQjk4RUIgLyogV2Vi
Rm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTYxMjE0RTZDQjAwMEI5OEVC
IC8qIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NzVBOEQyRDcxODdEMzAzQTAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5oIGluIEhlYWRlcnMgKi8s
CkBAIC04NzQ2LDYgKzg3NjAsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
IAkJCWZpbGVzID0gKAogCQkJCTUxRTM1MjAwMTgwRjVEMEYwMEU1M0JFOSAvKiBEYXRhYmFzZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOUM0RTZCNzUxOThD
MDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTc1QThEMkUyMTg3REVDMUUwMEMzOUM5RSAvKiBBUElTZXNzaW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE3RDc5MkQ2MTc2N0NCNkUwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNjM0MDNGOTE0OTEwRDU3MDAxMDcwQjUgLyogQVBJ
T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTMxNiw2ICs5MzMxLDcgQEAKIAkJCQkxQUM3
NTM3RjE4M0JFNTBGMDA3MkNCMTUgLyogRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkNCNEU0NzE4QkJFMDQ0MDAwRkNGQzkgLyogUGFnZUNsaWVudEltcGxJT1MubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1MTJFMzRFNDEzMEI0RDA1MDBBQkQxOUEgLyogV0tBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5QzRFNkI3MTE5OEMwMDUxMDA4
NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxQzk2MTE4MTgzRDI5NDcwMEQyMDAyRSAvKiBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NUYzMTI0RkYwMjcwMDY4RjIw
QSAvKiBXS0FycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExMThBOUYyMTkwOEI4RUEwMEY3
QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKaW5kZXggMTMyNjRkYjVmYmUzYTQ1MjFmNWYzZTY5YmE3ZDY0OGMxODFh
NzlmNC4uZDU5NWQ5NDQ0Y2U1NGRjNGZhNDllMzIyMTM2MGE0ODM1ZWI4Yzc3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcApAQCAtODMsNiArODMsOCBAQAogI2luY2x1ZGUgIlByaW50ZXJMaXN0
R3RrLmgiCiAjZW5kaWYKIAorI2ltcG9ydCA8V2ViQ29yZS9FbGVtZW50Lmg+CisKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIApAQCAtNjAzLDYg
KzYwNSwyNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQo
Y29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsdAogICAgIFdlYkhpdFRlc3RSZXN1bHQ6
OkRhdGEgd2ViSGl0VGVzdFJlc3VsdERhdGEoaGl0VGVzdFJlc3VsdCk7CiAgICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Ok1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KHdlYkhp
dFRlc3RSZXN1bHREYXRhLCBtb2RpZmllckZsYWdzLCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdl
RW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpKTsKIH0KKyAgICAKKyNpZiBFTkFCTEUoTE9OR19NT1VT
RV9QUkVTUykKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRCZWdpbkxvbmdNb3VzZVByZXNzKGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JiBtb3VzZUxvY2F0aW9uKSBjb25zdAoreworICAgIG1fcGFn
ZS0+bG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKCkuZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhtb3Vz
ZUxvY2F0aW9uKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZFJlY29nbml6ZUxvbmdN
b3VzZVByZXNzKCkgY29uc3QKK3sKKyAgICBtX3BhZ2UtPmxvbmdNb3VzZVByZXNzQ29udHJvbGxl
cigpLmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcygpIGNvbnN0Cit7CisgICAgbV9wYWdlLT5sb25n
TW91c2VQcmVzc0NvbnRyb2xsZXIoKS5kaWRDYW5jZWxMb25nTW91c2VQcmVzcygpOworfQorI2Vu
ZGlmCisKIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0
b29sVGlwLCBUZXh0RGlyZWN0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZGQxNjJm
Y2FkYzdhZjQ5NTZmNzdjMTk0Yjk0YjM4YTIyNmY3OWFjMi4uMmUzYjk2NDM5MjQyNDkzNTJjMDBi
YWQyMGYyZjM4MzAxMmJhMmVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMzEsNiArMTMx
LDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdz
KSBvdmVycmlkZTsKICAgICAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNvZ25pemVMb25nTW91c2VQ
cmVzcygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxMb25nTW91
c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRlOworI2VuZGlmCisgICAgCiAgICAgdmlydHVhbCB2b2lk
IHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgb3ZlcnJp
ZGU7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01v
dXNlUHJlc3NDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwYzg4ZDYzOTM4ZTg4
ZWM0NGNkOTg2NTVkNmI4NmQ0ODJmYzBkMTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcApAQCAt
MCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9uZ01vdXNlUHJlc3NDb250cm9sbGVy
LmgiCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2Fn
ZXMuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI6OkxvbmdNb3VzZVByZXNzQ29udHJvbGxlcihXZWJQ
YWdlKiB3ZWJQYWdlKQoreworfQorCit2b2lkIExvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6ZGlk
QmVnaW5Mb25nTW91c2VQcmVzcyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgbW91c2VQb3MpCit7
CisgICAgLy8gRklYTUU6IEdlbmVyYXRlIGRhdGEgc3RvcmUgZnJvbSBsb2NhdGlvbi4KKworICAg
IC8vIEZJWE1FOiBOb3RpZnkgY2xpZW50IG9mIGxvbmcgbW91c2UgcHJlc3MgZXZlbnQuCit9CisK
K3ZvaWQgTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVz
cygpCit7CisgICAgLy8gRklYTUU6IE5vdGlmeSBjbGllbnQgb2YgbG9uZyBtb3VzZSBwcmVzcyBl
dmVudC4KK30KKwordm9pZCBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI6OmRpZENhbmNlbExvbmdN
b3VzZVByZXNzKCkKK3sKKyAgICAvLyBGSVhNRTogTm90aWZ5IGNsaWVudCBvZiBsb25nIG1vdXNl
IHByZXNzIGV2ZW50LgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShMT05HX01PVVNFX1BSRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM2NDE3NzdmMjE3MDJjZGVhM2M1ZTE3ZGZkMDQwNmZhNjU2YjJiNmUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250
cm9sbGVyLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoTE9OR19N
T1VTRV9QUkVTUykKKworI2lmbmRlZiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXJfaAorI2RlZmlu
ZSBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXJfaAorCisjaW5jbHVkZSAiTG9uZ01vdXNlUHJlc3NE
YXRhU3RvcmUuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIExvbmdNb3VzZVByZXNzQ29udHJvbGxl
ciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKTsK
KworcHVibGljOgorICAgIGV4cGxpY2l0IExvbmdNb3VzZVByZXNzQ29udHJvbGxlcihXZWJQYWdl
Kik7CisKKyAgICB2b2lkIGRpZEJlZ2luTG9uZ01vdXNlUHJlc3MoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmKTsKKyAgICB2b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7CisgICAgdm9p
ZCBkaWRDYW5jZWxMb25nTW91c2VQcmVzcygpOworCitwcml2YXRlOgorICAgIExvbmdNb3VzZVBy
ZXNzRGF0YVN0b3JlIG1fZGF0YVN0b3JlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXJfaAorCisjZW5kaWYgLy8gRU5BQkxF
KExPTkdfTU9VU0VfUFJFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggZjM4ZTQ3N2U5Njc2Y2M1MDc3NmU2MTVhM2U5ZWJhMzI1Y2MyODcy
MC4uYTBkNzU3OTg5YWY4Y2UxMjJjYTUxMWNkMWQyNjdiNWM4MTZmMDUyYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjA1LDYgKzIwNSwx
MCBAQAogI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2VzLmgiCiAjZW5k
aWYKIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorI2luY2x1ZGUgIkxvbmdNb3VzZVBy
ZXNzQ29udHJvbGxlci5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTI4Miw2ICsxMjg2LDE2IEBAIHZvaWQgV2ViUGFnZTo6
c2Nyb2xsTWFpbkZyYW1lSWZOb3RBdE1heFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFNpemUmIHNj
cm9sbE9mZnNlCiAgICAgZnJhbWVWaWV3LT5zZXRTY3JvbGxQb3NpdGlvbihmcmFtZVZpZXctPnNj
cm9sbFBvc2l0aW9uKCkgKyBuZXdTY3JvbGxPZmZzZXQpOwogfQogCisjaWYgRU5BQkxFKExPTkdf
TU9VU0VfUFJFU1MpCitMb25nTW91c2VQcmVzc0NvbnRyb2xsZXImIFdlYlBhZ2U6OmxvbmdNb3Vz
ZVByZXNzQ29udHJvbGxlcigpCit7CisgICAgaWYgKCFtX2xvbmdNb3VzZVByZXNzQ29udHJvbGxl
cikKKyAgICAgICAgbV9sb25nTW91c2VQcmVzc0NvbnRyb2xsZXIgPSBzdGQ6Om1ha2VfdW5pcXVl
PExvbmdNb3VzZVByZXNzQ29udHJvbGxlcj4odGhpcyk7CisKKyAgICByZXR1cm4gKm1fbG9uZ01v
dXNlUHJlc3NDb250cm9sbGVyLmdldCgpOworfQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZTo6ZHJh
d1JlY3QoR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIGNvbnN0IEludFJlY3QmIHJl
Y3QpCiB7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGdyYXBoaWNz
Q29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCA4OGE5NjE1MmQ0MmMxOTQ4MmY0Y2YzNDQzY2Y0NGY1NjkwNjc3OWQxLi42ZTBhMmI0YWMy
Y2YzMjg5MTI4MTViODFiZTIyYjA4MDQxNzM4NTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwMyw2ICsxMDMsMTAgQEAgT0JKQ19DTEFTUyBX
S0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0OwogI2RlZmluZSBFTkFCTEVfUFJJTUFSWV9TTkFQ
U0hPVFRFRF9QTFVHSU5fSEVVUklTVElDIDEKICNlbmRpZgogCisjaWYgRU5BQkxFKExPTkdfTU9V
U0VfUFJFU1MpCisjaW5jbHVkZSAiTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmgiCisjZW5kaWYK
KwogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBBcnJheTsKIH0KQEAgLTE4Myw2ICsxODcsMTAgQEAg
Y2xhc3MgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247CiBjbGFzcyBXZWJUb3VjaEV2ZW50Owog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKK2NsYXNzIExvbmdNb3VzZVBy
ZXNzQ29udHJvbGxlcjsKKyNlbmRpZgorCiBjbGFzcyBXZWJQYWdlIDogcHVibGljIEFQSTo6T2Jq
ZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlUGFnZT4sIHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViUGFnZT4gY3JlYXRlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwpAQCAtMjM4LDYgKzI0NiwxMCBAQCBwdWJsaWM6CiAg
ICAgV2ViRnVsbFNjcmVlbk1hbmFnZXIqIGZ1bGxTY3JlZW5NYW5hZ2VyKCk7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorICAgIExvbmdNb3VzZVByZXNzQ29udHJvbGxl
ciYgbG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKCk7CisjZW5kaWYKKwogICAgIC8vIC0tIENhbGxl
ZCBieSB0aGUgRHJhd2luZ0FyZWEuCiAgICAgLy8gRklYTUU6IFdlIGNvdWxkIGdlbmVyaWNpemUg
dGhlc2UgaW50byBhIERyYXdpbmdBcmVhIGNsaWVudCBpbnRlcmZhY2UuIFdvdWxkIHRoYXQgYmUg
YmVuZWZpY2lhbD8KICAgICB2b2lkIGRyYXdSZWN0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKQEAgLTExNjIsNiArMTE3NCwxMCBAQCBwcml2YXRl
OgogCiAgICAgRmluZENvbnRyb2xsZXIgbV9maW5kQ29udHJvbGxlcjsKIAorI2lmIEVOQUJMRShM
T05HX01PVVNFX1BSRVNTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxMb25nTW91c2VQcmVzc0NvbnRy
b2xsZXI+IG1fbG9uZ01vdXNlUHJlc3NDb250cm9sbGVyOworI2VuZGlmCisKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQogICAgIFJlZlB0cjxXZWJJbnNwZWN0b3I+IG1faW5zcGVjdG9yOwogI2VuZGlm
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236248</attachid>
            <date>2014-08-07 17:57:08 -0700</date>
            <delta_ts>2014-08-08 15:03:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135515-20140807175657.patch</filename>
            <type>text/plain</type>
            <size>33379</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyMjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGViNDEyZmY2MjYyYTM3
Y2M4YjBhZmZhZjRiZjQwNTgxMDljN2YzNi4uNjk2MGI4YTY2ZTM0NmFmNzU3ZWQ4YTQzMDEyMjFi
ODc5NTNhNGExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE0LTA4LTA3ICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgogCisgICAgICAgIFRlbGwgdGhlIENo
cm9tZSBjbGllbnQgYWJvdXQgbG9uZyBtb3VzZSBwcmVzcyBldmVudHMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU1MTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAg
ICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIE92ZXJyaWRlIGxvbmcgbW91c2Ug
cHJlc3MgbWV0aG9kcyBpbiBFbXB0eUNocm9tZUNsaWVudC4KKyAgICAgICAgKiBwYWdlL0Nocm9t
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmRpZEJlZ2luTG9uZ01vdXNlUHJlc3Mp
OiBBZGRlZC4gU2VuZCBsb25nIG1vdXNlIHByZXNzIGV2ZW50IHRvIHRoZSBDaHJvbWUgY2xpZW50
LgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpkaWRDYW5jZWxMb25nTW91c2VQcmVz
cyk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6IEFkZCBsb25nIG1vdXNlIHByZXNz
IGxpZmVjeWNsZSBtZXRob2RzLgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6IERpdHRv
LgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyk6IFRlbGwgQ2hyb21lIGFib3V0IHRo
ZSBsb25nIG1vdXNlIHByZXNzIGV2ZW50LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERpdHRvLgorCisyMDE0LTA4
LTA3ICBQZXl0b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgorCiAgICAgICAgIElt
cGxlbWVudCBsb25nIG1vdXNlIHByZXNzIG92ZXIgbGlua3MuIFBhcnQgb2YgMTM1MjU3IC0gQWRk
IGxvbmctcHJlc3MgZ2VzdHVyZSB0byBNYWMuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU0NzYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDQyNjUyMDFi
NjVkOThlOTc3YjE4MTdiOTFhZmUxMWFlNDFiOGE5ZDUuLmVlODYwMjdkNzNlOGZkNjMxMzM3ZjIw
MDA2YTA5YzUxMjM3YzJjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
NC0wOC0wNyAgUGV5dG9uIFJhbmRvbHBoICA8cHJhbmRvbHBoQGFwcGxlLmNvbT4KKworICAgICAg
ICBQYXNzIGxvbmcgbW91c2UgcHJlc3MgZXZlbnQgdXAgdG8gdGhlIHdlYiBwYWdlLiAKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTUxNQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIE92ZXJyaWRlIGxvbmcgbW91c2UgcHJlc3Mg
bGlmZWN5Y2xlIG1ldGhvZHMgd2l0aCBlbXB0eSBpbXBsZW1lbnRhdGlvbnMuCisKIDIwMTQtMDgt
MDYgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIEVOQUJMRV9DU1Nf
VFJBTlNGT1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQgaXMgbm90IHVzZWQgYW55d2hlcmUuIFJl
bW92ZSBpdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0OWRmNjAyYWYyYjNhYzM1M2Q0YjkxOWU3OWNjOTY0NjQ5
MWY1NDVhLi4wOGQ5MDU2Nzg1MThiZDVlYmM1ZjA4YmU0YmI4YTcwYmQyNzFiNDM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTQtMDgtMDcgIFBleXRvbiBSYW5kb2xwaCAgPHByYW5k
b2xwaEBhcHBsZS5jb20+CisKKyAgICAgICAgQ3JlYXRlIHN0dWIgbG9uZyBtb3VzZSBwcmVzcyBj
b250cm9sbGVyLiBQYXJ0IG9mIDEzNTI1NyAtIEFkZCBsb25nIG1vdXNlIHByZXNzIGdlc3R1cmUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTUxNQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggaW50cm9kdWNlcyB0d28gbmV3IGNsYXNzZXMsIExvbmdNb3VzZVByZXNzQ29udHJvbGxlciBh
bmQgTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuIEl0IGFsc28KKyAgICAgICAgcHJvdmlkZXMgdGhl
IG5lY2Vzc2FyeSBjYWxsaW5nIGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXQyL21lc3NhZ2VzLnB5OgorICAgICAgICAoc3RydWN0X29yX2NsYXNzKTogTWFyayBMb25n
TW91c2VQcmVzc0RhdGEgYXMgYSBzdHJ1Y3Qgc28gaXQgcGxheXMgbmljZWx5IHdpdGggb3VyIElQ
Qy4KKyAgICAgICAgKiBTaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6TG9uZ01vdXNlUHJlc3NEYXRhU3RvcmU6OmVuY29kZSk6CisgICAg
ICAgIChXZWJLaXQ6OkxvbmdNb3VzZVByZXNzRGF0YVN0b3JlOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGFTdG9yZS5oOiBBZGRlZC4gRW5jYXBzdWxhdGUgaW5m
b3JtYXRpb24gbmVlZGVkIGJ5IHRoZSBjbGllbnQgZm9yIHRoZSBsb25nCisgICAgICAgIHByZXNz
LCBsaWtlIGEgc25hcHNob3Qgb2YgdGhlIGxvbmctcHJlc3NlZCBpdGVtLCBhbiBhc3NvY2lhdGVk
IFVSTCwgYW5kIGV2ZW50dWFsbHkgYXNzb2NpYXRlZCB0ZXh0LAorICAgICAgICBldGMuCisgICAg
ICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBMb25nTW91c2VQ
cmVzc0NvbnRyb2xsZXIgYW5kIExvbmdNb3VzZVByZXNzRGF0YS4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyk6IEFkZGVkLiBUZWxsIHRo
ZSBsb25nIG1vdXNlIHByZXNzIGNvbnRyb2xsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MpOiBEaXR0by4KKyAgICAgICAgKFdl
YktpdDo6V2ViQ2hyb21lQ2xpZW50OjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERpdHRvLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI6OkxvbmdN
b3VzZVByZXNzQ29udHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OkxvbmdNb3VzZVByZXNzQ29u
dHJvbGxlcjo6ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyk6IEFkZGVkIHN0dWIuIEluIGEgZnV0dXJl
IHBhdGNoLCB0aGlzIG1ldGhvZCAKKyAgICAgICAgd2lsbCBnZW5lcmF0ZSBhIExvbmdNb3VzZVBy
ZXNzRGF0YSBmb3IgdGhlIGxvbmctcHJlc3NlZCBwb2ludCBhbmQgd2lsbCBzZW5kIHRoYXQgaW5m
b3JtYXRpb24gdG8gdGhlIAorICAgICAgICB3ZWIgcGFnZSBwcm94eS4KKyAgICAgICAgKFdlYktp
dDo6TG9uZ01vdXNlUHJlc3NDb250cm9sbGVyOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6
IEFkZGVkIHN0dWIuIEluIGEgZnV0dXJlIHBhdGNoLCB0aGlzIG1ldGhvZAorICAgICAgICB3aWxs
IHNlbmQgdGhlIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlIHRvIHRoZSB3ZWIgcGFnZSBwcm94eS4K
KyAgICAgICAgKFdlYktpdDo6TG9uZ01vdXNlUHJlc3NDb250cm9sbGVyOjpkaWRDYW5jZWxMb25n
TW91c2VQcmVzcyk6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91
c2VQcmVzc0NvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOiBBZGRlZCBsb25nIG1vdXNlIHByZXNzIGNvbnRyb2xsZXIuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmg6IAorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb25nTW91c2VQcmVzc0Nv
bnRyb2xsZXIpOiBBZGRlZCBnZXR0ZXIuCisKIDIwMTQtMDgtMDcgIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVzZSBXZWJLaXROYXZp
Z2F0aW9uQWN0aW9uIGFsc28gZm9yIFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDY4NjcwYzc4YzM1MWZhMjdlMmEyMDI3
Y2FjZDRkMTA1ZDY0MzgzNjYuLmJjOTQzODZmZTBhMjVjODNmY2JhMTI1MWJmNWYwOWYzNjZhZTFi
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0OSw2ICsxNDksMTIg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNv
bnN0IG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVu
dChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQpIG92ZXJyaWRlIHsgfQogCisjaWYgRU5B
QkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luTG9uZ01vdXNl
UHJlc3MoY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZSB7IH07CisgICAgdmlydHVhbCB2
b2lkIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyB9OworICAg
IHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxMb25nTW91c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRlIHsg
fTsKKyNlbmRpZgorICAgIAogICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmlu
ZyYsIFRleHREaXJlY3Rpb24pIG92ZXJyaWRlIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHByaW50
KEZyYW1lKikgb3ZlcnJpZGUgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggMGI1MmMyOTU4
OGFhMWE5M2VhMTE3ZWQzYWM4NmJkNjBiNmI5YWE1ZS4uYjliYzkyZTE4NDAyNzJlMWU3M2E5ZjQy
OWUxMzYyMDMwZTM0OWNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtMzk3LDYgKzM5Nywy
MyBAQCB2b2lkIENocm9tZTo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJl
c3VsdCYgcmVzdWx0LCB1bnNpZ25lZCBtb2RpZgogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudCgmbV9wYWdlLCByZXN1bHQsIG1vZGlmaWVyRmxh
Z3MpOwogfQorICAgIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQordm9pZCBDaHJvbWU6
OmRpZEJlZ2luTG9uZ01vdXNlUHJlc3MoY29uc3QgSW50UG9pbnQmIG1vdXNlTG9jYXRpb24pCit7
CisgICAgbV9jbGllbnQuZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhtb3VzZUxvY2F0aW9uKTsKK30K
Kwordm9pZCBDaHJvbWU6OmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCkKK3sKKyAgICBtX2Ns
aWVudC5kaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpOworfQorCit2b2lkIENocm9tZTo6ZGlk
Q2FuY2VsTG9uZ01vdXNlUHJlc3MoKQoreworICAgIG1fY2xpZW50LmRpZENhbmNlbExvbmdNb3Vz
ZVByZXNzKCk7Cit9CisjZW5kaWYKIAogdm9pZCBDaHJvbWU6OnNldFRvb2xUaXAoY29uc3QgSGl0
VGVzdFJlc3VsdCYgcmVzdWx0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggYzJlOGVmMmIxMjFi
M2MyZDZlOWI2NGUyNGUyNTY1OWJiZmMwNWRiYy4uMjdlZjExYjE2ODI0MGI4N2MyNzYwMmNhZWU2
NjBmMGVlNzllMTE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0xNTEsNiArMTUxLDEyIEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJl
c3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogCisjaWYgRU5BQkxFKExPTkdfTU9VU0Vf
UFJFU1MpCisgICAgdm9pZCBkaWRCZWdpbkxvbmdNb3VzZVByZXNzKGNvbnN0IEludFBvaW50Jik7
CisgICAgdm9pZCBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpOworICAgIHZvaWQgZGlkQ2Fu
Y2VsTG9uZ01vdXNlUHJlc3MoKTsKKyNlbmRpZgorICAgIAogICAgIHZvaWQgc2V0VG9vbFRpcChj
b25zdCBIaXRUZXN0UmVzdWx0Jik7CiAKICAgICB2b2lkIHByaW50KEZyYW1lKik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA1ZmJhMzgzMTllY2ZjYTgzZTMyNmQzODg2MmRhNWZi
M2I4OTlmY2UwLi5mYTg0ZTdjN2U5MzU3NTE1MWJhOTE3Y2YxMTIyYjkzZTRmMTI5MDVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTE5NCw2ICsxOTQsMTIgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCos
IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3Qg
eyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRl
c3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSA9IDA7CiAKKyNpZiBFTkFCTEUoTE9O
R19NT1VTRV9QUkVTUykKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhj
b25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjb2duaXpl
TG9uZ01vdXNlUHJlc3MoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbExv
bmdNb3VzZVByZXNzKCkgY29uc3QgPSAwOworI2VuZGlmCisgICAgCiAgICAgdmlydHVhbCB2b2lk
IHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgVGV4dERpcmVjdGlvbikgPSAwOwogCiAgICAgdmly
dHVhbCB2b2lkIHByaW50KEZyYW1lKikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCmluZGV4IGYxNTExNDg0NDIxZTllODBjYzg3ZDZkN2Q0NDk4NDRmM2M3MmRhODYuLjdjZTQ5
ZWIyMTgxOTU2NmJhMzcxYmQxOWYyYTIyODZjNmY0NjVkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKQEAgLTE1NzQsMTcgKzE1NzQsMjIgQEAgdm9pZCBFdmVudEhhbmRsZXI6
OmF1dG9IaWRlQ3Vyc29yVGltZXJGaXJlZChUaW1lcjxFdmVudEhhbmRsZXI+JiB0aW1lcikKICAg
ICAgICAgdmlldy0+c2V0Q3Vyc29yKG1fY3VycmVudE1vdXNlQ3Vyc29yKTsKIH0KICNlbmRpZgot
ICAgIAorCiAjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCiB2b2lkIEV2ZW50SGFuZGxlcjo6
YmVnaW5Mb25nTW91c2VQcmVzcygpCiB7CiAgICAgY2xlYXJMb25nTW91c2VQcmVzc1N0YXRlKCk7
Ci0gICAgCisKICAgICBtX2xvbmdNb3VzZVByZXNzVGltZXIuc3RhcnRPbmVTaG90KGxvbmdNb3Vz
ZVByZXNzRGVsYXkpOwotICAgIAotICAgIC8vIEZJWE1FOiBidWJibGUgbG9uZyBtb3VzZSBwcmVz
cyB1cCB0byB0aGUgY2xpZW50LgorCisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwor
ICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sb25nTW91c2VQcmVzc1Rp
bWVyLnN0YXJ0T25lU2hvdChsb25nTW91c2VQcmVzc0RlbGF5KTsKKyAgICBwYWdlLT5jaHJvbWUo
KS5kaWRCZWdpbkxvbmdNb3VzZVByZXNzKG1fbW91c2VEb3duUG9zKTsKIH0KLSAgICAKKwogdm9p
ZCBFdmVudEhhbmRsZXI6OnJlY29nbml6ZUxvbmdNb3VzZVByZXNzKFRpbWVyPEV2ZW50SGFuZGxl
cj4mIHRpbWVyKQogewogICAgIEFTU0VSVF9VTlVTRUQodGltZXIsICZ0aW1lciA9PSAmbV9sb25n
TW91c2VQcmVzc1RpbWVyKTsKQEAgLTE1OTUsMTcgKzE2MDAsMjUgQEAgdm9pZCBFdmVudEhhbmRs
ZXI6OnJlY29nbml6ZUxvbmdNb3VzZVByZXNzKFRpbWVyPEV2ZW50SGFuZGxlcj4mIHRpbWVyKQog
ICAgIG1fbW91c2VQcmVzc2VkID0gZmFsc2U7CiAgICAgaW52YWxpZGF0ZUNsaWNrKCk7CiAKLSAg
ICAvLyBGSVhNRTogYnViYmxlIGxvbmcgbW91c2UgcHJlc3MgdXAgdG8gdGhlIGNsaWVudC4KKyAg
ICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBwYWdlLT5jaHJvbWUoKS5kaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygp
OwogfQotICAgIAorCiB2b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsTG9uZ01vdXNlUHJlc3MoKQog
ewogICAgIGlmICghbV9sb25nTW91c2VQcmVzc1RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGNsZWFyTG9uZ01vdXNlUHJlc3NTdGF0ZSgpOwotICAgIAotICAgIC8vIEZJ
WE1FOiBidWJibGUgbG9uZyBtb3VzZSBwcmVzcyB1cCB0byB0aGUgY2xpZW50LgorCisgICAgUGFn
ZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgcGFnZS0+Y2hyb21lKCkuZGlkQ2FuY2VsTG9uZ01vdXNlUHJlc3MoKTsKIH0KIAog
dm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyTG9uZ01vdXNlUHJlc3NTdGF0ZSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGNh
ODVhZjFkNGUyZWNkNmE1NmFlZmNhMjlkOTE1MzZiNzhiYzU1MmUuLmEwNTAyYWQ0Y2I4MzQxMDRj
YTMyZTY1MDQ4NzliZWZhZTM1YjhlZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMTYsNiArMTE2LDEyIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNv
cmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFp
bGFiaWxpdHlSZWFzb24pIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQg
bW9kaWZpZXJGbGFncykgb3ZlcnJpZGU7CiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNvZ25p
emVMb25nTW91c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBk
aWRDYW5jZWxMb25nTW91c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRlIHsgfQorI2VuZGlmCisKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6OlRl
eHREaXJlY3Rpb24pIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHByaW50KFdlYkNvcmU6
OkZyYW1lKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dl
YmtpdDIvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2Fn
ZXMucHkKaW5kZXggYmMwNTJiOGM4NTk2MWYxNjE3M2FiODljYWU3ZWI1YjdhZjhmNWM2ZC4uMjZm
OTJhZTg2YTNjZTA4ZWFiZWNmYjc2ODBkNDJjZmY3N2Q4YTI4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQpAQCAtMjAyLDYgKzIwMiw3IEBAIGRlZiBzdHJ1
Y3Rfb3JfY2xhc3MobmFtZXNwYWNlLCB0eXBlKToKICAgICAgICAgJ1dlYktpdDo6RWRpdGluZ1Jh
bmdlJywKICAgICAgICAgJ1dlYktpdDo6RWRpdG9yU3RhdGUnLAogICAgICAgICAnV2ViS2l0OjpJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbicsCisgICAgICAgICdXZWJLaXQ6OkxvbmdN
b3VzZVByZXNzRGF0YVN0b3JlJywKICAgICAgICAgJ1dlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRh
dGEnLAogICAgICAgICAnV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycycs
CiAgICAgICAgICdXZWJLaXQ6OlBhZ2VTdGF0ZScsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0xvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGE5ZjQ4NWU1MGZj
N2YwMDAzYjg5MjUyMDFlYTJjYmVhZjJkOWU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcApAQCAtMCwwICsxLDYyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvbmdNb3VzZVBy
ZXNzRGF0YVN0b3JlLmgiCisKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmU6OmVuY29k
ZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSBzbmFwc2hvdEhhbmRsZTsKKyAgICBpZiAoc25hcHNob3QpCisgICAgICAg
IHNuYXBzaG90LT5jcmVhdGVIYW5kbGUoc25hcHNob3RIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UmVh
ZE9ubHkpOworCisgICAgZW5jb2RlciA8PCBzbmFwc2hvdEhhbmRsZTsKKyAgICBlbmNvZGVyIDw8
IHNuYXBzaG90T3JpZ2luOworICAgIGVuY29kZXIgPDwgdXJsU3RyaW5nOworfQorCitib29sIExv
bmdNb3VzZVByZXNzRGF0YVN0b3JlOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlJiByZXN1bHQpCit7CisgICAgU2hhcmVhYmxlQml0
bWFwOjpIYW5kbGUgc25hcHNob3RIYW5kbGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzbmFw
c2hvdEhhbmRsZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghc25hcHNob3RI
YW5kbGUuaXNOdWxsKCkpCisgICAgICAgIHJlc3VsdC5zbmFwc2hvdCA9IFNoYXJlYWJsZUJpdG1h
cDo6Y3JlYXRlKHNuYXBzaG90SGFuZGxlLCBTaGFyZWRNZW1vcnk6OlJlYWRPbmx5KTsKKworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNuYXBzaG90T3JpZ2luKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudXJsU3RyaW5nKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0xvbmdNb3Vz
ZVByZXNzRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NE
YXRhU3RvcmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzg2Y2U3YmFiY2I3MGU5MGMyNGM3NjQ0MTNjYTUyMDZj
MzNjNTZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xvbmdNb3Vz
ZVByZXNzRGF0YVN0b3JlLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
TG9uZ01vdXNlUHJlc3NEYXRhU3RvcmVfaAorI2RlZmluZSBMb25nTW91c2VQcmVzc0RhdGFTdG9y
ZV9oCisKKyNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0UG9pbnQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNl
IElQQyB7CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBBcmd1bWVudEVuY29kZXI7Cit9
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUg
eworICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CisgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgTG9uZ01vdXNlUHJlc3NEYXRh
U3RvcmUmKTsKKworICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IHNuYXBzaG90OworICAgIFdl
YkNvcmU6OkZsb2F0UG9pbnQgc25hcHNob3RPcmlnaW47CisgICAgU3RyaW5nIHVybFN0cmluZzsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gTG9uZ01vdXNlUHJlc3NT
dG9yZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNTE5Y2Y4ZWI4YTI1YjhjZTFhYTI3NDYxMDdjMGFhYmE2NTUwNGVkZi4uNmZh
ZjE2MTdmOTk0OWYxMzE0YTU4ZmY2ZGRjZTcxYWM5M2E1OTRlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA5NSw2ICsxMDk1
LDEwIEBACiAJCTkzOTFGMkNCMTIxQjY3QUQwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICov
OyB9OwogCQk5MzlBRTc2NjEzMTZFOTlDMDBBRTA2QTYgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOUFF
NzY1MTMxNkU5OUMwMEFFMDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICovOyB9Owog
CQk5M0JERUIwMTE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5cGVzUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCREVCMDAxNzFE
RDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5QzRFNkI3MTE5OEMwMDUxMDA4NzY1
NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlDNEU2QjZGMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25n
TW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwICovOyB9OworCQk5QzRFNkI3MjE5OEMwMDUxMDA4NzY1
NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QzRFNkI3MDE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01v
dXNlUHJlc3NDb250cm9sbGVyLmggKi87IH07CisJCTlDNEU2Qjc1MTk4QzAyOTgwMDg3NjU1QSAv
KiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5QzRFNkI3MzE5OEMwMjk4MDA4NzY1NUEgLyogTG9uZ01vdXNl
UHJlc3NEYXRhU3RvcmUuY3BwICovOyB9OworCQk5QzRFNkI3NjE5OEMwMjk4MDA4NzY1NUEgLyog
TG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlDNEU2Qjc0MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVz
c0RhdGFTdG9yZS5oICovOyB9OwogCQk5RjU0Rjg4RjE2NDg4RTg3MDA3REY4MUEgLyogQ2hpbGRQ
cm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUY1NEY4OEUxNjQ4OEU4NzAwN0RGODFBIC8qIENoaWxkUHJvY2Vzc01hYy5tbSAqLzsgfTsK
IAkJOUY1NEY4OTUxNjQ4QUUwRjAwN0RGODFBIC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUY1NEY4OTQx
NjQ4QUUwRTAwN0RGODFBIC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyTWFjLm1tICovOyB9OwogCQk5
RkI1RjM5NDE2OUU2QTgwMDAyQzI1QkYgLyogV0tDb250ZXh0UHJpdmF0ZU1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGQjVGMzkyMTY5RTZBODAw
MDJDMjVCRiAvKiBXS0NvbnRleHRQcml2YXRlTWFjLm1tICovOyB9OwpAQCAtMzE0OSw2ICszMTUz
LDEwIEBACiAJCTkzOTFGMjg0MTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5
QUU3NjUxMzE2RTk5QzAwQUUwNkE2IC8qIFdlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JERUIwMDE3MUREN0FGMDBCRkVFMUIg
LyogV0tQYWdlTG9hZFR5cGVzUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTlDNEU2QjZGMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9uZ01vdXNlUHJlc3ND
b250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUM0RTZCNzAxOThD
MDA1MTAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUM0RTZCNzMxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3Vz
ZVByZXNzRGF0YVN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcDsgcGF0aCA9IFNoYXJlZC9Mb25nTW91c2VQcmVz
c0RhdGFTdG9yZS5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJOUM0RTZCNzQx
OThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmg7IHBhdGggPSBT
aGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09U
OyB9OwogCQk5RjU0Rjg4RTE2NDg4RTg3MDA3REY4MUEgLyogQ2hpbGRQcm9jZXNzTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ2hpbGRQcm9jZXNzTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjU0Rjg5NDE2NDhBRTBFMDA3REY4MUEg
LyogUGx1Z2luUHJvY2Vzc01hbmFnZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBQbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUZCNUYzOTIxNjlFNkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4dFByaXZh
dGVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0NvbnRl
eHRQcml2YXRlTWFjLm1tOyBwYXRoID0gbWFjL1dLQ29udGV4dFByaXZhdGVNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NDIzLDYgKzQ0MzEsOCBAQAogCQkJCUM1OENERjJD
MTg4NzYwOUYwMDg3MTUzNiAvKiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oICov
LAogCQkJCTFBOTJEQzEyMTJGOEJBQjkwMDE3QUY2NSAvKiBMYXllclRyZWVDb250ZXh0LmNwcCAq
LywKIAkJCQkxQTkyREMxMDEyRjhCQTQ2MDAxN0FGNjUgLyogTGF5ZXJUcmVlQ29udGV4dC5oICov
LAorCQkJCTlDNEU2QjczMTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGFTdG9y
ZS5jcHAgKi8sCisJCQkJOUM0RTZCNzQxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNz
RGF0YVN0b3JlLmggKi8sCiAJCQkJQkNCMEFFRTgxMjJGNTNFMzAwQjEzNDFFIC8qIE11dGFibGVE
aWN0aW9uYXJ5LmNwcCAqLywKIAkJCQlCQ0IwQUVFNzEyMkY1M0UzMDBCMTM0MUUgLyogTXV0YWJs
ZURpY3Rpb25hcnkuaCAqLywKIAkJCQkxQURDQjg2ODE4OTgzMUIzMDAyMkVFNUEgLyogTmF2aWdh
dGlvbkFjdGlvbkRhdGEuY3BwICovLApAQCAtNTcwMyw2ICs1NzEzLDggQEAKIAkJQkMwMzJENUUx
MEY0MzcyQjAwNThDMTVBIC8qIFdlYlBhZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTlDNEU2QjZGMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91c2VQ
cmVzc0NvbnRyb2xsZXIuY3BwICovLAorCQkJCTlDNEU2QjcwMTk4QzAwNTEwMDg3NjU1QSAvKiBM
b25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCAqLywKIAkJCQkyRDI5RUNDRDE5MkYyQzJFMDA5ODRC
NzggLyogQ29jb2EgKi8sCiAJCQkJMkRBOTQ0QjQxODg0RUEyQTAwRUQ4NkRCIC8qIGlvcyAqLywK
IAkJCQlCQzk2M0Q2QzExM0REMTk1MDA1NzRCRTIgLyogbWFjICovLApAQCAtNzE2Miw2ICs3MTc0
LDcgQEAKIAkJCQkxQUJDM0RGQzE4OTlGNTFDMDA0RjA2MjYgLyogV0tOYXZpZ2F0aW9uRGVsZWdh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTUyRjkyMTkyMDFEQTcwMEExRkEzNyAvKiBBUElD
b250ZXh0Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzNjFENzMxOTI3RkEz
NjAwMzZBNTlEIC8qIFdlYlNjcmlwdE1lc3NhZ2VIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5QzRFNkI3MjE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMTA1RkU1NDE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1Jh
bmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDE0MEVCMDE4RjM3QkUwMDA1RTc1QTAgLyogUGFn
ZU92ZXJsYXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE3NzUzRjExOEJBQkYw
MDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKQEAgLTc0ODQsNiAr
NzQ5Nyw3IEBACiAJCQkJMkQ4NzEwMTcxODI4NDE1RDAwMThGQTAxIC8qIFBsYXRmb3JtQ0FMYXll
clJlbW90ZUN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEzREQyMDIxMjVFNUExRjAwNDUx
NUU2IC8qIFdlYkZpbmRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOTBDMUVFMTI2NEZE
NTAwMDNFNDRENCAvKiBXZWJGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUM0RTZC
NzYxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0U0Njk1NDEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTYxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1TdWJt
aXNzaW9uTGlzdGVuZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzVBOEQyRDcxODdEMzAz
QTAwQzM5QzlFIC8qIFdLU2Vzc2lvblJlZi5oIGluIEhlYWRlcnMgKi8sCkBAIC04NzQ2LDYgKzg3
NjAsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAog
CQkJCTUxRTM1MjAwMTgwRjVEMEYwMEU1M0JFOSAvKiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOUM0RTZCNzUxOThDMDI5ODAwODc2NTVBIC8q
IExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1QThEMkUy
MTg3REVDMUUwMEMzOUM5RSAvKiBBUElTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3
RDc5MkQ2MTc2N0NCNkUwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCNjM0MDNGOTE0OTEwRDU3MDAxMDcwQjUgLyogQVBJT2JqZWN0LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtOTMxNiw2ICs5MzMxLDcgQEAKIAkJCQkxQUM3NTM3RjE4M0JFNTBGMDA3
MkNCMTUgLyogRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkNCNEU0NzE4
QkJFMDQ0MDAwRkNGQzkgLyogUGFnZUNsaWVudEltcGxJT1MubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1MTJFMzRFNDEzMEI0RDA1MDBBQkQxOUEgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk5QzRFNkI3MTE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01v
dXNlUHJlc3NDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQzk2MTE4MTgzRDI5
NDcwMEQyMDAyRSAvKiBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDNDA3NUYzMTI0RkYwMjcwMDY4RjIwQSAvKiBXS0FycmF5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUExMThBOUYyMTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0Zp
bGVNYW5hZ2VyRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
aW5kZXggMTMyNjRkYjVmYmUzYTQ1MjFmNWYzZTY5YmE3ZDY0OGMxODFhNzlmNC4uNWVjNDJjZmFi
MTMwYjMwODZkYmNlZWMzOGE0NzA2MjZjNDFkMGE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cApAQCAtODMsNiArODMsOCBAQAogI2luY2x1ZGUgIlByaW50ZXJMaXN0R3RrLmgiCiAjZW5kaWYK
IAorI2ltcG9ydCA8V2ViQ29yZS9FbGVtZW50Lmg+CisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIApAQCAtNjAzLDYgKzYwNSwyNCBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJl
c3VsdCYgaGl0VGVzdFJlc3VsdAogICAgIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEgd2ViSGl0VGVz
dFJlc3VsdERhdGEoaGl0VGVzdFJlc3VsdCk7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6Ok1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KHdlYkhpdFRlc3RSZXN1bHREYXRh
LCBtb2RpZmllckZsYWdzLCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0
YS5nZXQoKSkpKTsKIH0KKyAgICAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKK3ZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpkaWRCZWdpbkxvbmdNb3VzZVByZXNzKGNvbnN0IEludFBvaW50JiBt
b3VzZUxvY2F0aW9uKSBjb25zdAoreworICAgIG1fcGFnZS0+bG9uZ01vdXNlUHJlc3NDb250cm9s
bGVyKCkuZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhtb3VzZUxvY2F0aW9uKTsKK30KKwordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCkgY29uc3QKK3sKKyAg
ICBtX3BhZ2UtPmxvbmdNb3VzZVByZXNzQ29udHJvbGxlcigpLmRpZFJlY29nbml6ZUxvbmdNb3Vz
ZVByZXNzKCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRDYW5jZWxMb25nTW91c2VQ
cmVzcygpIGNvbnN0Cit7CisgICAgbV9wYWdlLT5sb25nTW91c2VQcmVzc0NvbnRyb2xsZXIoKS5k
aWRDYW5jZWxMb25nTW91c2VQcmVzcygpOworfQorI2VuZGlmCisKIAogdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGlyZWN0aW9uKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZGQxNjJmY2FkYzdhZjQ5NTZmNzdjMTk0Yjk0YjM4
YTIyNmY3OWFjMi4uMmUzYjk2NDM5MjQyNDkzNTJjMDBiYWQyMGYyZjM4MzAxMmJhMmVlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMzEsNiArMTMxLDEyIEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRl
c3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSBvdmVycmlkZTsKICAgICAKKyNpZiBF
TkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5Mb25nTW91
c2VQcmVzcyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxMb25nTW91c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRl
OworI2VuZGlmCisgICAgCiAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5n
JiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdmlydHVhbCB2
b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQwYzg4ZDYzOTM4ZTg4ZWM0NGNkOTg2NTVkNmI4NmQ0ODJmYzBk
MTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
TG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJXZWJQYWdl
LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitMb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXI6OkxvbmdNb3VzZVByZXNzQ29udHJvbGxlcihXZWJQYWdlKiB3ZWJQYWdlKQoreworfQorCit2
b2lkIExvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyhjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgbW91c2VQb3MpCit7CisgICAgLy8gRklYTUU6IEdlbmVyYXRl
IGRhdGEgc3RvcmUgZnJvbSBsb2NhdGlvbi4KKworICAgIC8vIEZJWE1FOiBOb3RpZnkgY2xpZW50
IG9mIGxvbmcgbW91c2UgcHJlc3MgZXZlbnQuCit9CisKK3ZvaWQgTG9uZ01vdXNlUHJlc3NDb250
cm9sbGVyOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpCit7CisgICAgLy8gRklYTUU6IE5v
dGlmeSBjbGllbnQgb2YgbG9uZyBtb3VzZSBwcmVzcyBldmVudC4KK30KKwordm9pZCBMb25nTW91
c2VQcmVzc0NvbnRyb2xsZXI6OmRpZENhbmNlbExvbmdNb3VzZVByZXNzKCkKK3sKKyAgICAvLyBG
SVhNRTogTm90aWZ5IGNsaWVudCBvZiBsb25nIG1vdXNlIHByZXNzIGV2ZW50LgorfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xvbmdNb3VzZVBy
ZXNzQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xvbmdN
b3VzZVByZXNzQ29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2NDE3NzdmMjE3MDJjZGVhM2M1ZTE3
ZGZkMDQwNmZhNjU2YjJiNmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmgKQEAgLTAsMCArMSw1NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykKKworI2lmbmRlZiBM
b25nTW91c2VQcmVzc0NvbnRyb2xsZXJfaAorI2RlZmluZSBMb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXJfaAorCisjaW5jbHVkZSAiTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaCIKKyNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7
CisKK2NsYXNzIExvbmdNb3VzZVByZXNzQ29udHJvbGxlciB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKTsKKworcHVibGljOgorICAgIGV4cGxpY2l0
IExvbmdNb3VzZVByZXNzQ29udHJvbGxlcihXZWJQYWdlKik7CisKKyAgICB2b2lkIGRpZEJlZ2lu
TG9uZ01vdXNlUHJlc3MoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKKyAgICB2b2lkIGRpZFJl
Y29nbml6ZUxvbmdNb3VzZVByZXNzKCk7CisgICAgdm9pZCBkaWRDYW5jZWxMb25nTW91c2VQcmVz
cygpOworCitwcml2YXRlOgorICAgIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlIG1fZGF0YVN0b3Jl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBMb25nTW91c2VQcmVz
c0NvbnRyb2xsZXJfaAorCisjZW5kaWYgLy8gRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjM4ZTQ3
N2U5Njc2Y2M1MDc3NmU2MTVhM2U5ZWJhMzI1Y2MyODcyMC4uYTBkNzU3OTg5YWY4Y2UxMjJjYTUx
MWNkMWQyNjdiNWM4MTZmMDUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcApAQCAtMjA1LDYgKzIwNSwxMCBAQAogI2luY2x1ZGUgIkNvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdE1lc3NhZ2VzLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShMT05HX01P
VVNFX1BSRVNTKQorI2luY2x1ZGUgIkxvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oIgorI2VuZGlm
CisKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAt
MTI4Miw2ICsxMjg2LDE2IEBAIHZvaWQgV2ViUGFnZTo6c2Nyb2xsTWFpbkZyYW1lSWZOb3RBdE1h
eFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNlCiAgICAgZnJhbWVWaWV3
LT5zZXRTY3JvbGxQb3NpdGlvbihmcmFtZVZpZXctPnNjcm9sbFBvc2l0aW9uKCkgKyBuZXdTY3Jv
bGxPZmZzZXQpOwogfQogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCitMb25nTW91c2VQ
cmVzc0NvbnRyb2xsZXImIFdlYlBhZ2U6OmxvbmdNb3VzZVByZXNzQ29udHJvbGxlcigpCit7Cisg
ICAgaWYgKCFtX2xvbmdNb3VzZVByZXNzQ29udHJvbGxlcikKKyAgICAgICAgbV9sb25nTW91c2VQ
cmVzc0NvbnRyb2xsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPExvbmdNb3VzZVByZXNzQ29udHJvbGxl
cj4odGhpcyk7CisKKyAgICByZXR1cm4gKm1fbG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmdldCgp
OworfQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZTo6ZHJhd1JlY3QoR3JhcGhpY3NDb250ZXh0JiBn
cmFwaGljc0NvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGdyYXBoaWNzQ29udGV4dCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA4OGE5NjE1MmQ0MmMxOTQ4MmY0
Y2YzNDQzY2Y0NGY1NjkwNjc3OWQxLi42ZTBhMmI0YWMyY2YzMjg5MTI4MTViODFiZTIyYjA4MDQx
NzM4NTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
QEAgLTEwMyw2ICsxMDMsMTAgQEAgT0JKQ19DTEFTUyBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0OwogI2RlZmluZSBFTkFCTEVfUFJJTUFSWV9TTkFQU0hPVFRFRF9QTFVHSU5fSEVVUklTVElD
IDEKICNlbmRpZgogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisjaW5jbHVkZSAiTG9u
Z01vdXNlUHJlc3NDb250cm9sbGVyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIEFQSSB7CiBjbGFz
cyBBcnJheTsKIH0KQEAgLTE4Myw2ICsxODcsMTAgQEAgY2xhc3MgUmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb247CiBjbGFzcyBXZWJUb3VjaEV2ZW50OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTE9O
R19NT1VTRV9QUkVTUykKK2NsYXNzIExvbmdNb3VzZVByZXNzQ29udHJvbGxlcjsKKyNlbmRpZgor
CiBjbGFzcyBXZWJQYWdlIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlw
ZTo6QnVuZGxlUGFnZT4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIElQQzo6
TWVzc2FnZVNlbmRlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUGFnZT4g
Y3JlYXRlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYp
OwpAQCAtMjM4LDYgKzI0NiwxMCBAQCBwdWJsaWM6CiAgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXIq
IGZ1bGxTY3JlZW5NYW5hZ2VyKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BS
RVNTKQorICAgIExvbmdNb3VzZVByZXNzQ29udHJvbGxlciYgbG9uZ01vdXNlUHJlc3NDb250cm9s
bGVyKCk7CisjZW5kaWYKKwogICAgIC8vIC0tIENhbGxlZCBieSB0aGUgRHJhd2luZ0FyZWEuCiAg
ICAgLy8gRklYTUU6IFdlIGNvdWxkIGdlbmVyaWNpemUgdGhlc2UgaW50byBhIERyYXdpbmdBcmVh
IGNsaWVudCBpbnRlcmZhY2UuIFdvdWxkIHRoYXQgYmUgYmVuZWZpY2lhbD8KICAgICB2b2lkIGRy
YXdSZWN0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KTsKQEAgLTExNjIsNiArMTE3NCwxMCBAQCBwcml2YXRlOgogCiAgICAgRmluZENvbnRyb2xsZXIg
bV9maW5kQ29udHJvbGxlcjsKIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorICAgIHN0
ZDo6dW5pcXVlX3B0cjxMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI+IG1fbG9uZ01vdXNlUHJlc3ND
b250cm9sbGVyOworI2VuZGlmCisKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIFJlZlB0cjxX
ZWJJbnNwZWN0b3I+IG1faW5zcGVjdG9yOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236312</attachid>
            <date>2014-08-08 15:03:10 -0700</date>
            <delta_ts>2014-08-08 17:58:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135515-20140808150258.patch</filename>
            <type>text/plain</type>
            <size>34050</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyMjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTBkZDFmNDY0ZTM0ZjQ1
MDA4NWFjOWM4ODBhMGZhZDA4ODdhYTFiYy4uZDViNTUyM2E0OTY5ZDUxZjZkZjFkZDIxNzRiMTRj
MzM0YTY4NDMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDE0LTA4LTA3ICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgogCisgICAgICAgIENyZWF0ZSBzdHVi
IGxvbmcgbW91c2UgcHJlc3MgY29udHJvbGxlci4gUGFydCBvZiAxMzUyNTcgLSBBZGQgbG9uZyBt
b3VzZSBwcmVzcyBnZXN0dXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzU1MTUKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisg
ICAgICAgIFRlbGwgdGhlIENocm9tZSBjbGllbnQgYWJvdXQgbG9uZyBtb3VzZSBwcmVzcyBldmVu
dHMuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIE92ZXJyaWRl
IGxvbmcgbW91c2UgcHJlc3MgbWV0aG9kcyBpbiBFbXB0eUNocm9tZUNsaWVudC4KKyAgICAgICAg
KiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmRpZEJlZ2luVHJh
Y2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyk6IEFkZGVkLiBTZW5kIGxvbmcgbW91c2UgcHJl
c3MgZXZlbnQgdG8gdGhlIAorICAgICAgICBDaHJvbWUgY2xpZW50LgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lOjpkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNz
KTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUuaDogQWRkIGxvbmcgbW91c2UgcHJlc3Mg
bGlmZWN5Y2xlIG1ldGhvZHMuCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogRGl0dG8u
CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MpOiBUZWxs
IENocm9tZSBhYm91dCB0aGUgbG9uZyBtb3VzZSAKKyAgICAgICAgcHJlc3MgZXZlbnQuCisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpZENhbmNlbFRyYWNraW5n
UG90ZW50aWFsTG9uZ01vdXNlUHJlc3MpOiBEaXR0by4KKworMjAxNC0wOC0wNyAgUGV5dG9uIFJh
bmRvbHBoICA8cHJhbmRvbHBoQGFwcGxlLmNvbT4KKwogICAgICAgICBJbXBsZW1lbnQgbG9uZyBt
b3VzZSBwcmVzcyBvdmVyIGxpbmtzLiBQYXJ0IG9mIDEzNTI1NyAtIEFkZCBsb25nIG1vdXNlIHBy
ZXNzIGdlc3R1cmUuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzU0NzYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDQyNjUyMDFiNjVkOThlOTc3YjE4MTdi
OTFhZmUxMWFlNDFiOGE5ZDUuLmVlODYwMjdkNzNlOGZkNjMxMzM3ZjIwMDA2YTA5YzUxMjM3YzJj
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wOC0wNyAgUGV5dG9u
IFJhbmRvbHBoICA8cHJhbmRvbHBoQGFwcGxlLmNvbT4KKworICAgICAgICBQYXNzIGxvbmcgbW91
c2UgcHJlc3MgZXZlbnQgdXAgdG8gdGhlIHdlYiBwYWdlLiAKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTUxNQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lmg6CisgICAgICAgIE92ZXJyaWRlIGxvbmcgbW91c2UgcHJlc3MgbGlmZWN5Y2xlIG1ldGhv
ZHMgd2l0aCBlbXB0eSBpbXBsZW1lbnRhdGlvbnMuCisKIDIwMTQtMDgtMDYgIERlYW4gSmFja3Nv
biAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklN
QVRJT05TX1VOUFJFRklYRUQgaXMgbm90IHVzZWQgYW55d2hlcmUuIFJlbW92ZSBpdC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCA0OWRmNjAyYWYyYjNhYzM1M2Q0YjkxOWU3OWNjOTY0NjQ5MWY1NDVhLi4wOGQ5MDU2
Nzg1MThiZDVlYmM1ZjA4YmU0YmI4YTcwYmQyNzFiNDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDEgQEAKKzIwMTQtMDgtMDcgIFBleXRvbiBSYW5kb2xwaCAgPHByYW5kb2xwaEBhcHBsZS5jb20+
CisKKyAgICAgICAgQ3JlYXRlIHN0dWIgbG9uZyBtb3VzZSBwcmVzcyBjb250cm9sbGVyLiBQYXJ0
IG9mIDEzNTI1NyAtIEFkZCBsb25nIG1vdXNlIHByZXNzIGdlc3R1cmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTUxNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyB0
d28gbmV3IGNsYXNzZXMsIExvbmdNb3VzZVByZXNzQ29udHJvbGxlciBhbmQgTG9uZ01vdXNlUHJl
c3NEYXRhU3RvcmUuIEl0IGFsc28KKyAgICAgICAgcHJvdmlkZXMgdGhlIG5lY2Vzc2FyeSBjYWxs
aW5nIGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2Vz
LnB5OgorICAgICAgICAoc3RydWN0X29yX2NsYXNzKTogTWFyayBMb25nTW91c2VQcmVzc0RhdGEg
YXMgYSBzdHJ1Y3Qgc28gaXQgcGxheXMgbmljZWx5IHdpdGggb3VyIElQQy4KKyAgICAgICAgKiBT
aGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6TG9uZ01vdXNlUHJlc3NEYXRhU3RvcmU6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6Okxv
bmdNb3VzZVByZXNzRGF0YVN0b3JlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Mb25nTW91
c2VQcmVzc0RhdGFTdG9yZS5oOiBBZGRlZC4gRW5jYXBzdWxhdGUgaW5mb3JtYXRpb24gbmVlZGVk
IGJ5IHRoZSBjbGllbnQgZm9yIHRoZSBsb25nCisgICAgICAgIHByZXNzLCBsaWtlIGEgc25hcHNo
b3Qgb2YgdGhlIGxvbmctcHJlc3NlZCBpdGVtLCBhbiBhc3NvY2lhdGVkIFVSTCwgYW5kIGV2ZW50
dWFsbHkgYXNzb2NpYXRlZCB0ZXh0LAorICAgICAgICBldGMuCisgICAgICAgICogV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIg
YW5kIExvbmdNb3VzZVByZXNzRGF0YS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyk6IEFkZGVkLiBUZWxsIHRoZSBsb25nIG1vdXNlIHBy
ZXNzIGNvbnRyb2xsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkUmVj
b2duaXplTG9uZ01vdXNlUHJlc3MpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI6OkxvbmdNb3VzZVByZXNzQ29udHJv
bGxlcik6CisgICAgICAgIChXZWJLaXQ6OkxvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6ZGlkQmVn
aW5Mb25nTW91c2VQcmVzcyk6IEFkZGVkIHN0dWIuIEluIGEgZnV0dXJlIHBhdGNoLCB0aGlzIG1l
dGhvZCAKKyAgICAgICAgd2lsbCBnZW5lcmF0ZSBhIExvbmdNb3VzZVByZXNzRGF0YSBmb3IgdGhl
IGxvbmctcHJlc3NlZCBwb2ludCBhbmQgd2lsbCBzZW5kIHRoYXQgaW5mb3JtYXRpb24gdG8gdGhl
IAorICAgICAgICB3ZWIgcGFnZSBwcm94eS4KKyAgICAgICAgKFdlYktpdDo6TG9uZ01vdXNlUHJl
c3NDb250cm9sbGVyOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IEFkZGVkIHN0dWIuIElu
IGEgZnV0dXJlIHBhdGNoLCB0aGlzIG1ldGhvZAorICAgICAgICB3aWxsIHNlbmQgdGhlIExvbmdN
b3VzZVByZXNzRGF0YVN0b3JlIHRvIHRoZSB3ZWIgcGFnZSBwcm94eS4KKyAgICAgICAgKFdlYktp
dDo6TG9uZ01vdXNlUHJlc3NDb250cm9sbGVyOjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERp
dHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOiBB
ZGRlZCBsb25nIG1vdXNlIHByZXNzIGNvbnRyb2xsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OldlYlBhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6IAor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb25nTW91c2VQcmVzc0NvbnRyb2xsZXIpOiBBZGRl
ZCBnZXR0ZXIuCisKIDIwMTQtMDgtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVzZSBXZWJLaXROYXZpZ2F0aW9uQWN0aW9uIGFs
c28gZm9yIFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCmluZGV4IDY4NjcwYzc4YzM1MWZhMjdlMmEyMDI3Y2FjZDRkMTA1ZDY0Mzgz
NjYuLjdmMzc1NTljZDZlZmUxMTFjYTk1ZTYyZTM2MDY3YmNhOTQwZWU5YmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0OSw2ICsxNDksMTIgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0IG92ZXJyaWRlIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0
UmVzdWx0JiwgdW5zaWduZWQpIG92ZXJyaWRlIHsgfQogCisjaWYgRU5BQkxFKExPTkdfTU9VU0Vf
UFJFU1MpCisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91
c2VQcmVzcyhjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlIHsgfTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKSBjb25zdCBvdmVycmlkZSB7IH07Cisg
ICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3Mo
KSBjb25zdCBvdmVycmlkZSB7IH07CisjZW5kaWYKKyAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0
VG9vbFRpcChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSBvdmVycmlkZSB7IH0KIAogICAg
IHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSopIG92ZXJyaWRlIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
Y3BwCmluZGV4IDBiNTJjMjk1ODhhYTFhOTNlYTExN2VkM2FjODZiZDYwYjZiOWFhNWUuLjcyZWMw
MDM1YTM0YzZkNjg3ZjAwZGQ3YTQ2NmI5MmM1NDY4MjU4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5j
cHAKQEAgLTM5Nyw2ICszOTcsMjMgQEAgdm9pZCBDaHJvbWU6Om1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWYKIAogICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoJm1fcGFnZSwg
cmVzdWx0LCBtb2RpZmllckZsYWdzKTsKIH0KKyAgICAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9Q
UkVTUykKK3ZvaWQgQ2hyb21lOjpkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJl
c3MoY29uc3QgSW50UG9pbnQmIG1vdXNlTG9jYXRpb24pCit7CisgICAgbV9jbGllbnQuZGlkQmVn
aW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKG1vdXNlTG9jYXRpb24pOworfQorCit2
b2lkIENocm9tZTo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKQoreworICAgIG1fY2xpZW50
LmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7Cit9CisKK3ZvaWQgQ2hyb21lOjpkaWRDYW5j
ZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCkKK3sKKyAgICBtX2NsaWVudC5kaWRD
YW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCk7Cit9CisjZW5kaWYKIAogdm9p
ZCBDaHJvbWU6OnNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmgKaW5kZXggYzJlOGVmMmIxMjFiM2MyZDZlOWI2NGUyNGUyNTY1OWJiZmMwNWRi
Yy4uNWI5NTY0ZjA3Yjk2OTcxZjQ4ZTVlN2FkMDU3MTkyZmI0NTQ5ZTFkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5oCkBAIC0xNTEsNiArMTUxLDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxh
Z3MpOwogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdm9pZCBkaWRCZWdpblRy
YWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoY29uc3QgSW50UG9pbnQmKTsKKyAgICB2b2lk
IGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7CisgICAgdm9pZCBkaWRDYW5jZWxUcmFja2lu
Z1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCk7CisjZW5kaWYKKyAgICAKICAgICB2b2lkIHNldFRv
b2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYpOwogCiAgICAgdm9pZCBwcmludChGcmFtZSopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNWZiYTM4MzE5ZWNmY2E4M2UzMjZkMzg4
NjJkYTVmYjNiODk5ZmNlMC4uODMxNDI4ZDRkZjJmYWQ4MTZhOGE5NTVlOWZhMWVmYzNmMDBiZDQ2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xOTQsNiArMTk0LDEyIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVs
ZW1lbnQqLCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24p
IGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25z
dCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgPSAwOwogCisjaWYgRU5B
QkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luVHJhY2tpbmdQ
b3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKSBjb25zdCA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKSBj
b25zdCA9IDA7CisjZW5kaWYKKyAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25z
dCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQo
RnJhbWUqKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjY2N2Nj
OWU0NWUzZDBjMWU2Y2FkNGM0ZGJkYjE3NjY2MjVjNWJlMy4uYTgzNDE3Nzk1YjM2ZmVlNWNlZmRi
YjE5YjAyOGJhYjMxMzdlYTMxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApA
QCAtMTU3NCwxNyArMTU3NCwyMCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6YXV0b0hpZGVDdXJzb3JU
aW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4mIHRpbWVyKQogICAgICAgICB2aWV3LT5zZXRD
dXJzb3IobV9jdXJyZW50TW91c2VDdXJzb3IpOwogfQogI2VuZGlmCi0gICAgCisKICNpZiBFTkFC
TEUoTE9OR19NT1VTRV9QUkVTUykKIHZvaWQgRXZlbnRIYW5kbGVyOjpiZWdpblRyYWNraW5nUG90
ZW50aWFsTG9uZ01vdXNlUHJlc3MoKQogewogICAgIGNsZWFyTG9uZ01vdXNlUHJlc3NTdGF0ZSgp
OwotICAgIAorCisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOworICAgIGlmICghcGFn
ZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9sb25nTW91c2VQcmVzc1RpbWVyLnN0YXJ0T25l
U2hvdChMb25nTW91c2VQcmVzc1JlY29nbml0aW9uRGVsYXkpOwotICAgIAotICAgIC8vIEZJWE1F
IDEzNTU4MDogQnViYmxlIGxvbmcgbW91c2UgcHJlc3MgdXAgdG8gdGhlIGNsaWVudC4KKyAgICBw
YWdlLT5jaHJvbWUoKS5kaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MobV9t
b3VzZURvd25Qb3MpOwogfQotICAgIAorCiB2b2lkIEV2ZW50SGFuZGxlcjo6cmVjb2duaXplTG9u
Z01vdXNlUHJlc3MoVGltZXI8RXZlbnRIYW5kbGVyPiYgdGltZXIpCiB7CiAgICAgQVNTRVJUX1VO
VVNFRCh0aW1lciwgJnRpbWVyID09ICZtX2xvbmdNb3VzZVByZXNzVGltZXIpOwpAQCAtMTU5NSw3
ICsxNTk4LDExIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpyZWNvZ25pemVMb25nTW91c2VQcmVzcyhU
aW1lcjxFdmVudEhhbmRsZXI+JiB0aW1lcikKICAgICBtX21vdXNlUHJlc3NlZCA9IGZhbHNlOwog
ICAgIGludmFsaWRhdGVDbGljaygpOwogCi0gICAgLy8gRklYTUUgMTM1NTgwOiBCdWJibGUgbG9u
ZyBtb3VzZSBwcmVzcyB1cCB0byB0aGUgY2xpZW50LgorICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1l
LnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPmNo
cm9tZSgpLmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7CiB9CiAgICAgCiB2b2lkIEV2ZW50
SGFuZGxlcjo6Y2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcygpCkBAIC0xNjA0
LDggKzE2MTEsMTIgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNhbmNlbFRyYWNraW5nUG90ZW50aWFs
TG9uZ01vdXNlUHJlc3MoKQogICAgICAgICByZXR1cm47CiAKICAgICBjbGVhckxvbmdNb3VzZVBy
ZXNzU3RhdGUoKTsKLSAgICAKLSAgICAvLyBGSVhNRSAxMzU1ODA6IEJ1YmJsZSBsb25nIG1vdXNl
IHByZXNzIHVwIHRvIHRoZSBjbGllbnQuCisKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdl
KCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBwYWdlLT5jaHJvbWUo
KS5kaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCk7CiB9CiAKIHZvaWQg
RXZlbnRIYW5kbGVyOjpjbGVhckxvbmdNb3VzZVByZXNzU3RhdGUoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjYTg1YWYx
ZDRlMmVjZDZhNTZhZWZjYTI5ZDkxNTM2Yjc4YmM1NTJlLi4wYTAyNDBiMTk3YWFiMDdmMjY3N2Q4
ZWZmZDRjNzE1ZTExN2E0ZGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTE2LDYgKzExNiwxMiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpF
bGVtZW50KiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmls
aXR5UmVhc29uKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlm
aWVyRmxhZ3MpIG92ZXJyaWRlOwogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAg
dmlydHVhbCB2b2lkIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRlIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCkgY29u
c3Qgb3ZlcnJpZGUgeyB9CisjZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNv
bnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgb3ZlcnJpZGU7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weSBiL1NvdXJjZS9X
ZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQppbmRleCBiYzA1MmI4Yzg1OTYxZjE2
MTczYWI4OWNhZTdlYjViN2FmOGY1YzZkLi4yNmY5MmFlODZhM2NlMDhlYWJlY2ZiNzY4MGQ0MmNm
Zjc3ZDhhMjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVz
c2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5
CkBAIC0yMDIsNiArMjAyLDcgQEAgZGVmIHN0cnVjdF9vcl9jbGFzcyhuYW1lc3BhY2UsIHR5cGUp
OgogICAgICAgICAnV2ViS2l0OjpFZGl0aW5nUmFuZ2UnLAogICAgICAgICAnV2ViS2l0OjpFZGl0
b3JTdGF0ZScsCiAgICAgICAgICdXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uJywKKyAgICAgICAgJ1dlYktpdDo6TG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUnLAogICAgICAg
ICAnV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YScsCiAgICAgICAgICdXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJywKICAgICAgICAgJ1dlYktpdDo6UGFnZVN0YXRl
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGFT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFkYTlmNDg1ZTUwZmM3ZjAwMDNiODkyNTIwMWVhMmNiZWFmMmQ5ZTUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NE
YXRhU3RvcmUuY3BwCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaCIKKworI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBM
b25nTW91c2VQcmVzc0RhdGFTdG9yZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAoreworICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIHNuYXBzaG90SGFuZGxl
OworICAgIGlmIChzbmFwc2hvdCkKKyAgICAgICAgc25hcHNob3QtPmNyZWF0ZUhhbmRsZShzbmFw
c2hvdEhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisKKyAgICBlbmNvZGVyIDw8IHNu
YXBzaG90SGFuZGxlOworICAgIGVuY29kZXIgPDwgc25hcHNob3RPcmlnaW47CisgICAgZW5jb2Rl
ciA8PCB1cmxTdHJpbmc7Cit9CisKK2Jvb2wgTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmU6OmRlY29k
ZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUm
IHJlc3VsdCkKK3sKKyAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBzbmFwc2hvdEhhbmRsZTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNuYXBzaG90SGFuZGxlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKCFzbmFwc2hvdEhhbmRsZS5pc051bGwoKSkKKyAgICAgICAgcmVz
dWx0LnNuYXBzaG90ID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoc25hcHNob3RIYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UmVhZE9ubHkpOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
c25hcHNob3RPcmlnaW4pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC51cmxTdHJpbmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGFTdG9yZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjODZj
ZTdiYWJjYjcwZTkwYzI0Yzc2NDQxM2NhNTIwNmMzM2M1NmEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaApAQCAtMCwwICsx
LDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZV9oCisj
ZGVmaW5lIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlX2gKKworI2luY2x1ZGUgIlNoYXJlYWJsZUJp
dG1hcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2Rl
cjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0
cnVjdCBMb25nTW91c2VQcmVzc0RhdGFTdG9yZSB7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1
bWVudEVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImLCBMb25nTW91c2VQcmVzc0RhdGFTdG9yZSYpOworCisgICAgUmVmUHRyPFNoYXJl
YWJsZUJpdG1hcD4gc25hcHNob3Q7CisgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBzbmFwc2hvdE9y
aWdpbjsKKyAgICBTdHJpbmcgdXJsU3RyaW5nOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBMb25nTW91c2VQcmVzc1N0b3JlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MTljZjhlYjhhMjViOGNl
MWFhMjc0NjEwN2MwYWFiYTY1NTA0ZWRmLi4wNDNjN2MxYWY4M2MxYWI3YzQyZTFjNTMyZTQ1NDE2
ZGYyNjhmNTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xMDk1LDYgKzEwOTUsMTAgQEAKIAkJOTM5MUYyQ0IxMjFCNjdBRDAw
RUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi87IH07CiAJCTkzOUFFNzY2MTMxNkU5OUMwMEFF
MDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QUU3NjUxMzE2RTk5QzAwQUUwNkE2IC8qIFdlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAgKi87IH07CiAJCTkzQkRFQjAxMTcxREQ3QUYwMEJGRUUxQiAv
KiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0JERUIwMDE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5
cGVzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTlDNEU2QjcxMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUM0
RTZCNkYxOThDMDA1MTAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzQ29udHJvbGxlci5jcHAgKi87
IH07CisJCTlDNEU2QjcyMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlDNEU2
QjcwMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCAqLzsgfTsK
KwkJOUM0RTZCNzUxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlDNEU2Qjcz
MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5jcHAgKi87IH07CisJ
CTlDNEU2Qjc2MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUM0RTZCNzQxOThD
MDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmggKi87IH07CiAJCTlGNTRG
ODhGMTY0ODhFODcwMDdERjgxQSAvKiBDaGlsZFByb2Nlc3NNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjU0Rjg4RTE2NDg4RTg3MDA3REY4MUEg
LyogQ2hpbGRQcm9jZXNzTWFjLm1tICovOyB9OwogCQk5RjU0Rjg5NTE2NDhBRTBGMDA3REY4MUEg
LyogUGx1Z2luUHJvY2Vzc01hbmFnZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5RjU0Rjg5NDE2NDhBRTBFMDA3REY4MUEgLyogUGx1Z2luUHJv
Y2Vzc01hbmFnZXJNYWMubW0gKi87IH07CiAJCTlGQjVGMzk0MTY5RTZBODAwMDJDMjVCRiAvKiBX
S0NvbnRleHRQcml2YXRlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUZCNUYzOTIxNjlFNkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4dFByaXZhdGVN
YWMubW0gKi87IH07CkBAIC0zMTQ5LDYgKzMxNTMsMTAgQEAKIAkJOTM5MUYyODQxMjFCMzhGNTAw
RUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlBRTc2NTEzMTZFOTlDMDBBRTA2QTYgLyogV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkNvcmVBcmd1bWVudENvZGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUM0RTZCNkYxOThDMDA1MTAwODc2NTVB
IC8qIExvbmdNb3VzZVByZXNzQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5QzRFNkI3MDE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJl
c3NDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvbmdNb3Vz
ZVByZXNzQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QzRFNkI3
MzE5OEMwMjk4MDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3Bw
OyBwYXRoID0gU2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcDsgc291cmNlVHJlZSA9
IFNPVVJDRV9ST09UOyB9OworCQk5QzRFNkI3NDE5OEMwMjk4MDA4NzY1NUEgLyogTG9uZ01vdXNl
UHJlc3NEYXRhU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTG9uZ01v
dXNlUHJlc3NEYXRhU3RvcmUuaDsgcGF0aCA9IFNoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGFTdG9y
ZS5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTlGNTRGODhFMTY0ODhFODcwMDdE
RjgxQSAvKiBDaGlsZFByb2Nlc3NNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBDaGlsZFByb2Nlc3NNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlGNTRGODk0MTY0OEFFMEUwMDdERjgxQSAvKiBQbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsdWdpblByb2Nlc3NN
YW5hZ2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RkI1RjM5MjE2OUU2
QTgwMDAyQzI1QkYgLyogV0tDb250ZXh0UHJpdmF0ZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLQ29udGV4dFByaXZhdGVNYWMubW07IHBhdGggPSBtYWMv
V0tDb250ZXh0UHJpdmF0ZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ0
MjMsNiArNDQzMSw4IEBACiAJCQkJQzU4Q0RGMkMxODg3NjA5RjAwODcxNTM2IC8qIEludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmggKi8sCiAJCQkJMUE5MkRDMTIxMkY4QkFCOTAwMTdB
RjY1IC8qIExheWVyVHJlZUNvbnRleHQuY3BwICovLAogCQkJCTFBOTJEQzEwMTJGOEJBNDYwMDE3
QUY2NSAvKiBMYXllclRyZWVDb250ZXh0LmggKi8sCisJCQkJOUM0RTZCNzMxOThDMDI5ODAwODc2
NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcCAqLywKKwkJCQk5QzRFNkI3NDE5OEMw
Mjk4MDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaCAqLywKIAkJCQlCQ0IwQUVF
ODEyMkY1M0UzMDBCMTM0MUUgLyogTXV0YWJsZURpY3Rpb25hcnkuY3BwICovLAogCQkJCUJDQjBB
RUU3MTIyRjUzRTMwMEIxMzQxRSAvKiBNdXRhYmxlRGljdGlvbmFyeS5oICovLAogCQkJCTFBRENC
ODY4MTg5ODMxQjMwMDIyRUU1QSAvKiBOYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAgKi8sCkBAIC01
NzE0LDYgKzU3MjQsOCBAQAogCQkJCTFBQTU3NUZEMTQ5NkI2RjMwMEE0RUUwNiAvKiBFdmVudERp
c3BhdGNoZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJMUE5MEMxRjMxMjY0RkQ3MTAwM0U0NEQ0IC8q
IEZpbmRDb250cm9sbGVyLmNwcCAqLywKIAkJCQkxQTkwQzFGMjEyNjRGRDcxMDAzRTQ0RDQgLyog
RmluZENvbnRyb2xsZXIuaCAqLywKKwkJCQk5QzRFNkI2RjE5OEMwMDUxMDA4NzY1NUEgLyogTG9u
Z01vdXNlUHJlc3NDb250cm9sbGVyLmNwcCAqLywKKwkJCQk5QzRFNkI3MDE5OEMwMDUxMDA4NzY1
NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmggKi8sCiAJCQkJN0MzODc0MzMxNzJGNTYx
NTAwMUJEODhBIC8qIFBhZ2VCYW5uZXIuY3BwICovLAogCQkJCTdDRjQ3RkY5MTcyNzVDNTcwMDhB
Q0I5MSAvKiBQYWdlQmFubmVyLmggKi8sCiAJCQkJMUE5MEMyMzYxMjY1MDcxNzAwM0U0NEQ0IC8q
IFBhZ2VPdmVybGF5LmNwcCAqLywKQEAgLTcxNjIsNiArNzE3NCw3IEBACiAJCQkJMUFCQzNERkMx
ODk5RjUxQzAwNEYwNjI2IC8qIFdLTmF2aWdhdGlvbkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQUU1MkY5MjE5MjAxREE3MDBBMUZBMzcgLyogQVBJQ29udGV4dENvbmZpZ3VyYXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTdDMzYxRDczMTkyN0ZBMzYwMDM2QTU5RCAvKiBXZWJTY3Jp
cHRNZXNzYWdlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUM0RTZCNzIxOThDMDA1MTAw
ODc2NTVBIC8qIExvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTEwNUZFNTQxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkQxNDBFQjAxOEYzN0JFMDAwNUU3NUEwIC8qIFBhZ2VPdmVybGF5Q29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxNzc1M0YxMThCQUJGMDAwN0Q5RTlBIC8qIEdlbmVyaWND
YWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCkBAIC03NDg0LDYgKzc0OTcsNyBAQAogCQkJCTJEODcx
MDE3MTgyODQxNUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBM0REMjAyMTI1RTVBMUYwMDQ1MTVFNiAvKiBXZWJGaW5kQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTkwQzFFRTEyNjRGRDUwMDAzRTQ0RDQgLyogV2ViRmlu
ZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTlDNEU2Qjc2MTk4QzAyOTgwMDg3NjU1QSAv
KiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTQx
MjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
RTQ2OTU2MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHku
aCBpbiBIZWFkZXJzICovLAogCQkJCTc1QThEMkQ3MTg3RDMwM0EwMEMzOUM5RSAvKiBXS1Nlc3Np
b25SZWYuaCBpbiBIZWFkZXJzICovLApAQCAtODc0Niw2ICs4NzYwLDcgQEAKIAkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQk1MUUzNTIwMDE4MEY1RDBG
MDBFNTNCRTkgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTlDNEU2Qjc1MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGFT
dG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NUE4RDJFMjE4N0RFQzFFMDBDMzlDOUUgLyog
QVBJU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Q3OTJENjE3NjdDQjZFMDA4ODFD
QkUgLyogQWN0aXZpdHlBc3NlcnRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjYzNDAzRjkx
NDkxMEQ1NzAwMTA3MEI1IC8qIEFQSU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTkzMTYs
NiArOTMzMSw3IEBACiAJCQkJMUFDNzUzN0YxODNCRTUwRjAwNzJDQjE1IC8qIERhdGFSZWZlcmVu
Y2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDQjRFNDcxOEJCRTA0NDAwMEZDRkM5IC8qIFBh
Z2VDbGllbnRJbXBsSU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyRTM0RTQxMzBCNEQwNTAw
QUJEMTlBIC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJOUM0RTZCNzExOThDMDA1MTAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzQ29udHJvbGxlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUM5NjExODE4M0QyOTQ3MDBEMjAwMkUgLyogV2ViSURC
U2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzQwNzVGMzEyNEZGMDI3MDA2OEYyMEEgLyogV0tBcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBMTE4QTlGMjE5MDhCOEVBMDBGN0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5tbSBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDEzMjY0ZGI1ZmJlM2E0
NTIxZjVmM2U2OWJhN2Q2NDhjMTgxYTc5ZjQuLmIwM2EyMmY4OGU3MTMxMjVjZmNhMWZjYTYxZTBh
NDEwYmFhZDdlMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTU0LDYgKzU0LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yQ2hvb3Nlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0
YWJhc2VNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZUNob29zZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVJY29uTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZUxvYWRSZXF1ZXN0Lmg+CkBAIC02MDMsNiArNjA0LDI0IEBAIHZvaWQgV2ViQ2hyb21l
Q2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRU
ZXN0UmVzdWx0CiAgICAgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSB3ZWJIaXRUZXN0UmVzdWx0RGF0
YShoaXRUZXN0UmVzdWx0KTsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6TW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQod2ViSGl0VGVzdFJlc3VsdERhdGEsIG1vZGlmaWVy
RmxhZ3MsIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSkp
OwogfQorICAgIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25zdCBJbnRQ
b2ludCYgbW91c2VMb2NhdGlvbikgY29uc3QKK3sKKyAgICBtX3BhZ2UtPmxvbmdNb3VzZVByZXNz
Q29udHJvbGxlcigpLmRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhtb3Vz
ZUxvY2F0aW9uKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZFJlY29nbml6ZUxvbmdN
b3VzZVByZXNzKCkgY29uc3QKK3sKKyAgICBtX3BhZ2UtPmxvbmdNb3VzZVByZXNzQ29udHJvbGxl
cigpLmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCkgY29uc3QKK3sK
KyAgICBtX3BhZ2UtPmxvbmdNb3VzZVByZXNzQ29udHJvbGxlcigpLmRpZENhbmNlbFRyYWNraW5n
UG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKTsKK30KKyNlbmRpZgorCiAKIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGRkMTYyZmNhZGM3YWY0OTU2Zjc3YzE5NGI5NGIz
OGEyMjZmNzlhYzIuLmJlNmRjNzE0MjMyMjdmNGM0YTBjMGFhMDEwYWUxMDI0MDhjZTEzZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTMxLDYgKzEzMSwxMiBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRU
ZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgb3ZlcnJpZGU7CiAgICAgCisjaWYg
RU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luVHJhY2tp
bmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxUcmFja2luZ1BvdGVu
dGlhbExvbmdNb3VzZVByZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CisjZW5kaWYKKyAgICAKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0
aW9uKSBvdmVycmlkZTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJh
bWUqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdj
ZWJmOTkwMzg4ODM3Yjk3M2FhZGMxNDlkMDI5ODQ3YmQwYTkxZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIuY3BwCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKExPTkdfTU9V
U0VfUFJFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMb25nTW91c2VQcmVz
c0NvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdl
UHJveHlNZXNzYWdlcy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK0xvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6TG9uZ01vdXNlUHJlc3NDb250
cm9sbGVyKFdlYlBhZ2UmIHdlYlBhZ2UpCit7Cit9CisKK3ZvaWQgTG9uZ01vdXNlUHJlc3NDb250
cm9sbGVyOjpkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIG1vdXNlUG9zKQoreworICAgIC8vIEZJWE1FOiBHZW5lcmF0ZSBkYXRh
IHN0b3JlIGZyb20gbG9jYXRpb24uCisKKyAgICAvLyBGSVhNRTogTm90aWZ5IGNsaWVudCBvZiBs
b25nIG1vdXNlIHByZXNzIGV2ZW50LgorfQorCit2b2lkIExvbmdNb3VzZVByZXNzQ29udHJvbGxl
cjo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKQoreworICAgIC8vIEZJWE1FOiBOb3RpZnkg
Y2xpZW50IG9mIGxvbmcgbW91c2UgcHJlc3MgZXZlbnQuCit9CisKK3ZvaWQgTG9uZ01vdXNlUHJl
c3NDb250cm9sbGVyOjpkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCkK
K3sKKyAgICAvLyBGSVhNRTogTm90aWZ5IGNsaWVudCBvZiBsb25nIG1vdXNlIHByZXNzIGV2ZW50
LgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShMT05HX01P
VVNFX1BSRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0ZTA1YTBlZmUz
NWFmYjRiZDJmMmRjNDQ2M2I3YzE5NmE1MWUwZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmgKQEAg
LTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykK
KworI2lmbmRlZiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXJfaAorI2RlZmluZSBMb25nTW91c2VQ
cmVzc0NvbnRyb2xsZXJfaAorCisjaW5jbHVkZSAiTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaCIK
KyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYlBhZ2U7CisKK2NsYXNzIExvbmdNb3VzZVByZXNzQ29udHJvbGxlciB7CisgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKTsKKworcHVibGljOgor
ICAgIGV4cGxpY2l0IExvbmdNb3VzZVByZXNzQ29udHJvbGxlcihXZWJQYWdlJik7CisKKyAgICB2
b2lkIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYpOworICAgIHZvaWQgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKTsKKyAg
ICB2b2lkIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKTsKKworcHJp
dmF0ZToKKyAgICBMb25nTW91c2VQcmVzc0RhdGFTdG9yZSBtX2RhdGFTdG9yZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gTG9uZ01vdXNlUHJlc3NDb250cm9sbGVy
X2gKKworI2VuZGlmIC8vIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGYzOGU0NzdlOTY3NmNjNTA3
NzZlNjE1YTNlOWViYTMyNWNjMjg3MjAuLmEwZDc1Nzk4OWFmOGNlMTIyY2E1MTFjZDFkMjY3YjVj
ODE2ZjA1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTIwNSw2ICsyMDUsMTAgQEAKICNpbmNsdWRlICJDb29yZGluYXRlZExheWVyVHJl
ZUhvc3RNZXNzYWdlcy5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykK
KyNpbmNsdWRlICJMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCIKKyNlbmRpZgorCiB1c2luZyBu
YW1lc3BhY2UgSlNDOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEyODIsNiArMTI4
NiwxNiBAQCB2b2lkIFdlYlBhZ2U6OnNjcm9sbE1haW5GcmFtZUlmTm90QXRNYXhTY3JvbGxQb3Np
dGlvbihjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZQogICAgIGZyYW1lVmlldy0+c2V0U2Nyb2xs
UG9zaXRpb24oZnJhbWVWaWV3LT5zY3JvbGxQb3NpdGlvbigpICsgbmV3U2Nyb2xsT2Zmc2V0KTsK
IH0KIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorTG9uZ01vdXNlUHJlc3NDb250cm9s
bGVyJiBXZWJQYWdlOjpsb25nTW91c2VQcmVzc0NvbnRyb2xsZXIoKQoreworICAgIGlmICghbV9s
b25nTW91c2VQcmVzc0NvbnRyb2xsZXIpCisgICAgICAgIG1fbG9uZ01vdXNlUHJlc3NDb250cm9s
bGVyID0gc3RkOjptYWtlX3VuaXF1ZTxMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI+KHRoaXMpOwor
CisgICAgcmV0dXJuICptX2xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5nZXQoKTsKK30KKyNlbmRp
ZgorCiB2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0KEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250
ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2
ZXIgc3RhdGVTYXZlcihncmFwaGljc0NvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggODhhOTYxNTJkNDJjMTk0ODJmNGNmMzQ0M2NmNDRm
NTY5MDY3NzlkMS4uY2MzNzQwY2NhNWJlZDZkNDViNjk3ODdhMzlkZjJmMjk4ZjYyYWZmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDMsNiAr
MTAzLDEwIEBAIE9CSkNfQ0xBU1MgV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdDsKICNkZWZp
bmUgRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQyAxCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorI2luY2x1ZGUgIkxvbmdNb3VzZVByZXNz
Q29udHJvbGxlci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXJyYXk7CiB9
CkBAIC0xNDAsNiArMTQ0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIERyYXdpbmdB
cmVhOwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3Q7CitjbGFzcyBMb25nTW91
c2VQcmVzc0NvbnRyb2xsZXI7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI7CiBjbGFzcyBQYWdlQmFubmVyOwogY2xhc3MgUGFnZU92ZXJsYXk7CkBAIC0yMzgsNiAr
MjQzLDEwIEBAIHB1YmxpYzoKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdlciogZnVsbFNjcmVlbk1h
bmFnZXIoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgTG9u
Z01vdXNlUHJlc3NDb250cm9sbGVyJiBsb25nTW91c2VQcmVzc0NvbnRyb2xsZXIoKTsKKyNlbmRp
ZgorCiAgICAgLy8gLS0gQ2FsbGVkIGJ5IHRoZSBEcmF3aW5nQXJlYS4KICAgICAvLyBGSVhNRTog
V2UgY291bGQgZ2VuZXJpY2l6ZSB0aGVzZSBpbnRvIGEgRHJhd2luZ0FyZWEgY2xpZW50IGludGVy
ZmFjZS4gV291bGQgdGhhdCBiZSBiZW5lZmljaWFsPwogICAgIHZvaWQgZHJhd1JlY3QoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwpAQCAtMTE2Miw2
ICsxMTcxLDEwIEBAIHByaXZhdGU6CiAKICAgICBGaW5kQ29udHJvbGxlciBtX2ZpbmRDb250cm9s
bGVyOwogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgc3RkOjp1bmlxdWVfcHRy
PExvbmdNb3VzZVByZXNzQ29udHJvbGxlcj4gbV9sb25nTW91c2VQcmVzc0NvbnRyb2xsZXI7Cisj
ZW5kaWYKKwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgUmVmUHRyPFdlYkluc3BlY3Rvcj4g
bV9pbnNwZWN0b3I7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236328</attachid>
            <date>2014-08-08 17:58:32 -0700</date>
            <delta_ts>2014-08-12 10:39:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135515-20140808175821.patch</filename>
            <type>text/plain</type>
            <size>34050</size>
            <attacher name="Peyton Randolph">prandolph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyMjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTBkZDFmNDY0ZTM0ZjQ1
MDA4NWFjOWM4ODBhMGZhZDA4ODdhYTFiYy4uZDViNTUyM2E0OTY5ZDUxZjZkZjFkZDIxNzRiMTRj
MzM0YTY4NDMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDE0LTA4LTA3ICBQZXl0
b24gUmFuZG9scGggIDxwcmFuZG9scGhAYXBwbGUuY29tPgogCisgICAgICAgIENyZWF0ZSBzdHVi
IGxvbmcgbW91c2UgcHJlc3MgY29udHJvbGxlci4gUGFydCBvZiAxMzUyNTcgLSBBZGQgbG9uZyBt
b3VzZSBwcmVzcyBnZXN0dXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzU1MTUKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisg
ICAgICAgIFRlbGwgdGhlIENocm9tZSBjbGllbnQgYWJvdXQgbG9uZyBtb3VzZSBwcmVzcyBldmVu
dHMuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIE92ZXJyaWRl
IGxvbmcgbW91c2UgcHJlc3MgbWV0aG9kcyBpbiBFbXB0eUNocm9tZUNsaWVudC4KKyAgICAgICAg
KiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmRpZEJlZ2luVHJh
Y2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyk6IEFkZGVkLiBTZW5kIGxvbmcgbW91c2UgcHJl
c3MgZXZlbnQgdG8gdGhlIAorICAgICAgICBDaHJvbWUgY2xpZW50LgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lOjpkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNz
KTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUuaDogQWRkIGxvbmcgbW91c2UgcHJlc3Mg
bGlmZWN5Y2xlIG1ldGhvZHMuCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogRGl0dG8u
CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MpOiBUZWxs
IENocm9tZSBhYm91dCB0aGUgbG9uZyBtb3VzZSAKKyAgICAgICAgcHJlc3MgZXZlbnQuCisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmRpZENhbmNlbFRyYWNraW5n
UG90ZW50aWFsTG9uZ01vdXNlUHJlc3MpOiBEaXR0by4KKworMjAxNC0wOC0wNyAgUGV5dG9uIFJh
bmRvbHBoICA8cHJhbmRvbHBoQGFwcGxlLmNvbT4KKwogICAgICAgICBJbXBsZW1lbnQgbG9uZyBt
b3VzZSBwcmVzcyBvdmVyIGxpbmtzLiBQYXJ0IG9mIDEzNTI1NyAtIEFkZCBsb25nIG1vdXNlIHBy
ZXNzIGdlc3R1cmUuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzU0NzYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDQyNjUyMDFiNjVkOThlOTc3YjE4MTdi
OTFhZmUxMWFlNDFiOGE5ZDUuLmVlODYwMjdkNzNlOGZkNjMxMzM3ZjIwMDA2YTA5YzUxMjM3YzJj
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wOC0wNyAgUGV5dG9u
IFJhbmRvbHBoICA8cHJhbmRvbHBoQGFwcGxlLmNvbT4KKworICAgICAgICBQYXNzIGxvbmcgbW91
c2UgcHJlc3MgZXZlbnQgdXAgdG8gdGhlIHdlYiBwYWdlLiAKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTUxNQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lmg6CisgICAgICAgIE92ZXJyaWRlIGxvbmcgbW91c2UgcHJlc3MgbGlmZWN5Y2xlIG1ldGhv
ZHMgd2l0aCBlbXB0eSBpbXBsZW1lbnRhdGlvbnMuCisKIDIwMTQtMDgtMDYgIERlYW4gSmFja3Nv
biAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklN
QVRJT05TX1VOUFJFRklYRUQgaXMgbm90IHVzZWQgYW55d2hlcmUuIFJlbW92ZSBpdC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCA0OWRmNjAyYWYyYjNhYzM1M2Q0YjkxOWU3OWNjOTY0NjQ5MWY1NDVhLi4wOGQ5MDU2
Nzg1MThiZDVlYmM1ZjA4YmU0YmI4YTcwYmQyNzFiNDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDEgQEAKKzIwMTQtMDgtMDcgIFBleXRvbiBSYW5kb2xwaCAgPHByYW5kb2xwaEBhcHBsZS5jb20+
CisKKyAgICAgICAgQ3JlYXRlIHN0dWIgbG9uZyBtb3VzZSBwcmVzcyBjb250cm9sbGVyLiBQYXJ0
IG9mIDEzNTI1NyAtIEFkZCBsb25nIG1vdXNlIHByZXNzIGdlc3R1cmUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTUxNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyB0
d28gbmV3IGNsYXNzZXMsIExvbmdNb3VzZVByZXNzQ29udHJvbGxlciBhbmQgTG9uZ01vdXNlUHJl
c3NEYXRhU3RvcmUuIEl0IGFsc28KKyAgICAgICAgcHJvdmlkZXMgdGhlIG5lY2Vzc2FyeSBjYWxs
aW5nIGluZnJhc3RydWN0dXJlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2Vz
LnB5OgorICAgICAgICAoc3RydWN0X29yX2NsYXNzKTogTWFyayBMb25nTW91c2VQcmVzc0RhdGEg
YXMgYSBzdHJ1Y3Qgc28gaXQgcGxheXMgbmljZWx5IHdpdGggb3VyIElQQy4KKyAgICAgICAgKiBT
aGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6TG9uZ01vdXNlUHJlc3NEYXRhU3RvcmU6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6Okxv
bmdNb3VzZVByZXNzRGF0YVN0b3JlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Mb25nTW91
c2VQcmVzc0RhdGFTdG9yZS5oOiBBZGRlZC4gRW5jYXBzdWxhdGUgaW5mb3JtYXRpb24gbmVlZGVk
IGJ5IHRoZSBjbGllbnQgZm9yIHRoZSBsb25nCisgICAgICAgIHByZXNzLCBsaWtlIGEgc25hcHNo
b3Qgb2YgdGhlIGxvbmctcHJlc3NlZCBpdGVtLCBhbiBhc3NvY2lhdGVkIFVSTCwgYW5kIGV2ZW50
dWFsbHkgYXNzb2NpYXRlZCB0ZXh0LAorICAgICAgICBldGMuCisgICAgICAgICogV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIg
YW5kIExvbmdNb3VzZVByZXNzRGF0YS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6ZGlkQmVnaW5Mb25nTW91c2VQcmVzcyk6IEFkZGVkLiBUZWxsIHRoZSBsb25nIG1vdXNlIHBy
ZXNzIGNvbnRyb2xsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkUmVj
b2duaXplTG9uZ01vdXNlUHJlc3MpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERpdHRvLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI6OkxvbmdNb3VzZVByZXNzQ29udHJv
bGxlcik6CisgICAgICAgIChXZWJLaXQ6OkxvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6ZGlkQmVn
aW5Mb25nTW91c2VQcmVzcyk6IEFkZGVkIHN0dWIuIEluIGEgZnV0dXJlIHBhdGNoLCB0aGlzIG1l
dGhvZCAKKyAgICAgICAgd2lsbCBnZW5lcmF0ZSBhIExvbmdNb3VzZVByZXNzRGF0YSBmb3IgdGhl
IGxvbmctcHJlc3NlZCBwb2ludCBhbmQgd2lsbCBzZW5kIHRoYXQgaW5mb3JtYXRpb24gdG8gdGhl
IAorICAgICAgICB3ZWIgcGFnZSBwcm94eS4KKyAgICAgICAgKFdlYktpdDo6TG9uZ01vdXNlUHJl
c3NDb250cm9sbGVyOjpkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcyk6IEFkZGVkIHN0dWIuIElu
IGEgZnV0dXJlIHBhdGNoLCB0aGlzIG1ldGhvZAorICAgICAgICB3aWxsIHNlbmQgdGhlIExvbmdN
b3VzZVByZXNzRGF0YVN0b3JlIHRvIHRoZSB3ZWIgcGFnZSBwcm94eS4KKyAgICAgICAgKFdlYktp
dDo6TG9uZ01vdXNlUHJlc3NDb250cm9sbGVyOjpkaWRDYW5jZWxMb25nTW91c2VQcmVzcyk6IERp
dHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOiBB
ZGRlZCBsb25nIG1vdXNlIHByZXNzIGNvbnRyb2xsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OldlYlBhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6IAor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb25nTW91c2VQcmVzc0NvbnRyb2xsZXIpOiBBZGRl
ZCBnZXR0ZXIuCisKIDIwMTQtMDgtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVzZSBXZWJLaXROYXZpZ2F0aW9uQWN0aW9uIGFs
c28gZm9yIFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCmluZGV4IDY4NjcwYzc4YzM1MWZhMjdlMmEyMDI3Y2FjZDRkMTA1ZDY0Mzgz
NjYuLjdmMzc1NTljZDZlZmUxMTFjYTk1ZTYyZTM2MDY3YmNhOTQwZWU5YmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0OSw2ICsxNDksMTIgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0IG92ZXJyaWRlIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0
UmVzdWx0JiwgdW5zaWduZWQpIG92ZXJyaWRlIHsgfQogCisjaWYgRU5BQkxFKExPTkdfTU9VU0Vf
UFJFU1MpCisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91
c2VQcmVzcyhjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlIHsgfTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKSBjb25zdCBvdmVycmlkZSB7IH07Cisg
ICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3Mo
KSBjb25zdCBvdmVycmlkZSB7IH07CisjZW5kaWYKKyAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0
VG9vbFRpcChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSBvdmVycmlkZSB7IH0KIAogICAg
IHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSopIG92ZXJyaWRlIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
Y3BwCmluZGV4IDBiNTJjMjk1ODhhYTFhOTNlYTExN2VkM2FjODZiZDYwYjZiOWFhNWUuLjcyZWMw
MDM1YTM0YzZkNjg3ZjAwZGQ3YTQ2NmI5MmM1NDY4MjU4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5j
cHAKQEAgLTM5Nyw2ICszOTcsMjMgQEAgdm9pZCBDaHJvbWU6Om1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWYKIAogICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoJm1fcGFnZSwg
cmVzdWx0LCBtb2RpZmllckZsYWdzKTsKIH0KKyAgICAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9Q
UkVTUykKK3ZvaWQgQ2hyb21lOjpkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJl
c3MoY29uc3QgSW50UG9pbnQmIG1vdXNlTG9jYXRpb24pCit7CisgICAgbV9jbGllbnQuZGlkQmVn
aW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKG1vdXNlTG9jYXRpb24pOworfQorCit2
b2lkIENocm9tZTo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKQoreworICAgIG1fY2xpZW50
LmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7Cit9CisKK3ZvaWQgQ2hyb21lOjpkaWRDYW5j
ZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCkKK3sKKyAgICBtX2NsaWVudC5kaWRD
YW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCk7Cit9CisjZW5kaWYKIAogdm9p
ZCBDaHJvbWU6OnNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmgKaW5kZXggYzJlOGVmMmIxMjFiM2MyZDZlOWI2NGUyNGUyNTY1OWJiZmMwNWRi
Yy4uNWI5NTY0ZjA3Yjk2OTcxZjQ4ZTVlN2FkMDU3MTkyZmI0NTQ5ZTFkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5oCkBAIC0xNTEsNiArMTUxLDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxh
Z3MpOwogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdm9pZCBkaWRCZWdpblRy
YWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoY29uc3QgSW50UG9pbnQmKTsKKyAgICB2b2lk
IGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7CisgICAgdm9pZCBkaWRDYW5jZWxUcmFja2lu
Z1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCk7CisjZW5kaWYKKyAgICAKICAgICB2b2lkIHNldFRv
b2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYpOwogCiAgICAgdm9pZCBwcmludChGcmFtZSopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNWZiYTM4MzE5ZWNmY2E4M2UzMjZkMzg4
NjJkYTVmYjNiODk5ZmNlMC4uODMxNDI4ZDRkZjJmYWQ4MTZhOGE5NTVlOWZhMWVmYzNmMDBiZDQ2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xOTQsNiArMTk0LDEyIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVs
ZW1lbnQqLCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24p
IGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25z
dCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgPSAwOwogCisjaWYgRU5B
QkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luVHJhY2tpbmdQ
b3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKSBjb25zdCA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKSBj
b25zdCA9IDA7CisjZW5kaWYKKyAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25z
dCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQo
RnJhbWUqKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMDJhMTM1
OGUxYWQ4ZjQ5YTNjM2Q1OWVkNzMwZTkxNjEwNDY1NjA2NC4uNzkxYjRjZWE2NjdiNGMzOGMzMGJi
NzdkMTE0OTlmYjg2OWIyNmQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApA
QCAtMTU3NCwxNyArMTU3NCwyMCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6YXV0b0hpZGVDdXJzb3JU
aW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4mIHRpbWVyKQogICAgICAgICB2aWV3LT5zZXRD
dXJzb3IobV9jdXJyZW50TW91c2VDdXJzb3IpOwogfQogI2VuZGlmCi0gICAgCisKICNpZiBFTkFC
TEUoTE9OR19NT1VTRV9QUkVTUykKIHZvaWQgRXZlbnRIYW5kbGVyOjpiZWdpblRyYWNraW5nUG90
ZW50aWFsTG9uZ01vdXNlUHJlc3MoKQogewogICAgIGNsZWFyTG9uZ01vdXNlUHJlc3NTdGF0ZSgp
OwotICAgIAorCisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOworICAgIGlmICghcGFn
ZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9sb25nTW91c2VQcmVzc1RpbWVyLnN0YXJ0T25l
U2hvdChsb25nTW91c2VQcmVzc1JlY29nbml0aW9uRGVsYXkpOwotICAgIAotICAgIC8vIEZJWE1F
IDEzNTU4MDogQnViYmxlIGxvbmcgbW91c2UgcHJlc3MgdXAgdG8gdGhlIGNsaWVudC4KKyAgICBw
YWdlLT5jaHJvbWUoKS5kaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MobV9t
b3VzZURvd25Qb3MpOwogfQotICAgIAorCiB2b2lkIEV2ZW50SGFuZGxlcjo6cmVjb2duaXplTG9u
Z01vdXNlUHJlc3MoVGltZXI8RXZlbnRIYW5kbGVyPiYgdGltZXIpCiB7CiAgICAgQVNTRVJUX1VO
VVNFRCh0aW1lciwgJnRpbWVyID09ICZtX2xvbmdNb3VzZVByZXNzVGltZXIpOwpAQCAtMTU5NSw3
ICsxNTk4LDExIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpyZWNvZ25pemVMb25nTW91c2VQcmVzcyhU
aW1lcjxFdmVudEhhbmRsZXI+JiB0aW1lcikKICAgICBtX21vdXNlUHJlc3NlZCA9IGZhbHNlOwog
ICAgIGludmFsaWRhdGVDbGljaygpOwogCi0gICAgLy8gRklYTUUgMTM1NTgwOiBCdWJibGUgbG9u
ZyBtb3VzZSBwcmVzcyB1cCB0byB0aGUgY2xpZW50LgorICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1l
LnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPmNo
cm9tZSgpLmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7CiB9CiAgICAgCiB2b2lkIEV2ZW50
SGFuZGxlcjo6Y2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcygpCkBAIC0xNjA0
LDggKzE2MTEsMTIgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNhbmNlbFRyYWNraW5nUG90ZW50aWFs
TG9uZ01vdXNlUHJlc3MoKQogICAgICAgICByZXR1cm47CiAKICAgICBjbGVhckxvbmdNb3VzZVBy
ZXNzU3RhdGUoKTsKLSAgICAKLSAgICAvLyBGSVhNRSAxMzU1ODA6IEJ1YmJsZSBsb25nIG1vdXNl
IHByZXNzIHVwIHRvIHRoZSBjbGllbnQuCisKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdl
KCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBwYWdlLT5jaHJvbWUo
KS5kaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCk7CiB9CiAKIHZvaWQg
RXZlbnRIYW5kbGVyOjpjbGVhckxvbmdNb3VzZVByZXNzU3RhdGUoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjYTg1YWYx
ZDRlMmVjZDZhNTZhZWZjYTI5ZDkxNTM2Yjc4YmM1NTJlLi4wYTAyNDBiMTk3YWFiMDdmMjY3N2Q4
ZWZmZDRjNzE1ZTExN2E0ZGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTE2LDYgKzExNiwxMiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpF
bGVtZW50KiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmls
aXR5UmVhc29uKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlm
aWVyRmxhZ3MpIG92ZXJyaWRlOwogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAg
dmlydHVhbCB2b2lkIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygpIGNvbnN0IG92ZXJyaWRlIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCkgY29u
c3Qgb3ZlcnJpZGUgeyB9CisjZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNv
bnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgb3ZlcnJpZGU7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weSBiL1NvdXJjZS9X
ZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQppbmRleCBiYzA1MmI4Yzg1OTYxZjE2
MTczYWI4OWNhZTdlYjViN2FmOGY1YzZkLi4yNmY5MmFlODZhM2NlMDhlYWJlY2ZiNzY4MGQ0MmNm
Zjc3ZDhhMjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVz
c2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5
CkBAIC0yMDIsNiArMjAyLDcgQEAgZGVmIHN0cnVjdF9vcl9jbGFzcyhuYW1lc3BhY2UsIHR5cGUp
OgogICAgICAgICAnV2ViS2l0OjpFZGl0aW5nUmFuZ2UnLAogICAgICAgICAnV2ViS2l0OjpFZGl0
b3JTdGF0ZScsCiAgICAgICAgICdXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uJywKKyAgICAgICAgJ1dlYktpdDo6TG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUnLAogICAgICAg
ICAnV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YScsCiAgICAgICAgICdXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJywKICAgICAgICAgJ1dlYktpdDo6UGFnZVN0YXRl
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGFT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFkYTlmNDg1ZTUwZmM3ZjAwMDNiODkyNTIwMWVhMmNiZWFmMmQ5ZTUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NE
YXRhU3RvcmUuY3BwCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaCIKKworI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBM
b25nTW91c2VQcmVzc0RhdGFTdG9yZTo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAoreworICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIHNuYXBzaG90SGFuZGxl
OworICAgIGlmIChzbmFwc2hvdCkKKyAgICAgICAgc25hcHNob3QtPmNyZWF0ZUhhbmRsZShzbmFw
c2hvdEhhbmRsZSwgU2hhcmVkTWVtb3J5OjpSZWFkT25seSk7CisKKyAgICBlbmNvZGVyIDw8IHNu
YXBzaG90SGFuZGxlOworICAgIGVuY29kZXIgPDwgc25hcHNob3RPcmlnaW47CisgICAgZW5jb2Rl
ciA8PCB1cmxTdHJpbmc7Cit9CisKK2Jvb2wgTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmU6OmRlY29k
ZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUm
IHJlc3VsdCkKK3sKKyAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBzbmFwc2hvdEhhbmRsZTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNuYXBzaG90SGFuZGxlKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKCFzbmFwc2hvdEhhbmRsZS5pc051bGwoKSkKKyAgICAgICAgcmVz
dWx0LnNuYXBzaG90ID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoc25hcHNob3RIYW5kbGUsIFNo
YXJlZE1lbW9yeTo6UmVhZE9ubHkpOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
c25hcHNob3RPcmlnaW4pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC51cmxTdHJpbmcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGFTdG9yZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjODZj
ZTdiYWJjYjcwZTkwYzI0Yzc2NDQxM2NhNTIwNmMzM2M1NmEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaApAQCAtMCwwICsx
LDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZV9oCisj
ZGVmaW5lIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlX2gKKworI2luY2x1ZGUgIlNoYXJlYWJsZUJp
dG1hcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRQb2ludC5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2Rl
cjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0
cnVjdCBMb25nTW91c2VQcmVzc0RhdGFTdG9yZSB7CisgICAgdm9pZCBlbmNvZGUoSVBDOjpBcmd1
bWVudEVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImLCBMb25nTW91c2VQcmVzc0RhdGFTdG9yZSYpOworCisgICAgUmVmUHRyPFNoYXJl
YWJsZUJpdG1hcD4gc25hcHNob3Q7CisgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBzbmFwc2hvdE9y
aWdpbjsKKyAgICBTdHJpbmcgdXJsU3RyaW5nOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBMb25nTW91c2VQcmVzc1N0b3JlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MTljZjhlYjhhMjViOGNl
MWFhMjc0NjEwN2MwYWFiYTY1NTA0ZWRmLi4wNDNjN2MxYWY4M2MxYWI3YzQyZTFjNTMyZTQ1NDE2
ZGYyNjhmNTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xMDk1LDYgKzEwOTUsMTAgQEAKIAkJOTM5MUYyQ0IxMjFCNjdBRDAw
RUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi87IH07CiAJCTkzOUFFNzY2MTMxNkU5OUMwMEFF
MDZBNiAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QUU3NjUxMzE2RTk5QzAwQUUwNkE2IC8qIFdlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAgKi87IH07CiAJCTkzQkRFQjAxMTcxREQ3QUYwMEJGRUUxQiAv
KiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0JERUIwMDE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5
cGVzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTlDNEU2QjcxMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUM0
RTZCNkYxOThDMDA1MTAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzQ29udHJvbGxlci5jcHAgKi87
IH07CisJCTlDNEU2QjcyMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlDNEU2
QjcwMTk4QzAwNTEwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCAqLzsgfTsK
KwkJOUM0RTZCNzUxOThDMDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlDNEU2Qjcz
MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5jcHAgKi87IH07CisJ
CTlDNEU2Qjc2MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUM0RTZCNzQxOThD
MDI5ODAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmggKi87IH07CiAJCTlGNTRG
ODhGMTY0ODhFODcwMDdERjgxQSAvKiBDaGlsZFByb2Nlc3NNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjU0Rjg4RTE2NDg4RTg3MDA3REY4MUEg
LyogQ2hpbGRQcm9jZXNzTWFjLm1tICovOyB9OwogCQk5RjU0Rjg5NTE2NDhBRTBGMDA3REY4MUEg
LyogUGx1Z2luUHJvY2Vzc01hbmFnZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5RjU0Rjg5NDE2NDhBRTBFMDA3REY4MUEgLyogUGx1Z2luUHJv
Y2Vzc01hbmFnZXJNYWMubW0gKi87IH07CiAJCTlGQjVGMzk0MTY5RTZBODAwMDJDMjVCRiAvKiBX
S0NvbnRleHRQcml2YXRlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUZCNUYzOTIxNjlFNkE4MDAwMkMyNUJGIC8qIFdLQ29udGV4dFByaXZhdGVN
YWMubW0gKi87IH07CkBAIC0zMTQ5LDYgKzMxNTMsMTAgQEAKIAkJOTM5MUYyODQxMjFCMzhGNTAw
RUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzlBRTc2NTEzMTZFOTlDMDBBRTA2QTYgLyogV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkNvcmVBcmd1bWVudENvZGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUM0RTZCNkYxOThDMDA1MTAwODc2NTVB
IC8qIExvbmdNb3VzZVByZXNzQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5QzRFNkI3MDE5OEMwMDUxMDA4NzY1NUEgLyogTG9uZ01vdXNlUHJl
c3NDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvbmdNb3Vz
ZVByZXNzQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QzRFNkI3
MzE5OEMwMjk4MDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuY3Bw
OyBwYXRoID0gU2hhcmVkL0xvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcDsgc291cmNlVHJlZSA9
IFNPVVJDRV9ST09UOyB9OworCQk5QzRFNkI3NDE5OEMwMjk4MDA4NzY1NUEgLyogTG9uZ01vdXNl
UHJlc3NEYXRhU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTG9uZ01v
dXNlUHJlc3NEYXRhU3RvcmUuaDsgcGF0aCA9IFNoYXJlZC9Mb25nTW91c2VQcmVzc0RhdGFTdG9y
ZS5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTlGNTRGODhFMTY0ODhFODcwMDdE
RjgxQSAvKiBDaGlsZFByb2Nlc3NNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBDaGlsZFByb2Nlc3NNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlGNTRGODk0MTY0OEFFMEUwMDdERjgxQSAvKiBQbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsdWdpblByb2Nlc3NN
YW5hZ2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RkI1RjM5MjE2OUU2
QTgwMDAyQzI1QkYgLyogV0tDb250ZXh0UHJpdmF0ZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLQ29udGV4dFByaXZhdGVNYWMubW07IHBhdGggPSBtYWMv
V0tDb250ZXh0UHJpdmF0ZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ0
MjMsNiArNDQzMSw4IEBACiAJCQkJQzU4Q0RGMkMxODg3NjA5RjAwODcxNTM2IC8qIEludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmggKi8sCiAJCQkJMUE5MkRDMTIxMkY4QkFCOTAwMTdB
RjY1IC8qIExheWVyVHJlZUNvbnRleHQuY3BwICovLAogCQkJCTFBOTJEQzEwMTJGOEJBNDYwMDE3
QUY2NSAvKiBMYXllclRyZWVDb250ZXh0LmggKi8sCisJCQkJOUM0RTZCNzMxOThDMDI5ODAwODc2
NTVBIC8qIExvbmdNb3VzZVByZXNzRGF0YVN0b3JlLmNwcCAqLywKKwkJCQk5QzRFNkI3NDE5OEMw
Mjk4MDA4NzY1NUEgLyogTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaCAqLywKIAkJCQlCQ0IwQUVF
ODEyMkY1M0UzMDBCMTM0MUUgLyogTXV0YWJsZURpY3Rpb25hcnkuY3BwICovLAogCQkJCUJDQjBB
RUU3MTIyRjUzRTMwMEIxMzQxRSAvKiBNdXRhYmxlRGljdGlvbmFyeS5oICovLAogCQkJCTFBRENC
ODY4MTg5ODMxQjMwMDIyRUU1QSAvKiBOYXZpZ2F0aW9uQWN0aW9uRGF0YS5jcHAgKi8sCkBAIC01
NzE0LDYgKzU3MjQsOCBAQAogCQkJCTFBQTU3NUZEMTQ5NkI2RjMwMEE0RUUwNiAvKiBFdmVudERp
c3BhdGNoZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJMUE5MEMxRjMxMjY0RkQ3MTAwM0U0NEQ0IC8q
IEZpbmRDb250cm9sbGVyLmNwcCAqLywKIAkJCQkxQTkwQzFGMjEyNjRGRDcxMDAzRTQ0RDQgLyog
RmluZENvbnRyb2xsZXIuaCAqLywKKwkJCQk5QzRFNkI2RjE5OEMwMDUxMDA4NzY1NUEgLyogTG9u
Z01vdXNlUHJlc3NDb250cm9sbGVyLmNwcCAqLywKKwkJCQk5QzRFNkI3MDE5OEMwMDUxMDA4NzY1
NUEgLyogTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmggKi8sCiAJCQkJN0MzODc0MzMxNzJGNTYx
NTAwMUJEODhBIC8qIFBhZ2VCYW5uZXIuY3BwICovLAogCQkJCTdDRjQ3RkY5MTcyNzVDNTcwMDhB
Q0I5MSAvKiBQYWdlQmFubmVyLmggKi8sCiAJCQkJMUE5MEMyMzYxMjY1MDcxNzAwM0U0NEQ0IC8q
IFBhZ2VPdmVybGF5LmNwcCAqLywKQEAgLTcxNjIsNiArNzE3NCw3IEBACiAJCQkJMUFCQzNERkMx
ODk5RjUxQzAwNEYwNjI2IC8qIFdLTmF2aWdhdGlvbkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQUU1MkY5MjE5MjAxREE3MDBBMUZBMzcgLyogQVBJQ29udGV4dENvbmZpZ3VyYXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTdDMzYxRDczMTkyN0ZBMzYwMDM2QTU5RCAvKiBXZWJTY3Jp
cHRNZXNzYWdlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUM0RTZCNzIxOThDMDA1MTAw
ODc2NTVBIC8qIExvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTEwNUZFNTQxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkQxNDBFQjAxOEYzN0JFMDAwNUU3NUEwIC8qIFBhZ2VPdmVybGF5Q29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxNzc1M0YxMThCQUJGMDAwN0Q5RTlBIC8qIEdlbmVyaWND
YWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCkBAIC03NDg0LDYgKzc0OTcsNyBAQAogCQkJCTJEODcx
MDE3MTgyODQxNUQwMDE4RkEwMSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBM0REMjAyMTI1RTVBMUYwMDQ1MTVFNiAvKiBXZWJGaW5kQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTkwQzFFRTEyNjRGRDUwMDAzRTQ0RDQgLyogV2ViRmlu
ZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTlDNEU2Qjc2MTk4QzAyOTgwMDg3NjU1QSAv
KiBMb25nTW91c2VQcmVzc0RhdGFTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NTQx
MjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
RTQ2OTU2MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHku
aCBpbiBIZWFkZXJzICovLAogCQkJCTc1QThEMkQ3MTg3RDMwM0EwMEMzOUM5RSAvKiBXS1Nlc3Np
b25SZWYuaCBpbiBIZWFkZXJzICovLApAQCAtODc0Niw2ICs4NzYwLDcgQEAKIAkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQk1MUUzNTIwMDE4MEY1RDBG
MDBFNTNCRTkgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTlDNEU2Qjc1MTk4QzAyOTgwMDg3NjU1QSAvKiBMb25nTW91c2VQcmVzc0RhdGFT
dG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NUE4RDJFMjE4N0RFQzFFMDBDMzlDOUUgLyog
QVBJU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Q3OTJENjE3NjdDQjZFMDA4ODFD
QkUgLyogQWN0aXZpdHlBc3NlcnRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjYzNDAzRjkx
NDkxMEQ1NzAwMTA3MEI1IC8qIEFQSU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTkzMTYs
NiArOTMzMSw3IEBACiAJCQkJMUFDNzUzN0YxODNCRTUwRjAwNzJDQjE1IC8qIERhdGFSZWZlcmVu
Y2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDQjRFNDcxOEJCRTA0NDAwMEZDRkM5IC8qIFBh
Z2VDbGllbnRJbXBsSU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyRTM0RTQxMzBCNEQwNTAw
QUJEMTlBIC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJOUM0RTZCNzExOThDMDA1MTAwODc2NTVBIC8qIExvbmdNb3VzZVByZXNzQ29udHJvbGxlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUM5NjExODE4M0QyOTQ3MDBEMjAwMkUgLyogV2ViSURC
U2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzQwNzVGMzEyNEZGMDI3MDA2OEYyMEEgLyogV0tBcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBMTE4QTlGMjE5MDhCOEVBMDBGN0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5tbSBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDEzMjY0ZGI1ZmJlM2E0
NTIxZjVmM2U2OWJhN2Q2NDhjMTgxYTc5ZjQuLmIwM2EyMmY4OGU3MTMxMjVjZmNhMWZjYTYxZTBh
NDEwYmFhZDdlMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTU0LDYgKzU0LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yQ2hvb3Nlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0
YWJhc2VNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZUNob29zZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVJY29uTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZUxvYWRSZXF1ZXN0Lmg+CkBAIC02MDMsNiArNjA0LDI0IEBAIHZvaWQgV2ViQ2hyb21l
Q2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRU
ZXN0UmVzdWx0CiAgICAgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSB3ZWJIaXRUZXN0UmVzdWx0RGF0
YShoaXRUZXN0UmVzdWx0KTsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6TW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQod2ViSGl0VGVzdFJlc3VsdERhdGEsIG1vZGlmaWVy
RmxhZ3MsIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSkp
OwogfQorICAgIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25zdCBJbnRQ
b2ludCYgbW91c2VMb2NhdGlvbikgY29uc3QKK3sKKyAgICBtX3BhZ2UtPmxvbmdNb3VzZVByZXNz
Q29udHJvbGxlcigpLmRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhtb3Vz
ZUxvY2F0aW9uKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZFJlY29nbml6ZUxvbmdN
b3VzZVByZXNzKCkgY29uc3QKK3sKKyAgICBtX3BhZ2UtPmxvbmdNb3VzZVByZXNzQ29udHJvbGxl
cigpLmRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzKCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCkgY29uc3QKK3sK
KyAgICBtX3BhZ2UtPmxvbmdNb3VzZVByZXNzQ29udHJvbGxlcigpLmRpZENhbmNlbFRyYWNraW5n
UG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKTsKK30KKyNlbmRpZgorCiAKIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGRkMTYyZmNhZGM3YWY0OTU2Zjc3YzE5NGI5NGIz
OGEyMjZmNzlhYzIuLmJlNmRjNzE0MjMyMjdmNGM0YTBjMGFhMDEwYWUxMDI0MDhjZTEzZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTMxLDYgKzEzMSwxMiBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRU
ZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgb3ZlcnJpZGU7CiAgICAgCisjaWYg
RU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luVHJhY2tp
bmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcygp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxUcmFja2luZ1BvdGVu
dGlhbExvbmdNb3VzZVByZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CisjZW5kaWYKKyAgICAKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0
aW9uKSBvdmVycmlkZTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJh
bWUqKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdj
ZWJmOTkwMzg4ODM3Yjk3M2FhZGMxNDlkMDI5ODQ3YmQwYTkxZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Mb25nTW91c2VQcmVzc0NvbnRyb2xs
ZXIuY3BwCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKExPTkdfTU9V
U0VfUFJFU1MpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMb25nTW91c2VQcmVz
c0NvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdl
UHJveHlNZXNzYWdlcy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK0xvbmdNb3VzZVByZXNzQ29udHJvbGxlcjo6TG9uZ01vdXNlUHJlc3NDb250
cm9sbGVyKFdlYlBhZ2UmIHdlYlBhZ2UpCit7Cit9CisKK3ZvaWQgTG9uZ01vdXNlUHJlc3NDb250
cm9sbGVyOjpkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIG1vdXNlUG9zKQoreworICAgIC8vIEZJWE1FOiBHZW5lcmF0ZSBkYXRh
IHN0b3JlIGZyb20gbG9jYXRpb24uCisKKyAgICAvLyBGSVhNRTogTm90aWZ5IGNsaWVudCBvZiBs
b25nIG1vdXNlIHByZXNzIGV2ZW50LgorfQorCit2b2lkIExvbmdNb3VzZVByZXNzQ29udHJvbGxl
cjo6ZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKQoreworICAgIC8vIEZJWE1FOiBOb3RpZnkg
Y2xpZW50IG9mIGxvbmcgbW91c2UgcHJlc3MgZXZlbnQuCit9CisKK3ZvaWQgTG9uZ01vdXNlUHJl
c3NDb250cm9sbGVyOjpkaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzKCkK
K3sKKyAgICAvLyBGSVhNRTogTm90aWZ5IGNsaWVudCBvZiBsb25nIG1vdXNlIHByZXNzIGV2ZW50
LgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShMT05HX01P
VVNFX1BSRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0ZTA1YTBlZmUz
NWFmYjRiZDJmMmRjNDQ2M2I3YzE5NmE1MWUwZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyLmgKQEAg
LTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykK
KworI2lmbmRlZiBMb25nTW91c2VQcmVzc0NvbnRyb2xsZXJfaAorI2RlZmluZSBMb25nTW91c2VQ
cmVzc0NvbnRyb2xsZXJfaAorCisjaW5jbHVkZSAiTG9uZ01vdXNlUHJlc3NEYXRhU3RvcmUuaCIK
KyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFdlYlBhZ2U7CisKK2NsYXNzIExvbmdNb3VzZVByZXNzQ29udHJvbGxlciB7CisgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoTG9uZ01vdXNlUHJlc3NDb250cm9sbGVyKTsKKworcHVibGljOgor
ICAgIGV4cGxpY2l0IExvbmdNb3VzZVByZXNzQ29udHJvbGxlcihXZWJQYWdlJik7CisKKyAgICB2
b2lkIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcyhjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYpOworICAgIHZvaWQgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MoKTsKKyAg
ICB2b2lkIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MoKTsKKworcHJp
dmF0ZToKKyAgICBMb25nTW91c2VQcmVzc0RhdGFTdG9yZSBtX2RhdGFTdG9yZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gTG9uZ01vdXNlUHJlc3NDb250cm9sbGVy
X2gKKworI2VuZGlmIC8vIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGYzOGU0NzdlOTY3NmNjNTA3
NzZlNjE1YTNlOWViYTMyNWNjMjg3MjAuLmEwZDc1Nzk4OWFmOGNlMTIyY2E1MTFjZDFkMjY3YjVj
ODE2ZjA1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTIwNSw2ICsyMDUsMTAgQEAKICNpbmNsdWRlICJDb29yZGluYXRlZExheWVyVHJl
ZUhvc3RNZXNzYWdlcy5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTE9OR19NT1VTRV9QUkVTUykK
KyNpbmNsdWRlICJMb25nTW91c2VQcmVzc0NvbnRyb2xsZXIuaCIKKyNlbmRpZgorCiB1c2luZyBu
YW1lc3BhY2UgSlNDOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTEyODIsNiArMTI4
NiwxNiBAQCB2b2lkIFdlYlBhZ2U6OnNjcm9sbE1haW5GcmFtZUlmTm90QXRNYXhTY3JvbGxQb3Np
dGlvbihjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZQogICAgIGZyYW1lVmlldy0+c2V0U2Nyb2xs
UG9zaXRpb24oZnJhbWVWaWV3LT5zY3JvbGxQb3NpdGlvbigpICsgbmV3U2Nyb2xsT2Zmc2V0KTsK
IH0KIAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorTG9uZ01vdXNlUHJlc3NDb250cm9s
bGVyJiBXZWJQYWdlOjpsb25nTW91c2VQcmVzc0NvbnRyb2xsZXIoKQoreworICAgIGlmICghbV9s
b25nTW91c2VQcmVzc0NvbnRyb2xsZXIpCisgICAgICAgIG1fbG9uZ01vdXNlUHJlc3NDb250cm9s
bGVyID0gc3RkOjptYWtlX3VuaXF1ZTxMb25nTW91c2VQcmVzc0NvbnRyb2xsZXI+KHRoaXMpOwor
CisgICAgcmV0dXJuICptX2xvbmdNb3VzZVByZXNzQ29udHJvbGxlci5nZXQoKTsKK30KKyNlbmRp
ZgorCiB2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0KEdyYXBoaWNzQ29udGV4dCYgZ3JhcGhpY3NDb250
ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2
ZXIgc3RhdGVTYXZlcihncmFwaGljc0NvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggODhhOTYxNTJkNDJjMTk0ODJmNGNmMzQ0M2NmNDRm
NTY5MDY3NzlkMS4uY2MzNzQwY2NhNWJlZDZkNDViNjk3ODdhMzlkZjJmMjk4ZjYyYWZmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDMsNiAr
MTAzLDEwIEBAIE9CSkNfQ0xBU1MgV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdDsKICNkZWZp
bmUgRU5BQkxFX1BSSU1BUllfU05BUFNIT1RURURfUExVR0lOX0hFVVJJU1RJQyAxCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShMT05HX01PVVNFX1BSRVNTKQorI2luY2x1ZGUgIkxvbmdNb3VzZVByZXNz
Q29udHJvbGxlci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXJyYXk7CiB9
CkBAIC0xNDAsNiArMTQ0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIERyYXdpbmdB
cmVhOwogY2xhc3MgSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2FyZExpc3Q7CitjbGFzcyBMb25nTW91
c2VQcmVzc0NvbnRyb2xsZXI7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI7CiBjbGFzcyBQYWdlQmFubmVyOwogY2xhc3MgUGFnZU92ZXJsYXk7CkBAIC0yMzgsNiAr
MjQzLDEwIEBAIHB1YmxpYzoKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdlciogZnVsbFNjcmVlbk1h
bmFnZXIoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgTG9u
Z01vdXNlUHJlc3NDb250cm9sbGVyJiBsb25nTW91c2VQcmVzc0NvbnRyb2xsZXIoKTsKKyNlbmRp
ZgorCiAgICAgLy8gLS0gQ2FsbGVkIGJ5IHRoZSBEcmF3aW5nQXJlYS4KICAgICAvLyBGSVhNRTog
V2UgY291bGQgZ2VuZXJpY2l6ZSB0aGVzZSBpbnRvIGEgRHJhd2luZ0FyZWEgY2xpZW50IGludGVy
ZmFjZS4gV291bGQgdGhhdCBiZSBiZW5lZmljaWFsPwogICAgIHZvaWQgZHJhd1JlY3QoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwpAQCAtMTE2Miw2
ICsxMTcxLDEwIEBAIHByaXZhdGU6CiAKICAgICBGaW5kQ29udHJvbGxlciBtX2ZpbmRDb250cm9s
bGVyOwogCisjaWYgRU5BQkxFKExPTkdfTU9VU0VfUFJFU1MpCisgICAgc3RkOjp1bmlxdWVfcHRy
PExvbmdNb3VzZVByZXNzQ29udHJvbGxlcj4gbV9sb25nTW91c2VQcmVzc0NvbnRyb2xsZXI7Cisj
ZW5kaWYKKwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgUmVmUHRyPFdlYkluc3BlY3Rvcj4g
bV9pbnNwZWN0b3I7CiAjZW5kaWYK
</data>
<flag name="commit-queue"
          id="260932"
          type_id="3"
          status="-"
          setter="prandolph"
    />
          </attachment>
      

    </bug>

</bugzilla>