<?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>101837</bug_id>
          
          <creation_ts>2012-11-10 05:52:48 -0800</creation_ts>
          <short_desc>[chromium] move TestRunner implementation into WebTestRunner namespace</short_desc>
          <delta_ts>2012-11-12 03:43:13 -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>1</everconfirmed>
          <reporter>jochen</reporter>
          <assigned_to>jochen</assigned_to>
          <cc>abarth</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>763636</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-11-10 05:52:48 -0800</bug_when>
    <thetext>[chromium] move TestRunner implementation into WebTestRunner namespace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763637</commentid>
    <comment_count>1</comment_count>
      <attachid>173447</attachid>
    <who name="">jochen</who>
    <bug_when>2012-11-10 05:55:19 -0800</bug_when>
    <thetext>Created attachment 173447
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763896</commentid>
    <comment_count>2</comment_count>
      <attachid>173447</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-11 15:19:17 -0800</bug_when>
    <thetext>Comment on attachment 173447
Patch

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

&gt; Tools/DumpRenderTree/chromium/DRTTestRunner.h:65
&gt;  

Can we just add &quot;using WebTestRunner:: CppArgumentList&quot; for the various parts of CppBoundClass that we&apos;re using here?  It seems like a waste to qualify all these types with namespaces when we&apos;re just going to move them later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764117</commentid>
    <comment_count>3</comment_count>
      <attachid>173577</attachid>
    <who name="">jochen</who>
    <bug_when>2012-11-12 00:11:56 -0800</bug_when>
    <thetext>Created attachment 173577
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764223</commentid>
    <comment_count>4</comment_count>
      <attachid>173577</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 03:43:10 -0800</bug_when>
    <thetext>Comment on attachment 173577
Patch

Clearing flags on attachment: 173577

Committed r134203: &lt;http://trac.webkit.org/changeset/134203&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764224</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 03:43:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173447</attachid>
            <date>2012-11-10 05:55:19 -0800</date>
            <delta_ts>2012-11-12 00:11:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101837-20121110145324.patch</filename>
            <type>text/plain</type>
            <size>55844</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTU0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDk0YWJlNTlhZjcyZDg4ZmNlNjllM2UxOWM4ODM0ODc0
YTE5MTM0Ni4uMWQ0YzlmNzkyNTJiODk5MWZkODM0M2IzMWNiMGVjZjQxNDUxYzhmOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUy
IEBACisyMDEyLTExLTEwICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gbW92ZSBUZXN0UnVubmVyIGltcGxlbWVudGF0aW9uIGludG8g
V2ViVGVzdFJ1bm5lciBuYW1lc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMTgzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoYXQgd2F5LCB3ZSBkb24ndCBnZXQgY29sbGlzaW9ucyB3aGVuIGxp
bmtpbmcgZS5nLiBhZ2FpbnN0IGNocm9taXVtJ3MKKyAgICAgICAgbmV0IHRlc3Qgc3VwcG9ydCBs
aWJyYXJ5LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5l
ci5oOgorICAgICAgICAoRFJUVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5o
OgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmNwcDoK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5oOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvQ3BwQm91bmRDbGFzcy5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVy
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBC
b3VuZENsYXNzLmg6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50LmNwcDoKKyAgICAgICAg
KFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL0NwcFZhcmlhbnQuaDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmg6
CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9HYW1lcGFkQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJU
ZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9HYW1lcGFkQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdERlbGVnYXRl
Lmg6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFRlc3REZWxlZ2F0ZSk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVy
ZmFjZXMuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuaDoKKyAgICAgICAg
KFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoVGVzdEludGVyZmFjZXMpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGV4dElucHV0
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXh0SW5wdXRDb250cm9sbGVyLmg6
CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKwogMjAxMi0xMS0wOSAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBQZW9wbGUgd2l0aCBkaWNocm9tYWN5IGNhbid0
IHRlbGwgY3Jhc2hlcyBhbmQgcGFzc2VzIG9uIGZsYWtpbmVzcyBkYXNoYm9hcmQKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuaAppbmRleCBjNGNiN2FjZThi
ZDQ0MDYxMjcxZjE4YTk4N2NiYmM5MTRmOTJkMzU2Li41MGQ3ZmU2ZWU1ZTBlZWIwMWM0Y2VlZjU5
ZTVmZTFmN2UxYjAxMmMyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlRUZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJU
VGVzdFJ1bm5lci5oCkBAIC02Myw3ICs2Myw3IEBAIGNsYXNzIFNjb3BlZFRlbXBEaXJlY3Rvcnk7
CiAKIGNsYXNzIFRlc3RTaGVsbDsKIAotY2xhc3MgRFJUVGVzdFJ1bm5lciA6IHB1YmxpYyBUZXN0
UnVubmVyIHsKK2NsYXNzIERSVFRlc3RSdW5uZXIgOiBwdWJsaWMgV2ViVGVzdFJ1bm5lcjo6VGVz
dFJ1bm5lciB7CiBwdWJsaWM6CiAgICAgLy8gQnVpbGRzIHRoZSBwcm9wZXJ0eSBhbmQgbWV0aG9k
IGxpc3RzIG5lZWRlZCB0byBiaW5kIHRoaXMgY2xhc3MgdG8gYSBKUwogICAgIC8vIG9iamVjdC4K
QEAgLTc0LDM4NyArNzQsMzg3IEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNldHMg
YSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gZHVtcCBwYWdlcyBhcwogICAgIC8v
IHBsYWluIHRleHQsIHJhdGhlciB0aGFuIGFzIGEgdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUg
cmVuZGVyZXIncyBzdGF0ZS4KICAgICAvLyBJdCB0YWtlcyBhbiBvcHRpb25hbCBhcmd1bWVudCwg
d2hldGhlciB0byBkdW1wIHBpeGVscyByZXN1bHRzIG9yIG5vdC4KLSAgICB2b2lkIGR1bXBBc1Rl
eHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgZHVtcEFz
VGV4dChjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVy
OjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBzZXQgYSBmbGFn
IHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gcHJpbnQgYSBsaW5lCiAgICAgLy8gb2YgZGVz
Y3JpcHRpdmUgdGV4dCBmb3IgZWFjaCBkYXRhYmFzZSBjb21tYW5kLiBJdCBzaG91bGQgdGFrZSBu
bwogICAgIC8vIGFyZ3VtZW50cywgYW5kIGlnbm9yZSBhbnkgdGhhdCBtYXkgYmUgcHJlc2VudC4g
SG93ZXZlciwgYXQgdGhlIG1vbWVudCwgd2UKICAgICAvLyBkb24ndCBoYXZlIGFueSBEQiBmdW5j
dGlvbiB0aGF0IHByaW50cyBtZXNzYWdlcywgc28gZm9yIG5vdyB0aGlzIGZ1bmN0aW9uCiAgICAg
Ly8gZG9lc24ndCBkbyBhbnl0aGluZy4KLSAgICB2b2lkIGR1bXBEYXRhYmFzZUNhbGxiYWNrcyhj
b25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBkdW1wRGF0YWJh
c2VDYWxsYmFja3MoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVz
dFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBzZXRzIGEgZmxh
ZyB0aGF0IHRlbGxzIHRoZSB0ZXN0X3NoZWxsIHRvIHByaW50IGEgbGluZSBvZgogICAgIC8vIGRl
c2NyaXB0aXZlIHRleHQgZm9yIGVhY2ggZWRpdGluZyBjb21tYW5kLiBJdCB0YWtlcyBubyBhcmd1
bWVudHMsIGFuZAogICAgIC8vIGlnbm9yZXMgYW55IHRoYXQgbWF5IGJlIHByZXNlbnQuCi0gICAg
dm9pZCBkdW1wRWRpdGluZ0NhbGxiYWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CisgICAgdm9pZCBkdW1wRWRpdGluZ0NhbGxiYWNrcyhjb25zdCBXZWJUZXN0UnVubmVy
OjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICAgICAv
LyBUaGlzIGZ1bmN0aW9uIHNldHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8g
cHJpbnQgYSBsaW5lIG9mCiAgICAgLy8gZGVzY3JpcHRpdmUgdGV4dCBmb3IgZWFjaCBmcmFtZSBs
b2FkIGNhbGxiYWNrLiBJdCB0YWtlcyBubyBhcmd1bWVudHMsIGFuZAogICAgIC8vIGlnbm9yZXMg
YW55IHRoYXQgbWF5IGJlIHByZXNlbnQuCi0gICAgdm9pZCBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tz
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGR1bXBGcmFt
ZUxvYWRDYWxsYmFja3MoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2Vi
VGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBzZXRzIGEg
ZmxhZyB0aGF0IHRlbGxzIHRoZSB0ZXN0X3NoZWxsIHRvIHByaW50IGEgbGluZSBvZgogICAgIC8v
IGRlc2NyaXB0aXZlIHRleHQgZm9yIHRoZSBwcm9ncmVzcyBmaW5pc2hlZCBjYWxsYmFjay4gSXQg
dGFrZXMgbm8KICAgICAvLyBhcmd1bWVudHMsIGFuZCBpZ25vcmVzIGFueSB0aGF0IG1heSBiZSBw
cmVzZW50LgotICAgIHZvaWQgZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayhjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBkdW1wUHJvZ3Jlc3NGaW5pc2hl
ZENhbGxiYWNrKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RS
dW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gc2V0cyBhIGZsYWcg
dGhhdCB0ZWxscyB0aGUgdGVzdF9zaGVsbCB0byBwcmludCBhIGxpbmUgb2YKICAgICAvLyB1c2Vy
IGdlc3R1cmUgc3RhdHVzIHRleHQgZm9yIHNvbWUgZnJhbWUgbG9hZCBjYWxsYmFja3MuIEl0IHRh
a2VzIG5vCiAgICAgLy8gYXJndW1lbnRzLCBhbmQgaWdub3JlcyBhbnkgdGhhdCBtYXkgYmUgcHJl
c2VudC4KLSAgICB2b2lkIGR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGR1bXBVc2VyR2VzdHVy
ZUluRnJhbWVMb2FkQ2FsbGJhY2tzKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlz
dCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24g
c2V0cyBhIGZsYWcgdGhhdCB0ZWxscyB0aGUgdGVzdF9zaGVsbCB0byBwcmludCBvdXQgYSB0ZXh0
CiAgICAgLy8gcmVwcmVzZW50YXRpb24gb2YgdGhlIGJhY2svZm9yd2FyZCBsaXN0LiBJdCBpZ25v
cmVzIGFsbCBhcmd1bWVudHMuCi0gICAgdm9pZCBkdW1wQmFja0ZvcndhcmRMaXN0KGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGR1bXBCYWNrRm9yd2FyZExp
c3QoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6
Q3BwVmFyaWFudCopOwogCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBzZXRzIGEgZmxhZyB0aGF0IHRl
bGxzIHRoZSB0ZXN0X3NoZWxsIHRvIHByaW50IG91dCB0aGUKICAgICAvLyBzY3JvbGwgb2Zmc2V0
cyBvZiB0aGUgY2hpbGQgZnJhbWVzLiBJdCBpZ25vcmVzIGFsbC4KLSAgICB2b2lkIGR1bXBDaGls
ZEZyYW1lU2Nyb2xsUG9zaXRpb25zKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKKyAgICB2b2lkIGR1bXBDaGlsZEZyYW1lU2Nyb2xsUG9zaXRpb25zKGNvbnN0IFdlYlRlc3RS
dW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAog
ICAgIC8vIFRoaXMgZnVuY3Rpb24gc2V0cyBhIGZsYWcgdGhhdCB0ZWxscyB0aGUgdGVzdF9zaGVs
bCB0byByZWN1cnNpdmVseQogICAgIC8vIGR1bXAgYWxsIGZyYW1lcyBhcyBwbGFpbiB0ZXh0IGlm
IHRoZSBkdW1wQXNUZXh0IGZsYWcgaXMgc2V0LgogICAgIC8vIEl0IHRha2VzIG5vIGFyZ3VtZW50
cywgYW5kIGlnbm9yZXMgYW55IHRoYXQgbWF5IGJlIHByZXNlbnQuCi0gICAgdm9pZCBkdW1wQ2hp
bGRGcmFtZXNBc1RleHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAg
IHZvaWQgZHVtcENoaWxkRnJhbWVzQXNUZXh0KGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3Vt
ZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKICAgICAKICAgICAvLyBUaGlz
IGZ1bmN0aW9uIHNldHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gZHVtcCBh
IGRlc2NyaXB0aXZlCiAgICAgLy8gbGluZSBmb3IgZWFjaCByZXNvdXJjZSBsb2FkIGNhbGxiYWNr
LiBJdCB0YWtlcyBubyBhcmd1bWVudHMsIGFuZCBpZ25vcmVzCiAgICAgLy8gYW55IHRoYXQgbWF5
IGJlIHByZXNlbnQuCi0gICAgdm9pZCBkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsgICAgCisgICAgdm9pZCBkdW1wUmVzb3VyY2VM
b2FkQ2FsbGJhY2tzKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRl
c3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsgICAgCiAgICAgCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBz
ZXRzIGEgZmxhZyB0aGF0IHRlbGxzIHRoZSB0ZXN0X3NoZWxsIHRvIGR1bXAgdGhlIE1JTUUgdHlw
ZQogICAgIC8vIGZvciBlYWNoIHJlc291cmNlIHRoYXQgd2FzIGxvYWRlZC4gSXQgdGFrZXMgbm8g
YXJndW1lbnRzLCBhbmQgaWdub3JlcyBhbnkKICAgICAvLyB0aGF0IG1heSBiZSBwcmVzZW50Lgot
ICAgIHZvaWQgZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlw
ZXMoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6
Q3BwVmFyaWFudCopOwogCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBzZXRzIGEgZmxhZyB0aGF0IHRl
bGxzIHRoZSB0ZXN0X3NoZWxsIHRvIGR1bXAgYWxsIGNhbGxzCiAgICAgLy8gdG8gd2luZG93LnN0
YXR1cygpLgogICAgIC8vIEl0IHRha2VzIG5vIGFyZ3VtZW50cywgYW5kIGlnbm9yZXMgYW55IHRo
YXQgbWF5IGJlIHByZXNlbnQuCi0gICAgdm9pZCBkdW1wV2luZG93U3RhdHVzQ2hhbmdlcyhjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBkdW1wV2luZG93U3Rh
dHVzQ2hhbmdlcyhjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0
UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNldHMgYSBmbGFn
IHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gZHVtcCBhbGwgY2FsbHMgdG8KICAgICAvLyBX
ZWJWaWV3Q2xpZW50OjpjcmVhdGVWaWV3KCkuCiAgICAgLy8gSXQgdGFrZXMgbm8gYXJndW1lbnRz
LCBhbmQgaWdub3JlcyBhbnkgdGhhdCBtYXkgYmUgcHJlc2VudC4KLSAgICB2b2lkIGR1bXBDcmVh
dGVWaWV3KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGR1
bXBDcmVhdGVWaWV3KGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRl
c3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAgIC8vIFdoZW4gY2FsbGVkIHdpdGggYSBib29s
ZWFuIGFyZ3VtZW50LCB0aGlzIHNldHMgYSBmbGFnIHRoYXQgY29udHJvbHMKICAgICAvLyB3aGV0
aGVyIGNvbnRlbnQtZWRpdGFibGUgZWxlbWVudHMgYWNjZXB0IGVkaXRpbmcgZm9jdXMgd2hlbiBh
biBlZGl0aW5nCiAgICAgLy8gYXR0ZW1wdCBpcyBtYWRlLiBJdCBpZ25vcmVzIGFueSBhZGRpdGlv
bmFsIGFyZ3VtZW50cy4KLSAgICB2b2lkIHNldEFjY2VwdHNFZGl0aW5nKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNldEFjY2VwdHNFZGl0aW5nKGNvbnN0
IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlh
bnQqKTsKIAogICAgIC8vIEZ1bmN0aW9ucyBmb3IgZGVhbGluZyB3aXRoIHdpbmRvd3MuIEJ5IGRl
ZmF1bHQgd2UgYmxvY2sgYWxsIG5ldyB3aW5kb3dzLgotICAgIHZvaWQgd2luZG93Q291bnQoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0Q2FuT3Blbldp
bmRvd3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0
Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHdpbmRvd0NvdW50KGNvbnN0IFdlYlRlc3RSdW5uZXI6
OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lk
IHNldENhbk9wZW5XaW5kb3dzKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYs
IFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNldENsb3NlUmVtYWluaW5n
V2luZG93c1doZW5Db21wbGV0ZShjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3Qm
LCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBCeSBkZWZhdWx0LCB0ZXN0
cyBlbmQgd2hlbiBwYWdlIGxvYWQgaXMgY29tcGxldGUuIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQK
ICAgICAvLyB0byBkZWxheSB0aGUgY29tcGxldGlvbiBvZiB0aGUgdGVzdCB1bnRpbCBub3RpZnlE
b25lIGlzIGNhbGxlZC4KLSAgICB2b2lkIHdhaXRVbnRpbERvbmUoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgbm90aWZ5RG9uZShjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCB3YWl0VW50aWxEb25lKGNvbnN0IFdlYlRl
c3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsK
KyAgICB2b2lkIG5vdGlmeURvbmUoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0
JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogCiAgICAgLy8gTWV0aG9kcyBmb3IgYWRk
aW5nIGFjdGlvbnMgdG8gdGhlIHdvcmsgcXVldWUuIFVzZWQgaW4gY29uanVuY3Rpb24gd2l0aAog
ICAgIC8vIHdhaXRVbnRpbERvbmUvbm90aWZ5RG9uZSBhYm92ZS4KLSAgICB2b2lkIHF1ZXVlQmFj
a05hdmlnYXRpb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZv
aWQgcXVldWVGb3J3YXJkTmF2aWdhdGlvbihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7Ci0gICAgdm9pZCBxdWV1ZVJlbG9hZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7Ci0gICAgdm9pZCBxdWV1ZUxvYWRpbmdTY3JpcHQoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgcXVldWVOb25Mb2FkaW5nU2NyaXB0KGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIHF1ZXVlTG9hZChjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBxdWV1ZUxvYWRIVE1M
U3RyaW5nKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHF1
ZXVlQmFja05hdmlnYXRpb24oY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0Jiwg
V2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOworICAgIHZvaWQgcXVldWVGb3J3YXJkTmF2aWdh
dGlvbihjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVy
OjpDcHBWYXJpYW50Kik7CisgICAgdm9pZCBxdWV1ZVJlbG9hZChjb25zdCBXZWJUZXN0UnVubmVy
OjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAgdm9p
ZCBxdWV1ZUxvYWRpbmdTY3JpcHQoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0
JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOworICAgIHZvaWQgcXVldWVOb25Mb2FkaW5n
U2NyaXB0KGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5u
ZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHF1ZXVlTG9hZChjb25zdCBXZWJUZXN0UnVubmVy
OjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAgdm9p
ZCBxdWV1ZUxvYWRIVE1MU3RyaW5nKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlz
dCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAgIC8vIEFsdGhvdWdoIHRoaXMg
aXMgbmFtZWQgIm9iakMiIHRvIG1hdGNoIHRoZSBNYWMgdmVyc2lvbiwgaXQgYWN0dWFsbHkgdGVz
dHMKICAgICAvLyB0aGUgaWRlbnRpdHkgb2YgaXRzIHR3byBhcmd1bWVudHMgaW4gQysrLgotICAg
IHZvaWQgb2JqQ0lkZW50aXR5SXNFcXVhbChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CisgICAgdm9pZCBvYmpDSWRlbnRpdHlJc0VxdWFsKGNvbnN0IFdlYlRlc3RSdW5uZXI6
OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAgIC8v
IENoYW5nZXMgdGhlIGNvb2tpZSBwb2xpY3kgZnJvbSB0aGUgZGVmYXVsdCB0byBhbGxvdyBhbGwg
Y29va2llcy4KLSAgICB2b2lkIHNldEFsd2F5c0FjY2VwdENvb2tpZXMoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgc2V0QWx3YXlzQWNjZXB0Q29va2llcyhj
b25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBW
YXJpYW50Kik7CiAKICAgICAvLyBDaGFuZ2VzIGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nIGZs
YWcgb24gdGhlIHNldHRpbmdzLgotICAgIHZvaWQgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQg
c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoY29uc3QgV2ViVGVzdFJ1bm5lcjo6
Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogCiAgICAgLy8g
U2hvd3MgRGV2VG9vbHMgd2luZG93LgotICAgIHZvaWQgc2hvd1dlYkluc3BlY3Rvcihjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBjbG9zZVdlYkluc3BlY3Rv
cihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzaG93V2Vi
SW5zcGVjdG9yKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RS
dW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGNsb3NlV2ViSW5zcGVjdG9yKGNvbnN0IFdl
YlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQq
KTsKIAogICAgIC8vIEdpdmVzIGZvY3VzIHRvIHRoZSB3aW5kb3cuCi0gICAgdm9pZCBzZXRXaW5k
b3dJc0tleShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBz
ZXRXaW5kb3dJc0tleShjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJU
ZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBNZXRob2QgdGhhdCBjb250cm9scyB3
aGV0aGVyIHByZXNzaW5nIFRhYiBrZXkgY3ljbGVzIHRocm91Z2ggcGFnZSBlbGVtZW50cwogICAg
IC8vIG9yIGluc2VydHMgYSAnXHQnIGNoYXIgaW4gdGV4dCBhcmVhCi0gICAgdm9pZCBzZXRUYWJL
ZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOworICAgIHZvaWQgc2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKGNvbnN0IFdlYlRl
c3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsK
IAogICAgIC8vIFBhc3NlcyB0aHJvdWdoIHRvIFdlYlByZWZlcmVuY2VzIHdoaWNoIGFsbG93cyB0
aGUgdXNlciB0byBoYXZlIGEgY3VzdG9tCiAgICAgLy8gc3R5bGUgc2hlZXQuCi0gICAgdm9pZCBz
ZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOwotICAgIHZvaWQgc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQo
Y29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3Bw
VmFyaWFudCopOworICAgIHZvaWQgc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihjb25zdCBXZWJU
ZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7
CiAKICAgICAvLyBQYXNzZXMgdGhpcyBwcmVmZXJlbmNlIHRocm91Z2ggdG8gV2ViU2V0dGluZ3Mu
Ci0gICAgdm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5h
YmxlZChjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVy
OjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBQdXRzIFdlYmtpdCBpbiAiZGFzaGJvYXJkIGNvbXBh
dGliaWxpdHkgbW9kZSIsIHdoaWNoIGlzIHVzZWQgaW4gb2JzY3VyZQogICAgIC8vIE1hYy1vbmx5
IGNpcmN1bXN0YW5jZXMuIEl0J3Mgbm90IHJlYWxseSBuZWNlc3NhcnksIGFuZCB3aWxsIG1vc3Qg
bGlrZWx5CiAgICAgLy8gbmV2ZXIgYmUgdXNlZCBieSBDaHJvbWUsIGJ1dCBzb21lIGxheW91dCB0
ZXN0cyBkZXBlbmQgb24gaXRzIHByZXNlbmNlLgotICAgIHZvaWQgc2V0VXNlRGFzaGJvYXJkQ29t
cGF0aWJpbGl0eU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAg
IHZvaWQgc2V0VXNlRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUoY29uc3QgV2ViVGVzdFJ1bm5l
cjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogCi0gICAg
dm9pZCBzZXRTY3JvbGxiYXJQb2xpY3koY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOworICAgIHZvaWQgc2V0U2Nyb2xsYmFyUG9saWN5KGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNw
cEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAgIC8vIENh
dXNlcyBuYXZpZ2F0aW9uIGFjdGlvbnMganVzdCBwcmludG91dCB0aGUgaW50ZW5kZWQgbmF2aWdh
dGlvbiBpbnN0ZWFkCiAgICAgLy8gb2YgdGFraW5nIHlvdSB0byB0aGUgcGFnZS4gVGhpcyBpcyB1
c2VkIGZvciBjYXNlcyBsaWtlIG1haWx0bywgd2hlcmUgeW91CiAgICAgLy8gZG9uJ3QgYWN0dWFs
bHkgd2FudCB0byBvcGVuIHRoZSBtYWlsIHByb2dyYW0uCi0gICAgdm9pZCBzZXRDdXN0b21Qb2xp
Y3lEZWxlZ2F0ZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9p
ZCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVu
dExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBEZWxheXMgY29t
cGxldGlvbiBvZiB0aGUgdGVzdCB1bnRpbCB0aGUgcG9saWN5IGRlbGVnYXRlIHJ1bnMuCi0gICAg
dm9pZCB3YWl0Rm9yUG9saWN5RGVsZWdhdGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOworICAgIHZvaWQgd2FpdEZvclBvbGljeURlbGVnYXRlKGNvbnN0IFdlYlRlc3RSdW5u
ZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAg
IC8vIENhdXNlcyBXaWxsU2VuZFJlcXVlc3QgdG8gY2xlYXIgY2VydGFpbiBoZWFkZXJzLgotICAg
IHZvaWQgc2V0V2lsbFNlbmRSZXF1ZXN0Q2xlYXJIZWFkZXIoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgc2V0V2lsbFNlbmRSZXF1ZXN0Q2xlYXJIZWFkZXIo
Y29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3Bw
VmFyaWFudCopOwogCiAgICAgLy8gQ2F1c2VzIFdpbGxTZW5kUmVxdWVzdCB0byBibG9jayByZWRp
cmVjdHMuCi0gICAgdm9pZCBzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbE9uUmVkaXJlY3Qo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgc2V0V2lsbFNl
bmRSZXF1ZXN0UmV0dXJuc051bGxPblJlZGlyZWN0KGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFy
Z3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAgIC8vIENhdXNl
cyBXaWxsU2VuZFJlcXVlc3QgdG8gcmV0dXJuIGFuIGVtcHR5IHJlcXVlc3QuCi0gICAgdm9pZCBz
ZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7CisgICAgdm9pZCBzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbChjb25zdCBX
ZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50
Kik7CiAKICAgICAvLyBDb252ZXJ0cyBhIFVSTCBzdGFydGluZyB3aXRoIGZpbGU6Ly8vdG1wLyB0
byB0aGUgbG9jYWwgbWFwcGluZy4KLSAgICB2b2lkIHBhdGhUb0xvY2FsUmVzb3VyY2UoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgcGF0aFRvTG9jYWxSZXNv
dXJjZShjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVy
OjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBTZXRzIGEgYm9vbCBzdWNoIHRoYXQgd2hlbiBhIGRy
YWcgaXMgc3RhcnRlZCwgd2UgZmlsbCB0aGUgZHJhZyBjbGlwYm9hcmQKICAgICAvLyB3aXRoIGEg
ZmFrZSBmaWxlIG9iamVjdC4KLSAgICB2b2lkIGFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWcoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgYWRkRmlsZVRvUGFz
dGVib2FyZE9uRHJhZyhjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJU
ZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBFeGVjdXRlcyBhbiBpbnRlcm5hbCBj
b21tYW5kIChzdXBlcnNldCBvZiBkb2N1bWVudC5leGVjQ29tbWFuZCgpIGNvbW1hbmRzKS4KLSAg
ICB2b2lkIGV4ZWNDb21tYW5kKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsK
KyAgICB2b2lkIGV4ZWNDb21tYW5kKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlz
dCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAgIC8vIENoZWNrcyBpZiBhbiBp
bnRlcm5hbCBjb21tYW5kIGlzIGN1cnJlbnRseSBhdmFpbGFibGUuCi0gICAgdm9pZCBpc0NvbW1h
bmRFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lk
IGlzQ29tbWFuZEVuYWJsZWQoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0Jiwg
V2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogCiAgICAgLy8gU2V0IHRoZSBXZWJQcmVmZXJl
bmNlIHRoYXQgY29udHJvbHMgd2Via2l0J3MgcG9wdXAgYmxvY2tpbmcuCi0gICAgdm9pZCBzZXRQ
b3B1cEJsb2NraW5nRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
CisgICAgdm9pZCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChjb25zdCBXZWJUZXN0UnVubmVyOjpD
cHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBJ
ZiB0cnVlLCBjYXVzZXMgcHJvdmlzaW9uYWwgZnJhbWUgbG9hZHMgdG8gYmUgc3RvcHBlZCBmb3Ig
dGhlIHJlbWFpbmRlciBvZgogICAgIC8vIHRoZSB0ZXN0LgotICAgIHZvaWQgc2V0U3RvcFByb3Zp
c2lvbmFsRnJhbWVMb2Fkcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Cisg
ICAgdm9pZCBzZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKGNvbnN0IFdlYlRlc3RSdW5uZXI6
OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAgIC8v
IEVuYWJsZSBvciBkaXNhYmxlIHNtYXJ0IGluc2VydC9kZWxldGUuIFRoaXMgaXMgZW5hYmxlZCBi
eSBkZWZhdWx0LgotICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZChjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0
UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBFbmFibGUgb3IgZGlzYWJsZSB0cmFpbGlu
ZyB3aGl0ZXNwYWNlIHNlbGVjdGlvbiBvbiBkb3VibGUgY2xpY2suCi0gICAgdm9pZCBzZXRTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKLQotICAgIHZvaWQgcGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgcGF1c2VUcmFu
c2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKLSAgICB2b2lkIGVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJ
ZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBlbmFibGVB
dXRvUmVzaXplTW9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAg
dm9pZCBkaXNhYmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOwotICAgIHZvaWQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIGRpc2FibGVJbWFnZUxvYWRpbmcoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0SWNvbkRhdGFi
YXNlRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9p
ZCBkdW1wU2VsZWN0aW9uUmVjdChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
CisgICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGNvbnN0IFdlYlRl
c3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsK
KworICAgIHZvaWQgcGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoY29uc3QgV2Vi
VGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCop
OworICAgIHZvaWQgcGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKGNvbnN0IFdl
YlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQq
KTsKKyAgICB2b2lkIGVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZChjb25z
dCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJp
YW50Kik7CisgICAgdm9pZCBlbmFibGVBdXRvUmVzaXplTW9kZShjb25zdCBXZWJUZXN0UnVubmVy
OjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAgdm9p
ZCBkaXNhYmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRM
aXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOworICAgIHZvaWQgbnVtYmVyT2ZBY3Rp
dmVBbmltYXRpb25zKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRl
c3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGRpc2FibGVJbWFnZUxvYWRpbmcoY29u
c3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFy
aWFudCopOworICAgIHZvaWQgc2V0SWNvbkRhdGFiYXNlRW5hYmxlZChjb25zdCBXZWJUZXN0UnVu
bmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAg
dm9pZCBkdW1wU2VsZWN0aW9uUmVjdChjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExp
c3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKICAgICAvLyBHcmFudHMgcGVybWlzc2lvbiBmb3IgZGVza3RvcCBub3RpZmljYXRpb25z
IHRvIGFuIG9yaWdpbgotICAgIHZvaWQgZ3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIGRlbnlXZWJOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsK
LSAgICB2b2lkIHJlbW92ZUFsbFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIHNpbXVsYXRlV2ViTm90aWZpY2F0
aW9uQ2xpY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQg
Z3JhbnRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFy
Z3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGRlbnlX
ZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50
TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHJlbW92ZUFsbFdl
Yk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50
TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNpbXVsYXRlV2Vi
Tm90aWZpY2F0aW9uQ2xpY2soY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0Jiwg
V2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogICAgIC8vIFNpbXVsYXRlcyBhIGNsaWNrIG9u
IGEgZGVza3RvcCBub3RpZmljYXRpb24uCi0gICAgdm9pZCBzaW11bGF0ZUxlZ2FjeVdlYk5vdGlm
aWNhdGlvbkNsaWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2
b2lkIHNpbXVsYXRlTGVnYWN5V2ViTm90aWZpY2F0aW9uQ2xpY2soY29uc3QgV2ViVGVzdFJ1bm5l
cjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogI2VuZGlm
CiAKLSAgICB2b2lkIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0RGVmZXJNYWlu
UmVzb3VyY2VEYXRhTG9hZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Cisg
ICAgdm9pZCBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGNvbnN0IFdl
YlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQq
KTsKKyAgICB2b2lkIHNldERlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoY29uc3QgV2ViVGVzdFJ1
bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogCiAg
ICAgLy8gRGVhbHMgd2l0aCBXZWIgQXVkaW8gV0FWIGZpbGUgZGF0YS4KLSAgICB2b2lkIHNldEF1
ZGlvRGF0YShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBz
ZXRBdWRpb0RhdGEoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVz
dFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogICAgIGNvbnN0IFdlYktpdDo6V2ViQXJyYXlCdWZmZXJW
aWV3JiBhdWRpb0RhdGEoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvRGF0YTsgfSAKIAogICAgIC8v
IFRoZSBmb2xsb3dpbmcgYXJlIG9ubHkgc3R1YnMuCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBh
bnkgb2YgdGhlc2UgdGhhdCBhcmUgbmVlZGVkIHRvIHBhc3MgdGhlIGxheW91dCB0ZXN0cy4KLSAg
ICB2b2lkIGR1bXBBc1dlYkFyY2hpdmUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOwotICAgIHZvaWQgZHVtcFRpdGxlQ2hhbmdlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7Ci0gICAgdm9pZCBzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIGRpc3BsYXkoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgZGlzcGxheUludmFsaWRh
dGVkUmVnaW9uKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lk
IHRlc3RSZXBhaW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2
b2lkIHJlcGFpbnRTd2VlcEhvcml6b250YWxseShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7Ci0gICAgdm9pZCBjbGVhckJhY2tGb3J3YXJkTGlzdChjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBrZWVwV2ViSGlzdG9yeShjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBzdG9yZVdlYlNjcmlwdE9iamVj
dChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBhY2Nlc3NT
dG9yZWRXZWJTY3JpcHRPYmplY3QoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwotICAgIHZvaWQgb2JqQ0NsYXNzTmFtZU9mKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKLSAgICB2b2lkIGFkZERpc2FsbG93ZWRVUkwoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3KGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIHNldENhbGxDbG9zZU9u
V2ViVmlld3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQg
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7Ci0KLSAgICB2b2lkIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0WFNTQXVkaXRvckVu
YWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgb3Zl
cnJpZGVQcmVmZXJlbmNlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAg
ICB2b2lkIHNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIHNldEFsbG93RGlzcGxheU9mSW5zZWN1
cmVDb250ZW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lk
IHNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7Ci0gICAgdm9pZCBzZXRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudChj
b25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0KLSAgICB2b2lkIGV2YWx1YXRl
U2NyaXB0SW5Jc29sYXRlZFdvcmxkQW5kUmV0dXJuVmFsdWUoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0SXNvbGF0
ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKLSAgICB2b2lkIHNldElzb2xhdGVkV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgZHVtcEFzV2ViQXJjaGl2
ZShjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpD
cHBWYXJpYW50Kik7CisgICAgdm9pZCBkdW1wVGl0bGVDaGFuZ2VzKGNvbnN0IFdlYlRlc3RSdW5u
ZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2
b2lkIHNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3Bw
QXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOworICAgIHZvaWQgZGlz
cGxheShjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVy
OjpDcHBWYXJpYW50Kik7CisgICAgdm9pZCBkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oY29uc3Qg
V2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFu
dCopOworICAgIHZvaWQgdGVzdFJlcGFpbnQoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1l
bnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOworICAgIHZvaWQgcmVwYWludFN3
ZWVwSG9yaXpvbnRhbGx5KGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdl
YlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGNsZWFyQmFja0ZvcndhcmRMaXN0
KGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNw
cFZhcmlhbnQqKTsKKyAgICB2b2lkIGtlZXBXZWJIaXN0b3J5KGNvbnN0IFdlYlRlc3RSdW5uZXI6
OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lk
IHN0b3JlV2ViU2NyaXB0T2JqZWN0KGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlz
dCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGFjY2Vzc1N0b3JlZFdl
YlNjcmlwdE9iamVjdChjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJU
ZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAgdm9pZCBvYmpDQ2xhc3NOYW1lT2YoY29uc3Qg
V2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFu
dCopOworICAgIHZvaWQgYWRkRGlzYWxsb3dlZFVSTChjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBB
cmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAgdm9pZCBjYWxs
U2hvdWxkQ2xvc2VPbldlYlZpZXcoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0
JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOworICAgIHZvaWQgc2V0Q2FsbENsb3NlT25X
ZWJWaWV3cyhjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVu
bmVyOjpDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGNv
bnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZh
cmlhbnQqKTsKKworICAgIHZvaWQgc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChjb25z
dCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJp
YW50Kik7CisgICAgdm9pZCBzZXRYU1NBdWRpdG9yRW5hYmxlZChjb25zdCBXZWJUZXN0UnVubmVy
OjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAgdm9p
ZCBvdmVycmlkZVByZWZlcmVuY2UoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0
JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOworICAgIHZvaWQgc2V0QWxsb3dVbml2ZXJz
YWxBY2Nlc3NGcm9tRmlsZVVSTHMoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0
JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOworICAgIHZvaWQgc2V0QWxsb3dEaXNwbGF5
T2ZJbnNlY3VyZUNvbnRlbnQoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0Jiwg
V2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOworICAgIHZvaWQgc2V0QWxsb3dGaWxlQWNjZXNz
RnJvbUZpbGVVUkxzKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRl
c3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNldEFsbG93UnVubmluZ09mSW5zZWN1
cmVDb250ZW50KGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RS
dW5uZXI6OkNwcFZhcmlhbnQqKTsKKworICAgIHZvaWQgZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVk
V29ybGRBbmRSZXR1cm5WYWx1ZShjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3Qm
LCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAgdm9pZCBldmFsdWF0ZVNjcmlwdElu
SXNvbGF0ZWRXb3JsZChjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJU
ZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzZXRJc29sYXRlZFdvcmxkU2VjdXJp
dHlPcmlnaW4oY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1
bm5lcjo6Q3BwVmFyaWFudCopOworICAgIHZvaWQgc2V0SXNvbGF0ZWRXb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeShjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0
UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBUaGUgZmFsbGJhY2sgbWV0aG9kIGlzIGNh
bGxlZCB3aGVuIGEgbm9uZXhpc3RlbnQgbWV0aG9kIGlzIGNhbGxlZCBvbgogICAgIC8vIHRoZSBs
YXlvdXQgdGVzdCBjb250cm9sbGVyIG9iamVjdC4KICAgICAvLyBJdCBpcyB1c2VmdWxsIHRvIGNh
dGNoIHR5cG9zIGluIHRoZSBKYXZhU2NyaXB0IGNvZGUgKGEgZmV3IGxheW91dCB0ZXN0cwogICAg
IC8vIGRvIGhhdmUgdHlwb3MgaW4gdGhlbSkgYW5kIGl0IGFsbG93cyB0aGUgc2NyaXB0IHRvIGNv
bnRpbnVlIHJ1bm5pbmcgaW4KICAgICAvLyB0aGF0IGNhc2UgKGFzIHRoZSBNYWMgZG9lcykuCi0g
ICAgdm9pZCBmYWxsYmFja01ldGhvZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CisgICAgdm9pZCBmYWxsYmFja01ldGhvZChjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1
bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBBbGxvd3Mg
bGF5b3V0IHRlc3RzIHRvIG1hbmFnZSBvcmlnaW5zJyB3aGl0ZWxpc3RpbmcuCi0gICAgdm9pZCBh
ZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7Ci0gICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBhZGRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeShjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBX
ZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeShjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJU
ZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBDbGVhcnMgYWxsIGFwcGxpY2F0aW9u
IGNhY2hlcy4KLSAgICB2b2lkIGNsZWFyQWxsQXBwbGljYXRpb25DYWNoZXMoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgY2xlYXJBbGxBcHBsaWNhdGlvbkNh
Y2hlcyhjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVy
OjpDcHBWYXJpYW50Kik7CiAgICAgLy8gQ2xlYXJzIGFuIGFwcGxpY2F0aW9uIGNhY2hlIGZvciBh
biBvcmlnaW4uCi0gICAgdm9pZCBjbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmlnaW4oY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgY2xlYXJBcHBsaWNhdGlv
bkNhY2hlRm9yT3JpZ2luKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdl
YlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKICAgICAvLyBSZXR1cm5zIG9yaWdpbnMgdGhhdCBo
YXZlIGFwcGxpY2F0aW9uIGNhY2hlcy4KLSAgICB2b2lkIG9yaWdpbnNXaXRoQXBwbGljYXRpb25D
YWNoZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBvcmln
aW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRM
aXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogICAgIC8vIFNldHMgdGhlIGFwcGxp
Y2F0aW9uIGNhY2hlIHF1b3RhIGZvciB0aGUgbG9jYWxob3N0IG9yaWdpbi4KLSAgICB2b2lkIHNl
dEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7CisgICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3Qg
V2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFu
dCopOwogICAgIC8vIFJldHVybnMgZGlzayB1c2FnZSBieSBhbGwgYXBwbGljYXRpb24gY2FjaGVz
IGZvciBhbiBvcmlnaW4uCi0gICAgdm9pZCBhcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3Jp
Z2luKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGFwcGxp
Y2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4oY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJn
dW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogCiAgICAgLy8gQ2xlYXJz
IGFsbCBkYXRhYmFzZXMuCi0gICAgdm9pZCBjbGVhckFsbERhdGFiYXNlcyhjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBjbGVhckFsbERhdGFiYXNlcyhjb25z
dCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJp
YW50Kik7CiAgICAgLy8gU2V0cyB0aGUgZGVmYXVsdCBxdW90YSBmb3IgYWxsIG9yaWdpbnMKLSAg
ICB2b2lkIHNldERhdGFiYXNlUXVvdGEoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOworICAgIHZvaWQgc2V0RGF0YWJhc2VRdW90YShjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBB
cmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBDYWxs
cyBzZXRsb2NhbGUoTENfQUxMLCAuLi4pIGZvciBhIHNwZWNpZmllZCBsb2NhbGUuCiAgICAgLy8g
UmVzZXRzIGJldHdlZW4gdGVzdHMuCi0gICAgdm9pZCBzZXRQT1NJWExvY2FsZShjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzZXRQT1NJWExvY2FsZShjb25z
dCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJp
YW50Kik7CiAKICAgICAvLyBDYXVzZXMgbGF5b3V0IHRvIGhhcHBlbiBhcyBpZiB0YXJnZXR0ZWQg
dG8gcHJpbnRlZCBwYWdlcy4KLSAgICB2b2lkIHNldFByaW50aW5nKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNldFByaW50aW5nKGNvbnN0IFdlYlRlc3RS
dW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAog
ICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBwYWdlIGJveCBoYXMgY3VzdG9tIHBh
Z2Ugc2l6ZSBzdHlsZSBmb3IKICAgICAvLyBwcmludGluZy4KLSAgICB2b2lkIGhhc0N1c3RvbVBh
Z2VTaXplU3R5bGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZv
aWQgaGFzQ3VzdG9tUGFnZVNpemVTdHlsZShjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVu
dExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBHZXRzIHRoZSBu
dW1iZXIgb2YgZ2VvbG9jYXRpb24gcGVybWlzc2lvbnMgcmVxdWVzdHMgcGVuZGluZy4KLSAgICB2
b2lkIG51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIG51bWJlck9mUGVuZGluZ0dl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3Vt
ZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAgIC8vIEFsbG93cyBs
YXlvdXQgdGVzdHMgdG8gZXhlYyBzY3JpcHRzIGF0IFdlYkluc3BlY3RvciBzaWRlLgotICAgIHZv
aWQgZXZhbHVhdGVJbldlYkluc3BlY3Rvcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CisgICAgdm9pZCBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGNvbnN0IFdlYlRlc3RSdW5u
ZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAg
IC8vIEZvcmNlcyB0aGUgc2VsZWN0aW9uIGNvbG9ycyBmb3IgdGVzdGluZyB1bmRlciBMaW51eC4K
LSAgICB2b2lkIGZvcmNlUmVkU2VsZWN0aW9uQ29sb3JzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGZvcmNlUmVkU2VsZWN0aW9uQ29sb3JzKGNvbnN0IFdl
YlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQq
KTsKIAogICAgIC8vIEFkZHMgYSB1c2VyIHNjcmlwdCBvciB1c2VyIHN0eWxlIHNoZWV0IHRvIGJl
IGluamVjdGVkIGludG8gbmV3IGRvY3VtZW50cy4KLSAgICB2b2lkIGFkZFVzZXJTY3JpcHQoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgYWRkVXNlclN0eWxl
U2hlZXQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgYWRk
VXNlclNjcmlwdChjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0
UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChjb25zdCBX
ZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50
Kik7CiAKICAgICAvLyBEZXZpY2VPcmllbnRhdGlvbiByZWxhdGVkIGZ1bmN0aW9ucwotICAgIHZv
aWQgc2V0TW9ja0RldmljZU9yaWVudGF0aW9uKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKKyAgICB2b2lkIHNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihjb25zdCBXZWJUZXN0
UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAK
ICAgICAvLyBHZW9sb2NhdGlvbiByZWxhdGVkIGZ1bmN0aW9ucy4KLSAgICB2b2lkIHNldEdlb2xv
Y2F0aW9uUGVybWlzc2lvbihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0g
ICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVuYXZh
aWxhYmxlRXJyb3IoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZv
aWQgc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3Vt
ZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNldE1vY2tH
ZW9sb2NhdGlvblBvc2l0aW9uKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYs
IFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlv
blBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVu
dExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBFbXB0eSBzdHVi
IG1ldGhvZCB0byBrZWVwIHBhcml0eSB3aXRoIG9iamVjdCBtb2RlbCBleHBvc2VkIGJ5IGdsb2Jh
bCBEUlRUZXN0UnVubmVyLgotICAgIHZvaWQgYWJvcnRNb2RhbChjb25zdCBDcHBBcmd1bWVudExp
c3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBhYm9ydE1vZGFsKGNvbnN0IFdlYlRlc3RSdW5u
ZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAg
IC8vIFNwZWVjaCBpbnB1dCByZWxhdGVkIGZ1bmN0aW9ucy4KICNpZiBFTkFCTEUoSU5QVVRfU1BF
RUNIKQotICAgIHZvaWQgYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIHNldE1vY2tTcGVlY2hJbnB1dER1bXBSZWN0
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGFkZE1vY2tT
cGVlY2hJbnB1dFJlc3VsdChjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBX
ZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzZXRNb2NrU3BlZWNoSW5wdXRE
dW1wUmVjdChjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVu
bmVyOjpDcHBWYXJpYW50Kik7CiAjZW5kaWYKICNpZiBFTkFCTEUoU0NSSVBURURfU1BFRUNIKQot
ICAgIHZvaWQgYWRkTW9ja1NwZWVjaFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIHNldE1vY2tTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIHdhc01v
Y2tTcGVlY2hSZWNvZ25pdGlvbkFib3J0ZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOworICAgIHZvaWQgYWRkTW9ja1NwZWVjaFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFdl
YlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQq
KTsKKyAgICB2b2lkIHNldE1vY2tTcGVlY2hSZWNvZ25pdGlvbkVycm9yKGNvbnN0IFdlYlRlc3RS
dW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAg
ICB2b2lkIHdhc01vY2tTcGVlY2hSZWNvZ25pdGlvbkFib3J0ZWQoY29uc3QgV2ViVGVzdFJ1bm5l
cjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogI2VuZGlm
Ci0gICAgdm9pZCBzdGFydFNwZWVjaElucHV0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKKyAgICB2b2lkIHN0YXJ0U3BlZWNoSW5wdXQoY29uc3QgV2ViVGVzdFJ1bm5lcjo6
Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogCi0gICAgdm9p
ZCBsb3NlQ29tcG9zaXRvckNvbnRleHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmdzLCBDcHBW
YXJpYW50KiByZXN1bHQpOworICAgIHZvaWQgbG9zZUNvbXBvc2l0b3JDb250ZXh0KGNvbnN0IFdl
YlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYgYXJncywgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFy
aWFudCogcmVzdWx0KTsKIAotICAgIHZvaWQgbWFya2VyVGV4dEZvckxpc3RJdGVtKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIGZpbmRTdHJpbmcoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgbWFya2VyVGV4dEZvckxp
c3RJdGVtKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5u
ZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGZpbmRTdHJpbmcoY29uc3QgV2ViVGVzdFJ1bm5l
cjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogCi0gICAg
dm9pZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7CisgICAgdm9pZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChjb25zdCBXZWJUZXN0
UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAK
ICAgICAvLyBFeHBlY3RzIHRoZSBmaXJzdCBhcmd1bWVudCB0byBiZSBhbiBpbnB1dCBlbGVtZW50
IGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIGJlIGEgYm9vbGVhbi4KICAgICAvLyBGb3J3YXJk
cyB0aGUgc2V0QXV0b2ZpbGxlZCgpIGNhbGwgdG8gdGhlIGVsZW1lbnQuCi0gICAgdm9pZCBzZXRB
dXRvZmlsbGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lk
IHNldEF1dG9maWxsZWQoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2Vi
VGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogCiAgICAgLy8gRXhwZWN0cyB0aGUgZmlyc3QgYXJn
dW1lbnQgdG8gYmUgYW4gaW5wdXQgZWxlbWVudCBhbmQgdGhlIHNlY29uZCBhcmd1bWVudCB0byBi
ZSBhIHN0cmluZyB2YWx1ZS4KICAgICAvLyBGb3J3YXJkcyB0aGUgc2V0VmFsdWVGb3JVc2VyKCkg
Y2FsbCB0byB0aGUgZWxlbWVudC4KLSAgICB2b2lkIHNldFZhbHVlRm9yVXNlcihjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzZXRWYWx1ZUZvclVzZXIoY29u
c3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFy
aWFudCopOwogCiAgICAgLy8gTG9jYWxTdG9yYWdlIG9yaWdpbi1yZWxhdGVkCi0gICAgdm9pZCBk
ZWxldGVBbGxMb2NhbFN0b3JhZ2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwotICAgIHZvaWQgb3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgZGVsZXRlTG9jYWxTdG9yYWdlRm9yT3JpZ2luKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIGxvY2FsU3RvcmFn
ZURpc2tVc2FnZUZvck9yaWdpbihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
Ci0gICAgdm9pZCBvYnNlcnZlU3RvcmFnZVRyYWNrZXJOb3RpZmljYXRpb25zKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIHN5bmNMb2NhbFN0b3JhZ2UoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgZGVsZXRlQWxsTG9j
YWxTdG9yYWdlKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RS
dW5uZXI6OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIG9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlKGNv
bnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZh
cmlhbnQqKTsKKyAgICB2b2lkIGRlbGV0ZUxvY2FsU3RvcmFnZUZvck9yaWdpbihjb25zdCBXZWJU
ZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7
CisgICAgdm9pZCBsb2NhbFN0b3JhZ2VEaXNrVXNhZ2VGb3JPcmlnaW4oY29uc3QgV2ViVGVzdFJ1
bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOworICAg
IHZvaWQgb2JzZXJ2ZVN0b3JhZ2VUcmFja2VyTm90aWZpY2F0aW9ucyhjb25zdCBXZWJUZXN0UnVu
bmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAg
dm9pZCBzeW5jTG9jYWxTdG9yYWdlKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlz
dCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAgIC8vIFdlYlBlcm1pc3Npb25D
bGllbnQgcmVsYXRlZC4KLSAgICB2b2lkIHNldEltYWdlc0FsbG93ZWQoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0U2NyaXB0c0FsbG93ZWQoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0U3RvcmFnZUFsbG93
ZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0UGx1
Z2luc0FsbG93ZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZv
aWQgZHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOworICAgIHZvaWQgc2V0SW1hZ2VzQWxsb3dlZChjb25zdCBXZWJUZXN0UnVu
bmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAg
dm9pZCBzZXRTY3JpcHRzQWxsb3dlZChjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExp
c3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzZXRTdG9yYWdlQWxs
b3dlZChjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVy
OjpDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzZXRQbHVnaW5zQWxsb3dlZChjb25zdCBXZWJUZXN0
UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7Cisg
ICAgdm9pZCBkdW1wUGVybWlzc2lvbkNsaWVudENhbGxiYWNrcyhjb25zdCBXZWJUZXN0UnVubmVy
OjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAKICAgICAv
LyBFbmFibGUgb3IgZGlzYWJsZSBwbHVnaW5zLgotICAgIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgc2V0UGx1Z2lu
c0VuYWJsZWQoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1
bm5lcjo6Q3BwVmFyaWFudCopOwogCiAgICAgLy8gU3dpdGNoIHRoZSB2aXNpYmlsaXR5IG9mIHRo
ZSBwYWdlLgotICAgIHZvaWQgc2V0UGFnZVZpc2liaWxpdHkoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgcmVzZXRQYWdlVmlzaWJpbGl0eShjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzZXRQYWdlVmlzaWJpbGl0eShj
b25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBW
YXJpYW50Kik7CisgICAgdm9pZCByZXNldFBhZ2VWaXNpYmlsaXR5KGNvbnN0IFdlYlRlc3RSdW5u
ZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAg
IC8vIENoYW5nZXMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgZm9jdXNlZCBlbGVtZW50LgotICAgIHZv
aWQgc2V0VGV4dERpcmVjdGlvbihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
CisgICAgdm9pZCBzZXRUZXh0RGlyZWN0aW9uKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3Vt
ZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQqKTsKIAotICAgIHZvaWQgc2V0U2hv
dWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgc2V0U2hvdWxkU3RheU9uUGFnZUFmdGVySGFu
ZGxpbmdCZWZvcmVVbmxvYWQoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0Jiwg
V2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogCi0gICAgdm9pZCBlbmFibGVGaXhlZExheW91
dE1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0
Rml4ZWRMYXlvdXRTaXplKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAg
ICB2b2lkIGVuYWJsZUZpeGVkTGF5b3V0TW9kZShjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1
bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzZXRGaXhl
ZExheW91dFNpemUoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVz
dFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogCi0gICAgdm9pZCBzZWxlY3Rpb25Bc01hcmt1cChjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBzZWxlY3Rpb25Bc01h
cmt1cChjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVy
OjpDcHBWYXJpYW50Kik7CiAKICAgICAvLyBTd2l0Y2ggdGhlIGxpbmsgZGV0ZWN0aW9uLgogICAg
IHZvaWQgc2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQoYm9vbCk7CiAKICNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQotICAgIHZvaWQgZGlkQWNxdWlyZVBvaW50ZXJMb2NrKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIGRpZE5vdEFjcXVpcmVQb2lu
dGVyTG9jayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBk
aWRMb3NlUG9pbnRlckxvY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwot
ICAgIHZvaWQgc2V0UG9pbnRlckxvY2tXaWxsRmFpbFN5bmNocm9ub3VzbHkoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0UG9pbnRlckxvY2tXaWxsUmVz
cG9uZEFzeW5jaHJvbm91c2x5KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsK
KyAgICB2b2lkIGRpZEFjcXVpcmVQb2ludGVyTG9jayhjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBB
cmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CisgICAgdm9pZCBkaWRO
b3RBY3F1aXJlUG9pbnRlckxvY2soY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0
JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOworICAgIHZvaWQgZGlkTG9zZVBvaW50ZXJM
b2NrKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6
OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNldFBvaW50ZXJMb2NrV2lsbEZhaWxTeW5jaHJvbm91
c2x5KGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RSdW5uZXI6
OkNwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNldFBvaW50ZXJMb2NrV2lsbFJlc3BvbmRBc3luY2hy
b25vdXNseShjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVu
bmVyOjpDcHBWYXJpYW50Kik7CiAjZW5kaWYKIAotICAgIHZvaWQgd29ya2VyVGhyZWFkQ291bnQo
Q3BwVmFyaWFudCopOworICAgIHZvaWQgd29ya2VyVGhyZWFkQ291bnQoV2ViVGVzdFJ1bm5lcjo6
Q3BwVmFyaWFudCopOwogCiAgICAgLy8gRXhwZWN0cyBvbmUgc3RyaW5nIGFyZ3VtZW50IGZvciBz
ZW5kaW5nIHN1Y2Nlc3NmdWwgcmVzdWx0LCB6ZXJvCiAgICAgLy8gYXJndW1lbnRzIGZvciBzZW5k
aW5nIGEgZmFpbHVyZSByZXN1bHQuCi0gICAgdm9pZCBzZW5kV2ViSW50ZW50UmVzcG9uc2UoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgc2VuZFdlYkludGVu
dFJlc3BvbnNlKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdCYsIFdlYlRlc3RS
dW5uZXI6OkNwcFZhcmlhbnQqKTsKIAogICAgIC8vIENhdXNlIHRoZSB3ZWIgaW50ZW50IHRvIGJl
IGRlbGl2ZXJlZCB0byB0aGlzIGNvbnRleHQuCi0gICAgdm9pZCBkZWxpdmVyV2ViSW50ZW50KGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGRlbGl2ZXJXZWJJ
bnRlbnQoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5l
cjo6Q3BwVmFyaWFudCopOwogCiAgICAgLy8gRW5hYmxlcyBvciBkaXNhYmxlcyBzdWJwaXhlbCBw
b3NpdGlvbmluZyAoaS5lLiBmcmFjdGlvbmFsIFggcG9zaXRpb25zIGZvcgogICAgIC8vIGdseXBo
cykgaW4gdGV4dCByZW5kZXJpbmcgb24gTGludXguIFNpbmNlIHRoaXMgbWV0aG9kIGNoYW5nZXMg
Z2xvYmFsCiAgICAgLy8gc2V0dGluZ3MsIHRlc3RzIHRoYXQgY2FsbCBpdCBtdXN0IHVzZSB0aGVp
ciBvd24gY3VzdG9tIGZvbnQgZmFtaWx5IGZvcgogICAgIC8vIGFsbCB0ZXh0IHRoYXQgdGhleSBy
ZW5kZXIuIElmIG5vdCwgYW4gYWxyZWFkeS1jYWNoZWQgc3R5bGUgd2lsbCBiZSB1c2VkLAogICAg
IC8vIHJlc3VsdGluZyBpbiB0aGUgY2hhbmdlZCBzZXR0aW5nIGJlaW5nIGlnbm9yZWQuCi0gICAg
dm9pZCBzZXRUZXh0U3VicGl4ZWxQb3NpdGlvbmluZyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CisgICAgdm9pZCBzZXRUZXh0U3VicGl4ZWxQb3NpdGlvbmluZyhjb25zdCBX
ZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50
Kik7CiAKICAgICAvLyBVc2VkIHRvIHNldCB0aGUgZGV2aWNlIHNjYWxlIGZhY3Rvci4KLSAgICB2
b2lkIHNldEJhY2tpbmdTY2FsZUZhY3Rvcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CisgICAgdm9pZCBzZXRCYWNraW5nU2NhbGVGYWN0b3IoY29uc3QgV2ViVGVzdFJ1bm5l
cjo6Q3BwQXJndW1lbnRMaXN0JiwgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCopOwogCiAgICAg
Ly8gUmV0cmlldmVzIHRoZSB0ZXh0IHN1cnJvdW5kaW5nIGEgcG9zaXRpb24gaW4gYSB0ZXh0IG5v
ZGUuCiAgICAgLy8gRXhwZWN0cyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gYmUgYSB0ZXh0IG5vZGUs
IHRoZSBzZWNvbmQgYW5kIHRoaXJkIHRvIGJlCiAgICAgLy8gcG9pbnQgY29vcmRpbmF0ZXMgcmVs
YXRpdmUgdG8gdGhlIG5vZGUgYW5kIHRoZSBmb3VydGggdGhlIG1heGltdW0gdGV4dAogICAgIC8v
IGxlbmd0aCB0byByZXRyaWV2ZS4KLSAgICB2b2lkIHRleHRTdXJyb3VuZGluZ05vZGUoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgdGV4dFN1cnJvdW5kaW5n
Tm9kZShjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3QmLCBXZWJUZXN0UnVubmVy
OjpDcHBWYXJpYW50Kik7CiAKIHB1YmxpYzoKICAgICAvLyBUaGUgZm9sbG93aW5nIG1ldGhvZHMg
YXJlIG5vdCBleHBvc2VkIHRvIEphdmFTY3JpcHQuCkBAIC01MDYsNyArNTA2LDcgQEAgcHVibGlj
OgogICAgIGJvb2wgdGVzdFJlcGFpbnQoKSBjb25zdCB7IHJldHVybiBtX3Rlc3RSZXBhaW50OyB9
CiAgICAgYm9vbCBzd2VlcEhvcml6b250YWxseSgpIGNvbnN0IHsgcmV0dXJuIG1fc3dlZXBIb3Jp
em9udGFsbHk7IH0KIAotICAgIHZvaWQgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHNldEhhc0N1c3Rv
bUZ1bGxTY3JlZW5CZWhhdmlvcihjb25zdCBXZWJUZXN0UnVubmVyOjpDcHBBcmd1bWVudExpc3Qm
LCBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50Kik7CiAgICAgYm9vbCBoYXNDdXN0b21GdWxsU2Ny
ZWVuQmVoYXZpb3IoKSBjb25zdCB7IHJldHVybiBtX2hhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlv
cjsgfQogCiAgICAgLy8gQ2FsbGVkIGJ5IHRoZSB3ZWJ2aWV3IGRlbGVnYXRlIHdoZW4gdGhlIHRv
cGxldmVsIGZyYW1lIGxvYWQgaXMgZG9uZS4KQEAgLTU2OSwxMCArNTY5LDEwIEBAIHByaXZhdGU6
CiAgICAgfTsKIAogICAgIC8vIFN1cHBvcnQgZm9yIG92ZXJyaWRlUHJlZmVyZW5jZS4KLSAgICBi
b29sIGNwcFZhcmlhbnRUb0Jvb2woY29uc3QgQ3BwVmFyaWFudCYpOwotICAgIGludDMyX3QgY3Bw
VmFyaWFudFRvSW50MzIoY29uc3QgQ3BwVmFyaWFudCYpOwotICAgIFdlYktpdDo6V2ViU3RyaW5n
IGNwcFZhcmlhbnRUb1dlYlN0cmluZyhjb25zdCBDcHBWYXJpYW50Jik7Ci0gICAgVmVjdG9yPFdl
YktpdDo6V2ViU3RyaW5nPiBjcHBWYXJpYW50VG9XZWJTdHJpbmdBcnJheShjb25zdCBDcHBWYXJp
YW50Jik7CisgICAgYm9vbCBjcHBWYXJpYW50VG9Cb29sKGNvbnN0IFdlYlRlc3RSdW5uZXI6OkNw
cFZhcmlhbnQmKTsKKyAgICBpbnQzMl90IGNwcFZhcmlhbnRUb0ludDMyKGNvbnN0IFdlYlRlc3RS
dW5uZXI6OkNwcFZhcmlhbnQmKTsKKyAgICBXZWJLaXQ6OldlYlN0cmluZyBjcHBWYXJpYW50VG9X
ZWJTdHJpbmcoY29uc3QgV2ViVGVzdFJ1bm5lcjo6Q3BwVmFyaWFudCYpOworICAgIFZlY3RvcjxX
ZWJLaXQ6OldlYlN0cmluZz4gY3BwVmFyaWFudFRvV2ViU3RyaW5nQXJyYXkoY29uc3QgV2ViVGVz
dFJ1bm5lcjo6Q3BwVmFyaWFudCYpOwogCiAgICAgdm9pZCBsb2dFcnJvclRvQ29uc29sZShjb25z
dCBzdGQ6OnN0cmluZyYpOwogICAgIHZvaWQgY29tcGxldGVOb3RpZnlEb25lKGJvb2wgaXNUaW1l
b3V0KTsKQEAgLTcwMSwxOSArNzAxLDE5IEBAIHByaXZhdGU6CiAKICAgICBXb3JrUXVldWUgbV93
b3JrUXVldWU7CiAKLSAgICBDcHBWYXJpYW50IG1fZ2xvYmFsRmxhZzsKKyAgICBXZWJUZXN0UnVu
bmVyOjpDcHBWYXJpYW50IG1fZ2xvYmFsRmxhZzsKIAogICAgIC8vIEJvdW5kIHZhcmlhYmxlIGNv
dW50aW5nIHRoZSBudW1iZXIgb2YgdG9wIFVSTHMgdmlzaXRlZC4KLSAgICBDcHBWYXJpYW50IG1f
d2ViSGlzdG9yeUl0ZW1Db3VudDsKKyAgICBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50IG1fd2Vi
SGlzdG9yeUl0ZW1Db3VudDsKIAogICAgIC8vIEJvdW5kIHZhcmlhYmxlIHRyYWNraW5nIHRoZSBk
aXJlY3Rpb25hbGl0eSBvZiB0aGUgPHRpdGxlPiB0YWcuCi0gICAgQ3BwVmFyaWFudCBtX3RpdGxl
VGV4dERpcmVjdGlvbjsKKyAgICBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50IG1fdGl0bGVUZXh0
RGlyZWN0aW9uOwogCiAgICAgLy8gQm91bmQgdmFyaWFibGUgdG8gcmV0dXJuIHRoZSBuYW1lIG9m
IHRoaXMgcGxhdGZvcm0gKGNocm9taXVtKS4KLSAgICBDcHBWYXJpYW50IG1fcGxhdGZvcm1OYW1l
OworICAgIFdlYlRlc3RSdW5uZXI6OkNwcFZhcmlhbnQgbV9wbGF0Zm9ybU5hbWU7CiAKICAgICAv
LyBCb3VuZCB2YXJpYWJsZSB0byBzZXQgd2hldGhlciBwb3N0TWVzc2FnZXMgc2hvdWxkIGJlIGlu
dGVyY2VwdGVkIG9yIG5vdAotICAgIENwcFZhcmlhbnQgbV9pbnRlcmNlcHRQb3N0TWVzc2FnZTsK
KyAgICBXZWJUZXN0UnVubmVyOjpDcHBWYXJpYW50IG1faW50ZXJjZXB0UG9zdE1lc3NhZ2U7CiAK
ICAgICBXZWJLaXQ6OldlYlVSTCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb247CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyQ2hyb21pdW0uaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uaAppbmRleCAz
NWJmMDZjNTYzNjdlMDE2NDVkMDFiMThkMTczMTkyMmZiYWRmODcwLi5hOTcyOGM2MTViYjRmNTA1
ZmUxZWNhNmEyZjY0Y2ZmYWU5NGExNTViIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVt
LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5oCkBAIC00MCwxMCArNDAsMTAgQEAgY2xhc3Mg
V2ViRnJhbWU7CiBjbGFzcyBXZWJWaWV3OwogfQogCi1jbGFzcyBUZXN0RGVsZWdhdGU7Ci0KIG5h
bWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIAorY2xhc3MgVGVzdERlbGVnYXRlOworCiBjbGFzcyBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlciA6IHB1YmxpYyBDcHBCb3VuZENsYXNzIHsKIHB1YmxpYzoK
ICAgICBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENo
cm9taXVtLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5jcHAKaW5kZXggMjE1N2RkYjY5ZDgwMjNh
NjQ4MTliZjE1YjA5NzhiOTZlOWI3MDg0ZC4uN2I4ZjZmYmQxZWQ0ZjQxYjg3OWZhNTdkZDA4NjM5
YTIyMzQ0ODQ2MSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Q2hyb21pdW0uY3BwCkBAIC00Miw5ICs0MiwxMyBAQAogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKK25hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsK
KworbmFtZXNwYWNlIHsKKwogLy8gTWFwIHJvbGUgdmFsdWUgdG8gc3RyaW5nLCBtYXRjaGluZyBT
YWZhcmkvTWFjIHBsYXRmb3JtIGltcGxlbWVudGF0aW9uIHRvCiAvLyBhdm9pZCByZWJhc2VsaW5p
bmcgbGF5b3V0IHRlc3RzLgotc3RhdGljIHN0cmluZyByb2xlVG9TdHJpbmcoV2ViQWNjZXNzaWJp
bGl0eVJvbGUgcm9sZSkKK3N0cmluZyByb2xlVG9TdHJpbmcoV2ViQWNjZXNzaWJpbGl0eVJvbGUg
cm9sZSkKIHsKICAgICBzdHJpbmcgcmVzdWx0ID0gIkFYUm9sZTogQVgiOwogICAgIHN3aXRjaCAo
cm9sZSkgewpAQCAtMzQ3LDYgKzM1MSw4IEBAIHByaXZhdGU6CiAgICAgc3RyaW5nIG1fYXR0cmli
dXRlczsKIH07CiAKK30KKwogQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudChjb25zdCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmplY3QsIEZhY3RvcnkqIGZh
Y3RvcnkpCiAgICAgOiBtX2FjY2Vzc2liaWxpdHlPYmplY3Qob2JqZWN0KQogICAgICwgbV9mYWN0
b3J5KGZhY3RvcnkpCkBAIC05NzIsMyArOTc4LDUgQEAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCog
QWNjZXNzaWJpbGl0eVVJRWxlbWVudExpc3Q6OmNyZWF0ZVJvb3QoY29uc3QgV2ViQWNjZXNzaWIK
ICAgICBtX2VsZW1lbnRzLmFwcGVuZChlbGVtZW50KTsKICAgICByZXR1cm4gZWxlbWVudDsKIH0K
KworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21p
dW0uaAppbmRleCBkOWU3M2U1N2U5ZDAzNDA0ZDE4ZDMzN2YwZGU1ODBhODBlOTU1MmIwLi40ZGM0
NzllOTMwZDBkYzlkMGNiNTQ5NzM0MTEyZDJlYWQ1MzBkNTZlIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Q2hyb21pdW0uaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uaApAQCAtMzYsNiArMzYsOCBA
QAogI2luY2x1ZGUgPHZlY3Rvcj4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKK25hbWVzcGFj
ZSBXZWJUZXN0UnVubmVyIHsKKwogY2xhc3MgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCA6IHB1Ymxp
YyBDcHBCb3VuZENsYXNzIHsKIHB1YmxpYzoKICAgICBjbGFzcyBGYWN0b3J5IHsKQEAgLTE2Niw0
ICsxNjgsNiBAQCBwcml2YXRlOgogICAgIEVsZW1lbnRMaXN0IG1fZWxlbWVudHM7CiB9OwogCit9
CisKICNlbmRpZiAvLyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW1faApkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwQm91bmRD
bGFzcy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9D
cHBCb3VuZENsYXNzLmNwcAppbmRleCAxYjI5ZDJiMGY1NWQwMWY3Mzg3MTQ1Nzg3N2Y5ZGJkZjA2
ZjFiNDkxLi45MzBkZTYxMTM1YzYwMDA4Yzc2MGE0Zjk4MjYxMzk4MjZlZWM0OGI5IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBCb3Vu
ZENsYXNzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9DcHBCb3VuZENsYXNzLmNwcApAQCAtNTEsNiArNTEsMTAgQEAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCituYW1lc3BhY2UgV2ViVGVzdFJ1bm5l
ciB7CisKK25hbWVzcGFjZSB7CisKIGNsYXNzIENwcFZhcmlhbnRQcm9wZXJ0eUNhbGxiYWNrIDog
cHVibGljIENwcEJvdW5kQ2xhc3M6OlByb3BlcnR5Q2FsbGJhY2sgewogcHVibGljOgogICAgIENw
cFZhcmlhbnRQcm9wZXJ0eUNhbGxiYWNrKENwcFZhcmlhbnQqIHZhbHVlKSA6IG1fdmFsdWUodmFs
dWUpIHsgfQpAQCAtOTAsNiArOTQsOCBAQCBwcml2YXRlOgogICAgIE93blB0cjxDcHBCb3VuZENs
YXNzOjpHZXR0ZXJDYWxsYmFjaz4gbV9jYWxsYmFjazsKIH07CiAKK30KKwogLy8gT3VyIHNwZWNp
YWwgTlBPYmplY3QgdHlwZS4gV2UgZXh0ZW5kIGFuIE5QT2JqZWN0IHdpdGggYSBwb2ludGVyIHRv
IGEKIC8vIENwcEJvdW5kQ2xhc3MsIHdoaWNoIGlzIGp1c3QgYSBDKysgaW50ZXJmYWNlIHRoYXQg
d2UgZm9yd2FyZCBhbGwgTlBPYmplY3QKIC8vIGNhbGxiYWNrcyB0by4KQEAgLTM1MCwzICszNTYs
NSBAQCB2b2lkIENwcEJvdW5kQ2xhc3M6OmJpbmRUb0phdmFzY3JpcHQoV2ViRnJhbWUqIGZyYW1l
LCBjb25zdCBXZWJTdHJpbmcmIGNsYXNzbmFtZQogICAgIGZyYW1lLT5iaW5kVG9XaW5kb3dPYmpl
Y3QoY2xhc3NuYW1lLCBOUFZBUklBTlRfVE9fT0JKRUNUKCpnZXRBc0NwcFZhcmlhbnQoKSkpOwog
ICAgIG1fYm91bmRUb0ZyYW1lID0gdHJ1ZTsKIH0KKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwQm91bmRDbGFzcy5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwQm91bmRDbGFzcy5o
CmluZGV4IDRmYjUzNjFlMWJjODNkYTBjNjM1ZDQ3YTEzZjNhNGE0M2Y2Yjk0NWIuLjU0YWY2ZGRj
ZTFlNjgwMmZmMDBkNjhhYTcyYjVmMjAyOWU0NzUzYzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcEJvdW5kQ2xhc3MuaAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBCb3VuZENsYXNz
LmgKQEAgLTU1LDYgKzU1LDggQEAgY2xhc3MgV2ViRnJhbWU7CiBjbGFzcyBXZWJTdHJpbmc7CiB9
CiAKK25hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKKwogdHlwZWRlZiBWZWN0b3I8Q3BwVmFyaWFu
dD4gQ3BwQXJndW1lbnRMaXN0OwogCiAvLyBDcHBCb3VuZENsYXNzIGxldHMgeW91IG1hcCBKYXZh
c2NyaXB0IG1ldGhvZCBjYWxscyBhbmQgcHJvcGVydHkgYWNjZXNzZXMKQEAgLTI0Miw0ICsyNDQs
NiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9ib3VuZFRvRnJhbWU7CiB9OwogCit9CisKICNlbmRp
ZiAvLyBDcHBCb3VuZENsYXNzX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5jcHAKaW5kZXggYjU4N2Q3NWFh
YzUxOGRkOTE4MGUxZTRhN2VjNjZhNTQ1MWFkYTYyMi4uNGQyODU2ZTc0MmQ5N2NkZDlhMDA4NWUx
OWEyZGQxODExMmY4ZjVmYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5jcHAKQEAgLTM5LDYgKzM5LDgg
QEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCituYW1l
c3BhY2UgV2ViVGVzdFJ1bm5lciB7CisKIENwcFZhcmlhbnQ6OkNwcFZhcmlhbnQoKQogewogICAg
IHR5cGUgPSBOUFZhcmlhbnRUeXBlX051bGw7CkBAIC0zMTksMyArMzIxLDUgQEAgYm9vbCBDcHBW
YXJpYW50OjppbnZva2VEZWZhdWx0KGNvbnN0IENwcFZhcmlhbnQqIGFyZ3VtZW50cywgdWludDMy
X3QgYXJndW1lbnRDb3UKICAgICByZXN1bHQuc2V0KHIpOwogICAgIHJldHVybiBzdGF0dXM7CiB9
CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL0NwcFZhcmlhbnQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL0NwcFZhcmlhbnQuaAppbmRleCA0N2ZkNDY2YWZmMzJkNzljZWNiNDcwNjZhNzNi
N2E1ZWM1Y2MwMGI5Li5lODJhNzBiNjY3NTI0ZjdiMjZjMmQzYzMwYmY1YzFjMjIzZGZjZjc2IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9D
cHBWYXJpYW50LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvQ3BwVmFyaWFudC5oCkBAIC00Niw2ICs0Niw4IEBACiAjaW5jbHVkZSA8c3RyaW5nPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAorbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgeworCiBj
bGFzcyBDcHBWYXJpYW50IDogcHVibGljIE5QVmFyaWFudCB7CiBwdWJsaWM6CiAgICAgQ3BwVmFy
aWFudCgpOwpAQCAtMTM3LDQgKzEzOSw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAg
ICAgdWludDMyX3QgYXJndW1lbnRDb3VudCwgQ3BwVmFyaWFudCYgcmVzdWx0KSBjb25zdDsKIH07
CiAKK30KKwogI2VuZGlmIC8vIENwcFZhcmlhbnRfaApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0V2ZW50U2VuZGVyLmgKaW5kZXgg
ZDA3ZTE0Y2M2ZjJkMDY3NDQ5OWNkZDdkMjg5YmRiMjRmYmU2NjZiMS4uZTU1NTc4MTQwYjg5OTVm
ZDZlMzczYjYzYTlhMmRmMjAwNmRkNDUwNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuaAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9FdmVudFNlbmRlci5oCkBAIC00OCwx
MCArNDgsMTAgQEAgY2xhc3MgV2ViRHJhZ0RhdGE7CiBjbGFzcyBXZWJWaWV3OwogfQogCi1jbGFz
cyBUZXN0RGVsZWdhdGU7Ci0KIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIAorY2xhc3MgVGVz
dERlbGVnYXRlOworCiBjbGFzcyBFdmVudFNlbmRlciA6IHB1YmxpYyBDcHBCb3VuZENsYXNzIHsK
IHB1YmxpYzoKICAgICBFdmVudFNlbmRlcigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xs
ZXIuY3BwCmluZGV4IDI4MmNlNDRkZTg1Mzc1MjY4ZmVhZjc4ZDNmNjUwOTVlNWE3M2MyYWYuLmU5
YzI0NmFmMjVkZGNlODg4ZjZlZmVlYmY1ZjA2MDJjZDJlN2VkN2YgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVwYWRDb250cm9sbGVy
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9H
YW1lcGFkQ29udHJvbGxlci5jcHAKQEAgLTM0LDYgKzM0LDggQEAKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKIAorbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgeworCiBHYW1lcGFkQ29udHJvbGxl
cjo6R2FtZXBhZENvbnRyb2xsZXIoKQogewogICAgIGJpbmRNZXRob2QoImNvbm5lY3QiLCAmR2Ft
ZXBhZENvbnRyb2xsZXI6OmNvbm5lY3QpOwpAQCAtMTkzLDMgKzE5NSw1IEBAIHZvaWQgR2FtZXBh
ZENvbnRyb2xsZXI6OmZhbGxiYWNrQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCogcmVzCiAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCJDT05TT0xFIE1FU1NB
R0U6IEphdmFTY3JpcHQgRVJST1I6IHVua25vd24gbWV0aG9kIGNhbGxlZCBvbiBHYW1lcGFkQ29u
dHJvbGxlclxuIik7CiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CisKK30KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVwYWRDb250
cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9H
YW1lcGFkQ29udHJvbGxlci5oCmluZGV4IDRlNjVlOTIyZjQ5MTUwMDhkYjU3MTQ5N2ZlMzk5MzU3
MTliMjIxM2EuLjkwNThjNzAyZDI1ZWUyYjk1ZWY3YWFiM2Q1NDM3MjE2MDNmNzI4OGUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVw
YWRDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuaApAQCAtMzQsMTMgKzM0LDE1IEBACiAjaW5jbHVk
ZSAiQ3BwQm91bmRDbGFzcy5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYkdhbWVwYWRzLmgiCiAK
LWNsYXNzIFRlc3REZWxlZ2F0ZTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJHYW1l
cGFkczsKIGNsYXNzIFdlYkZyYW1lOwogfQogCituYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CisK
K2NsYXNzIFRlc3REZWxlZ2F0ZTsKKwogY2xhc3MgR2FtZXBhZENvbnRyb2xsZXIgOiBwdWJsaWMg
Q3BwQm91bmRDbGFzcyB7CiBwdWJsaWM6CiAgICAgR2FtZXBhZENvbnRyb2xsZXIoKTsKQEAgLTY1
LDQgKzY3LDYgQEAgcHJpdmF0ZToKICAgICBUZXN0RGVsZWdhdGUqIG1fZGVsZWdhdGU7CiB9Owog
Cit9CisKICNlbmRpZiAvLyBHYW1lcGFkQ29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0RGVsZWdhdGUuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5o
CmluZGV4IDA0OThmY2IzZjNmMTM2NDk2MzNkNTJlMTZhYTE4ZmEyMzlhMjA3NTIuLmY4ZWNlYjZk
MDYxNzJmODc3MDIzMmQ4OTIzYjhhYWVhNDFlNDNhNTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5o
CkBAIC00MCw4ICs0MCw4IEBAIGNsYXNzIFdlYkdhbWVwYWRzOwogfQogCiBuYW1lc3BhY2UgV2Vi
VGVzdFJ1bm5lciB7CisKIGNsYXNzIFdlYlRhc2s7Ci19CiAKIGNsYXNzIFRlc3REZWxlZ2F0ZSB7
CiBwdWJsaWM6CkBAIC01MiwxMSArNTIsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViS2l0
OjpXZWJDb250ZXh0TWVudURhdGEqIGxhc3RDb250ZXh0TWVudURhdGEoKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNldEdhbWVwYWREYXRhKGNvbnN0IFdlYktpdDo6V2ViR2FtZXBhZHMm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHByaW50TWVzc2FnZShjb25zdCBzdGQ6OnN0cmluZyYg
bWVzc2FnZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhXZWJUZXN0UnVubmVyOjpX
ZWJUYXNrKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwb3N0RGVsYXllZFRhc2soV2ViVGVzdFJ1
bm5lcjo6V2ViVGFzayosIGxvbmcgbG9uZyBtcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwb3N0
VGFzayhXZWJUYXNrKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwb3N0RGVsYXllZFRhc2soV2Vi
VGFzayosIGxvbmcgbG9uZyBtcykgPSAwOwogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcg
cmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oY29uc3QgV2ViS2l0OjpXZWJWZWN0b3I8V2ViS2l0
OjpXZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVuYW1lcykgPSAwOwogICAgIHZpcnR1YWwgbG9uZyBs
b25nIGdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgpID0gMDsKICAgICB2aXJ0dWFsIFdlYktp
dDo6V2ViU3RyaW5nIGdldEFic29sdXRlV2ViU3RyaW5nRnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6
c3RyaW5nJiBwYXRoKSA9IDA7CiB9OwogCit9CisKICNlbmRpZiAvLyBUZXN0RGVsZWdhdGVfaApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
VGVzdEludGVyZmFjZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvVGVzdEludGVyZmFjZXMuY3BwCmluZGV4IDg5NTliYjFiYTM5ZTI1ZTE5MmI2Zjdm
NDM3NzIyOGE4ZjUyNTdlOTAuLmYwOGRhNWQ0MGQxNjY3ZWFjZGQxYzE0YzAxNmFjODVkOGRlZTBk
ZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RJbnRlcmZhY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5jcHAKQEAgLTM3LDEyICszNywxMiBAQAog
I2luY2x1ZGUgIlRleHRJbnB1dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJT
dHJpbmcuaCIKIAotdXNpbmcgV2ViVGVzdFJ1bm5lcjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI7
Ci11c2luZyBXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlcjsKIHVzaW5nIFdlYktpdDo6V2ViRnJh
bWU7CiB1c2luZyBXZWJLaXQ6OldlYlN0cmluZzsKIHVzaW5nIFdlYktpdDo6V2ViVmlldzsKIAor
bmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgeworCiBUZXN0SW50ZXJmYWNlczo6VGVzdEludGVyZmFj
ZXMoKQogewogICAgIG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIgPSBhZG9wdFB0cihuZXcgQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIoKSk7CkBAIC0xMDUsMyArMTA1LDUgQEAgRXZlbnRTZW5kZXIq
IFRlc3RJbnRlcmZhY2VzOjpldmVudFNlbmRlcigpCiB7CiAgICAgcmV0dXJuIG1fZXZlbnRTZW5k
ZXIuZ2V0KCk7CiB9CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmggYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5oCmluZGV4IDIyODY1OGMy
MmU0ZjM5ODI1YTYwYjcwMzgzYzMwZDZlODQ4ODA1MDIuLmE3ZGE0MzI4MzcxNzRkMmVlYTE2ODVh
ZmZlMTJhY2M5MzJiYjYwNTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuaApAQCAtMzksMTAg
KzM5LDkgQEAgY2xhc3MgV2ViVmlldzsKIH0KIAogbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgewor
CiBjbGFzcyBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjsKIGNsYXNzIEV2ZW50U2VuZGVyOwotfQot
CiBjbGFzcyBHYW1lcGFkQ29udHJvbGxlcjsKIGNsYXNzIFRlc3REZWxlZ2F0ZTsKIGNsYXNzIFRl
eHRJbnB1dENvbnRyb2xsZXI7CkBAIC01NywxNCArNTYsMTYgQEAgcHVibGljOgogICAgIHZvaWQg
YmluZFRvKFdlYktpdDo6V2ViRnJhbWUqKTsKICAgICB2b2lkIHJlc2V0QWxsKCk7CiAKLSAgICBX
ZWJUZXN0UnVubmVyOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIoKTsKLSAgICBXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRlciogZXZlbnRTZW5kZXIoKTsK
KyAgICBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKTsK
KyAgICBFdmVudFNlbmRlciogZXZlbnRTZW5kZXIoKTsKIAogcHJpdmF0ZToKLSAgICBPd25QdHI8
V2ViVGVzdFJ1bm5lcjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI+IG1fYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXI7Ci0gICAgT3duUHRyPFdlYlRlc3RSdW5uZXI6OkV2ZW50U2VuZGVyPiBtX2V2ZW50
U2VuZGVyOworICAgIE93blB0cjxBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcj4gbV9hY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjsKKyAgICBPd25QdHI8RXZlbnRTZW5kZXI+IG1fZXZlbnRTZW5kZXI7CiAg
ICAgT3duUHRyPEdhbWVwYWRDb250cm9sbGVyPiBtX2dhbWVwYWRDb250cm9sbGVyOwogICAgIE93
blB0cjxUZXh0SW5wdXRDb250cm9sbGVyPiBtX3RleHRJbnB1dENvbnRyb2xsZXI7CiB9OwogCit9
CisKICNlbmRpZiAvLyBUZXN0SW50ZXJmYWNlc19oCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCmluZGV4
IGYwZGE3OTgzMTE3ZWMzODEyNzZiNWE3OGE1NWU0OGVhZGRkNzFlMjAuLmJmNzY2NWJiZDkwYzZi
MWJhMWM0N2JlNWY3YzUzZDNkMzViM2FhZDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCkBAIC0z
Miw2ICszMiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRlc3RSdW5uZXIu
aCIKIAorbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgeworCiBUZXN0UnVubmVyOjpUZXN0UnVubmVy
KCkKIHsKIH0KKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCmluZGV4IDUwMzI3MWI1ZDliNWNlZTA5OThi
Y2E4NTJjM2NhMDkzNzUwYTY1ZTIuLjc3Mzg4NWQxNmFkMDE4ODY3OWNjM2I4ZWRjMWFiYmY2OGU4
MzQzMTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKQEAgLTM0LDkgKzM0LDEzIEBACiAKICNpbmNsdWRl
ICJDcHBCb3VuZENsYXNzLmgiCiAKK25hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKKwogY2xhc3Mg
VGVzdFJ1bm5lciA6IHB1YmxpYyBDcHBCb3VuZENsYXNzIHsKIHB1YmxpYzoKICAgICBUZXN0UnVu
bmVyKCk7CiB9OwogCit9CisKICNlbmRpZiAvLyBUZXN0UnVubmVyX2gKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1RleHRJbnB1dENvbnRy
b2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
VGV4dElucHV0Q29udHJvbGxlci5jcHAKaW5kZXggYjcyYTIwODBkMmMwOTc1OGFlMTk0M2ExNGEy
MWY5M2E0MDY3NzdjYi4uZTkyOWM3MWZiZDMwMDljZGZlYmYwZTNhNjNiNmU0NjhlZWI5YzU4NSAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
VGV4dElucHV0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvVGV4dElucHV0Q29udHJvbGxlci5jcHAKQEAgLTQ0LDYgKzQ0LDgg
QEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAorbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIg
eworCiBUZXh0SW5wdXRDb250cm9sbGVyOjpUZXh0SW5wdXRDb250cm9sbGVyKCkKIHsKICAgICBi
aW5kTWV0aG9kKCJhdHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJhbmdlIiwgJlRleHRJbnB1dENvbnRy
b2xsZXI6OmF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2UpOwpAQCAtMjMxLDMgKzIzMyw1IEBA
IHZvaWQgVGV4dElucHV0Q29udHJvbGxlcjo6c2V0Q29tcG9zaXRpb24oY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiBhcmd1bWVudHMsIENwcFZhCiAgICAgV2ViU3RyaW5nIHRleHQoV2ViU3RyaW5nOjpm
cm9tVVRGOChhcmd1bWVudHNbMF0udG9TdHJpbmcoKSkpOwogICAgIG1fd2ViVmlldy0+c2V0Q29t
cG9zaXRpb24odGV4dCwgdW5kZXJsaW5lcywgMCwgdGV4dC5sZW5ndGgoKSk7CiB9CisKK30KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
eHRJbnB1dENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1RleHRJbnB1dENvbnRyb2xsZXIuaAppbmRleCBhOTU5YWE4YjM2ODQzNzIxZjQx
Y2QzNTJlZGYwM2RmODgxZTM4ZDY1Li4yODZkODMzNTY0MWZmNDlhM2YwYzA5MmNkMTM5MTZjN2Q1
ZDJhYTYyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXh0SW5wdXRDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGV4dElucHV0Q29udHJvbGxlci5oCkBAIC00MSw2ICs0
MSw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViVmlldzsKIH0KIAorbmFtZXNwYWNl
IFdlYlRlc3RSdW5uZXIgeworCiBjbGFzcyBUZXh0SW5wdXRDb250cm9sbGVyIDogcHVibGljIENw
cEJvdW5kQ2xhc3MgewogcHVibGljOgogICAgIFRleHRJbnB1dENvbnRyb2xsZXIoKTsKQEAgLTY3
LDQgKzY5LDYgQEAgcHJpdmF0ZToKICAgICBXZWJLaXQ6OldlYlZpZXcqIG1fd2ViVmlldzsKIH07
CiAKK30KKwogI2VuZGlmIC8vIFRleHRJbnB1dENvbnRyb2xsZXJfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173577</attachid>
            <date>2012-11-12 00:11:56 -0800</date>
            <delta_ts>2012-11-12 03:43:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101837-20121112090959.patch</filename>
            <type>text/plain</type>
            <size>17051</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTU0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDk0YWJlNTlhZjcyZDg4ZmNlNjllM2UxOWM4ODM0ODc0
YTE5MTM0Ni4uY2Y1YzI5OWM3NWVmNDk0NDY4NzRlZjVmZTI5YTg2OGYyZTI2MDhlOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUy
IEBACisyMDEyLTExLTEwICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gbW92ZSBUZXN0UnVubmVyIGltcGxlbWVudGF0aW9uIGludG8g
V2ViVGVzdFJ1bm5lciBuYW1lc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMTgzNworCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgu
CisKKyAgICAgICAgVGhhdCB3YXksIHdlIGRvbid0IGdldCBjb2xsaXNpb25zIHdoZW4gbGlua2lu
ZyBlLmcuIGFnYWluc3QgY2hyb21pdW0ncworICAgICAgICBuZXQgdGVzdCBzdXBwb3J0IGxpYnJh
cnkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmg6
CisgICAgICAgIChEUlRUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNocm9taXVtLmg6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmg6CisgICAgICAg
IChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9DcHBCb3VuZENsYXNzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcEJvdW5k
Q2xhc3MuaDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQuY3BwOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvQ3BwVmFyaWFudC5oOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRTZW5kZXIuaDoKKyAg
ICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L0dhbWVwYWRDb250cm9sbGVyLmg6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0RGVsZWdhdGUuaDoK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoVGVzdERlbGVnYXRlKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNl
cy5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5oOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcik6CisgICAgICAgIChUZXN0SW50ZXJmYWNlcyk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHA6CisgICAgICAg
IChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9UZXN0UnVubmVyLmg6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXh0SW5wdXRDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1RleHRJbnB1dENvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKFdlYlRlc3RSdW5uZXIpOgorCiAyMDEyLTExLTA5ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFBlb3BsZSB3aXRoIGRpY2hyb21hY3kgY2FuJ3QgdGVs
bCBjcmFzaGVzIGFuZCBwYXNzZXMgb24gZmxha2luZXNzIGRhc2hib2FyZApkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oCmluZGV4IGM0Y2I3YWNlOGJkNDQw
NjEyNzFmMThhOTg3Y2JiYzkxNGY5MmQzNTYuLjBkMGI5NDYxNzJiNWU3OTRlMzNhOWU1MGRjZDVj
YTc1ZmE1YTkxYjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RS
VFRlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0
UnVubmVyLmgKQEAgLTYzLDcgKzYzLDEwIEBAIGNsYXNzIFNjb3BlZFRlbXBEaXJlY3Rvcnk7CiAK
IGNsYXNzIFRlc3RTaGVsbDsKIAotY2xhc3MgRFJUVGVzdFJ1bm5lciA6IHB1YmxpYyBUZXN0UnVu
bmVyIHsKK3VzaW5nIFdlYlRlc3RSdW5uZXI6OkNwcEFyZ3VtZW50TGlzdDsKK3VzaW5nIFdlYlRl
c3RSdW5uZXI6OkNwcFZhcmlhbnQ7CisKK2NsYXNzIERSVFRlc3RSdW5uZXIgOiBwdWJsaWMgV2Vi
VGVzdFJ1bm5lcjo6VGVzdFJ1bm5lciB7CiBwdWJsaWM6CiAgICAgLy8gQnVpbGRzIHRoZSBwcm9w
ZXJ0eSBhbmQgbWV0aG9kIGxpc3RzIG5lZWRlZCB0byBiaW5kIHRoaXMgY2xhc3MgdG8gYSBKUwog
ICAgIC8vIG9iamVjdC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQ2hyb21pdW0uaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyQ2hyb21pdW0uaAppbmRleCAzNWJmMDZjNTYzNjdlMDE2NDVkMDFiMThkMTczMTkyMmZi
YWRmODcwLi5hOTcyOGM2MTViYjRmNTA1ZmUxZWNhNmEyZjY0Y2ZmYWU5NGExNTViIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlckNocm9taXVtLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJDaHJvbWl1bS5oCkBA
IC00MCwxMCArNDAsMTAgQEAgY2xhc3MgV2ViRnJhbWU7CiBjbGFzcyBXZWJWaWV3OwogfQogCi1j
bGFzcyBUZXN0RGVsZWdhdGU7Ci0KIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIAorY2xhc3Mg
VGVzdERlbGVnYXRlOworCiBjbGFzcyBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciA6IHB1YmxpYyBD
cHBCb3VuZENsYXNzIHsKIHB1YmxpYzoKICAgICBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5j
cHAKaW5kZXggMjE1N2RkYjY5ZDgwMjNhNjQ4MTliZjE1YjA5NzhiOTZlOWI3MDg0ZC4uN2I4ZjZm
YmQxZWQ0ZjQxYjg3OWZhNTdkZDA4NjM5YTIyMzQ0ODQ2MSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dENocm9taXVtLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwCkBAIC00Miw5ICs0Miwx
MyBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKK25h
bWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKKworbmFtZXNwYWNlIHsKKwogLy8gTWFwIHJvbGUgdmFs
dWUgdG8gc3RyaW5nLCBtYXRjaGluZyBTYWZhcmkvTWFjIHBsYXRmb3JtIGltcGxlbWVudGF0aW9u
IHRvCiAvLyBhdm9pZCByZWJhc2VsaW5pbmcgbGF5b3V0IHRlc3RzLgotc3RhdGljIHN0cmluZyBy
b2xlVG9TdHJpbmcoV2ViQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkKK3N0cmluZyByb2xlVG9TdHJp
bmcoV2ViQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkKIHsKICAgICBzdHJpbmcgcmVzdWx0ID0gIkFY
Um9sZTogQVgiOwogICAgIHN3aXRjaCAocm9sZSkgewpAQCAtMzQ3LDYgKzM1MSw4IEBAIHByaXZh
dGU6CiAgICAgc3RyaW5nIG1fYXR0cmlidXRlczsKIH07CiAKK30KKwogQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChjb25zdCBXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0JiBvYmplY3QsIEZhY3RvcnkqIGZhY3RvcnkpCiAgICAgOiBtX2FjY2Vzc2liaWxpdHlPYmpl
Y3Qob2JqZWN0KQogICAgICwgbV9mYWN0b3J5KGZhY3RvcnkpCkBAIC05NzIsMyArOTc4LDUgQEAg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudCogQWNjZXNzaWJpbGl0eVVJRWxlbWVudExpc3Q6OmNyZWF0
ZVJvb3QoY29uc3QgV2ViQWNjZXNzaWIKICAgICBtX2VsZW1lbnRzLmFwcGVuZChlbGVtZW50KTsK
ICAgICByZXR1cm4gZWxlbWVudDsKIH0KKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9t
aXVtLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uaAppbmRleCBkOWU3M2U1N2U5ZDAzNDA0ZDE4ZDMz
N2YwZGU1ODBhODBlOTU1MmIwLi40ZGM0NzllOTMwZDBkYzlkMGNiNTQ5NzM0MTEyZDJlYWQ1MzBk
NTZlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hy
b21pdW0uaApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHZlY3Rvcj4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKK25hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKKwogY2xhc3MgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudCA6IHB1YmxpYyBDcHBCb3VuZENsYXNzIHsKIHB1YmxpYzoKICAgICBj
bGFzcyBGYWN0b3J5IHsKQEAgLTE2Niw0ICsxNjgsNiBAQCBwcml2YXRlOgogICAgIEVsZW1lbnRM
aXN0IG1fZWxlbWVudHM7CiB9OwogCit9CisKICNlbmRpZiAvLyBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Q2hyb21pdW1faApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvQ3BwQm91bmRDbGFzcy5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBCb3VuZENsYXNzLmNwcAppbmRleCAxYjI5ZDJiMGY1
NWQwMWY3Mzg3MTQ1Nzg3N2Y5ZGJkZjA2ZjFiNDkxLi45MzBkZTYxMTM1YzYwMDA4Yzc2MGE0Zjk4
MjYxMzk4MjZlZWM0OGI5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9DcHBCb3VuZENsYXNzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBCb3VuZENsYXNzLmNwcApAQCAtNTEsNiAr
NTEsMTAgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwog
CituYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CisKK25hbWVzcGFjZSB7CisKIGNsYXNzIENwcFZh
cmlhbnRQcm9wZXJ0eUNhbGxiYWNrIDogcHVibGljIENwcEJvdW5kQ2xhc3M6OlByb3BlcnR5Q2Fs
bGJhY2sgewogcHVibGljOgogICAgIENwcFZhcmlhbnRQcm9wZXJ0eUNhbGxiYWNrKENwcFZhcmlh
bnQqIHZhbHVlKSA6IG1fdmFsdWUodmFsdWUpIHsgfQpAQCAtOTAsNiArOTQsOCBAQCBwcml2YXRl
OgogICAgIE93blB0cjxDcHBCb3VuZENsYXNzOjpHZXR0ZXJDYWxsYmFjaz4gbV9jYWxsYmFjazsK
IH07CiAKK30KKwogLy8gT3VyIHNwZWNpYWwgTlBPYmplY3QgdHlwZS4gV2UgZXh0ZW5kIGFuIE5Q
T2JqZWN0IHdpdGggYSBwb2ludGVyIHRvIGEKIC8vIENwcEJvdW5kQ2xhc3MsIHdoaWNoIGlzIGp1
c3QgYSBDKysgaW50ZXJmYWNlIHRoYXQgd2UgZm9yd2FyZCBhbGwgTlBPYmplY3QKIC8vIGNhbGxi
YWNrcyB0by4KQEAgLTM1MCwzICszNTYsNSBAQCB2b2lkIENwcEJvdW5kQ2xhc3M6OmJpbmRUb0ph
dmFzY3JpcHQoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJTdHJpbmcmIGNsYXNzbmFtZQogICAg
IGZyYW1lLT5iaW5kVG9XaW5kb3dPYmplY3QoY2xhc3NuYW1lLCBOUFZBUklBTlRfVE9fT0JKRUNU
KCpnZXRBc0NwcFZhcmlhbnQoKSkpOwogICAgIG1fYm91bmRUb0ZyYW1lID0gdHJ1ZTsKIH0KKwor
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvQ3BwQm91bmRDbGFzcy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvQ3BwQm91bmRDbGFzcy5oCmluZGV4IDRmYjUzNjFlMWJjODNkYTBjNjM1ZDQ3YTEz
ZjNhNGE0M2Y2Yjk0NWIuLjU0YWY2ZGRjZTFlNjgwMmZmMDBkNjhhYTcyYjVmMjAyOWU0NzUzYzYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L0NwcEJvdW5kQ2xhc3MuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9DcHBCb3VuZENsYXNzLmgKQEAgLTU1LDYgKzU1LDggQEAgY2xhc3MgV2ViRnJh
bWU7CiBjbGFzcyBXZWJTdHJpbmc7CiB9CiAKK25hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKKwog
dHlwZWRlZiBWZWN0b3I8Q3BwVmFyaWFudD4gQ3BwQXJndW1lbnRMaXN0OwogCiAvLyBDcHBCb3Vu
ZENsYXNzIGxldHMgeW91IG1hcCBKYXZhc2NyaXB0IG1ldGhvZCBjYWxscyBhbmQgcHJvcGVydHkg
YWNjZXNzZXMKQEAgLTI0Miw0ICsyNDQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9ib3VuZFRv
RnJhbWU7CiB9OwogCit9CisKICNlbmRpZiAvLyBDcHBCb3VuZENsYXNzX2gKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFy
aWFudC5jcHAKaW5kZXggYjU4N2Q3NWFhYzUxOGRkOTE4MGUxZTRhN2VjNjZhNTQ1MWFkYTYyMi4u
NGQyODU2ZTc0MmQ5N2NkZDlhMDA4NWUxOWEyZGQxODExMmY4ZjVmYyAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFy
aWFudC5jcHAKQEAgLTM5LDYgKzM5LDggQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2lu
ZyBuYW1lc3BhY2Ugc3RkOwogCituYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CisKIENwcFZhcmlh
bnQ6OkNwcFZhcmlhbnQoKQogewogICAgIHR5cGUgPSBOUFZhcmlhbnRUeXBlX051bGw7CkBAIC0z
MTksMyArMzIxLDUgQEAgYm9vbCBDcHBWYXJpYW50OjppbnZva2VEZWZhdWx0KGNvbnN0IENwcFZh
cmlhbnQqIGFyZ3VtZW50cywgdWludDMyX3QgYXJndW1lbnRDb3UKICAgICByZXN1bHQuc2V0KHIp
OwogICAgIHJldHVybiBzdGF0dXM7CiB9CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL0NwcFZhcmlhbnQuaAppbmRleCA0N2Zk
NDY2YWZmMzJkNzljZWNiNDcwNjZhNzNiN2E1ZWM1Y2MwMGI5Li5lODJhNzBiNjY3NTI0ZjdiMjZj
MmQzYzMwYmY1YzFjMjIzZGZjZjc2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9DcHBWYXJpYW50LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvQ3BwVmFyaWFudC5oCkBAIC00Niw2ICs0Niw4
IEBACiAjaW5jbHVkZSA8c3RyaW5nPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAorbmFtZXNw
YWNlIFdlYlRlc3RSdW5uZXIgeworCiBjbGFzcyBDcHBWYXJpYW50IDogcHVibGljIE5QVmFyaWFu
dCB7CiBwdWJsaWM6CiAgICAgQ3BwVmFyaWFudCgpOwpAQCAtMTM3LDQgKzEzOSw2IEBAIHB1Ymxp
YzoKICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgYXJndW1lbnRDb3VudCwgQ3BwVmFy
aWFudCYgcmVzdWx0KSBjb25zdDsKIH07CiAKK30KKwogI2VuZGlmIC8vIENwcFZhcmlhbnRfaApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
RXZlbnRTZW5kZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL0V2ZW50U2VuZGVyLmgKaW5kZXggZDA3ZTE0Y2M2ZjJkMDY3NDQ5OWNkZDdkMjg5YmRiMjRm
YmU2NjZiMS4uZTU1NTc4MTQwYjg5OTVmZDZlMzczYjYzYTlhMmRmMjAwNmRkNDUwNyAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvRXZlbnRT
ZW5kZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9FdmVudFNlbmRlci5oCkBAIC00OCwxMCArNDgsMTAgQEAgY2xhc3MgV2ViRHJhZ0RhdGE7CiBj
bGFzcyBXZWJWaWV3OwogfQogCi1jbGFzcyBUZXN0RGVsZWdhdGU7Ci0KIG5hbWVzcGFjZSBXZWJU
ZXN0UnVubmVyIHsKIAorY2xhc3MgVGVzdERlbGVnYXRlOworCiBjbGFzcyBFdmVudFNlbmRlciA6
IHB1YmxpYyBDcHBCb3VuZENsYXNzIHsKIHB1YmxpYzoKICAgICBFdmVudFNlbmRlcigpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvR2Ft
ZXBhZENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuY3BwCmluZGV4IDI4MmNlNDRkZTg1Mzc1MjY4ZmVh
Zjc4ZDNmNjUwOTVlNWE3M2MyYWYuLmU5YzI0NmFmMjVkZGNlODg4ZjZlZmVlYmY1ZjA2MDJjZDJl
N2VkN2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9HYW1lcGFkQ29udHJvbGxlci5jcHAKQEAgLTM0LDYgKzM0
LDggQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAorbmFtZXNwYWNlIFdlYlRlc3RSdW5u
ZXIgeworCiBHYW1lcGFkQ29udHJvbGxlcjo6R2FtZXBhZENvbnRyb2xsZXIoKQogewogICAgIGJp
bmRNZXRob2QoImNvbm5lY3QiLCAmR2FtZXBhZENvbnRyb2xsZXI6OmNvbm5lY3QpOwpAQCAtMTkz
LDMgKzE5NSw1IEBAIHZvaWQgR2FtZXBhZENvbnRyb2xsZXI6OmZhbGxiYWNrQ2FsbGJhY2soY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzCiAgICAgbV9kZWxlZ2F0ZS0+cHJp
bnRNZXNzYWdlKCJDT05TT0xFIE1FU1NBR0U6IEphdmFTY3JpcHQgRVJST1I6IHVua25vd24gbWV0
aG9kIGNhbGxlZCBvbiBHYW1lcGFkQ29udHJvbGxlclxuIik7CiAgICAgcmVzdWx0LT5zZXROdWxs
KCk7CiB9CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9HYW1lcGFkQ29udHJvbGxlci5oCmluZGV4IDRlNjVlOTIy
ZjQ5MTUwMDhkYjU3MTQ5N2ZlMzk5MzU3MTliMjIxM2EuLjkwNThjNzAyZDI1ZWUyYjk1ZWY3YWFi
M2Q1NDM3MjE2MDNmNzI4OGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL0dhbWVwYWRDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvR2FtZXBhZENvbnRyb2xsZXIuaApAQCAt
MzQsMTMgKzM0LDE1IEBACiAjaW5jbHVkZSAiQ3BwQm91bmRDbGFzcy5oIgogI2luY2x1ZGUgInBs
YXRmb3JtL1dlYkdhbWVwYWRzLmgiCiAKLWNsYXNzIFRlc3REZWxlZ2F0ZTsKLQogbmFtZXNwYWNl
IFdlYktpdCB7CiBjbGFzcyBXZWJHYW1lcGFkczsKIGNsYXNzIFdlYkZyYW1lOwogfQogCituYW1l
c3BhY2UgV2ViVGVzdFJ1bm5lciB7CisKK2NsYXNzIFRlc3REZWxlZ2F0ZTsKKwogY2xhc3MgR2Ft
ZXBhZENvbnRyb2xsZXIgOiBwdWJsaWMgQ3BwQm91bmRDbGFzcyB7CiBwdWJsaWM6CiAgICAgR2Ft
ZXBhZENvbnRyb2xsZXIoKTsKQEAgLTY1LDQgKzY3LDYgQEAgcHJpdmF0ZToKICAgICBUZXN0RGVs
ZWdhdGUqIG1fZGVsZWdhdGU7CiB9OwogCit9CisKICNlbmRpZiAvLyBHYW1lcGFkQ29udHJvbGxl
cl9oCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0RGVsZWdhdGUuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oCmluZGV4IDA0OThmY2IzZjNmMTM2NDk2MzNkNTJlMTZh
YTE4ZmEyMzlhMjA3NTIuLmY4ZWNlYjZkMDYxNzJmODc3MDIzMmQ4OTIzYjhhYWVhNDFlNDNhNTEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1Rlc3REZWxlZ2F0ZS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3REZWxlZ2F0ZS5oCkBAIC00MCw4ICs0MCw4IEBAIGNsYXNzIFdlYkdhbWVw
YWRzOwogfQogCiBuYW1lc3BhY2UgV2ViVGVzdFJ1bm5lciB7CisKIGNsYXNzIFdlYlRhc2s7Ci19
CiAKIGNsYXNzIFRlc3REZWxlZ2F0ZSB7CiBwdWJsaWM6CkBAIC01MiwxMSArNTIsMTMgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJDb250ZXh0TWVudURhdGEqIGxhc3RDb250ZXh0
TWVudURhdGEoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEdhbWVwYWREYXRhKGNv
bnN0IFdlYktpdDo6V2ViR2FtZXBhZHMmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHByaW50TWVz
c2FnZShjb25zdCBzdGQ6OnN0cmluZyYgbWVzc2FnZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBw
b3N0VGFzayhXZWJUZXN0UnVubmVyOjpXZWJUYXNrKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBw
b3N0RGVsYXllZFRhc2soV2ViVGVzdFJ1bm5lcjo6V2ViVGFzayosIGxvbmcgbG9uZyBtcykgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFzayhXZWJUYXNrKikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBwb3N0RGVsYXllZFRhc2soV2ViVGFzayosIGxvbmcgbG9uZyBtcykgPSAwOwogICAgIHZp
cnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgcmVnaXN0ZXJJc29sYXRlZEZpbGVTeXN0ZW0oY29uc3Qg
V2ViS2l0OjpXZWJWZWN0b3I8V2ViS2l0OjpXZWJTdHJpbmc+JiBhYnNvbHV0ZUZpbGVuYW1lcykg
PSAwOwogICAgIHZpcnR1YWwgbG9uZyBsb25nIGdldEN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZCgp
ID0gMDsKICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViU3RyaW5nIGdldEFic29sdXRlV2ViU3RyaW5n
RnJvbVVURjhQYXRoKGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKSA9IDA7CiB9OwogCit9CisKICNl
bmRpZiAvLyBUZXN0RGVsZWdhdGVfaApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdEludGVyZmFjZXMuY3BwCmluZGV4
IDg5NTliYjFiYTM5ZTI1ZTE5MmI2ZjdmNDM3NzIyOGE4ZjUyNTdlOTAuLmYwOGRhNWQ0MGQxNjY3
ZWFjZGQxYzE0YzAxNmFjODVkOGRlZTBkZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2VzLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50ZXJmYWNlcy5j
cHAKQEAgLTM3LDEyICszNywxMiBAQAogI2luY2x1ZGUgIlRleHRJbnB1dENvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKIAotdXNpbmcgV2ViVGVzdFJ1bm5lcjo6
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI7Ci11c2luZyBXZWJUZXN0UnVubmVyOjpFdmVudFNlbmRl
cjsKIHVzaW5nIFdlYktpdDo6V2ViRnJhbWU7CiB1c2luZyBXZWJLaXQ6OldlYlN0cmluZzsKIHVz
aW5nIFdlYktpdDo6V2ViVmlldzsKIAorbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgeworCiBUZXN0
SW50ZXJmYWNlczo6VGVzdEludGVyZmFjZXMoKQogewogICAgIG1fYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIgPSBhZG9wdFB0cihuZXcgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKSk7CkBAIC0xMDUs
MyArMTA1LDUgQEAgRXZlbnRTZW5kZXIqIFRlc3RJbnRlcmZhY2VzOjpldmVudFNlbmRlcigpCiB7
CiAgICAgcmV0dXJuIG1fZXZlbnRTZW5kZXIuZ2V0KCk7CiB9CisKK30KZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2Vz
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0SW50
ZXJmYWNlcy5oCmluZGV4IDIyODY1OGMyMmU0ZjM5ODI1YTYwYjcwMzgzYzMwZDZlODQ4ODA1MDIu
LmE3ZGE0MzI4MzcxNzRkMmVlYTE2ODVhZmZlMTJhY2M5MzJiYjYwNTcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RJbnRlcmZhY2Vz
LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVz
dEludGVyZmFjZXMuaApAQCAtMzksMTAgKzM5LDkgQEAgY2xhc3MgV2ViVmlldzsKIH0KIAogbmFt
ZXNwYWNlIFdlYlRlc3RSdW5uZXIgeworCiBjbGFzcyBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjsK
IGNsYXNzIEV2ZW50U2VuZGVyOwotfQotCiBjbGFzcyBHYW1lcGFkQ29udHJvbGxlcjsKIGNsYXNz
IFRlc3REZWxlZ2F0ZTsKIGNsYXNzIFRleHRJbnB1dENvbnRyb2xsZXI7CkBAIC01NywxNCArNTYs
MTYgQEAgcHVibGljOgogICAgIHZvaWQgYmluZFRvKFdlYktpdDo6V2ViRnJhbWUqKTsKICAgICB2
b2lkIHJlc2V0QWxsKCk7CiAKLSAgICBXZWJUZXN0UnVubmVyOjpBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlciogYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKTsKLSAgICBXZWJUZXN0UnVubmVyOjpFdmVu
dFNlbmRlciogZXZlbnRTZW5kZXIoKTsKKyAgICBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIoKTsKKyAgICBFdmVudFNlbmRlciogZXZlbnRTZW5kZXIoKTsK
IAogcHJpdmF0ZToKLSAgICBPd25QdHI8V2ViVGVzdFJ1bm5lcjo6QWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI+IG1fYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI7Ci0gICAgT3duUHRyPFdlYlRlc3RSdW5u
ZXI6OkV2ZW50U2VuZGVyPiBtX2V2ZW50U2VuZGVyOworICAgIE93blB0cjxBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcj4gbV9hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjsKKyAgICBPd25QdHI8RXZlbnRT
ZW5kZXI+IG1fZXZlbnRTZW5kZXI7CiAgICAgT3duUHRyPEdhbWVwYWRDb250cm9sbGVyPiBtX2dh
bWVwYWRDb250cm9sbGVyOwogICAgIE93blB0cjxUZXh0SW5wdXRDb250cm9sbGVyPiBtX3RleHRJ
bnB1dENvbnRyb2xsZXI7CiB9OwogCit9CisKICNlbmRpZiAvLyBUZXN0SW50ZXJmYWNlc19oCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9U
ZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGYwZGE3OTgzMTE3ZWMzODEyNzZiNWE3OGE1NWU0OGVh
ZGRkNzFlMjAuLmJmNzY2NWJiZDkwYzZiMWJhMWM0N2JlNWY3YzUzZDNkMzViM2FhZDEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RS
dW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuY3BwCkBAIC0zMiw2ICszMiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlRlc3RSdW5uZXIuaCIKIAorbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgewor
CiBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKIHsKIH0KKworfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCmlu
ZGV4IDUwMzI3MWI1ZDliNWNlZTA5OThiY2E4NTJjM2NhMDkzNzUwYTY1ZTIuLjc3Mzg4NWQxNmFk
MDE4ODY3OWNjM2I4ZWRjMWFiYmY2OGU4MzQzMTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKQEAgLTM0
LDkgKzM0LDEzIEBACiAKICNpbmNsdWRlICJDcHBCb3VuZENsYXNzLmgiCiAKK25hbWVzcGFjZSBX
ZWJUZXN0UnVubmVyIHsKKwogY2xhc3MgVGVzdFJ1bm5lciA6IHB1YmxpYyBDcHBCb3VuZENsYXNz
IHsKIHB1YmxpYzoKICAgICBUZXN0UnVubmVyKCk7CiB9OwogCit9CisKICNlbmRpZiAvLyBUZXN0
UnVubmVyX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1RleHRJbnB1dENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGV4dElucHV0Q29udHJvbGxlci5jcHAKaW5kZXggYjcy
YTIwODBkMmMwOTc1OGFlMTk0M2ExNGEyMWY5M2E0MDY3NzdjYi4uZTkyOWM3MWZiZDMwMDljZGZl
YmYwZTNhNjNiNmU0NjhlZWI5YzU4NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGV4dElucHV0Q29udHJvbGxlci5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGV4dElucHV0Q29udHJv
bGxlci5jcHAKQEAgLTQ0LDYgKzQ0LDggQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAor
bmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgeworCiBUZXh0SW5wdXRDb250cm9sbGVyOjpUZXh0SW5w
dXRDb250cm9sbGVyKCkKIHsKICAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1dGVkU3Vic3RyaW5nRnJv
bVJhbmdlIiwgJlRleHRJbnB1dENvbnRyb2xsZXI6OmF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFu
Z2UpOwpAQCAtMjMxLDMgKzIzMyw1IEBAIHZvaWQgVGV4dElucHV0Q29udHJvbGxlcjo6c2V0Q29t
cG9zaXRpb24oY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhCiAgICAgV2Vi
U3RyaW5nIHRleHQoV2ViU3RyaW5nOjpmcm9tVVRGOChhcmd1bWVudHNbMF0udG9TdHJpbmcoKSkp
OwogICAgIG1fd2ViVmlldy0+c2V0Q29tcG9zaXRpb24odGV4dCwgdW5kZXJsaW5lcywgMCwgdGV4
dC5sZW5ndGgoKSk7CiB9CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1RleHRJbnB1dENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1RleHRJbnB1dENvbnRyb2xsZXIuaApp
bmRleCBhOTU5YWE4YjM2ODQzNzIxZjQxY2QzNTJlZGYwM2RmODgxZTM4ZDY1Li4yODZkODMzNTY0
MWZmNDlhM2YwYzA5MmNkMTM5MTZjN2Q1ZDJhYTYyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXh0SW5wdXRDb250cm9sbGVyLmgKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGV4dElucHV0
Q29udHJvbGxlci5oCkBAIC00MSw2ICs0MSw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3Mg
V2ViVmlldzsKIH0KIAorbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgeworCiBjbGFzcyBUZXh0SW5w
dXRDb250cm9sbGVyIDogcHVibGljIENwcEJvdW5kQ2xhc3MgewogcHVibGljOgogICAgIFRleHRJ
bnB1dENvbnRyb2xsZXIoKTsKQEAgLTY3LDQgKzY5LDYgQEAgcHJpdmF0ZToKICAgICBXZWJLaXQ6
OldlYlZpZXcqIG1fd2ViVmlldzsKIH07CiAKK30KKwogI2VuZGlmIC8vIFRleHRJbnB1dENvbnRy
b2xsZXJfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>