<?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>106548</bug_id>
          
          <creation_ts>2013-01-10 03:52:18 -0800</creation_ts>
          <short_desc>[chromium] move webpermissionclient related methods to TestRunner library</short_desc>
          <delta_ts>2013-01-10 13:04:22 -0800</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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dan Carney">dcarney</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>jochen</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>804228</commentid>
    <comment_count>0</comment_count>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2013-01-10 03:52:18 -0800</bug_when>
    <thetext>[chromium] move webpermissionclient related methods to TestRunner library</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804229</commentid>
    <comment_count>1</comment_count>
      <attachid>182108</attachid>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2013-01-10 03:52:58 -0800</bug_when>
    <thetext>Created attachment 182108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804232</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 03:56:30 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804269</commentid>
    <comment_count>3</comment_count>
      <attachid>182108</attachid>
    <who name="">jochen</who>
    <bug_when>2013-01-10 05:01:11 -0800</bug_when>
    <thetext>Comment on attachment 182108
Patch

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

&gt; Tools/DumpRenderTree/chromium/TestRunner/public/WebTestDelegate.h:81
&gt; +    // the location of the layout test in the file system.

no need to put the comment here

&gt; Tools/DumpRenderTree/chromium/TestRunner/public/WebTestRunner.h:65
&gt; +    virtual WebKit::WebPermissionClient* webPermissions() { return 0; }

should be const

&gt; Tools/DumpRenderTree/chromium/TestRunner/src/WebPermissions.cpp:35
&gt; +#include &quot;WebTestRunner.h&quot;

not needed?

&gt; Tools/DumpRenderTree/chromium/TestRunner/src/WebPermissions.cpp:42
&gt; +    : m_delegate(delegate)

just initialize this to 0 instead of passing 0 as parameter

&gt; Tools/DumpRenderTree/chromium/TestRunner/src/WebPermissions.h:39
&gt; +class WebTestRunner;

not needed?

&gt; Tools/DumpRenderTree/chromium/TestRunner/src/WebPermissions.h:69
&gt; +

remove empty line here

&gt; Tools/DumpRenderTree/chromium/TestRunner/src/WebPermissions.h:82
&gt; +}

and add one here after the }

&gt; Tools/DumpRenderTree/chromium/WebViewHost.cpp:1085
&gt; +    return normalizeLayoutTestURLInternal(url);

instead of copying the code, can you do m_shell-&gt;normalizeLayoutTestURL(urL)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804387</commentid>
    <comment_count>4</comment_count>
      <attachid>182143</attachid>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2013-01-10 08:13:50 -0800</bug_when>
    <thetext>Created attachment 182143
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804395</commentid>
    <comment_count>5</comment_count>
      <attachid>182143</attachid>
    <who name="">jochen</who>
    <bug_when>2013-01-10 08:23:18 -0800</bug_when>
    <thetext>Comment on attachment 182143
Patch

very nice!

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

&gt; Tools/ChangeLog:65
&gt; +        (normalizeLayoutTestURLInternal):

please update the changelog

&gt; Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp:86
&gt; +    , m_webPermissions(adoptPtr(new WebPermissions()))

nit no () required after WebPermissions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804406</commentid>
    <comment_count>6</comment_count>
      <attachid>182148</attachid>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2013-01-10 08:36:39 -0800</bug_when>
    <thetext>Created attachment 182148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804431</commentid>
    <comment_count>7</comment_count>
      <attachid>182148</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 09:16:14 -0800</bug_when>
    <thetext>Comment on attachment 182148
Patch

Rejecting attachment 182148 from commit-queue.

New failing tests:
inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html
Full output: http://queues.webkit.org/results/15766891</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804659</commentid>
    <comment_count>8</comment_count>
      <attachid>182148</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 13:04:16 -0800</bug_when>
    <thetext>Comment on attachment 182148
Patch

Clearing flags on attachment: 182148

Committed r139355: &lt;http://trac.webkit.org/changeset/139355&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804660</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 13:04:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182108</attachid>
            <date>2013-01-10 03:52:58 -0800</date>
            <delta_ts>2013-01-10 08:13:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106548-20130110125000.patch</filename>
            <type>text/plain</type>
            <size>44901</size>
            <attacher name="Dan Carney">dcarney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5Mjk0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDI2MzIyNGE2ZDU1MTAxMTFlZDk0N2VkZGIyZDI1ZmE5
Yjc4Yjg2MS4uZGU3ZjE5ZDBkMTE4ZWMxODU0OTI5YTk3MTI3NTM5YWQyOGEwZjBmOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcy
IEBACisyMDEzLTAxLTEwICBEYW4gQ2FybmV5ICA8ZGNhcm5leUBnb29nbGUuY29tPgorCisgICAg
ICAgIFtjaHJvbWl1bV0gbW92ZSB3ZWJwZXJtaXNzaW9uY2xpZW50IHJlbGF0ZWQgbWV0aG9kcyB0
byBUZXN0UnVubmVyIGxpYnJhcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNjU0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNwcDoKKyAgICAgICAg
KERSVFRlc3RSdW5uZXI6OkRSVFRlc3RSdW5uZXIpOgorICAgICAgICAoRFJUVGVzdFJ1bm5lcjo6
cmVzZXQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIu
aDoKKyAgICAgICAgKERSVFRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oOgorICAgICAgICAoV2Vi
VGVzdERlbGVnYXRlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3REZWxlZ2F0ZTo6
bm9ybWFsaXplTGF5b3V0VGVzdFVSTCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1bm5lci5oOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OndlYlBlcm1pc3Npb25zKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVu
bmVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OlRlc3RSdW5uZXIp
OgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6c2V0RGVsZWdhdGUpOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVy
OjpyZXNldCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjp3ZWJQZXJtaXNz
aW9ucyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpkdW1wUGVybWlzc2lv
bkNsaWVudENhbGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpz
ZXRJbWFnZXNBbGxvd2VkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OnNl
dFNjcmlwdHNBbGxvd2VkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OnNl
dFN0b3JhZ2VBbGxvd2VkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OnNl
dFBsdWdpbnNBbGxvd2VkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OnNl
dEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OlRlc3RSdW5uZXI6OnNldEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmg6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFRlc3RSdW5uZXIpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBlcm1pc3Npb25zLmNw
cDogUmVuYW1lZCBmcm9tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlBlcm1pc3Np
b25zLmNwcC4KKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cjo6V2ViUGVybWlzc2lvbnM6OldlYlBlcm1pc3Npb25zKToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlBlcm1pc3Npb25zOjp+V2ViUGVybWlzc2lvbnMpOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6V2ViUGVybWlzc2lvbnM6OmFsbG93SW1hZ2UpOgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cjo6V2ViUGVybWlzc2lvbnM6OmFsbG93U2NyaXB0RnJvbVNvdXJjZSk6CisgICAgICAgIChXZWJU
ZXN0UnVubmVyOjpXZWJQZXJtaXNzaW9uczo6YWxsb3dTdG9yYWdlKToKKyAgICAgICAgKFdlYlRl
c3RSdW5uZXI6OldlYlBlcm1pc3Npb25zOjphbGxvd1BsdWdpbnMpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViUGVybWlzc2lvbnM6OmFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudCk6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQZXJtaXNzaW9uczo6YWxsb3dSdW5uaW5nSW5z
ZWN1cmVDb250ZW50KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlBlcm1pc3Npb25zOjpz
ZXRJbWFnZXNBbGxvd2VkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlBlcm1pc3Npb25z
OjpzZXRTY3JpcHRzQWxsb3dlZCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQZXJtaXNz
aW9uczo6c2V0U3RvcmFnZUFsbG93ZWQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViUGVy
bWlzc2lvbnM6OnNldFBsdWdpbnNBbGxvd2VkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Oldl
YlBlcm1pc3Npb25zOjpzZXREaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZCk6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpXZWJQZXJtaXNzaW9uczo6c2V0UnVubmluZ0luc2VjdXJlQ29u
dGVudEFsbG93ZWQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViUGVybWlzc2lvbnM6OnNl
dERlbGVnYXRlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlBlcm1pc3Npb25zOjpzZXRE
dW1wQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlBlcm1pc3Npb25zOjpy
ZXNldCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViUGVybWlzc2lvbnMuaDogUmVuYW1lZCBmcm9tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlBlcm1pc3Npb25zLmguCisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAg
KFdlYlBlcm1pc3Npb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
U2hlbGwuY3BwOgorICAgICAgICAoVGVzdFNoZWxsOjppbml0aWFsaXplKToKKyAgICAgICAgKFRl
c3RTaGVsbDo6cmVzZXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChUZXN0U2hlbGw6OmNyZWF0
ZU5ld1dpbmRvdyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxs
Lmg6CisgICAgICAgIChUZXN0U2hlbGwpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKG5vcm1hbGl6ZUxheW91dFRlc3RVUkxJbnRl
cm5hbCk6CisgICAgICAgIChXZWJWaWV3SG9zdDo6bm9ybWFsaXplTGF5b3V0VGVzdFVSTCk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaDoKKyAgICAgICAg
KFdlYlZpZXdIb3N0KToKKwogMjAxMy0wMS0xMCAgVGltICdtaXRocm8nIEFuc2VsbCAgPG1pdGhy
b0BtaXRoaXMuY29tPgogCiAgICAgICAgIENvbnZlcnRpbmcgdG8gdW5pdHRlc3QyIHNvIHdlIGNh
biB1c2UgYXNzZXJ0SXRlbXNFcXVhbCwgbWFraW5nIHRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
RHVtcFJlbmRlclRyZWUuZ3lwaQppbmRleCA2ODFjMjJlNDllZWQ1YjMzZGI0OGRjZWI0ZTYwODEx
MWFiOWI4ZjgyLi4wNjU1MzJmMGIxMjhkZmM2MTU5MDJjN2E1ODBjZDI3NTlkZmM4NjcyIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKQEAgLTQ2LDggKzQ2LDYgQEAK
ICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0U2hlbGxTdHViLmNwcCcsCiAgICAgICAgICAgICAn
Y2hyb21pdW0vVGVzdFNoZWxsV2luLmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFNo
ZWxsWDExLmNwcCcsCi0gICAgICAgICAgICAnY2hyb21pdW0vV2ViUGVybWlzc2lvbnMuY3BwJywK
LSAgICAgICAgICAgICdjaHJvbWl1bS9XZWJQZXJtaXNzaW9ucy5oJywKICAgICAgICAgICAgICdj
aHJvbWl1bS9XZWJUaGVtZUNvbnRyb2xEUlRXaW4uY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1
bS9XZWJUaGVtZUNvbnRyb2xEUlRXaW4uaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vV2ViVGhl
bWVFbmdpbmVEUlRNYWMubW0nLApAQCAtOTEsNiArODksOCBAQAogICAgICAgICAgICAgJ2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvV2ViQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwJywKICAgICAgICAg
ICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJFdmVudFNlbmRlci5jcHAnLAorICAgICAg
ICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBlcm1pc3Npb25zLmNwcCcsCisgICAg
ICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUGVybWlzc2lvbnMuaCcsCiAgICAg
ICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwJywKICAg
ICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUYXNrLmNwcCcsCiAgICAgICAg
ICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwJywKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHAKaW5kZXgg
NzkwOTFiZDk4NzIxN2ZhNzJhZDkzODM0MTIxYjY3YzZhZDc4NDVhNC4uNGQwMDZlYzMzZDM1ZTQy
MzM0MzZhMzQxZDgzYTJkNzhmNjJlNjU1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHAKQEAgLTUyLDcgKzUyLDYgQEAKICNpbmNsdWRlICJX
ZWJJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJXZWJOb3Rp
ZmljYXRpb25QcmVzZW50ZXIuaCIKLSNpbmNsdWRlICJXZWJQZXJtaXNzaW9ucy5oIgogI2luY2x1
ZGUgIldlYlByaW50UGFyYW1zLmgiCiAjaW5jbHVkZSAiV2ViU2NyaXB0U291cmNlLmgiCiAjaW5j
bHVkZSAiV2ViU2VjdXJpdHlQb2xpY3kuaCIKQEAgLTEyMSw3ICsxMjAsNiBAQCBEUlRUZXN0UnVu
bmVyOjpEUlRUZXN0UnVubmVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgiZHVt
cFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayIsICZEUlRUZXN0UnVubmVyOjpkdW1wUHJvZ3Jlc3NG
aW5pc2hlZENhbGxiYWNrKTsKICAgICBiaW5kTWV0aG9kKCJkdW1wU2VsZWN0aW9uUmVjdCIsICZE
UlRUZXN0UnVubmVyOjpkdW1wU2VsZWN0aW9uUmVjdCk7CiAgICAgYmluZE1ldGhvZCgiZHVtcFN0
YXR1c0NhbGxiYWNrcyIsICZEUlRUZXN0UnVubmVyOjpkdW1wV2luZG93U3RhdHVzQ2hhbmdlcyk7
Ci0gICAgYmluZE1ldGhvZCgiZHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MiLCAmRFJUVGVz
dFJ1bm5lcjo6ZHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MpOwogICAgIGJpbmRNZXRob2Qo
ImVuYWJsZUF1dG9SZXNpemVNb2RlIiwgJkRSVFRlc3RSdW5uZXI6OmVuYWJsZUF1dG9SZXNpemVN
b2RlKTsKICAgICBiaW5kTWV0aG9kKCJldmFsdWF0ZUluV2ViSW5zcGVjdG9yIiwgJkRSVFRlc3RS
dW5uZXI6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IpOwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQpAQCAtMTM4LDggKzEzNiw2IEBAIERSVFRlc3RSdW5uZXI6OkRSVFRlc3RSdW5uZXIoVGVzdFNo
ZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9kKCJxdWV1ZU5vbkxvYWRpbmdTY3JpcHQiLCAmRFJU
VGVzdFJ1bm5lcjo6cXVldWVOb25Mb2FkaW5nU2NyaXB0KTsKICAgICBiaW5kTWV0aG9kKCJxdWV1
ZVJlbG9hZCIsICZEUlRUZXN0UnVubmVyOjpxdWV1ZVJlbG9hZCk7CiAgICAgYmluZE1ldGhvZCgi
cmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5IiwgJkRSVFRlc3RSdW5uZXI6OnJlcGFpbnRTd2VlcEhv
cml6b250YWxseSk7Ci0gICAgYmluZE1ldGhvZCgic2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNv
bnRlbnQiLCAmRFJUVGVzdFJ1bm5lcjo6c2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQp
OwotICAgIGJpbmRNZXRob2QoInNldEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50IiwgJkRS
VFRlc3RSdW5uZXI6OnNldEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KTsKICAgICBiaW5k
TWV0aG9kKCJzZXRBbHdheXNBY2NlcHRDb29raWVzIiwgJkRSVFRlc3RSdW5uZXI6OnNldEFsd2F5
c0FjY2VwdENvb2tpZXMpOwogICAgIGJpbmRNZXRob2QoInNldENsb3NlUmVtYWluaW5nV2luZG93
c1doZW5Db21wbGV0ZSIsICZEUlRUZXN0UnVubmVyOjpzZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NX
aGVuQ29tcGxldGUpOwogICAgIGJpbmRNZXRob2QoInNldEN1c3RvbVBvbGljeURlbGVnYXRlIiwg
JkRSVFRlc3RSdW5uZXI6OnNldEN1c3RvbVBvbGljeURlbGVnYXRlKTsKQEAgLTE3MCwxMCArMTY2
LDYgQEAgRFJUVGVzdFJ1bm5lcjo6RFJUVGVzdFJ1bm5lcihUZXN0U2hlbGwqIHNoZWxsKQogICAg
IGJpbmRNZXRob2QoIndhaXRGb3JQb2xpY3lEZWxlZ2F0ZSIsICZEUlRUZXN0UnVubmVyOjp3YWl0
Rm9yUG9saWN5RGVsZWdhdGUpOwogICAgIGJpbmRNZXRob2QoIndhaXRVbnRpbERvbmUiLCAmRFJU
VGVzdFJ1bm5lcjo6d2FpdFVudGlsRG9uZSk7CiAgICAgYmluZE1ldGhvZCgid2luZG93Q291bnQi
LCAmRFJUVGVzdFJ1bm5lcjo6d2luZG93Q291bnQpOwotICAgIGJpbmRNZXRob2QoInNldEltYWdl
c0FsbG93ZWQiLCAmRFJUVGVzdFJ1bm5lcjo6c2V0SW1hZ2VzQWxsb3dlZCk7Ci0gICAgYmluZE1l
dGhvZCgic2V0U2NyaXB0c0FsbG93ZWQiLCAmRFJUVGVzdFJ1bm5lcjo6c2V0U2NyaXB0c0FsbG93
ZWQpOwotICAgIGJpbmRNZXRob2QoInNldFN0b3JhZ2VBbGxvd2VkIiwgJkRSVFRlc3RSdW5uZXI6
OnNldFN0b3JhZ2VBbGxvd2VkKTsKLSAgICBiaW5kTWV0aG9kKCJzZXRQbHVnaW5zQWxsb3dlZCIs
ICZEUlRUZXN0UnVubmVyOjpzZXRQbHVnaW5zQWxsb3dlZCk7CiAKICAgICBiaW5kTWV0aG9kKCJz
ZXRTaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCIsICZEUlRUZXN0UnVu
bmVyOjpzZXRTaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCk7CiAKQEAg
LTI1NCwxMiArMjQ2LDYgQEAgdm9pZCBEUlRUZXN0UnVubmVyOjpkdW1wV2luZG93U3RhdHVzQ2hh
bmdlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KgogICAgIHJlc3VsdC0+c2V0
TnVsbCgpOwogfQogCi12b2lkIERSVFRlc3RSdW5uZXI6OmR1bXBQZXJtaXNzaW9uQ2xpZW50Q2Fs
bGJhY2tzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAg
ICBtX2R1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJhY2tzID0gdHJ1ZTsKLSAgICByZXN1bHQtPnNl
dE51bGwoKTsKLX0KLQogdm9pZCBEUlRUZXN0UnVubmVyOjp3YWl0VW50aWxEb25lKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBpZiAoIXdlYmtpdF9z
dXBwb3J0OjpCZWluZ0RlYnVnZ2VkKCkpCkBAIC00NDgsNyArNDM0LDYgQEAgdm9pZCBEUlRUZXN0
UnVubmVyOjpyZXNldCgpCiAgICAgbV9kdW1wQmFja0ZvcndhcmRMaXN0ID0gZmFsc2U7CiAgICAg
bV9kdW1wV2luZG93U3RhdHVzQ2hhbmdlcyA9IGZhbHNlOwogICAgIG1fZHVtcFNlbGVjdGlvblJl
Y3QgPSBmYWxzZTsKLSAgICBtX2R1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJhY2tzID0gZmFsc2U7
CiAgICAgbV93YWl0VW50aWxEb25lID0gZmFsc2U7CiAgICAgbV90ZXN0UmVwYWludCA9IGZhbHNl
OwogICAgIG1fc3dlZXBIb3Jpem9udGFsbHkgPSBmYWxzZTsKQEAgLTUzMCwzNCArNTE1LDYgQEAg
dm9pZCBEUlRUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3VtZW50cywgQ3BwVmFyaWFudCoKICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAotdm9p
ZCBEUlRUZXN0UnVubmVyOjpzZXRJbWFnZXNBbGxvd2VkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYg
YXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXpl
KCkgPiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2woKSkKLSAgICAgICAgbV9zaGVsbC0+d2ViUGVy
bWlzc2lvbnMoKS0+c2V0SW1hZ2VzQWxsb3dlZChhcmd1bWVudHNbMF0udG9Cb29sZWFuKCkpOwot
ICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCi12b2lkIERSVFRlc3RSdW5uZXI6OnNldFNjcmlw
dHNBbGxvd2VkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiBy
ZXN1bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5p
c0Jvb2woKSkKLSAgICAgICAgbV9zaGVsbC0+d2ViUGVybWlzc2lvbnMoKS0+c2V0U2NyaXB0c0Fs
bG93ZWQoYXJndW1lbnRzWzBdLnRvQm9vbGVhbigpKTsKLSAgICByZXN1bHQtPnNldE51bGwoKTsK
LX0KLQotdm9pZCBEUlRUZXN0UnVubmVyOjpzZXRTdG9yYWdlQWxsb3dlZChjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIGlmIChhcmd1
bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCi0gICAgICAgIG1fc2hl
bGwtPndlYlBlcm1pc3Npb25zKCktPnNldFN0b3JhZ2VBbGxvd2VkKGFyZ3VtZW50c1swXS50b0Jv
b2xlYW4oKSk7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19Ci0KLXZvaWQgRFJUVGVzdFJ1bm5l
cjo6c2V0UGx1Z2luc0FsbG93ZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENw
cFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJn
dW1lbnRzWzBdLmlzQm9vbCgpKQotICAgICAgICBtX3NoZWxsLT53ZWJQZXJtaXNzaW9ucygpLT5z
ZXRQbHVnaW5zQWxsb3dlZChhcmd1bWVudHNbMF0udG9Cb29sZWFuKCkpOwotICAgIHJlc3VsdC0+
c2V0TnVsbCgpOwotfQotCiB2b2lkIERSVFRlc3RSdW5uZXI6OnNldEN1c3RvbVBvbGljeURlbGVn
YXRlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQp
CiB7CiAgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2wo
KSkgewpAQCAtNzU4LDIyICs3MTUsNiBAQCB2b2lkIERSVFRlc3RSdW5uZXI6OnJlcGFpbnRTd2Vl
cEhvcml6b250YWxseShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KgogICAgIHJl
c3VsdC0+c2V0TnVsbCgpOwogfQogCi12b2lkIERSVFRlc3RSdW5uZXI6OnNldEFsbG93RGlzcGxh
eU9mSW5zZWN1cmVDb250ZW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBW
YXJpYW50KiByZXN1bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3Vt
ZW50c1swXS5pc0Jvb2woKSkKLSAgICAgICAgbV9zaGVsbC0+d2ViUGVybWlzc2lvbnMoKS0+c2V0
RGlzcGxheWluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQoYXJndW1lbnRzWzBdLnRvQm9vbGVhbigp
KTsKLQotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCi12b2lkIERSVFRlc3RSdW5uZXI6OnNl
dEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJn
dW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkg
PiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2woKSkKLSAgICAgICAgbV9zaGVsbC0+d2ViUGVybWlz
c2lvbnMoKS0+c2V0UnVubmluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQoYXJndW1lbnRzWzBdLnZh
bHVlLmJvb2xWYWx1ZSk7Ci0KLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0KLQogdm9pZCBEUlRU
ZXN0UnVubmVyOjpjbGVhckFsbERhdGFiYXNlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oCmluZGV4IGRiMjZj
ZGIyMjBiODE2NWY1MmEyNGYyZTlhYjE1MzAyNDhkYmI0ZGYuLjRjMjk2MTg0NzMxZjkzNDRmM2Fk
MTY2MTZiOGNhNGI0NTM3NzkwNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0RSVFRlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlRUZXN0UnVubmVyLmgKQEAgLTE2Miw5ICsxNjIsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCB0
ZXN0UmVwYWludChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9p
ZCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHkoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOwogCi0gICAgdm9pZCBzZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudChjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBzZXRBbGxvd1J1bm5p
bmdPZkluc2VjdXJlQ29udGVudChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
Ci0KICAgICAvLyBDbGVhcnMgYWxsIGRhdGFiYXNlcy4KICAgICB2b2lkIGNsZWFyQWxsRGF0YWJh
c2VzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICAvLyBTZXRzIHRo
ZSBkZWZhdWx0IHF1b3RhIGZvciBhbGwgb3JpZ2lucwpAQCAtMjAyLDEzICsxOTksNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCB3YXNNb2NrU3BlZWNoUmVjb2duaXRpb25BYm9ydGVkKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICNlbmRpZgogCi0gICAgLy8gV2ViUGVybWlzc2lv
bkNsaWVudCByZWxhdGVkLgotICAgIHZvaWQgc2V0SW1hZ2VzQWxsb3dlZChjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBzZXRTY3JpcHRzQWxsb3dlZChjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBzZXRTdG9yYWdlQWxs
b3dlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBzZXRQ
bHVnaW5zQWxsb3dlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAg
dm9pZCBkdW1wUGVybWlzc2lvbkNsaWVudENhbGxiYWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7Ci0KICAgICB2b2lkIHNldFNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRs
aW5nQmVmb3JlVW5sb2FkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCkBAIC0yMzEsNyArMjIxLDYgQEAgcHVibGljOgogICAg
IGJvb2wgc2hvdWxkRHVtcFN0YXR1c0NhbGxiYWNrcygpIHsgcmV0dXJuIG1fZHVtcFdpbmRvd1N0
YXR1c0NoYW5nZXM7IH0KICAgICBib29sIHNob3VsZER1bXBTZWxlY3Rpb25SZWN0KCkgeyByZXR1
cm4gbV9kdW1wU2VsZWN0aW9uUmVjdDsgfQogICAgIGJvb2wgc2hvdWxkRHVtcEJhY2tGb3J3YXJk
TGlzdCgpIHsgcmV0dXJuIG1fZHVtcEJhY2tGb3J3YXJkTGlzdDsgfQotICAgIGJvb2wgc2hvdWxk
RHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MoKSB7IHJldHVybiBtX2R1bXBQZXJtaXNzaW9u
Q2xpZW50Q2FsbGJhY2tzOyB9CiAgICAgYm9vbCBkZWZlck1haW5SZXNvdXJjZURhdGFMb2FkKCkg
eyByZXR1cm4gbV9kZWZlck1haW5SZXNvdXJjZURhdGFMb2FkOyB9CiAgICAgdm9pZCBzZXRTaG93
RGVidWdMYXllclRyZWUoYm9vbCB2YWx1ZSkgeyBtX3Nob3dEZWJ1Z0xheWVyVHJlZSA9IHZhbHVl
OyB9CiAgICAgdm9pZCBzZXRUaXRsZVRleHREaXJlY3Rpb24oV2ViS2l0OjpXZWJUZXh0RGlyZWN0
aW9uIGRpcikKQEAgLTMzNiwxMCArMzI1LDYgQEAgcHJpdmF0ZToKICAgICAvLyBJZiB0cnVlLCB0
aGUgdGVzdF9zaGVsbCB3aWxsIGR1bXAgYWxsIGNoYW5nZXMgdG8gd2luZG93LnN0YXR1cy4KICAg
ICBib29sIG1fZHVtcFdpbmRvd1N0YXR1c0NoYW5nZXM7CiAKLSAgICAvLyBJZiB0cnVlLCBvdXRw
dXQgYSBkZXNjcmlwdGl2ZSBsaW5lIGVhY2ggdGltZSBhIHBlcm1pc3Npb24gY2xpZW50Ci0gICAg
Ly8gY2FsbGJhY2sgaXMgaW52b2tlZC4gQ3VycmVudGx5IG9ubHkgaW1wbGVtZW50ZWQgZm9yIGFs
bG93SW1hZ2UuCi0gICAgYm9vbCBtX2R1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJhY2tzOwotCiAg
ICAgLy8gV2hlbiByZXNldCBpcyBjYWxsZWQsIGdvIHRocm91Z2ggYW5kIGNsb3NlIGFsbCBidXQg
dGhlIG1haW4gdGVzdCBzaGVsbAogICAgIC8vIHdpbmRvdy4gQnkgZGVmYXVsdCwgc2V0IHRvIHRy
dWUgYnV0IHRvZ2dsZWQgdG8gZmFsc2UgdXNpbmcKICAgICAvLyBzZXRDbG9zZVJlbWFpbmluZ1dp
bmRvd3NXaGVuQ29tcGxldGUoKS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKaW5k
ZXggYjJhOTNiYTllZTg2ZTY1NzgyYWUyOTE1MGY5ZjRkYWU1ZTIxNjdlNC4uYTU4MmM1OWUwYTNj
M2NmNDdmOGQ2M2JjN2EwZWI2ZDA3NDJjOGM0YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERl
bGVnYXRlLmgKQEAgLTc3LDYgKzc3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRD
dXJyZW50V2ViSW50ZW50UmVxdWVzdChjb25zdCBXZWJLaXQ6OldlYkludGVudFJlcXVlc3QmKSB7
IH07CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYkludGVudFJlcXVlc3QqIGN1cnJlbnRXZWJJbnRl
bnRSZXF1ZXN0KCkgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgc3RkOjpzdHJpbmcgbWFrZVVS
TEVycm9yRGVzY3JpcHRpb24oY29uc3QgV2ViS2l0OjpXZWJVUkxFcnJvciYpIHsgcmV0dXJuIHN0
ZDo6c3RyaW5nKCk7IH0KKyAgICAvLyBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9m
IGFuIFVSTCdzIHNwZWMgdGhhdCBkb2VzIG5vdCBkZXBlbmQgb24KKyAgICAvLyB0aGUgbG9jYXRp
b24gb2YgdGhlIGxheW91dCB0ZXN0IGluIHRoZSBmaWxlIHN5c3RlbS4KKyAgICB2aXJ0dWFsIHN0
ZDo6c3RyaW5nIG5vcm1hbGl6ZUxheW91dFRlc3RVUkwoY29uc3Qgc3RkOjpzdHJpbmcmKSB7IHJl
dHVybiBzdGQ6OnN0cmluZygpOyB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UnVubmVyLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UnVubmVy
LmgKaW5kZXggMTdiYmNiNzNkNzVjZWUyYjMyZGRlZDRlODEzZWJmYjViNzY3Yjk1NC4uYjhlOGY0
N2I1YWRkZTFhMzVkMWQ4MjdjZjIwMzNmNjg3NjdlZWIyMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1bm5lci5oCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRl
c3RSdW5uZXIuaApAQCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNz
IFdlYkFycmF5QnVmZmVyVmlldzsKK2NsYXNzIFdlYlBlcm1pc3Npb25DbGllbnQ7CiB9CiAKIG5h
bWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKQEAgLTYxLDYgKzYyLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlUmVxdWVzdENh
bGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViUGVybWlzc2lvbkNsaWVudCogd2ViUGVybWlzc2lvbnMo
KSB7IHJldHVybiAwOyB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGJiOTY1
ZjQ5YjUzMTNmYTFkY2UwYzJiYjk2Y2Y2ODZlZDY4MWRhOTQuLjhmMmNkMWNiYjdhZTNhY2VlMzdm
ZDJlMmIxMDU0YTI2YTQ5ODY0ZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCkBAIC00MSw2ICs0
MSw3IEBACiAjaW5jbHVkZSAiV2ViSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViSW50ZW50
LmgiCiAjaW5jbHVkZSAiV2ViSW50ZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYlBlcm1pc3Np
b25zLmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJTY3JpcHRT
b3VyY2UuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0eVBvbGljeS5oIgpAQCAtODIsNiArODMsNyBA
QCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKICAgICAsIG1fZGVsZWdhdGUoMCkKICAgICAsIG1f
d2ViVmlldygwKQogICAgICwgbV9pbnRlbnRDbGllbnQoYWRvcHRQdHIobmV3IEVtcHR5V2ViRGVs
aXZlcmVkSW50ZW50Q2xpZW50KSkKKyAgICAsIG1fd2ViUGVybWlzc2lvbnMoYWRvcHRQdHIobmV3
IFdlYlBlcm1pc3Npb25zKDApKSkKIHsKICAgICAvLyBNZXRob2RzIGltcGxlbWVudGVkIGluIHRl
cm1zIG9mIGNocm9taXVtJ3MgcHVibGljIFdlYktpdCBBUEkuCiAgICAgYmluZE1ldGhvZCgic2V0
VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzIiwgJlRlc3RSdW5uZXI6OnNldFRhYktleUN5Y2xl
c1Rocm91Z2hFbGVtZW50cyk7CkBAIC0xNDcsNiArMTQ5LDEzIEBAIFRlc3RSdW5uZXI6OlRlc3RS
dW5uZXIoKQogICAgIGJpbmRNZXRob2QoImR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MiLCAmVGVz
dFJ1bm5lcjo6ZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyk7CiAgICAgYmluZE1ldGhvZCgiZHVt
cFJlc291cmNlUmVxdWVzdENhbGxiYWNrcyIsICZUZXN0UnVubmVyOjpkdW1wUmVzb3VyY2VSZXF1
ZXN0Q2FsbGJhY2tzKTsKICAgICBiaW5kTWV0aG9kKCJkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVU
eXBlcyIsICZUZXN0UnVubmVyOjpkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyk7CisgICAg
YmluZE1ldGhvZCgiZHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MiLCAmVGVzdFJ1bm5lcjo6
ZHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MpOworICAgIGJpbmRNZXRob2QoInNldEltYWdl
c0FsbG93ZWQiLCAmVGVzdFJ1bm5lcjo6c2V0SW1hZ2VzQWxsb3dlZCk7CisgICAgYmluZE1ldGhv
ZCgic2V0U2NyaXB0c0FsbG93ZWQiLCAmVGVzdFJ1bm5lcjo6c2V0U2NyaXB0c0FsbG93ZWQpOwor
ICAgIGJpbmRNZXRob2QoInNldFN0b3JhZ2VBbGxvd2VkIiwgJlRlc3RSdW5uZXI6OnNldFN0b3Jh
Z2VBbGxvd2VkKTsKKyAgICBiaW5kTWV0aG9kKCJzZXRQbHVnaW5zQWxsb3dlZCIsICZUZXN0UnVu
bmVyOjpzZXRQbHVnaW5zQWxsb3dlZCk7CisgICAgYmluZE1ldGhvZCgic2V0QWxsb3dEaXNwbGF5
T2ZJbnNlY3VyZUNvbnRlbnQiLCAmVGVzdFJ1bm5lcjo6c2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3Vy
ZUNvbnRlbnQpOworICAgIGJpbmRNZXRob2QoInNldEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250
ZW50IiwgJlRlc3RSdW5uZXI6OnNldEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KTsKIAog
ICAgIC8vIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBpbnRlcmFjdCB3aXRoIHRoZSBXZWJUZXN0UHJv
eHkuCiAgICAgYmluZE1ldGhvZCgic2VuZFdlYkludGVudFJlc3BvbnNlIiwgJlRlc3RSdW5uZXI6
OnNlbmRXZWJJbnRlbnRSZXNwb25zZSk7CkBAIC0xOTMsNiArMjAyLDEyIEBAIFRlc3RSdW5uZXI6
On5UZXN0UnVubmVyKCkKIHsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXREZWxlZ2F0ZShXZWJU
ZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQoreworICAgIG1fZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKKyAg
ICBtX3dlYlBlcm1pc3Npb25zLT5zZXREZWxlZ2F0ZShkZWxlZ2F0ZSk7Cit9CisKIHZvaWQgVGVz
dFJ1bm5lcjo6cmVzZXQoKQogewogICAgIGlmIChtX3dlYlZpZXcpIHsKQEAgLTIzMSw2ICsyNDYs
OCBAQCB2b2lkIFRlc3RSdW5uZXI6OnJlc2V0KCkKICAgICBtX3BsYXRmb3JtTmFtZS5zZXQoImNo
cm9taXVtIik7CiAKICAgICBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb24gPSBXZWJVUkwoKTsKKwor
ICAgIG1fd2ViUGVybWlzc2lvbnMtPnJlc2V0KCk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0
VGVzdElzUnVubmluZyhib29sIHJ1bm5pbmcpCkBAIC0zMzMsNiArMzUwLDYxIEBAIGJvb2wgVGVz
dFJ1bm5lcjo6c2hvdWxkRHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoKSBjb25zdAogICAg
IHJldHVybiBtX3Rlc3RJc1J1bm5pbmcgJiYgbV9kdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBl
czsKIH0KIAorV2ViUGVybWlzc2lvbkNsaWVudCogVGVzdFJ1bm5lcjo6d2ViUGVybWlzc2lvbnMo
KQoreworICAgIHJldHVybiBtX3dlYlBlcm1pc3Npb25zLmdldCgpOworfQorCit2b2lkIFRlc3RS
dW5uZXI6OmR1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJhY2tzKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICBtX3dlYlBlcm1pc3Npb25zLT5zZXREdW1w
Q2FsbGJhY2tzKHRydWUpOworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworfQorCit2b2lkIFRlc3RS
dW5uZXI6OnNldEltYWdlc0FsbG93ZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMs
IENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYg
YXJndW1lbnRzWzBdLmlzQm9vbCgpKQorICAgICAgICBtX3dlYlBlcm1pc3Npb25zLT5zZXRJbWFn
ZXNBbGxvd2VkKGFyZ3VtZW50c1swXS50b0Jvb2xlYW4oKSk7CisgICAgcmVzdWx0LT5zZXROdWxs
KCk7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U2NyaXB0c0FsbG93ZWQoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICBpZiAoYXJn
dW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQorICAgICAgICBtX3dl
YlBlcm1pc3Npb25zLT5zZXRTY3JpcHRzQWxsb3dlZChhcmd1bWVudHNbMF0udG9Cb29sZWFuKCkp
OworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFN0b3Jh
Z2VBbGxvd2VkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiBy
ZXN1bHQpCit7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5p
c0Jvb2woKSkKKyAgICAgICAgbV93ZWJQZXJtaXNzaW9ucy0+c2V0U3RvcmFnZUFsbG93ZWQoYXJn
dW1lbnRzWzBdLnRvQm9vbGVhbigpKTsKKyAgICByZXN1bHQtPnNldE51bGwoKTsKK30KKwordm9p
ZCBUZXN0UnVubmVyOjpzZXRQbHVnaW5zQWxsb3dlZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFy
Z3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgp
ID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCisgICAgICAgIG1fd2ViUGVybWlzc2lvbnMt
PnNldFBsdWdpbnNBbGxvd2VkKGFyZ3VtZW50c1swXS50b0Jvb2xlYW4oKSk7CisgICAgcmVzdWx0
LT5zZXROdWxsKCk7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0QWxsb3dEaXNwbGF5T2ZJbnNl
Y3VyZUNvbnRlbnQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQq
IHJlc3VsdCkKK3sKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBd
LmlzQm9vbCgpKQorICAgICAgICBtX3dlYlBlcm1pc3Npb25zLT5zZXREaXNwbGF5aW5nSW5zZWN1
cmVDb250ZW50QWxsb3dlZChhcmd1bWVudHNbMF0udG9Cb29sZWFuKCkpOworCisgICAgcmVzdWx0
LT5zZXROdWxsKCk7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0QWxsb3dSdW5uaW5nT2ZJbnNl
Y3VyZUNvbnRlbnQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQq
IHJlc3VsdCkKK3sKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBd
LmlzQm9vbCgpKQorICAgICAgICBtX3dlYlBlcm1pc3Npb25zLT5zZXRSdW5uaW5nSW5zZWN1cmVD
b250ZW50QWxsb3dlZChhcmd1bWVudHNbMF0udmFsdWUuYm9vbFZhbHVlKTsKKworICAgIHJlc3Vs
dC0+c2V0TnVsbCgpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnNldFRhYktleUN5Y2xlc1Rocm91
Z2hFbGVtZW50cyhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCog
cmVzdWx0KQogewogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0u
aXNCb29sKCkpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKaW5kZXggYmYxNTUxODI1NGQwYWUyYjU1MmUxYWQw
MmRkYTRjOTg2M2YxMjRhZi4uMGZiNWI2ZWZlNWJhMTBmY2ZjZjE3Y2Y3NGYwN2I3MTIwMzFlMDUz
OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RSdW5uZXIuaApAQCAtNDQsNiArNDQsNyBAQCBjbGFzcyBXZWJWaWV3Owog
CiBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CiAKK2NsYXNzIFdlYlBlcm1pc3Npb25zOwogY2xh
c3MgV2ViVGVzdERlbGVnYXRlOwogCiBjbGFzcyBUZXN0UnVubmVyIDogcHVibGljIENwcEJvdW5k
Q2xhc3MsIHB1YmxpYyBXZWJUZXN0UnVubmVyIHsKQEAgLTUzLDcgKzU0LDcgQEAgcHVibGljOgog
CiAgICAgLy8gRklYTUU6IG9uY2UgRFJUVGVzdFJ1bm5lciBpcyBtb3ZlZCBlbnRpcmVseSB0byB0
aGlzIGNsYXNzLCBjaGFuZ2UgdGhpcwogICAgIC8vIG1ldGhvZCB0byB0YWtlIGEgVGVzdERlbGVn
YXRlKiBpbnN0ZWFkLgotICAgIHZvaWQgc2V0RGVsZWdhdGUoV2ViVGVzdERlbGVnYXRlKiBkZWxl
Z2F0ZSkgeyBtX2RlbGVnYXRlID0gZGVsZWdhdGU7IH0KKyAgICB2b2lkIHNldERlbGVnYXRlKFdl
YlRlc3REZWxlZ2F0ZSopOwogICAgIHZvaWQgc2V0V2ViVmlldyhXZWJLaXQ6OldlYlZpZXcqIHdl
YlZpZXcpIHsgbV93ZWJWaWV3ID0gd2ViVmlldzsgfQogCiAgICAgdm9pZCByZXNldCgpOwpAQCAt
NzksNiArODAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBSZXNvdXJj
ZUxvYWRDYWxsYmFja3MoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
RHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcygpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcygpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50KiB3ZWJQZXJtaXNz
aW9ucygpIE9WRVJSSURFOwogCiBwcm90ZWN0ZWQ6CiAgICAgLy8gRklYTUU6IG1ha2UgdGhlc2Ug
cHJpdmF0ZSBvbmNlIHRoZSBtb3ZlIGZyb20gRFJUVGVzdFJ1bm5lciB0byBUZXN0UnVubmVyCkBA
IC0yNTksNiArMjYxLDE1IEBAIHByaXZhdGU6CiAgICAgLy8gdGhhdCBtYXkgYmUgcHJlc2VudC4K
ICAgICB2b2lkIGR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqKTsKIAorICAgIC8vIFdlYlBlcm1pc3Npb25DbGllbnQgcmVsYXRl
ZC4KKyAgICB2b2lkIHNldEltYWdlc0FsbG93ZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCopOworICAgIHZvaWQgc2V0U2NyaXB0c0FsbG93ZWQoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgc2V0U3RvcmFnZUFsbG93ZWQoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgc2V0UGx1Z2luc0FsbG93ZWQo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgc2V0QWxsb3dE
aXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOworICAgIHZvaWQgc2V0QWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgZHVtcFBlcm1pc3Npb25DbGll
bnRDYWxsYmFja3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworCiAgICAg
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vCiAgICAgLy8gTWV0aG9kcyBpbnRlcmFjdGluZyB3aXRoIHRoZSBX
ZWJUZXN0UHJveHkKIApAQCAtMzY5LDYgKzM4MCw5IEBAIHByaXZhdGU6CiAKICAgICAvLyBNb2Nr
IG9iamVjdCBmb3IgdGVzdGluZyBkZWxpdmVyaW5nIHdlYiBpbnRlbnRzLgogICAgIE93blB0cjxX
ZWJLaXQ6OldlYkRlbGl2ZXJlZEludGVudENsaWVudD4gbV9pbnRlbnRDbGllbnQ7CisKKyAgICAv
LyBXZWJQZXJtaXNzaW9uQ2xpZW50IG1vY2sgb2JqZWN0LgorICAgIE93blB0cjxXZWJQZXJtaXNz
aW9ucz4gbV93ZWJQZXJtaXNzaW9uczsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBlcm1pc3Npb25zLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBlcm1pc3Npb25z
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hYjIwN2UxYWY3NjRmMmNjNmQ3OWMyMDFkNDZjNTEzMzBiYTYwYjk1
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvV2ViUGVybWlzc2lvbnMuY3BwCkBAIC0wLDAgKzEsMTM4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYlBlcm1pc3Npb25zLmgiCisKKyNpbmNsdWRlICJXZWJUZXN0
RGVsZWdhdGUuaCIKKyNpbmNsdWRlICJXZWJUZXN0UnVubmVyLmgiCisjaW5jbHVkZSAicGxhdGZv
cm0vV2ViQ1N0cmluZy5oIgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTC5oIgorCituYW1lc3Bh
Y2UgV2ViVGVzdFJ1bm5lciB7CisKK1dlYlBlcm1pc3Npb25zOjpXZWJQZXJtaXNzaW9ucyhXZWJU
ZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQorICAgIDogbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKK3sKKyAg
ICByZXNldCgpOworfQorCitXZWJQZXJtaXNzaW9uczo6fldlYlBlcm1pc3Npb25zKCkKK3sKK30K
KworYm9vbCBXZWJQZXJtaXNzaW9uczo6YWxsb3dJbWFnZShXZWJLaXQ6OldlYkZyYW1lKiwgYm9v
bCBlbmFibGVkUGVyU2V0dGluZ3MsIGNvbnN0IFdlYktpdDo6V2ViVVJMJiBpbWFnZVVSTCkKK3sK
KyAgICBib29sIGFsbG93ZWQgPSBlbmFibGVkUGVyU2V0dGluZ3MgJiYgbV9pbWFnZXNBbGxvd2Vk
OworICAgIGlmIChtX2R1bXBDYWxsYmFja3MgJiYgbV9kZWxlZ2F0ZSkKKyAgICAgICAgbV9kZWxl
Z2F0ZS0+cHJpbnRNZXNzYWdlKHN0ZDo6c3RyaW5nKCJQRVJNSVNTSU9OIENMSUVOVDogYWxsb3dJ
bWFnZSgiKSArIG1fZGVsZWdhdGUtPm5vcm1hbGl6ZUxheW91dFRlc3RVUkwoaW1hZ2VVUkwuc3Bl
YygpKSArICIpOiAiICsgKGFsbG93ZWQgPyAidHJ1ZSIgOiAiZmFsc2UiKSArICJcbiIpOworICAg
IHJldHVybiBhbGxvd2VkOworfQorCitib29sIFdlYlBlcm1pc3Npb25zOjphbGxvd1NjcmlwdEZy
b21Tb3VyY2UoV2ViS2l0OjpXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBjb25z
dCBXZWJLaXQ6OldlYlVSTCYgc2NyaXB0VVJMKQoreworICAgIGJvb2wgYWxsb3dlZCA9IGVuYWJs
ZWRQZXJTZXR0aW5ncyAmJiBtX3NjcmlwdHNBbGxvd2VkOworICAgIGlmIChtX2R1bXBDYWxsYmFj
a3MgJiYgbV9kZWxlZ2F0ZSkKKyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKHN0ZDo6
c3RyaW5nKCJQRVJNSVNTSU9OIENMSUVOVDogYWxsb3dTY3JpcHRGcm9tU291cmNlKCIpICsgbV9k
ZWxlZ2F0ZS0+bm9ybWFsaXplTGF5b3V0VGVzdFVSTChzY3JpcHRVUkwuc3BlYygpKSArICIpOiAi
ICsgKGFsbG93ZWQgPyAidHJ1ZSIgOiAiZmFsc2UiKSArICJcbiIpOworICAgIHJldHVybiBhbGxv
d2VkOworfQorCitib29sIFdlYlBlcm1pc3Npb25zOjphbGxvd1N0b3JhZ2UoV2ViS2l0OjpXZWJG
cmFtZSosIGJvb2wpCit7CisgICAgcmV0dXJuIG1fc3RvcmFnZUFsbG93ZWQ7Cit9CisKK2Jvb2wg
V2ViUGVybWlzc2lvbnM6OmFsbG93UGx1Z2lucyhXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBlbmFi
bGVkUGVyU2V0dGluZ3MpCit7CisgICAgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5ncyAmJiBtX3Bs
dWdpbnNBbGxvd2VkOworfQorCitib29sIFdlYlBlcm1pc3Npb25zOjphbGxvd0Rpc3BsYXlpbmdJ
bnNlY3VyZUNvbnRlbnQoV2ViS2l0OjpXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRpbmdz
LCBjb25zdCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luJiwgY29uc3QgV2ViS2l0OjpXZWJVUkwm
KQoreworICAgIHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3MgfHwgbV9kaXNwbGF5aW5nSW5zZWN1
cmVDb250ZW50QWxsb3dlZDsKK30KKworYm9vbCBXZWJQZXJtaXNzaW9uczo6YWxsb3dSdW5uaW5n
SW5zZWN1cmVDb250ZW50KFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5n
cywgY29uc3QgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFdlYktpdDo6V2ViVVJM
JikKK3sKKyAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzIHx8IG1fcnVubmluZ0luc2VjdXJl
Q29udGVudEFsbG93ZWQ7Cit9CisKK3ZvaWQgV2ViUGVybWlzc2lvbnM6OnNldEltYWdlc0FsbG93
ZWQoYm9vbCBpbWFnZXNBbGxvd2VkKQoreworICAgIG1faW1hZ2VzQWxsb3dlZCA9IGltYWdlc0Fs
bG93ZWQ7Cit9CisKK3ZvaWQgV2ViUGVybWlzc2lvbnM6OnNldFNjcmlwdHNBbGxvd2VkKGJvb2wg
c2NyaXB0c0FsbG93ZWQpCit7CisgICAgbV9zY3JpcHRzQWxsb3dlZCA9IHNjcmlwdHNBbGxvd2Vk
OworfQorCit2b2lkIFdlYlBlcm1pc3Npb25zOjpzZXRTdG9yYWdlQWxsb3dlZChib29sIHN0b3Jh
Z2VBbGxvd2VkKQoreworICAgIG1fc3RvcmFnZUFsbG93ZWQgPSBzdG9yYWdlQWxsb3dlZDsKK30K
Kwordm9pZCBXZWJQZXJtaXNzaW9uczo6c2V0UGx1Z2luc0FsbG93ZWQoYm9vbCBwbHVnaW5zQWxs
b3dlZCkKK3sKKyAgICBtX3BsdWdpbnNBbGxvd2VkID0gcGx1Z2luc0FsbG93ZWQ7Cit9CisKK3Zv
aWQgV2ViUGVybWlzc2lvbnM6OnNldERpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkKGJv
b2wgYWxsb3dlZCkKK3sKKyAgICBtX2Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkID0g
YWxsb3dlZDsKK30KKwordm9pZCBXZWJQZXJtaXNzaW9uczo6c2V0UnVubmluZ0luc2VjdXJlQ29u
dGVudEFsbG93ZWQoYm9vbCBhbGxvd2VkKQoreworICAgIG1fcnVubmluZ0luc2VjdXJlQ29udGVu
dEFsbG93ZWQgPSBhbGxvd2VkOworfQorCit2b2lkIFdlYlBlcm1pc3Npb25zOjpzZXREZWxlZ2F0
ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQoreworICAgIG1fZGVsZWdhdGUgPSBkZWxlZ2F0
ZTsKK30KKwordm9pZCBXZWJQZXJtaXNzaW9uczo6c2V0RHVtcENhbGxiYWNrcyhib29sIGR1bXBD
YWxsYmFja3MpCit7CisgICAgbV9kdW1wQ2FsbGJhY2tzID0gZHVtcENhbGxiYWNrczsKK30KKwor
dm9pZCBXZWJQZXJtaXNzaW9uczo6cmVzZXQoKQoreworICAgIG1fZHVtcENhbGxiYWNrcyA9IGZh
bHNlOworICAgIG1faW1hZ2VzQWxsb3dlZCA9IHRydWU7CisgICAgbV9zY3JpcHRzQWxsb3dlZCA9
IHRydWU7CisgICAgbV9zdG9yYWdlQWxsb3dlZCA9IHRydWU7CisgICAgbV9wbHVnaW5zQWxsb3dl
ZCA9IHRydWU7CisgICAgbV9kaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZCA9IGZhbHNl
OworICAgIG1fcnVubmluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQgPSBmYWxzZTsKK30KKworfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViUGVybWlzc2lvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1dlYlBlcm1pc3Npb25zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY0MjdiYjJkZDg5ZGY0M2EyOThi
MGM1ZjgyZDdkMzNlZmVhNTI3YQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBlcm1pc3Npb25zLmgKQEAgLTAsMCArMSw4
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2ViUGVybWlzc2lvbnNfaAorI2RlZmluZSBXZWJQZXJtaXNzaW9uc19oCisK
KyNpbmNsdWRlICJXZWJQZXJtaXNzaW9uQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJUZXN0UnVu
bmVyIHsKKworY2xhc3MgV2ViVGVzdERlbGVnYXRlOworY2xhc3MgV2ViVGVzdFJ1bm5lcjsKKwor
Y2xhc3MgV2ViUGVybWlzc2lvbnMgOiBwdWJsaWMgV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50
IHsKK3B1YmxpYzoKKyAgICBXZWJQZXJtaXNzaW9ucyhXZWJUZXN0RGVsZWdhdGUqKTsKKyAgICB2
aXJ0dWFsIH5XZWJQZXJtaXNzaW9ucygpOworCisgICAgLy8gT3ZlcnJpZGUgV2ViUGVybWlzc2lv
bkNsaWVudCBtZXRob2RzLgorICAgIHZpcnR1YWwgYm9vbCBhbGxvd0ltYWdlKFdlYktpdDo6V2Vi
RnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgY29uc3QgV2ViS2l0OjpXZWJVUkwmIGlt
YWdlVVJMKTsKKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTY3JpcHRGcm9tU291cmNlKFdlYktpdDo6
V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgY29uc3QgV2ViS2l0OjpXZWJVUkwm
IHNjcmlwdFVSTCk7CisgICAgdmlydHVhbCBib29sIGFsbG93U3RvcmFnZShXZWJLaXQ6OldlYkZy
YW1lKiwgYm9vbCBsb2NhbCk7CisgICAgdmlydHVhbCBib29sIGFsbG93UGx1Z2lucyhXZWJLaXQ6
OldlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpOworICAgIHZpcnR1YWwgYm9vbCBh
bGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoV2ViS2l0OjpXZWJGcmFtZSosIGJvb2wgZW5h
YmxlZFBlclNldHRpbmdzLCBjb25zdCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luJiwgY29uc3Qg
V2ViS2l0OjpXZWJVUkwmKTsKKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dSdW5uaW5nSW5zZWN1cmVD
b250ZW50KFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgY29uc3Qg
V2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFdlYktpdDo6V2ViVVJMJik7CisKKyAg
ICAvLyBIb29rcyB0byBzZXQgdGhlIGRpZmZlcmVudCBwb2xpY2llcy4KKyAgICB2b2lkIHNldElt
YWdlc0FsbG93ZWQoYm9vbCk7CisgICAgdm9pZCBzZXRTY3JpcHRzQWxsb3dlZChib29sKTsKKyAg
ICB2b2lkIHNldFN0b3JhZ2VBbGxvd2VkKGJvb2wpOworICAgIHZvaWQgc2V0UGx1Z2luc0FsbG93
ZWQoYm9vbCk7CisgICAgdm9pZCBzZXREaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZChi
b29sKTsKKyAgICB2b2lkIHNldFJ1bm5pbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkKGJvb2wpOwor
CisgICAgLy8gUmVzZXRzIHRoZSBwb2xpY3kgdG8gYWxsb3cgZXZlcnl0aGluZywgZXhjZXB0IGZv
ciBydW5uaW5nIGluc2VjdXJlIGNvbnRlbnQuCisgICAgdm9pZCByZXNldCgpOworCisgICAgdm9p
ZCBzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqKTsKKyAgICB2b2lkIHNldER1bXBDYWxsYmFj
a3MoYm9vbCk7CisKK3ByaXZhdGU6CisKKyAgICBXZWJUZXN0RGVsZWdhdGUqIG1fZGVsZWdhdGU7
CisKKyAgICBib29sIG1fZHVtcENhbGxiYWNrczsKKworICAgIGJvb2wgbV9pbWFnZXNBbGxvd2Vk
OworICAgIGJvb2wgbV9zY3JpcHRzQWxsb3dlZDsKKyAgICBib29sIG1fc3RvcmFnZUFsbG93ZWQ7
CisgICAgYm9vbCBtX3BsdWdpbnNBbGxvd2VkOworICAgIGJvb2wgbV9kaXNwbGF5aW5nSW5zZWN1
cmVDb250ZW50QWxsb3dlZDsKKyAgICBib29sIG1fcnVubmluZ0luc2VjdXJlQ29udGVudEFsbG93
ZWQ7Cit9OworCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RTaGVsbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
U2hlbGwuY3BwCmluZGV4IDM3ZDBiNmQxYjU0ZGNhNjFlMGY3MmZiZGQ5MzcwZDQzYWU2OTc5NTAu
LjQ4ZThiZTFkMWMzOTkxZDA5MTk3NzQ3NTdlMGIzNGZkNTMwY2JkYTggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcApAQCAtNDMsNyArNDMsNiBAQAogI2lu
Y2x1ZGUgIldlYkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiV2ViSURCRmFjdG9yeS5oIgogI2lu
Y2x1ZGUgIldlYlRlc3RpbmdTdXBwb3J0LmgiCi0jaW5jbHVkZSAiV2ViUGVybWlzc2lvbnMuaCIK
ICNpbmNsdWRlICJXZWJSdW50aW1lRmVhdHVyZXMuaCIKICNpbmNsdWRlICJXZWJTY3JpcHRDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKQEAgLTE2MSw3ICsxNjAsNiBAQCBU
ZXN0U2hlbGw6OlRlc3RTaGVsbCgpCiAKIHZvaWQgVGVzdFNoZWxsOjppbml0aWFsaXplKCkKIHsK
LSAgICBtX3dlYlBlcm1pc3Npb25zID0gYWRvcHRQdHIobmV3IFdlYlBlcm1pc3Npb25zKHRoaXMp
KTsKICAgICBtX3Rlc3RJbnRlcmZhY2VzID0gYWRvcHRQdHIobmV3IFdlYlRlc3RJbnRlcmZhY2Vz
KCkpOwogICAgIG1fdGVzdFJ1bm5lciA9IGFkb3B0UHRyKG5ldyBEUlRUZXN0UnVubmVyKHRoaXMp
KTsKICAgICBtX3Rlc3RJbnRlcmZhY2VzLT5zZXRUZXN0UnVubmVyKG1fdGVzdFJ1bm5lci5nZXQo
KSk7CkBAIC0zMTgsNyArMzE2LDYgQEAgdm9pZCBUZXN0U2hlbGw6OnJlc2l6ZVdpbmRvd0ZvclRl
c3QoV2ViVmlld0hvc3QqIHdpbmRvdywgY29uc3QgV2ViVVJMJiB1cmwpCiB2b2lkIFRlc3RTaGVs
bDo6cmVzZXRUZXN0Q29udHJvbGxlcigpCiB7CiAgICAgcmVzZXRXZWJTZXR0aW5ncygqd2ViVmll
dygpKTsKLSAgICBtX3dlYlBlcm1pc3Npb25zLT5yZXNldCgpOwogICAgIG1fdGVzdEludGVyZmFj
ZXMtPnJlc2V0QWxsKCk7CiAgICAgbV90ZXN0UnVubmVyLT5yZXNldCgpOwogICAgIG1fd2ViVmll
d0hvc3QtPnJlc2V0KCk7CkBAIC03NjMsNyArNzYwLDcgQEAgV2ViVmlld0hvc3QqIFRlc3RTaGVs
bDo6Y3JlYXRlTmV3V2luZG93KGNvbnN0IFdlYktpdDo6V2ViVVJMJiB1cmwsIERSVERldlRvb2xz
QWcKICAgICAgICAgaG9zdC0+c2V0RGVsZWdhdGUoaG9zdCk7CiAgICAgaG9zdC0+c2V0UHJveHko
aG9zdCk7CiAgICAgV2ViVmlldyogdmlldyA9IFdlYlZpZXc6OmNyZWF0ZShob3N0KTsKLSAgICB2
aWV3LT5zZXRQZXJtaXNzaW9uQ2xpZW50KHdlYlBlcm1pc3Npb25zKCkpOworICAgIHZpZXctPnNl
dFBlcm1pc3Npb25DbGllbnQobV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT53ZWJQZXJt
aXNzaW9ucygpKTsKICAgICB2aWV3LT5zZXREZXZUb29sc0FnZW50Q2xpZW50KGRldlRvb2xzQWdl
bnQpOwogICAgIGhvc3QtPnNldFdlYldpZGdldCh2aWV3KTsKICAgICBtX3ByZWZzLmFwcGx5VG8o
dmlldyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hl
bGwuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCmluZGV4IDFj
NmRkOGZkN2JkYWZlMDZkYWNkZTQwNTY0NTZiMzZhNDFmZGVhNmIuLjViZjU0Y2JiYjgzMDhjMjhk
NDUwMDY0NGQ1MDIwMTI5YzQzOWE4ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RTaGVsbC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RTaGVsbC5oCkBAIC01Nyw3ICs1Nyw2IEBAIGNsYXNzIERSVERldlRvb2xzQWdlbnQ7CiBj
bGFzcyBEUlREZXZUb29sc0NhbGxBcmdzOwogY2xhc3MgRFJURGV2VG9vbHNDbGllbnQ7CiBjbGFz
cyBNb2NrV2ViUHJlcmVuZGVyaW5nU3VwcG9ydDsKLWNsYXNzIFdlYlBlcm1pc3Npb25zOwogCiBz
dHJ1Y3QgVGVzdFBhcmFtcyB7CiAgICAgYm9vbCBkdW1wVHJlZTsKQEAgLTk2LDggKzk1LDYgQEAg
cHVibGljOgogICAgIFdlYlRlc3RSdW5uZXI6OldlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcygp
IHsgcmV0dXJuICZtX3ByZWZzOyB9CiAgICAgdm9pZCBhcHBseVByZWZlcmVuY2VzKCkgeyBtX3By
ZWZzLmFwcGx5VG8obV93ZWJWaWV3KTsgfQogCi0gICAgV2ViUGVybWlzc2lvbnMqIHdlYlBlcm1p
c3Npb25zKCkgeyByZXR1cm4gbV93ZWJQZXJtaXNzaW9ucy5nZXQoKTsgfQotCiAgICAgdm9pZCBi
aW5kSlNPYmplY3RzVG9XaW5kb3coV2ViS2l0OjpXZWJGcmFtZSopOwogICAgIHZvaWQgcnVuRmls
ZVRlc3QoY29uc3QgVGVzdFBhcmFtcyYsIGJvb2wgc2hvdWxkRHVtcFBpeGVsVGVzdHMpOwogICAg
IHZvaWQgY2FsbEpTR0MoKTsKQEAgLTIxMCw3ICsyMDcsNiBAQCBwcml2YXRlOgogCiAgICAgLy8g
QmUgY2FyZWZ1bCBvZiB0aGUgZGVzdHJ1Y3Rpb24gb3JkZXIgb2YgdGhlIGZvbGxvd2luZyBvYmpl
Y3RzLgogICAgIFRlc3RFdmVudFByaW50ZXIgbV9wcmludGVyOwotICAgIE93blB0cjxXZWJQZXJt
aXNzaW9ucz4gbV93ZWJQZXJtaXNzaW9uczsKICAgICBPd25QdHI8RFJURGV2VG9vbHNBZ2VudD4g
bV9kcnREZXZUb29sc0FnZW50OwogICAgIE93blB0cjxEUlREZXZUb29sc0NsaWVudD4gbV9kcnRE
ZXZUb29sc0NsaWVudDsKICAgICBPd25QdHI8V2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFj
ZXM+IG1fdGVzdEludGVyZmFjZXM7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJQZXJtaXNzaW9ucy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJQZXJtaXNzaW9ucy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjN2M5
ZWVlODQ1N2I2YWM4ZThkOGE0YzgzMWE0OTQyYWJkYjAzMGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViUGVybWlzc2lvbnMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTMyICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlz
dHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViUGVybWlzc2lvbnMuaCIKLQotI2luY2x1ZGUgIkRS
VFRlc3RSdW5uZXIuaCIKLSNpbmNsdWRlICJUZXN0U2hlbGwuaCIKLSNpbmNsdWRlICJwbGF0Zm9y
bS9XZWJDU3RyaW5nLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMLmgiCi0KLVdlYlBlcm1p
c3Npb25zOjpXZWJQZXJtaXNzaW9ucyhUZXN0U2hlbGwqIHNoZWxsKQotICAgIDogbV9zaGVsbChz
aGVsbCkKLXsKLSAgICByZXNldCgpOwotfQotCi1XZWJQZXJtaXNzaW9uczo6fldlYlBlcm1pc3Np
b25zKCkKLXsKLX0KLQotYm9vbCBXZWJQZXJtaXNzaW9uczo6YWxsb3dJbWFnZShXZWJLaXQ6Oldl
YkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIGNvbnN0IFdlYktpdDo6V2ViVVJMJiBp
bWFnZVVSTCkKLXsKLSAgICBib29sIGFsbG93ZWQgPSBlbmFibGVkUGVyU2V0dGluZ3MgJiYgbV9p
bWFnZXNBbGxvd2VkOwotICAgIGlmICh0ZXN0UnVubmVyKCktPnNob3VsZER1bXBQZXJtaXNzaW9u
Q2xpZW50Q2FsbGJhY2tzKCkpCi0gICAgICAgIGZwcmludGYoc3Rkb3V0LCAiUEVSTUlTU0lPTiBD
TElFTlQ6IGFsbG93SW1hZ2UoJXMpOiAlc1xuIiwgbV9zaGVsbC0+bm9ybWFsaXplTGF5b3V0VGVz
dFVSTChpbWFnZVVSTC5zcGVjKCkpLmNfc3RyKCksIGFsbG93ZWQgPyAidHJ1ZSIgOiAiZmFsc2Ui
KTsKLSAgICByZXR1cm4gYWxsb3dlZDsKLX0KLQotYm9vbCBXZWJQZXJtaXNzaW9uczo6YWxsb3dT
Y3JpcHRGcm9tU291cmNlKFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5n
cywgY29uc3QgV2ViS2l0OjpXZWJVUkwmIHNjcmlwdFVSTCkKLXsKLSAgICBib29sIGFsbG93ZWQg
PSBlbmFibGVkUGVyU2V0dGluZ3MgJiYgbV9zY3JpcHRzQWxsb3dlZDsKLSAgICBpZiAodGVzdFJ1
bm5lcigpLT5zaG91bGREdW1wUGVybWlzc2lvbkNsaWVudENhbGxiYWNrcygpKQotICAgICAgICBm
cHJpbnRmKHN0ZG91dCwgIlBFUk1JU1NJT04gQ0xJRU5UOiBhbGxvd1NjcmlwdEZyb21Tb3VyY2Uo
JXMpOiAlc1xuIiwgbV9zaGVsbC0+bm9ybWFsaXplTGF5b3V0VGVzdFVSTChzY3JpcHRVUkwuc3Bl
YygpKS5jX3N0cigpLCBhbGxvd2VkID8gInRydWUiIDogImZhbHNlIik7Ci0gICAgcmV0dXJuIGFs
bG93ZWQ7Ci19Ci0KLWJvb2wgV2ViUGVybWlzc2lvbnM6OmFsbG93U3RvcmFnZShXZWJLaXQ6Oldl
YkZyYW1lKiwgYm9vbCkKLXsKLSAgICByZXR1cm4gbV9zdG9yYWdlQWxsb3dlZDsKLX0KLQotYm9v
bCBXZWJQZXJtaXNzaW9uczo6YWxsb3dQbHVnaW5zKFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVu
YWJsZWRQZXJTZXR0aW5ncykKLXsKLSAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzICYmIG1f
cGx1Z2luc0FsbG93ZWQ7Ci19Ci0KLWJvb2wgV2ViUGVybWlzc2lvbnM6OmFsbG93RGlzcGxheWlu
Z0luc2VjdXJlQ29udGVudChXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGlu
Z3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFdlYktpdDo6V2ViVVJMJikK
LXsKLSAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzIHx8IG1fZGlzcGxheWluZ0luc2VjdXJl
Q29udGVudEFsbG93ZWQ7Ci19Ci0KLWJvb2wgV2ViUGVybWlzc2lvbnM6OmFsbG93UnVubmluZ0lu
c2VjdXJlQ29udGVudChXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3Ms
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
V2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFdlYktpdDo6V2ViVVJMJikKLXsKLSAg
ICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzIHx8IG1fcnVubmluZ0luc2VjdXJlQ29udGVudEFs
bG93ZWQ7Ci19Ci0KLXZvaWQgV2ViUGVybWlzc2lvbnM6OnNldEltYWdlc0FsbG93ZWQoYm9vbCBp
bWFnZXNBbGxvd2VkKQotewotICAgIG1faW1hZ2VzQWxsb3dlZCA9IGltYWdlc0FsbG93ZWQ7Ci19
Ci0KLXZvaWQgV2ViUGVybWlzc2lvbnM6OnNldFNjcmlwdHNBbGxvd2VkKGJvb2wgc2NyaXB0c0Fs
bG93ZWQpCi17Ci0gICAgbV9zY3JpcHRzQWxsb3dlZCA9IHNjcmlwdHNBbGxvd2VkOwotfQotCi12
b2lkIFdlYlBlcm1pc3Npb25zOjpzZXRTdG9yYWdlQWxsb3dlZChib29sIHN0b3JhZ2VBbGxvd2Vk
KQotewotICAgIG1fc3RvcmFnZUFsbG93ZWQgPSBzdG9yYWdlQWxsb3dlZDsKLX0KLQotdm9pZCBX
ZWJQZXJtaXNzaW9uczo6c2V0UGx1Z2luc0FsbG93ZWQoYm9vbCBwbHVnaW5zQWxsb3dlZCkKLXsK
LSAgICBtX3BsdWdpbnNBbGxvd2VkID0gcGx1Z2luc0FsbG93ZWQ7Ci19Ci0KLXZvaWQgV2ViUGVy
bWlzc2lvbnM6OnNldERpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkKGJvb2wgYWxsb3dl
ZCkKLXsKLSAgICBtX2Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkID0gYWxsb3dlZDsK
LX0KLQotdm9pZCBXZWJQZXJtaXNzaW9uczo6c2V0UnVubmluZ0luc2VjdXJlQ29udGVudEFsbG93
ZWQoYm9vbCBhbGxvd2VkKQotewotICAgIG1fcnVubmluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQg
PSBhbGxvd2VkOwotfQotCi12b2lkIFdlYlBlcm1pc3Npb25zOjpyZXNldCgpCi17Ci0gICAgbV9p
bWFnZXNBbGxvd2VkID0gdHJ1ZTsKLSAgICBtX3NjcmlwdHNBbGxvd2VkID0gdHJ1ZTsKLSAgICBt
X3N0b3JhZ2VBbGxvd2VkID0gdHJ1ZTsKLSAgICBtX3BsdWdpbnNBbGxvd2VkID0gdHJ1ZTsKLSAg
ICBtX2Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkID0gZmFsc2U7Ci0gICAgbV9ydW5u
aW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZCA9IGZhbHNlOwotfQotCi0vLyBQcml2YXRlIGZ1bmN0
aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0KLURSVFRlc3RSdW5uZXIqIFdlYlBlcm1pc3Npb25zOjp0ZXN0UnVubmVyKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9zaGVsbC0+dGVzdFJ1bm5lcigpOwotfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUGVybWlzc2lvbnMuaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlBlcm1pc3Npb25zLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGM2MjUwNzdlODk1YTdkZDRlMjVlZWEyMGM1YzkwMTM0ZmEzODE1M2IuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViUGVybWlzc2lvbnMuaAorKysgL2Rldi9udWxsCkBAIC0xLDc5
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoK
LSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIFdlYlBlcm1pc3Npb25zX2gKLSNkZWZpbmUgV2ViUGVybWlzc2lvbnNf
aAotCi0jaW5jbHVkZSAiV2ViUGVybWlzc2lvbkNsaWVudC5oIgotCi1jbGFzcyBEUlRUZXN0UnVu
bmVyOwotY2xhc3MgVGVzdFNoZWxsOwotCi1jbGFzcyBXZWJQZXJtaXNzaW9ucyA6IHB1YmxpYyBX
ZWJLaXQ6OldlYlBlcm1pc3Npb25DbGllbnQgewotcHVibGljOgotICAgIFdlYlBlcm1pc3Npb25z
KFRlc3RTaGVsbCopOwotICAgIHZpcnR1YWwgfldlYlBlcm1pc3Npb25zKCk7Ci0KLSAgICAvLyBP
dmVycmlkZSBXZWJQZXJtaXNzaW9uQ2xpZW50IG1ldGhvZHMuCi0gICAgdmlydHVhbCBib29sIGFs
bG93SW1hZ2UoV2ViS2l0OjpXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBjb25z
dCBXZWJLaXQ6OldlYlVSTCYgaW1hZ2VVUkwpOwotICAgIHZpcnR1YWwgYm9vbCBhbGxvd1Njcmlw
dEZyb21Tb3VyY2UoV2ViS2l0OjpXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBj
b25zdCBXZWJLaXQ6OldlYlVSTCYgc2NyaXB0VVJMKTsKLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dT
dG9yYWdlKFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGxvY2FsKTsKLSAgICB2aXJ0dWFsIGJvb2wg
YWxsb3dQbHVnaW5zKFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncyk7
Ci0gICAgdmlydHVhbCBib29sIGFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudChXZWJLaXQ6
OldlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJLaXQ6OldlYlNlY3VyaXR5T3Jp
Z2luJiwgY29uc3QgV2ViS2l0OjpXZWJVUkwmKTsKLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dSdW5u
aW5nSW5zZWN1cmVDb250ZW50KFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0
aW5ncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBXZWJLaXQ6OldlYlVSTCYpOwotCi0g
ICAgLy8gSG9va3MgdG8gc2V0IHRoZSBkaWZmZXJlbnQgcG9saWNpZXMuCi0gICAgdm9pZCBzZXRJ
bWFnZXNBbGxvd2VkKGJvb2wpOwotICAgIHZvaWQgc2V0U2NyaXB0c0FsbG93ZWQoYm9vbCk7Ci0g
ICAgdm9pZCBzZXRTdG9yYWdlQWxsb3dlZChib29sKTsKLSAgICB2b2lkIHNldFBsdWdpbnNBbGxv
d2VkKGJvb2wpOwotICAgIHZvaWQgc2V0RGlzcGxheWluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQo
Ym9vbCk7Ci0gICAgdm9pZCBzZXRSdW5uaW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZChib29sKTsK
LQotICAgIC8vIFJlc2V0cyB0aGUgcG9saWN5IHRvIGFsbG93IGV2ZXJ5dGhpbmcsIGV4Y2VwdCBm
b3IgcnVubmluZyBpbnNlY3VyZSBjb250ZW50LgotICAgIHZvaWQgcmVzZXQoKTsKLQotcHJpdmF0
ZToKLSAgICBEUlRUZXN0UnVubmVyKiB0ZXN0UnVubmVyKCkgY29uc3Q7Ci0KLSAgICAvLyBOb24t
b3duaW5nIHBvaW50ZXIuIFRoZSBXZWJQZXJtaXNzaW9ucyBpbnN0YW5jZSBpcyBvd25lZCBieSB0
aGlzIFRlc3RTaGVsbCBpbnN0YW5jZS4KLSAgICBUZXN0U2hlbGwqIG1fc2hlbGw7Ci0KLSAgICBi
b29sIG1faW1hZ2VzQWxsb3dlZDsKLSAgICBib29sIG1fc2NyaXB0c0FsbG93ZWQ7Ci0gICAgYm9v
bCBtX3N0b3JhZ2VBbGxvd2VkOwotICAgIGJvb2wgbV9wbHVnaW5zQWxsb3dlZDsKLSAgICBib29s
IG1fZGlzcGxheWluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQ7Ci0gICAgYm9vbCBtX3J1bm5pbmdJ
bnNlY3VyZUNvbnRlbnRBbGxvd2VkOwotfTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggMTQ3NzlmYWZjNmZjNThkMWVlM2Mw
MzBhODFlOGY4MDljNzc1ODEzZi4uZmFmMjJlZWUzNjYyZDdlZGY0MTNkMzI4ZTI3NTYwNDFiYzY0
MDdjMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hv
c3QuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNw
cApAQCAtMTcxLDYgKzE3MSwyOCBAQCBzdGF0aWMgdm9pZCBwcmludE5vZGVEZXNjcmlwdGlvbihj
b25zdCBXZWJOb2RlJiBub2RlLCBpbnQgZXhjZXB0aW9uKQogICAgIH0KIH0KIAorc3RhdGljIGNv
bnN0IGNoYXIgbGF5b3V0VGVzdHNQYXR0ZXJuW10gPSAiL0xheW91dFRlc3RzLyI7CitzdGF0aWMg
Y29uc3Qgc3RyaW5nOjpzaXplX3R5cGUgbGF5b3V0VGVzdHNQYXR0ZXJuU2l6ZSA9IHNpemVvZihs
YXlvdXRUZXN0c1BhdHRlcm4pIC0gMTsKK3N0YXRpYyBjb25zdCBjaGFyIGZpbGVVcmxQYXR0ZXJu
W10gPSAiZmlsZTovIjsKK3N0YXRpYyBjb25zdCBjaGFyIGZpbGVUZXN0UHJlZml4W10gPSAiKGZp
bGUgdGVzdCk6IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRhdGFVcmxQYXR0ZXJuW10gPSAiZGF0YToi
Oworc3RhdGljIGNvbnN0IHN0cmluZzo6c2l6ZV90eXBlIGRhdGFVcmxQYXR0ZXJuU2l6ZSA9IHNp
emVvZihkYXRhVXJsUGF0dGVybikgLSAxOworCitzdGF0aWMgc3RyaW5nIG5vcm1hbGl6ZUxheW91
dFRlc3RVUkxJbnRlcm5hbChjb25zdCBzdHJpbmcmIHVybCkKK3sKKyAgICBzdHJpbmcgcmVzdWx0
ID0gdXJsOworICAgIHNpemVfdCBwb3M7CisgICAgaWYgKCF1cmwuZmluZChmaWxlVXJsUGF0dGVy
bikgJiYgKChwb3MgPSB1cmwuZmluZChsYXlvdXRUZXN0c1BhdHRlcm4pKSAhPSBzdHJpbmc6Om5w
b3MpKSB7CisgICAgICAgIC8vIGFkanVzdCBmaWxlIFVSTHMgdG8gbWF0Y2ggdXBzdHJlYW0gcmVz
dWx0cy4KKyAgICAgICAgcmVzdWx0LnJlcGxhY2UoMCwgcG9zICsgbGF5b3V0VGVzdHNQYXR0ZXJu
U2l6ZSwgZmlsZVRlc3RQcmVmaXgpOworICAgIH0gZWxzZSBpZiAoIXVybC5maW5kKGRhdGFVcmxQ
YXR0ZXJuKSkgeworICAgICAgICAvLyBVUkwtZXNjYXBlIGRhdGEgVVJMcyB0byBtYXRjaCByZXN1
bHRzIHVwc3RyZWFtLgorICAgICAgICBzdHJpbmcgcGF0aCA9IHVybC5zdWJzdHIoZGF0YVVybFBh
dHRlcm5TaXplKTsKKyAgICAgICAgcmVzdWx0LnJlcGxhY2UoZGF0YVVybFBhdHRlcm5TaXplLCB1
cmwubGVuZ3RoKCksIHBhdGgpOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCiAvLyBX
ZWJWaWV3Q2xpZW50IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIAogV2ViVmlldyogV2ViVmlld0hvc3Q6OmNyZWF0ZVZpZXcoV2Vi
RnJhbWUqIGNyZWF0b3IsIGNvbnN0IFdlYlVSTFJlcXVlc3QmLCBjb25zdCBXZWJXaW5kb3dGZWF0
dXJlcyYsIGNvbnN0IFdlYlN0cmluZyYsIFdlYk5hdmlnYXRpb25Qb2xpY3kpCkBAIC0xMDU4LDYg
KzEwODAsMTIgQEAgc3RkOjpzdHJpbmcgV2ViVmlld0hvc3Q6Om1ha2VVUkxFcnJvckRlc2NyaXB0
aW9uKGNvbnN0IFdlYktpdDo6V2ViVVJMRXJyb3ImIGVycm8KICAgICByZXR1cm4gd2Via2l0X3N1
cHBvcnQ6Ok1ha2VVUkxFcnJvckRlc2NyaXB0aW9uKGVycm9yKTsKIH0KIAorc3RkOjpzdHJpbmcg
V2ViVmlld0hvc3Q6Om5vcm1hbGl6ZUxheW91dFRlc3RVUkwoY29uc3Qgc3RkOjpzdHJpbmcmIHVy
bCkKK3sKKyAgICByZXR1cm4gbm9ybWFsaXplTGF5b3V0VGVzdFVSTEludGVybmFsKHVybCk7Cit9
CisKKwogLy8gUHVibGljIGZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBXZWJWaWV3SG9zdDo6V2ViVmlld0hvc3Qo
VGVzdFNoZWxsKiBzaGVsbCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3
SG9zdC5oCmluZGV4IGZjOGJiZjQzMDlhNWY4YTdiYjlkNGMxZDY1N2Y1ZDY0NDMzYWE0ZDAuLmM4
ZTEzOGQ3YThmNTgxMGY1YzFhMWI4Y2UxMmZlZTVjYjY3NTY4YTggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApAQCAtMTQ5LDYgKzE0OSw3IEBAIGNsYXNz
IFdlYlZpZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2ViVmlld0NsaWVudCwgcHVibGljIFdlYktp
dDo6V2ViRnJhbWVDbGllbnQsCiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnJlbnRXZWJJbnRlbnRS
ZXF1ZXN0KGNvbnN0IFdlYktpdDo6V2ViSW50ZW50UmVxdWVzdCYpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgV2ViS2l0OjpXZWJJbnRlbnRSZXF1ZXN0KiBjdXJyZW50V2ViSW50ZW50UmVxdWVzdCgp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgc3RkOjpzdHJpbmcgbWFrZVVSTEVycm9yRGVzY3JpcHRp
b24oY29uc3QgV2ViS2l0OjpXZWJVUkxFcnJvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgc3Rk
OjpzdHJpbmcgbm9ybWFsaXplTGF5b3V0VGVzdFVSTChjb25zdCBzdGQ6OnN0cmluZyYpIE9WRVJS
SURFOwogCiAgICAgLy8gTmF2aWdhdGlvbkhvc3QKICAgICB2aXJ0dWFsIGJvb2wgbmF2aWdhdGUo
Y29uc3QgVGVzdE5hdmlnYXRpb25FbnRyeSYsIGJvb2wgcmVsb2FkKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182143</attachid>
            <date>2013-01-10 08:13:50 -0800</date>
            <delta_ts>2013-01-10 08:36:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106548-20130110171052.patch</filename>
            <type>text/plain</type>
            <size>43378</size>
            <attacher name="Dan Carney">dcarney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5Mjk0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDI2MzIyNGE2ZDU1MTAxMTFlZDk0N2VkZGIyZDI1ZmE5
Yjc4Yjg2MS4uZGU3ZjE5ZDBkMTE4ZWMxODU0OTI5YTk3MTI3NTM5YWQyOGEwZjBmOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcy
IEBACisyMDEzLTAxLTEwICBEYW4gQ2FybmV5ICA8ZGNhcm5leUBnb29nbGUuY29tPgorCisgICAg
ICAgIFtjaHJvbWl1bV0gbW92ZSB3ZWJwZXJtaXNzaW9uY2xpZW50IHJlbGF0ZWQgbWV0aG9kcyB0
byBUZXN0UnVubmVyIGxpYnJhcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNjU0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNwcDoKKyAgICAgICAg
KERSVFRlc3RSdW5uZXI6OkRSVFRlc3RSdW5uZXIpOgorICAgICAgICAoRFJUVGVzdFJ1bm5lcjo6
cmVzZXQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIu
aDoKKyAgICAgICAgKERSVFRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oOgorICAgICAgICAoV2Vi
VGVzdERlbGVnYXRlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3REZWxlZ2F0ZTo6
bm9ybWFsaXplTGF5b3V0VGVzdFVSTCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1bm5lci5oOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OndlYlBlcm1pc3Npb25zKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVu
bmVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OlRlc3RSdW5uZXIp
OgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6c2V0RGVsZWdhdGUpOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVy
OjpyZXNldCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjp3ZWJQZXJtaXNz
aW9ucyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpkdW1wUGVybWlzc2lv
bkNsaWVudENhbGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpz
ZXRJbWFnZXNBbGxvd2VkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OnNl
dFNjcmlwdHNBbGxvd2VkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OnNl
dFN0b3JhZ2VBbGxvd2VkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OnNl
dFBsdWdpbnNBbGxvd2VkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OnNl
dEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OlRlc3RSdW5uZXI6OnNldEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmg6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFRlc3RSdW5uZXIpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBlcm1pc3Npb25zLmNw
cDogUmVuYW1lZCBmcm9tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlBlcm1pc3Np
b25zLmNwcC4KKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cjo6V2ViUGVybWlzc2lvbnM6OldlYlBlcm1pc3Npb25zKToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlBlcm1pc3Npb25zOjp+V2ViUGVybWlzc2lvbnMpOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6V2ViUGVybWlzc2lvbnM6OmFsbG93SW1hZ2UpOgorICAgICAgICAoV2ViVGVzdFJ1bm5l
cjo6V2ViUGVybWlzc2lvbnM6OmFsbG93U2NyaXB0RnJvbVNvdXJjZSk6CisgICAgICAgIChXZWJU
ZXN0UnVubmVyOjpXZWJQZXJtaXNzaW9uczo6YWxsb3dTdG9yYWdlKToKKyAgICAgICAgKFdlYlRl
c3RSdW5uZXI6OldlYlBlcm1pc3Npb25zOjphbGxvd1BsdWdpbnMpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViUGVybWlzc2lvbnM6OmFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudCk6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQZXJtaXNzaW9uczo6YWxsb3dSdW5uaW5nSW5z
ZWN1cmVDb250ZW50KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlBlcm1pc3Npb25zOjpz
ZXRJbWFnZXNBbGxvd2VkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlBlcm1pc3Npb25z
OjpzZXRTY3JpcHRzQWxsb3dlZCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQZXJtaXNz
aW9uczo6c2V0U3RvcmFnZUFsbG93ZWQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViUGVy
bWlzc2lvbnM6OnNldFBsdWdpbnNBbGxvd2VkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Oldl
YlBlcm1pc3Npb25zOjpzZXREaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZCk6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpXZWJQZXJtaXNzaW9uczo6c2V0UnVubmluZ0luc2VjdXJlQ29u
dGVudEFsbG93ZWQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViUGVybWlzc2lvbnM6OnNl
dERlbGVnYXRlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlBlcm1pc3Npb25zOjpzZXRE
dW1wQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlBlcm1pc3Npb25zOjpy
ZXNldCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViUGVybWlzc2lvbnMuaDogUmVuYW1lZCBmcm9tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlBlcm1pc3Npb25zLmguCisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAg
KFdlYlBlcm1pc3Npb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
U2hlbGwuY3BwOgorICAgICAgICAoVGVzdFNoZWxsOjppbml0aWFsaXplKToKKyAgICAgICAgKFRl
c3RTaGVsbDo6cmVzZXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChUZXN0U2hlbGw6OmNyZWF0
ZU5ld1dpbmRvdyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxs
Lmg6CisgICAgICAgIChUZXN0U2hlbGwpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKG5vcm1hbGl6ZUxheW91dFRlc3RVUkxJbnRl
cm5hbCk6CisgICAgICAgIChXZWJWaWV3SG9zdDo6bm9ybWFsaXplTGF5b3V0VGVzdFVSTCk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaDoKKyAgICAgICAg
KFdlYlZpZXdIb3N0KToKKwogMjAxMy0wMS0xMCAgVGltICdtaXRocm8nIEFuc2VsbCAgPG1pdGhy
b0BtaXRoaXMuY29tPgogCiAgICAgICAgIENvbnZlcnRpbmcgdG8gdW5pdHRlc3QyIHNvIHdlIGNh
biB1c2UgYXNzZXJ0SXRlbXNFcXVhbCwgbWFraW5nIHRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
RHVtcFJlbmRlclRyZWUuZ3lwaQppbmRleCA2ODFjMjJlNDllZWQ1YjMzZGI0OGRjZWI0ZTYwODEx
MWFiOWI4ZjgyLi4wNjU1MzJmMGIxMjhkZmM2MTU5MDJjN2E1ODBjZDI3NTlkZmM4NjcyIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKQEAgLTQ2LDggKzQ2LDYgQEAK
ICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0U2hlbGxTdHViLmNwcCcsCiAgICAgICAgICAgICAn
Y2hyb21pdW0vVGVzdFNoZWxsV2luLmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vVGVzdFNo
ZWxsWDExLmNwcCcsCi0gICAgICAgICAgICAnY2hyb21pdW0vV2ViUGVybWlzc2lvbnMuY3BwJywK
LSAgICAgICAgICAgICdjaHJvbWl1bS9XZWJQZXJtaXNzaW9ucy5oJywKICAgICAgICAgICAgICdj
aHJvbWl1bS9XZWJUaGVtZUNvbnRyb2xEUlRXaW4uY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1
bS9XZWJUaGVtZUNvbnRyb2xEUlRXaW4uaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vV2ViVGhl
bWVFbmdpbmVEUlRNYWMubW0nLApAQCAtOTEsNiArODksOCBAQAogICAgICAgICAgICAgJ2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvV2ViQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwJywKICAgICAgICAg
ICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJFdmVudFNlbmRlci5jcHAnLAorICAgICAg
ICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBlcm1pc3Npb25zLmNwcCcsCisgICAg
ICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUGVybWlzc2lvbnMuaCcsCiAgICAg
ICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwJywKICAg
ICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUYXNrLmNwcCcsCiAgICAgICAg
ICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdEludGVyZmFjZXMuY3BwJywKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHAKaW5kZXgg
NzkwOTFiZDk4NzIxN2ZhNzJhZDkzODM0MTIxYjY3YzZhZDc4NDVhNC4uNGQwMDZlYzMzZDM1ZTQy
MzM0MzZhMzQxZDgzYTJkNzhmNjJlNjU1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHAKQEAgLTUyLDcgKzUyLDYgQEAKICNpbmNsdWRlICJX
ZWJJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJXZWJOb3Rp
ZmljYXRpb25QcmVzZW50ZXIuaCIKLSNpbmNsdWRlICJXZWJQZXJtaXNzaW9ucy5oIgogI2luY2x1
ZGUgIldlYlByaW50UGFyYW1zLmgiCiAjaW5jbHVkZSAiV2ViU2NyaXB0U291cmNlLmgiCiAjaW5j
bHVkZSAiV2ViU2VjdXJpdHlQb2xpY3kuaCIKQEAgLTEyMSw3ICsxMjAsNiBAQCBEUlRUZXN0UnVu
bmVyOjpEUlRUZXN0UnVubmVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgiZHVt
cFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayIsICZEUlRUZXN0UnVubmVyOjpkdW1wUHJvZ3Jlc3NG
aW5pc2hlZENhbGxiYWNrKTsKICAgICBiaW5kTWV0aG9kKCJkdW1wU2VsZWN0aW9uUmVjdCIsICZE
UlRUZXN0UnVubmVyOjpkdW1wU2VsZWN0aW9uUmVjdCk7CiAgICAgYmluZE1ldGhvZCgiZHVtcFN0
YXR1c0NhbGxiYWNrcyIsICZEUlRUZXN0UnVubmVyOjpkdW1wV2luZG93U3RhdHVzQ2hhbmdlcyk7
Ci0gICAgYmluZE1ldGhvZCgiZHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MiLCAmRFJUVGVz
dFJ1bm5lcjo6ZHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MpOwogICAgIGJpbmRNZXRob2Qo
ImVuYWJsZUF1dG9SZXNpemVNb2RlIiwgJkRSVFRlc3RSdW5uZXI6OmVuYWJsZUF1dG9SZXNpemVN
b2RlKTsKICAgICBiaW5kTWV0aG9kKCJldmFsdWF0ZUluV2ViSW5zcGVjdG9yIiwgJkRSVFRlc3RS
dW5uZXI6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IpOwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQpAQCAtMTM4LDggKzEzNiw2IEBAIERSVFRlc3RSdW5uZXI6OkRSVFRlc3RSdW5uZXIoVGVzdFNo
ZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9kKCJxdWV1ZU5vbkxvYWRpbmdTY3JpcHQiLCAmRFJU
VGVzdFJ1bm5lcjo6cXVldWVOb25Mb2FkaW5nU2NyaXB0KTsKICAgICBiaW5kTWV0aG9kKCJxdWV1
ZVJlbG9hZCIsICZEUlRUZXN0UnVubmVyOjpxdWV1ZVJlbG9hZCk7CiAgICAgYmluZE1ldGhvZCgi
cmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5IiwgJkRSVFRlc3RSdW5uZXI6OnJlcGFpbnRTd2VlcEhv
cml6b250YWxseSk7Ci0gICAgYmluZE1ldGhvZCgic2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNv
bnRlbnQiLCAmRFJUVGVzdFJ1bm5lcjo6c2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQp
OwotICAgIGJpbmRNZXRob2QoInNldEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50IiwgJkRS
VFRlc3RSdW5uZXI6OnNldEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KTsKICAgICBiaW5k
TWV0aG9kKCJzZXRBbHdheXNBY2NlcHRDb29raWVzIiwgJkRSVFRlc3RSdW5uZXI6OnNldEFsd2F5
c0FjY2VwdENvb2tpZXMpOwogICAgIGJpbmRNZXRob2QoInNldENsb3NlUmVtYWluaW5nV2luZG93
c1doZW5Db21wbGV0ZSIsICZEUlRUZXN0UnVubmVyOjpzZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NX
aGVuQ29tcGxldGUpOwogICAgIGJpbmRNZXRob2QoInNldEN1c3RvbVBvbGljeURlbGVnYXRlIiwg
JkRSVFRlc3RSdW5uZXI6OnNldEN1c3RvbVBvbGljeURlbGVnYXRlKTsKQEAgLTE3MCwxMCArMTY2
LDYgQEAgRFJUVGVzdFJ1bm5lcjo6RFJUVGVzdFJ1bm5lcihUZXN0U2hlbGwqIHNoZWxsKQogICAg
IGJpbmRNZXRob2QoIndhaXRGb3JQb2xpY3lEZWxlZ2F0ZSIsICZEUlRUZXN0UnVubmVyOjp3YWl0
Rm9yUG9saWN5RGVsZWdhdGUpOwogICAgIGJpbmRNZXRob2QoIndhaXRVbnRpbERvbmUiLCAmRFJU
VGVzdFJ1bm5lcjo6d2FpdFVudGlsRG9uZSk7CiAgICAgYmluZE1ldGhvZCgid2luZG93Q291bnQi
LCAmRFJUVGVzdFJ1bm5lcjo6d2luZG93Q291bnQpOwotICAgIGJpbmRNZXRob2QoInNldEltYWdl
c0FsbG93ZWQiLCAmRFJUVGVzdFJ1bm5lcjo6c2V0SW1hZ2VzQWxsb3dlZCk7Ci0gICAgYmluZE1l
dGhvZCgic2V0U2NyaXB0c0FsbG93ZWQiLCAmRFJUVGVzdFJ1bm5lcjo6c2V0U2NyaXB0c0FsbG93
ZWQpOwotICAgIGJpbmRNZXRob2QoInNldFN0b3JhZ2VBbGxvd2VkIiwgJkRSVFRlc3RSdW5uZXI6
OnNldFN0b3JhZ2VBbGxvd2VkKTsKLSAgICBiaW5kTWV0aG9kKCJzZXRQbHVnaW5zQWxsb3dlZCIs
ICZEUlRUZXN0UnVubmVyOjpzZXRQbHVnaW5zQWxsb3dlZCk7CiAKICAgICBiaW5kTWV0aG9kKCJz
ZXRTaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCIsICZEUlRUZXN0UnVu
bmVyOjpzZXRTaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCk7CiAKQEAg
LTI1NCwxMiArMjQ2LDYgQEAgdm9pZCBEUlRUZXN0UnVubmVyOjpkdW1wV2luZG93U3RhdHVzQ2hh
bmdlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KgogICAgIHJlc3VsdC0+c2V0
TnVsbCgpOwogfQogCi12b2lkIERSVFRlc3RSdW5uZXI6OmR1bXBQZXJtaXNzaW9uQ2xpZW50Q2Fs
bGJhY2tzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAg
ICBtX2R1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJhY2tzID0gdHJ1ZTsKLSAgICByZXN1bHQtPnNl
dE51bGwoKTsKLX0KLQogdm9pZCBEUlRUZXN0UnVubmVyOjp3YWl0VW50aWxEb25lKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBpZiAoIXdlYmtpdF9z
dXBwb3J0OjpCZWluZ0RlYnVnZ2VkKCkpCkBAIC00NDgsNyArNDM0LDYgQEAgdm9pZCBEUlRUZXN0
UnVubmVyOjpyZXNldCgpCiAgICAgbV9kdW1wQmFja0ZvcndhcmRMaXN0ID0gZmFsc2U7CiAgICAg
bV9kdW1wV2luZG93U3RhdHVzQ2hhbmdlcyA9IGZhbHNlOwogICAgIG1fZHVtcFNlbGVjdGlvblJl
Y3QgPSBmYWxzZTsKLSAgICBtX2R1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJhY2tzID0gZmFsc2U7
CiAgICAgbV93YWl0VW50aWxEb25lID0gZmFsc2U7CiAgICAgbV90ZXN0UmVwYWludCA9IGZhbHNl
OwogICAgIG1fc3dlZXBIb3Jpem9udGFsbHkgPSBmYWxzZTsKQEAgLTUzMCwzNCArNTE1LDYgQEAg
dm9pZCBEUlRUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3VtZW50cywgQ3BwVmFyaWFudCoKICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAotdm9p
ZCBEUlRUZXN0UnVubmVyOjpzZXRJbWFnZXNBbGxvd2VkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYg
YXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXpl
KCkgPiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2woKSkKLSAgICAgICAgbV9zaGVsbC0+d2ViUGVy
bWlzc2lvbnMoKS0+c2V0SW1hZ2VzQWxsb3dlZChhcmd1bWVudHNbMF0udG9Cb29sZWFuKCkpOwot
ICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCi12b2lkIERSVFRlc3RSdW5uZXI6OnNldFNjcmlw
dHNBbGxvd2VkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiBy
ZXN1bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5p
c0Jvb2woKSkKLSAgICAgICAgbV9zaGVsbC0+d2ViUGVybWlzc2lvbnMoKS0+c2V0U2NyaXB0c0Fs
bG93ZWQoYXJndW1lbnRzWzBdLnRvQm9vbGVhbigpKTsKLSAgICByZXN1bHQtPnNldE51bGwoKTsK
LX0KLQotdm9pZCBEUlRUZXN0UnVubmVyOjpzZXRTdG9yYWdlQWxsb3dlZChjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIGlmIChhcmd1
bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCi0gICAgICAgIG1fc2hl
bGwtPndlYlBlcm1pc3Npb25zKCktPnNldFN0b3JhZ2VBbGxvd2VkKGFyZ3VtZW50c1swXS50b0Jv
b2xlYW4oKSk7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19Ci0KLXZvaWQgRFJUVGVzdFJ1bm5l
cjo6c2V0UGx1Z2luc0FsbG93ZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENw
cFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJn
dW1lbnRzWzBdLmlzQm9vbCgpKQotICAgICAgICBtX3NoZWxsLT53ZWJQZXJtaXNzaW9ucygpLT5z
ZXRQbHVnaW5zQWxsb3dlZChhcmd1bWVudHNbMF0udG9Cb29sZWFuKCkpOwotICAgIHJlc3VsdC0+
c2V0TnVsbCgpOwotfQotCiB2b2lkIERSVFRlc3RSdW5uZXI6OnNldEN1c3RvbVBvbGljeURlbGVn
YXRlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQp
CiB7CiAgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2wo
KSkgewpAQCAtNzU4LDIyICs3MTUsNiBAQCB2b2lkIERSVFRlc3RSdW5uZXI6OnJlcGFpbnRTd2Vl
cEhvcml6b250YWxseShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KgogICAgIHJl
c3VsdC0+c2V0TnVsbCgpOwogfQogCi12b2lkIERSVFRlc3RSdW5uZXI6OnNldEFsbG93RGlzcGxh
eU9mSW5zZWN1cmVDb250ZW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBW
YXJpYW50KiByZXN1bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3Vt
ZW50c1swXS5pc0Jvb2woKSkKLSAgICAgICAgbV9zaGVsbC0+d2ViUGVybWlzc2lvbnMoKS0+c2V0
RGlzcGxheWluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQoYXJndW1lbnRzWzBdLnRvQm9vbGVhbigp
KTsKLQotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCi12b2lkIERSVFRlc3RSdW5uZXI6OnNl
dEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJn
dW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkg
PiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2woKSkKLSAgICAgICAgbV9zaGVsbC0+d2ViUGVybWlz
c2lvbnMoKS0+c2V0UnVubmluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQoYXJndW1lbnRzWzBdLnZh
bHVlLmJvb2xWYWx1ZSk7Ci0KLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0KLQogdm9pZCBEUlRU
ZXN0UnVubmVyOjpjbGVhckFsbERhdGFiYXNlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oCmluZGV4IGRiMjZj
ZGIyMjBiODE2NWY1MmEyNGYyZTlhYjE1MzAyNDhkYmI0ZGYuLjRjMjk2MTg0NzMxZjkzNDRmM2Fk
MTY2MTZiOGNhNGI0NTM3NzkwNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0RSVFRlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlRUZXN0UnVubmVyLmgKQEAgLTE2Miw5ICsxNjIsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCB0
ZXN0UmVwYWludChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9p
ZCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHkoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOwogCi0gICAgdm9pZCBzZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudChjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBzZXRBbGxvd1J1bm5p
bmdPZkluc2VjdXJlQ29udGVudChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
Ci0KICAgICAvLyBDbGVhcnMgYWxsIGRhdGFiYXNlcy4KICAgICB2b2lkIGNsZWFyQWxsRGF0YWJh
c2VzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICAvLyBTZXRzIHRo
ZSBkZWZhdWx0IHF1b3RhIGZvciBhbGwgb3JpZ2lucwpAQCAtMjAyLDEzICsxOTksNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCB3YXNNb2NrU3BlZWNoUmVjb2duaXRpb25BYm9ydGVkKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICNlbmRpZgogCi0gICAgLy8gV2ViUGVybWlzc2lv
bkNsaWVudCByZWxhdGVkLgotICAgIHZvaWQgc2V0SW1hZ2VzQWxsb3dlZChjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBzZXRTY3JpcHRzQWxsb3dlZChjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBzZXRTdG9yYWdlQWxs
b3dlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBzZXRQ
bHVnaW5zQWxsb3dlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAg
dm9pZCBkdW1wUGVybWlzc2lvbkNsaWVudENhbGxiYWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7Ci0KICAgICB2b2lkIHNldFNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRs
aW5nQmVmb3JlVW5sb2FkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCkBAIC0yMzEsNyArMjIxLDYgQEAgcHVibGljOgogICAg
IGJvb2wgc2hvdWxkRHVtcFN0YXR1c0NhbGxiYWNrcygpIHsgcmV0dXJuIG1fZHVtcFdpbmRvd1N0
YXR1c0NoYW5nZXM7IH0KICAgICBib29sIHNob3VsZER1bXBTZWxlY3Rpb25SZWN0KCkgeyByZXR1
cm4gbV9kdW1wU2VsZWN0aW9uUmVjdDsgfQogICAgIGJvb2wgc2hvdWxkRHVtcEJhY2tGb3J3YXJk
TGlzdCgpIHsgcmV0dXJuIG1fZHVtcEJhY2tGb3J3YXJkTGlzdDsgfQotICAgIGJvb2wgc2hvdWxk
RHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MoKSB7IHJldHVybiBtX2R1bXBQZXJtaXNzaW9u
Q2xpZW50Q2FsbGJhY2tzOyB9CiAgICAgYm9vbCBkZWZlck1haW5SZXNvdXJjZURhdGFMb2FkKCkg
eyByZXR1cm4gbV9kZWZlck1haW5SZXNvdXJjZURhdGFMb2FkOyB9CiAgICAgdm9pZCBzZXRTaG93
RGVidWdMYXllclRyZWUoYm9vbCB2YWx1ZSkgeyBtX3Nob3dEZWJ1Z0xheWVyVHJlZSA9IHZhbHVl
OyB9CiAgICAgdm9pZCBzZXRUaXRsZVRleHREaXJlY3Rpb24oV2ViS2l0OjpXZWJUZXh0RGlyZWN0
aW9uIGRpcikKQEAgLTMzNiwxMCArMzI1LDYgQEAgcHJpdmF0ZToKICAgICAvLyBJZiB0cnVlLCB0
aGUgdGVzdF9zaGVsbCB3aWxsIGR1bXAgYWxsIGNoYW5nZXMgdG8gd2luZG93LnN0YXR1cy4KICAg
ICBib29sIG1fZHVtcFdpbmRvd1N0YXR1c0NoYW5nZXM7CiAKLSAgICAvLyBJZiB0cnVlLCBvdXRw
dXQgYSBkZXNjcmlwdGl2ZSBsaW5lIGVhY2ggdGltZSBhIHBlcm1pc3Npb24gY2xpZW50Ci0gICAg
Ly8gY2FsbGJhY2sgaXMgaW52b2tlZC4gQ3VycmVudGx5IG9ubHkgaW1wbGVtZW50ZWQgZm9yIGFs
bG93SW1hZ2UuCi0gICAgYm9vbCBtX2R1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJhY2tzOwotCiAg
ICAgLy8gV2hlbiByZXNldCBpcyBjYWxsZWQsIGdvIHRocm91Z2ggYW5kIGNsb3NlIGFsbCBidXQg
dGhlIG1haW4gdGVzdCBzaGVsbAogICAgIC8vIHdpbmRvdy4gQnkgZGVmYXVsdCwgc2V0IHRvIHRy
dWUgYnV0IHRvZ2dsZWQgdG8gZmFsc2UgdXNpbmcKICAgICAvLyBzZXRDbG9zZVJlbWFpbmluZ1dp
bmRvd3NXaGVuQ29tcGxldGUoKS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKaW5k
ZXggYjJhOTNiYTllZTg2ZTY1NzgyYWUyOTE1MGY5ZjRkYWU1ZTIxNjdlNC4uZjg0ZGRjOGZmZjFi
MzgzMDdkODNhZTBiMDdhNmNmMDNhMmE1N2ZlMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERl
bGVnYXRlLmgKQEAgLTc3LDYgKzc3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRD
dXJyZW50V2ViSW50ZW50UmVxdWVzdChjb25zdCBXZWJLaXQ6OldlYkludGVudFJlcXVlc3QmKSB7
IH07CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYkludGVudFJlcXVlc3QqIGN1cnJlbnRXZWJJbnRl
bnRSZXF1ZXN0KCkgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgc3RkOjpzdHJpbmcgbWFrZVVS
TEVycm9yRGVzY3JpcHRpb24oY29uc3QgV2ViS2l0OjpXZWJVUkxFcnJvciYpIHsgcmV0dXJuIHN0
ZDo6c3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIG5vcm1hbGl6ZUxheW91dFRl
c3RVUkwoY29uc3Qgc3RkOjpzdHJpbmcmKSB7IHJldHVybiBzdGQ6OnN0cmluZygpOyB9CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3B1YmxpYy9XZWJUZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UnVubmVyLmgKaW5kZXggMTdiYmNiNzNkNzVjZWUyYjMy
ZGRlZDRlODEzZWJmYjViNzY3Yjk1NC4uZmIzZjY4ZTJmMzQ2YmIwMzg5NjlhMjc3MGQyZmNiNzM1
N2FiYzIzZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9wdWJsaWMvV2ViVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RSdW5uZXIuaApAQCAtMzMsNiArMzMsNyBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkFycmF5QnVmZmVyVmlldzsKK2NsYXNz
IFdlYlBlcm1pc3Npb25DbGllbnQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKQEAg
LTYxLDYgKzYyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wUmVzb3Vy
Y2VMb2FkQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkRHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5
cGVzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViUGVy
bWlzc2lvbkNsaWVudCogd2ViUGVybWlzc2lvbnMoKSBjb25zdCB7IHJldHVybiAwOyB9CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGJiOTY1ZjQ5YjUzMTNmYTFkY2UwYzJiYjk2
Y2Y2ODZlZDY4MWRhOTQuLmZkZmY5MTU4ODcwYzljNTI3ZGMxYmZjMjNjODU1Njc4Y2JlMTkwN2Eg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiV2Vi
SW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViSW50ZW50LmgiCiAjaW5jbHVkZSAiV2ViSW50
ZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYlBlcm1pc3Npb25zLmgiCiAjaW5jbHVkZSAiV2Vi
UHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJTY3JpcHRTb3VyY2UuaCIKICNpbmNsdWRlICJX
ZWJTZWN1cml0eVBvbGljeS5oIgpAQCAtODIsNiArODMsNyBAQCBUZXN0UnVubmVyOjpUZXN0UnVu
bmVyKCkKICAgICAsIG1fZGVsZWdhdGUoMCkKICAgICAsIG1fd2ViVmlldygwKQogICAgICwgbV9p
bnRlbnRDbGllbnQoYWRvcHRQdHIobmV3IEVtcHR5V2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50KSkK
KyAgICAsIG1fd2ViUGVybWlzc2lvbnMoYWRvcHRQdHIobmV3IFdlYlBlcm1pc3Npb25zKCkpKQog
ewogICAgIC8vIE1ldGhvZHMgaW1wbGVtZW50ZWQgaW4gdGVybXMgb2YgY2hyb21pdW0ncyBwdWJs
aWMgV2ViS2l0IEFQSS4KICAgICBiaW5kTWV0aG9kKCJzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxl
bWVudHMiLCAmVGVzdFJ1bm5lcjo6c2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKTsKQEAg
LTE0Nyw2ICsxNDksMTMgQEAgVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcigpCiAgICAgYmluZE1ldGhv
ZCgiZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyIsICZUZXN0UnVubmVyOjpkdW1wUmVzb3VyY2VM
b2FkQ2FsbGJhY2tzKTsKICAgICBiaW5kTWV0aG9kKCJkdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJh
Y2tzIiwgJlRlc3RSdW5uZXI6OmR1bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MpOwogICAgIGJp
bmRNZXRob2QoImR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzIiwgJlRlc3RSdW5uZXI6OmR1
bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKTsKKyAgICBiaW5kTWV0aG9kKCJkdW1wUGVybWlz
c2lvbkNsaWVudENhbGxiYWNrcyIsICZUZXN0UnVubmVyOjpkdW1wUGVybWlzc2lvbkNsaWVudENh
bGxiYWNrcyk7CisgICAgYmluZE1ldGhvZCgic2V0SW1hZ2VzQWxsb3dlZCIsICZUZXN0UnVubmVy
OjpzZXRJbWFnZXNBbGxvd2VkKTsKKyAgICBiaW5kTWV0aG9kKCJzZXRTY3JpcHRzQWxsb3dlZCIs
ICZUZXN0UnVubmVyOjpzZXRTY3JpcHRzQWxsb3dlZCk7CisgICAgYmluZE1ldGhvZCgic2V0U3Rv
cmFnZUFsbG93ZWQiLCAmVGVzdFJ1bm5lcjo6c2V0U3RvcmFnZUFsbG93ZWQpOworICAgIGJpbmRN
ZXRob2QoInNldFBsdWdpbnNBbGxvd2VkIiwgJlRlc3RSdW5uZXI6OnNldFBsdWdpbnNBbGxvd2Vk
KTsKKyAgICBiaW5kTWV0aG9kKCJzZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCIsICZU
ZXN0UnVubmVyOjpzZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCk7CisgICAgYmluZE1l
dGhvZCgic2V0QWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQiLCAmVGVzdFJ1bm5lcjo6c2V0
QWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQpOwogCiAgICAgLy8gVGhlIGZvbGxvd2luZyBt
ZXRob2RzIGludGVyYWN0IHdpdGggdGhlIFdlYlRlc3RQcm94eS4KICAgICBiaW5kTWV0aG9kKCJz
ZW5kV2ViSW50ZW50UmVzcG9uc2UiLCAmVGVzdFJ1bm5lcjo6c2VuZFdlYkludGVudFJlc3BvbnNl
KTsKQEAgLTE5Myw2ICsyMDIsMTIgQEAgVGVzdFJ1bm5lcjo6flRlc3RSdW5uZXIoKQogewogfQog
Cit2b2lkIFRlc3RSdW5uZXI6OnNldERlbGVnYXRlKFdlYlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUp
Cit7CisgICAgbV9kZWxlZ2F0ZSA9IGRlbGVnYXRlOworICAgIG1fd2ViUGVybWlzc2lvbnMtPnNl
dERlbGVnYXRlKGRlbGVnYXRlKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjpyZXNldCgpCiB7CiAg
ICAgaWYgKG1fd2ViVmlldykgewpAQCAtMjMxLDYgKzI0Niw4IEBAIHZvaWQgVGVzdFJ1bm5lcjo6
cmVzZXQoKQogICAgIG1fcGxhdGZvcm1OYW1lLnNldCgiY2hyb21pdW0iKTsKIAogICAgIG1fdXNl
clN0eWxlU2hlZXRMb2NhdGlvbiA9IFdlYlVSTCgpOworCisgICAgbV93ZWJQZXJtaXNzaW9ucy0+
cmVzZXQoKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpzZXRUZXN0SXNSdW5uaW5nKGJvb2wgcnVu
bmluZykKQEAgLTMzMyw2ICszNTAsNjEgQEAgYm9vbCBUZXN0UnVubmVyOjpzaG91bGREdW1wUmVz
b3VyY2VSZXNwb25zZU1JTUVUeXBlcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fdGVzdElzUnVubmlu
ZyAmJiBtX2R1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzOwogfQogCitXZWJQZXJtaXNzaW9u
Q2xpZW50KiBUZXN0UnVubmVyOjp3ZWJQZXJtaXNzaW9ucygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fd2ViUGVybWlzc2lvbnMuZ2V0KCk7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6ZHVtcFBlcm1p
c3Npb25DbGllbnRDYWxsYmFja3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCog
cmVzdWx0KQoreworICAgIG1fd2ViUGVybWlzc2lvbnMtPnNldER1bXBDYWxsYmFja3ModHJ1ZSk7
CisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0SW1hZ2Vz
QWxsb3dlZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVz
dWx0KQoreworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNC
b29sKCkpCisgICAgICAgIG1fd2ViUGVybWlzc2lvbnMtPnNldEltYWdlc0FsbG93ZWQoYXJndW1l
bnRzWzBdLnRvQm9vbGVhbigpKTsKKyAgICByZXN1bHQtPnNldE51bGwoKTsKK30KKwordm9pZCBU
ZXN0UnVubmVyOjpzZXRTY3JpcHRzQWxsb3dlZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4g
MCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCisgICAgICAgIG1fd2ViUGVybWlzc2lvbnMtPnNl
dFNjcmlwdHNBbGxvd2VkKGFyZ3VtZW50c1swXS50b0Jvb2xlYW4oKSk7CisgICAgcmVzdWx0LT5z
ZXROdWxsKCk7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RvcmFnZUFsbG93ZWQoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICBp
ZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQorICAgICAg
ICBtX3dlYlBlcm1pc3Npb25zLT5zZXRTdG9yYWdlQWxsb3dlZChhcmd1bWVudHNbMF0udG9Cb29s
ZWFuKCkpOworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNl
dFBsdWdpbnNBbGxvd2VkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJp
YW50KiByZXN1bHQpCit7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50
c1swXS5pc0Jvb2woKSkKKyAgICAgICAgbV93ZWJQZXJtaXNzaW9ucy0+c2V0UGx1Z2luc0FsbG93
ZWQoYXJndW1lbnRzWzBdLnRvQm9vbGVhbigpKTsKKyAgICByZXN1bHQtPnNldE51bGwoKTsKK30K
Kwordm9pZCBUZXN0UnVubmVyOjpzZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudChjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAg
IGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCisgICAg
ICAgIG1fd2ViUGVybWlzc2lvbnMtPnNldERpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2Vk
KGFyZ3VtZW50c1swXS50b0Jvb2xlYW4oKSk7CisKKyAgICByZXN1bHQtPnNldE51bGwoKTsKK30K
Kwordm9pZCBUZXN0UnVubmVyOjpzZXRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudChjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAg
IGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCisgICAg
ICAgIG1fd2ViUGVybWlzc2lvbnMtPnNldFJ1bm5pbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkKGFy
Z3VtZW50c1swXS52YWx1ZS5ib29sVmFsdWUpOworCisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9
CisKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAg
aWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2woKSkKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RS
dW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RSdW5uZXIuaAppbmRleCBiZjE1NTE4MjU0ZDBhZTJiNTUyZTFhZDAyZGRhNGM5ODYzZjEyNGFm
Li5iOTM3YmU1YTExY2U2MmI0MDFhNzlmYzAxZTFkMzYxYmJiMmRlNTdiIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1
bm5lci5oCkBAIC00NCw2ICs0NCw3IEBAIGNsYXNzIFdlYlZpZXc7CiAKIG5hbWVzcGFjZSBXZWJU
ZXN0UnVubmVyIHsKIAorY2xhc3MgV2ViUGVybWlzc2lvbnM7CiBjbGFzcyBXZWJUZXN0RGVsZWdh
dGU7CiAKIGNsYXNzIFRlc3RSdW5uZXIgOiBwdWJsaWMgQ3BwQm91bmRDbGFzcywgcHVibGljIFdl
YlRlc3RSdW5uZXIgewpAQCAtNTMsNyArNTQsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGSVhNRTog
b25jZSBEUlRUZXN0UnVubmVyIGlzIG1vdmVkIGVudGlyZWx5IHRvIHRoaXMgY2xhc3MsIGNoYW5n
ZSB0aGlzCiAgICAgLy8gbWV0aG9kIHRvIHRha2UgYSBUZXN0RGVsZWdhdGUqIGluc3RlYWQuCi0g
ICAgdm9pZCBzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKSB7IG1fZGVsZWdh
dGUgPSBkZWxlZ2F0ZTsgfQorICAgIHZvaWQgc2V0RGVsZWdhdGUoV2ViVGVzdERlbGVnYXRlKik7
CiAgICAgdm9pZCBzZXRXZWJWaWV3KFdlYktpdDo6V2ViVmlldyogd2ViVmlldykgeyBtX3dlYlZp
ZXcgPSB3ZWJWaWV3OyB9CiAKICAgICB2b2lkIHJlc2V0KCk7CkBAIC03OSw2ICs4MCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VSZXF1
ZXN0Q2FsbGJhY2tzKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZER1
bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBXZWJLaXQ6OldlYlBlcm1pc3Npb25DbGllbnQqIHdlYlBlcm1pc3Npb25zKCkgY29uc3QgT1ZF
UlJJREU7CiAKIHByb3RlY3RlZDoKICAgICAvLyBGSVhNRTogbWFrZSB0aGVzZSBwcml2YXRlIG9u
Y2UgdGhlIG1vdmUgZnJvbSBEUlRUZXN0UnVubmVyIHRvIFRlc3RSdW5uZXIKQEAgLTI1OSw2ICsy
NjEsMTUgQEAgcHJpdmF0ZToKICAgICAvLyB0aGF0IG1heSBiZSBwcmVzZW50LgogICAgIHZvaWQg
ZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCopOwogCisgICAgLy8gV2ViUGVybWlzc2lvbkNsaWVudCByZWxhdGVkLgorICAgIHZv
aWQgc2V0SW1hZ2VzQWxsb3dlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
CisgICAgdm9pZCBzZXRTY3JpcHRzQWxsb3dlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7CisgICAgdm9pZCBzZXRTdG9yYWdlQWxsb3dlZChjb25zdCBDcHBBcmd1bWVudExp
c3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzZXRQbHVnaW5zQWxsb3dlZChjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzZXRBbGxvd0Rpc3BsYXlPZklu
c2VjdXJlQ29udGVudChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAg
dm9pZCBzZXRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudChjb25zdCBDcHBBcmd1bWVudExp
c3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBkdW1wUGVybWlzc2lvbkNsaWVudENhbGxiYWNr
cyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisKICAgICAvLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KICAgICAvLyBNZXRob2RzIGludGVyYWN0aW5nIHdpdGggdGhlIFdlYlRlc3RQcm94
eQogCkBAIC0zNjksNiArMzgwLDkgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1vY2sgb2JqZWN0IGZv
ciB0ZXN0aW5nIGRlbGl2ZXJpbmcgd2ViIGludGVudHMuCiAgICAgT3duUHRyPFdlYktpdDo6V2Vi
RGVsaXZlcmVkSW50ZW50Q2xpZW50PiBtX2ludGVudENsaWVudDsKKworICAgIC8vIFdlYlBlcm1p
c3Npb25DbGllbnQgbW9jayBvYmplY3QuCisgICAgT3duUHRyPFdlYlBlcm1pc3Npb25zPiBtX3dl
YlBlcm1pc3Npb25zOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUGVybWlzc2lvbnMuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUGVybWlzc2lvbnMuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmEyMjY5NGU1MDYxZmRiZjFhYzRlMGVjM2MxYTdjYWM5ZWEzMDYxMmUKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9X
ZWJQZXJtaXNzaW9ucy5jcHAKQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViUGVybWlzc2lvbnMuaCIKKworI2luY2x1ZGUgIldlYlRlc3REZWxlZ2F0ZS5o
IgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYkNTdHJpbmcuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9X
ZWJVUkwuaCIKKworbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgeworCitXZWJQZXJtaXNzaW9uczo6
V2ViUGVybWlzc2lvbnMoKQorICAgIDogbV9kZWxlZ2F0ZSgwKQoreworICAgIHJlc2V0KCk7Cit9
CisKK1dlYlBlcm1pc3Npb25zOjp+V2ViUGVybWlzc2lvbnMoKQoreworfQorCitib29sIFdlYlBl
cm1pc3Npb25zOjphbGxvd0ltYWdlKFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJT
ZXR0aW5ncywgY29uc3QgV2ViS2l0OjpXZWJVUkwmIGltYWdlVVJMKQoreworICAgIGJvb2wgYWxs
b3dlZCA9IGVuYWJsZWRQZXJTZXR0aW5ncyAmJiBtX2ltYWdlc0FsbG93ZWQ7CisgICAgaWYgKG1f
ZHVtcENhbGxiYWNrcyAmJiBtX2RlbGVnYXRlKQorICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1l
c3NhZ2Uoc3RkOjpzdHJpbmcoIlBFUk1JU1NJT04gQ0xJRU5UOiBhbGxvd0ltYWdlKCIpICsgbV9k
ZWxlZ2F0ZS0+bm9ybWFsaXplTGF5b3V0VGVzdFVSTChpbWFnZVVSTC5zcGVjKCkpICsgIik6ICIg
KyAoYWxsb3dlZCA/ICJ0cnVlIiA6ICJmYWxzZSIpICsgIlxuIik7CisgICAgcmV0dXJuIGFsbG93
ZWQ7Cit9CisKK2Jvb2wgV2ViUGVybWlzc2lvbnM6OmFsbG93U2NyaXB0RnJvbVNvdXJjZShXZWJL
aXQ6OldlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIGNvbnN0IFdlYktpdDo6V2Vi
VVJMJiBzY3JpcHRVUkwpCit7CisgICAgYm9vbCBhbGxvd2VkID0gZW5hYmxlZFBlclNldHRpbmdz
ICYmIG1fc2NyaXB0c0FsbG93ZWQ7CisgICAgaWYgKG1fZHVtcENhbGxiYWNrcyAmJiBtX2RlbGVn
YXRlKQorICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2Uoc3RkOjpzdHJpbmcoIlBFUk1J
U1NJT04gQ0xJRU5UOiBhbGxvd1NjcmlwdEZyb21Tb3VyY2UoIikgKyBtX2RlbGVnYXRlLT5ub3Jt
YWxpemVMYXlvdXRUZXN0VVJMKHNjcmlwdFVSTC5zcGVjKCkpICsgIik6ICIgKyAoYWxsb3dlZCA/
ICJ0cnVlIiA6ICJmYWxzZSIpICsgIlxuIik7CisgICAgcmV0dXJuIGFsbG93ZWQ7Cit9CisKK2Jv
b2wgV2ViUGVybWlzc2lvbnM6OmFsbG93U3RvcmFnZShXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCkK
K3sKKyAgICByZXR1cm4gbV9zdG9yYWdlQWxsb3dlZDsKK30KKworYm9vbCBXZWJQZXJtaXNzaW9u
czo6YWxsb3dQbHVnaW5zKFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5n
cykKK3sKKyAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzICYmIG1fcGx1Z2luc0FsbG93ZWQ7
Cit9CisKK2Jvb2wgV2ViUGVybWlzc2lvbnM6OmFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVu
dChXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIGNvbnN0IFdlYktp
dDo6V2ViU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBXZWJLaXQ6OldlYlVSTCYpCit7CisgICAgcmV0
dXJuIGVuYWJsZWRQZXJTZXR0aW5ncyB8fCBtX2Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnRBbGxv
d2VkOworfQorCitib29sIFdlYlBlcm1pc3Npb25zOjphbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRl
bnQoV2ViS2l0OjpXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBjb25zdCBXZWJL
aXQ6OldlYlNlY3VyaXR5T3JpZ2luJiwgY29uc3QgV2ViS2l0OjpXZWJVUkwmKQoreworICAgIHJl
dHVybiBlbmFibGVkUGVyU2V0dGluZ3MgfHwgbV9ydW5uaW5nSW5zZWN1cmVDb250ZW50QWxsb3dl
ZDsKK30KKwordm9pZCBXZWJQZXJtaXNzaW9uczo6c2V0SW1hZ2VzQWxsb3dlZChib29sIGltYWdl
c0FsbG93ZWQpCit7CisgICAgbV9pbWFnZXNBbGxvd2VkID0gaW1hZ2VzQWxsb3dlZDsKK30KKwor
dm9pZCBXZWJQZXJtaXNzaW9uczo6c2V0U2NyaXB0c0FsbG93ZWQoYm9vbCBzY3JpcHRzQWxsb3dl
ZCkKK3sKKyAgICBtX3NjcmlwdHNBbGxvd2VkID0gc2NyaXB0c0FsbG93ZWQ7Cit9CisKK3ZvaWQg
V2ViUGVybWlzc2lvbnM6OnNldFN0b3JhZ2VBbGxvd2VkKGJvb2wgc3RvcmFnZUFsbG93ZWQpCit7
CisgICAgbV9zdG9yYWdlQWxsb3dlZCA9IHN0b3JhZ2VBbGxvd2VkOworfQorCit2b2lkIFdlYlBl
cm1pc3Npb25zOjpzZXRQbHVnaW5zQWxsb3dlZChib29sIHBsdWdpbnNBbGxvd2VkKQoreworICAg
IG1fcGx1Z2luc0FsbG93ZWQgPSBwbHVnaW5zQWxsb3dlZDsKK30KKwordm9pZCBXZWJQZXJtaXNz
aW9uczo6c2V0RGlzcGxheWluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQoYm9vbCBhbGxvd2VkKQor
eworICAgIG1fZGlzcGxheWluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQgPSBhbGxvd2VkOworfQor
Cit2b2lkIFdlYlBlcm1pc3Npb25zOjpzZXRSdW5uaW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZChi
b29sIGFsbG93ZWQpCit7CisgICAgbV9ydW5uaW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZCA9IGFs
bG93ZWQ7Cit9CisKK3ZvaWQgV2ViUGVybWlzc2lvbnM6OnNldERlbGVnYXRlKFdlYlRlc3REZWxl
Z2F0ZSogZGVsZWdhdGUpCit7CisgICAgbV9kZWxlZ2F0ZSA9IGRlbGVnYXRlOworfQorCit2b2lk
IFdlYlBlcm1pc3Npb25zOjpzZXREdW1wQ2FsbGJhY2tzKGJvb2wgZHVtcENhbGxiYWNrcykKK3sK
KyAgICBtX2R1bXBDYWxsYmFja3MgPSBkdW1wQ2FsbGJhY2tzOworfQorCit2b2lkIFdlYlBlcm1p
c3Npb25zOjpyZXNldCgpCit7CisgICAgbV9kdW1wQ2FsbGJhY2tzID0gZmFsc2U7CisgICAgbV9p
bWFnZXNBbGxvd2VkID0gdHJ1ZTsKKyAgICBtX3NjcmlwdHNBbGxvd2VkID0gdHJ1ZTsKKyAgICBt
X3N0b3JhZ2VBbGxvd2VkID0gdHJ1ZTsKKyAgICBtX3BsdWdpbnNBbGxvd2VkID0gdHJ1ZTsKKyAg
ICBtX2Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkID0gZmFsc2U7CisgICAgbV9ydW5u
aW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZCA9IGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQZXJtaXNzaW9u
cy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUGVy
bWlzc2lvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWRlZjRjMWJiMWZlMDE2OTZhMjIyM2MzOGQyNTUzNDkw
NGQ3NjdlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvV2ViUGVybWlzc2lvbnMuaApAQCAtMCwwICsxLDgxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
ZWJQZXJtaXNzaW9uc19oCisjZGVmaW5lIFdlYlBlcm1pc3Npb25zX2gKKworI2luY2x1ZGUgIldl
YlBlcm1pc3Npb25DbGllbnQuaCIKKworbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgeworCitjbGFz
cyBXZWJUZXN0RGVsZWdhdGU7CisKK2NsYXNzIFdlYlBlcm1pc3Npb25zIDogcHVibGljIFdlYktp
dDo6V2ViUGVybWlzc2lvbkNsaWVudCB7CitwdWJsaWM6CisgICAgV2ViUGVybWlzc2lvbnMoKTsK
KyAgICB2aXJ0dWFsIH5XZWJQZXJtaXNzaW9ucygpOworCisgICAgLy8gT3ZlcnJpZGUgV2ViUGVy
bWlzc2lvbkNsaWVudCBtZXRob2RzLgorICAgIHZpcnR1YWwgYm9vbCBhbGxvd0ltYWdlKFdlYktp
dDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgY29uc3QgV2ViS2l0OjpXZWJV
UkwmIGltYWdlVVJMKTsKKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTY3JpcHRGcm9tU291cmNlKFdl
YktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgY29uc3QgV2ViS2l0OjpX
ZWJVUkwmIHNjcmlwdFVSTCk7CisgICAgdmlydHVhbCBib29sIGFsbG93U3RvcmFnZShXZWJLaXQ6
OldlYkZyYW1lKiwgYm9vbCBsb2NhbCk7CisgICAgdmlydHVhbCBib29sIGFsbG93UGx1Z2lucyhX
ZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpOworICAgIHZpcnR1YWwg
Ym9vbCBhbGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoV2ViS2l0OjpXZWJGcmFtZSosIGJv
b2wgZW5hYmxlZFBlclNldHRpbmdzLCBjb25zdCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luJiwg
Y29uc3QgV2ViS2l0OjpXZWJVUkwmKTsKKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dSdW5uaW5nSW5z
ZWN1cmVDb250ZW50KFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncywg
Y29uc3QgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFdlYktpdDo6V2ViVVJMJik7
CisKKyAgICAvLyBIb29rcyB0byBzZXQgdGhlIGRpZmZlcmVudCBwb2xpY2llcy4KKyAgICB2b2lk
IHNldEltYWdlc0FsbG93ZWQoYm9vbCk7CisgICAgdm9pZCBzZXRTY3JpcHRzQWxsb3dlZChib29s
KTsKKyAgICB2b2lkIHNldFN0b3JhZ2VBbGxvd2VkKGJvb2wpOworICAgIHZvaWQgc2V0UGx1Z2lu
c0FsbG93ZWQoYm9vbCk7CisgICAgdm9pZCBzZXREaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50QWxs
b3dlZChib29sKTsKKyAgICB2b2lkIHNldFJ1bm5pbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkKGJv
b2wpOworCisgICAgLy8gUmVzZXRzIHRoZSBwb2xpY3kgdG8gYWxsb3cgZXZlcnl0aGluZywgZXhj
ZXB0IGZvciBydW5uaW5nIGluc2VjdXJlIGNvbnRlbnQuCisgICAgdm9pZCByZXNldCgpOworCisg
ICAgdm9pZCBzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqKTsKKyAgICB2b2lkIHNldER1bXBD
YWxsYmFja3MoYm9vbCk7CisKK3ByaXZhdGU6CisgICAgV2ViVGVzdERlbGVnYXRlKiBtX2RlbGVn
YXRlOworICAgIGJvb2wgbV9kdW1wQ2FsbGJhY2tzOworCisgICAgYm9vbCBtX2ltYWdlc0FsbG93
ZWQ7CisgICAgYm9vbCBtX3NjcmlwdHNBbGxvd2VkOworICAgIGJvb2wgbV9zdG9yYWdlQWxsb3dl
ZDsKKyAgICBib29sIG1fcGx1Z2luc0FsbG93ZWQ7CisgICAgYm9vbCBtX2Rpc3BsYXlpbmdJbnNl
Y3VyZUNvbnRlbnRBbGxvd2VkOworICAgIGJvb2wgbV9ydW5uaW5nSW5zZWN1cmVDb250ZW50QWxs
b3dlZDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFNoZWxsLmNwcAppbmRleCAzN2QwYjZkMWI1NGRjYTYxZTBmNzJmYmRkOTM3MGQ0M2FlNjk3
OTUwLi40OGU4YmUxZDFjMzk5MWQwOTE5Nzc0NzU3ZTBiMzRmZDUzMGNiZGE4IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKQEAgLTQzLDcgKzQzLDYgQEAK
ICNpbmNsdWRlICJXZWJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIldlYklEQkZhY3RvcnkuaCIK
ICNpbmNsdWRlICJXZWJUZXN0aW5nU3VwcG9ydC5oIgotI2luY2x1ZGUgIldlYlBlcm1pc3Npb25z
LmgiCiAjaW5jbHVkZSAiV2ViUnVudGltZUZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiV2ViU2NyaXB0
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIldlYlNldHRpbmdzLmgiCkBAIC0xNjEsNyArMTYwLDYg
QEAgVGVzdFNoZWxsOjpUZXN0U2hlbGwoKQogCiB2b2lkIFRlc3RTaGVsbDo6aW5pdGlhbGl6ZSgp
CiB7Ci0gICAgbV93ZWJQZXJtaXNzaW9ucyA9IGFkb3B0UHRyKG5ldyBXZWJQZXJtaXNzaW9ucyh0
aGlzKSk7CiAgICAgbV90ZXN0SW50ZXJmYWNlcyA9IGFkb3B0UHRyKG5ldyBXZWJUZXN0SW50ZXJm
YWNlcygpKTsKICAgICBtX3Rlc3RSdW5uZXIgPSBhZG9wdFB0cihuZXcgRFJUVGVzdFJ1bm5lcih0
aGlzKSk7CiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+c2V0VGVzdFJ1bm5lcihtX3Rlc3RSdW5uZXIu
Z2V0KCkpOwpAQCAtMzE4LDcgKzMxNiw2IEBAIHZvaWQgVGVzdFNoZWxsOjpyZXNpemVXaW5kb3dG
b3JUZXN0KFdlYlZpZXdIb3N0KiB3aW5kb3csIGNvbnN0IFdlYlVSTCYgdXJsKQogdm9pZCBUZXN0
U2hlbGw6OnJlc2V0VGVzdENvbnRyb2xsZXIoKQogewogICAgIHJlc2V0V2ViU2V0dGluZ3MoKndl
YlZpZXcoKSk7Ci0gICAgbV93ZWJQZXJtaXNzaW9ucy0+cmVzZXQoKTsKICAgICBtX3Rlc3RJbnRl
cmZhY2VzLT5yZXNldEFsbCgpOwogICAgIG1fdGVzdFJ1bm5lci0+cmVzZXQoKTsKICAgICBtX3dl
YlZpZXdIb3N0LT5yZXNldCgpOwpAQCAtNzYzLDcgKzc2MCw3IEBAIFdlYlZpZXdIb3N0KiBUZXN0
U2hlbGw6OmNyZWF0ZU5ld1dpbmRvdyhjb25zdCBXZWJLaXQ6OldlYlVSTCYgdXJsLCBEUlREZXZU
b29sc0FnCiAgICAgICAgIGhvc3QtPnNldERlbGVnYXRlKGhvc3QpOwogICAgIGhvc3QtPnNldFBy
b3h5KGhvc3QpOwogICAgIFdlYlZpZXcqIHZpZXcgPSBXZWJWaWV3OjpjcmVhdGUoaG9zdCk7Ci0g
ICAgdmlldy0+c2V0UGVybWlzc2lvbkNsaWVudCh3ZWJQZXJtaXNzaW9ucygpKTsKKyAgICB2aWV3
LT5zZXRQZXJtaXNzaW9uQ2xpZW50KG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+d2Vi
UGVybWlzc2lvbnMoKSk7CiAgICAgdmlldy0+c2V0RGV2VG9vbHNBZ2VudENsaWVudChkZXZUb29s
c0FnZW50KTsKICAgICBob3N0LT5zZXRXZWJXaWRnZXQodmlldyk7CiAgICAgbV9wcmVmcy5hcHBs
eVRvKHZpZXcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFNoZWxsLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAppbmRl
eCAxYzZkZDhmZDdiZGFmZTA2ZGFjZGU0MDU2NDU2YjM2YTQxZmRlYTZiLi41YmY1NGNiYmI4MzA4
YzI4ZDQ1MDA2NDRkNTAyMDEyOWM0MzlhOGQ1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0U2hlbGwuaApAQCAtNTcsNyArNTcsNiBAQCBjbGFzcyBEUlREZXZUb29sc0FnZW50
OwogY2xhc3MgRFJURGV2VG9vbHNDYWxsQXJnczsKIGNsYXNzIERSVERldlRvb2xzQ2xpZW50Owog
Y2xhc3MgTW9ja1dlYlByZXJlbmRlcmluZ1N1cHBvcnQ7Ci1jbGFzcyBXZWJQZXJtaXNzaW9uczsK
IAogc3RydWN0IFRlc3RQYXJhbXMgewogICAgIGJvb2wgZHVtcFRyZWU7CkBAIC05Niw4ICs5NSw2
IEBAIHB1YmxpYzoKICAgICBXZWJUZXN0UnVubmVyOjpXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5j
ZXMoKSB7IHJldHVybiAmbV9wcmVmczsgfQogICAgIHZvaWQgYXBwbHlQcmVmZXJlbmNlcygpIHsg
bV9wcmVmcy5hcHBseVRvKG1fd2ViVmlldyk7IH0KIAotICAgIFdlYlBlcm1pc3Npb25zKiB3ZWJQ
ZXJtaXNzaW9ucygpIHsgcmV0dXJuIG1fd2ViUGVybWlzc2lvbnMuZ2V0KCk7IH0KLQogICAgIHZv
aWQgYmluZEpTT2JqZWN0c1RvV2luZG93KFdlYktpdDo6V2ViRnJhbWUqKTsKICAgICB2b2lkIHJ1
bkZpbGVUZXN0KGNvbnN0IFRlc3RQYXJhbXMmLCBib29sIHNob3VsZER1bXBQaXhlbFRlc3RzKTsK
ICAgICB2b2lkIGNhbGxKU0dDKCk7CkBAIC0yMTAsNyArMjA3LDYgQEAgcHJpdmF0ZToKIAogICAg
IC8vIEJlIGNhcmVmdWwgb2YgdGhlIGRlc3RydWN0aW9uIG9yZGVyIG9mIHRoZSBmb2xsb3dpbmcg
b2JqZWN0cy4KICAgICBUZXN0RXZlbnRQcmludGVyIG1fcHJpbnRlcjsKLSAgICBPd25QdHI8V2Vi
UGVybWlzc2lvbnM+IG1fd2ViUGVybWlzc2lvbnM7CiAgICAgT3duUHRyPERSVERldlRvb2xzQWdl
bnQ+IG1fZHJ0RGV2VG9vbHNBZ2VudDsKICAgICBPd25QdHI8RFJURGV2VG9vbHNDbGllbnQ+IG1f
ZHJ0RGV2VG9vbHNDbGllbnQ7CiAgICAgT3duUHRyPFdlYlRlc3RSdW5uZXI6OldlYlRlc3RJbnRl
cmZhY2VzPiBtX3Rlc3RJbnRlcmZhY2VzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViUGVybWlzc2lvbnMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViUGVybWlzc2lvbnMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
YzdjOWVlZTg0NTdiNmFjOGU4ZDhhNGM4MzFhNDk0MmFiZGIwMzBkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlBlcm1pc3Npb25zLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzMiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAq
IGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYlBlcm1pc3Npb25zLmgiCi0KLSNpbmNsdWRl
ICJEUlRUZXN0UnVubmVyLmgiCi0jaW5jbHVkZSAiVGVzdFNoZWxsLmgiCi0jaW5jbHVkZSAicGxh
dGZvcm0vV2ViQ1N0cmluZy5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTC5oIgotCi1XZWJQ
ZXJtaXNzaW9uczo6V2ViUGVybWlzc2lvbnMoVGVzdFNoZWxsKiBzaGVsbCkKLSAgICA6IG1fc2hl
bGwoc2hlbGwpCi17Ci0gICAgcmVzZXQoKTsKLX0KLQotV2ViUGVybWlzc2lvbnM6On5XZWJQZXJt
aXNzaW9ucygpCi17Ci19Ci0KLWJvb2wgV2ViUGVybWlzc2lvbnM6OmFsbG93SW1hZ2UoV2ViS2l0
OjpXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBjb25zdCBXZWJLaXQ6OldlYlVS
TCYgaW1hZ2VVUkwpCi17Ci0gICAgYm9vbCBhbGxvd2VkID0gZW5hYmxlZFBlclNldHRpbmdzICYm
IG1faW1hZ2VzQWxsb3dlZDsKLSAgICBpZiAodGVzdFJ1bm5lcigpLT5zaG91bGREdW1wUGVybWlz
c2lvbkNsaWVudENhbGxiYWNrcygpKQotICAgICAgICBmcHJpbnRmKHN0ZG91dCwgIlBFUk1JU1NJ
T04gQ0xJRU5UOiBhbGxvd0ltYWdlKCVzKTogJXNcbiIsIG1fc2hlbGwtPm5vcm1hbGl6ZUxheW91
dFRlc3RVUkwoaW1hZ2VVUkwuc3BlYygpKS5jX3N0cigpLCBhbGxvd2VkID8gInRydWUiIDogImZh
bHNlIik7Ci0gICAgcmV0dXJuIGFsbG93ZWQ7Ci19Ci0KLWJvb2wgV2ViUGVybWlzc2lvbnM6OmFs
bG93U2NyaXB0RnJvbVNvdXJjZShXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0
dGluZ3MsIGNvbnN0IFdlYktpdDo6V2ViVVJMJiBzY3JpcHRVUkwpCi17Ci0gICAgYm9vbCBhbGxv
d2VkID0gZW5hYmxlZFBlclNldHRpbmdzICYmIG1fc2NyaXB0c0FsbG93ZWQ7Ci0gICAgaWYgKHRl
c3RSdW5uZXIoKS0+c2hvdWxkRHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MoKSkKLSAgICAg
ICAgZnByaW50ZihzdGRvdXQsICJQRVJNSVNTSU9OIENMSUVOVDogYWxsb3dTY3JpcHRGcm9tU291
cmNlKCVzKTogJXNcbiIsIG1fc2hlbGwtPm5vcm1hbGl6ZUxheW91dFRlc3RVUkwoc2NyaXB0VVJM
LnNwZWMoKSkuY19zdHIoKSwgYWxsb3dlZCA/ICJ0cnVlIiA6ICJmYWxzZSIpOwotICAgIHJldHVy
biBhbGxvd2VkOwotfQotCi1ib29sIFdlYlBlcm1pc3Npb25zOjphbGxvd1N0b3JhZ2UoV2ViS2l0
OjpXZWJGcmFtZSosIGJvb2wpCi17Ci0gICAgcmV0dXJuIG1fc3RvcmFnZUFsbG93ZWQ7Ci19Ci0K
LWJvb2wgV2ViUGVybWlzc2lvbnM6OmFsbG93UGx1Z2lucyhXZWJLaXQ6OldlYkZyYW1lKiwgYm9v
bCBlbmFibGVkUGVyU2V0dGluZ3MpCi17Ci0gICAgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5ncyAm
JiBtX3BsdWdpbnNBbGxvd2VkOwotfQotCi1ib29sIFdlYlBlcm1pc3Npb25zOjphbGxvd0Rpc3Bs
YXlpbmdJbnNlY3VyZUNvbnRlbnQoV2ViS2l0OjpXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNl
dHRpbmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBXZWJLaXQ6OldlYlVS
TCYpCi17Ci0gICAgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5ncyB8fCBtX2Rpc3BsYXlpbmdJbnNl
Y3VyZUNvbnRlbnRBbGxvd2VkOwotfQotCi1ib29sIFdlYlBlcm1pc3Npb25zOjphbGxvd1J1bm5p
bmdJbnNlY3VyZUNvbnRlbnQoV2ViS2l0OjpXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRp
bmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBXZWJLaXQ6OldlYlVSTCYpCi17
Ci0gICAgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5ncyB8fCBtX3J1bm5pbmdJbnNlY3VyZUNvbnRl
bnRBbGxvd2VkOwotfQotCi12b2lkIFdlYlBlcm1pc3Npb25zOjpzZXRJbWFnZXNBbGxvd2VkKGJv
b2wgaW1hZ2VzQWxsb3dlZCkKLXsKLSAgICBtX2ltYWdlc0FsbG93ZWQgPSBpbWFnZXNBbGxvd2Vk
OwotfQotCi12b2lkIFdlYlBlcm1pc3Npb25zOjpzZXRTY3JpcHRzQWxsb3dlZChib29sIHNjcmlw
dHNBbGxvd2VkKQotewotICAgIG1fc2NyaXB0c0FsbG93ZWQgPSBzY3JpcHRzQWxsb3dlZDsKLX0K
LQotdm9pZCBXZWJQZXJtaXNzaW9uczo6c2V0U3RvcmFnZUFsbG93ZWQoYm9vbCBzdG9yYWdlQWxs
b3dlZCkKLXsKLSAgICBtX3N0b3JhZ2VBbGxvd2VkID0gc3RvcmFnZUFsbG93ZWQ7Ci19Ci0KLXZv
aWQgV2ViUGVybWlzc2lvbnM6OnNldFBsdWdpbnNBbGxvd2VkKGJvb2wgcGx1Z2luc0FsbG93ZWQp
Ci17Ci0gICAgbV9wbHVnaW5zQWxsb3dlZCA9IHBsdWdpbnNBbGxvd2VkOwotfQotCi12b2lkIFdl
YlBlcm1pc3Npb25zOjpzZXREaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZChib29sIGFs
bG93ZWQpCi17Ci0gICAgbV9kaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZCA9IGFsbG93
ZWQ7Ci19Ci0KLXZvaWQgV2ViUGVybWlzc2lvbnM6OnNldFJ1bm5pbmdJbnNlY3VyZUNvbnRlbnRB
bGxvd2VkKGJvb2wgYWxsb3dlZCkKLXsKLSAgICBtX3J1bm5pbmdJbnNlY3VyZUNvbnRlbnRBbGxv
d2VkID0gYWxsb3dlZDsKLX0KLQotdm9pZCBXZWJQZXJtaXNzaW9uczo6cmVzZXQoKQotewotICAg
IG1faW1hZ2VzQWxsb3dlZCA9IHRydWU7Ci0gICAgbV9zY3JpcHRzQWxsb3dlZCA9IHRydWU7Ci0g
ICAgbV9zdG9yYWdlQWxsb3dlZCA9IHRydWU7Ci0gICAgbV9wbHVnaW5zQWxsb3dlZCA9IHRydWU7
Ci0gICAgbV9kaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZCA9IGZhbHNlOwotICAgIG1f
cnVubmluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQgPSBmYWxzZTsKLX0KLQotLy8gUHJpdmF0ZSBm
dW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotCi1EUlRUZXN0UnVubmVyKiBXZWJQZXJtaXNzaW9uczo6dGVzdFJ1bm5lcigp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2hlbGwtPnRlc3RSdW5uZXIoKTsKLX0KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlBlcm1pc3Npb25zLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQZXJtaXNzaW9ucy5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjNjI1MDc3ZTg5NWE3ZGQ0ZTI1ZWVhMjBjNWM5MDEzNGZhMzgxNTNi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlBlcm1pc3Npb25zLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBt
ZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2lmbmRlZiBXZWJQZXJtaXNzaW9uc19oCi0jZGVmaW5lIFdlYlBlcm1pc3Np
b25zX2gKLQotI2luY2x1ZGUgIldlYlBlcm1pc3Npb25DbGllbnQuaCIKLQotY2xhc3MgRFJUVGVz
dFJ1bm5lcjsKLWNsYXNzIFRlc3RTaGVsbDsKLQotY2xhc3MgV2ViUGVybWlzc2lvbnMgOiBwdWJs
aWMgV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50IHsKLXB1YmxpYzoKLSAgICBXZWJQZXJtaXNz
aW9ucyhUZXN0U2hlbGwqKTsKLSAgICB2aXJ0dWFsIH5XZWJQZXJtaXNzaW9ucygpOwotCi0gICAg
Ly8gT3ZlcnJpZGUgV2ViUGVybWlzc2lvbkNsaWVudCBtZXRob2RzLgotICAgIHZpcnR1YWwgYm9v
bCBhbGxvd0ltYWdlKFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncywg
Y29uc3QgV2ViS2l0OjpXZWJVUkwmIGltYWdlVVJMKTsKLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dT
Y3JpcHRGcm9tU291cmNlKFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5n
cywgY29uc3QgV2ViS2l0OjpXZWJVUkwmIHNjcmlwdFVSTCk7Ci0gICAgdmlydHVhbCBib29sIGFs
bG93U3RvcmFnZShXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBsb2NhbCk7Ci0gICAgdmlydHVhbCBi
b29sIGFsbG93UGx1Z2lucyhXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGlu
Z3MpOwotICAgIHZpcnR1YWwgYm9vbCBhbGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoV2Vi
S2l0OjpXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJTZWN1cml0
eU9yaWdpbiYsIGNvbnN0IFdlYktpdDo6V2ViVVJMJik7Ci0gICAgdmlydHVhbCBib29sIGFsbG93
UnVubmluZ0luc2VjdXJlQ29udGVudChXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVy
U2V0dGluZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luJiwgY29uc3QgV2ViS2l0OjpXZWJVUkwmKTsK
LQotICAgIC8vIEhvb2tzIHRvIHNldCB0aGUgZGlmZmVyZW50IHBvbGljaWVzLgotICAgIHZvaWQg
c2V0SW1hZ2VzQWxsb3dlZChib29sKTsKLSAgICB2b2lkIHNldFNjcmlwdHNBbGxvd2VkKGJvb2wp
OwotICAgIHZvaWQgc2V0U3RvcmFnZUFsbG93ZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRQbHVnaW5z
QWxsb3dlZChib29sKTsKLSAgICB2b2lkIHNldERpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnRBbGxv
d2VkKGJvb2wpOwotICAgIHZvaWQgc2V0UnVubmluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQoYm9v
bCk7Ci0KLSAgICAvLyBSZXNldHMgdGhlIHBvbGljeSB0byBhbGxvdyBldmVyeXRoaW5nLCBleGNl
cHQgZm9yIHJ1bm5pbmcgaW5zZWN1cmUgY29udGVudC4KLSAgICB2b2lkIHJlc2V0KCk7Ci0KLXBy
aXZhdGU6Ci0gICAgRFJUVGVzdFJ1bm5lciogdGVzdFJ1bm5lcigpIGNvbnN0OwotCi0gICAgLy8g
Tm9uLW93bmluZyBwb2ludGVyLiBUaGUgV2ViUGVybWlzc2lvbnMgaW5zdGFuY2UgaXMgb3duZWQg
YnkgdGhpcyBUZXN0U2hlbGwgaW5zdGFuY2UuCi0gICAgVGVzdFNoZWxsKiBtX3NoZWxsOwotCi0g
ICAgYm9vbCBtX2ltYWdlc0FsbG93ZWQ7Ci0gICAgYm9vbCBtX3NjcmlwdHNBbGxvd2VkOwotICAg
IGJvb2wgbV9zdG9yYWdlQWxsb3dlZDsKLSAgICBib29sIG1fcGx1Z2luc0FsbG93ZWQ7Ci0gICAg
Ym9vbCBtX2Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkOwotICAgIGJvb2wgbV9ydW5u
aW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZDsKLX07Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IDE0Nzc5ZmFmYzZmYzU4ZDFl
ZTNjMDMwYTgxZThmODA5Yzc3NTgxM2YuLmFmZjJhNTViMGNlOTliYTViZjIyOTcxMWZlMTBiYWM4
OWRmNmY5NjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9z
dC5jcHAKQEAgLTEwNTgsNiArMTA1OCwxMSBAQCBzdGQ6OnN0cmluZyBXZWJWaWV3SG9zdDo6bWFr
ZVVSTEVycm9yRGVzY3JpcHRpb24oY29uc3QgV2ViS2l0OjpXZWJVUkxFcnJvciYgZXJybwogICAg
IHJldHVybiB3ZWJraXRfc3VwcG9ydDo6TWFrZVVSTEVycm9yRGVzY3JpcHRpb24oZXJyb3IpOwog
fQogCitzdGQ6OnN0cmluZyBXZWJWaWV3SG9zdDo6bm9ybWFsaXplTGF5b3V0VGVzdFVSTChjb25z
dCBzdGQ6OnN0cmluZyYgdXJsKQoreworICAgIHJldHVybiBtX3NoZWxsLT5ub3JtYWxpemVMYXlv
dXRUZXN0VVJMKHVybCk7Cit9CisKIC8vIFB1YmxpYyBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogV2ViVmlld0hv
c3Q6OldlYlZpZXdIb3N0KFRlc3RTaGVsbCogc2hlbGwpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuaAppbmRleCBmYzhiYmY0MzA5YTVmOGE3YmI5ZDRjMWQ2NTdm
NWQ2NDQzM2FhNGQwLi5jOGUxMzhkN2E4ZjU4MTBmNWMxYTFiOGNlMTJmZWU1Y2I2NzU2OGE4IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTE0OSw2
ICsxNDksNyBAQCBjbGFzcyBXZWJWaWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdDbGll
bnQsIHB1YmxpYyBXZWJLaXQ6OldlYkZyYW1lQ2xpZW50LAogICAgIHZpcnR1YWwgdm9pZCBzZXRD
dXJyZW50V2ViSW50ZW50UmVxdWVzdChjb25zdCBXZWJLaXQ6OldlYkludGVudFJlcXVlc3QmKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViSW50ZW50UmVxdWVzdCogY3VycmVudFdl
YkludGVudFJlcXVlc3QoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIG1ha2VV
UkxFcnJvckRlc2NyaXB0aW9uKGNvbnN0IFdlYktpdDo6V2ViVVJMRXJyb3ImKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIG5vcm1hbGl6ZUxheW91dFRlc3RVUkwoY29uc3Qgc3Rk
OjpzdHJpbmcmKSBPVkVSUklERTsKIAogICAgIC8vIE5hdmlnYXRpb25Ib3N0CiAgICAgdmlydHVh
bCBib29sIG5hdmlnYXRlKGNvbnN0IFRlc3ROYXZpZ2F0aW9uRW50cnkmLCBib29sIHJlbG9hZCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182148</attachid>
            <date>2013-01-10 08:36:39 -0800</date>
            <delta_ts>2013-01-10 13:04:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106548-20130110173341.patch</filename>
            <type>text/plain</type>
            <size>43305</size>
            <attacher name="Dan Carney">dcarney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5Mjk0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDI2MzIyNGE2ZDU1MTAxMTFlZDk0N2VkZGIyZDI1ZmE5
Yjc4Yjg2MS4uMjhkNmNiMTdlMzJkNWJiOWNhMGU1NWIyOWVhNzJkMmFhYzhhZDBhMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcw
IEBACisyMDEzLTAxLTEwICBEYW4gQ2FybmV5ICA8ZGNhcm5leUBnb29nbGUuY29tPgorCisgICAg
ICAgIFtjaHJvbWl1bV0gbW92ZSB3ZWJwZXJtaXNzaW9uY2xpZW50IHJlbGF0ZWQgbWV0aG9kcyB0
byBUZXN0UnVubmVyIGxpYnJhcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNjU0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNwcDoKKyAgICAgICAg
KERSVFRlc3RSdW5uZXI6OkRSVFRlc3RSdW5uZXIpOgorICAgICAgICAoRFJUVGVzdFJ1bm5lcjo6
cmVzZXQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIu
aDoKKyAgICAgICAgKERSVFRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcjo6V2ViVGVzdERlbGVnYXRlOjpub3JtYWxpemVMYXlvdXRUZXN0VVJMKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0
UnVubmVyLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2Vi
VGVzdFJ1bm5lcjo6d2ViUGVybWlzc2lvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6VGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpU
ZXN0UnVubmVyOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OnJlc2V0KToKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXI6OlRlc3RSdW5uZXI6OndlYlBlcm1pc3Npb25zKToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OlRlc3RSdW5uZXI6OmR1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJhY2tzKToKKyAgICAgICAg
KFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OnNldEltYWdlc0FsbG93ZWQpOgorICAgICAgICAo
V2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6c2V0U2NyaXB0c0FsbG93ZWQpOgorICAgICAgICAo
V2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6c2V0U3RvcmFnZUFsbG93ZWQpOgorICAgICAgICAo
V2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6c2V0UGx1Z2luc0FsbG93ZWQpOgorICAgICAgICAo
V2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6c2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRl
bnQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6c2V0QWxsb3dSdW5uaW5n
T2ZJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAg
ICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvV2ViUGVybWlzc2lvbnMuY3BwOiBSZW5hbWVkIGZyb20gVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViUGVybWlzc2lvbnMuY3BwLgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQZXJtaXNzaW9uczo6V2ViUGVybWlz
c2lvbnMpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViUGVybWlzc2lvbnM6On5XZWJQZXJt
aXNzaW9ucyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQZXJtaXNzaW9uczo6YWxsb3dJ
bWFnZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQZXJtaXNzaW9uczo6YWxsb3dTY3Jp
cHRGcm9tU291cmNlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlBlcm1pc3Npb25zOjph
bGxvd1N0b3JhZ2UpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViUGVybWlzc2lvbnM6OmFs
bG93UGx1Z2lucyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQZXJtaXNzaW9uczo6YWxs
b3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Oldl
YlBlcm1pc3Npb25zOjphbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcjo6V2ViUGVybWlzc2lvbnM6OnNldEltYWdlc0FsbG93ZWQpOgorICAgICAgICAo
V2ViVGVzdFJ1bm5lcjo6V2ViUGVybWlzc2lvbnM6OnNldFNjcmlwdHNBbGxvd2VkKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlBlcm1pc3Npb25zOjpzZXRTdG9yYWdlQWxsb3dlZCk6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQZXJtaXNzaW9uczo6c2V0UGx1Z2luc0FsbG93ZWQp
OgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViUGVybWlzc2lvbnM6OnNldERpc3BsYXlpbmdJ
bnNlY3VyZUNvbnRlbnRBbGxvd2VkKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlBlcm1p
c3Npb25zOjpzZXRSdW5uaW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZCk6CisgICAgICAgIChXZWJU
ZXN0UnVubmVyOjpXZWJQZXJtaXNzaW9uczo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViUGVybWlzc2lvbnM6OnNldER1bXBDYWxsYmFja3MpOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcjo6V2ViUGVybWlzc2lvbnM6OnJlc2V0KToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQZXJtaXNzaW9ucy5oOiBSZW5hbWVkIGZy
b20gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUGVybWlzc2lvbnMuaC4KKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViUGVybWlzc2lvbnMpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHA6CisgICAgICAgIChUZXN0U2hl
bGw6OmluaXRpYWxpemUpOgorICAgICAgICAoVGVzdFNoZWxsOjpyZXNldFRlc3RDb250cm9sbGVy
KToKKyAgICAgICAgKFRlc3RTaGVsbDo6Y3JlYXRlTmV3V2luZG93KToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaDoKKyAgICAgICAgKFRlc3RTaGVsbCk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAg
ICAoV2ViVmlld0hvc3Q6Om5vcm1hbGl6ZUxheW91dFRlc3RVUkwpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0Lmg6CisgICAgICAgIChXZWJWaWV3SG9zdCk6
CisKIDIwMTMtMDEtMTAgIFRpbSAnbWl0aHJvJyBBbnNlbGwgIDxtaXRocm9AbWl0aGlzLmNvbT4K
IAogICAgICAgICBDb252ZXJ0aW5nIHRvIHVuaXR0ZXN0MiBzbyB3ZSBjYW4gdXNlIGFzc2VydEl0
ZW1zRXF1YWwsIG1ha2luZyB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
RHVtcFJlbmRlclRyZWUuZ3lwaSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVl
Lmd5cGkKaW5kZXggNjgxYzIyZTQ5ZWVkNWIzM2RiNDhkY2ViNGU2MDgxMTFhYjliOGY4Mi4uMDY1
NTMyZjBiMTI4ZGZjNjE1OTAyYzdhNTgwY2QyNzU5ZGZjODY3MiAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCkBAIC00Niw4ICs0Niw2IEBACiAgICAgICAgICAgICAn
Y2hyb21pdW0vVGVzdFNoZWxsU3R1Yi5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RT
aGVsbFdpbi5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RTaGVsbFgxMS5jcHAnLAot
ICAgICAgICAgICAgJ2Nocm9taXVtL1dlYlBlcm1pc3Npb25zLmNwcCcsCi0gICAgICAgICAgICAn
Y2hyb21pdW0vV2ViUGVybWlzc2lvbnMuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vV2ViVGhl
bWVDb250cm9sRFJUV2luLmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vV2ViVGhlbWVDb250
cm9sRFJUV2luLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1dlYlRoZW1lRW5naW5lRFJUTWFj
Lm1tJywKQEAgLTkxLDYgKzg5LDggQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0UnVubmVyLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1dlYkFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvV2ViRXZlbnRTZW5kZXIuY3BwJywKKyAgICAgICAgICAgICdjaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9XZWJQZXJtaXNzaW9ucy5jcHAnLAorICAgICAgICAgICAgJ2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBlcm1pc3Npb25zLmgnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNwcCcsCiAgICAgICAgICAgICAnY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGFzay5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RJbnRlcmZhY2VzLmNwcCcsCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3BwCmluZGV4IDc5MDkxYmQ5ODcyMTdm
YTcyYWQ5MzgzNDEyMWI2N2M2YWQ3ODQ1YTQuLjRkMDA2ZWMzM2QzNWU0MjMzNDM2YTM0MWQ4M2Ey
ZDc4ZjYyZTY1NWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RS
VFRlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRl
c3RSdW5uZXIuY3BwCkBAIC01Miw3ICs1Miw2IEBACiAjaW5jbHVkZSAiV2ViSW5wdXRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiV2ViS2l0LmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJlc2Vu
dGVyLmgiCi0jaW5jbHVkZSAiV2ViUGVybWlzc2lvbnMuaCIKICNpbmNsdWRlICJXZWJQcmludFBh
cmFtcy5oIgogI2luY2x1ZGUgIldlYlNjcmlwdFNvdXJjZS5oIgogI2luY2x1ZGUgIldlYlNlY3Vy
aXR5UG9saWN5LmgiCkBAIC0xMjEsNyArMTIwLDYgQEAgRFJUVGVzdFJ1bm5lcjo6RFJUVGVzdFJ1
bm5lcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoImR1bXBQcm9ncmVzc0Zpbmlz
aGVkQ2FsbGJhY2siLCAmRFJUVGVzdFJ1bm5lcjo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFj
ayk7CiAgICAgYmluZE1ldGhvZCgiZHVtcFNlbGVjdGlvblJlY3QiLCAmRFJUVGVzdFJ1bm5lcjo6
ZHVtcFNlbGVjdGlvblJlY3QpOwogICAgIGJpbmRNZXRob2QoImR1bXBTdGF0dXNDYWxsYmFja3Mi
LCAmRFJUVGVzdFJ1bm5lcjo6ZHVtcFdpbmRvd1N0YXR1c0NoYW5nZXMpOwotICAgIGJpbmRNZXRo
b2QoImR1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJhY2tzIiwgJkRSVFRlc3RSdW5uZXI6OmR1bXBQ
ZXJtaXNzaW9uQ2xpZW50Q2FsbGJhY2tzKTsKICAgICBiaW5kTWV0aG9kKCJlbmFibGVBdXRvUmVz
aXplTW9kZSIsICZEUlRUZXN0UnVubmVyOjplbmFibGVBdXRvUmVzaXplTW9kZSk7CiAgICAgYmlu
ZE1ldGhvZCgiZXZhbHVhdGVJbldlYkluc3BlY3RvciIsICZEUlRUZXN0UnVubmVyOjpldmFsdWF0
ZUluV2ViSW5zcGVjdG9yKTsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKQEAgLTEzOCw4ICsx
MzYsNiBAQCBEUlRUZXN0UnVubmVyOjpEUlRUZXN0UnVubmVyKFRlc3RTaGVsbCogc2hlbGwpCiAg
ICAgYmluZE1ldGhvZCgicXVldWVOb25Mb2FkaW5nU2NyaXB0IiwgJkRSVFRlc3RSdW5uZXI6OnF1
ZXVlTm9uTG9hZGluZ1NjcmlwdCk7CiAgICAgYmluZE1ldGhvZCgicXVldWVSZWxvYWQiLCAmRFJU
VGVzdFJ1bm5lcjo6cXVldWVSZWxvYWQpOwogICAgIGJpbmRNZXRob2QoInJlcGFpbnRTd2VlcEhv
cml6b250YWxseSIsICZEUlRUZXN0UnVubmVyOjpyZXBhaW50U3dlZXBIb3Jpem9udGFsbHkpOwot
ICAgIGJpbmRNZXRob2QoInNldEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50IiwgJkRSVFRl
c3RSdW5uZXI6OnNldEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KTsKLSAgICBiaW5kTWV0
aG9kKCJzZXRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCIsICZEUlRUZXN0UnVubmVyOjpz
ZXRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCk7CiAgICAgYmluZE1ldGhvZCgic2V0QWx3
YXlzQWNjZXB0Q29va2llcyIsICZEUlRUZXN0UnVubmVyOjpzZXRBbHdheXNBY2NlcHRDb29raWVz
KTsKICAgICBiaW5kTWV0aG9kKCJzZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUi
LCAmRFJUVGVzdFJ1bm5lcjo6c2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKTsK
ICAgICBiaW5kTWV0aG9kKCJzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSIsICZEUlRUZXN0UnVubmVy
OjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSk7CkBAIC0xNzAsMTAgKzE2Niw2IEBAIERSVFRlc3RS
dW5uZXI6OkRSVFRlc3RSdW5uZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9kKCJ3
YWl0Rm9yUG9saWN5RGVsZWdhdGUiLCAmRFJUVGVzdFJ1bm5lcjo6d2FpdEZvclBvbGljeURlbGVn
YXRlKTsKICAgICBiaW5kTWV0aG9kKCJ3YWl0VW50aWxEb25lIiwgJkRSVFRlc3RSdW5uZXI6Ondh
aXRVbnRpbERvbmUpOwogICAgIGJpbmRNZXRob2QoIndpbmRvd0NvdW50IiwgJkRSVFRlc3RSdW5u
ZXI6OndpbmRvd0NvdW50KTsKLSAgICBiaW5kTWV0aG9kKCJzZXRJbWFnZXNBbGxvd2VkIiwgJkRS
VFRlc3RSdW5uZXI6OnNldEltYWdlc0FsbG93ZWQpOwotICAgIGJpbmRNZXRob2QoInNldFNjcmlw
dHNBbGxvd2VkIiwgJkRSVFRlc3RSdW5uZXI6OnNldFNjcmlwdHNBbGxvd2VkKTsKLSAgICBiaW5k
TWV0aG9kKCJzZXRTdG9yYWdlQWxsb3dlZCIsICZEUlRUZXN0UnVubmVyOjpzZXRTdG9yYWdlQWxs
b3dlZCk7Ci0gICAgYmluZE1ldGhvZCgic2V0UGx1Z2luc0FsbG93ZWQiLCAmRFJUVGVzdFJ1bm5l
cjo6c2V0UGx1Z2luc0FsbG93ZWQpOwogCiAgICAgYmluZE1ldGhvZCgic2V0U2hvdWxkU3RheU9u
UGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQiLCAmRFJUVGVzdFJ1bm5lcjo6c2V0U2hvdWxk
U3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQpOwogCkBAIC0yNTQsMTIgKzI0Niw2
IEBAIHZvaWQgRFJUVGVzdFJ1bm5lcjo6ZHVtcFdpbmRvd1N0YXR1c0NoYW5nZXMoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCoKICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAot
dm9pZCBEUlRUZXN0UnVubmVyOjpkdW1wUGVybWlzc2lvbkNsaWVudENhbGxiYWNrcyhjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgbV9kdW1wUGVybWlz
c2lvbkNsaWVudENhbGxiYWNrcyA9IHRydWU7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19Ci0K
IHZvaWQgRFJUVGVzdFJ1bm5lcjo6d2FpdFVudGlsRG9uZShjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgaWYgKCF3ZWJraXRfc3VwcG9ydDo6QmVpbmdE
ZWJ1Z2dlZCgpKQpAQCAtNDQ4LDcgKzQzNCw2IEBAIHZvaWQgRFJUVGVzdFJ1bm5lcjo6cmVzZXQo
KQogICAgIG1fZHVtcEJhY2tGb3J3YXJkTGlzdCA9IGZhbHNlOwogICAgIG1fZHVtcFdpbmRvd1N0
YXR1c0NoYW5nZXMgPSBmYWxzZTsKICAgICBtX2R1bXBTZWxlY3Rpb25SZWN0ID0gZmFsc2U7Ci0g
ICAgbV9kdW1wUGVybWlzc2lvbkNsaWVudENhbGxiYWNrcyA9IGZhbHNlOwogICAgIG1fd2FpdFVu
dGlsRG9uZSA9IGZhbHNlOwogICAgIG1fdGVzdFJlcGFpbnQgPSBmYWxzZTsKICAgICBtX3N3ZWVw
SG9yaXpvbnRhbGx5ID0gZmFsc2U7CkBAIC01MzAsMzQgKzUxNSw2IEBAIHZvaWQgRFJUVGVzdFJ1
bm5lcjo6c2V0V2luZG93SXNLZXkoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENw
cFZhcmlhbnQqCiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAKLXZvaWQgRFJUVGVzdFJ1bm5l
cjo6c2V0SW1hZ2VzQWxsb3dlZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3Bw
VmFyaWFudCogcmVzdWx0KQotewotICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1
bWVudHNbMF0uaXNCb29sKCkpCi0gICAgICAgIG1fc2hlbGwtPndlYlBlcm1pc3Npb25zKCktPnNl
dEltYWdlc0FsbG93ZWQoYXJndW1lbnRzWzBdLnRvQm9vbGVhbigpKTsKLSAgICByZXN1bHQtPnNl
dE51bGwoKTsKLX0KLQotdm9pZCBEUlRUZXN0UnVubmVyOjpzZXRTY3JpcHRzQWxsb3dlZChjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAg
IGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCi0gICAg
ICAgIG1fc2hlbGwtPndlYlBlcm1pc3Npb25zKCktPnNldFNjcmlwdHNBbGxvd2VkKGFyZ3VtZW50
c1swXS50b0Jvb2xlYW4oKSk7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19Ci0KLXZvaWQgRFJU
VGVzdFJ1bm5lcjo6c2V0U3RvcmFnZUFsbG93ZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+
IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQotICAgICAgICBtX3NoZWxsLT53ZWJQZXJtaXNz
aW9ucygpLT5zZXRTdG9yYWdlQWxsb3dlZChhcmd1bWVudHNbMF0udG9Cb29sZWFuKCkpOwotICAg
IHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCi12b2lkIERSVFRlc3RSdW5uZXI6OnNldFBsdWdpbnNB
bGxvd2VkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1
bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5pc0Jv
b2woKSkKLSAgICAgICAgbV9zaGVsbC0+d2ViUGVybWlzc2lvbnMoKS0+c2V0UGx1Z2luc0FsbG93
ZWQoYXJndW1lbnRzWzBdLnRvQm9vbGVhbigpKTsKLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0K
LQogdm9pZCBEUlRUZXN0UnVubmVyOjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShjb25zdCBDcHBB
cmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIGlmIChh
cmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpIHsKQEAgLTc1OCwy
MiArNzE1LDYgQEAgdm9pZCBEUlRUZXN0UnVubmVyOjpyZXBhaW50U3dlZXBIb3Jpem9udGFsbHko
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCoKICAgICByZXN1bHQtPnNldE51bGwo
KTsKIH0KIAotdm9pZCBEUlRUZXN0UnVubmVyOjpzZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29u
dGVudChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0
KQotewotICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29s
KCkpCi0gICAgICAgIG1fc2hlbGwtPndlYlBlcm1pc3Npb25zKCktPnNldERpc3BsYXlpbmdJbnNl
Y3VyZUNvbnRlbnRBbGxvd2VkKGFyZ3VtZW50c1swXS50b0Jvb2xlYW4oKSk7Ci0KLSAgICByZXN1
bHQtPnNldE51bGwoKTsKLX0KLQotdm9pZCBEUlRUZXN0UnVubmVyOjpzZXRBbGxvd1J1bm5pbmdP
Zkluc2VjdXJlQ29udGVudChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFy
aWFudCogcmVzdWx0KQotewotICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVu
dHNbMF0uaXNCb29sKCkpCi0gICAgICAgIG1fc2hlbGwtPndlYlBlcm1pc3Npb25zKCktPnNldFJ1
bm5pbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkKGFyZ3VtZW50c1swXS52YWx1ZS5ib29sVmFsdWUp
OwotCi0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19Ci0KIHZvaWQgRFJUVGVzdFJ1bm5lcjo6Y2xl
YXJBbGxEYXRhYmFzZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlh
bnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuaAppbmRleCBkYjI2Y2RiMjIwYjgxNjVmNTJh
MjRmMmU5YWIxNTMwMjQ4ZGJiNGRmLi40YzI5NjE4NDczMWY5MzQ0ZjNhZDE2NjE2YjhjYTRiNDUz
Nzc5MDVjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0
UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5l
ci5oCkBAIC0xNjIsOSArMTYyLDYgQEAgcHVibGljOgogICAgIHZvaWQgdGVzdFJlcGFpbnQoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgcmVwYWludFN3ZWVw
SG9yaXpvbnRhbGx5KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAotICAg
IHZvaWQgc2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0QWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNv
bnRlbnQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotCiAgICAgLy8gQ2xl
YXJzIGFsbCBkYXRhYmFzZXMuCiAgICAgdm9pZCBjbGVhckFsbERhdGFiYXNlcyhjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgLy8gU2V0cyB0aGUgZGVmYXVsdCBxdW90
YSBmb3IgYWxsIG9yaWdpbnMKQEAgLTIwMiwxMyArMTk5LDYgQEAgcHVibGljOgogICAgIHZvaWQg
d2FzTW9ja1NwZWVjaFJlY29nbml0aW9uQWJvcnRlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CiAjZW5kaWYKIAotICAgIC8vIFdlYlBlcm1pc3Npb25DbGllbnQgcmVsYXRl
ZC4KLSAgICB2b2lkIHNldEltYWdlc0FsbG93ZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCopOwotICAgIHZvaWQgc2V0U2NyaXB0c0FsbG93ZWQoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0U3RvcmFnZUFsbG93ZWQoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0UGx1Z2luc0FsbG93ZWQo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgZHVtcFBlcm1p
c3Npb25DbGllbnRDYWxsYmFja3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwotCiAgICAgdm9pZCBzZXRTaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9h
ZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICNpZiBFTkFCTEUoUE9J
TlRFUl9MT0NLKQpAQCAtMjMxLDcgKzIyMSw2IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZER1
bXBTdGF0dXNDYWxsYmFja3MoKSB7IHJldHVybiBtX2R1bXBXaW5kb3dTdGF0dXNDaGFuZ2VzOyB9
CiAgICAgYm9vbCBzaG91bGREdW1wU2VsZWN0aW9uUmVjdCgpIHsgcmV0dXJuIG1fZHVtcFNlbGVj
dGlvblJlY3Q7IH0KICAgICBib29sIHNob3VsZER1bXBCYWNrRm9yd2FyZExpc3QoKSB7IHJldHVy
biBtX2R1bXBCYWNrRm9yd2FyZExpc3Q7IH0KLSAgICBib29sIHNob3VsZER1bXBQZXJtaXNzaW9u
Q2xpZW50Q2FsbGJhY2tzKCkgeyByZXR1cm4gbV9kdW1wUGVybWlzc2lvbkNsaWVudENhbGxiYWNr
czsgfQogICAgIGJvb2wgZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCgpIHsgcmV0dXJuIG1fZGVm
ZXJNYWluUmVzb3VyY2VEYXRhTG9hZDsgfQogICAgIHZvaWQgc2V0U2hvd0RlYnVnTGF5ZXJUcmVl
KGJvb2wgdmFsdWUpIHsgbV9zaG93RGVidWdMYXllclRyZWUgPSB2YWx1ZTsgfQogICAgIHZvaWQg
c2V0VGl0bGVUZXh0RGlyZWN0aW9uKFdlYktpdDo6V2ViVGV4dERpcmVjdGlvbiBkaXIpCkBAIC0z
MzYsMTAgKzMyNSw2IEBAIHByaXZhdGU6CiAgICAgLy8gSWYgdHJ1ZSwgdGhlIHRlc3Rfc2hlbGwg
d2lsbCBkdW1wIGFsbCBjaGFuZ2VzIHRvIHdpbmRvdy5zdGF0dXMuCiAgICAgYm9vbCBtX2R1bXBX
aW5kb3dTdGF0dXNDaGFuZ2VzOwogCi0gICAgLy8gSWYgdHJ1ZSwgb3V0cHV0IGEgZGVzY3JpcHRp
dmUgbGluZSBlYWNoIHRpbWUgYSBwZXJtaXNzaW9uIGNsaWVudAotICAgIC8vIGNhbGxiYWNrIGlz
IGludm9rZWQuIEN1cnJlbnRseSBvbmx5IGltcGxlbWVudGVkIGZvciBhbGxvd0ltYWdlLgotICAg
IGJvb2wgbV9kdW1wUGVybWlzc2lvbkNsaWVudENhbGxiYWNrczsKLQogICAgIC8vIFdoZW4gcmVz
ZXQgaXMgY2FsbGVkLCBnbyB0aHJvdWdoIGFuZCBjbG9zZSBhbGwgYnV0IHRoZSBtYWluIHRlc3Qg
c2hlbGwKICAgICAvLyB3aW5kb3cuIEJ5IGRlZmF1bHQsIHNldCB0byB0cnVlIGJ1dCB0b2dnbGVk
IHRvIGZhbHNlIHVzaW5nCiAgICAgLy8gc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBs
ZXRlKCkuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3B1YmxpYy9XZWJUZXN0RGVsZWdhdGUuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oCmluZGV4IGIyYTkzYmE5ZWU4
NmU2NTc4MmFlMjkxNTBmOWY0ZGFlNWUyMTY3ZTQuLmY4NGRkYzhmZmYxYjM4MzA3ZDgzYWUwYjA3
YTZjZjAzYTJhNTdmZTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oCkBAIC03
Nyw2ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVudFdlYkludGVu
dFJlcXVlc3QoY29uc3QgV2ViS2l0OjpXZWJJbnRlbnRSZXF1ZXN0JikgeyB9OwogICAgIHZpcnR1
YWwgV2ViS2l0OjpXZWJJbnRlbnRSZXF1ZXN0KiBjdXJyZW50V2ViSW50ZW50UmVxdWVzdCgpIHsg
cmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIG1ha2VVUkxFcnJvckRlc2NyaXB0
aW9uKGNvbnN0IFdlYktpdDo6V2ViVVJMRXJyb3ImKSB7IHJldHVybiBzdGQ6OnN0cmluZygpOyB9
CisgICAgdmlydHVhbCBzdGQ6OnN0cmluZyBub3JtYWxpemVMYXlvdXRUZXN0VVJMKGNvbnN0IHN0
ZDo6c3RyaW5nJikgeyByZXR1cm4gc3RkOjpzdHJpbmcoKTsgfQogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVz
dFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJs
aWMvV2ViVGVzdFJ1bm5lci5oCmluZGV4IDE3YmJjYjczZDc1Y2VlMmIzMmRkZWQ0ZTgxM2ViZmI1
Yjc2N2I5NTQuLmZiM2Y2OGUyZjM0NmJiMDM4OTY5YTI3NzBkMmZjYjczNTdhYmMyM2QgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dl
YlRlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3B1YmxpYy9XZWJUZXN0UnVubmVyLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiBjbGFzcyBXZWJBcnJheUJ1ZmZlclZpZXc7CitjbGFzcyBXZWJQZXJtaXNzaW9u
Q2xpZW50OwogfQogCiBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CkBAIC02MSw2ICs2Miw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNr
cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBS
ZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcygpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBXZWJLaXQ6OldlYlBlcm1pc3Npb25DbGllbnQq
IHdlYlBlcm1pc3Npb25zKCkgY29uc3QgeyByZXR1cm4gMDsgfQogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5l
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
UnVubmVyLmNwcAppbmRleCBiYjk2NWY0OWI1MzEzZmExZGNlMGMyYmI5NmNmNjg2ZWQ2ODFkYTk0
Li4yZTNjMzk2ZjViNmU0OTU2ZDQxMjk4N2MzYmVhNTk3ODkyMmNkYTZiIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
UnVubmVyLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5o
IgogI2luY2x1ZGUgIldlYkludGVudC5oIgogI2luY2x1ZGUgIldlYkludGVudFJlcXVlc3QuaCIK
KyNpbmNsdWRlICJXZWJQZXJtaXNzaW9ucy5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgi
CiAjaW5jbHVkZSAiV2ViU2NyaXB0U291cmNlLmgiCiAjaW5jbHVkZSAiV2ViU2VjdXJpdHlQb2xp
Y3kuaCIKQEAgLTgyLDYgKzgzLDcgQEAgVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcigpCiAgICAgLCBt
X2RlbGVnYXRlKDApCiAgICAgLCBtX3dlYlZpZXcoMCkKICAgICAsIG1faW50ZW50Q2xpZW50KGFk
b3B0UHRyKG5ldyBFbXB0eVdlYkRlbGl2ZXJlZEludGVudENsaWVudCkpCisgICAgLCBtX3dlYlBl
cm1pc3Npb25zKGFkb3B0UHRyKG5ldyBXZWJQZXJtaXNzaW9ucykpCiB7CiAgICAgLy8gTWV0aG9k
cyBpbXBsZW1lbnRlZCBpbiB0ZXJtcyBvZiBjaHJvbWl1bSdzIHB1YmxpYyBXZWJLaXQgQVBJLgog
ICAgIGJpbmRNZXRob2QoInNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyIsICZUZXN0UnVu
bmVyOjpzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMpOwpAQCAtMTQ3LDYgKzE0OSwxMyBA
QCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKICAgICBiaW5kTWV0aG9kKCJkdW1wUmVzb3VyY2VM
b2FkQ2FsbGJhY2tzIiwgJlRlc3RSdW5uZXI6OmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MpOwog
ICAgIGJpbmRNZXRob2QoImR1bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MiLCAmVGVzdFJ1bm5l
cjo6ZHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcyk7CiAgICAgYmluZE1ldGhvZCgiZHVtcFJl
c291cmNlUmVzcG9uc2VNSU1FVHlwZXMiLCAmVGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVzcG9u
c2VNSU1FVHlwZXMpOworICAgIGJpbmRNZXRob2QoImR1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJh
Y2tzIiwgJlRlc3RSdW5uZXI6OmR1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJhY2tzKTsKKyAgICBi
aW5kTWV0aG9kKCJzZXRJbWFnZXNBbGxvd2VkIiwgJlRlc3RSdW5uZXI6OnNldEltYWdlc0FsbG93
ZWQpOworICAgIGJpbmRNZXRob2QoInNldFNjcmlwdHNBbGxvd2VkIiwgJlRlc3RSdW5uZXI6OnNl
dFNjcmlwdHNBbGxvd2VkKTsKKyAgICBiaW5kTWV0aG9kKCJzZXRTdG9yYWdlQWxsb3dlZCIsICZU
ZXN0UnVubmVyOjpzZXRTdG9yYWdlQWxsb3dlZCk7CisgICAgYmluZE1ldGhvZCgic2V0UGx1Z2lu
c0FsbG93ZWQiLCAmVGVzdFJ1bm5lcjo6c2V0UGx1Z2luc0FsbG93ZWQpOworICAgIGJpbmRNZXRo
b2QoInNldEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50IiwgJlRlc3RSdW5uZXI6OnNldEFs
bG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KTsKKyAgICBiaW5kTWV0aG9kKCJzZXRBbGxvd1J1
bm5pbmdPZkluc2VjdXJlQ29udGVudCIsICZUZXN0UnVubmVyOjpzZXRBbGxvd1J1bm5pbmdPZklu
c2VjdXJlQ29udGVudCk7CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIG1ldGhvZHMgaW50ZXJhY3Qg
d2l0aCB0aGUgV2ViVGVzdFByb3h5LgogICAgIGJpbmRNZXRob2QoInNlbmRXZWJJbnRlbnRSZXNw
b25zZSIsICZUZXN0UnVubmVyOjpzZW5kV2ViSW50ZW50UmVzcG9uc2UpOwpAQCAtMTkzLDYgKzIw
MiwxMiBAQCBUZXN0UnVubmVyOjp+VGVzdFJ1bm5lcigpCiB7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5l
cjo6c2V0RGVsZWdhdGUoV2ViVGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkKK3sKKyAgICBtX2RlbGVn
YXRlID0gZGVsZWdhdGU7CisgICAgbV93ZWJQZXJtaXNzaW9ucy0+c2V0RGVsZWdhdGUoZGVsZWdh
dGUpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnJlc2V0KCkKIHsKICAgICBpZiAobV93ZWJWaWV3
KSB7CkBAIC0yMzEsNiArMjQ2LDggQEAgdm9pZCBUZXN0UnVubmVyOjpyZXNldCgpCiAgICAgbV9w
bGF0Zm9ybU5hbWUuc2V0KCJjaHJvbWl1bSIpOwogCiAgICAgbV91c2VyU3R5bGVTaGVldExvY2F0
aW9uID0gV2ViVVJMKCk7CisKKyAgICBtX3dlYlBlcm1pc3Npb25zLT5yZXNldCgpOwogfQogCiB2
b2lkIFRlc3RSdW5uZXI6OnNldFRlc3RJc1J1bm5pbmcoYm9vbCBydW5uaW5nKQpAQCAtMzMzLDYg
KzM1MCw2MSBAQCBib29sIFRlc3RSdW5uZXI6OnNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlN
RVR5cGVzKCkgY29uc3QKICAgICByZXR1cm4gbV90ZXN0SXNSdW5uaW5nICYmIG1fZHVtcFJlc291
cmNlUmVzcG9uc2VNSU1FVHlwZXM7CiB9CiAKK1dlYlBlcm1pc3Npb25DbGllbnQqIFRlc3RSdW5u
ZXI6OndlYlBlcm1pc3Npb25zKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV93ZWJQZXJtaXNzaW9u
cy5nZXQoKTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpkdW1wUGVybWlzc2lvbkNsaWVudENhbGxi
YWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAg
bV93ZWJQZXJtaXNzaW9ucy0+c2V0RHVtcENhbGxiYWNrcyh0cnVlKTsKKyAgICByZXN1bHQtPnNl
dE51bGwoKTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpzZXRJbWFnZXNBbGxvd2VkKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgaWYg
KGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2woKSkKKyAgICAgICAg
bV93ZWJQZXJtaXNzaW9ucy0+c2V0SW1hZ2VzQWxsb3dlZChhcmd1bWVudHNbMF0udG9Cb29sZWFu
KCkpOworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OnNldFNj
cmlwdHNBbGxvd2VkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50
KiByZXN1bHQpCit7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1sw
XS5pc0Jvb2woKSkKKyAgICAgICAgbV93ZWJQZXJtaXNzaW9ucy0+c2V0U2NyaXB0c0FsbG93ZWQo
YXJndW1lbnRzWzBdLnRvQm9vbGVhbigpKTsKKyAgICByZXN1bHQtPnNldE51bGwoKTsKK30KKwor
dm9pZCBUZXN0UnVubmVyOjpzZXRTdG9yYWdlQWxsb3dlZChjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIGlmIChhcmd1bWVudHMuc2l6
ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCisgICAgICAgIG1fd2ViUGVybWlzc2lv
bnMtPnNldFN0b3JhZ2VBbGxvd2VkKGFyZ3VtZW50c1swXS50b0Jvb2xlYW4oKSk7CisgICAgcmVz
dWx0LT5zZXROdWxsKCk7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0UGx1Z2luc0FsbG93ZWQo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sK
KyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQor
ICAgICAgICBtX3dlYlBlcm1pc3Npb25zLT5zZXRQbHVnaW5zQWxsb3dlZChhcmd1bWVudHNbMF0u
dG9Cb29sZWFuKCkpOworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworfQorCit2b2lkIFRlc3RSdW5u
ZXI6OnNldEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgaWYgKGFyZ3VtZW50cy5z
aXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2woKSkKKyAgICAgICAgbV93ZWJQZXJtaXNz
aW9ucy0+c2V0RGlzcGxheWluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQoYXJndW1lbnRzWzBdLnRv
Qm9vbGVhbigpKTsKKworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworfQorCit2b2lkIFRlc3RSdW5u
ZXI6OnNldEFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgaWYgKGFyZ3VtZW50cy5z
aXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2woKSkKKyAgICAgICAgbV93ZWJQZXJtaXNz
aW9ucy0+c2V0UnVubmluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQoYXJndW1lbnRzWzBdLnZhbHVl
LmJvb2xWYWx1ZSk7CisKKyAgICByZXN1bHQtPnNldE51bGwoKTsKK30KKwogdm9pZCBUZXN0UnVu
bmVyOjpzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBpZiAoYXJndW1lbnRzLnNp
emUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCmluZGV4
IGJmMTU1MTgyNTRkMGFlMmI1NTJlMWFkMDJkZGE0Yzk4NjNmMTI0YWYuLmI5MzdiZTVhMTFjZTYy
YjQwMWE3OWZjMDFlMWQzNjFiYmIyZGU1N2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKQEAgLTQ0LDYg
KzQ0LDcgQEAgY2xhc3MgV2ViVmlldzsKIAogbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgewogCitj
bGFzcyBXZWJQZXJtaXNzaW9uczsKIGNsYXNzIFdlYlRlc3REZWxlZ2F0ZTsKIAogY2xhc3MgVGVz
dFJ1bm5lciA6IHB1YmxpYyBDcHBCb3VuZENsYXNzLCBwdWJsaWMgV2ViVGVzdFJ1bm5lciB7CkBA
IC01Myw3ICs1NCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEZJWE1FOiBvbmNlIERSVFRlc3RSdW5u
ZXIgaXMgbW92ZWQgZW50aXJlbHkgdG8gdGhpcyBjbGFzcywgY2hhbmdlIHRoaXMKICAgICAvLyBt
ZXRob2QgdG8gdGFrZSBhIFRlc3REZWxlZ2F0ZSogaW5zdGVhZC4KLSAgICB2b2lkIHNldERlbGVn
YXRlKFdlYlRlc3REZWxlZ2F0ZSogZGVsZWdhdGUpIHsgbV9kZWxlZ2F0ZSA9IGRlbGVnYXRlOyB9
CisgICAgdm9pZCBzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqKTsKICAgICB2b2lkIHNldFdl
YlZpZXcoV2ViS2l0OjpXZWJWaWV3KiB3ZWJWaWV3KSB7IG1fd2ViVmlldyA9IHdlYlZpZXc7IH0K
IAogICAgIHZvaWQgcmVzZXQoKTsKQEAgLTc5LDYgKzgwLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MoKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlUmVzcG9u
c2VNSU1FVHlwZXMoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViUGVy
bWlzc2lvbkNsaWVudCogd2ViUGVybWlzc2lvbnMoKSBjb25zdCBPVkVSUklERTsKIAogcHJvdGVj
dGVkOgogICAgIC8vIEZJWE1FOiBtYWtlIHRoZXNlIHByaXZhdGUgb25jZSB0aGUgbW92ZSBmcm9t
IERSVFRlc3RSdW5uZXIgdG8gVGVzdFJ1bm5lcgpAQCAtMjU5LDYgKzI2MSwxNSBAQCBwcml2YXRl
OgogICAgIC8vIHRoYXQgbWF5IGJlIHByZXNlbnQuCiAgICAgdm9pZCBkdW1wUmVzb3VyY2VSZXNw
b25zZU1JTUVUeXBlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKKyAg
ICAvLyBXZWJQZXJtaXNzaW9uQ2xpZW50IHJlbGF0ZWQuCisgICAgdm9pZCBzZXRJbWFnZXNBbGxv
d2VkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNldFNj
cmlwdHNBbGxvd2VkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2
b2lkIHNldFN0b3JhZ2VBbGxvd2VkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKKyAgICB2b2lkIHNldFBsdWdpbnNBbGxvd2VkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENw
cFZhcmlhbnQqKTsKKyAgICB2b2lkIHNldEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNldEFsbG93UnVu
bmluZ09mSW5zZWN1cmVDb250ZW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKKyAgICB2b2lkIGR1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJhY2tzKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKwogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgIC8v
IE1ldGhvZHMgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgV2ViVGVzdFByb3h5CiAKQEAgLTM2OSw2ICsz
ODAsOSBAQCBwcml2YXRlOgogCiAgICAgLy8gTW9jayBvYmplY3QgZm9yIHRlc3RpbmcgZGVsaXZl
cmluZyB3ZWIgaW50ZW50cy4KICAgICBPd25QdHI8V2ViS2l0OjpXZWJEZWxpdmVyZWRJbnRlbnRD
bGllbnQ+IG1faW50ZW50Q2xpZW50OworCisgICAgLy8gV2ViUGVybWlzc2lvbkNsaWVudCBtb2Nr
IG9iamVjdC4KKyAgICBPd25QdHI8V2ViUGVybWlzc2lvbnM+IG1fd2ViUGVybWlzc2lvbnM7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9XZWJQZXJtaXNzaW9ucy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9XZWJQZXJtaXNzaW9ucy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTIyNjk0ZTUw
NjFmZGJmMWFjNGUwZWMzYzFhN2NhYzllYTMwNjEyZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBlcm1pc3Npb25zLmNw
cApAQCAtMCwwICsxLDEzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQZXJt
aXNzaW9ucy5oIgorCisjaW5jbHVkZSAiV2ViVGVzdERlbGVnYXRlLmgiCisjaW5jbHVkZSAicGxh
dGZvcm0vV2ViQ1N0cmluZy5oIgorI2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTC5oIgorCituYW1l
c3BhY2UgV2ViVGVzdFJ1bm5lciB7CisKK1dlYlBlcm1pc3Npb25zOjpXZWJQZXJtaXNzaW9ucygp
CisgICAgOiBtX2RlbGVnYXRlKDApCit7CisgICAgcmVzZXQoKTsKK30KKworV2ViUGVybWlzc2lv
bnM6On5XZWJQZXJtaXNzaW9ucygpCit7Cit9CisKK2Jvb2wgV2ViUGVybWlzc2lvbnM6OmFsbG93
SW1hZ2UoV2ViS2l0OjpXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBjb25zdCBX
ZWJLaXQ6OldlYlVSTCYgaW1hZ2VVUkwpCit7CisgICAgYm9vbCBhbGxvd2VkID0gZW5hYmxlZFBl
clNldHRpbmdzICYmIG1faW1hZ2VzQWxsb3dlZDsKKyAgICBpZiAobV9kdW1wQ2FsbGJhY2tzICYm
IG1fZGVsZWdhdGUpCisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShzdGQ6OnN0cmlu
ZygiUEVSTUlTU0lPTiBDTElFTlQ6IGFsbG93SW1hZ2UoIikgKyBtX2RlbGVnYXRlLT5ub3JtYWxp
emVMYXlvdXRUZXN0VVJMKGltYWdlVVJMLnNwZWMoKSkgKyAiKTogIiArIChhbGxvd2VkID8gInRy
dWUiIDogImZhbHNlIikgKyAiXG4iKTsKKyAgICByZXR1cm4gYWxsb3dlZDsKK30KKworYm9vbCBX
ZWJQZXJtaXNzaW9uczo6YWxsb3dTY3JpcHRGcm9tU291cmNlKFdlYktpdDo6V2ViRnJhbWUqLCBi
b29sIGVuYWJsZWRQZXJTZXR0aW5ncywgY29uc3QgV2ViS2l0OjpXZWJVUkwmIHNjcmlwdFVSTCkK
K3sKKyAgICBib29sIGFsbG93ZWQgPSBlbmFibGVkUGVyU2V0dGluZ3MgJiYgbV9zY3JpcHRzQWxs
b3dlZDsKKyAgICBpZiAobV9kdW1wQ2FsbGJhY2tzICYmIG1fZGVsZWdhdGUpCisgICAgICAgIG1f
ZGVsZWdhdGUtPnByaW50TWVzc2FnZShzdGQ6OnN0cmluZygiUEVSTUlTU0lPTiBDTElFTlQ6IGFs
bG93U2NyaXB0RnJvbVNvdXJjZSgiKSArIG1fZGVsZWdhdGUtPm5vcm1hbGl6ZUxheW91dFRlc3RV
Ukwoc2NyaXB0VVJMLnNwZWMoKSkgKyAiKTogIiArIChhbGxvd2VkID8gInRydWUiIDogImZhbHNl
IikgKyAiXG4iKTsKKyAgICByZXR1cm4gYWxsb3dlZDsKK30KKworYm9vbCBXZWJQZXJtaXNzaW9u
czo6YWxsb3dTdG9yYWdlKFdlYktpdDo6V2ViRnJhbWUqLCBib29sKQoreworICAgIHJldHVybiBt
X3N0b3JhZ2VBbGxvd2VkOworfQorCitib29sIFdlYlBlcm1pc3Npb25zOjphbGxvd1BsdWdpbnMo
V2ViS2l0OjpXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRpbmdzKQoreworICAgIHJldHVy
biBlbmFibGVkUGVyU2V0dGluZ3MgJiYgbV9wbHVnaW5zQWxsb3dlZDsKK30KKworYm9vbCBXZWJQ
ZXJtaXNzaW9uczo6YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KFdlYktpdDo6V2ViRnJh
bWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgY29uc3QgV2ViS2l0OjpXZWJTZWN1cml0eU9y
aWdpbiYsIGNvbnN0IFdlYktpdDo6V2ViVVJMJikKK3sKKyAgICByZXR1cm4gZW5hYmxlZFBlclNl
dHRpbmdzIHx8IG1fZGlzcGxheWluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQ7Cit9CisKK2Jvb2wg
V2ViUGVybWlzc2lvbnM6OmFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChXZWJLaXQ6OldlYkZy
YW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIGNvbnN0IFdlYktpdDo6V2ViU2VjdXJpdHlP
cmlnaW4mLCBjb25zdCBXZWJLaXQ6OldlYlVSTCYpCit7CisgICAgcmV0dXJuIGVuYWJsZWRQZXJT
ZXR0aW5ncyB8fCBtX3J1bm5pbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkOworfQorCit2b2lkIFdl
YlBlcm1pc3Npb25zOjpzZXRJbWFnZXNBbGxvd2VkKGJvb2wgaW1hZ2VzQWxsb3dlZCkKK3sKKyAg
ICBtX2ltYWdlc0FsbG93ZWQgPSBpbWFnZXNBbGxvd2VkOworfQorCit2b2lkIFdlYlBlcm1pc3Np
b25zOjpzZXRTY3JpcHRzQWxsb3dlZChib29sIHNjcmlwdHNBbGxvd2VkKQoreworICAgIG1fc2Ny
aXB0c0FsbG93ZWQgPSBzY3JpcHRzQWxsb3dlZDsKK30KKwordm9pZCBXZWJQZXJtaXNzaW9uczo6
c2V0U3RvcmFnZUFsbG93ZWQoYm9vbCBzdG9yYWdlQWxsb3dlZCkKK3sKKyAgICBtX3N0b3JhZ2VB
bGxvd2VkID0gc3RvcmFnZUFsbG93ZWQ7Cit9CisKK3ZvaWQgV2ViUGVybWlzc2lvbnM6OnNldFBs
dWdpbnNBbGxvd2VkKGJvb2wgcGx1Z2luc0FsbG93ZWQpCit7CisgICAgbV9wbHVnaW5zQWxsb3dl
ZCA9IHBsdWdpbnNBbGxvd2VkOworfQorCit2b2lkIFdlYlBlcm1pc3Npb25zOjpzZXREaXNwbGF5
aW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZChib29sIGFsbG93ZWQpCit7CisgICAgbV9kaXNwbGF5
aW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZCA9IGFsbG93ZWQ7Cit9CisKK3ZvaWQgV2ViUGVybWlz
c2lvbnM6OnNldFJ1bm5pbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkKGJvb2wgYWxsb3dlZCkKK3sK
KyAgICBtX3J1bm5pbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkID0gYWxsb3dlZDsKK30KKwordm9p
ZCBXZWJQZXJtaXNzaW9uczo6c2V0RGVsZWdhdGUoV2ViVGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSkK
K3sKKyAgICBtX2RlbGVnYXRlID0gZGVsZWdhdGU7Cit9CisKK3ZvaWQgV2ViUGVybWlzc2lvbnM6
OnNldER1bXBDYWxsYmFja3MoYm9vbCBkdW1wQ2FsbGJhY2tzKQoreworICAgIG1fZHVtcENhbGxi
YWNrcyA9IGR1bXBDYWxsYmFja3M7Cit9CisKK3ZvaWQgV2ViUGVybWlzc2lvbnM6OnJlc2V0KCkK
K3sKKyAgICBtX2R1bXBDYWxsYmFja3MgPSBmYWxzZTsKKyAgICBtX2ltYWdlc0FsbG93ZWQgPSB0
cnVlOworICAgIG1fc2NyaXB0c0FsbG93ZWQgPSB0cnVlOworICAgIG1fc3RvcmFnZUFsbG93ZWQg
PSB0cnVlOworICAgIG1fcGx1Z2luc0FsbG93ZWQgPSB0cnVlOworICAgIG1fZGlzcGxheWluZ0lu
c2VjdXJlQ29udGVudEFsbG93ZWQgPSBmYWxzZTsKKyAgICBtX3J1bm5pbmdJbnNlY3VyZUNvbnRl
bnRBbGxvd2VkID0gZmFsc2U7Cit9CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBlcm1pc3Npb25zLmggYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQZXJtaXNzaW9ucy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhhZGVmNGMxYmIxZmUwMTY5NmEyMjIzYzM4ZDI1NTM0OTA0ZDc2N2UKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9X
ZWJQZXJtaXNzaW9ucy5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlBlcm1pc3Npb25zX2gK
KyNkZWZpbmUgV2ViUGVybWlzc2lvbnNfaAorCisjaW5jbHVkZSAiV2ViUGVybWlzc2lvbkNsaWVu
dC5oIgorCituYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CisKK2NsYXNzIFdlYlRlc3REZWxlZ2F0
ZTsKKworY2xhc3MgV2ViUGVybWlzc2lvbnMgOiBwdWJsaWMgV2ViS2l0OjpXZWJQZXJtaXNzaW9u
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJQZXJtaXNzaW9ucygpOworICAgIHZpcnR1YWwgfldl
YlBlcm1pc3Npb25zKCk7CisKKyAgICAvLyBPdmVycmlkZSBXZWJQZXJtaXNzaW9uQ2xpZW50IG1l
dGhvZHMuCisgICAgdmlydHVhbCBib29sIGFsbG93SW1hZ2UoV2ViS2l0OjpXZWJGcmFtZSosIGJv
b2wgZW5hYmxlZFBlclNldHRpbmdzLCBjb25zdCBXZWJLaXQ6OldlYlVSTCYgaW1hZ2VVUkwpOwor
ICAgIHZpcnR1YWwgYm9vbCBhbGxvd1NjcmlwdEZyb21Tb3VyY2UoV2ViS2l0OjpXZWJGcmFtZSos
IGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBjb25zdCBXZWJLaXQ6OldlYlVSTCYgc2NyaXB0VVJM
KTsKKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTdG9yYWdlKFdlYktpdDo6V2ViRnJhbWUqLCBib29s
IGxvY2FsKTsKKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dQbHVnaW5zKFdlYktpdDo6V2ViRnJhbWUq
LCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncyk7CisgICAgdmlydHVhbCBib29sIGFsbG93RGlzcGxh
eWluZ0luc2VjdXJlQ29udGVudChXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0
dGluZ3MsIGNvbnN0IFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBXZWJLaXQ6Oldl
YlVSTCYpOworICAgIHZpcnR1YWwgYm9vbCBhbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoV2Vi
S2l0OjpXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBjb25zdCBXZWJLaXQ6Oldl
YlNlY3VyaXR5T3JpZ2luJiwgY29uc3QgV2ViS2l0OjpXZWJVUkwmKTsKKworICAgIC8vIEhvb2tz
IHRvIHNldCB0aGUgZGlmZmVyZW50IHBvbGljaWVzLgorICAgIHZvaWQgc2V0SW1hZ2VzQWxsb3dl
ZChib29sKTsKKyAgICB2b2lkIHNldFNjcmlwdHNBbGxvd2VkKGJvb2wpOworICAgIHZvaWQgc2V0
U3RvcmFnZUFsbG93ZWQoYm9vbCk7CisgICAgdm9pZCBzZXRQbHVnaW5zQWxsb3dlZChib29sKTsK
KyAgICB2b2lkIHNldERpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkKGJvb2wpOworICAg
IHZvaWQgc2V0UnVubmluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQoYm9vbCk7CisKKyAgICAvLyBS
ZXNldHMgdGhlIHBvbGljeSB0byBhbGxvdyBldmVyeXRoaW5nLCBleGNlcHQgZm9yIHJ1bm5pbmcg
aW5zZWN1cmUgY29udGVudC4KKyAgICB2b2lkIHJlc2V0KCk7CisKKyAgICB2b2lkIHNldERlbGVn
YXRlKFdlYlRlc3REZWxlZ2F0ZSopOworICAgIHZvaWQgc2V0RHVtcENhbGxiYWNrcyhib29sKTsK
KworcHJpdmF0ZToKKyAgICBXZWJUZXN0RGVsZWdhdGUqIG1fZGVsZWdhdGU7CisgICAgYm9vbCBt
X2R1bXBDYWxsYmFja3M7CisKKyAgICBib29sIG1faW1hZ2VzQWxsb3dlZDsKKyAgICBib29sIG1f
c2NyaXB0c0FsbG93ZWQ7CisgICAgYm9vbCBtX3N0b3JhZ2VBbGxvd2VkOworICAgIGJvb2wgbV9w
bHVnaW5zQWxsb3dlZDsKKyAgICBib29sIG1fZGlzcGxheWluZ0luc2VjdXJlQ29udGVudEFsbG93
ZWQ7CisgICAgYm9vbCBtX3J1bm5pbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkOworfTsKKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RT
aGVsbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmlu
ZGV4IDM3ZDBiNmQxYjU0ZGNhNjFlMGY3MmZiZGQ5MzcwZDQzYWU2OTc5NTAuLjQ4ZThiZTFkMWMz
OTkxZDA5MTk3NzQ3NTdlMGIzNGZkNTMwY2JkYTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFNoZWxsLmNwcApAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1ZGUgIldlYkhp
c3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiV2ViSURCRmFjdG9yeS5oIgogI2luY2x1ZGUgIldlYlRl
c3RpbmdTdXBwb3J0LmgiCi0jaW5jbHVkZSAiV2ViUGVybWlzc2lvbnMuaCIKICNpbmNsdWRlICJX
ZWJSdW50aW1lRmVhdHVyZXMuaCIKICNpbmNsdWRlICJXZWJTY3JpcHRDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKQEAgLTE2MSw3ICsxNjAsNiBAQCBUZXN0U2hlbGw6OlRl
c3RTaGVsbCgpCiAKIHZvaWQgVGVzdFNoZWxsOjppbml0aWFsaXplKCkKIHsKLSAgICBtX3dlYlBl
cm1pc3Npb25zID0gYWRvcHRQdHIobmV3IFdlYlBlcm1pc3Npb25zKHRoaXMpKTsKICAgICBtX3Rl
c3RJbnRlcmZhY2VzID0gYWRvcHRQdHIobmV3IFdlYlRlc3RJbnRlcmZhY2VzKCkpOwogICAgIG1f
dGVzdFJ1bm5lciA9IGFkb3B0UHRyKG5ldyBEUlRUZXN0UnVubmVyKHRoaXMpKTsKICAgICBtX3Rl
c3RJbnRlcmZhY2VzLT5zZXRUZXN0UnVubmVyKG1fdGVzdFJ1bm5lci5nZXQoKSk7CkBAIC0zMTgs
NyArMzE2LDYgQEAgdm9pZCBUZXN0U2hlbGw6OnJlc2l6ZVdpbmRvd0ZvclRlc3QoV2ViVmlld0hv
c3QqIHdpbmRvdywgY29uc3QgV2ViVVJMJiB1cmwpCiB2b2lkIFRlc3RTaGVsbDo6cmVzZXRUZXN0
Q29udHJvbGxlcigpCiB7CiAgICAgcmVzZXRXZWJTZXR0aW5ncygqd2ViVmlldygpKTsKLSAgICBt
X3dlYlBlcm1pc3Npb25zLT5yZXNldCgpOwogICAgIG1fdGVzdEludGVyZmFjZXMtPnJlc2V0QWxs
KCk7CiAgICAgbV90ZXN0UnVubmVyLT5yZXNldCgpOwogICAgIG1fd2ViVmlld0hvc3QtPnJlc2V0
KCk7CkBAIC03NjMsNyArNzYwLDcgQEAgV2ViVmlld0hvc3QqIFRlc3RTaGVsbDo6Y3JlYXRlTmV3
V2luZG93KGNvbnN0IFdlYktpdDo6V2ViVVJMJiB1cmwsIERSVERldlRvb2xzQWcKICAgICAgICAg
aG9zdC0+c2V0RGVsZWdhdGUoaG9zdCk7CiAgICAgaG9zdC0+c2V0UHJveHkoaG9zdCk7CiAgICAg
V2ViVmlldyogdmlldyA9IFdlYlZpZXc6OmNyZWF0ZShob3N0KTsKLSAgICB2aWV3LT5zZXRQZXJt
aXNzaW9uQ2xpZW50KHdlYlBlcm1pc3Npb25zKCkpOworICAgIHZpZXctPnNldFBlcm1pc3Npb25D
bGllbnQobV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT53ZWJQZXJtaXNzaW9ucygpKTsK
ICAgICB2aWV3LT5zZXREZXZUb29sc0FnZW50Q2xpZW50KGRldlRvb2xzQWdlbnQpOwogICAgIGhv
c3QtPnNldFdlYldpZGdldCh2aWV3KTsKICAgICBtX3ByZWZzLmFwcGx5VG8odmlldyk7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCmluZGV4IDFjNmRkOGZkN2JkYWZl
MDZkYWNkZTQwNTY0NTZiMzZhNDFmZGVhNmIuLjViZjU0Y2JiYjgzMDhjMjhkNDUwMDY0NGQ1MDIw
MTI5YzQzOWE4ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RTaGVsbC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5o
CkBAIC01Nyw3ICs1Nyw2IEBAIGNsYXNzIERSVERldlRvb2xzQWdlbnQ7CiBjbGFzcyBEUlREZXZU
b29sc0NhbGxBcmdzOwogY2xhc3MgRFJURGV2VG9vbHNDbGllbnQ7CiBjbGFzcyBNb2NrV2ViUHJl
cmVuZGVyaW5nU3VwcG9ydDsKLWNsYXNzIFdlYlBlcm1pc3Npb25zOwogCiBzdHJ1Y3QgVGVzdFBh
cmFtcyB7CiAgICAgYm9vbCBkdW1wVHJlZTsKQEAgLTk2LDggKzk1LDYgQEAgcHVibGljOgogICAg
IFdlYlRlc3RSdW5uZXI6OldlYlByZWZlcmVuY2VzKiBwcmVmZXJlbmNlcygpIHsgcmV0dXJuICZt
X3ByZWZzOyB9CiAgICAgdm9pZCBhcHBseVByZWZlcmVuY2VzKCkgeyBtX3ByZWZzLmFwcGx5VG8o
bV93ZWJWaWV3KTsgfQogCi0gICAgV2ViUGVybWlzc2lvbnMqIHdlYlBlcm1pc3Npb25zKCkgeyBy
ZXR1cm4gbV93ZWJQZXJtaXNzaW9ucy5nZXQoKTsgfQotCiAgICAgdm9pZCBiaW5kSlNPYmplY3Rz
VG9XaW5kb3coV2ViS2l0OjpXZWJGcmFtZSopOwogICAgIHZvaWQgcnVuRmlsZVRlc3QoY29uc3Qg
VGVzdFBhcmFtcyYsIGJvb2wgc2hvdWxkRHVtcFBpeGVsVGVzdHMpOwogICAgIHZvaWQgY2FsbEpT
R0MoKTsKQEAgLTIxMCw3ICsyMDcsNiBAQCBwcml2YXRlOgogCiAgICAgLy8gQmUgY2FyZWZ1bCBv
ZiB0aGUgZGVzdHJ1Y3Rpb24gb3JkZXIgb2YgdGhlIGZvbGxvd2luZyBvYmplY3RzLgogICAgIFRl
c3RFdmVudFByaW50ZXIgbV9wcmludGVyOwotICAgIE93blB0cjxXZWJQZXJtaXNzaW9ucz4gbV93
ZWJQZXJtaXNzaW9uczsKICAgICBPd25QdHI8RFJURGV2VG9vbHNBZ2VudD4gbV9kcnREZXZUb29s
c0FnZW50OwogICAgIE93blB0cjxEUlREZXZUb29sc0NsaWVudD4gbV9kcnREZXZUb29sc0NsaWVu
dDsKICAgICBPd25QdHI8V2ViVGVzdFJ1bm5lcjo6V2ViVGVzdEludGVyZmFjZXM+IG1fdGVzdElu
dGVyZmFjZXM7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQ
ZXJtaXNzaW9ucy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQZXJtaXNz
aW9ucy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjN2M5ZWVlODQ1N2I2YWM4
ZThkOGE0YzgzMWE0OTQyYWJkYjAzMGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUGVybWlzc2lv
bnMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTMyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiV2ViUGVybWlzc2lvbnMuaCIKLQotI2luY2x1ZGUgIkRSVFRlc3RSdW5uZXIu
aCIKLSNpbmNsdWRlICJUZXN0U2hlbGwuaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJDU3RyaW5n
LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMLmgiCi0KLVdlYlBlcm1pc3Npb25zOjpXZWJQ
ZXJtaXNzaW9ucyhUZXN0U2hlbGwqIHNoZWxsKQotICAgIDogbV9zaGVsbChzaGVsbCkKLXsKLSAg
ICByZXNldCgpOwotfQotCi1XZWJQZXJtaXNzaW9uczo6fldlYlBlcm1pc3Npb25zKCkKLXsKLX0K
LQotYm9vbCBXZWJQZXJtaXNzaW9uczo6YWxsb3dJbWFnZShXZWJLaXQ6OldlYkZyYW1lKiwgYm9v
bCBlbmFibGVkUGVyU2V0dGluZ3MsIGNvbnN0IFdlYktpdDo6V2ViVVJMJiBpbWFnZVVSTCkKLXsK
LSAgICBib29sIGFsbG93ZWQgPSBlbmFibGVkUGVyU2V0dGluZ3MgJiYgbV9pbWFnZXNBbGxvd2Vk
OwotICAgIGlmICh0ZXN0UnVubmVyKCktPnNob3VsZER1bXBQZXJtaXNzaW9uQ2xpZW50Q2FsbGJh
Y2tzKCkpCi0gICAgICAgIGZwcmludGYoc3Rkb3V0LCAiUEVSTUlTU0lPTiBDTElFTlQ6IGFsbG93
SW1hZ2UoJXMpOiAlc1xuIiwgbV9zaGVsbC0+bm9ybWFsaXplTGF5b3V0VGVzdFVSTChpbWFnZVVS
TC5zcGVjKCkpLmNfc3RyKCksIGFsbG93ZWQgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKLSAgICByZXR1
cm4gYWxsb3dlZDsKLX0KLQotYm9vbCBXZWJQZXJtaXNzaW9uczo6YWxsb3dTY3JpcHRGcm9tU291
cmNlKFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgY29uc3QgV2Vi
S2l0OjpXZWJVUkwmIHNjcmlwdFVSTCkKLXsKLSAgICBib29sIGFsbG93ZWQgPSBlbmFibGVkUGVy
U2V0dGluZ3MgJiYgbV9zY3JpcHRzQWxsb3dlZDsKLSAgICBpZiAodGVzdFJ1bm5lcigpLT5zaG91
bGREdW1wUGVybWlzc2lvbkNsaWVudENhbGxiYWNrcygpKQotICAgICAgICBmcHJpbnRmKHN0ZG91
dCwgIlBFUk1JU1NJT04gQ0xJRU5UOiBhbGxvd1NjcmlwdEZyb21Tb3VyY2UoJXMpOiAlc1xuIiwg
bV9zaGVsbC0+bm9ybWFsaXplTGF5b3V0VGVzdFVSTChzY3JpcHRVUkwuc3BlYygpKS5jX3N0cigp
LCBhbGxvd2VkID8gInRydWUiIDogImZhbHNlIik7Ci0gICAgcmV0dXJuIGFsbG93ZWQ7Ci19Ci0K
LWJvb2wgV2ViUGVybWlzc2lvbnM6OmFsbG93U3RvcmFnZShXZWJLaXQ6OldlYkZyYW1lKiwgYm9v
bCkKLXsKLSAgICByZXR1cm4gbV9zdG9yYWdlQWxsb3dlZDsKLX0KLQotYm9vbCBXZWJQZXJtaXNz
aW9uczo6YWxsb3dQbHVnaW5zKFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0
aW5ncykKLXsKLSAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzICYmIG1fcGx1Z2luc0FsbG93
ZWQ7Ci19Ci0KLWJvb2wgV2ViUGVybWlzc2lvbnM6OmFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29u
dGVudChXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViS2l0
OjpXZWJTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFdlYktpdDo6V2ViVVJMJikKLXsKLSAgICByZXR1
cm4gZW5hYmxlZFBlclNldHRpbmdzIHx8IG1fZGlzcGxheWluZ0luc2VjdXJlQ29udGVudEFsbG93
ZWQ7Ci19Ci0KLWJvb2wgV2ViUGVybWlzc2lvbnM6OmFsbG93UnVubmluZ0luc2VjdXJlQ29udGVu
dChXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJT
ZWN1cml0eU9yaWdpbiYsIGNvbnN0IFdlYktpdDo6V2ViVVJMJikKLXsKLSAgICByZXR1cm4gZW5h
YmxlZFBlclNldHRpbmdzIHx8IG1fcnVubmluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQ7Ci19Ci0K
LXZvaWQgV2ViUGVybWlzc2lvbnM6OnNldEltYWdlc0FsbG93ZWQoYm9vbCBpbWFnZXNBbGxvd2Vk
KQotewotICAgIG1faW1hZ2VzQWxsb3dlZCA9IGltYWdlc0FsbG93ZWQ7Ci19Ci0KLXZvaWQgV2Vi
UGVybWlzc2lvbnM6OnNldFNjcmlwdHNBbGxvd2VkKGJvb2wgc2NyaXB0c0FsbG93ZWQpCi17Ci0g
ICAgbV9zY3JpcHRzQWxsb3dlZCA9IHNjcmlwdHNBbGxvd2VkOwotfQotCi12b2lkIFdlYlBlcm1p
c3Npb25zOjpzZXRTdG9yYWdlQWxsb3dlZChib29sIHN0b3JhZ2VBbGxvd2VkKQotewotICAgIG1f
c3RvcmFnZUFsbG93ZWQgPSBzdG9yYWdlQWxsb3dlZDsKLX0KLQotdm9pZCBXZWJQZXJtaXNzaW9u
czo6c2V0UGx1Z2luc0FsbG93ZWQoYm9vbCBwbHVnaW5zQWxsb3dlZCkKLXsKLSAgICBtX3BsdWdp
bnNBbGxvd2VkID0gcGx1Z2luc0FsbG93ZWQ7Ci19Ci0KLXZvaWQgV2ViUGVybWlzc2lvbnM6OnNl
dERpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkKGJvb2wgYWxsb3dlZCkKLXsKLSAgICBt
X2Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkID0gYWxsb3dlZDsKLX0KLQotdm9pZCBX
ZWJQZXJtaXNzaW9uczo6c2V0UnVubmluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQoYm9vbCBhbGxv
d2VkKQotewotICAgIG1fcnVubmluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQgPSBhbGxvd2VkOwot
fQotCi12b2lkIFdlYlBlcm1pc3Npb25zOjpyZXNldCgpCi17Ci0gICAgbV9pbWFnZXNBbGxvd2Vk
ID0gdHJ1ZTsKLSAgICBtX3NjcmlwdHNBbGxvd2VkID0gdHJ1ZTsKLSAgICBtX3N0b3JhZ2VBbGxv
d2VkID0gdHJ1ZTsKLSAgICBtX3BsdWdpbnNBbGxvd2VkID0gdHJ1ZTsKLSAgICBtX2Rpc3BsYXlp
bmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkID0gZmFsc2U7Ci0gICAgbV9ydW5uaW5nSW5zZWN1cmVD
b250ZW50QWxsb3dlZCA9IGZhbHNlOwotfQotCi0vLyBQcml2YXRlIGZ1bmN0aW9ucyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLURS
VFRlc3RSdW5uZXIqIFdlYlBlcm1pc3Npb25zOjp0ZXN0UnVubmVyKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9zaGVsbC0+dGVzdFJ1bm5lcigpOwotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViUGVybWlzc2lvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlBlcm1pc3Npb25zLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGM2MjUwNzdlODk1YTdkZDRlMjVlZWEyMGM1YzkwMTM0ZmEzODE1M2IuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViUGVybWlzc2lvbnMuaAorKysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICog
ZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIFdlYlBlcm1pc3Npb25zX2gKLSNkZWZpbmUgV2ViUGVybWlzc2lvbnNfaAotCi0jaW5jbHVk
ZSAiV2ViUGVybWlzc2lvbkNsaWVudC5oIgotCi1jbGFzcyBEUlRUZXN0UnVubmVyOwotY2xhc3Mg
VGVzdFNoZWxsOwotCi1jbGFzcyBXZWJQZXJtaXNzaW9ucyA6IHB1YmxpYyBXZWJLaXQ6OldlYlBl
cm1pc3Npb25DbGllbnQgewotcHVibGljOgotICAgIFdlYlBlcm1pc3Npb25zKFRlc3RTaGVsbCop
OwotICAgIHZpcnR1YWwgfldlYlBlcm1pc3Npb25zKCk7Ci0KLSAgICAvLyBPdmVycmlkZSBXZWJQ
ZXJtaXNzaW9uQ2xpZW50IG1ldGhvZHMuCi0gICAgdmlydHVhbCBib29sIGFsbG93SW1hZ2UoV2Vi
S2l0OjpXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBjb25zdCBXZWJLaXQ6Oldl
YlVSTCYgaW1hZ2VVUkwpOwotICAgIHZpcnR1YWwgYm9vbCBhbGxvd1NjcmlwdEZyb21Tb3VyY2Uo
V2ViS2l0OjpXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBjb25zdCBXZWJLaXQ6
OldlYlVSTCYgc2NyaXB0VVJMKTsKLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTdG9yYWdlKFdlYktp
dDo6V2ViRnJhbWUqLCBib29sIGxvY2FsKTsKLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dQbHVnaW5z
KFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncyk7Ci0gICAgdmlydHVh
bCBib29sIGFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudChXZWJLaXQ6OldlYkZyYW1lKiwg
Ym9vbCBlbmFibGVkUGVyU2V0dGluZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luJiwgY29uc3Qg
V2ViS2l0OjpXZWJVUkwmKTsKLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dSdW5uaW5nSW5zZWN1cmVD
b250ZW50KFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYktpdDo6V2Vi
U2VjdXJpdHlPcmlnaW4mLCBjb25zdCBXZWJLaXQ6OldlYlVSTCYpOwotCi0gICAgLy8gSG9va3Mg
dG8gc2V0IHRoZSBkaWZmZXJlbnQgcG9saWNpZXMuCi0gICAgdm9pZCBzZXRJbWFnZXNBbGxvd2Vk
KGJvb2wpOwotICAgIHZvaWQgc2V0U2NyaXB0c0FsbG93ZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRT
dG9yYWdlQWxsb3dlZChib29sKTsKLSAgICB2b2lkIHNldFBsdWdpbnNBbGxvd2VkKGJvb2wpOwot
ICAgIHZvaWQgc2V0RGlzcGxheWluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQoYm9vbCk7Ci0gICAg
dm9pZCBzZXRSdW5uaW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZChib29sKTsKLQotICAgIC8vIFJl
c2V0cyB0aGUgcG9saWN5IHRvIGFsbG93IGV2ZXJ5dGhpbmcsIGV4Y2VwdCBmb3IgcnVubmluZyBp
bnNlY3VyZSBjb250ZW50LgotICAgIHZvaWQgcmVzZXQoKTsKLQotcHJpdmF0ZToKLSAgICBEUlRU
ZXN0UnVubmVyKiB0ZXN0UnVubmVyKCkgY29uc3Q7Ci0KLSAgICAvLyBOb24tb3duaW5nIHBvaW50
ZXIuIFRoZSBXZWJQZXJtaXNzaW9ucyBpbnN0YW5jZSBpcyBvd25lZCBieSB0aGlzIFRlc3RTaGVs
bCBpbnN0YW5jZS4KLSAgICBUZXN0U2hlbGwqIG1fc2hlbGw7Ci0KLSAgICBib29sIG1faW1hZ2Vz
QWxsb3dlZDsKLSAgICBib29sIG1fc2NyaXB0c0FsbG93ZWQ7Ci0gICAgYm9vbCBtX3N0b3JhZ2VB
bGxvd2VkOwotICAgIGJvb2wgbV9wbHVnaW5zQWxsb3dlZDsKLSAgICBib29sIG1fZGlzcGxheWlu
Z0luc2VjdXJlQ29udGVudEFsbG93ZWQ7Ci0gICAgYm9vbCBtX3J1bm5pbmdJbnNlY3VyZUNvbnRl
bnRBbGxvd2VkOwotfTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggMTQ3NzlmYWZjNmZjNThkMWVlM2MwMzBhODFlOGY4MDlj
Nzc1ODEzZi4uYWZmMmE1NWIwY2U5OWJhNWJmMjI5NzExZmUxMGJhYzg5ZGY2Zjk2MyAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcApAQCAtMTA1OCw2
ICsxMDU4LDExIEBAIHN0ZDo6c3RyaW5nIFdlYlZpZXdIb3N0OjptYWtlVVJMRXJyb3JEZXNjcmlw
dGlvbihjb25zdCBXZWJLaXQ6OldlYlVSTEVycm9yJiBlcnJvCiAgICAgcmV0dXJuIHdlYmtpdF9z
dXBwb3J0OjpNYWtlVVJMRXJyb3JEZXNjcmlwdGlvbihlcnJvcik7CiB9CiAKK3N0ZDo6c3RyaW5n
IFdlYlZpZXdIb3N0Ojpub3JtYWxpemVMYXlvdXRUZXN0VVJMKGNvbnN0IHN0ZDo6c3RyaW5nJiB1
cmwpCit7CisgICAgcmV0dXJuIG1fc2hlbGwtPm5vcm1hbGl6ZUxheW91dFRlc3RVUkwodXJsKTsK
K30KKwogLy8gUHVibGljIGZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBXZWJWaWV3SG9zdDo6V2ViVmlld0hvc3Qo
VGVzdFNoZWxsKiBzaGVsbCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3
SG9zdC5oCmluZGV4IGZjOGJiZjQzMDlhNWY4YTdiYjlkNGMxZDY1N2Y1ZDY0NDMzYWE0ZDAuLmM4
ZTEzOGQ3YThmNTgxMGY1YzFhMWI4Y2UxMmZlZTVjYjY3NTY4YTggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApAQCAtMTQ5LDYgKzE0OSw3IEBAIGNsYXNz
IFdlYlZpZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2ViVmlld0NsaWVudCwgcHVibGljIFdlYktp
dDo6V2ViRnJhbWVDbGllbnQsCiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnJlbnRXZWJJbnRlbnRS
ZXF1ZXN0KGNvbnN0IFdlYktpdDo6V2ViSW50ZW50UmVxdWVzdCYpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgV2ViS2l0OjpXZWJJbnRlbnRSZXF1ZXN0KiBjdXJyZW50V2ViSW50ZW50UmVxdWVzdCgp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgc3RkOjpzdHJpbmcgbWFrZVVSTEVycm9yRGVzY3JpcHRp
b24oY29uc3QgV2ViS2l0OjpXZWJVUkxFcnJvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgc3Rk
OjpzdHJpbmcgbm9ybWFsaXplTGF5b3V0VGVzdFVSTChjb25zdCBzdGQ6OnN0cmluZyYpIE9WRVJS
SURFOwogCiAgICAgLy8gTmF2aWdhdGlvbkhvc3QKICAgICB2aXJ0dWFsIGJvb2wgbmF2aWdhdGUo
Y29uc3QgVGVzdE5hdmlnYXRpb25FbnRyeSYsIGJvb2wgcmVsb2FkKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>