<?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>213763</bug_id>
          
          <creation_ts>2020-06-29 16:44:42 -0700</creation_ts>
          <short_desc>Swipe snapshot is removed too early when swiping away from a page that is still loading</short_desc>
          <delta_ts>2020-07-01 17:32:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>beidson</cc>
    
    <cc>berto</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1667354</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-06-29 16:44:42 -0700</bug_when>
    <thetext>Swipe snapshot is removed too early when swiping away from a page that is still loading</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667356</commentid>
    <comment_count>1</comment_count>
      <attachid>403138</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-06-29 16:45:39 -0700</bug_when>
    <thetext>Created attachment 403138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667357</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-06-29 16:45:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/64576811&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667358</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-06-29 16:47:19 -0700</bug_when>
    <thetext>swipe-test.js has some extra unused stuff in it, but it&apos;s a copy of the one from the non-HTTP tests directory, so I think it&apos;s preferable this way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667366</commentid>
    <comment_count>4</comment_count>
      <attachid>403142</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-06-29 17:06:58 -0700</bug_when>
    <thetext>Created attachment 403142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667399</commentid>
    <comment_count>5</comment_count>
      <attachid>403142</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-06-29 18:16:57 -0700</bug_when>
    <thetext>Comment on attachment 403142
Patch

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

it looks like GTK and WPE some love :(

&gt; Source/WebKit/UIProcess/PageClient.h:467
&gt; +    virtual void didFinishNavigation(API::Navigation*) = 0;
&gt; +    virtual void didFailNavigation(API::Navigation*) = 0;
&gt; +    virtual void didSameDocumentNavigationForMainFrame(API::Navigation*, SameDocumentNavigationType) = 0;

Can we use `API::Navigation&amp;` for all of this plumbing instead so we know that it&apos;s providing something that exists?  It seems less-than-ideal to me to have the possibility of a function called `_didFinishNavigation` that passes a `nullptr` instead of an `API::Navigation` 😅

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:4875
&gt; +        pageClient().didFinishNavigation(navigation.get());

Should we still include some mention to &quot;main frame&quot; in these renamed function names since they&apos;re only called if `isMainFrame`?  i.e. `didFinishMainFrameNavigation`

&gt; Source/WebKit/UIProcess/mac/ViewGestureControllerMac.mm:647
&gt; +    m_pendingNavigation = nullptr;

I think we should also do this inside `ViewGestureController::removeSwipeSnapshot` for GTK (`ViewGestureControllerGtk.cpp`)

&gt; LayoutTests/http/tests/swipe/resources/swipe-test.js:42
&gt; +    var duration = Date.now() - window.localStorage[key + &quot;swipeStartTime&quot;];

NIT: `let`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667403</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-06-29 18:26:04 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #5)
&gt; Comment on attachment 403142 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=403142&amp;action=review
&gt; 
&gt; it looks like GTK and WPE some love :(

Yep, uploading a new patch.

&gt; &gt; Source/WebKit/UIProcess/PageClient.h:467
&gt; &gt; +    virtual void didFinishNavigation(API::Navigation*) = 0;
&gt; &gt; +    virtual void didFailNavigation(API::Navigation*) = 0;
&gt; &gt; +    virtual void didSameDocumentNavigationForMainFrame(API::Navigation*, SameDocumentNavigationType) = 0;
&gt; 
&gt; Can we use `API::Navigation&amp;` for all of this plumbing instead so we know
&gt; that it&apos;s providing something that exists?  It seems less-than-ideal to me
&gt; to have the possibility of a function called `_didFinishNavigation` that
&gt; passes a `nullptr` instead of an `API::Navigation` 😅

Sadly, it is currently possible to get a null here.

&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.cpp:4875
&gt; &gt; +        pageClient().didFinishNavigation(navigation.get());
&gt; 
&gt; Should we still include some mention to &quot;main frame&quot; in these renamed
&gt; function names since they&apos;re only called if `isMainFrame`?  i.e.
&gt; `didFinishMainFrameNavigation`

Nope, Navigation is a main-frame thing in the WebKit2 API (see e.g. WKNavigationDelegate); these names are a holdover from the olden days.

(Possible we should *remove* it from the SameDocument one, really, but I am much too lazy).

&gt; &gt; Source/WebKit/UIProcess/mac/ViewGestureControllerMac.mm:647
&gt; &gt; +    m_pendingNavigation = nullptr;
&gt; 
&gt; I think we should also do this inside
&gt; `ViewGestureController::removeSwipeSnapshot` for GTK
&gt; (`ViewGestureControllerGtk.cpp`)

Quite!

&gt; &gt; LayoutTests/http/tests/swipe/resources/swipe-test.js:42
&gt; &gt; +    var duration = Date.now() - window.localStorage[key + &quot;swipeStartTime&quot;];
&gt; 
&gt; NIT: `let`

You JavaScript people :) 

Thank you for your eyes!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667404</commentid>
    <comment_count>7</comment_count>
      <attachid>403153</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-06-29 18:31:11 -0700</bug_when>
    <thetext>Created attachment 403153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667406</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-06-29 18:32:07 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667424</commentid>
    <comment_count>9</comment_count>
      <attachid>403162</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-06-29 19:33:39 -0700</bug_when>
    <thetext>Created attachment 403162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667492</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-06-30 00:03:36 -0700</bug_when>
    <thetext>Test failures look legit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668093</commentid>
    <comment_count>11</comment_count>
      <attachid>403331</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-07-01 16:23:34 -0700</bug_when>
    <thetext>Created attachment 403331
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668095</commentid>
    <comment_count>12</comment_count>
      <attachid>403331</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-01 16:28:48 -0700</bug_when>
    <thetext>Comment on attachment 403331
Patch

Looks great. I’m going to say review+ even before EWS tells us what we should really think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668099</commentid>
    <comment_count>13</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-07-01 16:50:15 -0700</bug_when>
    <thetext>Just gotta skip the test on WK1!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668102</commentid>
    <comment_count>14</comment_count>
      <attachid>403334</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-07-01 16:53:04 -0700</bug_when>
    <thetext>Created attachment 403334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668110</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-01 17:32:12 -0700</bug_when>
    <thetext>Committed r263825: &lt;https://trac.webkit.org/changeset/263825&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403334.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403138</attachid>
            <date>2020-06-29 16:45:39 -0700</date>
            <delta_ts>2020-06-29 17:06:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213763-20200629164538.patch</filename>
            <type>text/plain</type>
            <size>26635</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJlOTc1ZDMyODcwZTk2YzFk
ZTg0YjRlOGNlOTZmMGUyYTVmYjI1MzEuLjFkNmM1ZDRhYjI3MWQ0M2NjN2JlYmIyMTE1YjllMzNk
NWY0OGE2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMjAtMDYtMjkgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3dpcGUgc25hcHNob3Qg
aXMgcmVtb3ZlZCB0b28gZWFybHkgd2hlbiBzd2lwaW5nIGF3YXkgZnJvbSBhIHBhZ2UgdGhhdCBp
cyBzdGlsbCBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTM3NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0NTc2ODExPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVz
dHMvc3dpcGUvc3dpcGUtYmFjay13aXRoLW91dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0aW9uLmh0
bWwKKworICAgICAgICBXaGVuIHN3aXBpbmcgYmFjayBmcm9tIGEgcGFnZSB0aGF0IGlzIHN0aWxs
IGxvYWRpbmcsIHdoZW4gdGhlIHN3aXBlIGNvbW1pdHMsCisgICAgICAgIGFuZCB3ZSBzdGFydCBu
YXZpZ2F0aW5nIGJhY2sgdG8gdGhlIHByZXZpb3VzIHBhZ2UsIHRoZSB1bmZpbmlzaGVkIGZvcndh
cmQgbmF2aWdhdGlvbgorICAgICAgICBpcyBjYW5jZWxsZWQuCisKKyAgICAgICAgVGhpcyBjYW5j
ZWxsYXRpb24gcmVzdWx0ZWQgaW4gYSAiZGlkRmFpbExvYWRGb3JNYWluRnJhbWUiIG1ha2luZyBp
dCB0byBWaWV3R2VzdHVyZUNvbnRyb2xsZXIsCisgICAgICAgIHdoaWNoIHRvb2sgaXQgYXMgYW4g
aW5kaWNhdGlvbiB0aGF0IHRoZSBuYXZpZ2F0aW9uICppdCogd2FzIGludGVyZXN0ZWQgaW4gKHRo
ZSBiYWNrIG5hdmlnYXRpb24pCisgICAgICAgIGhhZCBmYWlsZWQsIGFuZCBpbW1lZGlhdGVseSBy
ZW1vdmVkIHRoZSBzbmFwc2hvdC4KKworICAgICAgICBJbnN0ZWFkIG9mIGxpc3RlbmluZyB0byBh
bnkgcmFuZG9tIG5hdmlnYXRpb24ncyBsb2FkIG5vdGlmaWNhdGlvbnMsIGtlZXAgdHJhY2sgb2Yg
dGhlIG5hdmlnYXRpb24KKyAgICAgICAgc3RhcnRlZCBieSBnb1RvQmFja0ZvcndhcmRJdGVtLCBh
bmQgb25seSBsaXN0ZW4gdG8gbm90aWZpY2F0aW9ucyBmcm9tIGl0LCBpZ25vcmluZyB0aGUgb3Ro
ZXJzLgorCisgICAgICAgIFRoaXMgcmVxdWlyZXMgYSBidW5jaCBvZiBwbHVtYmluZyB0byBnZXQg
dGhlIG5hdmlnYXRpb24gZnJvbSBXZWJQYWdlUHJveHkgdG8gVmlld0dlc3R1cmVDb250cm9sbGVy
LAorICAgICAgICBidXQgaXMgb3RoZXJ3aXNlIGZhaXJseSB0cml2aWFsLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZEZpbmlzaE5h
dmlnYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkRmFpbE5hdmlnYXRpb246XSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5G
cmFtZTpvZlR5cGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkRmluaXNoTG9hZEZvck1h
aW5GcmFtZV0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZEZhaWxMb2FkRm9y
TWFpbkZyYW1lXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkU2FtZURvY3Vt
ZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNo
TmF2aWdhdGlvblRlcm1pbmFsU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNv
bnRyb2xsZXI6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUpOgorICAgICAg
ICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OndpbGxFbmRTd2lwZUdlc3R1cmUpOgor
ICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNoTWFpbkZyYW1l
TG9hZFRlcm1pbmFsU3RhdGUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVy
OjpkaWRGaW5pc2hOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250
cm9sbGVyOjpkaWRGYWlsTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJl
Q29udHJvbGxlcjo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUp
OiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6OmRpZEZpbmlzaE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50SW1wbDo6ZGlkRmFpbE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFp
bkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjp3
aWxsRW5kU3dpcGVHZXN0dXJlKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9s
bGVyOjpyZXNldFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
TWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaE5hdmlnYXRpb24pOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbE5hdmlnYXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1h
aW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2Fk
Rm9yTWFpbkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dl
c3R1cmVDb250cm9sbGVyOjpyZXNldFN0YXRlKToKKwogMjAyMC0wNi0yMyAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgSFRUUC8zIGV4
cGVyaW1lbnRhbCBmZWF0dXJlIHdvcmsgb24gaU9TIGFuZCBvbmx5IGNyZWF0ZSBzdG9yYWdlIGRp
cmVjdG9yeSBpZiBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvaW9zL1dLV2ViVmlld0lPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9X
S1dlYlZpZXdJT1MuaAppbmRleCA3N2JjMDgzMjA3YjUwZDI5OTE2OWMxMmY0MDRhNTAzZmFjY2Y1
YmYxLi5hMWVhZGJjY2E2OWIwZWY1MTRiMmFhZmM4YjNkYzJkZjc4NzE2ZTRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKQEAgLTg0LDkgKzg0
LDkgQEAKIC0gKHZvaWQpX2RpZENvbXBsZXRlQW5pbWF0ZWRSZXNpemU7CiAKIC0gKHZvaWQpX2Rp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lOwotLSAodm9pZClfZGlkRmluaXNoTG9h
ZEZvck1haW5GcmFtZTsKLS0gKHZvaWQpX2RpZEZhaWxMb2FkRm9yTWFpbkZyYW1lOwotLSAodm9p
ZClfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTooV2ViS2l0OjpTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uVHlwZSluYXZpZ2F0aW9uVHlwZTsKKy0gKHZvaWQpX2RpZEZpbmlzaE5h
dmlnYXRpb246KEFQSTo6TmF2aWdhdGlvbiopbmF2aWdhdGlvbjsKKy0gKHZvaWQpX2RpZEZhaWxO
YXZpZ2F0aW9uOihBUEk6Ok5hdmlnYXRpb24qKW5hdmlnYXRpb247CistICh2b2lkKV9kaWRTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lOihBUEk6Ok5hdmlnYXRpb24qKW5hdmlnYXRp
b24gb2ZUeXBlOihXZWJLaXQ6OlNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKW5hdmlnYXRpb25U
eXBlOwogCiAtIChCT09MKV9pc1Nob3dpbmdWaWRlb1BpY3R1cmVJblBpY3R1cmU7CiAtIChCT09M
KV9tYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGljdHVyZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggYTBlOGIxODJj
NmI3Zjk1ZTFjNjA3ZWE5NzBkYWI0MGYxNDU4ZWJhZC4uNzZiOTI2Yjc3ZDMyOWZkODc2MWM1ZWY4
ODliOWZhNWZlYjExODkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2lvcy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdJT1MubW0KQEAgLTIxNDYsMjQgKzIxNDYsMjQgQEAgLSAodm9pZClfZGlkQ29t
cGxldGVBbmltYXRlZFJlc2l6ZQogICAgICAgICBfY2FsbGJhY2tzRGVmZXJyZWREdXJpbmdSZXNp
emUudGFrZUxhc3QoKSgpOwogfQogCi0tICh2b2lkKV9kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1l
CistICh2b2lkKV9kaWRGaW5pc2hOYXZpZ2F0aW9uOihBUEk6Ok5hdmlnYXRpb24qKW5hdmlnYXRp
b24KIHsKICAgICBpZiAoX2dlc3R1cmVDb250cm9sbGVyKQotICAgICAgICBfZ2VzdHVyZUNvbnRy
b2xsZXItPmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKTsKKyAgICAgICAgX2dlc3R1cmVDb250
cm9sbGVyLT5kaWRGaW5pc2hOYXZpZ2F0aW9uKG5hdmlnYXRpb24pOwogfQogCi0tICh2b2lkKV9k
aWRGYWlsTG9hZEZvck1haW5GcmFtZQorLSAodm9pZClfZGlkRmFpbE5hdmlnYXRpb246KEFQSTo6
TmF2aWdhdGlvbiopbmF2aWdhdGlvbgogewogICAgIGlmIChfZ2VzdHVyZUNvbnRyb2xsZXIpCi0g
ICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKTsKKyAg
ICAgICAgX2dlc3R1cmVDb250cm9sbGVyLT5kaWRGYWlsTmF2aWdhdGlvbihuYXZpZ2F0aW9uKTsK
IH0KIAotLSAodm9pZClfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTooV2Vi
S2l0OjpTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSluYXZpZ2F0aW9uVHlwZQorLSAodm9pZClf
ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTooQVBJOjpOYXZpZ2F0aW9uKilu
YXZpZ2F0aW9uIG9mVHlwZTooV2ViS2l0OjpTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSluYXZp
Z2F0aW9uVHlwZQogewogICAgIFtfY3VzdG9tQ29udGVudFZpZXcgd2ViX2RpZFNhbWVEb2N1bWVu
dE5hdmlnYXRpb246dG9BUEkobmF2aWdhdGlvblR5cGUpXTsKIAogICAgIGlmIChfZ2VzdHVyZUNv
bnRyb2xsZXIpCi0gICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+ZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvck1haW5GcmFtZShuYXZpZ2F0aW9uVHlwZSk7CisgICAgICAgIF9nZXN0dXJlQ29u
dHJvbGxlci0+ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShuYXZpZ2F0aW9u
LCBuYXZpZ2F0aW9uVHlwZSk7CiB9CiAKIC0gKHZvaWQpX2tleWJvYXJkQ2hhbmdlZFdpdGhJbmZv
OihOU0RpY3Rpb25hcnkgKilrZXlib2FyZEluZm8gYWRqdXN0U2Nyb2xsVmlldzooQk9PTClhZGp1
c3RTY3JvbGxWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggMmU2NjYy
OGFiNWM3MDhmZmYxMjEwZTU4N2NkNGE4NTI5YjgwZTgxNi4uY2JhNWE2OGFlNmFiMTM1ZmNlZTdm
NmNkZWIyMWIxMGI1NGM1NTNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApA
QCAtNjcsNiArNjcsNyBAQCBPQkpDX0NMQVNTIFdLVmlldzsKIG5hbWVzcGFjZSBBUEkgewogY2xh
c3MgQXR0YWNobWVudDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CitjbGFzcyBOYXZpZ2F0aW9uOwog
Y2xhc3MgT2JqZWN0OwogY2xhc3MgT3BlblBhbmVsUGFyYW1ldGVyczsKIGNsYXNzIFNlY3VyaXR5
T3JpZ2luOwpAQCAtNDYxLDkgKzQ2Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpID0gMDsKIAogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRp
b25UeXBlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpO
YXZpZ2F0aW9uKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTmF2aWdhdGlvbihBUEk6
Ok5hdmlnYXRpb24qKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmln
YXRpb25Gb3JNYWluRnJhbWUoQVBJOjpOYXZpZ2F0aW9uKiwgU2FtZURvY3VtZW50TmF2aWdhdGlv
blR5cGUpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3Io
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3Bw
CmluZGV4IDljZWEyYjAwMjg4YTlmMTM0OWRjMjFmNzI1ZGVkMDY0ZjZmNmU4OGIuLmMyNWNjMWVh
NTgzNjdlMTkzMGI5Y2M2ZTEzODYwZjIwOTFhNzE1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMjA3LDggKzIwNywxMSBA
QCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkK
ICAgICBtX3NuYXBzaG90UmVtb3ZhbFRyYWNrZXIuZXZlbnRPY2N1cnJlZChTbmFwc2hvdFJlbW92
YWxUcmFja2VyOjpTY3JvbGxQb3NpdGlvblJlc3RvcmF0aW9uKTsKIH0KIAotdm9pZCBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNoTWFpbkZyYW1lTG9hZFRlcm1pbmFsU3RhdGUoKQordm9p
ZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNoTmF2aWdhdGlvblRlcm1pbmFsU3RhdGUo
QVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKQogeworICAgIGlmICghbV9wZW5kaW5nTmF2aWdh
dGlvbiB8fCBuYXZpZ2F0aW9uICE9IG1fcGVuZGluZ05hdmlnYXRpb24pCisgICAgICAgIHJldHVy
bjsKKwogICAgIGlmIChtX3NuYXBzaG90UmVtb3ZhbFRyYWNrZXIuaXNQYXVzZWQoKSAmJiBtX3Nu
YXBzaG90UmVtb3ZhbFRyYWNrZXIuaGFzUmVtb3ZhbENhbGxiYWNrKCkpIHsKICAgICAgICAgcmVt
b3ZlU3dpcGVTbmFwc2hvdCgpOwogICAgICAgICByZXR1cm47CkBAIC0yMjUsOCArMjI4LDExIEBA
IHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZWFjaE1haW5GcmFtZUxvYWRUZXJtaW5h
bFN0YXRlKCkKICAgICBjaGVja0ZvckFjdGl2ZUxvYWRzKCk7CiB9CiAKLXZvaWQgVmlld0dlc3R1
cmVDb250cm9sbGVyOjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVE
b2N1bWVudE5hdmlnYXRpb25UeXBlIHR5cGUpCit2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6
ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShBUEk6Ok5hdmlnYXRpb24qIG5h
dmlnYXRpb24sIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlIHR5cGUpCiB7CisgICAgaWYgKCFt
X3BlbmRpbmdOYXZpZ2F0aW9uIHx8IG5hdmlnYXRpb24gIT0gbV9wZW5kaW5nTmF2aWdhdGlvbikK
KyAgICAgICAgcmV0dXJuOworCiAgICAgZGlkU3RhcnRQcm92aXNpb25hbE9yU2FtZURvY3VtZW50
TG9hZEZvck1haW5GcmFtZSgpOwogCiAgICAgYm9vbCBjYW5jZWxsZWRPdXRzdGFuZGluZ0V2ZW50
ID0gZmFsc2U7CkBAIC01NzYsNyArNTgyLDcgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6
OndpbGxFbmRTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYgdGFyZ2V0SXQKICAg
ICBhdXRvIHJlbmRlclRyZWVTaXplVGhyZXNob2xkID0gcmVuZGVyVHJlZVNpemUgKiBzd2lwZVNu
YXBzaG90UmVtb3ZhbFJlbmRlclRyZWVTaXplVGFyZ2V0RnJhY3Rpb247CiAKICAgICBtX2RpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkID0gZmFsc2U7Ci0gICAgbV93ZWJQYWdlUHJveHkuZ29Ub0JhY2tG
b3J3YXJkSXRlbSh0YXJnZXRJdGVtKTsKKyAgICBtX3BlbmRpbmdOYXZpZ2F0aW9uID0gbV93ZWJQ
YWdlUHJveHkuZ29Ub0JhY2tGb3J3YXJkSXRlbSh0YXJnZXRJdGVtKTsKIAogICAgIGF1dG8qIGN1
cnJlbnRJdGVtID0gbV93ZWJQYWdlUHJveHkuYmFja0ZvcndhcmRMaXN0KCkuY3VycmVudEl0ZW0o
KTsKICAgICAvLyBUaGUgbWFpbiBmcmFtZSB3aWxsIG5vdCBiZSBuYXZpZ2F0ZWQgc28gaGlkZSB0
aGUgc25hcHNob3QgcmlnaHQgYXdheS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmll
d0dlc3R1cmVDb250cm9sbGVyLmgKaW5kZXggNDM0MzQ5MGZlNGJmYjQ5ZWQ4ZmNkYjJmZjFmMTgw
MWYxNjk1NDk5OS4uYTFkZmQ5NTg1NWM2MTQyNzBlZWU1Y2NiNjFmNDI4ZDMwNGJiYWViZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmgKQEAg
LTY3LDYgKzY3LDEwIEBAIGNsYXNzIElPU3VyZmFjZTsKIH0KICNlbmRpZgogCituYW1lc3BhY2Ug
QVBJIHsKK2NsYXNzIE5hdmlnYXRpb247Cit9CisKICNpZiBQTEFURk9STShNQUMpCiB0eXBlZGVm
IE5TRXZlbnQqIFBsYXRmb3JtU2Nyb2xsRXZlbnQ7CiAjZWxpZiBQTEFURk9STShHVEspCkBAIC0x
NTAsMTQgKzE1NCwxNCBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6Q29sb3IgYmFja2dyb3VuZENv
bG9yRm9yQ3VycmVudFNuYXBzaG90KCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kQ29sb3JG
b3JDdXJyZW50U25hcHNob3Q7IH0KIAogICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JNYWluRnJhbWUoKTsKLSAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSB7IGRp
ZFJlYWNoTWFpbkZyYW1lTG9hZFRlcm1pbmFsU3RhdGUoKTsgfQotICAgIHZvaWQgZGlkRmFpbExv
YWRGb3JNYWluRnJhbWUoKSB7IGRpZFJlYWNoTWFpbkZyYW1lTG9hZFRlcm1pbmFsU3RhdGUoKTsg
fQorICAgIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRp
b24pIHsgZGlkUmVhY2hOYXZpZ2F0aW9uVGVybWluYWxTdGF0ZShuYXZpZ2F0aW9uKTsgfQorICAg
IHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKSB7IGRp
ZFJlYWNoTmF2aWdhdGlvblRlcm1pbmFsU3RhdGUobmF2aWdhdGlvbik7IH0KICAgICB2b2lkIGRp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpOwogICAgIHZvaWQgZGlk
UmVwYWludEFmdGVyTmF2aWdhdGlvbigpOwogICAgIHZvaWQgZGlkSGl0UmVuZGVyVHJlZVNpemVU
aHJlc2hvbGQoKTsKICAgICB2b2lkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwotICAgIHZv
aWQgZGlkUmVhY2hNYWluRnJhbWVMb2FkVGVybWluYWxTdGF0ZSgpOwotICAgIHZvaWQgZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZSk7CisgICAgdm9pZCBkaWRSZWFjaE5hdmlnYXRpb25UZXJtaW5hbFN0YXRlKEFQSTo6TmF2aWdh
dGlvbiopOworICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShB
UEk6Ok5hdmlnYXRpb24qLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSk7CiAKICAgICB2b2lk
IGNoZWNrRm9yQWN0aXZlTG9hZHMoKTsKIApAQCAtMzI3LDYgKzMzMSw4IEBAIHByaXZhdGU6CiAg
ICAgV2Vha1B0cjxXZWJQYWdlUHJveHk+IG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNl
UGFnZTsKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBtX3dlYlBhZ2VQcm94eUZvckJhY2tGb3J3
YXJkTGlzdEZvckN1cnJlbnRTd2lwZTsKIAorICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG1f
cGVuZGluZ05hdmlnYXRpb247CisKICAgICBHZXN0dXJlSUQgbV9jdXJyZW50R2VzdHVyZUlEOwog
CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCBhYTUwMWVlM2RjMTBiNjU2ODRlNjM1ODBhZjdlMmVhYTUyY2JmMWMw
Li4zMDcwNDc2MmIwOTM5Y2FmMDgzZmY1MzcyYWZmMzI0ZjFjYjAyZmI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ4NzIsNyArNDg3Miw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIEZyYW1lSW5mb0RhdGEmCiAKICAgICBpZiAoaXNNYWluRnJhbWUpIHsKICAgICAgICAgcmVw
b3J0UGFnZUxvYWRSZXN1bHQoKTsKLSAgICAgICAgcGFnZUNsaWVudCgpLmRpZEZpbmlzaExvYWRG
b3JNYWluRnJhbWUoKTsKKyAgICAgICAgcGFnZUNsaWVudCgpLmRpZEZpbmlzaE5hdmlnYXRpb24o
bmF2aWdhdGlvbi5nZXQoKSk7CiAKICAgICAgICAgaWYgKG5hdmlnYXRpb24pCiAgICAgICAgICAg
ICBuYXZpZ2F0aW9uLT5zZXRDbGllbnROYXZpZ2F0aW9uQWN0aXZpdHkobnVsbHB0cik7CkBAIC00
OTI2LDcgKzQ5MjYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmCiAKICAgICBpZiAoaXNNYWlu
RnJhbWUpIHsKICAgICAgICAgcmVwb3J0UGFnZUxvYWRSZXN1bHQoZXJyb3IpOwotICAgICAgICBw
YWdlQ2xpZW50KCkuZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKTsKKyAgICAgICAgcGFnZUNsaWVu
dCgpLmRpZEZhaWxOYXZpZ2F0aW9uKG5hdmlnYXRpb24uZ2V0KCkpOwogICAgICAgICBpZiAobmF2
aWdhdGlvbikKICAgICAgICAgICAgIG5hdmlnYXRpb24tPnNldENsaWVudE5hdmlnYXRpb25BY3Rp
dml0eShudWxscHRyKTsKICAgICB9CkBAIC00OTY4LDcgKzQ5NjgsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCB1aQogICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFNhbWVEb2N1bWVudE5h
dmlnYXRpb24oKnRoaXMsIG5hdmlnYXRpb24uZ2V0KCksIG5hdmlnYXRpb25UeXBlLCBtX3Byb2Nl
c3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsK
IAogICAgIGlmIChpc01haW5GcmFtZSkKLSAgICAgICAgcGFnZUNsaWVudCgpLmRpZFNhbWVEb2N1
bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUobmF2aWdhdGlvblR5cGUpOworICAgICAgICBwYWdl
Q2xpZW50KCkuZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShuYXZpZ2F0aW9u
LmdldCgpLCBuYXZpZ2F0aW9uVHlwZSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFu
Z2VNYWluRG9jdW1lbnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IGMyZmRjOTMzYTQxODg4
N2Y3MjM0MThjMDA4MjYxYzk0NmIxYTI5YTEuLmRmM2Q0NGUyZTllOGQxMmM2M2Q5NmMxNmVkNzFk
OGU2NTgwODliZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oCkBAIC0yMjAsOSArMjIwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJl
bW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGlk
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRG
YWlsTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkU2FtZURvY3VtZW50
TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopIG92ZXJy
aWRlOworICAgIHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKEFQSTo6
TmF2aWdhdGlvbiosIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKICAgICB2
b2lkIGRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpZENvbXBsZXRlU3ludGhldGljQ2xpY2soKSBvdmVycmlkZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmlu
ZGV4IDM4NzlhYmQxNWE2NDNiMGNiZTI2NmY5ZjUyMWJhMWU2NmRlZjdkMzMuLjE0OTdmNTBlMGQz
ZTAzMTk4MjUxNmI5YWNmYTgwNjM3Y2ZiYTE1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTc5MCwxOSArNzkwLDE5IEBAIHZv
aWQgUGFnZUNsaWVudEltcGw6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5G
cmFtZSgpCiB7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExvYWRGb3JNYWlu
RnJhbWUoKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTmF2aWdhdGlvbihBUEk6Ok5h
dmlnYXRpb24qIG5hdmlnYXRpb24pCiB7Ci0gICAgW21fd2ViVmlldyBfZGlkRmluaXNoTG9hZEZv
ck1haW5GcmFtZV07CisgICAgW21fd2ViVmlldyBfZGlkRmluaXNoTmF2aWdhdGlvbjpuYXZpZ2F0
aW9uXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUo
KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9u
KiBuYXZpZ2F0aW9uKQogewotICAgIFttX3dlYlZpZXcgX2RpZEZhaWxMb2FkRm9yTWFpbkZyYW1l
XTsKKyAgICBbbV93ZWJWaWV3IF9kaWRGYWlsTmF2aWdhdGlvbjpuYXZpZ2F0aW9uXTsKIH0KIAot
dm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFt
ZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSkKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoQVBJOjpOYXZp
Z2F0aW9uKiBuYXZpZ2F0aW9uLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9u
VHlwZSkKIHsKLSAgICBbbV93ZWJWaWV3IF9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFp
bkZyYW1lOm5hdmlnYXRpb25UeXBlXTsKKyAgICBbbV93ZWJWaWV3IF9kaWRTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uRm9yTWFpbkZyYW1lOm5hdmlnYXRpb24gb2ZUeXBlOm5hdmlnYXRpb25UeXBlXTsK
IH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xs
ZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9s
bGVySU9TLm1tCmluZGV4IDUyOTVmMWQ5MmQyNzEwZDIwNTNmM2ZhZTViOWZmMzAxZTNjNTI5OWQu
Ljk3YzE1YzYwMTZjYjczN2YxZTE1ZmIzZmFiZTViOTRjODJmNGNhMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5t
bQpAQCAtMjkyLDcgKzI5Miw3IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjp3aWxsRW5k
U3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIHRhcmdldEl0CiAgICAgICAgIG1f
c25hcHNob3RSZW1vdmFsVGFyZ2V0UmVuZGVyVHJlZVNpemUgPSBzbmFwc2hvdC0+cmVuZGVyVHJl
ZVNpemUoKSAqIHN3aXBlU25hcHNob3RSZW1vdmFsUmVuZGVyVHJlZVNpemVUYXJnZXRGcmFjdGlv
bjsKIAogICAgIG1fZGlkU3RhcnRQcm92aXNpb25hbExvYWQgPSBmYWxzZTsKLSAgICBtX3dlYlBh
Z2VQcm94eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZS0+Z29Ub0JhY2tGb3J3YXJk
SXRlbSh0YXJnZXRJdGVtKTsKKyAgICBtX3BlbmRpbmdOYXZpZ2F0aW9uID0gbV93ZWJQYWdlUHJv
eHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGUtPmdvVG9CYWNrRm9yd2FyZEl0ZW0o
dGFyZ2V0SXRlbSk7CiAKICAgICBhdXRvKiBjdXJyZW50SXRlbSA9IG1fd2ViUGFnZVByb3h5Rm9y
QmFja0ZvcndhcmRMaXN0Rm9yQ3VycmVudFN3aXBlLT5iYWNrRm9yd2FyZExpc3QoKS5jdXJyZW50
SXRlbSgpOwogICAgIC8vIFRoZSBtYWluIGZyYW1lIHdpbGwgbm90IGJlIG5hdmlnYXRlZCBzbyBo
aWRlIHRoZSBzbmFwc2hvdCByaWdodCBhd2F5LgpAQCAtNDM3LDYgKzQzNyw4IEBAIHZvaWQgVmll
d0dlc3R1cmVDb250cm9sbGVyOjpyZXNldFN0YXRlKCkKIAogICAgIG1fYmFja2dyb3VuZENvbG9y
Rm9yQ3VycmVudFNuYXBzaG90ID0gV2ViQ29yZTo6Q29sb3IoKTsKIAorICAgIG1fcGVuZGluZ05h
dmlnYXRpb24gPSBudWxscHRyOworCiAgICAgZGlkRW5kR2VzdHVyZSgpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IDUzMjAz
YzBiYWI3ZThmYzJmMWI3NWQzNDBjMDU1YzkzODU5MDA1MGUuLjQ2MTg3M2ZkYmY2NDU5OGQ5Njdi
ZGM2OGMzNzk3NmRkMmNmYmQ3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbE1hYy5oCkBAIC0yMTUsOSArMjE1LDkgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKICAg
ICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpIG92ZXJy
aWRlOwotICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOwotICAg
IHZvaWQgZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFNh
bWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGUpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRp
b24qKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZhaWxOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlv
biopIG92ZXJyaWRlOworICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5G
cmFtZShBUEk6Ok5hdmlnYXRpb24qLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBoYW5kbGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2UoY29uc3QgU3Ry
aW5nJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRU
ZXN0KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHREYXRhJiwgYm9vbCBjb250ZW50UHJldmVudHNEZWZh
dWx0LCBBUEk6Ok9iamVjdCopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDdiN2U2NmM3OWVkYWY4NGE4YTE0NzU2
NTI0ZTE2YzI2ZTU3ODk2YzYuLmU0NzdiY2VmZDQyYmU1Y2UwYjRkNGM4YTYxNWNkYWI1ODM3OGQ1
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxN
YWMubW0KQEAgLTc4OCwyNiArNzg4LDI2IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpCiAgICAgICAgIGdlc3R1cmVDb250
cm9sbGVyLT5kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKTsKIH0K
IAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiogbmF2
aWdhdGlvbikKIHsKICAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9IG1faW1wbC0+Z2Vz
dHVyZUNvbnRyb2xsZXIoKSkKLSAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZpbmlzaExv
YWRGb3JNYWluRnJhbWUoKTsKKyAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZpbmlzaE5h
dmlnYXRpb24obmF2aWdhdGlvbik7CiAKICAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0
aW9uKE5TQWNjZXNzaWJpbGl0eVVuaWdub3JlZEFuY2VzdG9yKG1fdmlldyksIGtBWExvYWRDb21w
bGV0ZU5vdGlmaWNhdGlvbik7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2Fk
Rm9yTWFpbkZyYW1lKCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKEFQ
STo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbikKIHsKICAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJv
bGxlciA9IG1faW1wbC0+Z2VzdHVyZUNvbnRyb2xsZXIoKSkKLSAgICAgICAgZ2VzdHVyZUNvbnRy
b2xsZXItPmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCk7CisgICAgICAgIGdlc3R1cmVDb250cm9s
bGVyLT5kaWRGYWlsTmF2aWdhdGlvbihuYXZpZ2F0aW9uKTsKIAogICAgIE5TQWNjZXNzaWJpbGl0
eVBvc3ROb3RpZmljYXRpb24oTlNBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkQW5jZXN0b3IobV92aWV3
KSwga0FYTG9hZENvbXBsZXRlTm90aWZpY2F0aW9uKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uVHlwZSB0eXBlKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvck1haW5GcmFtZShBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIFNhbWVEb2N1
bWVudE5hdmlnYXRpb25UeXBlIHR5cGUpCiB7CiAgICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xs
ZXIgPSBtX2ltcGwtPmdlc3R1cmVDb250cm9sbGVyKCkpCi0gICAgICAgIGdlc3R1cmVDb250cm9s
bGVyLT5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKHR5cGUpOworICAgICAg
ICBnZXN0dXJlQ29udHJvbGxlci0+ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFt
ZShuYXZpZ2F0aW9uLCB0eXBlKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6aGFuZGxlQ29u
dHJvbGxlZEVsZW1lbnRJRFJlc3BvbnNlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVy
TWFjLm1tCmluZGV4IDliZTlmNTZkN2E0ZjBhNTU2Y2FiMjRiNzZlNzI1OGE0ZGJmODkzYWEuLjZm
MzM0YTVkMzgwMjMyODFkNjZmMWI5MzY4Yzk5Zjg4M2QzNWI0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQpA
QCAtNjQzLDYgKzY0Myw4IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpyZXNldFN0YXRl
KCkKIAogICAgIG1fYmFja2dyb3VuZENvbG9yRm9yQ3VycmVudFNuYXBzaG90ID0gQ29sb3IoKTsK
IAorICAgIG1fcGVuZGluZ05hdmlnYXRpb24gPSBudWxscHRyOworCiAgICAgZGlkRW5kR2VzdHVy
ZSgpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMTA2ZTcwZDc3YTkxY2E4MjA4ZmNkM2U1YTg5M2VmMTY2ZDg2Yjk2
My4uZDRiNGI5ZGE4ZGY3NDZlMTEzMmVlMGY0OWM0MWUyMmIwMjllZjVmMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDIwLTA2LTI5ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgorCisgICAgICAgIFN3aXBlIHNuYXBzaG90IGlzIHJlbW92ZWQgdG9vIGVhcmx5IHdoZW4g
c3dpcGluZyBhd2F5IGZyb20gYSBwYWdlIHRoYXQgaXMgc3RpbGwgbG9hZGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNzYzCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS82NDU3NjgxMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3Qu
anM6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3dpcGUvc3dpcGUtYmFjay13aXRoLW91
dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zd2lwZS9zd2lwZS1iYWNrLXdpdGgtb3V0c3RhbmRpbmctbG9hZC1jYW5j
ZWxsYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgIEFkZCBhIHRlc3QgdGhhdCBlbnN1cmVzIHRo
YXQgd2UgZG9uJ3QgcmVtb3ZlIHRoZSBzd2lwZSBzbmFwc2hvdCBiZWZvcmUgdGhlICJiYWNrIiBw
YWdlIGlzIGxvYWRlZC4KKyAgICAgICAgQmVmb3JlIHRoaXMgZml4LCB0aGlzIHRlc3QgZmFpbHMg
dGhlIGFzc2VydGlvbiB0aGF0IHdlJ3JlIG9uIHRoZSBmaXJzdCBwYWdlIGluIGRpZFJlbW92ZVN3
aXBlU25hcHNob3RDYWxsYmFjay4KKwogMjAyMC0wNi0yMyAgRGllZ28gUGlubyBHYXJjaWEgIDxk
cGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5p
bmcuIFVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9ucyBhZnRlciByMjYzNDM3LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zd2lwZS9yZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjA5MDMxMjUyYzJlMGRmZDQ5ZDZhOTEyNTY1ZmZlOTJiYzQ2MDA1YwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRl
c3QuanMKQEAgLTAsMCArMSw4NCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoZXhwZWN0ZWQsIGFjdHVh
bCwgbWVzc2FnZSkKK3sKKyAgICBpZiAoZXhwZWN0ZWQgIT0gYWN0dWFsKQorICAgICAgICBsb2co
IkZhaWx1cmUuICIgKyBtZXNzYWdlICsgIiAoZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCArICIsIGFj
dHVhbDogIiArIGFjdHVhbCArICIpIik7Cit9CisKK2Z1bmN0aW9uIGxvZyhzKQoreworICAgIHdp
bmRvdy5sb2NhbFN0b3JhZ2VbInN3aXBlTG9nZ2luZyJdICs9IHMgKyAiPGJyLz4iOworfQorCitm
dW5jdGlvbiBkdW1wTG9nKCkKK3sKKyAgICB3aW5kb3cuZG9jdW1lbnQuYm9keS5pbm5lckhUTUwg
PSB3aW5kb3cubG9jYWxTdG9yYWdlWyJzd2lwZUxvZ2dpbmciXTsKK30KKworZnVuY3Rpb24gdGVz
dENvbXBsZXRlKCkKK3sKKyAgICBkdW1wTG9nKCk7CisgICAgd2luZG93LnRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBpbml0aWFsaXplU3dpcGVUZXN0KCkKK3sKKyAgICB3
aW5kb3cubG9jYWxTdG9yYWdlWyJzd2lwZUxvZ2dpbmciXSA9ICIiOworICAgIHRlc3RSdW5uZXIu
c2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZCh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLmNsZWFy
QmFja0ZvcndhcmRMaXN0KCk7Cit9CisKK2Z1bmN0aW9uIGhhc0luaXRpYWxpemVkU3dpcGVUZXN0
KCkKK3sKKyAgICByZXR1cm4gKCJzd2lwZUxvZ2dpbmciIGluIHdpbmRvdy5sb2NhbFN0b3JhZ2Up
OworfQorCitmdW5jdGlvbiBzdGFydE1lYXN1cmluZ0R1cmF0aW9uKGtleSkKK3sKKyAgICB3aW5k
b3cubG9jYWxTdG9yYWdlW2tleSArICJzd2lwZVN0YXJ0VGltZSJdID0gRGF0ZS5ub3coKTsKK30K
KworZnVuY3Rpb24gbWVhc3VyZWREdXJhdGlvblNob3VsZEJlTGVzc1RoYW4oa2V5LCB0aW1lSW5N
UywgbWVzc2FnZSkKK3sKKyAgICB2YXIgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gd2luZG93Lmxv
Y2FsU3RvcmFnZVtrZXkgKyAic3dpcGVTdGFydFRpbWUiXTsKKyAgICBpZiAoZHVyYXRpb24gPj0g
dGltZUluTVMpCisgICAgICAgIGxvZygiRmFpbHVyZS4gIiArIG1lc3NhZ2UgKyAiIChleHBlY3Rl
ZDogIiArIHRpbWVJbk1TICsgIiwgYWN0dWFsOiAiICsgZHVyYXRpb24gKyAiKSIpOworfQorCitm
dW5jdGlvbiBzdGFydFN3aXBlR2VzdHVyZShjYWxsYmFjaykKK3sKKyAgICBsb2coInN0YXJ0U3dp
cGVHZXN0dXJlIik7CisgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgKGZ1bmN0aW9u
KCkgeworICAgICAgICB1aUNvbnRyb2xsZXIuYmVnaW5CYWNrU3dpcGUoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICB9KTsK
KyAgICB9KSgpO2AsIGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9KTsKK30KKworZnVuY3Rpb24g
Y29tcGxldGVTd2lwZUdlc3R1cmUoY2FsbGJhY2spCit7CisgICAgbG9nKCJjb21wbGV0ZVN3aXBl
R2VzdHVyZSIpOworICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgIChmdW5jdGlvbigp
IHsKKyAgICAgICAgdWlDb250cm9sbGVyLmNvbXBsZXRlQmFja1N3aXBlKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgfSk7
CisgICAgfSkoKTtgLCBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fSk7Cit9CisKK2Z1bmN0aW9u
IHBsYXlFdmVudFN0cmVhbShzdHJlYW0sIGNhbGxiYWNrKQoreworICAgIGxvZygicGxheUV2ZW50
U3RyZWFtIik7CisgICAgaWYgKHRlc3RSdW5uZXIuaXNJT1NGYW1pbHkpIHsKKyAgICAgICAgLy8g
RklYTUU6IFRoaXMgdGVzdCBzaG91bGQgcHJvYmFibHkgbm90IGxvZyBwbGF5RXZlbnRTdHJlYW0K
KyAgICAgICAgLy8gb24gaU9TLCB3aGVyZSBpdCBkb2Vzbid0IGFjdHVhbGx5IGRvIGl0LgorICAg
ICAgICBzZXRUaW1lb3V0KGNhbGxiYWNrLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHVp
Q29udHJvbGxlci5wbGF5QmFja0V2ZW50U3RyZWFtKFxgJHtzdHJlYW19XGAsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAg
fSk7CisgICAgfSkoKTtgLCBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fSk7Cit9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRzdGFu
ZGluZy1sb2FkLWNhbmNlbGxhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRzdGFuZGluZy1sb2FkLWNhbmNlbGxhdGlvbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODlkZWNmZDRjMzcxMjVjZmI1NTk4MTE5Njg5YzNmMGM0
YTFkODg0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3dpcGUv
c3dpcGUtYmFjay13aXRoLW91dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0aW9uLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDcgQEAKK3N0YXJ0U3dpcGVHZXN0dXJlCitkaWRCZWdpblN3aXBlCitjb21w
bGV0ZVN3aXBlR2VzdHVyZQord2lsbEVuZFN3aXBlCitkaWRFbmRTd2lwZQorZGlkUmVtb3ZlU3dp
cGVTbmFwc2hvdAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N3aXBlL3N3
aXBlLWJhY2std2l0aC1vdXRzdGFuZGluZy1sb2FkLWNhbmNlbGxhdGlvbi5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zd2lwZS9zd2lwZS1iYWNrLXdpdGgtb3V0c3RhbmRpbmctbG9hZC1j
YW5jZWxsYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGZkMzZhNzQ2ZWNjMDljMzEyZWU3ZWEyYTMw
MjY3NzI1NjFlZjA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
d2lwZS9zd2lwZS1iYWNrLXdpdGgtb3V0c3RhbmRpbmctbG9hZC1jYW5jZWxsYXRpb24uaHRtbApA
QCAtMCwwICsxLDgzIEBACis8aGVhZD4KKzxzdHlsZT4KK2h0bWwgeworICAgIGZvbnQtc2l6ZTog
MzJwdDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGRpZEJlZ2luU3dpcGVDYWxsYmFjaygpCit7
CisgICAgbG9nKCJkaWRCZWdpblN3aXBlIik7CisKKyAgICBjb21wbGV0ZVN3aXBlR2VzdHVyZSgp
OworfQorCitmdW5jdGlvbiB3aWxsRW5kU3dpcGVDYWxsYmFjaygpCit7CisgICAgbG9nKCJ3aWxs
RW5kU3dpcGUiKTsKKworICAgIHNob3VsZEJlKGZhbHNlLCBpc0ZpcnN0UGFnZSgpLCAiVGhlIHN3
aXBlIHNob3VsZCBub3QgeWV0IGhhdmUgbmF2aWdhdGVkIGF3YXkgZnJvbSB0aGUgc2Vjb25kIHBh
Z2UuIik7Cit9CisKK2Z1bmN0aW9uIGRpZEVuZFN3aXBlQ2FsbGJhY2soKQoreworICAgIGxvZygi
ZGlkRW5kU3dpcGUiKTsKKworICAgIHN0YXJ0TWVhc3VyaW5nRHVyYXRpb24oInNuYXBzaG90UmVt
b3ZhbCIpOworfQorCit2YXIgaGFzUmVtb3ZlZFNuYXBzaG90ID0gZmFsc2U7CisKK2Z1bmN0aW9u
IGRpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjaygpCit7CisgICAgbG9nKCJkaWRSZW1vdmVT
d2lwZVNuYXBzaG90Iik7CisKKyAgICBoYXNSZW1vdmVkU25hcHNob3QgPSB0cnVlOworICAgIAor
ICAgIHNob3VsZEJlKHRydWUsIGlzRmlyc3RQYWdlKCksICJUaGUgc3dpcGUgc2hvdWxkIGhhdmUg
bmF2aWdhdGVkIGJhY2sgdG8gdGhlIGZpcnN0IHBhZ2UuIik7CisKKyAgICB0ZXN0Q29tcGxldGUo
KTsKK30KKworZnVuY3Rpb24gaXNGaXJzdFBhZ2UoKQoreworICAgIHJldHVybiB3aW5kb3cubG9j
YXRpb24uaHJlZi5pbmRleE9mKCJzZWNvbmQiKSA9PSAtMTsKK30KKword2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uICgpIHsKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiVGhpcyB0ZXN0
IG11c3QgYmUgcnVuIGluIFdlYktpdFRlc3RSdW5uZXIuIjsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gaXNGaXJzdFBhZ2UoKSA/ICJmaXJz
dCIgOiAiPGlmcmFtZSBzcmM9Jy9yZXNvdXJjZXMvc2xvdy1pbWFnZS5waHAnPiI7CisKKyAgICBp
ZiAoaXNGaXJzdFBhZ2UoKSkgeworICAgICAgICBpZiAoaGFzSW5pdGlhbGl6ZWRTd2lwZVRlc3Qo
KSkgeworICAgICAgICAgICAgc2hvdWxkQmUoZmFsc2UsIGhhc1JlbW92ZWRTbmFwc2hvdCwgIlRo
ZSBzbmFwc2hvdCBzaG91bGQgbm90IGhhdmUgYmVlbiBzeW5jaHJvbm91c2x5IHJlbW92ZWQgYmVj
YXVzZSBvZiB0aGUgY2FuY2VsbGVkIGZvcndhcmQgbG9hZC4iKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIGluaXRpYWxpemVTd2lwZVRlc3QoKTsKKworICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxEaWRCZWdpblN3aXBlQ2FsbGJhY2soZGlkQmVnaW5Td2lwZUNh
bGxiYWNrKTsKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsV2lsbEVuZFN3aXBlQ2FsbGJhY2so
d2lsbEVuZFN3aXBlQ2FsbGJhY2spOworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRFbmRT
d2lwZUNhbGxiYWNrKGRpZEVuZFN3aXBlQ2FsbGJhY2spOworICAgICAgICB0ZXN0UnVubmVyLmlu
c3RhbGxEaWRSZW1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2soZGlkUmVtb3ZlU3dpcGVTbmFwc2hv
dENhbGxiYWNrKTsKKworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
biAoKSB7IAorICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5kb3cubG9jYXRp
b24uaHJlZiArICI/c2Vjb25kIjsKKyAgICAgICAgfSwgMCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBzdGFydFN3aXBlR2VzdHVyZSgpOworfTsKKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403142</attachid>
            <date>2020-06-29 17:06:58 -0700</date>
            <delta_ts>2020-06-29 18:31:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213763-20200629170658.patch</filename>
            <type>text/plain</type>
            <size>26782</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJlOTc1ZDMyODcwZTk2YzFk
ZTg0YjRlOGNlOTZmMGUyYTVmYjI1MzEuLjFkNmM1ZDRhYjI3MWQ0M2NjN2JlYmIyMTE1YjllMzNk
NWY0OGE2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMjAtMDYtMjkgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3dpcGUgc25hcHNob3Qg
aXMgcmVtb3ZlZCB0b28gZWFybHkgd2hlbiBzd2lwaW5nIGF3YXkgZnJvbSBhIHBhZ2UgdGhhdCBp
cyBzdGlsbCBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTM3NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0NTc2ODExPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVz
dHMvc3dpcGUvc3dpcGUtYmFjay13aXRoLW91dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0aW9uLmh0
bWwKKworICAgICAgICBXaGVuIHN3aXBpbmcgYmFjayBmcm9tIGEgcGFnZSB0aGF0IGlzIHN0aWxs
IGxvYWRpbmcsIHdoZW4gdGhlIHN3aXBlIGNvbW1pdHMsCisgICAgICAgIGFuZCB3ZSBzdGFydCBu
YXZpZ2F0aW5nIGJhY2sgdG8gdGhlIHByZXZpb3VzIHBhZ2UsIHRoZSB1bmZpbmlzaGVkIGZvcndh
cmQgbmF2aWdhdGlvbgorICAgICAgICBpcyBjYW5jZWxsZWQuCisKKyAgICAgICAgVGhpcyBjYW5j
ZWxsYXRpb24gcmVzdWx0ZWQgaW4gYSAiZGlkRmFpbExvYWRGb3JNYWluRnJhbWUiIG1ha2luZyBp
dCB0byBWaWV3R2VzdHVyZUNvbnRyb2xsZXIsCisgICAgICAgIHdoaWNoIHRvb2sgaXQgYXMgYW4g
aW5kaWNhdGlvbiB0aGF0IHRoZSBuYXZpZ2F0aW9uICppdCogd2FzIGludGVyZXN0ZWQgaW4gKHRo
ZSBiYWNrIG5hdmlnYXRpb24pCisgICAgICAgIGhhZCBmYWlsZWQsIGFuZCBpbW1lZGlhdGVseSBy
ZW1vdmVkIHRoZSBzbmFwc2hvdC4KKworICAgICAgICBJbnN0ZWFkIG9mIGxpc3RlbmluZyB0byBh
bnkgcmFuZG9tIG5hdmlnYXRpb24ncyBsb2FkIG5vdGlmaWNhdGlvbnMsIGtlZXAgdHJhY2sgb2Yg
dGhlIG5hdmlnYXRpb24KKyAgICAgICAgc3RhcnRlZCBieSBnb1RvQmFja0ZvcndhcmRJdGVtLCBh
bmQgb25seSBsaXN0ZW4gdG8gbm90aWZpY2F0aW9ucyBmcm9tIGl0LCBpZ25vcmluZyB0aGUgb3Ro
ZXJzLgorCisgICAgICAgIFRoaXMgcmVxdWlyZXMgYSBidW5jaCBvZiBwbHVtYmluZyB0byBnZXQg
dGhlIG5hdmlnYXRpb24gZnJvbSBXZWJQYWdlUHJveHkgdG8gVmlld0dlc3R1cmVDb250cm9sbGVy
LAorICAgICAgICBidXQgaXMgb3RoZXJ3aXNlIGZhaXJseSB0cml2aWFsLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZEZpbmlzaE5h
dmlnYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkRmFpbE5hdmlnYXRpb246XSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5G
cmFtZTpvZlR5cGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkRmluaXNoTG9hZEZvck1h
aW5GcmFtZV0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZEZhaWxMb2FkRm9y
TWFpbkZyYW1lXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkU2FtZURvY3Vt
ZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNo
TmF2aWdhdGlvblRlcm1pbmFsU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNv
bnRyb2xsZXI6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUpOgorICAgICAg
ICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OndpbGxFbmRTd2lwZUdlc3R1cmUpOgor
ICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNoTWFpbkZyYW1l
TG9hZFRlcm1pbmFsU3RhdGUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVy
OjpkaWRGaW5pc2hOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250
cm9sbGVyOjpkaWRGYWlsTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJl
Q29udHJvbGxlcjo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUp
OiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6OmRpZEZpbmlzaE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50SW1wbDo6ZGlkRmFpbE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFp
bkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjp3
aWxsRW5kU3dpcGVHZXN0dXJlKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9s
bGVyOjpyZXNldFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
TWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaE5hdmlnYXRpb24pOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbE5hdmlnYXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1h
aW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2Fk
Rm9yTWFpbkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dl
c3R1cmVDb250cm9sbGVyOjpyZXNldFN0YXRlKToKKwogMjAyMC0wNi0yMyAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgSFRUUC8zIGV4
cGVyaW1lbnRhbCBmZWF0dXJlIHdvcmsgb24gaU9TIGFuZCBvbmx5IGNyZWF0ZSBzdG9yYWdlIGRp
cmVjdG9yeSBpZiBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvaW9zL1dLV2ViVmlld0lPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9X
S1dlYlZpZXdJT1MuaAppbmRleCA3N2JjMDgzMjA3YjUwZDI5OTE2OWMxMmY0MDRhNTAzZmFjY2Y1
YmYxLi5hMWVhZGJjY2E2OWIwZWY1MTRiMmFhZmM4YjNkYzJkZjc4NzE2ZTRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKQEAgLTg0LDkgKzg0
LDkgQEAKIC0gKHZvaWQpX2RpZENvbXBsZXRlQW5pbWF0ZWRSZXNpemU7CiAKIC0gKHZvaWQpX2Rp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lOwotLSAodm9pZClfZGlkRmluaXNoTG9h
ZEZvck1haW5GcmFtZTsKLS0gKHZvaWQpX2RpZEZhaWxMb2FkRm9yTWFpbkZyYW1lOwotLSAodm9p
ZClfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTooV2ViS2l0OjpTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uVHlwZSluYXZpZ2F0aW9uVHlwZTsKKy0gKHZvaWQpX2RpZEZpbmlzaE5h
dmlnYXRpb246KEFQSTo6TmF2aWdhdGlvbiopbmF2aWdhdGlvbjsKKy0gKHZvaWQpX2RpZEZhaWxO
YXZpZ2F0aW9uOihBUEk6Ok5hdmlnYXRpb24qKW5hdmlnYXRpb247CistICh2b2lkKV9kaWRTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lOihBUEk6Ok5hdmlnYXRpb24qKW5hdmlnYXRp
b24gb2ZUeXBlOihXZWJLaXQ6OlNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKW5hdmlnYXRpb25U
eXBlOwogCiAtIChCT09MKV9pc1Nob3dpbmdWaWRlb1BpY3R1cmVJblBpY3R1cmU7CiAtIChCT09M
KV9tYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUluUGljdHVyZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggYTBlOGIxODJj
NmI3Zjk1ZTFjNjA3ZWE5NzBkYWI0MGYxNDU4ZWJhZC4uNzZiOTI2Yjc3ZDMyOWZkODc2MWM1ZWY4
ODliOWZhNWZlYjExODkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2lvcy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdJT1MubW0KQEAgLTIxNDYsMjQgKzIxNDYsMjQgQEAgLSAodm9pZClfZGlkQ29t
cGxldGVBbmltYXRlZFJlc2l6ZQogICAgICAgICBfY2FsbGJhY2tzRGVmZXJyZWREdXJpbmdSZXNp
emUudGFrZUxhc3QoKSgpOwogfQogCi0tICh2b2lkKV9kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1l
CistICh2b2lkKV9kaWRGaW5pc2hOYXZpZ2F0aW9uOihBUEk6Ok5hdmlnYXRpb24qKW5hdmlnYXRp
b24KIHsKICAgICBpZiAoX2dlc3R1cmVDb250cm9sbGVyKQotICAgICAgICBfZ2VzdHVyZUNvbnRy
b2xsZXItPmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKTsKKyAgICAgICAgX2dlc3R1cmVDb250
cm9sbGVyLT5kaWRGaW5pc2hOYXZpZ2F0aW9uKG5hdmlnYXRpb24pOwogfQogCi0tICh2b2lkKV9k
aWRGYWlsTG9hZEZvck1haW5GcmFtZQorLSAodm9pZClfZGlkRmFpbE5hdmlnYXRpb246KEFQSTo6
TmF2aWdhdGlvbiopbmF2aWdhdGlvbgogewogICAgIGlmIChfZ2VzdHVyZUNvbnRyb2xsZXIpCi0g
ICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKTsKKyAg
ICAgICAgX2dlc3R1cmVDb250cm9sbGVyLT5kaWRGYWlsTmF2aWdhdGlvbihuYXZpZ2F0aW9uKTsK
IH0KIAotLSAodm9pZClfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTooV2Vi
S2l0OjpTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSluYXZpZ2F0aW9uVHlwZQorLSAodm9pZClf
ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTooQVBJOjpOYXZpZ2F0aW9uKilu
YXZpZ2F0aW9uIG9mVHlwZTooV2ViS2l0OjpTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSluYXZp
Z2F0aW9uVHlwZQogewogICAgIFtfY3VzdG9tQ29udGVudFZpZXcgd2ViX2RpZFNhbWVEb2N1bWVu
dE5hdmlnYXRpb246dG9BUEkobmF2aWdhdGlvblR5cGUpXTsKIAogICAgIGlmIChfZ2VzdHVyZUNv
bnRyb2xsZXIpCi0gICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+ZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvck1haW5GcmFtZShuYXZpZ2F0aW9uVHlwZSk7CisgICAgICAgIF9nZXN0dXJlQ29u
dHJvbGxlci0+ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShuYXZpZ2F0aW9u
LCBuYXZpZ2F0aW9uVHlwZSk7CiB9CiAKIC0gKHZvaWQpX2tleWJvYXJkQ2hhbmdlZFdpdGhJbmZv
OihOU0RpY3Rpb25hcnkgKilrZXlib2FyZEluZm8gYWRqdXN0U2Nyb2xsVmlldzooQk9PTClhZGp1
c3RTY3JvbGxWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggMmU2NjYy
OGFiNWM3MDhmZmYxMjEwZTU4N2NkNGE4NTI5YjgwZTgxNi4uY2JhNWE2OGFlNmFiMTM1ZmNlZTdm
NmNkZWIyMWIxMGI1NGM1NTNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApA
QCAtNjcsNiArNjcsNyBAQCBPQkpDX0NMQVNTIFdLVmlldzsKIG5hbWVzcGFjZSBBUEkgewogY2xh
c3MgQXR0YWNobWVudDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CitjbGFzcyBOYXZpZ2F0aW9uOwog
Y2xhc3MgT2JqZWN0OwogY2xhc3MgT3BlblBhbmVsUGFyYW1ldGVyczsKIGNsYXNzIFNlY3VyaXR5
T3JpZ2luOwpAQCAtNDYxLDkgKzQ2Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpID0gMDsKIAogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRp
b25UeXBlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpO
YXZpZ2F0aW9uKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTmF2aWdhdGlvbihBUEk6
Ok5hdmlnYXRpb24qKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmln
YXRpb25Gb3JNYWluRnJhbWUoQVBJOjpOYXZpZ2F0aW9uKiwgU2FtZURvY3VtZW50TmF2aWdhdGlv
blR5cGUpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3Io
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ0F1ZGlvV2lsbENoYW5nZSgpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3Bw
CmluZGV4IDljZWEyYjAwMjg4YTlmMTM0OWRjMjFmNzI1ZGVkMDY0ZjZmNmU4OGIuLmMyNWNjMWVh
NTgzNjdlMTkzMGI5Y2M2ZTEzODYwZjIwOTFhNzE1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMjA3LDggKzIwNywxMSBA
QCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkK
ICAgICBtX3NuYXBzaG90UmVtb3ZhbFRyYWNrZXIuZXZlbnRPY2N1cnJlZChTbmFwc2hvdFJlbW92
YWxUcmFja2VyOjpTY3JvbGxQb3NpdGlvblJlc3RvcmF0aW9uKTsKIH0KIAotdm9pZCBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNoTWFpbkZyYW1lTG9hZFRlcm1pbmFsU3RhdGUoKQordm9p
ZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNoTmF2aWdhdGlvblRlcm1pbmFsU3RhdGUo
QVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKQogeworICAgIGlmICghbV9wZW5kaW5nTmF2aWdh
dGlvbiB8fCBuYXZpZ2F0aW9uICE9IG1fcGVuZGluZ05hdmlnYXRpb24pCisgICAgICAgIHJldHVy
bjsKKwogICAgIGlmIChtX3NuYXBzaG90UmVtb3ZhbFRyYWNrZXIuaXNQYXVzZWQoKSAmJiBtX3Nu
YXBzaG90UmVtb3ZhbFRyYWNrZXIuaGFzUmVtb3ZhbENhbGxiYWNrKCkpIHsKICAgICAgICAgcmVt
b3ZlU3dpcGVTbmFwc2hvdCgpOwogICAgICAgICByZXR1cm47CkBAIC0yMjUsOCArMjI4LDExIEBA
IHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZWFjaE1haW5GcmFtZUxvYWRUZXJtaW5h
bFN0YXRlKCkKICAgICBjaGVja0ZvckFjdGl2ZUxvYWRzKCk7CiB9CiAKLXZvaWQgVmlld0dlc3R1
cmVDb250cm9sbGVyOjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVE
b2N1bWVudE5hdmlnYXRpb25UeXBlIHR5cGUpCit2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6
ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShBUEk6Ok5hdmlnYXRpb24qIG5h
dmlnYXRpb24sIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlIHR5cGUpCiB7CisgICAgaWYgKCFt
X3BlbmRpbmdOYXZpZ2F0aW9uIHx8IG5hdmlnYXRpb24gIT0gbV9wZW5kaW5nTmF2aWdhdGlvbikK
KyAgICAgICAgcmV0dXJuOworCiAgICAgZGlkU3RhcnRQcm92aXNpb25hbE9yU2FtZURvY3VtZW50
TG9hZEZvck1haW5GcmFtZSgpOwogCiAgICAgYm9vbCBjYW5jZWxsZWRPdXRzdGFuZGluZ0V2ZW50
ID0gZmFsc2U7CkBAIC01NzYsNyArNTgyLDcgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6
OndpbGxFbmRTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYgdGFyZ2V0SXQKICAg
ICBhdXRvIHJlbmRlclRyZWVTaXplVGhyZXNob2xkID0gcmVuZGVyVHJlZVNpemUgKiBzd2lwZVNu
YXBzaG90UmVtb3ZhbFJlbmRlclRyZWVTaXplVGFyZ2V0RnJhY3Rpb247CiAKICAgICBtX2RpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkID0gZmFsc2U7Ci0gICAgbV93ZWJQYWdlUHJveHkuZ29Ub0JhY2tG
b3J3YXJkSXRlbSh0YXJnZXRJdGVtKTsKKyAgICBtX3BlbmRpbmdOYXZpZ2F0aW9uID0gbV93ZWJQ
YWdlUHJveHkuZ29Ub0JhY2tGb3J3YXJkSXRlbSh0YXJnZXRJdGVtKTsKIAogICAgIGF1dG8qIGN1
cnJlbnRJdGVtID0gbV93ZWJQYWdlUHJveHkuYmFja0ZvcndhcmRMaXN0KCkuY3VycmVudEl0ZW0o
KTsKICAgICAvLyBUaGUgbWFpbiBmcmFtZSB3aWxsIG5vdCBiZSBuYXZpZ2F0ZWQgc28gaGlkZSB0
aGUgc25hcHNob3QgcmlnaHQgYXdheS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmll
d0dlc3R1cmVDb250cm9sbGVyLmgKaW5kZXggNDM0MzQ5MGZlNGJmYjQ5ZWQ4ZmNkYjJmZjFmMTgw
MWYxNjk1NDk5OS4uYTFkZmQ5NTg1NWM2MTQyNzBlZWU1Y2NiNjFmNDI4ZDMwNGJiYWViZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmgKQEAg
LTY3LDYgKzY3LDEwIEBAIGNsYXNzIElPU3VyZmFjZTsKIH0KICNlbmRpZgogCituYW1lc3BhY2Ug
QVBJIHsKK2NsYXNzIE5hdmlnYXRpb247Cit9CisKICNpZiBQTEFURk9STShNQUMpCiB0eXBlZGVm
IE5TRXZlbnQqIFBsYXRmb3JtU2Nyb2xsRXZlbnQ7CiAjZWxpZiBQTEFURk9STShHVEspCkBAIC0x
NTAsMTQgKzE1NCwxNCBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6Q29sb3IgYmFja2dyb3VuZENv
bG9yRm9yQ3VycmVudFNuYXBzaG90KCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kQ29sb3JG
b3JDdXJyZW50U25hcHNob3Q7IH0KIAogICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JNYWluRnJhbWUoKTsKLSAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSB7IGRp
ZFJlYWNoTWFpbkZyYW1lTG9hZFRlcm1pbmFsU3RhdGUoKTsgfQotICAgIHZvaWQgZGlkRmFpbExv
YWRGb3JNYWluRnJhbWUoKSB7IGRpZFJlYWNoTWFpbkZyYW1lTG9hZFRlcm1pbmFsU3RhdGUoKTsg
fQorICAgIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRp
b24pIHsgZGlkUmVhY2hOYXZpZ2F0aW9uVGVybWluYWxTdGF0ZShuYXZpZ2F0aW9uKTsgfQorICAg
IHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKSB7IGRp
ZFJlYWNoTmF2aWdhdGlvblRlcm1pbmFsU3RhdGUobmF2aWdhdGlvbik7IH0KICAgICB2b2lkIGRp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpOwogICAgIHZvaWQgZGlk
UmVwYWludEFmdGVyTmF2aWdhdGlvbigpOwogICAgIHZvaWQgZGlkSGl0UmVuZGVyVHJlZVNpemVU
aHJlc2hvbGQoKTsKICAgICB2b2lkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwotICAgIHZv
aWQgZGlkUmVhY2hNYWluRnJhbWVMb2FkVGVybWluYWxTdGF0ZSgpOwotICAgIHZvaWQgZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZSk7CisgICAgdm9pZCBkaWRSZWFjaE5hdmlnYXRpb25UZXJtaW5hbFN0YXRlKEFQSTo6TmF2aWdh
dGlvbiopOworICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShB
UEk6Ok5hdmlnYXRpb24qLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSk7CiAKICAgICB2b2lk
IGNoZWNrRm9yQWN0aXZlTG9hZHMoKTsKIApAQCAtMzI3LDYgKzMzMSw4IEBAIHByaXZhdGU6CiAg
ICAgV2Vha1B0cjxXZWJQYWdlUHJveHk+IG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNl
UGFnZTsKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBtX3dlYlBhZ2VQcm94eUZvckJhY2tGb3J3
YXJkTGlzdEZvckN1cnJlbnRTd2lwZTsKIAorICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG1f
cGVuZGluZ05hdmlnYXRpb247CisKICAgICBHZXN0dXJlSUQgbV9jdXJyZW50R2VzdHVyZUlEOwog
CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCBhYTUwMWVlM2RjMTBiNjU2ODRlNjM1ODBhZjdlMmVhYTUyY2JmMWMw
Li4zMDcwNDc2MmIwOTM5Y2FmMDgzZmY1MzcyYWZmMzI0ZjFjYjAyZmI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ4NzIsNyArNDg3Miw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIEZyYW1lSW5mb0RhdGEmCiAKICAgICBpZiAoaXNNYWluRnJhbWUpIHsKICAgICAgICAgcmVw
b3J0UGFnZUxvYWRSZXN1bHQoKTsKLSAgICAgICAgcGFnZUNsaWVudCgpLmRpZEZpbmlzaExvYWRG
b3JNYWluRnJhbWUoKTsKKyAgICAgICAgcGFnZUNsaWVudCgpLmRpZEZpbmlzaE5hdmlnYXRpb24o
bmF2aWdhdGlvbi5nZXQoKSk7CiAKICAgICAgICAgaWYgKG5hdmlnYXRpb24pCiAgICAgICAgICAg
ICBuYXZpZ2F0aW9uLT5zZXRDbGllbnROYXZpZ2F0aW9uQWN0aXZpdHkobnVsbHB0cik7CkBAIC00
OTI2LDcgKzQ5MjYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmCiAKICAgICBpZiAoaXNNYWlu
RnJhbWUpIHsKICAgICAgICAgcmVwb3J0UGFnZUxvYWRSZXN1bHQoZXJyb3IpOwotICAgICAgICBw
YWdlQ2xpZW50KCkuZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKTsKKyAgICAgICAgcGFnZUNsaWVu
dCgpLmRpZEZhaWxOYXZpZ2F0aW9uKG5hdmlnYXRpb24uZ2V0KCkpOwogICAgICAgICBpZiAobmF2
aWdhdGlvbikKICAgICAgICAgICAgIG5hdmlnYXRpb24tPnNldENsaWVudE5hdmlnYXRpb25BY3Rp
dml0eShudWxscHRyKTsKICAgICB9CkBAIC00OTY4LDcgKzQ5NjgsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCB1aQogICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFNhbWVEb2N1bWVudE5h
dmlnYXRpb24oKnRoaXMsIG5hdmlnYXRpb24uZ2V0KCksIG5hdmlnYXRpb25UeXBlLCBtX3Byb2Nl
c3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsK
IAogICAgIGlmIChpc01haW5GcmFtZSkKLSAgICAgICAgcGFnZUNsaWVudCgpLmRpZFNhbWVEb2N1
bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUobmF2aWdhdGlvblR5cGUpOworICAgICAgICBwYWdl
Q2xpZW50KCkuZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShuYXZpZ2F0aW9u
LmdldCgpLCBuYXZpZ2F0aW9uVHlwZSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFu
Z2VNYWluRG9jdW1lbnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IGMyZmRjOTMzYTQxODg4
N2Y3MjM0MThjMDA4MjYxYzk0NmIxYTI5YTEuLmRmM2Q0NGUyZTllOGQxMmM2M2Q5NmMxNmVkNzFk
OGU2NTgwODliZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oCkBAIC0yMjAsOSArMjIwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJl
bW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGlk
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRG
YWlsTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkU2FtZURvY3VtZW50
TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopIG92ZXJy
aWRlOworICAgIHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKEFQSTo6
TmF2aWdhdGlvbiosIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKICAgICB2
b2lkIGRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpZENvbXBsZXRlU3ludGhldGljQ2xpY2soKSBvdmVycmlkZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmlu
ZGV4IDM4NzlhYmQxNWE2NDNiMGNiZTI2NmY5ZjUyMWJhMWU2NmRlZjdkMzMuLjE0OTdmNTBlMGQz
ZTAzMTk4MjUxNmI5YWNmYTgwNjM3Y2ZiYTE1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTc5MCwxOSArNzkwLDE5IEBAIHZv
aWQgUGFnZUNsaWVudEltcGw6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5G
cmFtZSgpCiB7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExvYWRGb3JNYWlu
RnJhbWUoKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTmF2aWdhdGlvbihBUEk6Ok5h
dmlnYXRpb24qIG5hdmlnYXRpb24pCiB7Ci0gICAgW21fd2ViVmlldyBfZGlkRmluaXNoTG9hZEZv
ck1haW5GcmFtZV07CisgICAgW21fd2ViVmlldyBfZGlkRmluaXNoTmF2aWdhdGlvbjpuYXZpZ2F0
aW9uXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUo
KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9u
KiBuYXZpZ2F0aW9uKQogewotICAgIFttX3dlYlZpZXcgX2RpZEZhaWxMb2FkRm9yTWFpbkZyYW1l
XTsKKyAgICBbbV93ZWJWaWV3IF9kaWRGYWlsTmF2aWdhdGlvbjpuYXZpZ2F0aW9uXTsKIH0KIAot
dm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFt
ZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSkKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoQVBJOjpOYXZp
Z2F0aW9uKiBuYXZpZ2F0aW9uLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9u
VHlwZSkKIHsKLSAgICBbbV93ZWJWaWV3IF9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFp
bkZyYW1lOm5hdmlnYXRpb25UeXBlXTsKKyAgICBbbV93ZWJWaWV3IF9kaWRTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uRm9yTWFpbkZyYW1lOm5hdmlnYXRpb24gb2ZUeXBlOm5hdmlnYXRpb25UeXBlXTsK
IH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xs
ZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9s
bGVySU9TLm1tCmluZGV4IDUyOTVmMWQ5MmQyNzEwZDIwNTNmM2ZhZTViOWZmMzAxZTNjNTI5OWQu
Ljk3YzE1YzYwMTZjYjczN2YxZTE1ZmIzZmFiZTViOTRjODJmNGNhMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5t
bQpAQCAtMjkyLDcgKzI5Miw3IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjp3aWxsRW5k
U3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIHRhcmdldEl0CiAgICAgICAgIG1f
c25hcHNob3RSZW1vdmFsVGFyZ2V0UmVuZGVyVHJlZVNpemUgPSBzbmFwc2hvdC0+cmVuZGVyVHJl
ZVNpemUoKSAqIHN3aXBlU25hcHNob3RSZW1vdmFsUmVuZGVyVHJlZVNpemVUYXJnZXRGcmFjdGlv
bjsKIAogICAgIG1fZGlkU3RhcnRQcm92aXNpb25hbExvYWQgPSBmYWxzZTsKLSAgICBtX3dlYlBh
Z2VQcm94eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZS0+Z29Ub0JhY2tGb3J3YXJk
SXRlbSh0YXJnZXRJdGVtKTsKKyAgICBtX3BlbmRpbmdOYXZpZ2F0aW9uID0gbV93ZWJQYWdlUHJv
eHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGUtPmdvVG9CYWNrRm9yd2FyZEl0ZW0o
dGFyZ2V0SXRlbSk7CiAKICAgICBhdXRvKiBjdXJyZW50SXRlbSA9IG1fd2ViUGFnZVByb3h5Rm9y
QmFja0ZvcndhcmRMaXN0Rm9yQ3VycmVudFN3aXBlLT5iYWNrRm9yd2FyZExpc3QoKS5jdXJyZW50
SXRlbSgpOwogICAgIC8vIFRoZSBtYWluIGZyYW1lIHdpbGwgbm90IGJlIG5hdmlnYXRlZCBzbyBo
aWRlIHRoZSBzbmFwc2hvdCByaWdodCBhd2F5LgpAQCAtNDM3LDYgKzQzNyw4IEBAIHZvaWQgVmll
d0dlc3R1cmVDb250cm9sbGVyOjpyZXNldFN0YXRlKCkKIAogICAgIG1fYmFja2dyb3VuZENvbG9y
Rm9yQ3VycmVudFNuYXBzaG90ID0gV2ViQ29yZTo6Q29sb3IoKTsKIAorICAgIG1fcGVuZGluZ05h
dmlnYXRpb24gPSBudWxscHRyOworCiAgICAgZGlkRW5kR2VzdHVyZSgpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IDUzMjAz
YzBiYWI3ZThmYzJmMWI3NWQzNDBjMDU1YzkzODU5MDA1MGUuLjQ2MTg3M2ZkYmY2NDU5OGQ5Njdi
ZGM2OGMzNzk3NmRkMmNmYmQ3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbE1hYy5oCkBAIC0yMTUsOSArMjE1LDkgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKICAg
ICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpIG92ZXJy
aWRlOwotICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOwotICAg
IHZvaWQgZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFNh
bWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGUpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRp
b24qKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZhaWxOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlv
biopIG92ZXJyaWRlOworICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5G
cmFtZShBUEk6Ok5hdmlnYXRpb24qLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBoYW5kbGVDb250cm9sbGVkRWxlbWVudElEUmVzcG9uc2UoY29uc3QgU3Ry
aW5nJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRU
ZXN0KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHREYXRhJiwgYm9vbCBjb250ZW50UHJldmVudHNEZWZh
dWx0LCBBUEk6Ok9iamVjdCopIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDdiN2U2NmM3OWVkYWY4NGE4YTE0NzU2
NTI0ZTE2YzI2ZTU3ODk2YzYuLmU0NzdiY2VmZDQyYmU1Y2UwYjRkNGM4YTYxNWNkYWI1ODM3OGQ1
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxN
YWMubW0KQEAgLTc4OCwyNiArNzg4LDI2IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpCiAgICAgICAgIGdlc3R1cmVDb250
cm9sbGVyLT5kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKTsKIH0K
IAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiogbmF2
aWdhdGlvbikKIHsKICAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9IG1faW1wbC0+Z2Vz
dHVyZUNvbnRyb2xsZXIoKSkKLSAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZpbmlzaExv
YWRGb3JNYWluRnJhbWUoKTsKKyAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZpbmlzaE5h
dmlnYXRpb24obmF2aWdhdGlvbik7CiAKICAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0
aW9uKE5TQWNjZXNzaWJpbGl0eVVuaWdub3JlZEFuY2VzdG9yKG1fdmlldyksIGtBWExvYWRDb21w
bGV0ZU5vdGlmaWNhdGlvbik7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2Fk
Rm9yTWFpbkZyYW1lKCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKEFQ
STo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbikKIHsKICAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJv
bGxlciA9IG1faW1wbC0+Z2VzdHVyZUNvbnRyb2xsZXIoKSkKLSAgICAgICAgZ2VzdHVyZUNvbnRy
b2xsZXItPmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCk7CisgICAgICAgIGdlc3R1cmVDb250cm9s
bGVyLT5kaWRGYWlsTmF2aWdhdGlvbihuYXZpZ2F0aW9uKTsKIAogICAgIE5TQWNjZXNzaWJpbGl0
eVBvc3ROb3RpZmljYXRpb24oTlNBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkQW5jZXN0b3IobV92aWV3
KSwga0FYTG9hZENvbXBsZXRlTm90aWZpY2F0aW9uKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uVHlwZSB0eXBlKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvck1haW5GcmFtZShBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIFNhbWVEb2N1
bWVudE5hdmlnYXRpb25UeXBlIHR5cGUpCiB7CiAgICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xs
ZXIgPSBtX2ltcGwtPmdlc3R1cmVDb250cm9sbGVyKCkpCi0gICAgICAgIGdlc3R1cmVDb250cm9s
bGVyLT5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKHR5cGUpOworICAgICAg
ICBnZXN0dXJlQ29udHJvbGxlci0+ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFt
ZShuYXZpZ2F0aW9uLCB0eXBlKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6aGFuZGxlQ29u
dHJvbGxlZEVsZW1lbnRJRFJlc3BvbnNlKGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVy
TWFjLm1tCmluZGV4IDliZTlmNTZkN2E0ZjBhNTU2Y2FiMjRiNzZlNzI1OGE0ZGJmODkzYWEuLmU2
MGEyZGY2YjdjMGY1NmU0NDVkN2Q1ZDkxNTdlOGJlOGZhYzUyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaWYgUExBVEZPUk0oTUFDKQogCisjaW1wb3J0ICJBUElOYXZp
Z2F0aW9uLmgiCiAjaW1wb3J0ICJEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW1wb3J0ICJGcmFtZUxv
YWRTdGF0ZS5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgpAQCAtNjQzLDYgKzY0NCw4IEBAIHZvaWQg
Vmlld0dlc3R1cmVDb250cm9sbGVyOjpyZXNldFN0YXRlKCkKIAogICAgIG1fYmFja2dyb3VuZENv
bG9yRm9yQ3VycmVudFNuYXBzaG90ID0gQ29sb3IoKTsKIAorICAgIG1fcGVuZGluZ05hdmlnYXRp
b24gPSBudWxscHRyOworCiAgICAgZGlkRW5kR2VzdHVyZSgpOwogfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTA2ZTcw
ZDc3YTkxY2E4MjA4ZmNkM2U1YTg5M2VmMTY2ZDg2Yjk2My4uZDRiNGI5ZGE4ZGY3NDZlMTEzMmVl
MGY0OWM0MWUyMmIwMjllZjVmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA2LTI5ICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFN3aXBlIHNu
YXBzaG90IGlzIHJlbW92ZWQgdG9vIGVhcmx5IHdoZW4gc3dpcGluZyBhd2F5IGZyb20gYSBwYWdl
IHRoYXQgaXMgc3RpbGwgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjEzNzYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NDU3NjgxMT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAv
dGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanM6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc3dpcGUvc3dpcGUtYmFjay13aXRoLW91dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0
aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zd2lwZS9zd2lw
ZS1iYWNrLXdpdGgtb3V0c3RhbmRpbmctbG9hZC1jYW5jZWxsYXRpb24uaHRtbDogQWRkZWQuCisg
ICAgICAgIEFkZCBhIHRlc3QgdGhhdCBlbnN1cmVzIHRoYXQgd2UgZG9uJ3QgcmVtb3ZlIHRoZSBz
d2lwZSBzbmFwc2hvdCBiZWZvcmUgdGhlICJiYWNrIiBwYWdlIGlzIGxvYWRlZC4KKyAgICAgICAg
QmVmb3JlIHRoaXMgZml4LCB0aGlzIHRlc3QgZmFpbHMgdGhlIGFzc2VydGlvbiB0aGF0IHdlJ3Jl
IG9uIHRoZSBmaXJzdCBwYWdlIGluIGRpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjay4KKwog
MjAyMC0wNi0yMyAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHVEtdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuIFVwZGF0ZSB0ZXN0IGV4cGVjdGF0
aW9ucyBhZnRlciByMjYzNDM3LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
d2lwZS9yZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3dp
cGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA5MDMxMjUyYzJlMGRmZDQ5
ZDZhOTEyNTY1ZmZlOTJiYzQ2MDA1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMKQEAgLTAsMCArMSw4NCBAQAor
ZnVuY3Rpb24gc2hvdWxkQmUoZXhwZWN0ZWQsIGFjdHVhbCwgbWVzc2FnZSkKK3sKKyAgICBpZiAo
ZXhwZWN0ZWQgIT0gYWN0dWFsKQorICAgICAgICBsb2coIkZhaWx1cmUuICIgKyBtZXNzYWdlICsg
IiAoZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCArICIsIGFjdHVhbDogIiArIGFjdHVhbCArICIpIik7
Cit9CisKK2Z1bmN0aW9uIGxvZyhzKQoreworICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2VbInN3aXBl
TG9nZ2luZyJdICs9IHMgKyAiPGJyLz4iOworfQorCitmdW5jdGlvbiBkdW1wTG9nKCkKK3sKKyAg
ICB3aW5kb3cuZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSB3aW5kb3cubG9jYWxTdG9yYWdlWyJz
d2lwZUxvZ2dpbmciXTsKK30KKworZnVuY3Rpb24gdGVzdENvbXBsZXRlKCkKK3sKKyAgICBkdW1w
TG9nKCk7CisgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlv
biBpbml0aWFsaXplU3dpcGVUZXN0KCkKK3sKKyAgICB3aW5kb3cubG9jYWxTdG9yYWdlWyJzd2lw
ZUxvZ2dpbmciXSA9ICIiOworICAgIHRlc3RSdW5uZXIuc2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5h
YmxlZCh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLmNsZWFyQmFja0ZvcndhcmRMaXN0KCk7Cit9CisK
K2Z1bmN0aW9uIGhhc0luaXRpYWxpemVkU3dpcGVUZXN0KCkKK3sKKyAgICByZXR1cm4gKCJzd2lw
ZUxvZ2dpbmciIGluIHdpbmRvdy5sb2NhbFN0b3JhZ2UpOworfQorCitmdW5jdGlvbiBzdGFydE1l
YXN1cmluZ0R1cmF0aW9uKGtleSkKK3sKKyAgICB3aW5kb3cubG9jYWxTdG9yYWdlW2tleSArICJz
d2lwZVN0YXJ0VGltZSJdID0gRGF0ZS5ub3coKTsKK30KKworZnVuY3Rpb24gbWVhc3VyZWREdXJh
dGlvblNob3VsZEJlTGVzc1RoYW4oa2V5LCB0aW1lSW5NUywgbWVzc2FnZSkKK3sKKyAgICB2YXIg
ZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gd2luZG93LmxvY2FsU3RvcmFnZVtrZXkgKyAic3dpcGVT
dGFydFRpbWUiXTsKKyAgICBpZiAoZHVyYXRpb24gPj0gdGltZUluTVMpCisgICAgICAgIGxvZygi
RmFpbHVyZS4gIiArIG1lc3NhZ2UgKyAiIChleHBlY3RlZDogIiArIHRpbWVJbk1TICsgIiwgYWN0
dWFsOiAiICsgZHVyYXRpb24gKyAiKSIpOworfQorCitmdW5jdGlvbiBzdGFydFN3aXBlR2VzdHVy
ZShjYWxsYmFjaykKK3sKKyAgICBsb2coInN0YXJ0U3dpcGVHZXN0dXJlIik7CisgICAgdGVzdFJ1
bm5lci5ydW5VSVNjcmlwdChgCisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICB1aUNvbnRyb2xs
ZXIuYmVnaW5CYWNrU3dpcGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIu
dWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICB9KTsKKyAgICB9KSgpO2AsIGNhbGxiYWNrIHx8
IGZ1bmN0aW9uICgpIHt9KTsKK30KKworZnVuY3Rpb24gY29tcGxldGVTd2lwZUdlc3R1cmUoY2Fs
bGJhY2spCit7CisgICAgbG9nKCJjb21wbGV0ZVN3aXBlR2VzdHVyZSIpOworICAgIHRlc3RSdW5u
ZXIucnVuVUlTY3JpcHQoYAorICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgdWlDb250cm9sbGVy
LmNvbXBsZXRlQmFja1N3aXBlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdWlDb250cm9sbGVy
LnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgfSk7CisgICAgfSkoKTtgLCBjYWxsYmFjayB8
fCBmdW5jdGlvbiAoKSB7fSk7Cit9CisKK2Z1bmN0aW9uIHBsYXlFdmVudFN0cmVhbShzdHJlYW0s
IGNhbGxiYWNrKQoreworICAgIGxvZygicGxheUV2ZW50U3RyZWFtIik7CisgICAgaWYgKHRlc3RS
dW5uZXIuaXNJT1NGYW1pbHkpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgdGVzdCBzaG91bGQg
cHJvYmFibHkgbm90IGxvZyBwbGF5RXZlbnRTdHJlYW0KKyAgICAgICAgLy8gb24gaU9TLCB3aGVy
ZSBpdCBkb2Vzbid0IGFjdHVhbGx5IGRvIGl0LgorICAgICAgICBzZXRUaW1lb3V0KGNhbGxiYWNr
LCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0
KGAKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHVpQ29udHJvbGxlci5wbGF5QmFja0V2ZW50
U3RyZWFtKFxgJHtzdHJlYW19XGAsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdWlDb250cm9s
bGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgfSk7CisgICAgfSkoKTtgLCBjYWxsYmFj
ayB8fCBmdW5jdGlvbiAoKSB7fSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRzdGFuZGluZy1sb2FkLWNhbmNlbGxhdGlvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N3aXBlL3N3aXBlLWJhY2std2l0
aC1vdXRzdGFuZGluZy1sb2FkLWNhbmNlbGxhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODlkZWNmZDRjMzcxMjVjZmI1NTk4MTE5Njg5YzNmMGM0YTFkODg0ZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3dpcGUvc3dpcGUtYmFjay13aXRoLW91dHN0YW5k
aW5nLWxvYWQtY2FuY2VsbGF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK3N0YXJ0
U3dpcGVHZXN0dXJlCitkaWRCZWdpblN3aXBlCitjb21wbGV0ZVN3aXBlR2VzdHVyZQord2lsbEVu
ZFN3aXBlCitkaWRFbmRTd2lwZQorZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRzdGFuZGlu
Zy1sb2FkLWNhbmNlbGxhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zd2lwZS9z
d2lwZS1iYWNrLXdpdGgtb3V0c3RhbmRpbmctbG9hZC1jYW5jZWxsYXRpb24uaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42MGZkMzZhNzQ2ZWNjMDljMzEyZWU3ZWEyYTMwMjY3NzI1NjFlZjA1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zd2lwZS9zd2lwZS1iYWNrLXdpdGgtb3V0
c3RhbmRpbmctbG9hZC1jYW5jZWxsYXRpb24uaHRtbApAQCAtMCwwICsxLDgzIEBACis8aGVhZD4K
KzxzdHlsZT4KK2h0bWwgeworICAgIGZvbnQtc2l6ZTogMzJwdDsKK30KKzwvc3R5bGU+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1
bmN0aW9uIGRpZEJlZ2luU3dpcGVDYWxsYmFjaygpCit7CisgICAgbG9nKCJkaWRCZWdpblN3aXBl
Iik7CisKKyAgICBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpOworfQorCitmdW5jdGlvbiB3aWxsRW5k
U3dpcGVDYWxsYmFjaygpCit7CisgICAgbG9nKCJ3aWxsRW5kU3dpcGUiKTsKKworICAgIHNob3Vs
ZEJlKGZhbHNlLCBpc0ZpcnN0UGFnZSgpLCAiVGhlIHN3aXBlIHNob3VsZCBub3QgeWV0IGhhdmUg
bmF2aWdhdGVkIGF3YXkgZnJvbSB0aGUgc2Vjb25kIHBhZ2UuIik7Cit9CisKK2Z1bmN0aW9uIGRp
ZEVuZFN3aXBlQ2FsbGJhY2soKQoreworICAgIGxvZygiZGlkRW5kU3dpcGUiKTsKKworICAgIHN0
YXJ0TWVhc3VyaW5nRHVyYXRpb24oInNuYXBzaG90UmVtb3ZhbCIpOworfQorCit2YXIgaGFzUmVt
b3ZlZFNuYXBzaG90ID0gZmFsc2U7CisKK2Z1bmN0aW9uIGRpZFJlbW92ZVN3aXBlU25hcHNob3RD
YWxsYmFjaygpCit7CisgICAgbG9nKCJkaWRSZW1vdmVTd2lwZVNuYXBzaG90Iik7CisKKyAgICBo
YXNSZW1vdmVkU25hcHNob3QgPSB0cnVlOworICAgIAorICAgIHNob3VsZEJlKHRydWUsIGlzRmly
c3RQYWdlKCksICJUaGUgc3dpcGUgc2hvdWxkIGhhdmUgbmF2aWdhdGVkIGJhY2sgdG8gdGhlIGZp
cnN0IHBhZ2UuIik7CisKKyAgICB0ZXN0Q29tcGxldGUoKTsKK30KKworZnVuY3Rpb24gaXNGaXJz
dFBhZ2UoKQoreworICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCJzZWNv
bmQiKSA9PSAtMTsKK30KKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICBpZiAo
IXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgZG9j
dW1lbnQuYm9keS5pbm5lckhUTUwgPSAiVGhpcyB0ZXN0IG11c3QgYmUgcnVuIGluIFdlYktpdFRl
c3RSdW5uZXIuIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRvY3VtZW50LmJvZHku
aW5uZXJIVE1MID0gaXNGaXJzdFBhZ2UoKSA/ICJmaXJzdCIgOiAiPGlmcmFtZSBzcmM9Jy9yZXNv
dXJjZXMvc2xvdy1pbWFnZS5waHAnPiI7CisKKyAgICBpZiAoaXNGaXJzdFBhZ2UoKSkgeworICAg
ICAgICBpZiAoaGFzSW5pdGlhbGl6ZWRTd2lwZVRlc3QoKSkgeworICAgICAgICAgICAgc2hvdWxk
QmUoZmFsc2UsIGhhc1JlbW92ZWRTbmFwc2hvdCwgIlRoZSBzbmFwc2hvdCBzaG91bGQgbm90IGhh
dmUgYmVlbiBzeW5jaHJvbm91c2x5IHJlbW92ZWQgYmVjYXVzZSBvZiB0aGUgY2FuY2VsbGVkIGZv
cndhcmQgbG9hZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGluaXRpYWxpemVTd2lwZVRlc3QoKTsKKworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRC
ZWdpblN3aXBlQ2FsbGJhY2soZGlkQmVnaW5Td2lwZUNhbGxiYWNrKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5pbnN0YWxsV2lsbEVuZFN3aXBlQ2FsbGJhY2sod2lsbEVuZFN3aXBlQ2FsbGJhY2spOwor
ICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRFbmRTd2lwZUNhbGxiYWNrKGRpZEVuZFN3aXBl
Q2FsbGJhY2spOworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRSZW1vdmVTd2lwZVNuYXBz
aG90Q2FsbGJhY2soZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKTsKKworICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IAorICAgICAgICAgICAgd2lu
ZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5kb3cubG9jYXRpb24uaHJlZiArICI/c2Vjb25kIjsKKyAg
ICAgICAgfSwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdGFydFN3aXBlR2Vz
dHVyZSgpOworfTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403153</attachid>
            <date>2020-06-29 18:31:11 -0700</date>
            <delta_ts>2020-06-29 19:33:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213763-20200629183110.patch</filename>
            <type>text/plain</type>
            <size>41686</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJlOTc1ZDMyODcwZTk2YzFk
ZTg0YjRlOGNlOTZmMGUyYTVmYjI1MzEuLmFkYWEzZTg5ODk3ZTdkOGU2NWMwNTk2NWYxMTg2Y2Yx
YmJmODI1MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAxIEBACisyMDIwLTA2LTI5ICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFN3aXBlIHNuYXBzaG90
IGlzIHJlbW92ZWQgdG9vIGVhcmx5IHdoZW4gc3dpcGluZyBhd2F5IGZyb20gYSBwYWdlIHRoYXQg
aXMgc3RpbGwgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjEzNzYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NDU3NjgxMT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rl
c3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRzdGFuZGluZy1sb2FkLWNhbmNlbGxhdGlvbi5o
dG1sCisKKyAgICAgICAgV2hlbiBzd2lwaW5nIGJhY2sgZnJvbSBhIHBhZ2UgdGhhdCBpcyBzdGls
bCBsb2FkaW5nLCB3aGVuIHRoZSBzd2lwZSBjb21taXRzLAorICAgICAgICBhbmQgd2Ugc3RhcnQg
bmF2aWdhdGluZyBiYWNrIHRvIHRoZSBwcmV2aW91cyBwYWdlLCB0aGUgdW5maW5pc2hlZCBmb3J3
YXJkIG5hdmlnYXRpb24KKyAgICAgICAgaXMgY2FuY2VsbGVkLgorCisgICAgICAgIFRoaXMgY2Fu
Y2VsbGF0aW9uIHJlc3VsdGVkIGluIGEgImRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lIiBtYWtpbmcg
aXQgdG8gVmlld0dlc3R1cmVDb250cm9sbGVyLAorICAgICAgICB3aGljaCB0b29rIGl0IGFzIGFu
IGluZGljYXRpb24gdGhhdCB0aGUgbmF2aWdhdGlvbiAqaXQqIHdhcyBpbnRlcmVzdGVkIGluICh0
aGUgYmFjayBuYXZpZ2F0aW9uKQorICAgICAgICBoYWQgZmFpbGVkLCBhbmQgaW1tZWRpYXRlbHkg
cmVtb3ZlZCB0aGUgc25hcHNob3QuCisKKyAgICAgICAgSW5zdGVhZCBvZiBsaXN0ZW5pbmcgdG8g
YW55IHJhbmRvbSBuYXZpZ2F0aW9uJ3MgbG9hZCBub3RpZmljYXRpb25zLCBrZWVwIHRyYWNrIG9m
IHRoZSBuYXZpZ2F0aW9uCisgICAgICAgIHN0YXJ0ZWQgYnkgZ29Ub0JhY2tGb3J3YXJkSXRlbSwg
YW5kIG9ubHkgbGlzdGVuIHRvIG5vdGlmaWNhdGlvbnMgZnJvbSBpdCwgaWdub3JpbmcgdGhlIG90
aGVycy4KKworICAgICAgICBUaGlzIHJlcXVpcmVzIGEgYnVuY2ggb2YgcGx1bWJpbmcgdG8gZ2V0
IHRoZSBuYXZpZ2F0aW9uIGZyb20gV2ViUGFnZVByb3h5IHRvIFZpZXdHZXN0dXJlQ29udHJvbGxl
ciwKKyAgICAgICAgYnV0IGlzIG90aGVyd2lzZSBmYWlybHkgdHJpdmlhbC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZGlkRmFpbE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9y
TWFpbkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xp
ZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNl
LmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlRGlkRmluaXNoTG9hZEZvck1haW5GcmFt
ZSk6CisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZURpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKToK
KyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1h
aW5GcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtX
S1dlYlZpZXcgX2RpZEZpbmlzaE5hdmlnYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBf
ZGlkRmFpbE5hdmlnYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkU2FtZURvY3Vt
ZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTpvZlR5cGU6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBfZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZV0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2RpZEZhaWxMb2FkRm9yTWFpbkZyYW1lXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dL
V2ViVmlldyBfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTpdKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWlu
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZv
ck1haW5GcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpk
aWRGYWlsTG9hZEZvck1haW5GcmFtZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS93cGUvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNoTmF2aWdhdGlvblRlcm1p
bmFsU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFNh
bWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OndpbGxFbmRTd2lwZUdlc3R1cmUpOgorICAgICAgICAoV2ViS2l0
OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNoTWFpbkZyYW1lTG9hZFRlcm1pbmFsU3Rh
dGUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIu
aDoKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRGaW5pc2hOYXZp
Z2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRGYWls
TmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlk
RmluaXNoTG9hZEZvck1haW5GcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUpOiBEZWxldGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRp
ZEZpbmlzaE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlk
RmFpbE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjp3aWxsRW5kU3dpcGVHZXN0
dXJlKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpyZXNldFN0YXRl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZGlkRmFpbE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9y
TWFpbkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJl
Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVy
OjpyZXNldFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVu
dEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTmF2
aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGYWlsTmF2aWdh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uRm9yTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6ZGlkRmluaXNoTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUpOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuaDoKKwogMjAyMC0w
Ni0yMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIE1ha2UgSFRUUC8zIGV4cGVyaW1lbnRhbCBmZWF0dXJlIHdvcmsgb24gaU9TIGFuZCBvbmx5
IGNyZWF0ZSBzdG9yYWdlIGRpcmVjdG9yeSBpZiBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDBhZWU0YmM5Mzgw
Y2I0N2NhNDkwMGQ4NTU2ZDUxZTI0ZDhmMTRiZTcuLjQ4YzNiOTgwZTQ0YjBmMGJjZDkzMzUyYjY5
N2E1MGFiY2Y1NjdkYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvUGFnZUNsaWVudEltcGwuY3BwCkBAIC01MjIsMTkgKzUyMiwxOSBAQCB2b2lkIFBhZ2VDbGll
bnRJbXBsOjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKQogICAg
IHdlYmtpdFdlYlZpZXdCYXNlRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZy
YW1lKFdFQktJVF9XRUJfVklFV19CQVNFKG1fdmlld1dpZGdldCkpOwogfQogCi12b2lkIFBhZ2VD
bGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkKK3ZvaWQgUGFnZUNsaWVudElt
cGw6OmRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKQogewot
ICAgIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmluaXNoTG9hZEZvck1haW5GcmFtZShXRUJLSVRfV0VC
X1ZJRVdfQkFTRShtX3ZpZXdXaWRnZXQpKTsKKyAgICB3ZWJraXRXZWJWaWV3QmFzZURpZEZpbmlz
aE5hdmlnYXRpb24oV0VCS0lUX1dFQl9WSUVXX0JBU0UobV92aWV3V2lkZ2V0KSwgbmF2aWdhdGlv
bik7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiog
bmF2aWdhdGlvbikKIHsKLSAgICB3ZWJraXRXZWJWaWV3QmFzZURpZEZhaWxMb2FkRm9yTWFpbkZy
YW1lKFdFQktJVF9XRUJfVklFV19CQVNFKG1fdmlld1dpZGdldCkpOworICAgIHdlYmtpdFdlYlZp
ZXdCYXNlRGlkRmFpbE5hdmlnYXRpb24oV0VCS0lUX1dFQl9WSUVXX0JBU0UobV92aWV3V2lkZ2V0
KSwgbmF2aWdhdGlvbik7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVu
dE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSkK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJh
bWUoQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZSB0eXBlKQogewotICAgIHdlYmtpdFdlYlZpZXdCYXNlRGlkU2FtZURvY3VtZW50TmF2aWdhdGlv
bkZvck1haW5GcmFtZShXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3ZpZXdXaWRnZXQpLCB0eXBlKTsK
KyAgICB3ZWJraXRXZWJWaWV3QmFzZURpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJh
bWUoV0VCS0lUX1dFQl9WSUVXX0JBU0UobV92aWV3V2lkZ2V0KSwgbmF2aWdhdGlvbiwgdHlwZSk7
CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKaW5k
ZXggMjcwMDk5ODI2YjdiZWM1ZTMyYTZjYzA1YzQxZjFmYzE0ZWM1OThiZS4uNjEzMTAwZGJlNjdm
NzczMzI1YzcyOTlmZWJmZDQ5MjQ5YmM4ZjEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaApAQCAtMTExLDcgKzExMSwxMSBAQCBwcml2
YXRlOgogICAgIHZvaWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkmKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpZENoYW5nZUNvbnRlbnRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgYm9vbCB1c2VDdXN0b21Db250ZW50UHJvdmlkZXIpIG92ZXJyaWRl
OwotICAgIHZvaWQgZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaWRGYWlsTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoQVBJOjpOYXZp
Z2F0aW9uKiwgU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpIG92ZXJyaWRlOwogCiAgICAgLy8g
QXV4aWxpYXJ5IENsaWVudCBDcmVhdGlvbgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKQEAg
LTEzNywxMSArMTQxLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxSZWNvcmROYXZpZ2F0aW9u
U25hcHNob3QoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlk
UmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOwotICAgIHZvaWQg
ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBk
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRp
b25UeXBlKSBvdmVycmlkZTsKLQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgdm9pZCBk
b25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYsIGJvb2wgd2FzRXZl
bnRIYW5kbGVkKSBvdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCAyYTFhNDgzODkwNjM1
YmNiMmRkNTVjYjI5ODI2MTk2ZTQyZjU1YTE2Li5lZWRlODIyODUyMGJkZjExMzBmMGY0YjQ5NTMz
MDQwNmVhNWFmYzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtMjM0OCwzMCArMjM0OCwzMCBAQCB2b2lkIHdl
YmtpdFdlYlZpZXdCYXNlRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1l
KFdlYktpdFdlYlZpZXdCYQogI2VuZGlmCiB9CiAKLXZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRG
aW5pc2hMb2FkRm9yTWFpbkZyYW1lKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFz
ZSkKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGaW5pc2hOYXZpZ2F0aW9uKFdlYktpdFdlYlZp
ZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKQog
ewogI2lmICFVU0UoR1RLNCkKICAgICBWaWV3R2VzdHVyZUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIg
PSB3ZWJraXRXZWJWaWV3QmFzZVZpZXdHZXN0dXJlQ29udHJvbGxlcih3ZWJraXRXZWJWaWV3QmFz
ZSk7CiAgICAgaWYgKGNvbnRyb2xsZXIgJiYgY29udHJvbGxlci0+aXNTd2lwZUdlc3R1cmVFbmFi
bGVkKCkpCi0gICAgICAgIGNvbnRyb2xsZXItPmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKTsK
KyAgICAgICAgY29udHJvbGxlci0+ZGlkRmluaXNoTmF2aWdhdGlvbihuYXZpZ2F0aW9uKTsKICNl
bmRpZgogfQogCi12b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmFpbExvYWRGb3JNYWluRnJhbWUo
V2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlKQordm9pZCB3ZWJraXRXZWJWaWV3
QmFzZURpZEZhaWxOYXZpZ2F0aW9uKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFz
ZSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKQogewogI2lmICFVU0UoR1RLNCkKICAgICBW
aWV3R2VzdHVyZUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSB3ZWJraXRXZWJWaWV3QmFzZVZpZXdH
ZXN0dXJlQ29udHJvbGxlcih3ZWJraXRXZWJWaWV3QmFzZSk7CiAgICAgaWYgKGNvbnRyb2xsZXIg
JiYgY29udHJvbGxlci0+aXNTd2lwZUdlc3R1cmVFbmFibGVkKCkpCi0gICAgICAgIGNvbnRyb2xs
ZXItPmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCk7CisgICAgICAgIGNvbnRyb2xsZXItPmRpZEZh
aWxOYXZpZ2F0aW9uKG5hdmlnYXRpb24pOwogI2VuZGlmCiB9CiAKLXZvaWQgd2Via2l0V2ViVmll
d0Jhc2VEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFdlYktpdFdlYlZpZXdC
YXNlKiB3ZWJraXRXZWJWaWV3QmFzZSwgU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSkK
K3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZy
YW1lKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSwgQVBJOjpOYXZpZ2F0aW9u
KiBuYXZpZ2F0aW9uLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBlKQogewogI2lmICFV
U0UoR1RLNCkKICAgICBWaWV3R2VzdHVyZUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSB3ZWJraXRX
ZWJWaWV3QmFzZVZpZXdHZXN0dXJlQ29udHJvbGxlcih3ZWJraXRXZWJWaWV3QmFzZSk7CiAgICAg
aWYgKGNvbnRyb2xsZXIgJiYgY29udHJvbGxlci0+aXNTd2lwZUdlc3R1cmVFbmFibGVkKCkpCi0g
ICAgICAgIGNvbnRyb2xsZXItPmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUo
dHlwZSk7CisgICAgICAgIGNvbnRyb2xsZXItPmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JN
YWluRnJhbWUobmF2aWdhdGlvbiwgdHlwZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRl
LmgKaW5kZXggZWI3Zjg2ZTA4ZTczNmFiNzA3YmE2MTk2MDk5ZTZlMjk5YjY2Y2QxYS4uZGRjYmUy
NjAzYmI0NTVkMmQ1ZmNiZmM0YzU0NmM4MWM3YmJiNzlmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5o
CkBAIC0xMDEsOSArMTAxLDkgQEAgYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUNvbXBsZXRlQmFja1N3
aXBlRm9yVGVzdGluZyhXZWJLaXRXZWJWaWV3QmFzZSopOwogCiB2b2lkIHdlYmtpdFdlYlZpZXdC
YXNlRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUoV2ViS2l0V2ViVmlld0Jhc2Uq
KTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRG
b3JNYWluRnJhbWUoV2ViS2l0V2ViVmlld0Jhc2UqKTsKLXZvaWQgd2Via2l0V2ViVmlld0Jhc2VE
aWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKFdlYktpdFdlYlZpZXdCYXNlKik7Ci12b2lkIHdlYmtp
dFdlYlZpZXdCYXNlRGlkRmFpbExvYWRGb3JNYWluRnJhbWUoV2ViS2l0V2ViVmlld0Jhc2UqKTsK
LXZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZy
YW1lKFdlYktpdFdlYlZpZXdCYXNlKiwgV2ViS2l0OjpTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZSk7Cit2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmluaXNoTmF2aWdhdGlvbihXZWJLaXRXZWJW
aWV3QmFzZSosIEFQSTo6TmF2aWdhdGlvbiopOwordm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZEZh
aWxOYXZpZ2F0aW9uKFdlYktpdFdlYlZpZXdCYXNlKiwgQVBJOjpOYXZpZ2F0aW9uKik7Cit2b2lk
IHdlYmtpdFdlYlZpZXdCYXNlRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShX
ZWJLaXRXZWJWaWV3QmFzZSosIEFQSTo6TmF2aWdhdGlvbiosIFdlYktpdDo6U2FtZURvY3VtZW50
TmF2aWdhdGlvblR5cGUpOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZFJlc3RvcmVTY3JvbGxQ
b3NpdGlvbihXZWJLaXRXZWJWaWV3QmFzZSopOwogCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2hv
d0Vtb2ppQ2hvb3NlcihXZWJLaXRXZWJWaWV3QmFzZSosIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKaW5kZXggNzdiYzA4MzIwN2I1MGQyOTkx
NjljMTJmNDA0YTUwM2ZhY2NmNWJmMS4uYTFlYWRiY2NhNjliMGVmNTE0YjJhYWZjOGIzZGMyZGY3
ODcxNmU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dl
YlZpZXdJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmll
d0lPUy5oCkBAIC04NCw5ICs4NCw5IEBACiAtICh2b2lkKV9kaWRDb21wbGV0ZUFuaW1hdGVkUmVz
aXplOwogCiAtICh2b2lkKV9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZTsKLS0g
KHZvaWQpX2RpZEZpbmlzaExvYWRGb3JNYWluRnJhbWU7Ci0tICh2b2lkKV9kaWRGYWlsTG9hZEZv
ck1haW5GcmFtZTsKLS0gKHZvaWQpX2RpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJh
bWU6KFdlYktpdDo6U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpbmF2aWdhdGlvblR5cGU7Cist
ICh2b2lkKV9kaWRGaW5pc2hOYXZpZ2F0aW9uOihBUEk6Ok5hdmlnYXRpb24qKW5hdmlnYXRpb247
CistICh2b2lkKV9kaWRGYWlsTmF2aWdhdGlvbjooQVBJOjpOYXZpZ2F0aW9uKiluYXZpZ2F0aW9u
OworLSAodm9pZClfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTooQVBJOjpO
YXZpZ2F0aW9uKiluYXZpZ2F0aW9uIG9mVHlwZTooV2ViS2l0OjpTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uVHlwZSluYXZpZ2F0aW9uVHlwZTsKIAogLSAoQk9PTClfaXNTaG93aW5nVmlkZW9QaWN0dXJl
SW5QaWN0dXJlOwogLSAoQk9PTClfbWF5QXV0b21hdGljYWxseVNob3dWaWRlb1BpY3R1cmVJblBp
Y3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2Vi
Vmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9T
Lm1tCmluZGV4IGEwZThiMTgyYzZiN2Y5NWUxYzYwN2VhOTcwZGFiNDBmMTQ1OGViYWQuLjc2Yjky
NmI3N2QzMjlmZDg3NjFjNWVmODg5YjlmYTVmZWIxMTg5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCkBAIC0yMTQ2LDI0ICsyMTQ2LDI0
IEBAIC0gKHZvaWQpX2RpZENvbXBsZXRlQW5pbWF0ZWRSZXNpemUKICAgICAgICAgX2NhbGxiYWNr
c0RlZmVycmVkRHVyaW5nUmVzaXplLnRha2VMYXN0KCkoKTsKIH0KIAotLSAodm9pZClfZGlkRmlu
aXNoTG9hZEZvck1haW5GcmFtZQorLSAodm9pZClfZGlkRmluaXNoTmF2aWdhdGlvbjooQVBJOjpO
YXZpZ2F0aW9uKiluYXZpZ2F0aW9uCiB7CiAgICAgaWYgKF9nZXN0dXJlQ29udHJvbGxlcikKLSAg
ICAgICAgX2dlc3R1cmVDb250cm9sbGVyLT5kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCk7Cisg
ICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+ZGlkRmluaXNoTmF2aWdhdGlvbihuYXZpZ2F0aW9u
KTsKIH0KIAotLSAodm9pZClfZGlkRmFpbExvYWRGb3JNYWluRnJhbWUKKy0gKHZvaWQpX2RpZEZh
aWxOYXZpZ2F0aW9uOihBUEk6Ok5hdmlnYXRpb24qKW5hdmlnYXRpb24KIHsKICAgICBpZiAoX2dl
c3R1cmVDb250cm9sbGVyKQotICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZhaWxMb2Fk
Rm9yTWFpbkZyYW1lKCk7CisgICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+ZGlkRmFpbE5hdmln
YXRpb24obmF2aWdhdGlvbik7CiB9CiAKLS0gKHZvaWQpX2RpZFNhbWVEb2N1bWVudE5hdmlnYXRp
b25Gb3JNYWluRnJhbWU6KFdlYktpdDo6U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpbmF2aWdh
dGlvblR5cGUKKy0gKHZvaWQpX2RpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWU6
KEFQSTo6TmF2aWdhdGlvbiopbmF2aWdhdGlvbiBvZlR5cGU6KFdlYktpdDo6U2FtZURvY3VtZW50
TmF2aWdhdGlvblR5cGUpbmF2aWdhdGlvblR5cGUKIHsKICAgICBbX2N1c3RvbUNvbnRlbnRWaWV3
IHdlYl9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uOnRvQVBJKG5hdmlnYXRpb25UeXBlKV07CiAK
ICAgICBpZiAoX2dlc3R1cmVDb250cm9sbGVyKQotICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXIt
PmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUobmF2aWdhdGlvblR5cGUpOwor
ICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXItPmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JN
YWluRnJhbWUobmF2aWdhdGlvbiwgbmF2aWdhdGlvblR5cGUpOwogfQogCiAtICh2b2lkKV9rZXli
b2FyZENoYW5nZWRXaXRoSW5mbzooTlNEaWN0aW9uYXJ5ICopa2V5Ym9hcmRJbmZvIGFkanVzdFNj
cm9sbFZpZXc6KEJPT0wpYWRqdXN0U2Nyb2xsVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRleCBjOGI0MWY0MDc3NzRkMjMz
N2U5OWNjN2Y5MTUxZWM2NWJlM2ZjNTMyLi5mZTk5MzM2MTEzMDcyYjk1ZGI2ZDgzYzUyNmE2OWM2
NDI3N2IzOThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1Bh
Z2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1Bh
Z2VDbGllbnRJbXBsLmNwcApAQCAtMzE4LDE1ICszMTgsMTUgQEAgdm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkKIHsKIH0KIAot
dm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit2b2lkIFBh
Z2VDbGllbnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopCiB7CiB9
CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkKK3ZvaWQg
UGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopCiB7CiB9
CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWlu
RnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpk
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKEFQSTo6TmF2aWdhdGlvbiosIFNh
bWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggMzcyYjMwZmQwOWM5YmNmYzNk
NDc3NjJlYmZmMTE3ODhmYWM1ZjNjYy4uNTZkNGUxYTBlMTQ1MjY0NjM1YmIzNjA0NDgxYWVhN2I5
OTVmYWFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdl
Q2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNs
aWVudEltcGwuaApAQCAtMTI5LDkgKzEyOSw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2
b2lkIGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZh
aWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRGYWlsTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoQVBJOjpO
YXZpZ2F0aW9uKiwgU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCBkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKSBvdmVycmlkZTsKICAgICB2b2lkIGlzUGxh
eWluZ0F1ZGlvV2lsbENoYW5nZSgpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCmluZGV4IDJlNjY2MjhhYjVjNzA4ZmZmMTIxMGU1ODdjZDRhODUyOWI4MGU4MTYuLmNi
YTVhNjhhZTZhYjEzNWZjZWU3ZjZjZGViMjFiMTBiNTRjNTUzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTY3LDYgKzY3LDcgQEAgT0JKQ19DTEFTUyBXS1ZpZXc7CiBu
YW1lc3BhY2UgQVBJIHsKIGNsYXNzIEF0dGFjaG1lbnQ7CiBjbGFzcyBIaXRUZXN0UmVzdWx0Owor
Y2xhc3MgTmF2aWdhdGlvbjsKIGNsYXNzIE9iamVjdDsKIGNsYXNzIE9wZW5QYW5lbFBhcmFtZXRl
cnM7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKQEAgLTQ2MSw5ICs0NjIsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKSA9IDA7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFp
bkZyYW1lKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1l
KCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShT
YW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5p
c2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKEFQSTo6TmF2aWdhdGlvbiosIFNh
bWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hh
bmdlQmFja2dyb3VuZENvbG9yKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdBdWRp
b1dpbGxDaGFuZ2UoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9W
aWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dl
c3R1cmVDb250cm9sbGVyLmNwcAppbmRleCA5Y2VhMmIwMDI4OGE5ZjEzNDlkYzIxZjcyNWRlZDA2
NGY2ZjZlODhiLi5jMjVjYzFlYTU4MzY3ZTE5MzBiOWNjNmUxMzg2MGYyMDkxYTcxNWQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAK
QEAgLTIwNyw4ICsyMDcsMTEgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlc3Rv
cmVTY3JvbGxQb3NpdGlvbigpCiAgICAgbV9zbmFwc2hvdFJlbW92YWxUcmFja2VyLmV2ZW50T2Nj
dXJyZWQoU25hcHNob3RSZW1vdmFsVHJhY2tlcjo6U2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbik7
CiB9CiAKLXZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZWFjaE1haW5GcmFtZUxvYWRU
ZXJtaW5hbFN0YXRlKCkKK3ZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZWFjaE5hdmln
YXRpb25UZXJtaW5hbFN0YXRlKEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbikKIHsKKyAgICBp
ZiAoIW1fcGVuZGluZ05hdmlnYXRpb24gfHwgbmF2aWdhdGlvbiAhPSBtX3BlbmRpbmdOYXZpZ2F0
aW9uKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAobV9zbmFwc2hvdFJlbW92YWxUcmFja2Vy
LmlzUGF1c2VkKCkgJiYgbV9zbmFwc2hvdFJlbW92YWxUcmFja2VyLmhhc1JlbW92YWxDYWxsYmFj
aygpKSB7CiAgICAgICAgIHJlbW92ZVN3aXBlU25hcHNob3QoKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMjI1LDggKzIyOCwxMSBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkUmVhY2hN
YWluRnJhbWVMb2FkVGVybWluYWxTdGF0ZSgpCiAgICAgY2hlY2tGb3JBY3RpdmVMb2FkcygpOwog
fQogCi12b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlv
bkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBlKQordm9pZCBWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUo
QVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0
eXBlKQogeworICAgIGlmICghbV9wZW5kaW5nTmF2aWdhdGlvbiB8fCBuYXZpZ2F0aW9uICE9IG1f
cGVuZGluZ05hdmlnYXRpb24pCisgICAgICAgIHJldHVybjsKKwogICAgIGRpZFN0YXJ0UHJvdmlz
aW9uYWxPclNhbWVEb2N1bWVudExvYWRGb3JNYWluRnJhbWUoKTsKIAogICAgIGJvb2wgY2FuY2Vs
bGVkT3V0c3RhbmRpbmdFdmVudCA9IGZhbHNlOwpAQCAtNTc2LDcgKzU4Miw3IEBAIHZvaWQgVmll
d0dlc3R1cmVDb250cm9sbGVyOjp3aWxsRW5kU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0mIHRhcmdldEl0CiAgICAgYXV0byByZW5kZXJUcmVlU2l6ZVRocmVzaG9sZCA9IHJlbmRl
clRyZWVTaXplICogc3dpcGVTbmFwc2hvdFJlbW92YWxSZW5kZXJUcmVlU2l6ZVRhcmdldEZyYWN0
aW9uOwogCiAgICAgbV9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZCA9IGZhbHNlOwotICAgIG1fd2Vi
UGFnZVByb3h5LmdvVG9CYWNrRm9yd2FyZEl0ZW0odGFyZ2V0SXRlbSk7CisgICAgbV9wZW5kaW5n
TmF2aWdhdGlvbiA9IG1fd2ViUGFnZVByb3h5LmdvVG9CYWNrRm9yd2FyZEl0ZW0odGFyZ2V0SXRl
bSk7CiAKICAgICBhdXRvKiBjdXJyZW50SXRlbSA9IG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3YXJk
TGlzdCgpLmN1cnJlbnRJdGVtKCk7CiAgICAgLy8gVGhlIG1haW4gZnJhbWUgd2lsbCBub3QgYmUg
bmF2aWdhdGVkIHNvIGhpZGUgdGhlIHNuYXBzaG90IHJpZ2h0IGF3YXkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCmluZGV4IDQzNDM0OTBmZTRi
ZmI0OWVkOGZjZGIyZmYxZjE4MDFmMTY5NTQ5OTkuLmExZGZkOTU4NTVjNjE0MjcwZWVlNWNjYjYx
ZjQyOGQzMDRiYmFlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdH
ZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0
dXJlQ29udHJvbGxlci5oCkBAIC02Nyw2ICs2NywxMCBAQCBjbGFzcyBJT1N1cmZhY2U7CiB9CiAj
ZW5kaWYKIAorbmFtZXNwYWNlIEFQSSB7CitjbGFzcyBOYXZpZ2F0aW9uOworfQorCiAjaWYgUExB
VEZPUk0oTUFDKQogdHlwZWRlZiBOU0V2ZW50KiBQbGF0Zm9ybVNjcm9sbEV2ZW50OwogI2VsaWYg
UExBVEZPUk0oR1RLKQpAQCAtMTUwLDE0ICsxNTQsMTQgQEAgcHVibGljOgogICAgIFdlYkNvcmU6
OkNvbG9yIGJhY2tncm91bmRDb2xvckZvckN1cnJlbnRTbmFwc2hvdCgpIGNvbnN0IHsgcmV0dXJu
IG1fYmFja2dyb3VuZENvbG9yRm9yQ3VycmVudFNuYXBzaG90OyB9CiAKICAgICB2b2lkIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lKCk7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2Fk
Rm9yTWFpbkZyYW1lKCkgeyBkaWRSZWFjaE1haW5GcmFtZUxvYWRUZXJtaW5hbFN0YXRlKCk7IH0K
LSAgICB2b2lkIGRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkgeyBkaWRSZWFjaE1haW5GcmFtZUxv
YWRUZXJtaW5hbFN0YXRlKCk7IH0KKyAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpO
YXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKSB7IGRpZFJlYWNoTmF2aWdhdGlvblRlcm1pbmFsU3RhdGUo
bmF2aWdhdGlvbik7IH0KKyAgICB2b2lkIGRpZEZhaWxOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlv
biogbmF2aWdhdGlvbikgeyBkaWRSZWFjaE5hdmlnYXRpb25UZXJtaW5hbFN0YXRlKG5hdmlnYXRp
b24pOyB9CiAgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJh
bWUoKTsKICAgICB2b2lkIGRpZFJlcGFpbnRBZnRlck5hdmlnYXRpb24oKTsKICAgICB2b2lkIGRp
ZEhpdFJlbmRlclRyZWVTaXplVGhyZXNob2xkKCk7CiAgICAgdm9pZCBkaWRSZXN0b3JlU2Nyb2xs
UG9zaXRpb24oKTsKLSAgICB2b2lkIGRpZFJlYWNoTWFpbkZyYW1lTG9hZFRlcm1pbmFsU3RhdGUo
KTsKLSAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURv
Y3VtZW50TmF2aWdhdGlvblR5cGUpOworICAgIHZvaWQgZGlkUmVhY2hOYXZpZ2F0aW9uVGVybWlu
YWxTdGF0ZShBUEk6Ok5hdmlnYXRpb24qKTsKKyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmln
YXRpb25Gb3JNYWluRnJhbWUoQVBJOjpOYXZpZ2F0aW9uKiwgU2FtZURvY3VtZW50TmF2aWdhdGlv
blR5cGUpOwogCiAgICAgdm9pZCBjaGVja0ZvckFjdGl2ZUxvYWRzKCk7CiAKQEAgLTMyNyw2ICsz
MzEsOCBAQCBwcml2YXRlOgogICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBtX2FsdGVybmF0ZUJh
Y2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2U7CiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gbV93ZWJQ
YWdlUHJveHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGU7CiAKKyAgICBSZWZQdHI8
QVBJOjpOYXZpZ2F0aW9uPiBtX3BlbmRpbmdOYXZpZ2F0aW9uOworCiAgICAgR2VzdHVyZUlEIG1f
Y3VycmVudEdlc3R1cmVJRDsKIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYWE1MDFlZTNkYzEwYjY1Njg0ZTYz
NTgwYWY3ZTJlYWE1MmNiZjFjMC4uMzA3MDQ3NjJiMDkzOWNhZjA4M2ZmNTM3MmFmZjMyNGYxY2Iw
MmZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC00ODcy
LDcgKzQ4NzIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJgogCiAgICAgaWYgKGlzTWFpbkZy
YW1lKSB7CiAgICAgICAgIHJlcG9ydFBhZ2VMb2FkUmVzdWx0KCk7Ci0gICAgICAgIHBhZ2VDbGll
bnQoKS5kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCk7CisgICAgICAgIHBhZ2VDbGllbnQoKS5k
aWRGaW5pc2hOYXZpZ2F0aW9uKG5hdmlnYXRpb24uZ2V0KCkpOwogCiAgICAgICAgIGlmIChuYXZp
Z2F0aW9uKQogICAgICAgICAgICAgbmF2aWdhdGlvbi0+c2V0Q2xpZW50TmF2aWdhdGlvbkFjdGl2
aXR5KG51bGxwdHIpOwpAQCAtNDkyNiw3ICs0OTI2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZEZhaWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEm
JgogCiAgICAgaWYgKGlzTWFpbkZyYW1lKSB7CiAgICAgICAgIHJlcG9ydFBhZ2VMb2FkUmVzdWx0
KGVycm9yKTsKLSAgICAgICAgcGFnZUNsaWVudCgpLmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCk7
CisgICAgICAgIHBhZ2VDbGllbnQoKS5kaWRGYWlsTmF2aWdhdGlvbihuYXZpZ2F0aW9uLmdldCgp
KTsKICAgICAgICAgaWYgKG5hdmlnYXRpb24pCiAgICAgICAgICAgICBuYXZpZ2F0aW9uLT5zZXRD
bGllbnROYXZpZ2F0aW9uQWN0aXZpdHkobnVsbHB0cik7CiAgICAgfQpAQCAtNDk2OCw3ICs0OTY4
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFt
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWkKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50
LT5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uKCp0aGlzLCBuYXZpZ2F0aW9uLmdldCgpLCBuYXZp
Z2F0aW9uVHlwZSwgbV9wcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRh
Lm9iamVjdCgpKS5nZXQoKSk7CiAKICAgICBpZiAoaXNNYWluRnJhbWUpCi0gICAgICAgIHBhZ2VD
bGllbnQoKS5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKG5hdmlnYXRpb25U
eXBlKTsKKyAgICAgICAgcGFnZUNsaWVudCgpLmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JN
YWluRnJhbWUobmF2aWdhdGlvbi5nZXQoKSwgbmF2aWdhdGlvblR5cGUpOwogfQogCiB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkQ2hhbmdlTWFpbkRvY3VtZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvVmlld0dlc3R1cmVD
b250cm9sbGVyR3RrLmNwcAppbmRleCBlNmZlZGQwZDkwZmM2Nzk5N2I2OTBjODAyMDUyYzM5YjFl
Nzc5NmMxLi5hZjFjYjE0NWEzZjE1Yjk5OTgzZTEwZGQzMTdjNTgwN2IwZGRiMDY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvVmlld0dlc3R1cmVDb250cm9sbGVyR3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvVmlld0dlc3R1cmVDb250cm9s
bGVyR3RrLmNwcApAQCAtNTA2LDYgKzUwNiw4IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVy
OjpyZW1vdmVTd2lwZVNuYXBzaG90KCkKIAogICAgIG1fYmFja2dyb3VuZENvbG9yRm9yQ3VycmVu
dFNuYXBzaG90ID0gQ29sb3IoKTsKIAorICAgIG1fcGVuZGluZ05hdmlnYXRpb24gPSBudWxscHRy
OworCiAgICAgZGlkRW5kR2VzdHVyZSgpOwogCiAgICAgbV9zd2lwZVByb2dyZXNzVHJhY2tlci5y
ZXNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MuaAppbmRleCBjMmZkYzkzM2E0MTg4ODdmNzIzNDE4YzAwODI2MWM5NDZiMWEyOWExLi5kZjNk
NDRlMmU5ZThkMTJjNjNkOTZjMTZlZDcxZDhlNjU4MDg5YmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMjIwLDkgKzIyMCw5IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1h
aW5GcmFtZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgp
IG92ZXJyaWRlOwotICAgIHZvaWQgZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsK
LSAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURvY3Vt
ZW50TmF2aWdhdGlvblR5cGUpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlv
bihBUEk6Ok5hdmlnYXRpb24qKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZhaWxOYXZpZ2F0aW9u
KEFQSTo6TmF2aWdhdGlvbiopIG92ZXJyaWRlOworICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvck1haW5GcmFtZShBUEk6Ok5hdmlnYXRpb24qLCBTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uVHlwZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWROb3RIYW5kbGVUYXBBc0NsaWNrKGNvbnN0
IFdlYkNvcmU6OkludFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDb21wbGV0ZVN5bnRo
ZXRpY0NsaWNrKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCAzODc5YWJkMTVhNjQzYjBjYmUyNjZmOWY1MjFi
YTFlNjZkZWY3ZDMzLi4xNDk3ZjUwZTBkM2UwMzE5ODI1MTZiOWFjZmE4MDYzN2NmYmExNTM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
CkBAIC03OTAsMTkgKzc5MCwxOSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKQogewogfQogCi12b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRp
ZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKQogewotICAgIFtt
X3dlYlZpZXcgX2RpZEZpbmlzaExvYWRGb3JNYWluRnJhbWVdOworICAgIFttX3dlYlZpZXcgX2Rp
ZEZpbmlzaE5hdmlnYXRpb246bmF2aWdhdGlvbl07CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6
OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxO
YXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbikKIHsKLSAgICBbbV93ZWJWaWV3
IF9kaWRGYWlsTG9hZEZvck1haW5GcmFtZV07CisgICAgW21fd2ViVmlldyBfZGlkRmFpbE5hdmln
YXRpb246bmF2aWdhdGlvbl07CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1
bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgbmF2
aWdhdGlvblR5cGUpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yTWFpbkZyYW1lKEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgU2FtZURvY3VtZW50
TmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUpCiB7Ci0gICAgW21fd2ViVmlldyBfZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTpuYXZpZ2F0aW9uVHlwZV07CisgICAgW21f
d2ViVmlldyBfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTpuYXZpZ2F0aW9u
IG9mVHlwZTpuYXZpZ2F0aW9uVHlwZV07CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENo
YW5nZUJhY2tncm91bmRDb2xvcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbQppbmRleCA1Mjk1ZjFkOTJkMjcxMGQy
MDUzZjNmYWU1YjlmZjMwMWUzYzUyOTlkLi45N2MxNWM2MDE2Y2I3MzdmMWUxNWZiM2ZhYmU1Yjk0
YzgyZjRjYTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dl
c3R1cmVDb250cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9W
aWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0KQEAgLTI5Miw3ICsyOTIsNyBAQCB2b2lkIFZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6d2lsbEVuZFN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtJiB0YXJnZXRJdAogICAgICAgICBtX3NuYXBzaG90UmVtb3ZhbFRhcmdldFJlbmRlclRyZWVT
aXplID0gc25hcHNob3QtPnJlbmRlclRyZWVTaXplKCkgKiBzd2lwZVNuYXBzaG90UmVtb3ZhbFJl
bmRlclRyZWVTaXplVGFyZ2V0RnJhY3Rpb247CiAKICAgICBtX2RpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkID0gZmFsc2U7Ci0gICAgbV93ZWJQYWdlUHJveHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJy
ZW50U3dpcGUtPmdvVG9CYWNrRm9yd2FyZEl0ZW0odGFyZ2V0SXRlbSk7CisgICAgbV9wZW5kaW5n
TmF2aWdhdGlvbiA9IG1fd2ViUGFnZVByb3h5Rm9yQmFja0ZvcndhcmRMaXN0Rm9yQ3VycmVudFN3
aXBlLT5nb1RvQmFja0ZvcndhcmRJdGVtKHRhcmdldEl0ZW0pOwogCiAgICAgYXV0byogY3VycmVu
dEl0ZW0gPSBtX3dlYlBhZ2VQcm94eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZS0+
YmFja0ZvcndhcmRMaXN0KCkuY3VycmVudEl0ZW0oKTsKICAgICAvLyBUaGUgbWFpbiBmcmFtZSB3
aWxsIG5vdCBiZSBuYXZpZ2F0ZWQgc28gaGlkZSB0aGUgc25hcHNob3QgcmlnaHQgYXdheS4KQEAg
LTQzNyw2ICs0MzcsOCBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6cmVzZXRTdGF0ZSgp
CiAKICAgICBtX2JhY2tncm91bmRDb2xvckZvckN1cnJlbnRTbmFwc2hvdCA9IFdlYkNvcmU6OkNv
bG9yKCk7CiAKKyAgICBtX3BlbmRpbmdOYXZpZ2F0aW9uID0gbnVsbHB0cjsKKwogICAgIGRpZEVu
ZEdlc3R1cmUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMuaAppbmRleCA1MzIwM2MwYmFiN2U4ZmMyZjFiNzVkMzQwYzA1NWM5Mzg1OTAw
NTBlLi40NjE4NzNmZGJmNjQ1OThkOTY3YmRjNjhjMzc5NzZkZDJjZmJkNzk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaApAQCAtMjE1LDkg
KzIxNSw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9y
TWFpbkZyYW1lKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JN
YWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1l
KFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZpbmlz
aE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRGYWls
TmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFNhbWVE
b2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoQVBJOjpOYXZpZ2F0aW9uKiwgU2FtZURvY3Vt
ZW50TmF2aWdhdGlvblR5cGUpIG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlQ29udHJvbGxlZEVs
ZW1lbnRJRFJlc3BvbnNlKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaWRQ
ZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdChjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYs
IGJvb2wgY29udGVudFByZXZlbnRzRGVmYXVsdCwgQVBJOjpPYmplY3QqKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQppbmRl
eCA3YjdlNjZjNzllZGFmODRhOGExNDc1NjUyNGUxNmMyNmU1Nzg5NmM2Li5lNDc3YmNlZmQ0MmJl
NWNlMGI0ZDRjOGE2MTVjZGFiNTgzNzhkNTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC03ODgsMjYgKzc4OCwyNiBAQCB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJh
bWUoKQogICAgICAgICBnZXN0dXJlQ29udHJvbGxlci0+ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0Rm9yTWFpbkZyYW1lKCk7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlz
aExvYWRGb3JNYWluRnJhbWUoKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTmF2aWdh
dGlvbihBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24pCiB7CiAgICAgaWYgKGF1dG8gZ2VzdHVy
ZUNvbnRyb2xsZXIgPSBtX2ltcGwtPmdlc3R1cmVDb250cm9sbGVyKCkpCi0gICAgICAgIGdlc3R1
cmVDb250cm9sbGVyLT5kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCk7CisgICAgICAgIGdlc3R1
cmVDb250cm9sbGVyLT5kaWRGaW5pc2hOYXZpZ2F0aW9uKG5hdmlnYXRpb24pOwogCiAgICAgTlNB
Y2Nlc3NpYmlsaXR5UG9zdE5vdGlmaWNhdGlvbihOU0FjY2Vzc2liaWxpdHlVbmlnbm9yZWRBbmNl
c3RvcihtX3ZpZXcpLCBrQVhMb2FkQ29tcGxldGVOb3RpZmljYXRpb24pOwogfQogCi12b2lkIFBh
Z2VDbGllbnRJbXBsOjpkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRGYWlsTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24pCiB7CiAg
ICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIgPSBtX2ltcGwtPmdlc3R1cmVDb250cm9sbGVy
KCkpCi0gICAgICAgIGdlc3R1cmVDb250cm9sbGVyLT5kaWRGYWlsTG9hZEZvck1haW5GcmFtZSgp
OworICAgICAgICBnZXN0dXJlQ29udHJvbGxlci0+ZGlkRmFpbE5hdmlnYXRpb24obmF2aWdhdGlv
bik7CiAKICAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uKE5TQWNjZXNzaWJpbGl0
eVVuaWdub3JlZEFuY2VzdG9yKG1fdmlldyksIGtBWExvYWRDb21wbGV0ZU5vdGlmaWNhdGlvbik7
CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JN
YWluRnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSkKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoQVBJOjpOYXZpZ2F0
aW9uKiBuYXZpZ2F0aW9uLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBlKQogewogICAg
IGlmIChhdXRvIGdlc3R1cmVDb250cm9sbGVyID0gbV9pbXBsLT5nZXN0dXJlQ29udHJvbGxlcigp
KQotICAgICAgICBnZXN0dXJlQ29udHJvbGxlci0+ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZv
ck1haW5GcmFtZSh0eXBlKTsKKyAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRpZFNhbWVEb2N1
bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUobmF2aWdhdGlvbiwgdHlwZSk7CiB9CiAKIHZvaWQg
UGFnZUNsaWVudEltcGw6OmhhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNwb25zZShjb25zdCBT
dHJpbmcmIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQppbmRleCA5YmU5ZjU2ZDdhNGYwYTU1NmNh
YjI0Yjc2ZTcyNThhNGRiZjg5M2FhLi5lNjBhMmRmNmI3YzBmNTZlNDQ1ZDdkNWQ5MTU3ZThiZThm
YWM1MjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1
cmVDb250cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3
R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFBMQVRGT1JN
KE1BQykKIAorI2ltcG9ydCAiQVBJTmF2aWdhdGlvbi5oIgogI2ltcG9ydCAiRHJhd2luZ0FyZWFQ
cm94eS5oIgogI2ltcG9ydCAiRnJhbWVMb2FkU3RhdGUuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIK
QEAgLTY0Myw2ICs2NDQsOCBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6cmVzZXRTdGF0
ZSgpCiAKICAgICBtX2JhY2tncm91bmRDb2xvckZvckN1cnJlbnRTbmFwc2hvdCA9IENvbG9yKCk7
CiAKKyAgICBtX3BlbmRpbmdOYXZpZ2F0aW9uID0gbnVsbHB0cjsKKwogICAgIGRpZEVuZEdlc3R1
cmUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRp
b24vUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRp
b24vUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IGM5OWFjZDJiOTUyZTJmNTQyNzM4OWY3NjM0YmVj
YzE0MDhkNzMwOWMuLjlkNjEzMTBlY2VjZDliMTRkYmEzMGY0NGYxOGViODkyM2QwMzVhNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xp
ZW50SW1wbC5jcHAKQEAgLTI0NSwxNSArMjQ1LDE1IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpCiB7CiB9CiAKLXZvaWQg
UGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKQordm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZGlkRmluaXNoTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qKQogewogfQogCi12
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjpkaWRGYWlsTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qKQogewogfQogCi12
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1l
KFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShBUEk6Ok5hdmlnYXRpb24qLCBTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uVHlwZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggOWJmZTE2MmUzY2Q1MWU4
YTk1NjIwYTczZTBlMWU5ODhiNzYxNWNiNy4uMjI5MDgyMmFlZWNkYTM5YTE0MDRjZTgwMmZiZGQx
M2RlNTc1ZmQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRp
b24vUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3Rh
dGlvbi9QYWdlQ2xpZW50SW1wbC5oCkBAIC0xMjQsOSArMTI0LDkgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKSBmaW5hbDsKIAogICAgIHZv
aWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkgZmluYWw7Ci0g
ICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkgZmluYWw7Ci0gICAgdm9pZCBkaWRG
YWlsTG9hZEZvck1haW5GcmFtZSgpIGZpbmFsOwotICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkgZmluYWw7Cisg
ICAgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopIGZpbmFsOworICAg
IHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgZmluYWw7CisgICAgdm9p
ZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKEFQSTo6TmF2aWdhdGlvbios
IFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkQ2hhbmdl
QmFja2dyb3VuZENvbG9yKCkgZmluYWw7CiAgICAgdm9pZCBpc1BsYXlpbmdBdWRpb1dpbGxDaGFu
Z2UoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdl
Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVudElt
cGwuY3BwCmluZGV4IGJlNjFiYmRmZTVlMWYwNWE3MzVjYzg2Zjg5MzNmZDE3NTQ4YzE2MjYuLjkx
Mjc5YzE2MTU4MTVmYzc3NWI0ODRjNDA5ZTIwMmNjODk3Njc0MmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMzMwLDEyICszMzAsMTIg
QEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9y
TWFpbkZyYW1lKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRp
ZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
Rm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKQordm9pZCBQYWdlQ2xpZW50
SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShBUEk6Ok5hdmlnYXRp
b24qLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuaAppbmRl
eCAzNzY3MjUxODA4NWI2MWUzOTk5NDRlNDY2YmI0MDhiN2Y5OWZjN2U5Li5iY2I1MmY3MjQ0MWU4
OTVkYWM0YzlhMmFiNzUyNTUxZDFlZjVkMjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy93aW4vUGFnZUNsaWVudEltcGwuaApAQCAtOTksNyArOTksMTAgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5Jikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIGJvb2wgdXNlQ3VzdG9tQ29udGVudFByb3ZpZGVyKSBvdmVycmlkZTsKLSAgICB2b2lk
IGRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBkaWRGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaWRGYWlsTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qKSBvdmVycmlkZSB7IH0KKyAgICB2
b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoQVBJOjpOYXZpZ2F0aW9u
KiwgU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpIG92ZXJyaWRlOwogCiAgICAgLy8gQXV4aWxp
YXJ5IENsaWVudCBDcmVhdGlvbgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKQEAgLTEyNSw5
ICsxMjgsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgd2lsbFJlY29yZE5hdmlnYXRpb25TbmFwc2hv
dChXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZW1vdmVO
YXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGRpZEZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOwotICAgIHZvaWQg
ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkU2FtZURv
Y3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkg
b3ZlcnJpZGU7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgZG9uZVdpdGhU
b3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmLCBib29sIHdhc0V2ZW50SGFuZGxl
ZCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTA2ZTcwZDc3YTkxY2E4MjA4ZmNkM2U1YTg5M2VmMTY2ZDg2
Yjk2My4uZDRiNGI5ZGE4ZGY3NDZlMTEzMmVlMGY0OWM0MWUyMmIwMjllZjVmMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDIwLTA2LTI5ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgorCisgICAgICAgIFN3aXBlIHNuYXBzaG90IGlzIHJlbW92ZWQgdG9vIGVhcmx5IHdo
ZW4gc3dpcGluZyBhd2F5IGZyb20gYSBwYWdlIHRoYXQgaXMgc3RpbGwgbG9hZGluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNzYzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NDU3NjgxMT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRl
c3QuanM6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3dpcGUvc3dpcGUtYmFjay13aXRo
LW91dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zd2lwZS9zd2lwZS1iYWNrLXdpdGgtb3V0c3RhbmRpbmctbG9hZC1j
YW5jZWxsYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgIEFkZCBhIHRlc3QgdGhhdCBlbnN1cmVz
IHRoYXQgd2UgZG9uJ3QgcmVtb3ZlIHRoZSBzd2lwZSBzbmFwc2hvdCBiZWZvcmUgdGhlICJiYWNr
IiBwYWdlIGlzIGxvYWRlZC4KKyAgICAgICAgQmVmb3JlIHRoaXMgZml4LCB0aGlzIHRlc3QgZmFp
bHMgdGhlIGFzc2VydGlvbiB0aGF0IHdlJ3JlIG9uIHRoZSBmaXJzdCBwYWdlIGluIGRpZFJlbW92
ZVN3aXBlU25hcHNob3RDYWxsYmFjay4KKwogMjAyMC0wNi0yMyAgRGllZ28gUGlubyBHYXJjaWEg
IDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVucmV2aWV3ZWQgdGVzdCBnYXJk
ZW5pbmcuIFVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9ucyBhZnRlciByMjYzNDM3LgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zd2lwZS9yZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTM2ZTgyMGRkNzRmNmU1NWM2ZDlkZjc3OGM3OGI2NDJhMTRlMTE0ZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBl
LXRlc3QuanMKQEAgLTAsMCArMSw4NCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoZXhwZWN0ZWQsIGFj
dHVhbCwgbWVzc2FnZSkKK3sKKyAgICBpZiAoZXhwZWN0ZWQgIT0gYWN0dWFsKQorICAgICAgICBs
b2coIkZhaWx1cmUuICIgKyBtZXNzYWdlICsgIiAoZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCArICIs
IGFjdHVhbDogIiArIGFjdHVhbCArICIpIik7Cit9CisKK2Z1bmN0aW9uIGxvZyhzKQoreworICAg
IHdpbmRvdy5sb2NhbFN0b3JhZ2VbInN3aXBlTG9nZ2luZyJdICs9IHMgKyAiPGJyLz4iOworfQor
CitmdW5jdGlvbiBkdW1wTG9nKCkKK3sKKyAgICB3aW5kb3cuZG9jdW1lbnQuYm9keS5pbm5lckhU
TUwgPSB3aW5kb3cubG9jYWxTdG9yYWdlWyJzd2lwZUxvZ2dpbmciXTsKK30KKworZnVuY3Rpb24g
dGVzdENvbXBsZXRlKCkKK3sKKyAgICBkdW1wTG9nKCk7CisgICAgd2luZG93LnRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBpbml0aWFsaXplU3dpcGVUZXN0KCkKK3sKKyAg
ICB3aW5kb3cubG9jYWxTdG9yYWdlWyJzd2lwZUxvZ2dpbmciXSA9ICIiOworICAgIHRlc3RSdW5u
ZXIuc2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZCh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLmNs
ZWFyQmFja0ZvcndhcmRMaXN0KCk7Cit9CisKK2Z1bmN0aW9uIGhhc0luaXRpYWxpemVkU3dpcGVU
ZXN0KCkKK3sKKyAgICByZXR1cm4gKCJzd2lwZUxvZ2dpbmciIGluIHdpbmRvdy5sb2NhbFN0b3Jh
Z2UpOworfQorCitmdW5jdGlvbiBzdGFydE1lYXN1cmluZ0R1cmF0aW9uKGtleSkKK3sKKyAgICB3
aW5kb3cubG9jYWxTdG9yYWdlW2tleSArICJzd2lwZVN0YXJ0VGltZSJdID0gRGF0ZS5ub3coKTsK
K30KKworZnVuY3Rpb24gbWVhc3VyZWREdXJhdGlvblNob3VsZEJlTGVzc1RoYW4oa2V5LCB0aW1l
SW5NUywgbWVzc2FnZSkKK3sKKyAgICBsZXQgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gd2luZG93
LmxvY2FsU3RvcmFnZVtrZXkgKyAic3dpcGVTdGFydFRpbWUiXTsKKyAgICBpZiAoZHVyYXRpb24g
Pj0gdGltZUluTVMpCisgICAgICAgIGxvZygiRmFpbHVyZS4gIiArIG1lc3NhZ2UgKyAiIChleHBl
Y3RlZDogIiArIHRpbWVJbk1TICsgIiwgYWN0dWFsOiAiICsgZHVyYXRpb24gKyAiKSIpOworfQor
CitmdW5jdGlvbiBzdGFydFN3aXBlR2VzdHVyZShjYWxsYmFjaykKK3sKKyAgICBsb2coInN0YXJ0
U3dpcGVHZXN0dXJlIik7CisgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgKGZ1bmN0
aW9uKCkgeworICAgICAgICB1aUNvbnRyb2xsZXIuYmVnaW5CYWNrU3dpcGUoZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICB9
KTsKKyAgICB9KSgpO2AsIGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9KTsKK30KKworZnVuY3Rp
b24gY29tcGxldGVTd2lwZUdlc3R1cmUoY2FsbGJhY2spCit7CisgICAgbG9nKCJjb21wbGV0ZVN3
aXBlR2VzdHVyZSIpOworICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgIChmdW5jdGlv
bigpIHsKKyAgICAgICAgdWlDb250cm9sbGVyLmNvbXBsZXRlQmFja1N3aXBlKGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAg
fSk7CisgICAgfSkoKTtgLCBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fSk7Cit9CisKK2Z1bmN0
aW9uIHBsYXlFdmVudFN0cmVhbShzdHJlYW0sIGNhbGxiYWNrKQoreworICAgIGxvZygicGxheUV2
ZW50U3RyZWFtIik7CisgICAgaWYgKHRlc3RSdW5uZXIuaXNJT1NGYW1pbHkpIHsKKyAgICAgICAg
Ly8gRklYTUU6IFRoaXMgdGVzdCBzaG91bGQgcHJvYmFibHkgbm90IGxvZyBwbGF5RXZlbnRTdHJl
YW0KKyAgICAgICAgLy8gb24gaU9TLCB3aGVyZSBpdCBkb2Vzbid0IGFjdHVhbGx5IGRvIGl0Lgor
ICAgICAgICBzZXRUaW1lb3V0KGNhbGxiYWNrLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAg
IHVpQ29udHJvbGxlci5wbGF5QmFja0V2ZW50U3RyZWFtKFxgJHtzdHJlYW19XGAsIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAg
ICAgfSk7CisgICAgfSkoKTtgLCBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fSk7Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRz
dGFuZGluZy1sb2FkLWNhbmNlbGxhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRzdGFuZGluZy1sb2FkLWNhbmNlbGxhdGlv
bi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODlkZWNmZDRjMzcxMjVjZmI1NTk4MTE5Njg5YzNm
MGM0YTFkODg0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3dp
cGUvc3dpcGUtYmFjay13aXRoLW91dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0aW9uLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDcgQEAKK3N0YXJ0U3dpcGVHZXN0dXJlCitkaWRCZWdpblN3aXBlCitj
b21wbGV0ZVN3aXBlR2VzdHVyZQord2lsbEVuZFN3aXBlCitkaWRFbmRTd2lwZQorZGlkUmVtb3Zl
U3dpcGVTbmFwc2hvdAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N3aXBl
L3N3aXBlLWJhY2std2l0aC1vdXRzdGFuZGluZy1sb2FkLWNhbmNlbGxhdGlvbi5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zd2lwZS9zd2lwZS1iYWNrLXdpdGgtb3V0c3RhbmRpbmctbG9h
ZC1jYW5jZWxsYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGZkMzZhNzQ2ZWNjMDljMzEyZWU3ZWEy
YTMwMjY3NzI1NjFlZjA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zd2lwZS9zd2lwZS1iYWNrLXdpdGgtb3V0c3RhbmRpbmctbG9hZC1jYW5jZWxsYXRpb24uaHRt
bApAQCAtMCwwICsxLDgzIEBACis8aGVhZD4KKzxzdHlsZT4KK2h0bWwgeworICAgIGZvbnQtc2l6
ZTogMzJwdDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGRpZEJlZ2luU3dpcGVDYWxsYmFjaygp
Cit7CisgICAgbG9nKCJkaWRCZWdpblN3aXBlIik7CisKKyAgICBjb21wbGV0ZVN3aXBlR2VzdHVy
ZSgpOworfQorCitmdW5jdGlvbiB3aWxsRW5kU3dpcGVDYWxsYmFjaygpCit7CisgICAgbG9nKCJ3
aWxsRW5kU3dpcGUiKTsKKworICAgIHNob3VsZEJlKGZhbHNlLCBpc0ZpcnN0UGFnZSgpLCAiVGhl
IHN3aXBlIHNob3VsZCBub3QgeWV0IGhhdmUgbmF2aWdhdGVkIGF3YXkgZnJvbSB0aGUgc2Vjb25k
IHBhZ2UuIik7Cit9CisKK2Z1bmN0aW9uIGRpZEVuZFN3aXBlQ2FsbGJhY2soKQoreworICAgIGxv
ZygiZGlkRW5kU3dpcGUiKTsKKworICAgIHN0YXJ0TWVhc3VyaW5nRHVyYXRpb24oInNuYXBzaG90
UmVtb3ZhbCIpOworfQorCit2YXIgaGFzUmVtb3ZlZFNuYXBzaG90ID0gZmFsc2U7CisKK2Z1bmN0
aW9uIGRpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjaygpCit7CisgICAgbG9nKCJkaWRSZW1v
dmVTd2lwZVNuYXBzaG90Iik7CisKKyAgICBoYXNSZW1vdmVkU25hcHNob3QgPSB0cnVlOworICAg
IAorICAgIHNob3VsZEJlKHRydWUsIGlzRmlyc3RQYWdlKCksICJUaGUgc3dpcGUgc2hvdWxkIGhh
dmUgbmF2aWdhdGVkIGJhY2sgdG8gdGhlIGZpcnN0IHBhZ2UuIik7CisKKyAgICB0ZXN0Q29tcGxl
dGUoKTsKK30KKworZnVuY3Rpb24gaXNGaXJzdFBhZ2UoKQoreworICAgIHJldHVybiB3aW5kb3cu
bG9jYXRpb24uaHJlZi5pbmRleE9mKCJzZWNvbmQiKSA9PSAtMTsKK30KKword2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uICgpIHsKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiVGhpcyB0
ZXN0IG11c3QgYmUgcnVuIGluIFdlYktpdFRlc3RSdW5uZXIuIjsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gaXNGaXJzdFBhZ2UoKSA/ICJm
aXJzdCIgOiAiPGlmcmFtZSBzcmM9Jy9yZXNvdXJjZXMvc2xvdy1pbWFnZS5waHAnPiI7CisKKyAg
ICBpZiAoaXNGaXJzdFBhZ2UoKSkgeworICAgICAgICBpZiAoaGFzSW5pdGlhbGl6ZWRTd2lwZVRl
c3QoKSkgeworICAgICAgICAgICAgc2hvdWxkQmUoZmFsc2UsIGhhc1JlbW92ZWRTbmFwc2hvdCwg
IlRoZSBzbmFwc2hvdCBzaG91bGQgbm90IGhhdmUgYmVlbiBzeW5jaHJvbm91c2x5IHJlbW92ZWQg
YmVjYXVzZSBvZiB0aGUgY2FuY2VsbGVkIGZvcndhcmQgbG9hZC4iKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGluaXRpYWxpemVTd2lwZVRlc3QoKTsKKworICAg
ICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRCZWdpblN3aXBlQ2FsbGJhY2soZGlkQmVnaW5Td2lw
ZUNhbGxiYWNrKTsKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsV2lsbEVuZFN3aXBlQ2FsbGJh
Y2sod2lsbEVuZFN3aXBlQ2FsbGJhY2spOworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRF
bmRTd2lwZUNhbGxiYWNrKGRpZEVuZFN3aXBlQ2FsbGJhY2spOworICAgICAgICB0ZXN0UnVubmVy
Lmluc3RhbGxEaWRSZW1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2soZGlkUmVtb3ZlU3dpcGVTbmFw
c2hvdENhbGxiYWNrKTsKKworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5j
dGlvbiAoKSB7IAorICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5kb3cubG9j
YXRpb24uaHJlZiArICI/c2Vjb25kIjsKKyAgICAgICAgfSwgMCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBzdGFydFN3aXBlR2VzdHVyZSgpOworfTsKKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403162</attachid>
            <date>2020-06-29 19:33:39 -0700</date>
            <delta_ts>2020-07-01 16:23:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213763-20200629193338.patch</filename>
            <type>text/plain</type>
            <size>41888</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJlOTc1ZDMyODcwZTk2YzFk
ZTg0YjRlOGNlOTZmMGUyYTVmYjI1MzEuLmFkYWEzZTg5ODk3ZTdkOGU2NWMwNTk2NWYxMTg2Y2Yx
YmJmODI1MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAxIEBACisyMDIwLTA2LTI5ICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFN3aXBlIHNuYXBzaG90
IGlzIHJlbW92ZWQgdG9vIGVhcmx5IHdoZW4gc3dpcGluZyBhd2F5IGZyb20gYSBwYWdlIHRoYXQg
aXMgc3RpbGwgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjEzNzYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NDU3NjgxMT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rl
c3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRzdGFuZGluZy1sb2FkLWNhbmNlbGxhdGlvbi5o
dG1sCisKKyAgICAgICAgV2hlbiBzd2lwaW5nIGJhY2sgZnJvbSBhIHBhZ2UgdGhhdCBpcyBzdGls
bCBsb2FkaW5nLCB3aGVuIHRoZSBzd2lwZSBjb21taXRzLAorICAgICAgICBhbmQgd2Ugc3RhcnQg
bmF2aWdhdGluZyBiYWNrIHRvIHRoZSBwcmV2aW91cyBwYWdlLCB0aGUgdW5maW5pc2hlZCBmb3J3
YXJkIG5hdmlnYXRpb24KKyAgICAgICAgaXMgY2FuY2VsbGVkLgorCisgICAgICAgIFRoaXMgY2Fu
Y2VsbGF0aW9uIHJlc3VsdGVkIGluIGEgImRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lIiBtYWtpbmcg
aXQgdG8gVmlld0dlc3R1cmVDb250cm9sbGVyLAorICAgICAgICB3aGljaCB0b29rIGl0IGFzIGFu
IGluZGljYXRpb24gdGhhdCB0aGUgbmF2aWdhdGlvbiAqaXQqIHdhcyBpbnRlcmVzdGVkIGluICh0
aGUgYmFjayBuYXZpZ2F0aW9uKQorICAgICAgICBoYWQgZmFpbGVkLCBhbmQgaW1tZWRpYXRlbHkg
cmVtb3ZlZCB0aGUgc25hcHNob3QuCisKKyAgICAgICAgSW5zdGVhZCBvZiBsaXN0ZW5pbmcgdG8g
YW55IHJhbmRvbSBuYXZpZ2F0aW9uJ3MgbG9hZCBub3RpZmljYXRpb25zLCBrZWVwIHRyYWNrIG9m
IHRoZSBuYXZpZ2F0aW9uCisgICAgICAgIHN0YXJ0ZWQgYnkgZ29Ub0JhY2tGb3J3YXJkSXRlbSwg
YW5kIG9ubHkgbGlzdGVuIHRvIG5vdGlmaWNhdGlvbnMgZnJvbSBpdCwgaWdub3JpbmcgdGhlIG90
aGVycy4KKworICAgICAgICBUaGlzIHJlcXVpcmVzIGEgYnVuY2ggb2YgcGx1bWJpbmcgdG8gZ2V0
IHRoZSBuYXZpZ2F0aW9uIGZyb20gV2ViUGFnZVByb3h5IHRvIFZpZXdHZXN0dXJlQ29udHJvbGxl
ciwKKyAgICAgICAgYnV0IGlzIG90aGVyd2lzZSBmYWlybHkgdHJpdmlhbC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZGlkRmFpbE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9y
TWFpbkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xp
ZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNl
LmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlRGlkRmluaXNoTG9hZEZvck1haW5GcmFt
ZSk6CisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZURpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKToK
KyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1h
aW5GcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtX
S1dlYlZpZXcgX2RpZEZpbmlzaE5hdmlnYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBf
ZGlkRmFpbE5hdmlnYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkU2FtZURvY3Vt
ZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTpvZlR5cGU6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBfZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZV0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2RpZEZhaWxMb2FkRm9yTWFpbkZyYW1lXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dL
V2ViVmlldyBfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTpdKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWlu
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZv
ck1haW5GcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpk
aWRGYWlsTG9hZEZvck1haW5GcmFtZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS93cGUvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNoTmF2aWdhdGlvblRlcm1p
bmFsU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFNh
bWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OndpbGxFbmRTd2lwZUdlc3R1cmUpOgorICAgICAgICAoV2ViS2l0
OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNoTWFpbkZyYW1lTG9hZFRlcm1pbmFsU3Rh
dGUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIu
aDoKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRGaW5pc2hOYXZp
Z2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRGYWls
TmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlk
RmluaXNoTG9hZEZvck1haW5GcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUpOiBEZWxldGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRp
ZEZpbmlzaE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlk
RmFpbE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjp3aWxsRW5kU3dpcGVHZXN0
dXJlKToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpyZXNldFN0YXRl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZGlkRmFpbE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZSk6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9y
TWFpbkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJl
Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVy
OjpyZXNldFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVu
dEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTmF2
aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGYWlsTmF2aWdh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uRm9yTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6ZGlkRmluaXNoTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUpOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuaDoKKwogMjAyMC0w
Ni0yMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIE1ha2UgSFRUUC8zIGV4cGVyaW1lbnRhbCBmZWF0dXJlIHdvcmsgb24gaU9TIGFuZCBvbmx5
IGNyZWF0ZSBzdG9yYWdlIGRpcmVjdG9yeSBpZiBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDBhZWU0YmM5Mzgw
Y2I0N2NhNDkwMGQ4NTU2ZDUxZTI0ZDhmMTRiZTcuLjQ4YzNiOTgwZTQ0YjBmMGJjZDkzMzUyYjY5
N2E1MGFiY2Y1NjdkYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvUGFnZUNsaWVudEltcGwuY3BwCkBAIC01MjIsMTkgKzUyMiwxOSBAQCB2b2lkIFBhZ2VDbGll
bnRJbXBsOjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKQogICAg
IHdlYmtpdFdlYlZpZXdCYXNlRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZy
YW1lKFdFQktJVF9XRUJfVklFV19CQVNFKG1fdmlld1dpZGdldCkpOwogfQogCi12b2lkIFBhZ2VD
bGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkKK3ZvaWQgUGFnZUNsaWVudElt
cGw6OmRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKQogewot
ICAgIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmluaXNoTG9hZEZvck1haW5GcmFtZShXRUJLSVRfV0VC
X1ZJRVdfQkFTRShtX3ZpZXdXaWRnZXQpKTsKKyAgICB3ZWJraXRXZWJWaWV3QmFzZURpZEZpbmlz
aE5hdmlnYXRpb24oV0VCS0lUX1dFQl9WSUVXX0JBU0UobV92aWV3V2lkZ2V0KSwgbmF2aWdhdGlv
bik7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiog
bmF2aWdhdGlvbikKIHsKLSAgICB3ZWJraXRXZWJWaWV3QmFzZURpZEZhaWxMb2FkRm9yTWFpbkZy
YW1lKFdFQktJVF9XRUJfVklFV19CQVNFKG1fdmlld1dpZGdldCkpOworICAgIHdlYmtpdFdlYlZp
ZXdCYXNlRGlkRmFpbE5hdmlnYXRpb24oV0VCS0lUX1dFQl9WSUVXX0JBU0UobV92aWV3V2lkZ2V0
KSwgbmF2aWdhdGlvbik7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVu
dE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSkK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJh
bWUoQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZSB0eXBlKQogewotICAgIHdlYmtpdFdlYlZpZXdCYXNlRGlkU2FtZURvY3VtZW50TmF2aWdhdGlv
bkZvck1haW5GcmFtZShXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3ZpZXdXaWRnZXQpLCB0eXBlKTsK
KyAgICB3ZWJraXRXZWJWaWV3QmFzZURpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJh
bWUoV0VCS0lUX1dFQl9WSUVXX0JBU0UobV92aWV3V2lkZ2V0KSwgbmF2aWdhdGlvbiwgdHlwZSk7
CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKaW5k
ZXggMjcwMDk5ODI2YjdiZWM1ZTMyYTZjYzA1YzQxZjFmYzE0ZWM1OThiZS4uNjEzMTAwZGJlNjdm
NzczMzI1YzcyOTlmZWJmZDQ5MjQ5YmM4ZjEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaApAQCAtMTExLDcgKzExMSwxMSBAQCBwcml2
YXRlOgogICAgIHZvaWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkmKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpZENoYW5nZUNvbnRlbnRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgYm9vbCB1c2VDdXN0b21Db250ZW50UHJvdmlkZXIpIG92ZXJyaWRl
OwotICAgIHZvaWQgZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaWRGYWlsTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoQVBJOjpOYXZp
Z2F0aW9uKiwgU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpIG92ZXJyaWRlOwogCiAgICAgLy8g
QXV4aWxpYXJ5IENsaWVudCBDcmVhdGlvbgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKQEAg
LTEzNywxMSArMTQxLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxSZWNvcmROYXZpZ2F0aW9u
U25hcHNob3QoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlk
UmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOwotICAgIHZvaWQg
ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBk
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRp
b25UeXBlKSBvdmVycmlkZTsKLQogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgdm9pZCBk
b25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYsIGJvb2wgd2FzRXZl
bnRIYW5kbGVkKSBvdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAppbmRleCAyYTFhNDgzODkwNjM1
YmNiMmRkNTVjYjI5ODI2MTk2ZTQyZjU1YTE2Li5lZWRlODIyODUyMGJkZjExMzBmMGY0YjQ5NTMz
MDQwNmVhNWFmYzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApAQCAtMjM0OCwzMCArMjM0OCwzMCBAQCB2b2lkIHdl
YmtpdFdlYlZpZXdCYXNlRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1l
KFdlYktpdFdlYlZpZXdCYQogI2VuZGlmCiB9CiAKLXZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRG
aW5pc2hMb2FkRm9yTWFpbkZyYW1lKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFz
ZSkKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGaW5pc2hOYXZpZ2F0aW9uKFdlYktpdFdlYlZp
ZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKQog
ewogI2lmICFVU0UoR1RLNCkKICAgICBWaWV3R2VzdHVyZUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIg
PSB3ZWJraXRXZWJWaWV3QmFzZVZpZXdHZXN0dXJlQ29udHJvbGxlcih3ZWJraXRXZWJWaWV3QmFz
ZSk7CiAgICAgaWYgKGNvbnRyb2xsZXIgJiYgY29udHJvbGxlci0+aXNTd2lwZUdlc3R1cmVFbmFi
bGVkKCkpCi0gICAgICAgIGNvbnRyb2xsZXItPmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKTsK
KyAgICAgICAgY29udHJvbGxlci0+ZGlkRmluaXNoTmF2aWdhdGlvbihuYXZpZ2F0aW9uKTsKICNl
bmRpZgogfQogCi12b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmFpbExvYWRGb3JNYWluRnJhbWUo
V2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlKQordm9pZCB3ZWJraXRXZWJWaWV3
QmFzZURpZEZhaWxOYXZpZ2F0aW9uKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFz
ZSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKQogewogI2lmICFVU0UoR1RLNCkKICAgICBW
aWV3R2VzdHVyZUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSB3ZWJraXRXZWJWaWV3QmFzZVZpZXdH
ZXN0dXJlQ29udHJvbGxlcih3ZWJraXRXZWJWaWV3QmFzZSk7CiAgICAgaWYgKGNvbnRyb2xsZXIg
JiYgY29udHJvbGxlci0+aXNTd2lwZUdlc3R1cmVFbmFibGVkKCkpCi0gICAgICAgIGNvbnRyb2xs
ZXItPmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCk7CisgICAgICAgIGNvbnRyb2xsZXItPmRpZEZh
aWxOYXZpZ2F0aW9uKG5hdmlnYXRpb24pOwogI2VuZGlmCiB9CiAKLXZvaWQgd2Via2l0V2ViVmll
d0Jhc2VEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFdlYktpdFdlYlZpZXdC
YXNlKiB3ZWJraXRXZWJWaWV3QmFzZSwgU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSkK
K3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZy
YW1lKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJraXRXZWJWaWV3QmFzZSwgQVBJOjpOYXZpZ2F0aW9u
KiBuYXZpZ2F0aW9uLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBlKQogewogI2lmICFV
U0UoR1RLNCkKICAgICBWaWV3R2VzdHVyZUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSB3ZWJraXRX
ZWJWaWV3QmFzZVZpZXdHZXN0dXJlQ29udHJvbGxlcih3ZWJraXRXZWJWaWV3QmFzZSk7CiAgICAg
aWYgKGNvbnRyb2xsZXIgJiYgY29udHJvbGxlci0+aXNTd2lwZUdlc3R1cmVFbmFibGVkKCkpCi0g
ICAgICAgIGNvbnRyb2xsZXItPmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUo
dHlwZSk7CisgICAgICAgIGNvbnRyb2xsZXItPmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JN
YWluRnJhbWUobmF2aWdhdGlvbiwgdHlwZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRl
LmgKaW5kZXggZWI3Zjg2ZTA4ZTczNmFiNzA3YmE2MTk2MDk5ZTZlMjk5YjY2Y2QxYS4uZGRjYmUy
NjAzYmI0NTVkMmQ1ZmNiZmM0YzU0NmM4MWM3YmJiNzlmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5o
CkBAIC0xMDEsOSArMTAxLDkgQEAgYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUNvbXBsZXRlQmFja1N3
aXBlRm9yVGVzdGluZyhXZWJLaXRXZWJWaWV3QmFzZSopOwogCiB2b2lkIHdlYmtpdFdlYlZpZXdC
YXNlRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUoV2ViS2l0V2ViVmlld0Jhc2Uq
KTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRG
b3JNYWluRnJhbWUoV2ViS2l0V2ViVmlld0Jhc2UqKTsKLXZvaWQgd2Via2l0V2ViVmlld0Jhc2VE
aWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKFdlYktpdFdlYlZpZXdCYXNlKik7Ci12b2lkIHdlYmtp
dFdlYlZpZXdCYXNlRGlkRmFpbExvYWRGb3JNYWluRnJhbWUoV2ViS2l0V2ViVmlld0Jhc2UqKTsK
LXZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZy
YW1lKFdlYktpdFdlYlZpZXdCYXNlKiwgV2ViS2l0OjpTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZSk7Cit2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmluaXNoTmF2aWdhdGlvbihXZWJLaXRXZWJW
aWV3QmFzZSosIEFQSTo6TmF2aWdhdGlvbiopOwordm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZEZh
aWxOYXZpZ2F0aW9uKFdlYktpdFdlYlZpZXdCYXNlKiwgQVBJOjpOYXZpZ2F0aW9uKik7Cit2b2lk
IHdlYmtpdFdlYlZpZXdCYXNlRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShX
ZWJLaXRXZWJWaWV3QmFzZSosIEFQSTo6TmF2aWdhdGlvbiosIFdlYktpdDo6U2FtZURvY3VtZW50
TmF2aWdhdGlvblR5cGUpOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZFJlc3RvcmVTY3JvbGxQ
b3NpdGlvbihXZWJLaXRXZWJWaWV3QmFzZSopOwogCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlU2hv
d0Vtb2ppQ2hvb3NlcihXZWJLaXRXZWJWaWV3QmFzZSosIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKaW5kZXggNzdiYzA4MzIwN2I1MGQyOTkx
NjljMTJmNDA0YTUwM2ZhY2NmNWJmMS4uYTFlYWRiY2NhNjliMGVmNTE0YjJhYWZjOGIzZGMyZGY3
ODcxNmU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dl
YlZpZXdJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmll
d0lPUy5oCkBAIC04NCw5ICs4NCw5IEBACiAtICh2b2lkKV9kaWRDb21wbGV0ZUFuaW1hdGVkUmVz
aXplOwogCiAtICh2b2lkKV9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZTsKLS0g
KHZvaWQpX2RpZEZpbmlzaExvYWRGb3JNYWluRnJhbWU7Ci0tICh2b2lkKV9kaWRGYWlsTG9hZEZv
ck1haW5GcmFtZTsKLS0gKHZvaWQpX2RpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJh
bWU6KFdlYktpdDo6U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpbmF2aWdhdGlvblR5cGU7Cist
ICh2b2lkKV9kaWRGaW5pc2hOYXZpZ2F0aW9uOihBUEk6Ok5hdmlnYXRpb24qKW5hdmlnYXRpb247
CistICh2b2lkKV9kaWRGYWlsTmF2aWdhdGlvbjooQVBJOjpOYXZpZ2F0aW9uKiluYXZpZ2F0aW9u
OworLSAodm9pZClfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTooQVBJOjpO
YXZpZ2F0aW9uKiluYXZpZ2F0aW9uIG9mVHlwZTooV2ViS2l0OjpTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uVHlwZSluYXZpZ2F0aW9uVHlwZTsKIAogLSAoQk9PTClfaXNTaG93aW5nVmlkZW9QaWN0dXJl
SW5QaWN0dXJlOwogLSAoQk9PTClfbWF5QXV0b21hdGljYWxseVNob3dWaWRlb1BpY3R1cmVJblBp
Y3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2Vi
Vmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9T
Lm1tCmluZGV4IGEwZThiMTgyYzZiN2Y5NWUxYzYwN2VhOTcwZGFiNDBmMTQ1OGViYWQuLjc2Yjky
NmI3N2QzMjlmZDg3NjFjNWVmODg5YjlmYTVmZWIxMTg5MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCkBAIC0yMTQ2LDI0ICsyMTQ2LDI0
IEBAIC0gKHZvaWQpX2RpZENvbXBsZXRlQW5pbWF0ZWRSZXNpemUKICAgICAgICAgX2NhbGxiYWNr
c0RlZmVycmVkRHVyaW5nUmVzaXplLnRha2VMYXN0KCkoKTsKIH0KIAotLSAodm9pZClfZGlkRmlu
aXNoTG9hZEZvck1haW5GcmFtZQorLSAodm9pZClfZGlkRmluaXNoTmF2aWdhdGlvbjooQVBJOjpO
YXZpZ2F0aW9uKiluYXZpZ2F0aW9uCiB7CiAgICAgaWYgKF9nZXN0dXJlQ29udHJvbGxlcikKLSAg
ICAgICAgX2dlc3R1cmVDb250cm9sbGVyLT5kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCk7Cisg
ICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+ZGlkRmluaXNoTmF2aWdhdGlvbihuYXZpZ2F0aW9u
KTsKIH0KIAotLSAodm9pZClfZGlkRmFpbExvYWRGb3JNYWluRnJhbWUKKy0gKHZvaWQpX2RpZEZh
aWxOYXZpZ2F0aW9uOihBUEk6Ok5hdmlnYXRpb24qKW5hdmlnYXRpb24KIHsKICAgICBpZiAoX2dl
c3R1cmVDb250cm9sbGVyKQotICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZhaWxMb2Fk
Rm9yTWFpbkZyYW1lKCk7CisgICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+ZGlkRmFpbE5hdmln
YXRpb24obmF2aWdhdGlvbik7CiB9CiAKLS0gKHZvaWQpX2RpZFNhbWVEb2N1bWVudE5hdmlnYXRp
b25Gb3JNYWluRnJhbWU6KFdlYktpdDo6U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpbmF2aWdh
dGlvblR5cGUKKy0gKHZvaWQpX2RpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWU6
KEFQSTo6TmF2aWdhdGlvbiopbmF2aWdhdGlvbiBvZlR5cGU6KFdlYktpdDo6U2FtZURvY3VtZW50
TmF2aWdhdGlvblR5cGUpbmF2aWdhdGlvblR5cGUKIHsKICAgICBbX2N1c3RvbUNvbnRlbnRWaWV3
IHdlYl9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uOnRvQVBJKG5hdmlnYXRpb25UeXBlKV07CiAK
ICAgICBpZiAoX2dlc3R1cmVDb250cm9sbGVyKQotICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXIt
PmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUobmF2aWdhdGlvblR5cGUpOwor
ICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXItPmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JN
YWluRnJhbWUobmF2aWdhdGlvbiwgbmF2aWdhdGlvblR5cGUpOwogfQogCiAtICh2b2lkKV9rZXli
b2FyZENoYW5nZWRXaXRoSW5mbzooTlNEaWN0aW9uYXJ5ICopa2V5Ym9hcmRJbmZvIGFkanVzdFNj
cm9sbFZpZXc6KEJPT0wpYWRqdXN0U2Nyb2xsVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRleCBjOGI0MWY0MDc3NzRkMjMz
N2U5OWNjN2Y5MTUxZWM2NWJlM2ZjNTMyLi5mZTk5MzM2MTEzMDcyYjk1ZGI2ZDgzYzUyNmE2OWM2
NDI3N2IzOThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1Bh
Z2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1Bh
Z2VDbGllbnRJbXBsLmNwcApAQCAtMzE4LDE1ICszMTgsMTUgQEAgdm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkKIHsKIH0KIAot
dm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit2b2lkIFBh
Z2VDbGllbnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopCiB7CiB9
CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkKK3ZvaWQg
UGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopCiB7CiB9
CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWlu
RnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpk
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKEFQSTo6TmF2aWdhdGlvbiosIFNh
bWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggMzcyYjMwZmQwOWM5YmNmYzNk
NDc3NjJlYmZmMTE3ODhmYWM1ZjNjYy4uNTZkNGUxYTBlMTQ1MjY0NjM1YmIzNjA0NDgxYWVhN2I5
OTVmYWFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdl
Q2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNs
aWVudEltcGwuaApAQCAtMTI5LDkgKzEyOSw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2
b2lkIGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZh
aWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRGYWlsTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoQVBJOjpO
YXZpZ2F0aW9uKiwgU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCBkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKSBvdmVycmlkZTsKICAgICB2b2lkIGlzUGxh
eWluZ0F1ZGlvV2lsbENoYW5nZSgpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCmluZGV4IDJlNjY2MjhhYjVjNzA4ZmZmMTIxMGU1ODdjZDRhODUyOWI4MGU4MTYuLmNi
YTVhNjhhZTZhYjEzNWZjZWU3ZjZjZGViMjFiMTBiNTRjNTUzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTY3LDYgKzY3LDcgQEAgT0JKQ19DTEFTUyBXS1ZpZXc7CiBu
YW1lc3BhY2UgQVBJIHsKIGNsYXNzIEF0dGFjaG1lbnQ7CiBjbGFzcyBIaXRUZXN0UmVzdWx0Owor
Y2xhc3MgTmF2aWdhdGlvbjsKIGNsYXNzIE9iamVjdDsKIGNsYXNzIE9wZW5QYW5lbFBhcmFtZXRl
cnM7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKQEAgLTQ2MSw5ICs0NjIsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKSA9IDA7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFp
bkZyYW1lKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1l
KCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShT
YW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5p
c2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKEFQSTo6TmF2aWdhdGlvbiosIFNh
bWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hh
bmdlQmFja2dyb3VuZENvbG9yKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdBdWRp
b1dpbGxDaGFuZ2UoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9W
aWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dl
c3R1cmVDb250cm9sbGVyLmNwcAppbmRleCA5Y2VhMmIwMDI4OGE5ZjEzNDlkYzIxZjcyNWRlZDA2
NGY2ZjZlODhiLi5jMjVjYzFlYTU4MzY3ZTE5MzBiOWNjNmUxMzg2MGYyMDkxYTcxNWQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAK
QEAgLTIwNyw4ICsyMDcsMTEgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlc3Rv
cmVTY3JvbGxQb3NpdGlvbigpCiAgICAgbV9zbmFwc2hvdFJlbW92YWxUcmFja2VyLmV2ZW50T2Nj
dXJyZWQoU25hcHNob3RSZW1vdmFsVHJhY2tlcjo6U2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbik7
CiB9CiAKLXZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZWFjaE1haW5GcmFtZUxvYWRU
ZXJtaW5hbFN0YXRlKCkKK3ZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZWFjaE5hdmln
YXRpb25UZXJtaW5hbFN0YXRlKEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbikKIHsKKyAgICBp
ZiAoIW1fcGVuZGluZ05hdmlnYXRpb24gfHwgbmF2aWdhdGlvbiAhPSBtX3BlbmRpbmdOYXZpZ2F0
aW9uKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAobV9zbmFwc2hvdFJlbW92YWxUcmFja2Vy
LmlzUGF1c2VkKCkgJiYgbV9zbmFwc2hvdFJlbW92YWxUcmFja2VyLmhhc1JlbW92YWxDYWxsYmFj
aygpKSB7CiAgICAgICAgIHJlbW92ZVN3aXBlU25hcHNob3QoKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMjI1LDggKzIyOCwxMSBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkUmVhY2hN
YWluRnJhbWVMb2FkVGVybWluYWxTdGF0ZSgpCiAgICAgY2hlY2tGb3JBY3RpdmVMb2FkcygpOwog
fQogCi12b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlv
bkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBlKQordm9pZCBWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUo
QVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0
eXBlKQogeworICAgIGlmICghbV9wZW5kaW5nTmF2aWdhdGlvbiB8fCBuYXZpZ2F0aW9uICE9IG1f
cGVuZGluZ05hdmlnYXRpb24pCisgICAgICAgIHJldHVybjsKKwogICAgIGRpZFN0YXJ0UHJvdmlz
aW9uYWxPclNhbWVEb2N1bWVudExvYWRGb3JNYWluRnJhbWUoKTsKIAogICAgIGJvb2wgY2FuY2Vs
bGVkT3V0c3RhbmRpbmdFdmVudCA9IGZhbHNlOwpAQCAtNTc2LDcgKzU4Miw3IEBAIHZvaWQgVmll
d0dlc3R1cmVDb250cm9sbGVyOjp3aWxsRW5kU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0mIHRhcmdldEl0CiAgICAgYXV0byByZW5kZXJUcmVlU2l6ZVRocmVzaG9sZCA9IHJlbmRl
clRyZWVTaXplICogc3dpcGVTbmFwc2hvdFJlbW92YWxSZW5kZXJUcmVlU2l6ZVRhcmdldEZyYWN0
aW9uOwogCiAgICAgbV9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZCA9IGZhbHNlOwotICAgIG1fd2Vi
UGFnZVByb3h5LmdvVG9CYWNrRm9yd2FyZEl0ZW0odGFyZ2V0SXRlbSk7CisgICAgbV9wZW5kaW5n
TmF2aWdhdGlvbiA9IG1fd2ViUGFnZVByb3h5LmdvVG9CYWNrRm9yd2FyZEl0ZW0odGFyZ2V0SXRl
bSk7CiAKICAgICBhdXRvKiBjdXJyZW50SXRlbSA9IG1fd2ViUGFnZVByb3h5LmJhY2tGb3J3YXJk
TGlzdCgpLmN1cnJlbnRJdGVtKCk7CiAgICAgLy8gVGhlIG1haW4gZnJhbWUgd2lsbCBub3QgYmUg
bmF2aWdhdGVkIHNvIGhpZGUgdGhlIHNuYXBzaG90IHJpZ2h0IGF3YXkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCmluZGV4IDQzNDM0OTBmZTRi
ZmI0OWVkOGZjZGIyZmYxZjE4MDFmMTY5NTQ5OTkuLmExZGZkOTU4NTVjNjE0MjcwZWVlNWNjYjYx
ZjQyOGQzMDRiYmFlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdH
ZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0
dXJlQ29udHJvbGxlci5oCkBAIC02Nyw2ICs2NywxMCBAQCBjbGFzcyBJT1N1cmZhY2U7CiB9CiAj
ZW5kaWYKIAorbmFtZXNwYWNlIEFQSSB7CitjbGFzcyBOYXZpZ2F0aW9uOworfQorCiAjaWYgUExB
VEZPUk0oTUFDKQogdHlwZWRlZiBOU0V2ZW50KiBQbGF0Zm9ybVNjcm9sbEV2ZW50OwogI2VsaWYg
UExBVEZPUk0oR1RLKQpAQCAtMTUwLDE0ICsxNTQsMTQgQEAgcHVibGljOgogICAgIFdlYkNvcmU6
OkNvbG9yIGJhY2tncm91bmRDb2xvckZvckN1cnJlbnRTbmFwc2hvdCgpIGNvbnN0IHsgcmV0dXJu
IG1fYmFja2dyb3VuZENvbG9yRm9yQ3VycmVudFNuYXBzaG90OyB9CiAKICAgICB2b2lkIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lKCk7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2Fk
Rm9yTWFpbkZyYW1lKCkgeyBkaWRSZWFjaE1haW5GcmFtZUxvYWRUZXJtaW5hbFN0YXRlKCk7IH0K
LSAgICB2b2lkIGRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkgeyBkaWRSZWFjaE1haW5GcmFtZUxv
YWRUZXJtaW5hbFN0YXRlKCk7IH0KKyAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpO
YXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKSB7IGRpZFJlYWNoTmF2aWdhdGlvblRlcm1pbmFsU3RhdGUo
bmF2aWdhdGlvbik7IH0KKyAgICB2b2lkIGRpZEZhaWxOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlv
biogbmF2aWdhdGlvbikgeyBkaWRSZWFjaE5hdmlnYXRpb25UZXJtaW5hbFN0YXRlKG5hdmlnYXRp
b24pOyB9CiAgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJh
bWUoKTsKICAgICB2b2lkIGRpZFJlcGFpbnRBZnRlck5hdmlnYXRpb24oKTsKICAgICB2b2lkIGRp
ZEhpdFJlbmRlclRyZWVTaXplVGhyZXNob2xkKCk7CiAgICAgdm9pZCBkaWRSZXN0b3JlU2Nyb2xs
UG9zaXRpb24oKTsKLSAgICB2b2lkIGRpZFJlYWNoTWFpbkZyYW1lTG9hZFRlcm1pbmFsU3RhdGUo
KTsKLSAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURv
Y3VtZW50TmF2aWdhdGlvblR5cGUpOworICAgIHZvaWQgZGlkUmVhY2hOYXZpZ2F0aW9uVGVybWlu
YWxTdGF0ZShBUEk6Ok5hdmlnYXRpb24qKTsKKyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmln
YXRpb25Gb3JNYWluRnJhbWUoQVBJOjpOYXZpZ2F0aW9uKiwgU2FtZURvY3VtZW50TmF2aWdhdGlv
blR5cGUpOwogCiAgICAgdm9pZCBjaGVja0ZvckFjdGl2ZUxvYWRzKCk7CiAKQEAgLTMyNyw2ICsz
MzEsOCBAQCBwcml2YXRlOgogICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBtX2FsdGVybmF0ZUJh
Y2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2U7CiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gbV93ZWJQ
YWdlUHJveHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGU7CiAKKyAgICBSZWZQdHI8
QVBJOjpOYXZpZ2F0aW9uPiBtX3BlbmRpbmdOYXZpZ2F0aW9uOworCiAgICAgR2VzdHVyZUlEIG1f
Y3VycmVudEdlc3R1cmVJRDsKIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYWE1MDFlZTNkYzEwYjY1Njg0ZTYz
NTgwYWY3ZTJlYWE1MmNiZjFjMC4uMzA3MDQ3NjJiMDkzOWNhZjA4M2ZmNTM3MmFmZjMyNGYxY2Iw
MmZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC00ODcy
LDcgKzQ4NzIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJgogCiAgICAgaWYgKGlzTWFpbkZy
YW1lKSB7CiAgICAgICAgIHJlcG9ydFBhZ2VMb2FkUmVzdWx0KCk7Ci0gICAgICAgIHBhZ2VDbGll
bnQoKS5kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCk7CisgICAgICAgIHBhZ2VDbGllbnQoKS5k
aWRGaW5pc2hOYXZpZ2F0aW9uKG5hdmlnYXRpb24uZ2V0KCkpOwogCiAgICAgICAgIGlmIChuYXZp
Z2F0aW9uKQogICAgICAgICAgICAgbmF2aWdhdGlvbi0+c2V0Q2xpZW50TmF2aWdhdGlvbkFjdGl2
aXR5KG51bGxwdHIpOwpAQCAtNDkyNiw3ICs0OTI2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZEZhaWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEm
JgogCiAgICAgaWYgKGlzTWFpbkZyYW1lKSB7CiAgICAgICAgIHJlcG9ydFBhZ2VMb2FkUmVzdWx0
KGVycm9yKTsKLSAgICAgICAgcGFnZUNsaWVudCgpLmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCk7
CisgICAgICAgIHBhZ2VDbGllbnQoKS5kaWRGYWlsTmF2aWdhdGlvbihuYXZpZ2F0aW9uLmdldCgp
KTsKICAgICAgICAgaWYgKG5hdmlnYXRpb24pCiAgICAgICAgICAgICBuYXZpZ2F0aW9uLT5zZXRD
bGllbnROYXZpZ2F0aW9uQWN0aXZpdHkobnVsbHB0cik7CiAgICAgfQpAQCAtNDk2OCw3ICs0OTY4
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFt
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWkKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50
LT5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uKCp0aGlzLCBuYXZpZ2F0aW9uLmdldCgpLCBuYXZp
Z2F0aW9uVHlwZSwgbV9wcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRh
Lm9iamVjdCgpKS5nZXQoKSk7CiAKICAgICBpZiAoaXNNYWluRnJhbWUpCi0gICAgICAgIHBhZ2VD
bGllbnQoKS5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKG5hdmlnYXRpb25U
eXBlKTsKKyAgICAgICAgcGFnZUNsaWVudCgpLmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JN
YWluRnJhbWUobmF2aWdhdGlvbi5nZXQoKSwgbmF2aWdhdGlvblR5cGUpOwogfQogCiB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkQ2hhbmdlTWFpbkRvY3VtZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvVmlld0dlc3R1cmVD
b250cm9sbGVyR3RrLmNwcAppbmRleCBlNmZlZGQwZDkwZmM2Nzk5N2I2OTBjODAyMDUyYzM5YjFl
Nzc5NmMxLi4xZWViZDllOTM0OThlYjg0ZTgxMDQyYWI5NWUwNzkwMzk4ZWMyMWYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvVmlld0dlc3R1cmVDb250cm9sbGVyR3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvVmlld0dlc3R1cmVDb250cm9s
bGVyR3RrLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlZpZXdHZXN0dXJlQ29udHJvbGxlci5oIgogCisjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5o
IgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2Fy
ZExpc3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0dSZWZQdHJHdGsuaD4KQEAgLTUwNiw2ICs1MDcs
OCBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6cmVtb3ZlU3dpcGVTbmFwc2hvdCgpCiAK
ICAgICBtX2JhY2tncm91bmRDb2xvckZvckN1cnJlbnRTbmFwc2hvdCA9IENvbG9yKCk7CiAKKyAg
ICBtX3BlbmRpbmdOYXZpZ2F0aW9uID0gbnVsbHB0cjsKKwogICAgIGRpZEVuZEdlc3R1cmUoKTsK
IAogICAgIG1fc3dpcGVQcm9ncmVzc1RyYWNrZXIucmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggYzJmZGM5MzNhNDE4ODg3
ZjcyMzQxOGMwMDgyNjFjOTQ2YjFhMjlhMS4uZGYzZDQ0ZTJlOWU4ZDEyYzYzZDk2YzE2ZWQ3MWQ4
ZTY1ODA4OWJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmgKQEAgLTIyMCw5ICsyMjAsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVt
b3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaWRG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2
b2lkIGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZh
aWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRGYWlsTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoQVBJOjpO
YXZpZ2F0aW9uKiwgU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpIG92ZXJyaWRlOwogICAgIHZv
aWQgZGlkTm90SGFuZGxlVGFwQXNDbGljayhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIG92ZXJy
aWRlOwogICAgIHZvaWQgZGlkQ29tcGxldGVTeW50aGV0aWNDbGljaygpIG92ZXJyaWRlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5k
ZXggMzg3OWFiZDE1YTY0M2IwY2JlMjY2ZjlmNTIxYmExZTY2ZGVmN2QzMy4uMTQ5N2Y1MGUwZDNl
MDMxOTgyNTE2YjlhY2ZhODA2MzdjZmJhMTUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNzkwLDE5ICs3OTAsMTkgQEAgdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZy
YW1lKCkKIHsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5G
cmFtZSgpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2
aWdhdGlvbiogbmF2aWdhdGlvbikKIHsKLSAgICBbbV93ZWJWaWV3IF9kaWRGaW5pc2hMb2FkRm9y
TWFpbkZyYW1lXTsKKyAgICBbbV93ZWJWaWV3IF9kaWRGaW5pc2hOYXZpZ2F0aW9uOm5hdmlnYXRp
b25dOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgp
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGYWlsTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24q
IG5hdmlnYXRpb24pCiB7Ci0gICAgW21fd2ViVmlldyBfZGlkRmFpbExvYWRGb3JNYWluRnJhbWVd
OworICAgIFttX3dlYlZpZXcgX2RpZEZhaWxOYXZpZ2F0aW9uOm5hdmlnYXRpb25dOwogfQogCi12
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1l
KFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlKQordm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShBUEk6Ok5hdmln
YXRpb24qIG5hdmlnYXRpb24sIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25U
eXBlKQogewotICAgIFttX3dlYlZpZXcgX2RpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWlu
RnJhbWU6bmF2aWdhdGlvblR5cGVdOworICAgIFttX3dlYlZpZXcgX2RpZFNhbWVEb2N1bWVudE5h
dmlnYXRpb25Gb3JNYWluRnJhbWU6bmF2aWdhdGlvbiBvZlR5cGU6bmF2aWdhdGlvblR5cGVdOwog
fQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxl
cklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xs
ZXJJT1MubW0KaW5kZXggNTI5NWYxZDkyZDI3MTBkMjA1M2YzZmFlNWI5ZmYzMDFlM2M1Mjk5ZC4u
OTdjMTVjNjAxNmNiNzM3ZjFlMTVmYjNmYWJlNWI5NGM4MmY0Y2ExMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1t
CkBAIC0yOTIsNyArMjkyLDcgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OndpbGxFbmRT
d2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYgdGFyZ2V0SXQKICAgICAgICAgbV9z
bmFwc2hvdFJlbW92YWxUYXJnZXRSZW5kZXJUcmVlU2l6ZSA9IHNuYXBzaG90LT5yZW5kZXJUcmVl
U2l6ZSgpICogc3dpcGVTbmFwc2hvdFJlbW92YWxSZW5kZXJUcmVlU2l6ZVRhcmdldEZyYWN0aW9u
OwogCiAgICAgbV9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZCA9IGZhbHNlOwotICAgIG1fd2ViUGFn
ZVByb3h5Rm9yQmFja0ZvcndhcmRMaXN0Rm9yQ3VycmVudFN3aXBlLT5nb1RvQmFja0ZvcndhcmRJ
dGVtKHRhcmdldEl0ZW0pOworICAgIG1fcGVuZGluZ05hdmlnYXRpb24gPSBtX3dlYlBhZ2VQcm94
eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZS0+Z29Ub0JhY2tGb3J3YXJkSXRlbSh0
YXJnZXRJdGVtKTsKIAogICAgIGF1dG8qIGN1cnJlbnRJdGVtID0gbV93ZWJQYWdlUHJveHlGb3JC
YWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGUtPmJhY2tGb3J3YXJkTGlzdCgpLmN1cnJlbnRJ
dGVtKCk7CiAgICAgLy8gVGhlIG1haW4gZnJhbWUgd2lsbCBub3QgYmUgbmF2aWdhdGVkIHNvIGhp
ZGUgdGhlIHNuYXBzaG90IHJpZ2h0IGF3YXkuCkBAIC00MzcsNiArNDM3LDggQEAgdm9pZCBWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OnJlc2V0U3RhdGUoKQogCiAgICAgbV9iYWNrZ3JvdW5kQ29sb3JG
b3JDdXJyZW50U25hcHNob3QgPSBXZWJDb3JlOjpDb2xvcigpOwogCisgICAgbV9wZW5kaW5nTmF2
aWdhdGlvbiA9IG51bGxwdHI7CisKICAgICBkaWRFbmRHZXN0dXJlKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggNTMyMDNj
MGJhYjdlOGZjMmYxYjc1ZDM0MGMwNTVjOTM4NTkwMDUwZS4uNDYxODczZmRiZjY0NTk4ZDk2N2Jk
YzY4YzM3OTc2ZGQyY2ZiZDc5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTIxNSw5ICsyMTUsOSBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOwogICAg
IHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlv
biopIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9u
Kikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZy
YW1lKEFQSTo6TmF2aWdhdGlvbiosIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlk
ZTsKICAgICB2b2lkIGhhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNwb25zZShjb25zdCBTdHJp
bmcmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRl
c3QoY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEmLCBib29sIGNvbnRlbnRQcmV2ZW50c0RlZmF1
bHQsIEFQSTo6T2JqZWN0Kikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KaW5kZXggN2I3ZTY2Yzc5ZWRhZjg0YThhMTQ3NTY1
MjRlMTZjMjZlNTc4OTZjNi4uZTQ3N2JjZWZkNDJiZTVjZTBiNGQ0YzhhNjE1Y2RhYjU4Mzc4ZDUw
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5tbQpAQCAtNzg4LDI2ICs3ODgsMjYgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkKICAgICAgICAgZ2VzdHVyZUNvbnRy
b2xsZXItPmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpOwogfQog
Ci12b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkKK3ZvaWQg
UGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKiBuYXZp
Z2F0aW9uKQogewogICAgIGlmIChhdXRvIGdlc3R1cmVDb250cm9sbGVyID0gbV9pbXBsLT5nZXN0
dXJlQ29udHJvbGxlcigpKQotICAgICAgICBnZXN0dXJlQ29udHJvbGxlci0+ZGlkRmluaXNoTG9h
ZEZvck1haW5GcmFtZSgpOworICAgICAgICBnZXN0dXJlQ29udHJvbGxlci0+ZGlkRmluaXNoTmF2
aWdhdGlvbihuYXZpZ2F0aW9uKTsKIAogICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3RpZmljYXRp
b24oTlNBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkQW5jZXN0b3IobV92aWV3KSwga0FYTG9hZENvbXBs
ZXRlTm90aWZpY2F0aW9uKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbExvYWRG
b3JNYWluRnJhbWUoKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbE5hdmlnYXRpb24oQVBJ
OjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKQogewogICAgIGlmIChhdXRvIGdlc3R1cmVDb250cm9s
bGVyID0gbV9pbXBsLT5nZXN0dXJlQ29udHJvbGxlcigpKQotICAgICAgICBnZXN0dXJlQ29udHJv
bGxlci0+ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKTsKKyAgICAgICAgZ2VzdHVyZUNvbnRyb2xs
ZXItPmRpZEZhaWxOYXZpZ2F0aW9uKG5hdmlnYXRpb24pOwogCiAgICAgTlNBY2Nlc3NpYmlsaXR5
UG9zdE5vdGlmaWNhdGlvbihOU0FjY2Vzc2liaWxpdHlVbmlnbm9yZWRBbmNlc3RvcihtX3ZpZXcp
LCBrQVhMb2FkQ29tcGxldGVOb3RpZmljYXRpb24pOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBs
OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmln
YXRpb25UeXBlIHR5cGUpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uRm9yTWFpbkZyYW1lKEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgU2FtZURvY3Vt
ZW50TmF2aWdhdGlvblR5cGUgdHlwZSkKIHsKICAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxl
ciA9IG1faW1wbC0+Z2VzdHVyZUNvbnRyb2xsZXIoKSkKLSAgICAgICAgZ2VzdHVyZUNvbnRyb2xs
ZXItPmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUodHlwZSk7CisgICAgICAg
IGdlc3R1cmVDb250cm9sbGVyLT5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1l
KG5hdmlnYXRpb24sIHR5cGUpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpoYW5kbGVDb250
cm9sbGVkRWxlbWVudElEUmVzcG9uc2UoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJN
YWMubW0KaW5kZXggOWJlOWY1NmQ3YTRmMGE1NTZjYWIyNGI3NmU3MjU4YTRkYmY4OTNhYS4uZTYw
YTJkZjZiN2MwZjU2ZTQ0NWQ3ZDVkOTE1N2U4YmU4ZmFjNTI3MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKKyNpbXBvcnQgIkFQSU5hdmln
YXRpb24uaCIKICNpbXBvcnQgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQgIkZyYW1lTG9h
ZFN0YXRlLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCkBAIC02NDMsNiArNjQ0LDggQEAgdm9pZCBW
aWV3R2VzdHVyZUNvbnRyb2xsZXI6OnJlc2V0U3RhdGUoKQogCiAgICAgbV9iYWNrZ3JvdW5kQ29s
b3JGb3JDdXJyZW50U25hcHNob3QgPSBDb2xvcigpOwogCisgICAgbV9wZW5kaW5nTmF2aWdhdGlv
biA9IG51bGxwdHI7CisKICAgICBkaWRFbmRHZXN0dXJlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRl
eCBjOTlhY2QyYjk1MmUyZjU0MjczODlmNzYzNGJlY2MxNDA4ZDczMDljLi45ZDYxMzEwZWNlY2Q5
YjE0ZGJhMzBmNDRmMThlYjg5MjNkMDM1YTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwuY3BwCkBAIC0yNDUsMTUgKzI0
NSwxNSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JNYWluRnJhbWUoKQogewogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hM
b2FkRm9yTWFpbkZyYW1lKCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaE5hdmlnYXRp
b24oQVBJOjpOYXZpZ2F0aW9uKikKIHsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFp
bExvYWRGb3JNYWluRnJhbWUoKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbE5hdmlnYXRp
b24oQVBJOjpOYXZpZ2F0aW9uKikKIHsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZSkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWlu
RnJhbWUoQVBJOjpOYXZpZ2F0aW9uKiwgU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VD
bGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdlQ2xp
ZW50SW1wbC5oCmluZGV4IDliZmUxNjJlM2NkNTFlOGE5NTYyMGE3M2UwZTFlOTg4Yjc2MTVjYjcu
LjIyOTA4MjJhZWVjZGEzOWExNDA0Y2U4MDJmYmRkMTNkZTU3NWZkNzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwuaApAQCAt
MTI0LDkgKzEyNCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZW1vdmVOYXZpZ2F0aW9uR2Vz
dHVyZVNuYXBzaG90KCkgZmluYWw7CiAKICAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvck1haW5GcmFtZSgpIGZpbmFsOwotICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvck1h
aW5GcmFtZSgpIGZpbmFsOwotICAgIHZvaWQgZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKSBmaW5h
bDsKLSAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURv
Y3VtZW50TmF2aWdhdGlvblR5cGUpIGZpbmFsOworICAgIHZvaWQgZGlkRmluaXNoTmF2aWdhdGlv
bihBUEk6Ok5hdmlnYXRpb24qKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZhaWxOYXZpZ2F0aW9uKEFQ
STo6TmF2aWdhdGlvbiopIGZpbmFsOworICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlv
bkZvck1haW5GcmFtZShBUEk6Ok5hdmlnYXRpb24qLCBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZSkgZmluYWw7CiAKICAgICB2b2lkIGRpZENoYW5nZUJhY2tncm91bmRDb2xvcigpIGZpbmFsOwog
ICAgIHZvaWQgaXNQbGF5aW5nQXVkaW9XaWxsQ2hhbmdlKCkgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRleCBiZTYxYmJkZmU1ZTFm
MDVhNzM1Y2M4NmY4OTMzZmQxNzU0OGMxNjI2Li45MTI3OWMxNjE1ODE1ZmM3NzViNDg0YzQwOWUy
MDJjYzg5NzY3NDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFn
ZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xp
ZW50SW1wbC5jcHAKQEAgLTMzMCwxMiArMzMwLDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpCiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5G
cmFtZSgpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2
aWdhdGlvbiopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50
SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uVHlwZSkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmln
YXRpb25Gb3JNYWluRnJhbWUoQVBJOjpOYXZpZ2F0aW9uKiwgU2FtZURvY3VtZW50TmF2aWdhdGlv
blR5cGUpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggMzc2NzI1MTgwODViNjFlMzk5OTQ0ZTQ2
NmJiNDA4YjdmOTlmYzdlOS4uYmNiNTJmNzI0NDFlODk1ZGFjNGM5YTJhYjc1MjU1MWQxZWY1ZDI3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKQEAg
LTk5LDcgKzk5LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVEb3dubG9hZFJlcXVlc3Qo
RG93bmxvYWRQcm94eSYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQ2hhbmdlQ29udGVudFNpemUo
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQ29tbWl0TG9h
ZEZvck1haW5GcmFtZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIHVzZUN1c3RvbUNvbnRl
bnRQcm92aWRlcikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgp
IG92ZXJyaWRlIHsgfQorICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9y
TWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6
TmF2aWdhdGlvbiopIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpO
YXZpZ2F0aW9uKikgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yTWFpbkZyYW1lKEFQSTo6TmF2aWdhdGlvbiosIFNhbWVEb2N1bWVudE5hdmlnYXRpb25U
eXBlKSBvdmVycmlkZTsKIAogICAgIC8vIEF1eGlsaWFyeSBDbGllbnQgQ3JlYXRpb24KICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCkBAIC0xMjUsOSArMTI4LDYgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHdpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgp
IG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JN
YWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUo
KSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJh
bWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKICAgICB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJU
b3VjaEV2ZW50JiwgYm9vbCB3YXNFdmVudEhhbmRsZWQpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEwNmU3
MGQ3N2E5MWNhODIwOGZjZDNlNWE4OTNlZjE2NmQ4NmI5NjMuLmQ0YjRiOWRhOGRmNzQ2ZTExMzJl
ZTBmNDljNDFlMjJiMDI5ZWY1ZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wNi0yOSAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBTd2lwZSBz
bmFwc2hvdCBpcyByZW1vdmVkIHRvbyBlYXJseSB3aGVuIHN3aXBpbmcgYXdheSBmcm9tIGEgcGFn
ZSB0aGF0IGlzIHN0aWxsIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMzc2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQ1NzY4MTE+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3N3aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRzdGFuZGluZy1sb2FkLWNhbmNlbGxh
dGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3dpcGUvc3dp
cGUtYmFjay13aXRoLW91dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0aW9uLmh0bWw6IEFkZGVkLgor
ICAgICAgICBBZGQgYSB0ZXN0IHRoYXQgZW5zdXJlcyB0aGF0IHdlIGRvbid0IHJlbW92ZSB0aGUg
c3dpcGUgc25hcHNob3QgYmVmb3JlIHRoZSAiYmFjayIgcGFnZSBpcyBsb2FkZWQuCisgICAgICAg
IEJlZm9yZSB0aGlzIGZpeCwgdGhpcyB0ZXN0IGZhaWxzIHRoZSBhc3NlcnRpb24gdGhhdCB3ZSdy
ZSBvbiB0aGUgZmlyc3QgcGFnZSBpbiBkaWRSZW1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2suCisK
IDIwMjAtMDYtMjMgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLXSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLiBVcGRhdGUgdGVzdCBleHBlY3Rh
dGlvbnMgYWZ0ZXIgcjI2MzQzNy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N3
aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzNmU4MjBkZDc0ZjZlNTVj
NmQ5ZGY3NzhjNzhiNjQyYTE0ZTExNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N3aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzCkBAIC0wLDAgKzEsODQgQEAK
K2Z1bmN0aW9uIHNob3VsZEJlKGV4cGVjdGVkLCBhY3R1YWwsIG1lc3NhZ2UpCit7CisgICAgaWYg
KGV4cGVjdGVkICE9IGFjdHVhbCkKKyAgICAgICAgbG9nKCJGYWlsdXJlLiAiICsgbWVzc2FnZSAr
ICIgKGV4cGVjdGVkOiAiICsgZXhwZWN0ZWQgKyAiLCBhY3R1YWw6ICIgKyBhY3R1YWwgKyAiKSIp
OworfQorCitmdW5jdGlvbiBsb2cocykKK3sKKyAgICB3aW5kb3cubG9jYWxTdG9yYWdlWyJzd2lw
ZUxvZ2dpbmciXSArPSBzICsgIjxici8+IjsKK30KKworZnVuY3Rpb24gZHVtcExvZygpCit7Cisg
ICAgd2luZG93LmRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gd2luZG93LmxvY2FsU3RvcmFnZVsi
c3dpcGVMb2dnaW5nIl07Cit9CisKK2Z1bmN0aW9uIHRlc3RDb21wbGV0ZSgpCit7CisgICAgZHVt
cExvZygpOworICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rp
b24gaW5pdGlhbGl6ZVN3aXBlVGVzdCgpCit7CisgICAgd2luZG93LmxvY2FsU3RvcmFnZVsic3dp
cGVMb2dnaW5nIl0gPSAiIjsKKyAgICB0ZXN0UnVubmVyLnNldE5hdmlnYXRpb25HZXN0dXJlc0Vu
YWJsZWQodHJ1ZSk7CisgICAgdGVzdFJ1bm5lci5jbGVhckJhY2tGb3J3YXJkTGlzdCgpOworfQor
CitmdW5jdGlvbiBoYXNJbml0aWFsaXplZFN3aXBlVGVzdCgpCit7CisgICAgcmV0dXJuICgic3dp
cGVMb2dnaW5nIiBpbiB3aW5kb3cubG9jYWxTdG9yYWdlKTsKK30KKworZnVuY3Rpb24gc3RhcnRN
ZWFzdXJpbmdEdXJhdGlvbihrZXkpCit7CisgICAgd2luZG93LmxvY2FsU3RvcmFnZVtrZXkgKyAi
c3dpcGVTdGFydFRpbWUiXSA9IERhdGUubm93KCk7Cit9CisKK2Z1bmN0aW9uIG1lYXN1cmVkRHVy
YXRpb25TaG91bGRCZUxlc3NUaGFuKGtleSwgdGltZUluTVMsIG1lc3NhZ2UpCit7CisgICAgbGV0
IGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHdpbmRvdy5sb2NhbFN0b3JhZ2Vba2V5ICsgInN3aXBl
U3RhcnRUaW1lIl07CisgICAgaWYgKGR1cmF0aW9uID49IHRpbWVJbk1TKQorICAgICAgICBsb2co
IkZhaWx1cmUuICIgKyBtZXNzYWdlICsgIiAoZXhwZWN0ZWQ6ICIgKyB0aW1lSW5NUyArICIsIGFj
dHVhbDogIiArIGR1cmF0aW9uICsgIikiKTsKK30KKworZnVuY3Rpb24gc3RhcnRTd2lwZUdlc3R1
cmUoY2FsbGJhY2spCit7CisgICAgbG9nKCJzdGFydFN3aXBlR2VzdHVyZSIpOworICAgIHRlc3RS
dW5uZXIucnVuVUlTY3JpcHQoYAorICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgdWlDb250cm9s
bGVyLmJlZ2luQmFja1N3aXBlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdWlDb250cm9sbGVy
LnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgfSk7CisgICAgfSkoKTtgLCBjYWxsYmFjayB8
fCBmdW5jdGlvbiAoKSB7fSk7Cit9CisKK2Z1bmN0aW9uIGNvbXBsZXRlU3dpcGVHZXN0dXJlKGNh
bGxiYWNrKQoreworICAgIGxvZygiY29tcGxldGVTd2lwZUdlc3R1cmUiKTsKKyAgICB0ZXN0UnVu
bmVyLnJ1blVJU2NyaXB0KGAKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHVpQ29udHJvbGxl
ci5jb21wbGV0ZUJhY2tTd2lwZShmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHVpQ29udHJvbGxl
ci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgIH0pOworICAgIH0pKCk7YCwgY2FsbGJhY2sg
fHwgZnVuY3Rpb24gKCkge30pOworfQorCitmdW5jdGlvbiBwbGF5RXZlbnRTdHJlYW0oc3RyZWFt
LCBjYWxsYmFjaykKK3sKKyAgICBsb2coInBsYXlFdmVudFN0cmVhbSIpOworICAgIGlmICh0ZXN0
UnVubmVyLmlzSU9TRmFtaWx5KSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIHRlc3Qgc2hvdWxk
IHByb2JhYmx5IG5vdCBsb2cgcGxheUV2ZW50U3RyZWFtCisgICAgICAgIC8vIG9uIGlPUywgd2hl
cmUgaXQgZG9lc24ndCBhY3R1YWxseSBkbyBpdC4KKyAgICAgICAgc2V0VGltZW91dChjYWxsYmFj
aywgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlw
dChgCisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICB1aUNvbnRyb2xsZXIucGxheUJhY2tFdmVu
dFN0cmVhbShcYCR7c3RyZWFtfVxgLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHVpQ29udHJv
bGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgIH0pOworICAgIH0pKCk7YCwgY2FsbGJh
Y2sgfHwgZnVuY3Rpb24gKCkge30pOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zd2lwZS9zd2lwZS1iYWNrLXdpdGgtb3V0c3RhbmRpbmctbG9hZC1jYW5jZWxsYXRpb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zd2lwZS9zd2lwZS1iYWNrLXdp
dGgtb3V0c3RhbmRpbmctbG9hZC1jYW5jZWxsYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg5ZGVjZmQ0YzM3MTI1Y2ZiNTU5ODExOTY4OWMzZjBjNGExZDg4NGUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRzdGFu
ZGluZy1sb2FkLWNhbmNlbGxhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitzdGFy
dFN3aXBlR2VzdHVyZQorZGlkQmVnaW5Td2lwZQorY29tcGxldGVTd2lwZUdlc3R1cmUKK3dpbGxF
bmRTd2lwZQorZGlkRW5kU3dpcGUKK2RpZFJlbW92ZVN3aXBlU25hcHNob3QKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zd2lwZS9zd2lwZS1iYWNrLXdpdGgtb3V0c3RhbmRp
bmctbG9hZC1jYW5jZWxsYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3dpcGUv
c3dpcGUtYmFjay13aXRoLW91dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0aW9uLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjBmZDM2YTc0NmVjYzA5YzMxMmVlN2VhMmEzMDI2NzcyNTYxZWYwNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3dpcGUvc3dpcGUtYmFjay13aXRoLW91
dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0aW9uLmh0bWwKQEAgLTAsMCArMSw4MyBAQAorPGhlYWQ+
Cis8c3R5bGU+CitodG1sIHsKKyAgICBmb250LXNpemU6IDMycHQ7Cit9Cis8L3N0eWxlPgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9zd2lwZS10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citm
dW5jdGlvbiBkaWRCZWdpblN3aXBlQ2FsbGJhY2soKQoreworICAgIGxvZygiZGlkQmVnaW5Td2lw
ZSIpOworCisgICAgY29tcGxldGVTd2lwZUdlc3R1cmUoKTsKK30KKworZnVuY3Rpb24gd2lsbEVu
ZFN3aXBlQ2FsbGJhY2soKQoreworICAgIGxvZygid2lsbEVuZFN3aXBlIik7CisKKyAgICBzaG91
bGRCZShmYWxzZSwgaXNGaXJzdFBhZ2UoKSwgIlRoZSBzd2lwZSBzaG91bGQgbm90IHlldCBoYXZl
IG5hdmlnYXRlZCBhd2F5IGZyb20gdGhlIHNlY29uZCBwYWdlLiIpOworfQorCitmdW5jdGlvbiBk
aWRFbmRTd2lwZUNhbGxiYWNrKCkKK3sKKyAgICBsb2coImRpZEVuZFN3aXBlIik7CisKKyAgICBz
dGFydE1lYXN1cmluZ0R1cmF0aW9uKCJzbmFwc2hvdFJlbW92YWwiKTsKK30KKwordmFyIGhhc1Jl
bW92ZWRTbmFwc2hvdCA9IGZhbHNlOworCitmdW5jdGlvbiBkaWRSZW1vdmVTd2lwZVNuYXBzaG90
Q2FsbGJhY2soKQoreworICAgIGxvZygiZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdCIpOworCisgICAg
aGFzUmVtb3ZlZFNuYXBzaG90ID0gdHJ1ZTsKKyAgICAKKyAgICBzaG91bGRCZSh0cnVlLCBpc0Zp
cnN0UGFnZSgpLCAiVGhlIHN3aXBlIHNob3VsZCBoYXZlIG5hdmlnYXRlZCBiYWNrIHRvIHRoZSBm
aXJzdCBwYWdlLiIpOworCisgICAgdGVzdENvbXBsZXRlKCk7Cit9CisKK2Z1bmN0aW9uIGlzRmly
c3RQYWdlKCkKK3sKKyAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigic2Vj
b25kIikgPT0gLTE7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CisgICAgaWYg
KCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwgIXdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIGRv
Y3VtZW50LmJvZHkuaW5uZXJIVE1MID0gIlRoaXMgdGVzdCBtdXN0IGJlIHJ1biBpbiBXZWJLaXRU
ZXN0UnVubmVyLiI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBkb2N1bWVudC5ib2R5
LmlubmVySFRNTCA9IGlzRmlyc3RQYWdlKCkgPyAiZmlyc3QiIDogIjxpZnJhbWUgc3JjPScvcmVz
b3VyY2VzL3Nsb3ctaW1hZ2UucGhwJz4iOworCisgICAgaWYgKGlzRmlyc3RQYWdlKCkpIHsKKyAg
ICAgICAgaWYgKGhhc0luaXRpYWxpemVkU3dpcGVUZXN0KCkpIHsKKyAgICAgICAgICAgIHNob3Vs
ZEJlKGZhbHNlLCBoYXNSZW1vdmVkU25hcHNob3QsICJUaGUgc25hcHNob3Qgc2hvdWxkIG5vdCBo
YXZlIGJlZW4gc3luY2hyb25vdXNseSByZW1vdmVkIGJlY2F1c2Ugb2YgdGhlIGNhbmNlbGxlZCBm
b3J3YXJkIGxvYWQuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICBpbml0aWFsaXplU3dpcGVUZXN0KCk7CisKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlk
QmVnaW5Td2lwZUNhbGxiYWNrKGRpZEJlZ2luU3dpcGVDYWxsYmFjayk7CisgICAgICAgIHRlc3RS
dW5uZXIuaW5zdGFsbFdpbGxFbmRTd2lwZUNhbGxiYWNrKHdpbGxFbmRTd2lwZUNhbGxiYWNrKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkRW5kU3dpcGVDYWxsYmFjayhkaWRFbmRTd2lw
ZUNhbGxiYWNrKTsKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRGlkUmVtb3ZlU3dpcGVTbmFw
c2hvdENhbGxiYWNrKGRpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayk7CisKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyAKKyAgICAgICAgICAgIHdp
bmRvdy5sb2NhdGlvbi5ocmVmID0gd2luZG93LmxvY2F0aW9uLmhyZWYgKyAiP3NlY29uZCI7Cisg
ICAgICAgIH0sIDApOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RhcnRTd2lwZUdl
c3R1cmUoKTsKK307Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403331</attachid>
            <date>2020-07-01 16:23:34 -0700</date>
            <delta_ts>2020-07-01 16:53:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213763-20200701162333.patch</filename>
            <type>text/plain</type>
            <size>35794</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJmMjQ5NjBjZGE3YjdmYWRl
MjdiMzcyNTRjMGJmN2MzZGM4YTE0MWYuLmM3ZjJjOGM5MWFjNDc3YzQ1Nzk2OTA0ODgyMjI0MzI2
YTk2MDkzOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTEgQEAKKzIwMjAtMDctMDEgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3dpcGUgc25hcHNob3Qg
aXMgcmVtb3ZlZCB0b28gZWFybHkgd2hlbiBzd2lwaW5nIGF3YXkgZnJvbSBhIHBhZ2UgdGhhdCBp
cyBzdGlsbCBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTM3NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0NTc2ODExPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVz
dHMvc3dpcGUvc3dpcGUtYmFjay13aXRoLW91dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0aW9uLmh0
bWwKKworICAgICAgICBXaGVuIHN3aXBpbmcgYmFjayBmcm9tIGEgcGFnZSB0aGF0IGlzIHN0aWxs
IGxvYWRpbmcsIHdoZW4gdGhlIHN3aXBlIGNvbW1pdHMsCisgICAgICAgIGFuZCB3ZSBzdGFydCBu
YXZpZ2F0aW5nIGJhY2sgdG8gdGhlIHByZXZpb3VzIHBhZ2UsIHRoZSB1bmZpbmlzaGVkIGZvcndh
cmQgbmF2aWdhdGlvbgorICAgICAgICBpcyBjYW5jZWxsZWQuCisKKyAgICAgICAgVGhpcyBjYW5j
ZWxsYXRpb24gcmVzdWx0ZWQgaW4gYSAiZGlkRmFpbExvYWRGb3JNYWluRnJhbWUiIG1ha2luZyBp
dCB0byBWaWV3R2VzdHVyZUNvbnRyb2xsZXIsCisgICAgICAgIHdoaWNoIHRvb2sgaXQgYXMgYW4g
aW5kaWNhdGlvbiB0aGF0IHRoZSBuYXZpZ2F0aW9uICppdCogd2FzIGludGVyZXN0ZWQgaW4gKHRo
ZSBiYWNrIG5hdmlnYXRpb24pCisgICAgICAgIGhhZCBmYWlsZWQsIGFuZCBpbW1lZGlhdGVseSBy
ZW1vdmVkIHRoZSBzbmFwc2hvdC4KKworICAgICAgICBJbnN0ZWFkIG9mIGxpc3RlbmluZyB0byBh
bnkgcmFuZG9tIG5hdmlnYXRpb24ncyBsb2FkIG5vdGlmaWNhdGlvbnMsIGtlZXAgdHJhY2sgb2Yg
dGhlIG5hdmlnYXRpb24KKyAgICAgICAgc3RhcnRlZCBieSBnb1RvQmFja0ZvcndhcmRJdGVtLCBh
bmQgb25seSBsaXN0ZW4gdG8gbm90aWZpY2F0aW9ucyBmcm9tIGl0LCBpZ25vcmluZyB0aGUgb3Ro
ZXJzLgorCisgICAgICAgIFRoaXMgcmVxdWlyZXMgYSBidW5jaCBvZiBwbHVtYmluZyB0byBnZXQg
dGhlIG5hdmlnYXRpb24gZnJvbSBXZWJQYWdlUHJveHkgdG8gVmlld0dlc3R1cmVDb250cm9sbGVy
LAorICAgICAgICBidXQgaXMgb3RoZXJ3aXNlIGZhaXJseSB0cml2aWFsLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnRJbXBsOjpkaWRGYWlsTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKHdl
YmtpdFdlYlZpZXdCYXNlRGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSk6CisgICAgICAgICh3ZWJr
aXRXZWJWaWV3QmFzZURpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9X
S1dlYlZpZXdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkRmluaXNoTmF2aWdhdGlv
bjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaWRGYWlsTmF2aWdhdGlvbjpdKToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lXSk6IERlbGV0ZWQuCisg
ICAgICAgICgtW1dLV2ViVmlldyBfZGlkRmFpbExvYWRGb3JNYWluRnJhbWVdKTogRGVsZXRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbExvYWRGb3JNYWluRnJh
bWUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBs
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1
cmVDb250cm9sbGVyOjpkaWRSZWFjaE5hdmlnYXRpb25UZXJtaW5hbFN0YXRlKToKKyAgICAgICAg
KFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjp3aWxsRW5kU3dpcGVHZXN0dXJlKToKKyAg
ICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZWFjaE1haW5GcmFtZUxv
YWRUZXJtaW5hbFN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvVmlld0dlc3R1
cmVDb250cm9sbGVyLmg6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6
ZGlkRmluaXNoTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJv
bGxlcjo6ZGlkRmFpbE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNv
bnRyb2xsZXI6OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKTog
RGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tOgorICAg
ICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OndpbGxFbmRTd2lwZUdlc3R1cmUp
OgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnJlc2V0U3RhdGUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50SW1wbDo6ZGlkRmluaXNoTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpkaWRGYWlsTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpyZXNldFN0YXRlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTmF2aWdhdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGYWlsTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1l
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudElt
cGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaE5hdmlnYXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5oOgorCiAyMDIw
LTA3LTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVz
c2lvbihyMjU5MjQyKSBXZWJLaXQgbm8gbG9uZ2VyIGRvZXMgY2xpZW50IG5hdmlnYXRpb25zIGF0
IGZvcmVncm91bmQgcHJpb3JpdHkgZm9yIGV4dGVuc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggZTA3OWM3MGFkOTQy
NDhhNTI5YTA4NDkzNDcwNDQzMWMzZGM0MzI1NC4uNTcxMzllMmQ5MTBjZjE4MzRkMDcxZDQ4MmIz
OTY3MTk0ZGQwZmRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTUyMiwxNCArNTIyLDE0IEBAIHZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpCiAgICAg
d2Via2l0V2ViVmlld0Jhc2VEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJh
bWUoV0VCS0lUX1dFQl9WSUVXX0JBU0UobV92aWV3V2lkZ2V0KSk7CiB9CiAKLXZvaWQgUGFnZUNs
aWVudEltcGw6OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKQordm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkRmluaXNoTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24pCiB7Ci0g
ICAgd2Via2l0V2ViVmlld0Jhc2VEaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKFdFQktJVF9XRUJf
VklFV19CQVNFKG1fdmlld1dpZGdldCkpOworICAgIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmluaXNo
TmF2aWdhdGlvbihXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3ZpZXdXaWRnZXQpLCBuYXZpZ2F0aW9u
KTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKQor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKiBu
YXZpZ2F0aW9uKQogewotICAgIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmFpbExvYWRGb3JNYWluRnJh
bWUoV0VCS0lUX1dFQl9WSUVXX0JBU0UobV92aWV3V2lkZ2V0KSk7CisgICAgd2Via2l0V2ViVmll
d0Jhc2VEaWRGYWlsTmF2aWdhdGlvbihXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3ZpZXdXaWRnZXQp
LCBuYXZpZ2F0aW9uKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50
TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1w
bC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCmlu
ZGV4IDI3MDA5OTgyNmI3YmVjNWUzMmE2Y2MwNWM0MWYxZmMxNGVjNTk4YmUuLjVjNzM4MjdiODdj
ZTZiNDMwMDg0ODVhMjFjYzlhN2I2NzIzNjliNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTExMSw3ICsxMTEsMTEgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5Jikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgdXNlQ3VzdG9tQ29udGVudFByb3ZpZGVyKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopIG92ZXJyaWRl
OworICAgIHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1
bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKIAogICAgIC8vIEF1eGlsaWFyeSBDbGllbnQg
Q3JlYXRpb24KICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCkBAIC0xMzcsMTEgKzE0MSw2IEBA
IHByaXZhdGU6CiAgICAgdm9pZCB3aWxsUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90KFdlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0mKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlbW92ZU5hdmlnYXRpb25H
ZXN0dXJlU25hcHNob3QoKSBvdmVycmlkZTsKIAotICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25h
bExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkRmluaXNo
TG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkgb3ZlcnJpZGU7
Ci0KICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgZG9uZVdpdGhUb3VjaEV2ZW50
KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmLCBib29sIHdhc0V2ZW50SGFuZGxlZCkgb3ZlcnJp
ZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5kZXggMmExYTQ4Mzg5MDYzNWJjYjJkZDU1Y2IyOTgyNjE5
NmU0MmY1NWExNi4uMTJiMGFiYmUzOGU5YWJlMzc4ZGQ0YWViMDlhMGQ0NGI3Y2MwMDY1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
QmFzZS5jcHAKQEAgLTIzNDgsMjEgKzIzNDgsMjEgQEAgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZShXZWJLaXRXZWJWaWV3QmEK
ICNlbmRpZgogfQogCi12b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmluaXNoTG9hZEZvck1haW5G
cmFtZShXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UpCit2b2lkIHdlYmtpdFdl
YlZpZXdCYXNlRGlkRmluaXNoTmF2aWdhdGlvbihXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2Vi
Vmlld0Jhc2UsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbikKIHsKICNpZiAhVVNFKEdUSzQp
CiAgICAgVmlld0dlc3R1cmVDb250cm9sbGVyKiBjb250cm9sbGVyID0gd2Via2l0V2ViVmlld0Jh
c2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIod2Via2l0V2ViVmlld0Jhc2UpOwogICAgIGlmIChjb250
cm9sbGVyICYmIGNvbnRyb2xsZXItPmlzU3dpcGVHZXN0dXJlRW5hYmxlZCgpKQotICAgICAgICBj
b250cm9sbGVyLT5kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCk7CisgICAgICAgIGNvbnRyb2xs
ZXItPmRpZEZpbmlzaE5hdmlnYXRpb24obmF2aWdhdGlvbik7CiAjZW5kaWYKIH0KIAotdm9pZCB3
ZWJraXRXZWJWaWV3QmFzZURpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKFdlYktpdFdlYlZpZXdCYXNl
KiB3ZWJraXRXZWJWaWV3QmFzZSkKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGYWlsTmF2aWdh
dGlvbihXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UsIEFQSTo6TmF2aWdhdGlv
biogbmF2aWdhdGlvbikKIHsKICNpZiAhVVNFKEdUSzQpCiAgICAgVmlld0dlc3R1cmVDb250cm9s
bGVyKiBjb250cm9sbGVyID0gd2Via2l0V2ViVmlld0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIo
d2Via2l0V2ViVmlld0Jhc2UpOwogICAgIGlmIChjb250cm9sbGVyICYmIGNvbnRyb2xsZXItPmlz
U3dpcGVHZXN0dXJlRW5hYmxlZCgpKQotICAgICAgICBjb250cm9sbGVyLT5kaWRGYWlsTG9hZEZv
ck1haW5GcmFtZSgpOworICAgICAgICBjb250cm9sbGVyLT5kaWRGYWlsTmF2aWdhdGlvbihuYXZp
Z2F0aW9uKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaAppbmRleCBlYjdmODZlMDhl
NzM2YWI3MDdiYTYxOTYwOTllNmUyOTliNjZjZDFhLi4xZGRhMWZjZjViYTBlNjliM2M1NzIxYjFi
YjVhYmVhMDI1Zjg3NGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgKQEAgLTEwMSw4ICsxMDEsOCBA
QCBib29sIHdlYmtpdFdlYlZpZXdCYXNlQ29tcGxldGVCYWNrU3dpcGVGb3JUZXN0aW5nKFdlYktp
dFdlYlZpZXdCYXNlKik7CiAKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvck1haW5GcmFtZShXZWJLaXRXZWJWaWV3QmFzZSopOwogdm9pZCB3ZWJraXRXZWJW
aWV3QmFzZURpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZShXZWJLaXRX
ZWJWaWV3QmFzZSopOwotdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZEZpbmlzaExvYWRGb3JNYWlu
RnJhbWUoV2ViS2l0V2ViVmlld0Jhc2UqKTsKLXZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGYWls
TG9hZEZvck1haW5GcmFtZShXZWJLaXRXZWJWaWV3QmFzZSopOwordm9pZCB3ZWJraXRXZWJWaWV3
QmFzZURpZEZpbmlzaE5hdmlnYXRpb24oV2ViS2l0V2ViVmlld0Jhc2UqLCBBUEk6Ok5hdmlnYXRp
b24qKTsKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGYWlsTmF2aWdhdGlvbihXZWJLaXRXZWJW
aWV3QmFzZSosIEFQSTo6TmF2aWdhdGlvbiopOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZFNh
bWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoV2ViS2l0V2ViVmlld0Jhc2UqLCBXZWJL
aXQ6OlNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VE
aWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oV2ViS2l0V2ViVmlld0Jhc2UqKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKaW5kZXggNzdiYzA4MzIw
N2I1MGQyOTkxNjljMTJmNDA0YTUwM2ZhY2NmNWJmMS4uNjFmNjM3MjgwNWJiZWRmNWU1MmM1MTk5
NjlkNDNmMTI1YWNjMmM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2lvcy9XS1dlYlZpZXdJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9z
L1dLV2ViVmlld0lPUy5oCkBAIC04NCw4ICs4NCw4IEBACiAtICh2b2lkKV9kaWRDb21wbGV0ZUFu
aW1hdGVkUmVzaXplOwogCiAtICh2b2lkKV9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5G
cmFtZTsKLS0gKHZvaWQpX2RpZEZpbmlzaExvYWRGb3JNYWluRnJhbWU7Ci0tICh2b2lkKV9kaWRG
YWlsTG9hZEZvck1haW5GcmFtZTsKKy0gKHZvaWQpX2RpZEZpbmlzaE5hdmlnYXRpb246KEFQSTo6
TmF2aWdhdGlvbiopbmF2aWdhdGlvbjsKKy0gKHZvaWQpX2RpZEZhaWxOYXZpZ2F0aW9uOihBUEk6
Ok5hdmlnYXRpb24qKW5hdmlnYXRpb247CiAtICh2b2lkKV9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yTWFpbkZyYW1lOihXZWJLaXQ6OlNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKW5hdmln
YXRpb25UeXBlOwogCiAtIChCT09MKV9pc1Nob3dpbmdWaWRlb1BpY3R1cmVJblBpY3R1cmU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4
IGEwZThiMTgyYzZiN2Y5NWUxYzYwN2VhOTcwZGFiNDBmMTQ1OGViYWQuLjkyMDBkZGMyNmY0NTE5
NjRhMDViMDA0ZDI5NjRlYzMyYzBjNmIzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCkBAIC0yMTQ2LDE2ICsyMTQ2LDE2IEBAIC0gKHZv
aWQpX2RpZENvbXBsZXRlQW5pbWF0ZWRSZXNpemUKICAgICAgICAgX2NhbGxiYWNrc0RlZmVycmVk
RHVyaW5nUmVzaXplLnRha2VMYXN0KCkoKTsKIH0KIAotLSAodm9pZClfZGlkRmluaXNoTG9hZEZv
ck1haW5GcmFtZQorLSAodm9pZClfZGlkRmluaXNoTmF2aWdhdGlvbjooQVBJOjpOYXZpZ2F0aW9u
KiluYXZpZ2F0aW9uCiB7CiAgICAgaWYgKF9nZXN0dXJlQ29udHJvbGxlcikKLSAgICAgICAgX2dl
c3R1cmVDb250cm9sbGVyLT5kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCk7CisgICAgICAgIF9n
ZXN0dXJlQ29udHJvbGxlci0+ZGlkRmluaXNoTmF2aWdhdGlvbihuYXZpZ2F0aW9uKTsKIH0KIAot
LSAodm9pZClfZGlkRmFpbExvYWRGb3JNYWluRnJhbWUKKy0gKHZvaWQpX2RpZEZhaWxOYXZpZ2F0
aW9uOihBUEk6Ok5hdmlnYXRpb24qKW5hdmlnYXRpb24KIHsKICAgICBpZiAoX2dlc3R1cmVDb250
cm9sbGVyKQotICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZhaWxMb2FkRm9yTWFpbkZy
YW1lKCk7CisgICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+ZGlkRmFpbE5hdmlnYXRpb24obmF2
aWdhdGlvbik7CiB9CiAKIC0gKHZvaWQpX2RpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWlu
RnJhbWU6KFdlYktpdDo6U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpbmF2aWdhdGlvblR5cGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudElt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5j
cHAKaW5kZXggYzhiNDFmNDA3Nzc0ZDIzMzdlOTljYzdmOTE1MWVjNjViZTNmYzUzMi4uNTczMjYz
ZWU4OGZlMjMyYjMzNTk1MjM2OTg1NTY2NTQ2MTcyZjI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTMxOCwxMSArMzE4
LDExIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dEZvck1haW5GcmFtZSgpCiB7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExv
YWRGb3JNYWluRnJhbWUoKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTmF2aWdhdGlv
bihBUEk6Ok5hdmlnYXRpb24qKQogewogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGYWls
TG9hZEZvck1haW5GcmFtZSgpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGYWlsTmF2aWdhdGlv
bihBUEk6Ok5hdmlnYXRpb24qKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggMzcyYjMwZmQwOWM5YmNmYzNkNDc3NjJl
YmZmMTE3ODhmYWM1ZjNjYy4uYTI1YTFjYjE3ZjQ1MTY1MDM5NmYzOGEwZTBmYjJmYjJlZmY2NDUy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudElt
cGwuaApAQCAtMTI5LDggKzEyOSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRp
ZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZhaWxMb2Fk
Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQ
STo6TmF2aWdhdGlvbiopIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJ
OjpOYXZpZ2F0aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKIAog
ICAgIHZvaWQgZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggMmU2NjYyOGFiNWM3MDhmZmYxMjEwZTU4N2NkNGE4
NTI5YjgwZTgxNi4uMDRkNTEwYTBmYTIxMWU0OTRhY2NhYzA2Y2E1YjAxMWEzYzQ4MWUyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtNjcsNiArNjcsNyBAQCBPQkpDX0NM
QVNTIFdLVmlldzsKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXR0YWNobWVudDsKIGNsYXNzIEhp
dFRlc3RSZXN1bHQ7CitjbGFzcyBOYXZpZ2F0aW9uOwogY2xhc3MgT2JqZWN0OwogY2xhc3MgT3Bl
blBhbmVsUGFyYW1ldGVyczsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwpAQCAtNDYxLDggKzQ2Miw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVT
bmFwc2hvdCgpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRGb3JNYWluRnJhbWUoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRGb3JNYWluRnJhbWUoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWxMb2FkRm9yTWFp
bkZyYW1lKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6
TmF2aWdhdGlvbiopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJ
OjpOYXZpZ2F0aW9uKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSA9IDA7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKaW5kZXggOWNl
YTJiMDAyODhhOWYxMzQ5ZGMyMWY3MjVkZWQwNjRmNmY2ZTg4Yi4uZjllYzM0ZTFlMjdkZWMzMGM2
ZDFiMzUyNWEzZjBhZDc4NmIwOGQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwCkBAIC0yMDcsOCArMjA3LDExIEBAIHZvaWQgVmll
d0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogICAgIG1fc25h
cHNob3RSZW1vdmFsVHJhY2tlci5ldmVudE9jY3VycmVkKFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6
OlNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb24pOwogfQogCi12b2lkIFZpZXdHZXN0dXJlQ29udHJv
bGxlcjo6ZGlkUmVhY2hNYWluRnJhbWVMb2FkVGVybWluYWxTdGF0ZSgpCit2b2lkIFZpZXdHZXN0
dXJlQ29udHJvbGxlcjo6ZGlkUmVhY2hOYXZpZ2F0aW9uVGVybWluYWxTdGF0ZShBUEk6Ok5hdmln
YXRpb24qIG5hdmlnYXRpb24pCiB7CisgICAgaWYgKCFtX3BlbmRpbmdOYXZpZ2F0aW9uIHx8IG5h
dmlnYXRpb24gIT0gbV9wZW5kaW5nTmF2aWdhdGlvbikKKyAgICAgICAgcmV0dXJuOworCiAgICAg
aWYgKG1fc25hcHNob3RSZW1vdmFsVHJhY2tlci5pc1BhdXNlZCgpICYmIG1fc25hcHNob3RSZW1v
dmFsVHJhY2tlci5oYXNSZW1vdmFsQ2FsbGJhY2soKSkgewogICAgICAgICByZW1vdmVTd2lwZVNu
YXBzaG90KCk7CiAgICAgICAgIHJldHVybjsKQEAgLTU3Niw3ICs1NzksNyBAQCB2b2lkIFZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6d2lsbEVuZFN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtJiB0YXJnZXRJdAogICAgIGF1dG8gcmVuZGVyVHJlZVNpemVUaHJlc2hvbGQgPSByZW5kZXJU
cmVlU2l6ZSAqIHN3aXBlU25hcHNob3RSZW1vdmFsUmVuZGVyVHJlZVNpemVUYXJnZXRGcmFjdGlv
bjsKIAogICAgIG1fZGlkU3RhcnRQcm92aXNpb25hbExvYWQgPSBmYWxzZTsKLSAgICBtX3dlYlBh
Z2VQcm94eS5nb1RvQmFja0ZvcndhcmRJdGVtKHRhcmdldEl0ZW0pOworICAgIG1fcGVuZGluZ05h
dmlnYXRpb24gPSBtX3dlYlBhZ2VQcm94eS5nb1RvQmFja0ZvcndhcmRJdGVtKHRhcmdldEl0ZW0p
OwogCiAgICAgYXV0byogY3VycmVudEl0ZW0gPSBtX3dlYlBhZ2VQcm94eS5iYWNrRm9yd2FyZExp
c3QoKS5jdXJyZW50SXRlbSgpOwogICAgIC8vIFRoZSBtYWluIGZyYW1lIHdpbGwgbm90IGJlIG5h
dmlnYXRlZCBzbyBoaWRlIHRoZSBzbmFwc2hvdCByaWdodCBhd2F5LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaAppbmRleCA0MzQzNDkwZmU0YmZi
NDllZDhmY2RiMmZmMWYxODAxZjE2OTU0OTk5Li5mMjVlNzkyM2QzYWZhZWUyNzA2YzZiMWUyMjE3
YmI5OTkwMDc3MmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXIuaApAQCAtNjcsNiArNjcsMTAgQEAgY2xhc3MgSU9TdXJmYWNlOwogfQogI2Vu
ZGlmCiAKK25hbWVzcGFjZSBBUEkgeworY2xhc3MgTmF2aWdhdGlvbjsKK30KKwogI2lmIFBMQVRG
T1JNKE1BQykKIHR5cGVkZWYgTlNFdmVudCogUGxhdGZvcm1TY3JvbGxFdmVudDsKICNlbGlmIFBM
QVRGT1JNKEdUSykKQEAgLTE1MCwxMyArMTU0LDEzIEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpD
b2xvciBiYWNrZ3JvdW5kQ29sb3JGb3JDdXJyZW50U25hcHNob3QoKSBjb25zdCB7IHJldHVybiBt
X2JhY2tncm91bmRDb2xvckZvckN1cnJlbnRTbmFwc2hvdDsgfQogCiAgICAgdm9pZCBkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZSgpOwotICAgIHZvaWQgZGlkRmluaXNoTG9hZEZv
ck1haW5GcmFtZSgpIHsgZGlkUmVhY2hNYWluRnJhbWVMb2FkVGVybWluYWxTdGF0ZSgpOyB9Ci0g
ICAgdm9pZCBkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpIHsgZGlkUmVhY2hNYWluRnJhbWVMb2Fk
VGVybWluYWxTdGF0ZSgpOyB9CisgICAgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2
aWdhdGlvbiogbmF2aWdhdGlvbikgeyBkaWRSZWFjaE5hdmlnYXRpb25UZXJtaW5hbFN0YXRlKG5h
dmlnYXRpb24pOyB9CisgICAgdm9pZCBkaWRGYWlsTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24q
IG5hdmlnYXRpb24pIHsgZGlkUmVhY2hOYXZpZ2F0aW9uVGVybWluYWxTdGF0ZShuYXZpZ2F0aW9u
KTsgfQogICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1l
KCk7CiAgICAgdm9pZCBkaWRSZXBhaW50QWZ0ZXJOYXZpZ2F0aW9uKCk7CiAgICAgdm9pZCBkaWRI
aXRSZW5kZXJUcmVlU2l6ZVRocmVzaG9sZCgpOwogICAgIHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBv
c2l0aW9uKCk7Ci0gICAgdm9pZCBkaWRSZWFjaE1haW5GcmFtZUxvYWRUZXJtaW5hbFN0YXRlKCk7
CisgICAgdm9pZCBkaWRSZWFjaE5hdmlnYXRpb25UZXJtaW5hbFN0YXRlKEFQSTo6TmF2aWdhdGlv
biopOwogICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uVHlwZSk7CiAKICAgICB2b2lkIGNoZWNrRm9yQWN0aXZlTG9hZHMo
KTsKQEAgLTMyNyw2ICszMzEsOCBAQCBwcml2YXRlOgogICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5
PiBtX2FsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2U7CiAgICAgUmVmUHRyPFdlYlBh
Z2VQcm94eT4gbV93ZWJQYWdlUHJveHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGU7
CiAKKyAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBtX3BlbmRpbmdOYXZpZ2F0aW9uOworCiAg
ICAgR2VzdHVyZUlEIG1fY3VycmVudEdlc3R1cmVJRDsKIAogI2lmICFQTEFURk9STShJT1NfRkFN
SUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNmI0MDBk
YzA2MjExM2JiYzkxMGJiNTQ5YjQ5MWQ0MTFiZDkzNmVkYi4uODdiNTU4ODFlZjljOWQzYjJmZjQw
Y2QyNzU3MWNjMjM2NDg5MTVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC00ODc1LDcgKzQ4NzUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNo
TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJgogCiAg
ICAgaWYgKGlzTWFpbkZyYW1lKSB7CiAgICAgICAgIHJlcG9ydFBhZ2VMb2FkUmVzdWx0KCk7Ci0g
ICAgICAgIHBhZ2VDbGllbnQoKS5kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCk7CisgICAgICAg
IHBhZ2VDbGllbnQoKS5kaWRGaW5pc2hOYXZpZ2F0aW9uKG5hdmlnYXRpb24uZ2V0KCkpOwogCiAg
ICAgICAgIGlmIChuYXZpZ2F0aW9uKQogICAgICAgICAgICAgbmF2aWdhdGlvbi0+c2V0Q2xpZW50
TmF2aWdhdGlvbkFjdGl2aXR5KG51bGxwdHIpOwpAQCAtNDkyOSw3ICs0OTI5LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IEZyYW1lSW5mb0RhdGEmJgogCiAgICAgaWYgKGlzTWFpbkZyYW1lKSB7CiAgICAgICAgIHJlcG9y
dFBhZ2VMb2FkUmVzdWx0KGVycm9yKTsKLSAgICAgICAgcGFnZUNsaWVudCgpLmRpZEZhaWxMb2Fk
Rm9yTWFpbkZyYW1lKCk7CisgICAgICAgIHBhZ2VDbGllbnQoKS5kaWRGYWlsTmF2aWdhdGlvbihu
YXZpZ2F0aW9uLmdldCgpKTsKICAgICAgICAgaWYgKG5hdmlnYXRpb24pCiAgICAgICAgICAgICBu
YXZpZ2F0aW9uLT5zZXRDbGllbnROYXZpZ2F0aW9uQWN0aXZpdHkobnVsbHB0cik7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1ZpZXdHZXN0dXJlQ29udHJv
bGxlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvVmlld0dlc3R1cmVDb250
cm9sbGVyR3RrLmNwcAppbmRleCBlNmZlZGQwZDkwZmM2Nzk5N2I2OTBjODAyMDUyYzM5YjFlNzc5
NmMxLi4xZWViZDllOTM0OThlYjg0ZTgxMDQyYWI5NWUwNzkwMzk4ZWMyMWYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvVmlld0dlc3R1cmVDb250cm9sbGVyR3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvVmlld0dlc3R1cmVDb250cm9sbGVy
R3RrLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlZpZXdHZXN0dXJlQ29udHJvbGxlci5oIgogCisjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgog
I2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExp
c3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0dSZWZQdHJHdGsuaD4KQEAgLTUwNiw2ICs1MDcsOCBA
QCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6cmVtb3ZlU3dpcGVTbmFwc2hvdCgpCiAKICAg
ICBtX2JhY2tncm91bmRDb2xvckZvckN1cnJlbnRTbmFwc2hvdCA9IENvbG9yKCk7CiAKKyAgICBt
X3BlbmRpbmdOYXZpZ2F0aW9uID0gbnVsbHB0cjsKKwogICAgIGRpZEVuZEdlc3R1cmUoKTsKIAog
ICAgIG1fc3dpcGVQcm9ncmVzc1RyYWNrZXIucmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggYzJmZGM5MzNhNDE4ODg3Zjcy
MzQxOGMwMDgyNjFjOTQ2YjFhMjlhMS4uNzYxZWVmODlhM2E3YjNkNjUyMmM2NmViZDRhMTZjNmZl
M2ViZjM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLmgKQEAgLTIyMCw4ICsyMjAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVtb3Zl
TmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaWRGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lk
IGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZhaWxM
b2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9u
KEFQSTo6TmF2aWdhdGlvbiopIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRmFpbE5hdmlnYXRpb24o
QVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENvbXBsZXRlU3ludGhldGljQ2xpY2soKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bQppbmRleCBiMjg5ZjA1ZGVjOWVhNDBmNmEzZWJjYjQwZTk4YzA5ZThmNWNhZWIyLi45NjEzMTIy
NmU2YTE2MjNhNDJkMzg1OGZjY2E4NTUxMWRlYTA1NjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC03OTEsMTQgKzc5MSwxNCBA
QCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JN
YWluRnJhbWUoKQogewogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9y
TWFpbkZyYW1lKCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaE5hdmlnYXRpb24oQVBJ
OjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKQogewotICAgIFttX3dlYlZpZXcgX2RpZEZpbmlzaExv
YWRGb3JNYWluRnJhbWVdOworICAgIFttX3dlYlZpZXcgX2RpZEZpbmlzaE5hdmlnYXRpb246bmF2
aWdhdGlvbl07CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZy
YW1lKCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKEFQSTo6TmF2aWdh
dGlvbiogbmF2aWdhdGlvbikKIHsKLSAgICBbbV93ZWJWaWV3IF9kaWRGYWlsTG9hZEZvck1haW5G
cmFtZV07CisgICAgW21fd2ViVmlldyBfZGlkRmFpbE5hdmlnYXRpb246bmF2aWdhdGlvbl07CiB9
CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWlu
RnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9T
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklP
Uy5tbQppbmRleCA1Mjk1ZjFkOTJkMjcxMGQyMDUzZjNmYWU1YjlmZjMwMWUzYzUyOTlkLi45N2Mx
NWM2MDE2Y2I3MzdmMWUxNWZiM2ZhYmU1Yjk0YzgyZjRjYTEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0KQEAg
LTI5Miw3ICsyOTIsNyBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6d2lsbEVuZFN3aXBl
R2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiB0YXJnZXRJdAogICAgICAgICBtX3NuYXBz
aG90UmVtb3ZhbFRhcmdldFJlbmRlclRyZWVTaXplID0gc25hcHNob3QtPnJlbmRlclRyZWVTaXpl
KCkgKiBzd2lwZVNuYXBzaG90UmVtb3ZhbFJlbmRlclRyZWVTaXplVGFyZ2V0RnJhY3Rpb247CiAK
ICAgICBtX2RpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkID0gZmFsc2U7Ci0gICAgbV93ZWJQYWdlUHJv
eHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGUtPmdvVG9CYWNrRm9yd2FyZEl0ZW0o
dGFyZ2V0SXRlbSk7CisgICAgbV9wZW5kaW5nTmF2aWdhdGlvbiA9IG1fd2ViUGFnZVByb3h5Rm9y
QmFja0ZvcndhcmRMaXN0Rm9yQ3VycmVudFN3aXBlLT5nb1RvQmFja0ZvcndhcmRJdGVtKHRhcmdl
dEl0ZW0pOwogCiAgICAgYXV0byogY3VycmVudEl0ZW0gPSBtX3dlYlBhZ2VQcm94eUZvckJhY2tG
b3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZS0+YmFja0ZvcndhcmRMaXN0KCkuY3VycmVudEl0ZW0o
KTsKICAgICAvLyBUaGUgbWFpbiBmcmFtZSB3aWxsIG5vdCBiZSBuYXZpZ2F0ZWQgc28gaGlkZSB0
aGUgc25hcHNob3QgcmlnaHQgYXdheS4KQEAgLTQzNyw2ICs0MzcsOCBAQCB2b2lkIFZpZXdHZXN0
dXJlQ29udHJvbGxlcjo6cmVzZXRTdGF0ZSgpCiAKICAgICBtX2JhY2tncm91bmRDb2xvckZvckN1
cnJlbnRTbmFwc2hvdCA9IFdlYkNvcmU6OkNvbG9yKCk7CiAKKyAgICBtX3BlbmRpbmdOYXZpZ2F0
aW9uID0gbnVsbHB0cjsKKwogICAgIGRpZEVuZEdlc3R1cmUoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCA1MzIwM2MwYmFi
N2U4ZmMyZjFiNzVkMzQwYzA1NWM5Mzg1OTAwNTBlLi5mYTBhNGE4OTU2NzQyYWVkYjgxY2YwYjAw
NWZkN2Q3MDFjMzk0ODZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMuaApAQCAtMjE1LDggKzIxNSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsK
LSAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lk
IGRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRGaW5pc2hO
YXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRmFpbE5h
dmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBv
dmVycmlkZTsKICAgICB2b2lkIGhhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNwb25zZShjb25z
dCBTdHJpbmcmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDdiN2U2NmM3OWVkYWY4NGE4YTE0NzU2NTI0ZTE2
YzI2ZTU3ODk2YzYuLjcwOTI0ZWRjZThhYWI0MGJmYjE2ZjYyNzI1ODAxZGRjYjQwNTJhNWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0K
QEAgLTc4OCwxOCArNzg4LDE4IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpCiAgICAgICAgIGdlc3R1cmVDb250cm9sbGVy
LT5kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKTsKIH0KIAotdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlv
bikKIHsKICAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9IG1faW1wbC0+Z2VzdHVyZUNv
bnRyb2xsZXIoKSkKLSAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZpbmlzaExvYWRGb3JN
YWluRnJhbWUoKTsKKyAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZpbmlzaE5hdmlnYXRp
b24obmF2aWdhdGlvbik7CiAKICAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uKE5T
QWNjZXNzaWJpbGl0eVVuaWdub3JlZEFuY2VzdG9yKG1fdmlldyksIGtBWExvYWRDb21wbGV0ZU5v
dGlmaWNhdGlvbik7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFp
bkZyYW1lKCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKEFQSTo6TmF2
aWdhdGlvbiogbmF2aWdhdGlvbikKIHsKICAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9
IG1faW1wbC0+Z2VzdHVyZUNvbnRyb2xsZXIoKSkKLSAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXIt
PmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCk7CisgICAgICAgIGdlc3R1cmVDb250cm9sbGVyLT5k
aWRGYWlsTmF2aWdhdGlvbihuYXZpZ2F0aW9uKTsKIAogICAgIE5TQWNjZXNzaWJpbGl0eVBvc3RO
b3RpZmljYXRpb24oTlNBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkQW5jZXN0b3IobV92aWV3KSwga0FY
TG9hZENvbXBsZXRlTm90aWZpY2F0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCmluZGV4IDliZTlmNTZk
N2E0ZjBhNTU2Y2FiMjRiNzZlNzI1OGE0ZGJmODkzYWEuLmU2MGEyZGY2YjdjMGY1NmU0NDVkN2Q1
ZDkxNTdlOGJlOGZhYzUyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAj
aWYgUExBVEZPUk0oTUFDKQogCisjaW1wb3J0ICJBUElOYXZpZ2F0aW9uLmgiCiAjaW1wb3J0ICJE
cmF3aW5nQXJlYVByb3h5LmgiCiAjaW1wb3J0ICJGcmFtZUxvYWRTdGF0ZS5oIgogI2ltcG9ydCAi
TG9nZ2luZy5oIgpAQCAtNjQzLDYgKzY0NCw4IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVy
OjpyZXNldFN0YXRlKCkKIAogICAgIG1fYmFja2dyb3VuZENvbG9yRm9yQ3VycmVudFNuYXBzaG90
ID0gQ29sb3IoKTsKIAorICAgIG1fcGVuZGluZ05hdmlnYXRpb24gPSBudWxscHRyOworCiAgICAg
ZGlkRW5kR2VzdHVyZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9wbGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggYzk5YWNkMmI5NTJlMmY1NDI3
Mzg5Zjc2MzRiZWNjMTQwOGQ3MzA5Yy4uNjRhNGNhNzJmOTVhZDhhNGNkYmJlNmFkODdiNjdlMGRi
MDgyMDg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRpb24v
UGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0
aW9uL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMjQ1LDExICsyNDUsMTEgQEAgdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkKIHsK
IH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiop
CiB7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiop
CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9u
L1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9Q
YWdlQ2xpZW50SW1wbC5oCmluZGV4IDliZmUxNjJlM2NkNTFlOGE5NTYyMGE3M2UwZTFlOTg4Yjc2
MTVjYjcuLjM4Yjk3ZWJiNWE0NjYzZDljMDE5MmQwMjYwMDk4YmZkMWIwNzk1YzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwu
aApAQCAtMTI0LDggKzEyNCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZW1vdmVOYXZpZ2F0
aW9uR2VzdHVyZVNuYXBzaG90KCkgZmluYWw7CiAKICAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpIGZpbmFsOwotICAgIHZvaWQgZGlkRmluaXNoTG9h
ZEZvck1haW5GcmFtZSgpIGZpbmFsOwotICAgIHZvaWQgZGlkRmFpbExvYWRGb3JNYWluRnJhbWUo
KSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikg
ZmluYWw7CisgICAgdm9pZCBkaWRGYWlsTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qKSBmaW5h
bDsKICAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURv
Y3VtZW50TmF2aWdhdGlvblR5cGUpIGZpbmFsOwogCiAgICAgdm9pZCBkaWRDaGFuZ2VCYWNrZ3Jv
dW5kQ29sb3IoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dp
bi9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNs
aWVudEltcGwuY3BwCmluZGV4IGJlNjFiYmRmZTVlMWYwNWE3MzVjYzg2Zjg5MzNmZDE3NTQ4YzE2
MjYuLmVlY2E4NGI0N2E2NGY0ZWM5YzZiYmJlMGI4YjJiZjBmZGYwODU1MjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMzMwLDcgKzMz
MCw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dEZvck1haW5GcmFtZSgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit2b2lkIFBhZ2VDbGllbnRJbXBs
OjpkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdl
Q2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBs
LmgKaW5kZXggMzc2NzI1MTgwODViNjFlMzk5OTQ0ZTQ2NmJiNDA4YjdmOTlmYzdlOS4uYzYyNTc0
N2EzYTUzZGUwN2Q5ZmVkMWJjYjlkNjA2ZjY4NmYzMDIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTk5LDcgKzk5LDEwIEBAIHByaXZhdGU6
CiAgICAgdm9pZCBoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlkQ2hhbmdlQ29udGVudFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBib29sIHVzZUN1c3RvbUNvbnRlbnRQcm92aWRlcikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQg
ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopIG92ZXJyaWRlOwor
ICAgIHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJpZGUgeyB9
CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1
bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKIAogICAgIC8vIEF1eGlsaWFyeSBDbGllbnQg
Q3JlYXRpb24KICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCkBAIC0xMjUsOSArMTI4LDYgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHdpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2ViQmFja0Zv
cndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVtb3ZlTmF2aWdhdGlvbkdl
c3R1cmVTbmFwc2hvdCgpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZpbmlzaExv
YWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmln
YXRpb25Gb3JNYWluRnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpIG92ZXJyaWRlOwog
CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChj
b25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiwgYm9vbCB3YXNFdmVudEhhbmRsZWQpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDRmMjA0NzZhMGYyMTI0NDM0OGVlMTI1NTBmNjI0MTkwNDk1YzBmMjMuLmUyMjAz
NDVkNjFhNzM1NjBkNGFjOTg1ZjhlMWYyMzhjZDAyMmEzYmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMC0wNy0wMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBTd2lwZSBzbmFwc2hvdCBpcyByZW1vdmVkIHRvbyBlYXJseSB3aGVuIHN3aXBpbmcg
YXdheSBmcm9tIGEgcGFnZSB0aGF0IGlzIHN0aWxsIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzc2MworICAgICAgICA8cmRhcjovL3By
b2JsZW0vNjQ1NzY4MTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3N3aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRzdGFuZGlu
Zy1sb2FkLWNhbmNlbGxhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvc3dpcGUvc3dpcGUtYmFjay13aXRoLW91dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0aW9u
Lmh0bWw6IEFkZGVkLgorICAgICAgICBBZGQgYSB0ZXN0IHRoYXQgZW5zdXJlcyB0aGF0IHdlIGRv
bid0IHJlbW92ZSB0aGUgc3dpcGUgc25hcHNob3QgYmVmb3JlIHRoZSAiYmFjayIgcGFnZSBpcyBs
b2FkZWQuCisgICAgICAgIEJlZm9yZSB0aGlzIGZpeCwgdGhpcyB0ZXN0IGZhaWxzIHRoZSBhc3Nl
cnRpb24gdGhhdCB3ZSdyZSBvbiB0aGUgZmlyc3QgcGFnZSBpbiBkaWRSZW1vdmVTd2lwZVNuYXBz
aG90Q2FsbGJhY2suCisKIDIwMjAtMDctMDEgIEthcmwgUmFja2xlciAgPHJhY2tsZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbW92ZSBleHBlY3RhdGlvbiBmb3IgZmFzdC9ldmVudHMvYmVmb3Jl
LWlucHV0LWRlbGV0ZS1lbXB0eS1saXN0LXRhcmdldC1yYW5nZXMuaHRtbCBhbmQgZmFzdC9ldmVu
dHMvYmVmb3JlLWlucHV0LWV2ZW50cy1wcmV2ZW50LWluc2VydC1jb21wb3NpdGlvbi5odG1sIGFu
ZCBmYXN0L2V2ZW50cy9iZWZvcmUtaW5wdXQtZXZlbnRzLXByZXZlbnQtcmVjb21wb3NpdGlvbi5o
dG1sIGFzIHRoZXkgYXJlIHBhc3NpbmcuIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zd2lwZS9yZXNvdXJjZXMvc3dpcGUtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTM2ZTgyMGRkNzRm
NmU1NWM2ZDlkZjc3OGM3OGI2NDJhMTRlMTE0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBlLXRlc3QuanMKQEAgLTAsMCArMSw4
NCBAQAorZnVuY3Rpb24gc2hvdWxkQmUoZXhwZWN0ZWQsIGFjdHVhbCwgbWVzc2FnZSkKK3sKKyAg
ICBpZiAoZXhwZWN0ZWQgIT0gYWN0dWFsKQorICAgICAgICBsb2coIkZhaWx1cmUuICIgKyBtZXNz
YWdlICsgIiAoZXhwZWN0ZWQ6ICIgKyBleHBlY3RlZCArICIsIGFjdHVhbDogIiArIGFjdHVhbCAr
ICIpIik7Cit9CisKK2Z1bmN0aW9uIGxvZyhzKQoreworICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Vb
InN3aXBlTG9nZ2luZyJdICs9IHMgKyAiPGJyLz4iOworfQorCitmdW5jdGlvbiBkdW1wTG9nKCkK
K3sKKyAgICB3aW5kb3cuZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSB3aW5kb3cubG9jYWxTdG9y
YWdlWyJzd2lwZUxvZ2dpbmciXTsKK30KKworZnVuY3Rpb24gdGVzdENvbXBsZXRlKCkKK3sKKyAg
ICBkdW1wTG9nKCk7CisgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitm
dW5jdGlvbiBpbml0aWFsaXplU3dpcGVUZXN0KCkKK3sKKyAgICB3aW5kb3cubG9jYWxTdG9yYWdl
WyJzd2lwZUxvZ2dpbmciXSA9ICIiOworICAgIHRlc3RSdW5uZXIuc2V0TmF2aWdhdGlvbkdlc3R1
cmVzRW5hYmxlZCh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLmNsZWFyQmFja0ZvcndhcmRMaXN0KCk7
Cit9CisKK2Z1bmN0aW9uIGhhc0luaXRpYWxpemVkU3dpcGVUZXN0KCkKK3sKKyAgICByZXR1cm4g
KCJzd2lwZUxvZ2dpbmciIGluIHdpbmRvdy5sb2NhbFN0b3JhZ2UpOworfQorCitmdW5jdGlvbiBz
dGFydE1lYXN1cmluZ0R1cmF0aW9uKGtleSkKK3sKKyAgICB3aW5kb3cubG9jYWxTdG9yYWdlW2tl
eSArICJzd2lwZVN0YXJ0VGltZSJdID0gRGF0ZS5ub3coKTsKK30KKworZnVuY3Rpb24gbWVhc3Vy
ZWREdXJhdGlvblNob3VsZEJlTGVzc1RoYW4oa2V5LCB0aW1lSW5NUywgbWVzc2FnZSkKK3sKKyAg
ICBsZXQgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gd2luZG93LmxvY2FsU3RvcmFnZVtrZXkgKyAi
c3dpcGVTdGFydFRpbWUiXTsKKyAgICBpZiAoZHVyYXRpb24gPj0gdGltZUluTVMpCisgICAgICAg
IGxvZygiRmFpbHVyZS4gIiArIG1lc3NhZ2UgKyAiIChleHBlY3RlZDogIiArIHRpbWVJbk1TICsg
IiwgYWN0dWFsOiAiICsgZHVyYXRpb24gKyAiKSIpOworfQorCitmdW5jdGlvbiBzdGFydFN3aXBl
R2VzdHVyZShjYWxsYmFjaykKK3sKKyAgICBsb2coInN0YXJ0U3dpcGVHZXN0dXJlIik7CisgICAg
dGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICB1aUNv
bnRyb2xsZXIuYmVnaW5CYWNrU3dpcGUoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB1aUNvbnRy
b2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICB9KTsKKyAgICB9KSgpO2AsIGNhbGxi
YWNrIHx8IGZ1bmN0aW9uICgpIHt9KTsKK30KKworZnVuY3Rpb24gY29tcGxldGVTd2lwZUdlc3R1
cmUoY2FsbGJhY2spCit7CisgICAgbG9nKCJjb21wbGV0ZVN3aXBlR2VzdHVyZSIpOworICAgIHRl
c3RSdW5uZXIucnVuVUlTY3JpcHQoYAorICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgdWlDb250
cm9sbGVyLmNvbXBsZXRlQmFja1N3aXBlKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdWlDb250
cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgfSk7CisgICAgfSkoKTtgLCBjYWxs
YmFjayB8fCBmdW5jdGlvbiAoKSB7fSk7Cit9CisKK2Z1bmN0aW9uIHBsYXlFdmVudFN0cmVhbShz
dHJlYW0sIGNhbGxiYWNrKQoreworICAgIGxvZygicGxheUV2ZW50U3RyZWFtIik7CisgICAgaWYg
KHRlc3RSdW5uZXIuaXNJT1NGYW1pbHkpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgdGVzdCBz
aG91bGQgcHJvYmFibHkgbm90IGxvZyBwbGF5RXZlbnRTdHJlYW0KKyAgICAgICAgLy8gb24gaU9T
LCB3aGVyZSBpdCBkb2Vzbid0IGFjdHVhbGx5IGRvIGl0LgorICAgICAgICBzZXRUaW1lb3V0KGNh
bGxiYWNrLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KGAKKyAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgIHVpQ29udHJvbGxlci5wbGF5QmFj
a0V2ZW50U3RyZWFtKFxgJHtzdHJlYW19XGAsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdWlD
b250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgfSk7CisgICAgfSkoKTtgLCBj
YWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRzdGFuZGluZy1sb2FkLWNhbmNlbGxh
dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N3aXBlL3N3aXBlLWJh
Y2std2l0aC1vdXRzdGFuZGluZy1sb2FkLWNhbmNlbGxhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODlkZWNmZDRjMzcxMjVjZmI1NTk4MTE5Njg5YzNmMGM0YTFkODg0ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3dpcGUvc3dpcGUtYmFjay13aXRoLW91
dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAK
K3N0YXJ0U3dpcGVHZXN0dXJlCitkaWRCZWdpblN3aXBlCitjb21wbGV0ZVN3aXBlR2VzdHVyZQor
d2lsbEVuZFN3aXBlCitkaWRFbmRTd2lwZQorZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRz
dGFuZGluZy1sb2FkLWNhbmNlbGxhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
d2lwZS9zd2lwZS1iYWNrLXdpdGgtb3V0c3RhbmRpbmctbG9hZC1jYW5jZWxsYXRpb24uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MGZkMzZhNzQ2ZWNjMDljMzEyZWU3ZWEyYTMwMjY3NzI1NjFlZjA1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zd2lwZS9zd2lwZS1iYWNrLXdp
dGgtb3V0c3RhbmRpbmctbG9hZC1jYW5jZWxsYXRpb24uaHRtbApAQCAtMCwwICsxLDgzIEBACis8
aGVhZD4KKzxzdHlsZT4KK2h0bWwgeworICAgIGZvbnQtc2l6ZTogMzJwdDsKK30KKzwvc3R5bGU+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3aXBlLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2Z1bmN0aW9uIGRpZEJlZ2luU3dpcGVDYWxsYmFjaygpCit7CisgICAgbG9nKCJkaWRCZWdp
blN3aXBlIik7CisKKyAgICBjb21wbGV0ZVN3aXBlR2VzdHVyZSgpOworfQorCitmdW5jdGlvbiB3
aWxsRW5kU3dpcGVDYWxsYmFjaygpCit7CisgICAgbG9nKCJ3aWxsRW5kU3dpcGUiKTsKKworICAg
IHNob3VsZEJlKGZhbHNlLCBpc0ZpcnN0UGFnZSgpLCAiVGhlIHN3aXBlIHNob3VsZCBub3QgeWV0
IGhhdmUgbmF2aWdhdGVkIGF3YXkgZnJvbSB0aGUgc2Vjb25kIHBhZ2UuIik7Cit9CisKK2Z1bmN0
aW9uIGRpZEVuZFN3aXBlQ2FsbGJhY2soKQoreworICAgIGxvZygiZGlkRW5kU3dpcGUiKTsKKwor
ICAgIHN0YXJ0TWVhc3VyaW5nRHVyYXRpb24oInNuYXBzaG90UmVtb3ZhbCIpOworfQorCit2YXIg
aGFzUmVtb3ZlZFNuYXBzaG90ID0gZmFsc2U7CisKK2Z1bmN0aW9uIGRpZFJlbW92ZVN3aXBlU25h
cHNob3RDYWxsYmFjaygpCit7CisgICAgbG9nKCJkaWRSZW1vdmVTd2lwZVNuYXBzaG90Iik7CisK
KyAgICBoYXNSZW1vdmVkU25hcHNob3QgPSB0cnVlOworICAgIAorICAgIHNob3VsZEJlKHRydWUs
IGlzRmlyc3RQYWdlKCksICJUaGUgc3dpcGUgc2hvdWxkIGhhdmUgbmF2aWdhdGVkIGJhY2sgdG8g
dGhlIGZpcnN0IHBhZ2UuIik7CisKKyAgICB0ZXN0Q29tcGxldGUoKTsKK30KKworZnVuY3Rpb24g
aXNGaXJzdFBhZ2UoKQoreworICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9m
KCJzZWNvbmQiKSA9PSAtMTsKK30KKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAg
ICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiVGhpcyB0ZXN0IG11c3QgYmUgcnVuIGluIFdl
YktpdFRlc3RSdW5uZXIuIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRvY3VtZW50
LmJvZHkuaW5uZXJIVE1MID0gaXNGaXJzdFBhZ2UoKSA/ICJmaXJzdCIgOiAiPGlmcmFtZSBzcmM9
Jy9yZXNvdXJjZXMvc2xvdy1pbWFnZS5waHAnPiI7CisKKyAgICBpZiAoaXNGaXJzdFBhZ2UoKSkg
eworICAgICAgICBpZiAoaGFzSW5pdGlhbGl6ZWRTd2lwZVRlc3QoKSkgeworICAgICAgICAgICAg
c2hvdWxkQmUoZmFsc2UsIGhhc1JlbW92ZWRTbmFwc2hvdCwgIlRoZSBzbmFwc2hvdCBzaG91bGQg
bm90IGhhdmUgYmVlbiBzeW5jaHJvbm91c2x5IHJlbW92ZWQgYmVjYXVzZSBvZiB0aGUgY2FuY2Vs
bGVkIGZvcndhcmQgbG9hZC4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIGluaXRpYWxpemVTd2lwZVRlc3QoKTsKKworICAgICAgICB0ZXN0UnVubmVyLmluc3Rh
bGxEaWRCZWdpblN3aXBlQ2FsbGJhY2soZGlkQmVnaW5Td2lwZUNhbGxiYWNrKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5pbnN0YWxsV2lsbEVuZFN3aXBlQ2FsbGJhY2sod2lsbEVuZFN3aXBlQ2FsbGJh
Y2spOworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRFbmRTd2lwZUNhbGxiYWNrKGRpZEVu
ZFN3aXBlQ2FsbGJhY2spOworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRSZW1vdmVTd2lw
ZVNuYXBzaG90Q2FsbGJhY2soZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKTsKKworICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisKKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IAorICAgICAgICAg
ICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5kb3cubG9jYXRpb24uaHJlZiArICI/c2Vjb25k
IjsKKyAgICAgICAgfSwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdGFydFN3
aXBlR2VzdHVyZSgpOworfTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403334</attachid>
            <date>2020-07-01 16:53:04 -0700</date>
            <delta_ts>2020-07-01 17:32:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213763-20200701165303.patch</filename>
            <type>text/plain</type>
            <size>37359</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJmMjQ5NjBjZGE3YjdmYWRl
MjdiMzcyNTRjMGJmN2MzZGM4YTE0MWYuLmRmYWVjMjQ1ZGY2YmYxODEyOGFlZTBhNjgyNmRkMjky
YjM5NTg5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTEgQEAKKzIwMjAtMDctMDEgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3dpcGUgc25hcHNob3Qg
aXMgcmVtb3ZlZCB0b28gZWFybHkgd2hlbiBzd2lwaW5nIGF3YXkgZnJvbSBhIHBhZ2UgdGhhdCBp
cyBzdGlsbCBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTM3NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0NTc2ODExPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMv
c3dpcGUvc3dpcGUtYmFjay13aXRoLW91dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0aW9uLmh0bWwK
KworICAgICAgICBXaGVuIHN3aXBpbmcgYmFjayBmcm9tIGEgcGFnZSB0aGF0IGlzIHN0aWxsIGxv
YWRpbmcsIHdoZW4gdGhlIHN3aXBlIGNvbW1pdHMsCisgICAgICAgIGFuZCB3ZSBzdGFydCBuYXZp
Z2F0aW5nIGJhY2sgdG8gdGhlIHByZXZpb3VzIHBhZ2UsIHRoZSB1bmZpbmlzaGVkIGZvcndhcmQg
bmF2aWdhdGlvbgorICAgICAgICBpcyBjYW5jZWxsZWQuCisKKyAgICAgICAgVGhpcyBjYW5jZWxs
YXRpb24gcmVzdWx0ZWQgaW4gYSAiZGlkRmFpbExvYWRGb3JNYWluRnJhbWUiIG1ha2luZyBpdCB0
byBWaWV3R2VzdHVyZUNvbnRyb2xsZXIsCisgICAgICAgIHdoaWNoIHRvb2sgaXQgYXMgYW4gaW5k
aWNhdGlvbiB0aGF0IHRoZSBuYXZpZ2F0aW9uICppdCogd2FzIGludGVyZXN0ZWQgaW4gKHRoZSBi
YWNrIG5hdmlnYXRpb24pCisgICAgICAgIGhhZCBmYWlsZWQsIGFuZCBpbW1lZGlhdGVseSByZW1v
dmVkIHRoZSBzbmFwc2hvdC4KKworICAgICAgICBJbnN0ZWFkIG9mIGxpc3RlbmluZyB0byBhbnkg
cmFuZG9tIG5hdmlnYXRpb24ncyBsb2FkIG5vdGlmaWNhdGlvbnMsIGtlZXAgdHJhY2sgb2YgdGhl
IG5hdmlnYXRpb24KKyAgICAgICAgc3RhcnRlZCBieSBnb1RvQmFja0ZvcndhcmRJdGVtLCBhbmQg
b25seSBsaXN0ZW4gdG8gbm90aWZpY2F0aW9ucyBmcm9tIGl0LCBpZ25vcmluZyB0aGUgb3RoZXJz
LgorCisgICAgICAgIFRoaXMgcmVxdWlyZXMgYSBidW5jaCBvZiBwbHVtYmluZyB0byBnZXQgdGhl
IG5hdmlnYXRpb24gZnJvbSBXZWJQYWdlUHJveHkgdG8gVmlld0dlc3R1cmVDb250cm9sbGVyLAor
ICAgICAgICBidXQgaXMgb3RoZXJ3aXNlIGZhaXJseSB0cml2aWFsLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50SW1wbDo6ZGlkRmluaXNoTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpkaWRGYWlsTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKHdlYmtp
dFdlYlZpZXdCYXNlRGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSk6CisgICAgICAgICh3ZWJraXRX
ZWJWaWV3QmFzZURpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2lvcy9XS1dlYlZpZXdJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dl
YlZpZXdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkRmluaXNoTmF2aWdhdGlvbjpd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaWRGYWlsTmF2aWdhdGlvbjpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lXSk6IERlbGV0ZWQuCisgICAg
ICAgICgtW1dLV2ViVmlldyBfZGlkRmFpbExvYWRGb3JNYWluRnJhbWVdKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUp
OiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Vmlld0dlc3R1cmVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVD
b250cm9sbGVyOjpkaWRSZWFjaE5hdmlnYXRpb25UZXJtaW5hbFN0YXRlKToKKyAgICAgICAgKFdl
YktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjp3aWxsRW5kU3dpcGVHZXN0dXJlKToKKyAgICAg
ICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZWFjaE1haW5GcmFtZUxvYWRU
ZXJtaW5hbFN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvVmlld0dlc3R1cmVD
b250cm9sbGVyLmg6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlk
RmluaXNoTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxl
cjo6ZGlkRmFpbE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRy
b2xsZXI6OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUpOiBEZWxldGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tOgorICAgICAg
ICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OndpbGxFbmRTd2lwZUdlc3R1cmUpOgor
ICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnJlc2V0U3RhdGUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6ZGlkRmluaXNoTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpkaWRGYWlsTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbToKKyAgICAg
ICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpyZXNldFN0YXRlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGYWlsTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKTog
RGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaE5hdmlnYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5oOgorCiAyMDIwLTA3
LTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lv
bihyMjU5MjQyKSBXZWJLaXQgbm8gbG9uZ2VyIGRvZXMgY2xpZW50IG5hdmlnYXRpb25zIGF0IGZv
cmVncm91bmQgcHJpb3JpdHkgZm9yIGV4dGVuc2lvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggZTA3OWM3MGFkOTQyNDhh
NTI5YTA4NDkzNDcwNDQzMWMzZGM0MzI1NC4uNTcxMzllMmQ5MTBjZjE4MzRkMDcxZDQ4MmIzOTY3
MTk0ZGQwZmRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9Q
YWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9Q
YWdlQ2xpZW50SW1wbC5jcHAKQEAgLTUyMiwxNCArNTIyLDE0IEBAIHZvaWQgUGFnZUNsaWVudElt
cGw6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpCiAgICAgd2Vi
a2l0V2ViVmlld0Jhc2VEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUo
V0VCS0lUX1dFQl9WSUVXX0JBU0UobV92aWV3V2lkZ2V0KSk7CiB9CiAKLXZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6
ZGlkRmluaXNoTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24pCiB7Ci0gICAg
d2Via2l0V2ViVmlld0Jhc2VEaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKFdFQktJVF9XRUJfVklF
V19CQVNFKG1fdmlld1dpZGdldCkpOworICAgIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmluaXNoTmF2
aWdhdGlvbihXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3ZpZXdXaWRnZXQpLCBuYXZpZ2F0aW9uKTsK
IH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKQordm9p
ZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKiBuYXZp
Z2F0aW9uKQogewotICAgIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmFpbExvYWRGb3JNYWluRnJhbWUo
V0VCS0lUX1dFQl9WSUVXX0JBU0UobV92aWV3V2lkZ2V0KSk7CisgICAgd2Via2l0V2ViVmlld0Jh
c2VEaWRGYWlsTmF2aWdhdGlvbihXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3ZpZXdXaWRnZXQpLCBu
YXZpZ2F0aW9uKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSB0eXBlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9QYWdlQ2xpZW50SW1wbC5oCmluZGV4
IDI3MDA5OTgyNmI3YmVjNWUzMmE2Y2MwNWM0MWYxZmMxNGVjNTk4YmUuLjVjNzM4MjdiODdjZTZi
NDMwMDg0ODVhMjFjYzlhN2I2NzIzNjliNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTExMSw3ICsxMTEsMTEgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5Jikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXpl
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIGJvb2wgdXNlQ3VzdG9tQ29udGVudFByb3ZpZGVyKSBvdmVycmlkZTsK
LSAgICB2b2lkIGRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopIG92ZXJyaWRlOwor
ICAgIHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVu
dE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKIAogICAgIC8vIEF1eGlsaWFyeSBDbGllbnQgQ3Jl
YXRpb24KICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCkBAIC0xMzcsMTEgKzE0MSw2IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCB3aWxsUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90KFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0mKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlbW92ZU5hdmlnYXRpb25HZXN0
dXJlU25hcHNob3QoKSBvdmVycmlkZTsKIAotICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkRmluaXNoTG9h
ZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkgb3ZlcnJpZGU7Ci0K
ICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgZG9uZVdpdGhUb3VjaEV2ZW50KGNv
bnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmLCBib29sIHdhc0V2ZW50SGFuZGxlZCkgb3ZlcnJpZGU7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3QmFzZS5jcHAKaW5kZXggMmExYTQ4Mzg5MDYzNWJjYjJkZDU1Y2IyOTgyNjE5NmU0
MmY1NWExNi4uMTJiMGFiYmUzOGU5YWJlMzc4ZGQ0YWViMDlhMGQ0NGI3Y2MwMDY1OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFz
ZS5jcHAKQEAgLTIzNDgsMjEgKzIzNDgsMjEgQEAgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZShXZWJLaXRXZWJWaWV3QmEKICNl
bmRpZgogfQogCi12b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmluaXNoTG9hZEZvck1haW5GcmFt
ZShXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UpCit2b2lkIHdlYmtpdFdlYlZp
ZXdCYXNlRGlkRmluaXNoTmF2aWdhdGlvbihXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmll
d0Jhc2UsIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbikKIHsKICNpZiAhVVNFKEdUSzQpCiAg
ICAgVmlld0dlc3R1cmVDb250cm9sbGVyKiBjb250cm9sbGVyID0gd2Via2l0V2ViVmlld0Jhc2VW
aWV3R2VzdHVyZUNvbnRyb2xsZXIod2Via2l0V2ViVmlld0Jhc2UpOwogICAgIGlmIChjb250cm9s
bGVyICYmIGNvbnRyb2xsZXItPmlzU3dpcGVHZXN0dXJlRW5hYmxlZCgpKQotICAgICAgICBjb250
cm9sbGVyLT5kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCk7CisgICAgICAgIGNvbnRyb2xsZXIt
PmRpZEZpbmlzaE5hdmlnYXRpb24obmF2aWdhdGlvbik7CiAjZW5kaWYKIH0KIAotdm9pZCB3ZWJr
aXRXZWJWaWV3QmFzZURpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKFdlYktpdFdlYlZpZXdCYXNlKiB3
ZWJraXRXZWJWaWV3QmFzZSkKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGYWlsTmF2aWdhdGlv
bihXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UsIEFQSTo6TmF2aWdhdGlvbiog
bmF2aWdhdGlvbikKIHsKICNpZiAhVVNFKEdUSzQpCiAgICAgVmlld0dlc3R1cmVDb250cm9sbGVy
KiBjb250cm9sbGVyID0gd2Via2l0V2ViVmlld0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIod2Vi
a2l0V2ViVmlld0Jhc2UpOwogICAgIGlmIChjb250cm9sbGVyICYmIGNvbnRyb2xsZXItPmlzU3dp
cGVHZXN0dXJlRW5hYmxlZCgpKQotICAgICAgICBjb250cm9sbGVyLT5kaWRGYWlsTG9hZEZvck1h
aW5GcmFtZSgpOworICAgICAgICBjb250cm9sbGVyLT5kaWRGYWlsTmF2aWdhdGlvbihuYXZpZ2F0
aW9uKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaAppbmRleCBlYjdmODZlMDhlNzM2
YWI3MDdiYTYxOTYwOTllNmUyOTliNjZjZDFhLi4xZGRhMWZjZjViYTBlNjliM2M1NzIxYjFiYjVh
YmVhMDI1Zjg3NGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgKQEAgLTEwMSw4ICsxMDEsOCBAQCBi
b29sIHdlYmtpdFdlYlZpZXdCYXNlQ29tcGxldGVCYWNrU3dpcGVGb3JUZXN0aW5nKFdlYktpdFdl
YlZpZXdCYXNlKik7CiAKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRTdGFydFByb3Zpc2lvbmFs
TG9hZEZvck1haW5GcmFtZShXZWJLaXRXZWJWaWV3QmFzZSopOwogdm9pZCB3ZWJraXRXZWJWaWV3
QmFzZURpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZShXZWJLaXRXZWJW
aWV3QmFzZSopOwotdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZEZpbmlzaExvYWRGb3JNYWluRnJh
bWUoV2ViS2l0V2ViVmlld0Jhc2UqKTsKLXZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGYWlsTG9h
ZEZvck1haW5GcmFtZShXZWJLaXRXZWJWaWV3QmFzZSopOwordm9pZCB3ZWJraXRXZWJWaWV3QmFz
ZURpZEZpbmlzaE5hdmlnYXRpb24oV2ViS2l0V2ViVmlld0Jhc2UqLCBBUEk6Ok5hdmlnYXRpb24q
KTsKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGYWlsTmF2aWdhdGlvbihXZWJLaXRXZWJWaWV3
QmFzZSosIEFQSTo6TmF2aWdhdGlvbiopOwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZFNhbWVE
b2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoV2ViS2l0V2ViVmlld0Jhc2UqLCBXZWJLaXQ6
OlNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRS
ZXN0b3JlU2Nyb2xsUG9zaXRpb24oV2ViS2l0V2ViVmlld0Jhc2UqKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKaW5kZXggNzdiYzA4MzIwN2I1
MGQyOTkxNjljMTJmNDA0YTUwM2ZhY2NmNWJmMS4uNjFmNjM3MjgwNWJiZWRmNWU1MmM1MTk5Njlk
NDNmMTI1YWNjMmM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dL
V2ViVmlld0lPUy5oCkBAIC04NCw4ICs4NCw4IEBACiAtICh2b2lkKV9kaWRDb21wbGV0ZUFuaW1h
dGVkUmVzaXplOwogCiAtICh2b2lkKV9kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvck1haW5GcmFt
ZTsKLS0gKHZvaWQpX2RpZEZpbmlzaExvYWRGb3JNYWluRnJhbWU7Ci0tICh2b2lkKV9kaWRGYWls
TG9hZEZvck1haW5GcmFtZTsKKy0gKHZvaWQpX2RpZEZpbmlzaE5hdmlnYXRpb246KEFQSTo6TmF2
aWdhdGlvbiopbmF2aWdhdGlvbjsKKy0gKHZvaWQpX2RpZEZhaWxOYXZpZ2F0aW9uOihBUEk6Ok5h
dmlnYXRpb24qKW5hdmlnYXRpb247CiAtICh2b2lkKV9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
Rm9yTWFpbkZyYW1lOihXZWJLaXQ6OlNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKW5hdmlnYXRp
b25UeXBlOwogCiAtIChCT09MKV9pc1Nob3dpbmdWaWRlb1BpY3R1cmVJblBpY3R1cmU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IGEw
ZThiMTgyYzZiN2Y5NWUxYzYwN2VhOTcwZGFiNDBmMTQ1OGViYWQuLjkyMDBkZGMyNmY0NTE5NjRh
MDViMDA0ZDI5NjRlYzMyYzBjNmIzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCkBAIC0yMTQ2LDE2ICsyMTQ2LDE2IEBAIC0gKHZvaWQp
X2RpZENvbXBsZXRlQW5pbWF0ZWRSZXNpemUKICAgICAgICAgX2NhbGxiYWNrc0RlZmVycmVkRHVy
aW5nUmVzaXplLnRha2VMYXN0KCkoKTsKIH0KIAotLSAodm9pZClfZGlkRmluaXNoTG9hZEZvck1h
aW5GcmFtZQorLSAodm9pZClfZGlkRmluaXNoTmF2aWdhdGlvbjooQVBJOjpOYXZpZ2F0aW9uKilu
YXZpZ2F0aW9uCiB7CiAgICAgaWYgKF9nZXN0dXJlQ29udHJvbGxlcikKLSAgICAgICAgX2dlc3R1
cmVDb250cm9sbGVyLT5kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCk7CisgICAgICAgIF9nZXN0
dXJlQ29udHJvbGxlci0+ZGlkRmluaXNoTmF2aWdhdGlvbihuYXZpZ2F0aW9uKTsKIH0KIAotLSAo
dm9pZClfZGlkRmFpbExvYWRGb3JNYWluRnJhbWUKKy0gKHZvaWQpX2RpZEZhaWxOYXZpZ2F0aW9u
OihBUEk6Ok5hdmlnYXRpb24qKW5hdmlnYXRpb24KIHsKICAgICBpZiAoX2dlc3R1cmVDb250cm9s
bGVyKQotICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1l
KCk7CisgICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+ZGlkRmFpbE5hdmlnYXRpb24obmF2aWdh
dGlvbik7CiB9CiAKIC0gKHZvaWQpX2RpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJh
bWU6KFdlYktpdDo6U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpbmF2aWdhdGlvblR5cGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAK
aW5kZXggYzhiNDFmNDA3Nzc0ZDIzMzdlOTljYzdmOTE1MWVjNjViZTNmYzUzMi4uNTczMjYzZWU4
OGZlMjMyYjMzNTk1MjM2OTg1NTY2NTQ2MTcyZjI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTMxOCwxMSArMzE4LDEx
IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZv
ck1haW5GcmFtZSgpCiB7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExvYWRG
b3JNYWluRnJhbWUoKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTmF2aWdhdGlvbihB
UEk6Ok5hdmlnYXRpb24qKQogewogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGYWlsTG9h
ZEZvck1haW5GcmFtZSgpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGYWlsTmF2aWdhdGlvbihB
UEk6Ok5hdmlnYXRpb24qKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggMzcyYjMwZmQwOWM5YmNmYzNkNDc3NjJlYmZm
MTE3ODhmYWM1ZjNjYy4uYTI1YTFjYjE3ZjQ1MTY1MDM5NmYzOGEwZTBmYjJmYjJlZmY2NDUyZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1w
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwu
aApAQCAtMTI5LDggKzEyOSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZp
bmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZhaWxMb2FkRm9y
TWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6
TmF2aWdhdGlvbiopIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpO
YXZpZ2F0aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
Rm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggMmU2NjYyOGFiNWM3MDhmZmYxMjEwZTU4N2NkNGE4NTI5
YjgwZTgxNi4uMDRkNTEwYTBmYTIxMWU0OTRhY2NhYzA2Y2E1YjAxMWEzYzQ4MWUyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtNjcsNiArNjcsNyBAQCBPQkpDX0NMQVNT
IFdLVmlldzsKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXR0YWNobWVudDsKIGNsYXNzIEhpdFRl
c3RSZXN1bHQ7CitjbGFzcyBOYXZpZ2F0aW9uOwogY2xhc3MgT2JqZWN0OwogY2xhc3MgT3BlblBh
bmVsUGFyYW1ldGVyczsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwpAQCAtNDYxLDggKzQ2Miw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFw
c2hvdCgpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGb3JNYWluRnJhbWUoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRG
b3JNYWluRnJhbWUoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZhaWxMb2FkRm9yTWFpbkZy
YW1lKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2
aWdhdGlvbiopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpO
YXZpZ2F0aW9uKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSA9IDA7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKaW5kZXggOWNlYTJi
MDAyODhhOWYxMzQ5ZGMyMWY3MjVkZWQwNjRmNmY2ZTg4Yi4uZjllYzM0ZTFlMjdkZWMzMGM2ZDFi
MzUyNWEzZjBhZDc4NmIwOGQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Vmlld0dlc3R1cmVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9W
aWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwCkBAIC0yMDcsOCArMjA3LDExIEBAIHZvaWQgVmlld0dl
c3R1cmVDb250cm9sbGVyOjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogICAgIG1fc25hcHNo
b3RSZW1vdmFsVHJhY2tlci5ldmVudE9jY3VycmVkKFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6OlNj
cm9sbFBvc2l0aW9uUmVzdG9yYXRpb24pOwogfQogCi12b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxl
cjo6ZGlkUmVhY2hNYWluRnJhbWVMb2FkVGVybWluYWxTdGF0ZSgpCit2b2lkIFZpZXdHZXN0dXJl
Q29udHJvbGxlcjo6ZGlkUmVhY2hOYXZpZ2F0aW9uVGVybWluYWxTdGF0ZShBUEk6Ok5hdmlnYXRp
b24qIG5hdmlnYXRpb24pCiB7CisgICAgaWYgKCFtX3BlbmRpbmdOYXZpZ2F0aW9uIHx8IG5hdmln
YXRpb24gIT0gbV9wZW5kaW5nTmF2aWdhdGlvbikKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYg
KG1fc25hcHNob3RSZW1vdmFsVHJhY2tlci5pc1BhdXNlZCgpICYmIG1fc25hcHNob3RSZW1vdmFs
VHJhY2tlci5oYXNSZW1vdmFsQ2FsbGJhY2soKSkgewogICAgICAgICByZW1vdmVTd2lwZVNuYXBz
aG90KCk7CiAgICAgICAgIHJldHVybjsKQEAgLTU3Niw3ICs1NzksNyBAQCB2b2lkIFZpZXdHZXN0
dXJlQ29udHJvbGxlcjo6d2lsbEVuZFN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVt
JiB0YXJnZXRJdAogICAgIGF1dG8gcmVuZGVyVHJlZVNpemVUaHJlc2hvbGQgPSByZW5kZXJUcmVl
U2l6ZSAqIHN3aXBlU25hcHNob3RSZW1vdmFsUmVuZGVyVHJlZVNpemVUYXJnZXRGcmFjdGlvbjsK
IAogICAgIG1fZGlkU3RhcnRQcm92aXNpb25hbExvYWQgPSBmYWxzZTsKLSAgICBtX3dlYlBhZ2VQ
cm94eS5nb1RvQmFja0ZvcndhcmRJdGVtKHRhcmdldEl0ZW0pOworICAgIG1fcGVuZGluZ05hdmln
YXRpb24gPSBtX3dlYlBhZ2VQcm94eS5nb1RvQmFja0ZvcndhcmRJdGVtKHRhcmdldEl0ZW0pOwog
CiAgICAgYXV0byogY3VycmVudEl0ZW0gPSBtX3dlYlBhZ2VQcm94eS5iYWNrRm9yd2FyZExpc3Qo
KS5jdXJyZW50SXRlbSgpOwogICAgIC8vIFRoZSBtYWluIGZyYW1lIHdpbGwgbm90IGJlIG5hdmln
YXRlZCBzbyBoaWRlIHRoZSBzbmFwc2hvdCByaWdodCBhd2F5LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaAppbmRleCA0MzQzNDkwZmU0YmZiNDll
ZDhmY2RiMmZmMWYxODAxZjE2OTU0OTk5Li5mMjVlNzkyM2QzYWZhZWUyNzA2YzZiMWUyMjE3YmI5
OTkwMDc3MmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNv
bnRyb2xsZXIuaApAQCAtNjcsNiArNjcsMTAgQEAgY2xhc3MgSU9TdXJmYWNlOwogfQogI2VuZGlm
CiAKK25hbWVzcGFjZSBBUEkgeworY2xhc3MgTmF2aWdhdGlvbjsKK30KKwogI2lmIFBMQVRGT1JN
KE1BQykKIHR5cGVkZWYgTlNFdmVudCogUGxhdGZvcm1TY3JvbGxFdmVudDsKICNlbGlmIFBMQVRG
T1JNKEdUSykKQEAgLTE1MCwxMyArMTU0LDEzIEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpDb2xv
ciBiYWNrZ3JvdW5kQ29sb3JGb3JDdXJyZW50U25hcHNob3QoKSBjb25zdCB7IHJldHVybiBtX2Jh
Y2tncm91bmRDb2xvckZvckN1cnJlbnRTbmFwc2hvdDsgfQogCiAgICAgdm9pZCBkaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZEZvck1haW5GcmFtZSgpOwotICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvck1h
aW5GcmFtZSgpIHsgZGlkUmVhY2hNYWluRnJhbWVMb2FkVGVybWluYWxTdGF0ZSgpOyB9Ci0gICAg
dm9pZCBkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpIHsgZGlkUmVhY2hNYWluRnJhbWVMb2FkVGVy
bWluYWxTdGF0ZSgpOyB9CisgICAgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdh
dGlvbiogbmF2aWdhdGlvbikgeyBkaWRSZWFjaE5hdmlnYXRpb25UZXJtaW5hbFN0YXRlKG5hdmln
YXRpb24pOyB9CisgICAgdm9pZCBkaWRGYWlsTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qIG5h
dmlnYXRpb24pIHsgZGlkUmVhY2hOYXZpZ2F0aW9uVGVybWluYWxTdGF0ZShuYXZpZ2F0aW9uKTsg
fQogICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCk7
CiAgICAgdm9pZCBkaWRSZXBhaW50QWZ0ZXJOYXZpZ2F0aW9uKCk7CiAgICAgdm9pZCBkaWRIaXRS
ZW5kZXJUcmVlU2l6ZVRocmVzaG9sZCgpOwogICAgIHZvaWQgZGlkUmVzdG9yZVNjcm9sbFBvc2l0
aW9uKCk7Ci0gICAgdm9pZCBkaWRSZWFjaE1haW5GcmFtZUxvYWRUZXJtaW5hbFN0YXRlKCk7Cisg
ICAgdm9pZCBkaWRSZWFjaE5hdmlnYXRpb25UZXJtaW5hbFN0YXRlKEFQSTo6TmF2aWdhdGlvbiop
OwogICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uVHlwZSk7CiAKICAgICB2b2lkIGNoZWNrRm9yQWN0aXZlTG9hZHMoKTsK
QEAgLTMyNyw2ICszMzEsOCBAQCBwcml2YXRlOgogICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBt
X2FsdGVybmF0ZUJhY2tGb3J3YXJkTGlzdFNvdXJjZVBhZ2U7CiAgICAgUmVmUHRyPFdlYlBhZ2VQ
cm94eT4gbV93ZWJQYWdlUHJveHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGU7CiAK
KyAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBtX3BlbmRpbmdOYXZpZ2F0aW9uOworCiAgICAg
R2VzdHVyZUlEIG1fY3VycmVudEdlc3R1cmVJRDsKIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNmI0MDBkYzA2
MjExM2JiYzkxMGJiNTQ5YjQ5MWQ0MTFiZDkzNmVkYi4uODdiNTU4ODFlZjljOWQzYjJmZjQwY2Qy
NzU3MWNjMjM2NDg5MTVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC00ODc1LDcgKzQ4NzUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9h
ZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJgogCiAgICAg
aWYgKGlzTWFpbkZyYW1lKSB7CiAgICAgICAgIHJlcG9ydFBhZ2VMb2FkUmVzdWx0KCk7Ci0gICAg
ICAgIHBhZ2VDbGllbnQoKS5kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCk7CisgICAgICAgIHBh
Z2VDbGllbnQoKS5kaWRGaW5pc2hOYXZpZ2F0aW9uKG5hdmlnYXRpb24uZ2V0KCkpOwogCiAgICAg
ICAgIGlmIChuYXZpZ2F0aW9uKQogICAgICAgICAgICAgbmF2aWdhdGlvbi0+c2V0Q2xpZW50TmF2
aWdhdGlvbkFjdGl2aXR5KG51bGxwdHIpOwpAQCAtNDkyOSw3ICs0OTI5LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZy
YW1lSW5mb0RhdGEmJgogCiAgICAgaWYgKGlzTWFpbkZyYW1lKSB7CiAgICAgICAgIHJlcG9ydFBh
Z2VMb2FkUmVzdWx0KGVycm9yKTsKLSAgICAgICAgcGFnZUNsaWVudCgpLmRpZEZhaWxMb2FkRm9y
TWFpbkZyYW1lKCk7CisgICAgICAgIHBhZ2VDbGllbnQoKS5kaWRGYWlsTmF2aWdhdGlvbihuYXZp
Z2F0aW9uLmdldCgpKTsKICAgICAgICAgaWYgKG5hdmlnYXRpb24pCiAgICAgICAgICAgICBuYXZp
Z2F0aW9uLT5zZXRDbGllbnROYXZpZ2F0aW9uQWN0aXZpdHkobnVsbHB0cik7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1ZpZXdHZXN0dXJlQ29udHJvbGxl
ckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvVmlld0dlc3R1cmVDb250cm9s
bGVyR3RrLmNwcAppbmRleCBlNmZlZGQwZDkwZmM2Nzk5N2I2OTBjODAyMDUyYzM5YjFlNzc5NmMx
Li4xZWViZDllOTM0OThlYjg0ZTgxMDQyYWI5NWUwNzkwMzk4ZWMyMWYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvVmlld0dlc3R1cmVDb250cm9sbGVyR3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvVmlld0dlc3R1cmVDb250cm9sbGVyR3Rr
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlZp
ZXdHZXN0dXJlQ29udHJvbGxlci5oIgogCisjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgogI2lu
Y2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3Qu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0dSZWZQdHJHdGsuaD4KQEAgLTUwNiw2ICs1MDcsOCBAQCB2
b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6cmVtb3ZlU3dpcGVTbmFwc2hvdCgpCiAKICAgICBt
X2JhY2tncm91bmRDb2xvckZvckN1cnJlbnRTbmFwc2hvdCA9IENvbG9yKCk7CiAKKyAgICBtX3Bl
bmRpbmdOYXZpZ2F0aW9uID0gbnVsbHB0cjsKKwogICAgIGRpZEVuZEdlc3R1cmUoKTsKIAogICAg
IG1fc3dpcGVQcm9ncmVzc1RyYWNrZXIucmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggYzJmZGM5MzNhNDE4ODg3ZjcyMzQx
OGMwMDgyNjFjOTQ2YjFhMjlhMS4uNzYxZWVmODlhM2E3YjNkNjUyMmM2NmViZDRhMTZjNmZlM2Vi
ZjM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmgKQEAgLTIyMCw4ICsyMjAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVtb3ZlTmF2
aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaWRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRp
ZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZhaWxMb2Fk
Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQ
STo6TmF2aWdhdGlvbiopIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJ
OjpOYXZpZ2F0aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKICAg
ICB2b2lkIGRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZENvbXBsZXRlU3ludGhldGljQ2xpY2soKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpp
bmRleCBiMjg5ZjA1ZGVjOWVhNDBmNmEzZWJjYjQwZTk4YzA5ZThmNWNhZWIyLi45NjEzMTIyNmU2
YTE2MjNhNDJkMzg1OGZjY2E4NTUxMWRlYTA1NjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC03OTEsMTQgKzc5MSwxNCBAQCB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWlu
RnJhbWUoKQogewogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFp
bkZyYW1lKCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpO
YXZpZ2F0aW9uKiBuYXZpZ2F0aW9uKQogewotICAgIFttX3dlYlZpZXcgX2RpZEZpbmlzaExvYWRG
b3JNYWluRnJhbWVdOworICAgIFttX3dlYlZpZXcgX2RpZEZpbmlzaE5hdmlnYXRpb246bmF2aWdh
dGlvbl07CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1l
KCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlv
biogbmF2aWdhdGlvbikKIHsKLSAgICBbbV93ZWJWaWV3IF9kaWRGYWlsTG9hZEZvck1haW5GcmFt
ZV07CisgICAgW21fd2ViVmlldyBfZGlkRmFpbE5hdmlnYXRpb246bmF2aWdhdGlvbl07CiB9CiAK
IHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJh
bWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5t
bQppbmRleCA1Mjk1ZjFkOTJkMjcxMGQyMDUzZjNmYWU1YjlmZjMwMWUzYzUyOTlkLi45N2MxNWM2
MDE2Y2I3MzdmMWUxNWZiM2ZhYmU1Yjk0YzgyZjRjYTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0KQEAgLTI5
Miw3ICsyOTIsNyBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6d2lsbEVuZFN3aXBlR2Vz
dHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiB0YXJnZXRJdAogICAgICAgICBtX3NuYXBzaG90
UmVtb3ZhbFRhcmdldFJlbmRlclRyZWVTaXplID0gc25hcHNob3QtPnJlbmRlclRyZWVTaXplKCkg
KiBzd2lwZVNuYXBzaG90UmVtb3ZhbFJlbmRlclRyZWVTaXplVGFyZ2V0RnJhY3Rpb247CiAKICAg
ICBtX2RpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkID0gZmFsc2U7Ci0gICAgbV93ZWJQYWdlUHJveHlG
b3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGUtPmdvVG9CYWNrRm9yd2FyZEl0ZW0odGFy
Z2V0SXRlbSk7CisgICAgbV9wZW5kaW5nTmF2aWdhdGlvbiA9IG1fd2ViUGFnZVByb3h5Rm9yQmFj
a0ZvcndhcmRMaXN0Rm9yQ3VycmVudFN3aXBlLT5nb1RvQmFja0ZvcndhcmRJdGVtKHRhcmdldEl0
ZW0pOwogCiAgICAgYXV0byogY3VycmVudEl0ZW0gPSBtX3dlYlBhZ2VQcm94eUZvckJhY2tGb3J3
YXJkTGlzdEZvckN1cnJlbnRTd2lwZS0+YmFja0ZvcndhcmRMaXN0KCkuY3VycmVudEl0ZW0oKTsK
ICAgICAvLyBUaGUgbWFpbiBmcmFtZSB3aWxsIG5vdCBiZSBuYXZpZ2F0ZWQgc28gaGlkZSB0aGUg
c25hcHNob3QgcmlnaHQgYXdheS4KQEAgLTQzNyw2ICs0MzcsOCBAQCB2b2lkIFZpZXdHZXN0dXJl
Q29udHJvbGxlcjo6cmVzZXRTdGF0ZSgpCiAKICAgICBtX2JhY2tncm91bmRDb2xvckZvckN1cnJl
bnRTbmFwc2hvdCA9IFdlYkNvcmU6OkNvbG9yKCk7CiAKKyAgICBtX3BlbmRpbmdOYXZpZ2F0aW9u
ID0gbnVsbHB0cjsKKwogICAgIGRpZEVuZEdlc3R1cmUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCA1MzIwM2MwYmFiN2U4
ZmMyZjFiNzVkMzQwYzA1NWM5Mzg1OTAwNTBlLi5mYTBhNGE4OTU2NzQyYWVkYjgxY2YwYjAwNWZk
N2Q3MDFjMzk0ODZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMuaApAQCAtMjE1LDggKzIxNSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBk
aWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRp
ZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRGaW5pc2hOYXZp
Z2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRmFpbE5hdmln
YXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVy
cmlkZTsKICAgICB2b2lkIGhhbmRsZUNvbnRyb2xsZWRFbGVtZW50SURSZXNwb25zZShjb25zdCBT
dHJpbmcmKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsTWFjLm1tCmluZGV4IDdiN2U2NmM3OWVkYWY4NGE4YTE0NzU2NTI0ZTE2YzI2
ZTU3ODk2YzYuLjcwOTI0ZWRjZThhYWI0MGJmYjE2ZjYyNzI1ODAxZGRjYjQwNTJhNWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KQEAg
LTc4OCwxOCArNzg4LDE4IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpCiAgICAgICAgIGdlc3R1cmVDb250cm9sbGVyLT5k
aWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKTsKIH0KIAotdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbikK
IHsKICAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9IG1faW1wbC0+Z2VzdHVyZUNvbnRy
b2xsZXIoKSkKLSAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZpbmlzaExvYWRGb3JNYWlu
RnJhbWUoKTsKKyAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZpbmlzaE5hdmlnYXRpb24o
bmF2aWdhdGlvbik7CiAKICAgICBOU0FjY2Vzc2liaWxpdHlQb3N0Tm90aWZpY2F0aW9uKE5TQWNj
ZXNzaWJpbGl0eVVuaWdub3JlZEFuY2VzdG9yKG1fdmlldyksIGtBWExvYWRDb21wbGV0ZU5vdGlm
aWNhdGlvbik7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZy
YW1lKCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKEFQSTo6TmF2aWdh
dGlvbiogbmF2aWdhdGlvbikKIHsKICAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9IG1f
aW1wbC0+Z2VzdHVyZUNvbnRyb2xsZXIoKSkKLSAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRp
ZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCk7CisgICAgICAgIGdlc3R1cmVDb250cm9sbGVyLT5kaWRG
YWlsTmF2aWdhdGlvbihuYXZpZ2F0aW9uKTsKIAogICAgIE5TQWNjZXNzaWJpbGl0eVBvc3ROb3Rp
ZmljYXRpb24oTlNBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkQW5jZXN0b3IobV92aWV3KSwga0FYTG9h
ZENvbXBsZXRlTm90aWZpY2F0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCmluZGV4IDliZTlmNTZkN2E0
ZjBhNTU2Y2FiMjRiNzZlNzI1OGE0ZGJmODkzYWEuLmU2MGEyZGY2YjdjMGY1NmU0NDVkN2Q1ZDkx
NTdlOGJlOGZhYzUyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9W
aWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYg
UExBVEZPUk0oTUFDKQogCisjaW1wb3J0ICJBUElOYXZpZ2F0aW9uLmgiCiAjaW1wb3J0ICJEcmF3
aW5nQXJlYVByb3h5LmgiCiAjaW1wb3J0ICJGcmFtZUxvYWRTdGF0ZS5oIgogI2ltcG9ydCAiTG9n
Z2luZy5oIgpAQCAtNjQzLDYgKzY0NCw4IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpy
ZXNldFN0YXRlKCkKIAogICAgIG1fYmFja2dyb3VuZENvbG9yRm9yQ3VycmVudFNuYXBzaG90ID0g
Q29sb3IoKTsKIAorICAgIG1fcGVuZGluZ05hdmlnYXRpb24gPSBudWxscHRyOworCiAgICAgZGlk
RW5kR2VzdHVyZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9w
bGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9w
bGF5c3RhdGlvbi9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggYzk5YWNkMmI5NTJlMmY1NDI3Mzg5
Zjc2MzRiZWNjMTQwOGQ3MzA5Yy4uNjRhNGNhNzJmOTVhZDhhNGNkYmJlNmFkODdiNjdlMGRiMDgy
MDg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRpb24vUGFn
ZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9u
L1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMjQ1LDExICsyNDUsMTEgQEAgdm9pZCBQYWdlQ2xpZW50
SW1wbDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkKIHsKIH0K
IAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopCiB7
CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkKK3Zv
aWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1Bh
Z2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9wbGF5c3RhdGlvbi9QYWdl
Q2xpZW50SW1wbC5oCmluZGV4IDliZmUxNjJlM2NkNTFlOGE5NTYyMGE3M2UwZTFlOTg4Yjc2MTVj
YjcuLjM4Yjk3ZWJiNWE0NjYzZDljMDE5MmQwMjYwMDk4YmZkMWIwNzk1YzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3BsYXlzdGF0aW9uL1BhZ2VDbGllbnRJbXBsLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvcGxheXN0YXRpb24vUGFnZUNsaWVudEltcGwuaApA
QCAtMTI0LDggKzEyNCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZW1vdmVOYXZpZ2F0aW9u
R2VzdHVyZVNuYXBzaG90KCkgZmluYWw7CiAKICAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dEZvck1haW5GcmFtZSgpIGZpbmFsOwotICAgIHZvaWQgZGlkRmluaXNoTG9hZEZv
ck1haW5GcmFtZSgpIGZpbmFsOwotICAgIHZvaWQgZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKSBm
aW5hbDsKKyAgICB2b2lkIGRpZEZpbmlzaE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgZmlu
YWw7CisgICAgdm9pZCBkaWRGYWlsTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qKSBmaW5hbDsK
ICAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURvY3Vt
ZW50TmF2aWdhdGlvblR5cGUpIGZpbmFsOwogCiAgICAgdm9pZCBkaWRDaGFuZ2VCYWNrZ3JvdW5k
Q29sb3IoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9Q
YWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVu
dEltcGwuY3BwCmluZGV4IGJlNjFiYmRmZTVlMWYwNWE3MzVjYzg2Zjg5MzNmZDE3NTQ4YzE2MjYu
LmVlY2E4NGI0N2E2NGY0ZWM5YzZiYmJlMGI4YjJiZjBmZGYwODU1MjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMzMwLDcgKzMzMCw3
IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZv
ck1haW5GcmFtZSgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50
SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpk
aWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xp
ZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgK
aW5kZXggMzc2NzI1MTgwODViNjFlMzk5OTQ0ZTQ2NmJiNDA4YjdmOTlmYzdlOS4uYzYyNTc0N2Ez
YTUzZGUwN2Q5ZmVkMWJjYjlkNjA2ZjY4NmYzMDIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTk5LDcgKzk5LDEwIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZGlkQ2hhbmdlQ29udGVudFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92
ZXJyaWRlOwogICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBib29sIHVzZUN1c3RvbUNvbnRlbnRQcm92aWRlcikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgZGlk
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopIG92ZXJyaWRlOworICAg
IHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJpZGUgeyB9Cisg
ICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVu
dE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKIAogICAgIC8vIEF1eGlsaWFyeSBDbGllbnQgQ3Jl
YXRpb24KICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCkBAIC0xMjUsOSArMTI4LDYgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHdpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2ViQmFja0Zvcndh
cmRMaXN0SXRlbSYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1
cmVTbmFwc2hvdCgpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZpbmlzaExvYWRG
b3JNYWluRnJhbWUoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRp
b25Gb3JNYWluRnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUpIG92ZXJyaWRlOwogCiAj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChjb25z
dCBOYXRpdmVXZWJUb3VjaEV2ZW50JiwgYm9vbCB3YXNFdmVudEhhbmRsZWQpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDRmMjA0NzZhMGYyMTI0NDM0OGVlMTI1NTBmNjI0MTkwNDk1YzBmMjMuLmE4ZDViYjE0
OWYwYTliYjg5NzBiNTBiNmViMjI1M2IyZGFkYzliMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAyMC0wNy0wMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAg
ICAgICBTd2lwZSBzbmFwc2hvdCBpcyByZW1vdmVkIHRvbyBlYXJseSB3aGVuIHN3aXBpbmcgYXdh
eSBmcm9tIGEgcGFnZSB0aGF0IGlzIHN0aWxsIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzc2MworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNjQ1NzY4MTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3N3aXBlL3Jlc291cmNlcy9zd2lwZS10ZXN0LmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRzdGFuZGluZy1sb2Fk
LWNhbmNlbGxhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c3dpcGUvc3dpcGUtYmFjay13aXRoLW91dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0aW9uLmh0bWw6
IEFkZGVkLgorICAgICAgICBBZGQgYSB0ZXN0IHRoYXQgZW5zdXJlcyB0aGF0IHdlIGRvbid0IHJl
bW92ZSB0aGUgc3dpcGUgc25hcHNob3QgYmVmb3JlIHRoZSAiYmFjayIgcGFnZSBpcyBsb2FkZWQu
CisgICAgICAgIEJlZm9yZSB0aGlzIGZpeCwgdGhpcyB0ZXN0IGZhaWxzIHRoZSBhc3NlcnRpb24g
dGhhdCB3ZSdyZSBvbiB0aGUgZmlyc3QgcGFnZSBpbiBkaWRSZW1vdmVTd2lwZVNuYXBzaG90Q2Fs
bGJhY2suCisKIDIwMjAtMDctMDEgIEthcmwgUmFja2xlciAgPHJhY2tsZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZSBleHBlY3RhdGlvbiBmb3IgZmFzdC9ldmVudHMvYmVmb3JlLWlucHV0
LWRlbGV0ZS1lbXB0eS1saXN0LXRhcmdldC1yYW5nZXMuaHRtbCBhbmQgZmFzdC9ldmVudHMvYmVm
b3JlLWlucHV0LWV2ZW50cy1wcmV2ZW50LWluc2VydC1jb21wb3NpdGlvbi5odG1sIGFuZCBmYXN0
L2V2ZW50cy9iZWZvcmUtaW5wdXQtZXZlbnRzLXByZXZlbnQtcmVjb21wb3NpdGlvbi5odG1sIGFz
IHRoZXkgYXJlIHBhc3NpbmcuIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggM2QwODQzMGVhZjA2YzVh
ZjYxZTdlNzMwMDhhZWNmNjVhYzc5OWQ1Yy4uNTQ0Njk3YWY2MTI2NjRmNDMyODBhYjkzN2JiMmI1
MTg3MWI4MzczOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zOSw2ICszOSw3IEBAIGZhc3Qvdmll
d3BvcnQvd2F0Y2hvcyBbIFNraXAgXQogZmFzdC92aXN1YWwtdmlld3BvcnQvd2F0Y2hvcyBbIFNr
aXAgXQogZmFzdC92aXN1YWwtdmlld3BvcnQvdGlsZWQtZHJhd2luZyBbIFNraXAgXQogc3dpcGUg
WyBTa2lwIF0KK2h0dHAvdGVzdHMvc3dpcGUgWyBTa2lwIF0KIGZhc3Qvem9vbWluZy9pb3MgWyBT
a2lwIF0KIGZhc3QvZm9ybXMvaW9zIFsgU2tpcCBdCiBmYXN0L3ZpZXdwb3J0L2lvcyBbIFNraXAg
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zd2lwZS9yZXNvdXJjZXMvc3dp
cGUtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3dpcGUvcmVzb3VyY2VzL3N3aXBl
LXRlc3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTM2ZTgyMGRkNzRmNmU1NWM2ZDlkZjc3OGM3OGI2NDJhMTRl
MTE0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3dpcGUvcmVz
b3VyY2VzL3N3aXBlLXRlc3QuanMKQEAgLTAsMCArMSw4NCBAQAorZnVuY3Rpb24gc2hvdWxkQmUo
ZXhwZWN0ZWQsIGFjdHVhbCwgbWVzc2FnZSkKK3sKKyAgICBpZiAoZXhwZWN0ZWQgIT0gYWN0dWFs
KQorICAgICAgICBsb2coIkZhaWx1cmUuICIgKyBtZXNzYWdlICsgIiAoZXhwZWN0ZWQ6ICIgKyBl
eHBlY3RlZCArICIsIGFjdHVhbDogIiArIGFjdHVhbCArICIpIik7Cit9CisKK2Z1bmN0aW9uIGxv
ZyhzKQoreworICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2VbInN3aXBlTG9nZ2luZyJdICs9IHMgKyAi
PGJyLz4iOworfQorCitmdW5jdGlvbiBkdW1wTG9nKCkKK3sKKyAgICB3aW5kb3cuZG9jdW1lbnQu
Ym9keS5pbm5lckhUTUwgPSB3aW5kb3cubG9jYWxTdG9yYWdlWyJzd2lwZUxvZ2dpbmciXTsKK30K
KworZnVuY3Rpb24gdGVzdENvbXBsZXRlKCkKK3sKKyAgICBkdW1wTG9nKCk7CisgICAgd2luZG93
LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBpbml0aWFsaXplU3dpcGVU
ZXN0KCkKK3sKKyAgICB3aW5kb3cubG9jYWxTdG9yYWdlWyJzd2lwZUxvZ2dpbmciXSA9ICIiOwor
ICAgIHRlc3RSdW5uZXIuc2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZCh0cnVlKTsKKyAgICB0
ZXN0UnVubmVyLmNsZWFyQmFja0ZvcndhcmRMaXN0KCk7Cit9CisKK2Z1bmN0aW9uIGhhc0luaXRp
YWxpemVkU3dpcGVUZXN0KCkKK3sKKyAgICByZXR1cm4gKCJzd2lwZUxvZ2dpbmciIGluIHdpbmRv
dy5sb2NhbFN0b3JhZ2UpOworfQorCitmdW5jdGlvbiBzdGFydE1lYXN1cmluZ0R1cmF0aW9uKGtl
eSkKK3sKKyAgICB3aW5kb3cubG9jYWxTdG9yYWdlW2tleSArICJzd2lwZVN0YXJ0VGltZSJdID0g
RGF0ZS5ub3coKTsKK30KKworZnVuY3Rpb24gbWVhc3VyZWREdXJhdGlvblNob3VsZEJlTGVzc1Ro
YW4oa2V5LCB0aW1lSW5NUywgbWVzc2FnZSkKK3sKKyAgICBsZXQgZHVyYXRpb24gPSBEYXRlLm5v
dygpIC0gd2luZG93LmxvY2FsU3RvcmFnZVtrZXkgKyAic3dpcGVTdGFydFRpbWUiXTsKKyAgICBp
ZiAoZHVyYXRpb24gPj0gdGltZUluTVMpCisgICAgICAgIGxvZygiRmFpbHVyZS4gIiArIG1lc3Nh
Z2UgKyAiIChleHBlY3RlZDogIiArIHRpbWVJbk1TICsgIiwgYWN0dWFsOiAiICsgZHVyYXRpb24g
KyAiKSIpOworfQorCitmdW5jdGlvbiBzdGFydFN3aXBlR2VzdHVyZShjYWxsYmFjaykKK3sKKyAg
ICBsb2coInN0YXJ0U3dpcGVHZXN0dXJlIik7CisgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChg
CisgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICB1aUNvbnRyb2xsZXIuYmVnaW5CYWNrU3dpcGUo
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgp
OworICAgICAgICB9KTsKKyAgICB9KSgpO2AsIGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9KTsK
K30KKworZnVuY3Rpb24gY29tcGxldGVTd2lwZUdlc3R1cmUoY2FsbGJhY2spCit7CisgICAgbG9n
KCJjb21wbGV0ZVN3aXBlR2VzdHVyZSIpOworICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYAor
ICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgdWlDb250cm9sbGVyLmNvbXBsZXRlQmFja1N3aXBl
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUo
KTsKKyAgICAgICAgfSk7CisgICAgfSkoKTtgLCBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fSk7
Cit9CisKK2Z1bmN0aW9uIHBsYXlFdmVudFN0cmVhbShzdHJlYW0sIGNhbGxiYWNrKQoreworICAg
IGxvZygicGxheUV2ZW50U3RyZWFtIik7CisgICAgaWYgKHRlc3RSdW5uZXIuaXNJT1NGYW1pbHkp
IHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgdGVzdCBzaG91bGQgcHJvYmFibHkgbm90IGxvZyBw
bGF5RXZlbnRTdHJlYW0KKyAgICAgICAgLy8gb24gaU9TLCB3aGVyZSBpdCBkb2Vzbid0IGFjdHVh
bGx5IGRvIGl0LgorICAgICAgICBzZXRUaW1lb3V0KGNhbGxiYWNrLCAwKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAoZnVuY3Rpb24o
KSB7CisgICAgICAgIHVpQ29udHJvbGxlci5wbGF5QmFja0V2ZW50U3RyZWFtKFxgJHtzdHJlYW19
XGAsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxl
dGUoKTsKKyAgICAgICAgfSk7CisgICAgfSkoKTtgLCBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7
fSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N3aXBlL3N3aXBlLWJh
Y2std2l0aC1vdXRzdGFuZGluZy1sb2FkLWNhbmNlbGxhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRzdGFuZGluZy1sb2Fk
LWNhbmNlbGxhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODlkZWNmZDRjMzcxMjVjZmI1
NTk4MTE5Njg5YzNmMGM0YTFkODg0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc3dpcGUvc3dpcGUtYmFjay13aXRoLW91dHN0YW5kaW5nLWxvYWQtY2FuY2VsbGF0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK3N0YXJ0U3dpcGVHZXN0dXJlCitkaWRC
ZWdpblN3aXBlCitjb21wbGV0ZVN3aXBlR2VzdHVyZQord2lsbEVuZFN3aXBlCitkaWRFbmRTd2lw
ZQorZGlkUmVtb3ZlU3dpcGVTbmFwc2hvdAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N3aXBlL3N3aXBlLWJhY2std2l0aC1vdXRzdGFuZGluZy1sb2FkLWNhbmNlbGxhdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zd2lwZS9zd2lwZS1iYWNrLXdpdGgtb3V0
c3RhbmRpbmctbG9hZC1jYW5jZWxsYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGZkMzZhNzQ2ZWNj
MDljMzEyZWU3ZWEyYTMwMjY3NzI1NjFlZjA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zd2lwZS9zd2lwZS1iYWNrLXdpdGgtb3V0c3RhbmRpbmctbG9hZC1jYW5j
ZWxsYXRpb24uaHRtbApAQCAtMCwwICsxLDgzIEBACis8aGVhZD4KKzxzdHlsZT4KK2h0bWwgewor
ICAgIGZvbnQtc2l6ZTogMzJwdDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3N3aXBlLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGRpZEJlZ2luU3dp
cGVDYWxsYmFjaygpCit7CisgICAgbG9nKCJkaWRCZWdpblN3aXBlIik7CisKKyAgICBjb21wbGV0
ZVN3aXBlR2VzdHVyZSgpOworfQorCitmdW5jdGlvbiB3aWxsRW5kU3dpcGVDYWxsYmFjaygpCit7
CisgICAgbG9nKCJ3aWxsRW5kU3dpcGUiKTsKKworICAgIHNob3VsZEJlKGZhbHNlLCBpc0ZpcnN0
UGFnZSgpLCAiVGhlIHN3aXBlIHNob3VsZCBub3QgeWV0IGhhdmUgbmF2aWdhdGVkIGF3YXkgZnJv
bSB0aGUgc2Vjb25kIHBhZ2UuIik7Cit9CisKK2Z1bmN0aW9uIGRpZEVuZFN3aXBlQ2FsbGJhY2so
KQoreworICAgIGxvZygiZGlkRW5kU3dpcGUiKTsKKworICAgIHN0YXJ0TWVhc3VyaW5nRHVyYXRp
b24oInNuYXBzaG90UmVtb3ZhbCIpOworfQorCit2YXIgaGFzUmVtb3ZlZFNuYXBzaG90ID0gZmFs
c2U7CisKK2Z1bmN0aW9uIGRpZFJlbW92ZVN3aXBlU25hcHNob3RDYWxsYmFjaygpCit7CisgICAg
bG9nKCJkaWRSZW1vdmVTd2lwZVNuYXBzaG90Iik7CisKKyAgICBoYXNSZW1vdmVkU25hcHNob3Qg
PSB0cnVlOworICAgIAorICAgIHNob3VsZEJlKHRydWUsIGlzRmlyc3RQYWdlKCksICJUaGUgc3dp
cGUgc2hvdWxkIGhhdmUgbmF2aWdhdGVkIGJhY2sgdG8gdGhlIGZpcnN0IHBhZ2UuIik7CisKKyAg
ICB0ZXN0Q29tcGxldGUoKTsKK30KKworZnVuY3Rpb24gaXNGaXJzdFBhZ2UoKQoreworICAgIHJl
dHVybiB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCJzZWNvbmQiKSA9PSAtMTsKK30KKwor
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRl
ciB8fCAhd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhU
TUwgPSAiVGhpcyB0ZXN0IG11c3QgYmUgcnVuIGluIFdlYktpdFRlc3RSdW5uZXIuIjsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gaXNGaXJz
dFBhZ2UoKSA/ICJmaXJzdCIgOiAiPGlmcmFtZSBzcmM9Jy9yZXNvdXJjZXMvc2xvdy1pbWFnZS5w
aHAnPiI7CisKKyAgICBpZiAoaXNGaXJzdFBhZ2UoKSkgeworICAgICAgICBpZiAoaGFzSW5pdGlh
bGl6ZWRTd2lwZVRlc3QoKSkgeworICAgICAgICAgICAgc2hvdWxkQmUoZmFsc2UsIGhhc1JlbW92
ZWRTbmFwc2hvdCwgIlRoZSBzbmFwc2hvdCBzaG91bGQgbm90IGhhdmUgYmVlbiBzeW5jaHJvbm91
c2x5IHJlbW92ZWQgYmVjYXVzZSBvZiB0aGUgY2FuY2VsbGVkIGZvcndhcmQgbG9hZC4iKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGluaXRpYWxpemVTd2lwZVRl
c3QoKTsKKworICAgICAgICB0ZXN0UnVubmVyLmluc3RhbGxEaWRCZWdpblN3aXBlQ2FsbGJhY2so
ZGlkQmVnaW5Td2lwZUNhbGxiYWNrKTsKKyAgICAgICAgdGVzdFJ1bm5lci5pbnN0YWxsV2lsbEVu
ZFN3aXBlQ2FsbGJhY2sod2lsbEVuZFN3aXBlQ2FsbGJhY2spOworICAgICAgICB0ZXN0UnVubmVy
Lmluc3RhbGxEaWRFbmRTd2lwZUNhbGxiYWNrKGRpZEVuZFN3aXBlQ2FsbGJhY2spOworICAgICAg
ICB0ZXN0UnVubmVyLmluc3RhbGxEaWRSZW1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2soZGlkUmVt
b3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKTsKKworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbiAoKSB7IAorICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYg
PSB3aW5kb3cubG9jYXRpb24uaHJlZiArICI/c2Vjb25kIjsKKyAgICAgICAgfSwgMCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzdGFydFN3aXBlR2VzdHVyZSgpOworfTsKKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IGJlODFiNGMxNDRkZWY5ZTdkZTY5MDE2ZDJmNDljN2UxZTZj
YTc5YWMuLjMwYjY5OTcxNDdkYTIwM2NlZTI2MjZhNjM4NTM5ODM5YTE5ZGVkNTAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNSw2ICsxNSw3IEBAIGh0
dHAvdGVzdHMvcXVpY2tsb29rIFsgUGFzcyBdCiBtZWRpYS9pb3MgWyBQYXNzIF0KIHF1aWNrbG9v
ayBbIFBhc3MgXQogc3dpcGUgWyBQYXNzIF0KK2h0dHAvdGVzdHMvc3dpcGUgWyBQYXNzIF0KIAog
ZmFzdC9jc3MvYXBwZWFyYW5jZS1hcHBsZS1wYXktYnV0dG9uLmh0bWwgWyBQYXNzIF0KIGZhc3Qv
Y3NzL2FwcGVhcmFuY2UtYXBwbGUtcGF5LWJ1dHRvbi1ib3JkZXItcmFkaXVzLmh0bWwgWyBQYXNz
IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBiYTA2ODg0NmY4MGNmZGMyNTQ0Mjk3MDRjZWU5YjAyMzJiYTg5NDg0Li5mZDEyNTk1YTAwN2Fi
MjlhODI2NGNiMmFlYWU4YjliYjBhNGVhOGI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMCw2ICsyMCw3IEBAIGZhc3Qvd2ViLXNoYXJl
IFsgUGFzcyBdCiBzY3JvbGxpbmdjb29yZGluYXRvciBbIFBhc3MgXQogc2Nyb2xsaW5nY29vcmRp
bmF0b3IvaW9zIFsgU2tpcCBdCiBzd2lwZSBbIFBhc3MgXQoraHR0cC90ZXN0cy9zd2lwZSBbIFBh
c3MgXQogdGlsZWQtZHJhd2luZyBbIFBhc3MgXQogCiBmYXN0L2V2ZW50cy9hdXRvc2Nyb2xsLXdo
ZW4tem9vbWVkLmh0bWwgWyBQYXNzIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>