<?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>236701</bug_id>
          
          <creation_ts>2022-02-16 02:47:06 -0800</creation_ts>
          <short_desc>MediaPlayer::videoFrameForCurrentTime() should return VideoFrame</short_desc>
          <delta_ts>2022-02-17 09:58:18 -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>WebGL</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>236502</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>annulen</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1842202</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-16 02:47:06 -0800</bug_when>
    <thetext>MediaPlayer::videoFrameForCurrentTime() should return VideoFrame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842207</commentid>
    <comment_count>1</comment_count>
      <attachid>452167</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-16 02:55:31 -0800</bug_when>
    <thetext>Created attachment 452167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842231</commentid>
    <comment_count>2</comment_count>
      <attachid>452180</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-16 04:24:32 -0800</bug_when>
    <thetext>Created attachment 452180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842238</commentid>
    <comment_count>3</comment_count>
      <attachid>452183</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-16 04:39:26 -0800</bug_when>
    <thetext>Created attachment 452183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842241</commentid>
    <comment_count>4</comment_count>
      <attachid>452184</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-16 04:47:27 -0800</bug_when>
    <thetext>Created attachment 452184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842265</commentid>
    <comment_count>5</comment_count>
      <attachid>452193</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-16 06:38:48 -0800</bug_when>
    <thetext>Created attachment 452193
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842278</commentid>
    <comment_count>6</comment_count>
      <attachid>452196</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-16 07:31:00 -0800</bug_when>
    <thetext>Created attachment 452196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842511</commentid>
    <comment_count>7</comment_count>
      <attachid>452196</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-02-16 13:52:59 -0800</bug_when>
    <thetext>Comment on attachment 452196
Patch

The webrtc/video-rotation.html crash looks relevant.

rs=me once the bots are happy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842805</commentid>
    <comment_count>8</comment_count>
      <attachid>452344</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-17 03:26:33 -0800</bug_when>
    <thetext>Created attachment 452344
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842811</commentid>
    <comment_count>9</comment_count>
      <attachid>452349</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-17 03:55:47 -0800</bug_when>
    <thetext>Created attachment 452349
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842943</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-17 09:57:33 -0800</bug_when>
    <thetext>Committed r290031 (247411@main): &lt;https://commits.webkit.org/247411@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452349.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842944</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-17 09:58:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/89093387&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452167</attachid>
            <date>2022-02-16 02:55:31 -0800</date>
            <delta_ts>2022-02-16 04:24:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236701-20220216125529.patch</filename>
            <type>text/plain</type>
            <size>67403</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzBlNjY0NTllMWM5YTkx
ZjQwZGE1YjFmMmMyMDlmZDY0NDU4OGRlYS4uZTkxODJhMTg3MDNkNGU3ZmE3MTg3NzFkM2IyOWMy
MTE3YjNlMmJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDIyLTAyLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFQbGF5ZXI6
OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHNob3VsZCByZXR1cm4gVmlkZW9GcmFtZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzAxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJlbmFtZSBDViBzcGVj
aWZpYyBwYXJ0cyBvZiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgdG8gVmlkZW9GcmFtZUNWLgorICAg
ICAgICBVc2UgVmlkZW9GcmFtZSBiYXNlIGNsYXNzIGluc3RlYWQgb2YgTWVkaWFTYW1wbGVWaWRl
b0ZyYW1lLgorICAgICAgICBWaWRlb0ZyYW1lIHN1cHBvcnRzIG11bHRpcGxlIHBvbHltb3JwaGlj
IHN1YmNsYXNzZXMuIE9uZSBzdWNoCisgICAgICAgIGlzIFJlbW90ZVZpZGVvRnJhbWVQcm94eSwg
d2hpY2ggd2lsbCBiZSB1c2VkIGluIHRoZSBmdXR1cmUgdG8KKyAgICAgICAgcmV0dXJuIHJlbW90
ZSBwcm94eSBvYmplY3RzIGluIHRoZXNlIGxvY2F0aW9ucy4KKworICAgICAgICBUaGlzIHBhdGNo
IGlzIG9ubHkgYSByZW5hbWUuIEl0IGNvbmNlcm5zIG9ubHkgdGhlIGluLXByb2Nlc3MKKyAgICAg
ICAgdXNhZ2Ugb2YgdmlkZW8gZnJhbWVzIHZpYSBpbi1wcm9jZXNzIFZpZGVvRnJhbWVDVi4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVNhbXBsZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGU6OnZpZGVvUGl4ZWxGb3JtYXQgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL1ZpZGVvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9GcmFtZTo6VmlkZW9GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lOjpwcmVz
ZW50YXRpb25UaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWU6OnZpZGVv
Um90YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZTo6dmlkZW9NaXJy
b3JlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lOjpwbGF0Zm9ybVNhbXBs
ZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vVmlkZW9GcmFtZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9GcmFtZTo6aXNSZW1vdGVQcm94eSBjb25zdCk6CisgICAgICAgIFRoaXMgbGVh
a3MgInJlbW90ZSIgY29uY2VwdCB0byBXZWJDb3JlIGxldmVsLiBIb3BlZnVsbHkKKyAgICAgICAg
aW4gdGhlIGZ1dHVyZSB0aGlzIGNhbiBiZSBzb2x2ZWQgaW4gYW5vdGhlciB3YXkuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb0ZyYW1lOjppc0NWIGNvbnN0KToKKyAgICAgICAgKGlzVHlwZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVWaWRlb0ZyYW1l
QVZGLm1tOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6dmlk
ZW9GcmFtZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdM
Q29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OnBpeGVsQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvRnJhbWVDVjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvRnJhbWVDVjo6ZGVjb2RlKToKKyAgICAgICAgKGlzVHlwZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvRnJhbWVDVjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWVDVjo6
VmlkZW9GcmFtZUNWKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWVDVjo6cHJlc2VudGF0
aW9uU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OnZpZGVvUGl4
ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZUNWOjpvcmllbnRh
dGlvbiBjb25zdCk6CisKIDIwMjItMDItMTUgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFw
cGxlLmNvbT4KIAogICAgICAgICBBTkdMRSBpbmNsdWRlcyBpbnRlcmZlcmUgd2l0aCBzeXN0ZW0g
aGVhZGVyIGluY2x1ZGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQzZGI1YzAyM2UwZTdmYzEyNmM3ODk0ZTkxNjc0
NDZhNjczMTM0NmIuLjc5OWI0NThiNzY5ODY4ZDMwYjQ4MmY5NDIwOTZmYzNhZWU5Y2U3MWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjItMDItMTYgIEtpbW1vIEtpbm51bmVuICA8a2tp
bm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVBsYXllcjo6dmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lKCkgc2hvdWxkIHJldHVybiBWaWRlb0ZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3MDEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgYWRkZWQgVmlkZW9GcmFtZUNWIGluc3Rl
YWQgb2YgcmVtb3ZlZCBNZWRpYVNhbXBsZVZpZGVvRnJhbWUuCisKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKToKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1l
SWZDaGFuZ2VkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmg6
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVmUHRyPFQ+Pjo6ZW5jb2RlKToKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWZQdHI8VD4+OjpkZWNvZGUpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRU
aW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1l
UHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJh
bWVQcm94eS5oOgorICAgICAgICAoaXNUeXBlKToKKwogMjAyMi0wMi0xNSAgS2ltbW8gS2lubnVu
ZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW90ZVZpZGVvRnJhbWVQcm94
eSBpcyBtaXNzaW5nIHJlZmVyZW5jZSBmaWVsZCBlbmNvZGUsIGRlY29kZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKaW5kZXggYWM3NDZhOWU1ZWY1YjRhNGQwZGZjZmE0ZGMxYTQ1YjkxZGM1NDJlYS4uZTFkOTA4
YzIzMjllNTdjN2MyYTYxYmUzOGVhZTM0ZDYwYzY5MzM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBA
IC0xNTI2LDcgKzE1MjYsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJFbnVtcy5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhU2FtcGxlVmlk
ZW9GcmFtZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlLmgKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhVXNhZ2VJbmZvLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4
IGNjYjA4Njg1OGMxYzljYzMxMWE4N2ZiMzk1ODg3Njg4ODEwOTBlZTcuLjVkMjUwYTgwYWJkMmY5
ODc0ODFhNTVmMTAwNjVkMDFjMTUwYzFkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAt
MzA0LDcgKzMwNCw2IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRNZXRh
ZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCi1wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tCiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3Bw
CiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdlck1h
Yy5jcHAKQEAgLTQxMiw2ICs0MTEsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9HbHlw
aFBhZ2VDb3JlVGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1tCiBw
bGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCiBwbGF0Zm9ybS9n
cmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvVmlkZW9GcmFtZUNWLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb2xvck1h
dHJpeENvcmVJbWFnZUFwcGxpZXIubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNv
bXBvbmVudFRyYW5zZmVyQ29yZUltYWdlQXBwbGllci5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29y
ZWltYWdlL0ZpbHRlckltYWdlQ29yZUltYWdlLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmFlZTRiMzEyOTk5MDYxZmQ5MWNj
YTIyZDIxMzU2MDc5NjBjZTllOC4uMGE4Y2M4ZDVlZmUyNThhYWFlNDkxOTMzMGRhOGI4ZTg1YjFl
NTMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjQwNyw3ICsyNDA3LDYgQEAKIAkJN0FGOUIyMEYxOENGQjVGNDAwQzY0QkVG
IC8qIEpTVlRUUmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0FGOUIyMEIxOENGQjVGMzAwQzY0QkVGIC8qIEpTVlRUUmVnaW9uTGlzdC5o
ICovOyB9OwogCQk3QjEwMzM5RTI1NDk3MjE3MDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xD
Vi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IxMDMz
OUQyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjEwMzM5RjI1NDk3MjFFMDBD
OEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMgLyogR3Jh
cGhpY3NDb250ZXh0R0xDVkNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJN0I0NDEwRTEyNzk1OEZDNTAwMEI0RjhBIC8qIE1lZGlhU2FtcGxl
VmlkZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0I0NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlhU2FtcGxlVmlkZW9GcmFtZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNUEzREFG
MjdBQkY4QzUwMDZDNkY5NyAvKiBWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjVBM0RBRDI3QUJGOEM0MDA2QzZGOTcgLyogVmlkZW9G
cmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTdCNjA5NEREMjcwQzQ0QkQwMDY0ODM1QyAvKiBBTkdMRVV0aWxpdGllcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBMTYyNTM0NUNCMjAwMDI5
RDA4IC8qIEFOR0xFVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJN0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250
ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMjQyNCw2ICsyNDIzLDcgQEAKIAkJN0JFMzdGN0MyN0JCODZC
ODAwN0E2Q0QzIC8qIEFOR0xFVXRpbGl0aWVzQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JDRDQyREEyNzA1Qzk0OTAwRUIyMTI3IC8qIEFO
R0xFVXRpbGl0aWVzQ29jb2EuY3BwICovOyB9OwogCQk3QkUzN0Y3RDI3QkI4NkNEMDA3QTZDRDMg
LyogQU5HTEVVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0JDRDQyRDgyNzA1OTlFRjAwRUIyMTI3IC8qIEFOR0xFVXRpbGl0aWVzLmNw
cCAqLzsgfTsKIAkJN0JFMzdGN0UyN0JCODZEQjAwN0E2Q0QzIC8qIEdyYXBoaWNzQ29udGV4dEdM
Q1ZDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QjEwMzM5QTI1NDk3MjAwMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNw
cCAqLzsgfTsKKwkJN0JFMzdGODcyN0JCQjcwODAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JFMzdGODYyN0JC
QjZGRjAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRTc0MjczODFGQTkwNkZCQjRGMEYyQyAvKiBKU1NW
R0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50
LmggKi87IH07CiAJCTdCRkY1OUY0Mjc1NzcyNjcwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJh
dGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCRkY1OUVGMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
QzAyOUM2RTI0OTNDOEY4MDAyNjgyMDQgLyogQ29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMjlDNkQyNDkzQzhGODAwMjY4MjA0IC8q
IENvbG9yVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMTE1MzAsOCArMTE1MzAsNiBAQAogCQk3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMg
LyogR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29u
dGV4dEdMQ1ZDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjEwMzM5RDI1
NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBH
cmFwaGljc0NvbnRleHRHTENWLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTYx
OTEwMjcxOTg4MEUwMEM0MEVBQyAvKiBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29h
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3QjQ0MTBERjI3OTU4RkM0MDAwQjRG
OEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhU2FtcGxlVmlkZW9GcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk3QjQ0MTBFMjI3OTU4RkRFMDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZG
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjVBM0RBQjI3QUJGOEM0MDA2QzZGOTcgLyog
VmlkZW9GcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRl
b0ZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I1QTNEQUQyN0FCRjhD
NDAwNkM2Rjk3IC8qIFZpZGVvRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVmlkZW9GcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNTI1
NzEyRTkxMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJ
T1N1cmZhY2VTd2FwQ2hhaW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1
NTUsNiArMTE1NTMsOCBAQAogCQk3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGlj
c0NvbnRleHRHTENvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRERBMzQ5
Mjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdCRERBMzRCMjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JFMzdGODUyN0JCQjZGRTAwN0E2Q0QzIC8q
IFZpZGVvRnJhbWVDVi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFZpZGVvRnJhbWVDVi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JFMzdGODYy
N0JCQjZGRjAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBWaWRlb0ZyYW1lQ1YuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0JGRjU5RUYyNzU3NzFFODAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5oOyBmaWxlRW5jb2RpbmcgPSA0OyBwYXRoID0gRGlzcGxheUNvbmZpZ3VyYXRpb25N
b25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRkY1OUYxMjc1NzcxRTgw
MDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0MwMTFGM0QyNEZBRDM2MDAwNUJFRjEwIC8q
IFNldHRpbmdzLmNwcC5lcmIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2V0dGluZ3MuY3BwLmVyYjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE4NzgxLDcgKzE4NzgxLDYgQEAKIAkJCQkwNzFFNDk2RDFBRDVBQTBE
MDA4QTUwQjQgLyogTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tICovLAogCQkJCTA3NkYwRDA5
MTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwICov
LAogCQkJCTA3NkYwRDBBMTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb24uaCAqLywKLQkJCQk3QjQ0MTBFMjI3OTU4RkRFMDAwQjRGOEEgLyogTWVkaWFTYW1w
bGVWaWRlb0ZyYW1lQVZGLm1tICovLAogCQkJCUNEQkVBRUFCMTlEOTJCNkMwMEJFQkE4OCAvKiBN
ZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oICovLAogCQkJCUNEQkVBRUFBMTlEOTJCNkMwMEJF
QkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbSAqLywKIAkJCQk0MTAyNEZDODIz
Q0YyNTRGMDBGREY5OEUgLyogU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCAqLywKQEAgLTI5
MDQ1LDcgKzI5MDQ0LDYgQEAKIAkJCQlDRDUyMDlFMzFCMEJEODM4MDA3NzE4NEUgLyogTWVkaWFQ
bGF5ZXJFbnVtcy5oICovLAogCQkJCUY0MjkyNjE3MjUyNjRENDQwMDAwNzg5OCAvKiBNZWRpYVBs
YXllcklkZW50aWZpZXIuaCAqLywKIAkJCQkwNzlGNUU0QjBGM0JFQkVBMDA1RTA3ODIgLyogTWVk
aWFQbGF5ZXJQcml2YXRlLmggKi8sCi0JCQkJN0I0NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1l
ZGlhU2FtcGxlVmlkZW9GcmFtZS5oICovLAogCQkJCUNENjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAv
KiBNZWRpYVNvdXJjZVByaXZhdGUuaCAqLywKIAkJCQlDRERDMUU3OTE4QTk1MkYzMDAyN0E5RDQg
LyogTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmggKi8sCiAJCQkJMDc2MTFEQjgyNDNGQjc1QzAw
RDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggKi8sCkBAIC0zMDQxMiw2ICszMDQxMCw4IEBACiAJ
CQkJMDc0NkQzMEEyMTQ2RUEzNzAwM0RERjg0IC8qIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0g
Ki8sCiAJCQkJQ0Q3RDMzNDExQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YuY3BwICovLAogCQkJCUNEN0QzMzQyMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNv
bmZvcm1lckNWLmggKi8sCisJCQkJN0JFMzdGODYyN0JCQjZGRjAwN0E2Q0QzIC8qIFZpZGVvRnJh
bWVDVi5oICovLAorCQkJCTdCRTM3Rjg1MjdCQkI2RkUwMDdBNkNEMyAvKiBWaWRlb0ZyYW1lQ1Yu
bW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGN2OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
QEAgLTM2MjU5LDcgKzM2MjU5LDYgQEAKIAkJCQlDRUVGQ0Q3QTE5REIzMUY3MDAzODc2RDcgLyog
TWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUJGOURCM0MxRDM5NzNB
RDAwMjZBRUI3IC8qIE1lZGlhU2FtcGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQjEyNEQ4RDFE
MzgwQjcwMDBFQ0RGQjAgLyogTWVkaWFTYW1wbGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk3QjQ0MTBFMTI3OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDREJFQUVBRDE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rp
b25Hcm91cEFWRk9iakMuaCBpbiBIZWFkZXJzICovLAogCQkJCUExN0QyNzVFMUVBQzU3OTgwMEJG
MDFFNyAvKiBNZWRpYVNlbGVjdGlvbk9wdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc3QkE1
NzUyNjBGQTVGRTAwNzJGMTlGIC8qIE1lZGlhU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
Nzg2NCw2ICszNzg2Myw3IEBACiAJCQkJQkNBMjU3MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRp
Y2FsUG9zaXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGM0IyNTc5OUZBMTAw
NjU2M0JCIC8qIFZpZGVvQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0I1QTNE
QUYyN0FCRjhDNTAwNkM2Rjk3IC8qIFZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTdC
RTM3Rjg3MjdCQkI3MDgwMDdBNkNEMyAvKiBWaWRlb0ZyYW1lQ1YuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxREVFRkI2MjcxOUJBMUEwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lTWV0YWRhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxREVFRkIwMjcxOUIyOTAwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lUmVx
dWVzdENhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NF
NTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL01lZGlhU2FtcGxlLmgKaW5kZXggYjA2NTA0ZjU3ZWU5MzZiOGUxOTg4
NzFmMzU3Mjc2NTM1MzA0YWZkMy4uZjIxMDA0MzVjNDIxZGQzNTQ4MTNhYWE5MDFlZjA5YWJkZDkz
NjBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCkBAIC0yNiw3ICsyNiw2
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgotI2luY2x1ZGUgIk1l
ZGlhU2FtcGxlVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJy
YXlzLmg+CiAjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFU
aW1lLmg+CkBAIC01MCw3ICs0OSw3IEBAIHN0cnVjdCBQbGF0Zm9ybVNhbXBsZSB7CiAgICAgICAg
IENNU2FtcGxlQnVmZmVyVHlwZSwKICAgICAgICAgR1N0cmVhbWVyU2FtcGxlVHlwZSwKICAgICAg
ICAgQnl0ZVJhbmdlU2FtcGxlVHlwZSwKLSAgICAgICAgUmVtb3RlVmlkZW9GcmFtZVByb3h5VHlw
ZSwgLy8gRklYTUU6IFRvIGJlIHJlbW92ZWQgd2hlbiBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRpYVNh
bXBsZS4KKyAgICAgICAgVmlkZW9GcmFtZVR5cGUsIC8vIEZJWE1FOiBUbyBiZSByZW1vdmVkIHdo
ZW4gVmlkZW9GcmFtZSBpcyBub3QgTWVkaWFTYW1wbGUuCiAgICAgfSB0eXBlOwogICAgIHVuaW9u
IHsKICAgICAgICAgY29uc3QgTW9ja1NhbXBsZUJveCogbW9ja1NhbXBsZUJveDsKQEAgLTEwOCw5
ICsxMDcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRp
b24oKSBjb25zdCB7IHJldHVybiBWaWRlb1JvdGF0aW9uOjpOb25lOyB9CiAgICAgdmlydHVhbCBi
b29sIHZpZGVvTWlycm9yZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
dWludDMyX3QgdmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSNpZiBkZWZp
bmVkKEVOQUJMRV9WSURFTykgJiYgRU5BQkxFX1ZJREVPCi0gICAgdmlydHVhbCBzdGQ6Om9wdGlv
bmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsgfTsKLSNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZpcnR1YWwg
Q1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH07
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5jcHAKaW5kZXggZjA3Njli
YTVlNTRhODgwYmU2MzkwOWE5Y2RhMDMyODdhMzdkM2NmNC4uMmUzNDIxNTExODE1ZmIyOTAzOWE4
MjI2MGZkYmM0ZTNiMWRlOGUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
VmlkZW9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5j
cHAKQEAgLTMwLDEwICszMCwzNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVZpZGVvRnJh
bWU6OlZpZGVvRnJhbWUoKSA9IGRlZmF1bHQ7CitWaWRlb0ZyYW1lOjpWaWRlb0ZyYW1lKE1lZGlh
VGltZSBwcmVzZW50YXRpb25UaW1lLCBib29sIGlzTWlycm9yZWQsIFZpZGVvUm90YXRpb24gcm90
YXRpb24pCisgICAgOiBtX3ByZXNlbnRhdGlvblRpbWUocHJlc2VudGF0aW9uVGltZSkKKyAgICAs
IG1faXNNaXJyb3JlZChpc01pcnJvcmVkKQorICAgICwgbV9yb3RhdGlvbihyb3RhdGlvbikKK3sK
K30KIAogVmlkZW9GcmFtZTo6flZpZGVvRnJhbWUoKSA9IGRlZmF1bHQ7CiAKK01lZGlhVGltZSBW
aWRlb0ZyYW1lOjpwcmVzZW50YXRpb25UaW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcmVz
ZW50YXRpb25UaW1lOworfQorCitNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBWaWRlb0ZyYW1l
Ojp2aWRlb1JvdGF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yb3RhdGlvbjsKK30KKwor
Ym9vbCBWaWRlb0ZyYW1lOjp2aWRlb01pcnJvcmVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9p
c01pcnJvcmVkOworfQorCitXZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZSBWaWRlb0ZyYW1lOjpwbGF0
Zm9ybVNhbXBsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHsgV2ViQ29yZTo6UGxhdGZvcm1TYW1w
bGU6OlZpZGVvRnJhbWVUeXBlLCB7IH0gfTsKK30KKwogTWVkaWFUaW1lIFZpZGVvRnJhbWU6OmRl
Y29kZVRpbWUoKSBjb25zdAogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVmlkZW9GcmFtZS5oCmluZGV4IGI2MzFmZDEzZTIyZTMxMjI2NjUwMDE0YmFmNzhk
ZWE5MGNhYTZmYjIuLjBmMDFkNWQ1MGRmYTQ5MDJmN2JmMzU4NWU5NzU2ZjJmZGM1NzdjZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmgKQEAgLTM4LDggKzM4LDIzIEBAIGNsYXNz
IFZpZGVvRnJhbWUgOiBwdWJsaWMgTWVkaWFTYW1wbGUgewogcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIH5WaWRlb0ZyYW1lKCk7CiAKKyAgICAvLyBXZWJDb3JlOjpNZWRpYVNhbXBsZSBvdmVy
cmlkZXMuCisgICAgV0VCQ09SRV9FWFBPUlQgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWUoKSBj
b25zdCBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRp
b24oKSBjb25zdCBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHZpZGVvTWlycm9yZWQo
KSBjb25zdCBmaW5hbDsKKyAgICAvLyBGSVhNRTogV2hlbiBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRp
YVNhbXBsZSwgdGhlc2Ugd2lsbCBub3QgYmUgbmVlZGVkLgorICAgIFdFQkNPUkVfRVhQT1JUIFdl
YkNvcmU6OlBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkgY29uc3QgZmluYWw7CisKKyNp
ZiBVU0UoQVZGT1VOREFUSU9OKQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbW90ZVByb3h5KCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDVigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisjZW5kaWYKKwogcHJvdGVjdGVkOgotICAgIFdFQkNPUkVfRVhQT1JUIFZp
ZGVvRnJhbWUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBWaWRlb0ZyYW1lKE1lZGlhVGltZSBwcmVz
ZW50YXRpb25UaW1lLCBib29sIGlzTWlycm9yZWQsIFZpZGVvUm90YXRpb24pOworICAgIFdFQkNP
UkVfRVhQT1JUIGNvbnN0IE1lZGlhVGltZSBtX3ByZXNlbnRhdGlvblRpbWU7CisgICAgV0VCQ09S
RV9FWFBPUlQgY29uc3QgYm9vbCBtX2lzTWlycm9yZWQ7CisgICAgV0VCQ09SRV9FWFBPUlQgY29u
c3QgVmlkZW9Sb3RhdGlvbiBtX3JvdGF0aW9uOwogCiBwcml2YXRlOgogICAgIC8vIEZJWE1FOiBU
aGVzZSBhcmUgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZm9yIHRoZXNlIG9iamVjdHMuCkBAIC02
MCw0ICs3NSw3IEBAIHByaXZhdGU6CiAKIH0KIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJ
TihXZWJDb3JlOjpWaWRlb0ZyYW1lKQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJD
b3JlOjpNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpIHsgcmV0dXJuIG1lZGlhU2FtcGxlLnBsYXRm
b3JtU2FtcGxlKCkudHlwZSA9PSBXZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZTo6VmlkZW9GcmFtZVR5
cGU7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDBhYmMzMjIz
OGQ2NDFhY2E0NWY3Mzk3NzU3ZTRlNWUxNTFiYTdkYjUuLmVhZTRiZjBiYmNjNDMyMmI2MTcwMGM4
NWQ4N2YxNzY4YzdmZGI5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTEwODgsNyArMTA4OCw3IEBAIGJvb2wgTWVkaWFQbGF5
ZXI6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCog
Y29udGV4dCwKIAogI2VuZGlmCiAKLXN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1l
PiBNZWRpYVBsYXllcjo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKK1JlZlB0cjxWaWRlb0Zy
YW1lPiBNZWRpYVBsYXllcjo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICByZXR1
cm4gbV9wcml2YXRlLT52aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDVmMGRhYTg2NmYy
YzgyMzNhYzhjMTk0YTYxMzNkOTczZjM0NDZmZTguLmIwMzU5MGJiZGM4YjFiYjY2NzEzZDgwZDE3
MGU4ZDAzMDk2Y2FiZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaApAQCAtMzQsMTEgKzM0LDExIEBACiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5o
IgogI2luY2x1ZGUgIk1lZGlhUGxheWVyRW51bXMuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllcklk
ZW50aWZpZXIuaCIKLSNpbmNsdWRlICJNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UZXh0VHJhY2suaCIKICNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUg
IlZpZGVvRnJhbWUuaCIKICNpbmNsdWRlICJWaWRlb0ZyYW1lTWV0YWRhdGEuaCIKICNpbmNsdWRl
ICJWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9Gb3J3YXJkLmg+CkBAIC00NzAsNyArNDcwLDcgQEAgcHVibGljOgogI2lmICFVU0UoQVZGT1VO
REFUSU9OKQogICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBo
aWNzQ29udGV4dEdMKiwgUGxhdGZvcm1HTE9iamVjdCB0ZXh0dXJlLCBHQ0dMZW51bSB0YXJnZXQs
IEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQs
IEdDR0xlbnVtIHR5cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSk7CiAjZW5k
aWYKLSAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZv
ckN1cnJlbnRUaW1lKCk7CisgICAgUmVmUHRyPFZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJy
ZW50VGltZSgpOwogICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50
VGltZSgpOwogICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRl
LmgKaW5kZXggZjlmZjRjYmYyODY5ZDkzMzEyMGVkZTAwZDAxNWU1YWRkZjQ3ODI5MS4uODA5YmUx
NjUzMzIyNzIwNzY0ZmEwODE2YzgzODhkYzMyYjU4MWQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTI5LDkg
KzI5LDkgQEAKIAogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5
ZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgiCiAjaW5j
bHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKKyNp
bmNsdWRlICJWaWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKQEAgLTE4MSw3ICsxODEsNyBAQCBwdWJsaWM6CiAjaWYg
IVVTRShBVkZPVU5EQVRJT04pCiAgICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1RleHR1cmVUb1Bs
YXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xl
bnVtLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKSB7
IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCi0gICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPE1lZGlh
U2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gc3Rk
OjpudWxsb3B0OyB9CisgICAgdmlydHVhbCBSZWZQdHI8VmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZv
ckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgUmVmUHRyPE5h
dGl2ZUltYWdlPiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbnVsbHB0cjsg
fQogICAgIHZpcnR1YWwgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSA9IDA7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhU2FtcGxl
VmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTYW1w
bGVWaWRlb0ZyYW1lLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxNDc0Y2ZiMTNm
ZmIxMTk2ZDNjMjQwNTBhMTYyNmI3M2I0ODNlZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFTYW1wbGVWaWRlb0ZyYW1lLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQot
Ci0jaWYgRU5BQkxFKFZJREVPKQotI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKLQotI2lm
IFVTRShBVkZPVU5EQVRJT04pCi0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCi11c2luZyBD
VlBpeGVsQnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZmZXIqOwotI2VuZGlmCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lIHsKLXB1YmxpYzoKLSAg
ICBNZWRpYVNhbXBsZVZpZGVvRnJhbWUoKSA9IGRlbGV0ZTsKLSNpZiBVU0UoQVZGT1VOREFUSU9O
KQotICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhU2FtcGxlVmlkZW9GcmFtZShSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4mJiwgSW1hZ2VPcmllbnRhdGlvbik7Ci0jZW5kaWYKLQotICAgIEltYWdl
T3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX29yaWVudGF0aW9uOyB9
Ci0KLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsQnVmZmVyLmdldCgpOyB9Ci0jZW5kaWYKLQotICAg
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBNZWRpYVNhbXBsZVZpZGVvRnJhbWUmIG90aGVyKSBjb25z
dDsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IGRlY29kZShEZWNvZGVyJik7Ci0KLXByaXZhdGU6
Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4g
bV9waXhlbEJ1ZmZlcjsKLSNlbmRpZgotICAgIEltYWdlT3JpZW50YXRpb24gbV9vcmllbnRhdGlv
bjsKLX07Ci0KLWlubGluZSBib29sIE1lZGlhU2FtcGxlVmlkZW9GcmFtZTo6b3BlcmF0b3I9PShj
b25zdCBNZWRpYVNhbXBsZVZpZGVvRnJhbWUmIG90aGVyKSBjb25zdAotewotI2lmIFVTRShBVkZP
VU5EQVRJT04pCi0gICAgaWYgKG1fcGl4ZWxCdWZmZXIgIT0gb3RoZXIubV9waXhlbEJ1ZmZlcikK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi0gICAgcmV0dXJuIEltYWdlT3JpZW50YXRp
b246Ok9yaWVudGF0aW9uKG90aGVyLm1fb3JpZW50YXRpb24pID09IEltYWdlT3JpZW50YXRpb246
Ok9yaWVudGF0aW9uKG1fb3JpZW50YXRpb24pOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNv
ZGVyPiB2b2lkIE1lZGlhU2FtcGxlVmlkZW9GcmFtZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0Ci17Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBlbmNvZGVyIDw8IG1fcGl4ZWxC
dWZmZXI7Ci0gICAgZW5jb2RlciA8PCBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbihtX29y
aWVudGF0aW9uKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGVuY29kZXIpOwotI2VuZGlmCi19
Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVW
aWRlb0ZyYW1lPiBNZWRpYVNhbXBsZVZpZGVvRnJhbWU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQotewotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4+IHBpeGVsQnVmZmVyOwotICAgIGRlY29kZXIgPj4gcGl4ZWxCdWZm
ZXI7Ci0gICAgaWYgKCFwaXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
LSAgICBzdGQ6Om9wdGlvbmFsPEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uPiBvcmllbnRh
dGlvbjsKLSAgICBkZWNvZGVyID4+IG9yaWVudGF0aW9uOwotICAgIGlmICghb3JpZW50YXRpb24p
Ci0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIE1lZGlhU2FtcGxlVmlk
ZW9GcmFtZSB7IFdURk1vdmUoKnBpeGVsQnVmZmVyKSwgKm9yaWVudGF0aW9uIH07Ci0jZWxzZQot
ICAgIFVOVVNFRF9QQVJBTShkZWNvZGVyKTsKLSAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotI2Vu
ZGlmCi19Ci0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2FtcGxlVmlkZW9GcmFtZUFWRi5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNhbXBsZVZpZGVv
RnJhbWVBVkYubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0OTU5ODEyZjY2ZmNh
NzA1NDE3YjAyYWY1NTFmZmMxMzFhODQzNjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhU2FtcGxlVmlkZW9GcmFtZUFWRi5tbQorKysgL2Rldi9udWxsCkBAIC0xLDQx
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoVklERU8pCi0jaW5jbHVkZSAiTWVkaWFT
YW1wbGVWaWRlb0ZyYW1lLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotTWVkaWFTYW1wbGVW
aWRlb0ZyYW1lOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+JiYgcGl4ZWxCdWZmZXIsIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCi0gICAgOiBt
X3BpeGVsQnVmZmVyKFdURk1vdmUocGl4ZWxCdWZmZXIpKQotICAgICwgbV9vcmllbnRhdGlvbihv
cmllbnRhdGlvbikKLXsKLX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRl
eCAzODM3NzJjNTA0NDkyOWI5ZTUxNTc4NDE2ZGVmNjRmODc4ODAyMzY0Li4wMmYwOTNhOGUwOTQ2
MGZmZWZjOGY5M2FjYTIzZDIyYzk2MWJjOWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0y
NjIsNyArMjYyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigp
OwogICAgIGJvb2wgdmlkZW9PdXRwdXRIYXNBdmFpbGFibGVGcmFtZSgpOwogICAgIHZvaWQgcGFp
bnRXaXRoVmlkZW9PdXRwdXQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jik7Ci0g
ICAgc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJy
ZW50VGltZSgpIGZpbmFsOworICAgIFJlZlB0cjxWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3Vy
cmVudFRpbWUoKSBmaW5hbDsKICAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9y
Q3VycmVudFRpbWUoKSBmaW5hbDsKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFj
ZSgpIGZpbmFsOwogICAgIHZvaWQgd2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRhV2lsbENoYW5n
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggYWRiM2JkMWI3MGY0Mjk1OTgzYWQ1YTIy
ZTRiZWMyZjY1MGQwNzc3YS4uYjE4NWU5NWU3ZDZkMWEwMzc4NmM4OWM4ZmRlOTM1ZGFkOWU3MmZl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC02OCw2ICs2OCw3IEBACiAjaW1wb3J0ICJT
b3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgiCiAjaW1wb3J0ICJUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bi5oIgogI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIK
ICNpbXBvcnQgIlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oIgogI2ltcG9ydCAiVmlkZW9UcmFja1By
aXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCIKQEAg
LTI3MjIsMTIgKzI3MjMsMTIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmIGMKIAogfQogCi1zdGQ6
Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKK1JlZlB0cjxWaWRlb0ZyYW1l
PiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKQogewogICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpOwogICAgIGlmICghbV9sYXN0
UGl4ZWxCdWZmZXIpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIE1l
ZGlhU2FtcGxlVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIElt
YWdlT3JpZW50YXRpb246Ok5vbmUgfTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0
dXJuIFZpZGVvRnJhbWVDVjo6Y3JlYXRlKGN1cnJlbnRNZWRpYVRpbWUoKSwgZmFsc2UsIFZpZGVv
RnJhbWVDVjo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSwgUmV0YWluUHRyIHsgbV9sYXN0UGl4ZWxCdWZm
ZXIgfSk7CiB9CiAKIFJlZlB0cjxOYXRpdmVJbWFnZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oCmluZGV4IGJjYWQxMjU0MzYzYTE4N2M2OGEzMzY4ZmE3YTdhMTQ4NTE1YjgyZTUuLjVl
MTMwYWYxYWIxNDUzNzdjNGFiNDJjNGE0YmQ2NjJjNWY3NjljYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oCkBAIC0yMjIsNyArMjIyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUxh
c3RJbWFnZSgpOwogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKLSAgICBzdGQ6Om9wdGlv
bmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmlu
YWw7CisgICAgUmVmUHRyPFZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZp
bmFsOwogICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkgZmluYWw7CiAKICAg
ICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCBlOTVmOGMzY2FjZjBhZGUxODExZjExYmFlNjgz
YmU0YjVmYjE1NTMzLi43NTRiMjA3ZjY3NTEyYTVhYTA5MjQwNzJhZDMwOTFhNjU4MDU3NzE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJN
ZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCIKICNpbXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVy
Q1YuaCIKICNpbXBvcnQgIlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCisjaW1wb3J0ICJWaWRl
b0ZyYW1lQ1YuaCIKICNpbXBvcnQgIlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oIgogI2ltcG9ydCAi
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZB
c3NldC5oPgpAQCAtNzI1LDcgKzcyNiw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvCiAgICAg
Y29udGV4dC5kcmF3TmF0aXZlSW1hZ2UoKmltYWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCBvdXRwdXRS
ZWN0LCBpbWFnZVJlY3QpOwogfQogCi1zdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFt
ZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3Vy
cmVudFRpbWUoKQorUmVmUHRyPFZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICAvLyBXZSBoYXZl
IGJlZW4gYXNrZWQgdG8gcGFpbnQgaW50byBhIFdlYkdMIGNhbnZhcywgc28gdGFrZSB0aGF0IGFz
IGEgc2lnbmFsIHRvIGNyZWF0ZQogICAgIC8vIGEgZGVjb21wcmVzc2lvbiBzZXNzaW9uLCBldmVu
IGlmIHRoYXQgbWVhbnMgdGhlIG5hdGl2ZSB2aWRlbyBjYW4ndCBhbHNvIGJlIGRpc3BsYXllZApA
QCAtNzM4LDggKzczOSw4IEBAIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvCiAgICAgaWYgKCFtX2lz
R2F0aGVyaW5nVmlkZW9GcmFtZU1ldGFkYXRhKQogICAgICAgICB1cGRhdGVMYXN0UGl4ZWxCdWZm
ZXIoKTsKICAgICBpZiAoIW1fbGFzdFBpeGVsQnVmZmVyKQotICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwotICAgIHJldHVybiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgeyBSZXRhaW5QdHIgeyBt
X2xhc3RQaXhlbEJ1ZmZlciB9LCBJbWFnZU9yaWVudGF0aW9uOjpOb25lIH07CisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIHJldHVybiBWaWRlb0ZyYW1lQ1Y6OmNyZWF0ZShjdXJyZW50TWVk
aWFUaW1lKCksIGZhbHNlLCBWaWRlb0ZyYW1lQ1Y6OlZpZGVvUm90YXRpb246Ok5vbmUsIFJldGFp
blB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0pOwogfQogCiBEZXN0aW5hdGlvbkNvbG9yU3BhY2Ug
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpjb2xvclNwYWNlKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLmgKaW5kZXggNTE2ZGNkYTk2ODY3Zjc1OWZhYzVlMjA0MDkyNzVjYzA4
OWMwYjMxOC4uZmY1MWZjYTc3NmY4OTdmNTY1NDQ1Mzg0N2IwYTFlZDg0OGNjMzRlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmgKQEAgLTE0Myw3ICsxNDMsNyBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsK
ICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwotICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVW
aWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBvdmVycmlkZTsKKyAgICBSZWZQ
dHI8VmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgb3ZlcnJpZGU7CiAgICAg
RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSBvdmVycmlkZTsKICAgICBib29sIG1l
dGFEYXRhQXZhaWxhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0cmVhbVByaXZhdGUgJiYg
bV9yZWFkeVN0YXRlID49IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGE7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCmluZGV4IDQyZmQxNzQ4N2VhNmNkMTcxMDUwNTA1
ZmY1ZjNmZjVlZGZiZTdlMTUuLjI1ZmFkOTA5MTBhYjVlNGIzZWVmMDlkYjQ3ZTY5ZjZlMWI4MDJl
MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KQEAgLTMwLDkgKzMwLDEwIEBACiAKICNp
bXBvcnQgIkF1ZGlvVHJhY2tQcml2YXRlTWVkaWFTdHJlYW0uaCIKICNpbXBvcnQgIkdyYXBoaWNz
Q29udGV4dENHLmgiCi0jaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJMb2NhbFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllci5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFQ
bGF5ZXIuaCIKKyNpbXBvcnQgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgogI2ltcG9ydCAiTWVkaWFT
ZXNzaW9uTWFuYWdlckNvY29hLmgiCiAjaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNp
bXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCIKQEAgLTEwMjIsMTUgKzEwMjMsMTggQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhaW50Q3VycmVudEZy
YW1lSW5Db250ZXh0KEdyYXBoaWNzQ28KICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqaW1h
Z2UsIGltYWdlUmVjdC5zaXplKCksIHRyYW5zZm9ybWVkRGVzdFJlY3QsIGltYWdlUmVjdCk7CiB9
CiAKLXN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCitSZWZQdHI8
VmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0Zy
YW1lRm9yQ3VycmVudFRpbWUoKQogewogICAgIGlmIChtX2Rpc3BsYXlNb2RlID09IE5vbmUgfHwg
IW1ldGFEYXRhQXZhaWxhYmxlKCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIGlmIChtX2Rpc3BsYXlNb2RlID09IFBhaW50SXRCbGFj
aykKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgaWYgKCFtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZSkKLSAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUtPnZpZGVv
RnJhbWUoKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGlzPFZpZGVvRnJhbWU+
KCptX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZSkpCisgICAgICAgIHJldHVybiAmZG93bmNhc3Q8
VmlkZW9GcmFtZT4oKm1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlKTsKKyAgICBBU1NFUlQoaXM8
TWVkaWFTYW1wbGVBVkZPYmpDPigqbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUpKTsKKyAgICBy
ZXR1cm4gZG93bmNhc3Q8TWVkaWFTYW1wbGVBVkZPYmpDPigqbV9pbWFnZVBhaW50ZXIubWVkaWFT
YW1wbGUpLnZpZGVvRnJhbWUoKTsKIH0KIAogRGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y29sb3JTcGFjZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNh
bXBsZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCmluZGV4IDViNGY3ZjAwZGIzM2E1YmNkZjY1
NmM2MDIyZjE0ODM0ZjQxYzU5MDYuLjU4MTRjZjYzNWZlZDllZTA5NTFiMTI1ZTVjY2Y4MzQ0NDg0
OTRkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCkBA
IC0zNSw2ICszNSw3IEBAIHVzaW5nIENWUGl4ZWxCdWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1ZmZl
cio7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBpeGVsQnVmZmVyOworY2xhc3MgVmlk
ZW9GcmFtZUNWOwogCiBjbGFzcyBNZWRpYVNhbXBsZUFWRk9iakMgOiBwdWJsaWMgTWVkaWFTYW1w
bGUgewogcHVibGljOgpAQCAtNzEsNyArNzIsNiBAQCBwdWJsaWM6CiAgICAgVmlkZW9Sb3RhdGlv
biB2aWRlb1JvdGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9yb3RhdGlvbjsgfQog
ICAgIGJvb2wgdmlkZW9NaXJyb3JlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbWlycm9y
ZWQ7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0KCkgY29u
c3QgZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZp
ZGVvRnJhbWU+IHZpZGVvRnJhbWUoKSBjb25zdCBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCBD
VlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKCkgY29uc3QgZmluYWw7CiAgICAgQ01TYW1wbGVC
dWZmZXJSZWYgc2FtcGxlQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGUuZ2V0KCk7IH0K
IApAQCAtODAsNiArODAsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEJ5dGVSYW5nZU9mZnNl
dChzaXplX3QpOwogCisgICAgLy8gRklYTUU6IFRvIGJlIHJlbW92ZWQgb25jZSBWaWRlb0ZyYW1l
IGlzIG5vdCBhIE1lZGlhU2FtcGxlLgorICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxWaWRlb0Zy
YW1lQ1Y+IHZpZGVvRnJhbWUoKSBjb25zdDsKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9S
VCBNZWRpYVNhbXBsZUFWRk9iakMoUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiYmKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCBNZWRpYVNhbXBsZUFWRk9iakMoQ01TYW1wbGVCdWZmZXJSZWYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCmluZGV4IDUwMDQz
NDBmZWY0OWU0MmViMmZkZjgzNGZmYzI3OTE1M2Y1ODE0ZTcuLjYxMDMwNTg2NDVhZDY3ZmViNjhk
Zjc2MzY0NDE2NTYzNDVjYjQ5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNh
bXBsZUFWRk9iakMubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2ltcG9ydCAiUGl4ZWxCdWZmZXIu
aCIKICNpbXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCIKKyNpbXBvcnQgIlZpZGVvRnJh
bWVDVi5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2ltcG9ydCA8
SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJheUlubGluZXMuaD4KICNpbXBvcnQgPHd0Zi9QcmludFN0
cmVhbS5oPgpAQCAtMTY1LDI1ICsxNjYsMTQgQEAgdWludDMyX3QgTWVkaWFTYW1wbGVBVkZPYmpD
Ojp2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QKICAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldFBp
eGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlcik7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1w
bGVWaWRlb0ZyYW1lPiBNZWRpYVNhbXBsZUFWRk9iakM6OnZpZGVvRnJhbWUoKSBjb25zdAorUmVm
UHRyPFZpZGVvRnJhbWVDVj4gTWVkaWFTYW1wbGVBVkZPYmpDOjp2aWRlb0ZyYW1lKCkgY29uc3QK
IHsKKyAgICBpZiAoIW1fc2FtcGxlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRv
IHBpeGVsQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBs
ZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fc2FtcGxlLmdldCgpKSk7CiAgICAgaWYgKCFwaXhlbEJ1
ZmZlcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBJbWFnZU9yaWVudGF0aW9u
IG9yaWVudGF0aW9uID0gWyZdIHsKLSAgICAgICAgLy8gU2FtcGxlIHRyYW5zZm9ybSBmaXJzdCBm
bGlwcyB4LWNvb3JkaW5hdGVzLCB0aGVuIHJvdGF0ZXMuCi0gICAgICAgIHN3aXRjaCAobV9yb3Rh
dGlvbikgewotICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOgot
ICAgICAgICAgICAgcmV0dXJuIG1fbWlycm9yZWQgPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5U
b3BSaWdodCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblRvcExlZnQ7Ci0gICAgICAgIGNhc2Ug
TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0OgotICAgICAgICAgICAgcmV0dXJuIG1f
bWlycm9yZWQgPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodEJvdHRvbSA6IEltYWdlT3Jp
ZW50YXRpb246Ok9yaWdpblJpZ2h0VG9wOwotICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRl
b1JvdGF0aW9uOjpVcHNpZGVEb3duOgotICAgICAgICAgICAgcmV0dXJuIG1fbWlycm9yZWQgPyBJ
bWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21MZWZ0IDogSW1hZ2VPcmllbnRhdGlvbjo6T3Jp
Z2luQm90dG9tUmlnaHQ7Ci0gICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246
OkxlZnQ6Ci0gICAgICAgICAgICByZXR1cm4gbV9taXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246
Ok9yaWdpbkxlZnRUb3AgOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0Qm90dG9tOwotICAg
ICAgICB9Ci0gICAgfSgpOwotICAgIHJldHVybiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgeyBSZXRh
aW5QdHIgeyBwaXhlbEJ1ZmZlciB9LCBvcmllbnRhdGlvbiB9OworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gVmlkZW9GcmFtZUNWOjpjcmVhdGUocHJlc2VudGF0aW9uVGltZSgp
LCBtX21pcnJvcmVkLCBtX3JvdGF0aW9uLCBSZXRhaW5QdHIgeyBwaXhlbEJ1ZmZlciB9KTsKIH0K
IAogc3RhdGljIGJvb2wgaXNDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MoQ0ZE
aWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnREaWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2Eu
bW0KaW5kZXggNDdkNzEwNjExMWM1YjYxY2NiNDVjMjdhMGQxZjM0NGExYTUxYzBmNC4uYTBiZmNm
MjcyOTUxNmUyNGU2Yzk5YjIwYTY0NTIzYzdjZTg5ZGM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRl
eHRHTENvY29hLm1tCkBAIC0zOCw2ICszOCw3IEBACiAjaW1wb3J0ICJQaXhlbEJ1ZmZlci5oIgog
I2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW1wb3J0ICJSdW50aW1lQXBwbGljYXRpb25D
aGVja3MuaCIKKyNpbXBvcnQgIlZpZGVvRnJhbWVDVi5oIgogI2ltcG9ydCA8Q29yZUdyYXBoaWNz
L0NHQml0bWFwQ29udGV4dC5oPgogI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KICNpbXBvcnQgPHBh
bC9zcGkvY29jb2EvTWV0YWxTUEkuaD4KQEAgLTc4Miw2ICs3ODMsNyBAQCBib29sIEdyYXBoaWNz
Q29udGV4dEdMQ29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKE1lZGlhUGxheWVyJiBwbGF5ZXIs
IFBsYXRmb3JtRwogICAgIGF1dG8gdmlkZW9GcmFtZSA9IHBsYXllci52aWRlb0ZyYW1lRm9yQ3Vy
cmVudFRpbWUoKTsKICAgICBpZiAoIXZpZGVvRnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBBU1NFUlQoaXM8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSkpOwogCiAgICAgYXV0byBj
b250ZXh0Q1YgPSBhc0NWKCk7CiAgICAgaWYgKCFjb250ZXh0Q1YpCkBAIC03ODksNyArNzkxLDcg
QEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRp
YVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUcKIAogICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0
aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5VU0VEKG91dHB1dFRhcmdldCwgb3V0cHV0VGFyZ2V0
ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJEKTsKLSAgICByZXR1cm4gY29udGV4dENW
LT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoKnZpZGVvRnJhbWUsIG91dHB1dFRleHR1cmUsIGxl
dmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6Rmxp
cFkoZmxpcFkpKTsKKyAgICByZXR1cm4gY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1
cmUoZG93bmNhc3Q8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSksIG91dHB1dFRleHR1cmUsIGxl
dmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6Rmxp
cFkoZmxpcFkpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmgKaW5kZXggYWMxNDc1ZTlk
YTM2ZWQxNDEzNTIyZTk2OTEyMmI2MzFlMzE5M2VmYS4uYzYwMmZiZWI3Mjk2OGRhZjY0MjE3ZjAx
Zjk1MGEyNGE3YzViZjhmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaApAQCAtMzAsNyArMzAsNyBAQAog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNs
YXNzIE1lZGlhU2FtcGxlVmlkZW9GcmFtZTsKK2NsYXNzIFZpZGVvRnJhbWVDVjsKIAogLy8gSW50
ZXJmYWNlIHRvIGludGVyYWN0IHdpdGggQ1Ygb2JqZWN0cyBhbmQgR3JhcGhpY3NDb250ZXh0R0wu
CiBjbGFzcyBHcmFwaGljc0NvbnRleHRHTENWIHsKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgog
ICAgIHVzaW5nIEZsaXBZID0gR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZOwogICAgIC8vIENvcGll
cyBDViBwaXhlbCBidWZmZXIgdG8gR3JhcGhpY3NDb250ZXh0R0wgVEVYVFVSRV8yRCB0ZXh0dXJl
IG9mIHRoZSBzYW1lIHNpemUgYXMgdGhlIHBpeGVsIGJ1ZmZlci4KICAgICAvLyBSZXR1cm5zIHRy
dWUgb24gc3VjY2Vzcy4KLSAgICB2aXJ0dWFsIGJvb2wgY29weVZpZGVvU2FtcGxlVG9UZXh0dXJl
KGNvbnN0IE1lZGlhU2FtcGxlVmlkZW9GcmFtZSYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4
dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZv
cm1hdCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgY29weVZp
ZGVvU2FtcGxlVG9UZXh0dXJlKGNvbnN0IFZpZGVvRnJhbWVDViYsIFBsYXRmb3JtR0xPYmplY3Qg
b3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdD
R0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpID0gMDsKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4
dEdMQ1ZDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWQ29jb2EuY3BwCmluZGV4IGE4M2NmYTI5NTcwODYwZjMzOTM0YTM4NzI4
NmQ2OWI1MjgwNGE1MDIuLjQyZjRkM2QzMDZjMmI0OWZkODVmODEzYzQzMmM4YWQxMWY1NzA1MzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNz
Q29udGV4dEdMQ1ZDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2lu
Y2x1ZGUgIkZvdXJDQy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiVmlkZW9GcmFtZUNWLmgiCiAjaW5jbHVkZSA8
cGFsL3NwaS9jZi9Db3JlVmlkZW9TUEkuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0lPU3Vy
ZmFjZVNQSS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtNTg2LDcgKzU4
Nyw3IEBAIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDVkNvY29h
KEdyYXBoaWNzQ29udGV4dEdMQ29jb2EmIG93bmVyCiAgICAgR0xfQmluZEZyYW1lYnVmZmVyKEdM
X0ZSQU1FQlVGRkVSLCBtX2ZyYW1lYnVmZmVyKTsKIH0KIAotYm9vbCBHcmFwaGljc0NvbnRleHRH
TENWQ29jb2E6OmNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShjb25zdCBNZWRpYVNhbXBsZVZpZGVv
RnJhbWUmIHZpZGVvRnJhbWUsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0xpbnQg
bGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUs
IEZsaXBZIHVucGFja0ZsaXBZKQorYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlW
aWRlb1NhbXBsZVRvVGV4dHVyZShjb25zdCBWaWRlb0ZyYW1lQ1YmIHZpZGVvRnJhbWUsIFBsYXRm
b3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZv
cm1hdCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIEZsaXBZIHVucGFja0ZsaXBZKQogewog
ICAgIGF1dG8gaW1hZ2UgPSB2aWRlb0ZyYW1lLnBpeGVsQnVmZmVyKCk7CiAgICAgLy8gRklYTUU6
IFRoaXMgY3VycmVudGx5IG9ubHkgc3VwcG9ydHMgJzQyMHYnIGFuZCAnNDIwZicgcGl4ZWwgZm9y
bWF0cy4gSW52ZXN0aWdhdGUgc3VwcG9ydGluZyBtb3JlIHBpeGVsIGZvcm1hdHMuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNz
Q29udGV4dEdMQ1ZDb2NvYS5oCmluZGV4IDc3ZGVkZDQ4NzI5MTE5NjExMzU3YmJkZGI2Y2M2OGMz
ODg5YmIwMDEuLjA2YTk5NWQ2MjE1NjE3Yzg3YjgxNDA0NmVhNDA3Njc0ZTg3MDJiMzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4
dEdMQ1ZDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dy
YXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKIAogICAg
IH5HcmFwaGljc0NvbnRleHRHTENWQ29jb2EoKSBmaW5hbDsKIAotICAgIGJvb2wgY29weVZpZGVv
U2FtcGxlVG9UZXh0dXJlKGNvbnN0IE1lZGlhU2FtcGxlVmlkZW9GcmFtZSYsIFBsYXRmb3JtR0xP
YmplY3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3Jt
YXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpIGZpbmFsOworICAgIGJv
b2wgY29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKGNvbnN0IFZpZGVvRnJhbWVDViYsIFBsYXRmb3Jt
R0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxG
b3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpIGZpbmFsOwogCiAg
ICAgdm9pZCBpbnZhbGlkYXRlS25vd25UZXh0dXJlQ29udGVudChHQ0dMdWludCB0ZXh0dXJlKTsK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9WaWRlb0ZyYW1lQ1YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1Zp
ZGVvRnJhbWVDVi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjNmM4ODhhNzM5ZDhiMDAyYTY5ZjRlYWQyYmRlNDdl
Yjc3YWM0YWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9WaWRlb0ZyYW1lQ1YuaApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFUSU9O
KQorCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgorI2luY2x1ZGUgIlZpZGVvRnJhbWUu
aCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK3VzaW5nIENWUGl4ZWxCdWZmZXJSZWYg
PSBzdHJ1Y3QgX19DVkJ1ZmZlcio7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVmlk
ZW9GcmFtZUNWIDogcHVibGljIFZpZGVvRnJhbWUgeworcHVibGljOgorICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBSZWY8VmlkZW9GcmFtZUNWPiBjcmVhdGUoTWVkaWFUaW1lIHByZXNlbnRhdGlv
blRpbWUsIGJvb2wgaXNNaXJyb3JlZCwgVmlkZW9Sb3RhdGlvbiwgUmV0YWluUHRyPENWUGl4ZWxC
dWZmZXJSZWY+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIH5WaWRlb0ZyYW1lQ1YoKTsKKworICAg
IENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsQnVm
ZmVyLmdldCgpOyB9CisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0Owor
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PFJlZlB0cjxWaWRlb0ZyYW1lQ1Y+PiBkZWNvZGUoRGVjb2RlciYpOworCisgICAgLy8gVmlkZW9G
cmFtZSBvdmVycmlkZXMuCisgICAgV2ViQ29yZTo6RmxvYXRTaXplIHByZXNlbnRhdGlvblNpemUo
KSBjb25zdCBmaW5hbDsKKyAgICB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QgZmlu
YWw7CisgICAgYm9vbCBpc0NWKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCitwcml2
YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvRnJhbWVDVihNZWRpYVRpbWUgcHJlc2VudGF0
aW9uVGltZSwgYm9vbCBpc01pcnJvcmVkLCBWaWRlb1JvdGF0aW9uLCBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4mJik7CisKKyAgICBjb25zdCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4g
bV9waXhlbEJ1ZmZlcjsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgVmlk
ZW9GcmFtZUNWOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVy
IDw8IG1fcHJlc2VudGF0aW9uVGltZSA8PCBtX2lzTWlycm9yZWQgPDwgbV9yb3RhdGlvbiA8PCBt
X3BpeGVsQnVmZmVyOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGQ6Om9wdGlv
bmFsPFJlZlB0cjxWaWRlb0ZyYW1lQ1Y+PiBWaWRlb0ZyYW1lQ1Y6OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQoreworICAgIGF1dG8gcHJlc2VudGF0aW9uVGltZSA9IGRlY29kZXIudGVtcGxhdGUg
ZGVjb2RlPE1lZGlhVGltZT4oKTsKKyAgICBhdXRvIGlzTWlycm9yZWQgPSBkZWNvZGVyLnRlbXBs
YXRlIGRlY29kZTxib29sPigpOworICAgIGF1dG8gcm90YXRpb24gPSBkZWNvZGVyLnRlbXBsYXRl
IGRlY29kZTxWaWRlb1JvdGF0aW9uPigpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBkZWNvZGVy
LnRlbXBsYXRlIGRlY29kZTxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+KCk7CisgICAgaWYg
KCFkZWNvZGVyLmlzVmFsaWQoKSB8fCAhKnBpeGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgIHJldHVybiBWaWRlb0ZyYW1lQ1Y6OmNyZWF0ZSgqcHJlc2VudGF0aW9u
VGltZSwgKmlzTWlycm9yZWQsICpyb3RhdGlvbiwgV1RGTW92ZSgqcGl4ZWxCdWZmZXIpKTsKK30K
KworfQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlZpZGVvRnJhbWVD
VikKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6VmlkZW9GcmFtZSYgdmlk
ZW9GcmFtZSkgeyByZXR1cm4gdmlkZW9GcmFtZS5pc0NWKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBp
c1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKSB7IHJldHVybiBp
czxXZWJDb3JlOjpWaWRlb0ZyYW1lPihtZWRpYVNhbXBsZSkgJiYgaXM8V2ViQ29yZTo6VmlkZW9G
cmFtZUNWPihkb3duY2FzdDxXZWJDb3JlOjpWaWRlb0ZyYW1lPihtZWRpYVNhbXBsZSkpOyB9CitT
UEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1
MTBjMjg4OTQ5OTc1YjgyZTI5YTI4NTE0ODlkYTgxYTg1NzkxMjYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YubW0KQEAg
LTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJWaWRlb0ZyYW1lQ1YuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZP
VU5EQVRJT04pCisjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitSZWY8VmlkZW9GcmFtZUNWPiBWaWRlb0ZyYW1lQ1Y6OmNyZWF0ZShNZWRpYVRp
bWUgcHJlc2VudGF0aW9uVGltZSwgYm9vbCBpc01pcnJvcmVkLCBWaWRlb1JvdGF0aW9uIHJvdGF0
aW9uLCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiBwaXhlbEJ1ZmZlcikKK3sKKyAgICBB
U1NFUlQocGl4ZWxCdWZmZXIpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvRnJhbWVD
VihwcmVzZW50YXRpb25UaW1lLCBpc01pcnJvcmVkLCByb3RhdGlvbiwgV1RGTW92ZShwaXhlbEJ1
ZmZlcikpKTsKK30KKworVmlkZW9GcmFtZUNWOjpWaWRlb0ZyYW1lQ1YoTWVkaWFUaW1lIHByZXNl
bnRhdGlvblRpbWUsIGJvb2wgaXNNaXJyb3JlZCwgVmlkZW9Sb3RhdGlvbiByb3RhdGlvbiwgUmV0
YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYgcGl4ZWxCdWZmZXIpCisgICAgOiBWaWRlb0ZyYW1l
KHByZXNlbnRhdGlvblRpbWUsIGlzTWlycm9yZWQsIHJvdGF0aW9uKQorICAgICwgbV9waXhlbEJ1
ZmZlcihXVEZNb3ZlKHBpeGVsQnVmZmVyKSkKK3sKK30KKworVmlkZW9GcmFtZUNWOjp+VmlkZW9G
cmFtZUNWKCkgPSBkZWZhdWx0OworCitXZWJDb3JlOjpGbG9hdFNpemUgVmlkZW9GcmFtZUNWOjpw
cmVzZW50YXRpb25TaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyBzdGF0aWNfY2FzdDxmbG9h
dD4oQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKG1fcGl4ZWxCdWZmZXIuZ2V0KCkpKSwgc3RhdGljX2Nh
c3Q8ZmxvYXQ+KENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQobV9waXhlbEJ1ZmZlci5nZXQoKSkpIH07
Cit9CisKK3VpbnQzMl90IFZpZGVvRnJhbWVDVjo6dmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUobV9waXhlbEJ1ZmZl
ci5nZXQoKSk7Cit9CisKK0ltYWdlT3JpZW50YXRpb24gVmlkZW9GcmFtZUNWOjpvcmllbnRhdGlv
bigpIGNvbnN0Cit7CisgICAgLy8gU2FtcGxlIHRyYW5zZm9ybSBmaXJzdCBmbGlwcyB4LWNvb3Jk
aW5hdGVzLCB0aGVuIHJvdGF0ZXMuCisgICAgc3dpdGNoIChtX3JvdGF0aW9uKSB7CisgICAgY2Fz
ZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZToKKyAgICAgICAgcmV0dXJuIG1faXNN
aXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IDogSW1hZ2VPcmllbnRh
dGlvbjo6T3JpZ2luVG9wTGVmdDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
OjpSaWdodDoKKyAgICAgICAgcmV0dXJuIG1faXNNaXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246
Ok9yaWdpblJpZ2h0Qm90dG9tIDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRUb3A7Cisg
ICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRlRG93bjoKKyAgICAgICAg
cmV0dXJuIG1faXNNaXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbUxlZnQg
OiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21SaWdodDsKKyAgICBjYXNlIE1lZGlhU2Ft
cGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0OgorICAgICAgICByZXR1cm4gbV9pc01pcnJvcmVkID8g
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luTGVmdFRvcCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdp
bkxlZnRCb3R0b207CisgICAgfQorfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TC5jcHAKaW5kZXggMDRjYTEwZTE4ZjE1MDgxNWYzZmQ2OTNmZmIzMjY5NTM0MjI3ZDk2YS4uNGE2
N2M1ZDE2ZTVhMGZmOWY5ODdmZDI0M2EyZGI5NThkM2RlMmE4YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0wuY3BwCkBAIC0yODcsNyArMjg3LDcgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWUKICAg
ICBVTlVTRURfVkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgQVNTRVJUX1VOVVNFRCh0
YXJnZXQsIHRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7CiAKLSAgICBz
dGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZTsKKyAgICBSZWZQ
dHI8VmlkZW9GcmFtZT4gdmlkZW9GcmFtZTsKICAgICBhdXRvIGdldFZpZGVvRnJhbWUgPSBbJl0g
ewogICAgICAgICBpZiAoIW1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTI5OCw3ICsyOTgsNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Ojpjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZQogCiAg
ICAgY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KFdURk1vdmUoZ2V0VmlkZW9GcmFtZSkpOwogCi0g
ICAgaWYgKCF2aWRlb0ZyYW1lKSB7CisgICAgaWYgKCF2aWRlb0ZyYW1lIHx8ICFpczxWaWRlb0Zy
YW1lQ1Y+KCp2aWRlb0ZyYW1lKSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zMDksNyArMzA5LDcgQEAgdm9pZCBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJJZGVudGlmaWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNvbXBsZXRpb25IYW5k
bGVyKGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKCp2aWRlb0ZyYW1lLCB0ZXh0
dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhpY3NDb250ZXh0
R0w6OkZsaXBZKGZsaXBZKSkpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRleHRDVi0+Y29w
eVZpZGVvU2FtcGxlVG9UZXh0dXJlKGRvd25jYXN0PFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUp
LCB0ZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhpY3ND
b250ZXh0R0w6OkZsaXBZKGZsaXBZKSkpOwogI2Vsc2UKICAgICBVTlVTRURfVkFSSUFCTEUobWVk
aWFQbGF5ZXJJZGVudGlmaWVyKTsKICAgICBVTlVTRURfVkFSSUFCTEUodGV4dHVyZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAKaW5kZXggNDJhMzIwNjU0YjAzZGY5YjQzOTc3Nzk0MjU2NDU4MjAwNmNkYTEx
MC4uMThkMDA0ZGY3ZDkyNjg4ZjUwY2I5MjEyNjUzZDE2NDYzY2E3MjNiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcApAQCAtNjcsNiArNjcsNyBAQAogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVk
ZSA8V2ViQ29yZS9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvVmlkZW9GcmFtZUNWLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xMDcs
NyArMTA4LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjppbnZhbGlkYXRlKCkKICAg
ICB9CiAgICAgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0ID0geyB9OwogI2lmIFVTRShBVkZP
VU5EQVRJT04pCi0gICAgbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBzdGQ6Om51bGxvcHQ7
CisgICAgbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBudWxscHRyOwogI2VuZGlmCiB9CiAK
QEAgLTg2OCwyMCArODY5LDI4IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Y3VycmVu
dFRpbWVDaGFuZ2VkKGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW1lKQogICAgIG1fd2ViUHJvY2Vz
c0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Q3Vy
cmVudFRpbWVDaGFuZ2VkKG1lZGlhVGltZSwgTW9ub3RvbmljVGltZTo6bm93KCksICFtZWRpYVBs
YXllclBhdXNlZE9yU3RhbGxlZCgpKSwgbV9pZCk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+JiYs
IGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorLy8gRklYTUU6IFRoaXMgd2lsbCBiZSB0dXJu
ZWQgaW50byBjcm9zcy1wbGF0Zm9ybSBjb2RlIHNvb24uCisjaWYgUExBVEZPUk0oQ09DT0EpCit2
b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hh
bmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6
OlZpZGVvRnJhbWVDVj4+JiYsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiByZXN1bHQ7CisgICAg
c3RkOjpvcHRpb25hbDxSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPj4gcmVzdWx0OwogICAg
IGJvb2wgY2hhbmdlZCA9IGZhbHNlOwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFT
YW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOworICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0Zy
YW1lPiB2aWRlb0ZyYW1lOwogICAgIGlmIChtX3BsYXllcikKICAgICAgICAgdmlkZW9GcmFtZSA9
IG1fcGxheWVyLT52aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKLSAgICBpZiAoIShtX3ZpZGVv
RnJhbWVGb3JDdXJyZW50VGltZSA9PSB2aWRlb0ZyYW1lKSkgeworICAgIGlmIChtX3ZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZSAhPSB2aWRlb0ZyYW1lKSB7CiAgICAgICAgIG1fdmlkZW9GcmFtZUZv
ckN1cnJlbnRUaW1lID0gdmlkZW9GcmFtZTsKICAgICAgICAgY2hhbmdlZCA9IHRydWU7Ci0gICAg
ICAgIHJlc3VsdCA9IFdURk1vdmUodmlkZW9GcmFtZSk7CisgICAgICAgIFJlZlB0cjxWaWRlb0Zy
YW1lQ1Y+IHZpZGVvRnJhbWVDVjsKKyAgICAgICAgaWYgKHZpZGVvRnJhbWUpIHsKKyAgICAgICAg
ICAgIEFTU0VSVChpczxWaWRlb0ZyYW1lQ1Y+KCp2aWRlb0ZyYW1lKSk7CisgICAgICAgICAgICB2
aWRlb0ZyYW1lQ1YgPSAmZG93bmNhc3Q8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSk7CisgICAg
ICAgIH0KKyAgICAgICAgcmVzdWx0ID0gV1RGTW92ZSh2aWRlb0ZyYW1lQ1YpOwogICAgIH0KICAg
ICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCksIGNoYW5nZWQpOwogfQorI2VuZGlm
CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dXBkYXRlQ2FjaGVkU3RhdGUoYm9vbCBm
b3JjZUN1cnJlbnRUaW1lVXBkYXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggOTMxNmI2NmFiMzU5
NjZlNWI2NDVkZDFjN2NlMGU4MTJmMjA2YTYzNy4uNzVlYWJkNDViMzFkMDM0Yjg0YzQ4ZmM2NmIy
Nzc5YTJlNTY0MzlhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC03OCw2ICs3OCwxMiBAQCBjbGFzcyBN
ZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDsKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOwogCiBz
dHJ1Y3QgRm91ckNDOworCitjbGFzcyBWaWRlb0ZyYW1lOworCisjaWYgUExBVEZPUk0oQ09DT0Ep
CitjbGFzcyBWaWRlb0ZyYW1lQ1Y7CisjZW5kaWYKIH0KIAogI2lmIFVTRShBVkZPVU5EQVRJT04p
CkBAIC0zMjcsOCArMzMzLDggQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2
b2lkIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6
Om9wdGlvbmFsPFdURjo6TWFjaFNlbmRSaWdodD4mJiwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xv
clNwYWNlKT4mJik7CiAgICAgdm9pZCBjb2xvclNwYWNlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlKT4mJik7CisgICAgdm9pZCB2aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlv
bmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiYmLCBib29sKT4mJik7CiAjZW5kaWYK
LSAgICB2b2lkIHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiYm
LCBib29sKT4mJik7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dn
ZXImIG1lZGlhUGxheWVyTG9nZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9sb2dnZXI7IH0KQEAgLTM4
NCw3ICszOTAsNyBAQCBwcml2YXRlOgogICAgIFNjb3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVl
c3QgbV9yZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0OwogCiAgICAgYm9vbCBtX29ic2VydmluZ1Rp
bWVDaGFuZ2VzIHsgZmFsc2UgfTsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlVmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CisgICAgUmVmUHRyPFdl
YkNvcmU6OlZpZGVvRnJhbWU+IG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwogI2lmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbV9sb2dnZXI7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNGU0ZmVjYTI4MzFhNGNkM2UzYTli
ZTc5MmFiMjA1YjFlMTNlZDI2Mi4uY2MxMzdhZGU1MTliYzZkNDcwNzU2Y2Y1NzAxZDA0NjZlMTVk
ZDc3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4KQEAgLTEyNSw4ICsxMjUs
OCBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllclByb3h5IE5vdFJlZkNvdW50ZWQgewog
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIE5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSAtPiAo
c3RkOjpvcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiBzZW5kUmlnaHQsIFdlYkNvcmU6OkRlc3RpbmF0
aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKSBTeW5jaHJvbm91cwogICAgIENvbG9yU3BhY2UoKSAt
PiAoV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UpIFN5bmNocm9ub3Vz
CisgICAgVmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCkgLT4gKHN0ZDo6b3B0aW9u
YWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+IHZpZGVvRnJhbWUsIGJvb2wgY2hhbmdl
ZCkgU3luY2hyb25vdXMKICNlbmRpZgotICAgIFZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hh
bmdlZCgpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZSwgYm9vbCBjaGFuZ2VkKSBTeW5jaHJvbm91cwogCiAgICAgUGxheUF0SG9zdFRp
bWUoTW9ub3RvbmljVGltZSB0aW1lKQogICAgIFBhdXNlQXRIb3N0VGltZShNb25vdG9uaWNUaW1l
IHRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENv
ZGVycy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAppbmRl
eCBhMzM0MmMzYmMzZTdlMjEzNDhmZTIwODg3Y2MxZGZlZjJiZjk1OTZjLi43MWU1MjI4YmY2MDg1
ZmVmZTAyNzhlNmIxYWYzNTU1OTM5NzhiOGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL0FyZ3VtZW50Q29kZXJzLmgKQEAgLTI2NSw2ICsyNjUsMzEgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgVT4gc3RydWN0IEFyZ3VtZW50Q29kZXI8c3RkOjpwYWlyPFQsIFU+PiB7
CiAgICAgfQogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
UmVmUHRyPFQ+PiB7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+CisgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlZlB0cjxVPiYgb2JqZWN0KQorICAg
IHsKKyAgICAgICAgaWYgKG9iamVjdCkKKyAgICAgICAgICAgIGVuY29kZXIgPDwgdHJ1ZSA8PCAq
b2JqZWN0OworICAgICAgICBlbHNlCisgICAgICAgICAgICBlbmNvZGVyIDw8IGZhbHNlOworICAg
IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFUgPSBUPgorICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFJlZlB0cjxVPj4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBh
dXRvIGhhc09iamVjdCA9IGRlY29kZXIudGVtcGxhdGUgZGVjb2RlPGJvb2w+KCk7CisgICAgICAg
IGlmICghaGFzT2JqZWN0KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAg
ICAgaWYgKCEqaGFzT2JqZWN0KQorICAgICAgICAgICAgcmV0dXJuIFJlZlB0cjxVPiB7IH07Cisg
ICAgICAgIC8vIERlY29kZXJzIG9mIFUgaGVsZCB3aXRoIFJlZlB0ciBkbyBub3QgcmV0dXJuIHN0
ZDo6b3B0aW9uYWw8VT4gYnV0CisgICAgICAgIC8vIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFU+Pi4g
V2UgY2Fubm90IHVzZSBgZGVjb2Rlci50ZW1wbGF0ZSBkZWNvZGU8VT4oKWAKKyAgICAgICAgLy8g
Q3VycmVudGx5IGV4cGVjdCAibW9kZXJuIGRlY29kZXIiIC1saWtlIGRlY29kZSBmdW5jdGlvbi4K
KyAgICAgICAgcmV0dXJuIFU6OmRlY29kZShkZWNvZGVyKTsKKyAgICB9Cit9OworCiB0ZW1wbGF0
ZTxzaXplX3QgaW5kZXgsIHR5cGVuYW1lLi4uIEVsZW1lbnRzPgogc3RydWN0IFR1cGxlRW5jb2Rl
ciB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmNwcAppbmRleCA4ZDllNWZmOTJhYzNiM2YwZWI3MTMzOWVmZThiNGJmM2Y0Mjk2NGRjLi5h
ZDFiN2YyYjU2Y2ZlNTM5OGQzMTFmYzkxZWQ4ZjJhMjI2MDA3YzRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwCkBAIC04MCw4ICs4MCw5IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotI2ltcG9ydCA8V2ViQ29yZS9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg+Ci0jaW1w
b3J0IDxXZWJDb3JlL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9GcmFtZUNW
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0xheWVyTWFuYWdlck9iakMuaD4KICNlbmRpZgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMDAyLDE0ICsxMDAzLDIxIEBAIGJvb2wgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2Vi
Q29yZTo6R3JhcGhpCiB9CiAjZW5kaWYKIAotc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNh
bXBsZVZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lKCkKK1JlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCiB7Ci0gICAgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHJlc3VsdDsKKy8vIEZJWE1FOiBUaGlz
IHdpbGwgYmUgbWFkZSBjcm9zcy1wbGF0Zm9ybSBhZ2FpbiBzb29uLiBUaGVyZSBhcmUgbm8gb3Ro
ZXIgcGxhdGZvcm1zIHVzaW5nIHRoaXMgYXQgdGhlIG1vbWVudC4KKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiByZXN1
bHQ7CiAgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7CiAgICAgaWYgKCFjb25uZWN0aW9uKCkuc2Vu
ZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlZpZGVvRnJhbWVGb3JDdXJy
ZW50VGltZUlmQ2hhbmdlZCgpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6Vmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkOjpSZXBseShyZXN1bHQsIGNoYW5nZWQpLCBt
X2lkKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBpZiAoY2hhbmdlZCkKLSAg
ICAgICAgbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBXVEZNb3ZlKHJlc3VsdCk7CisgICAg
ICAgIHJldHVybiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKKyAgICBpZiAoY2hhbmdlZCkg
eworICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgbV92aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUgPSBXVEZNb3ZlKCpyZXN1bHQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX3Zp
ZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IG51bGxwdHI7CisgICAgfQorI2VuZGlmCiAgICAgcmV0
dXJuIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaAppbmRleCAxYTZhMzQwMzQzZDE0MmVkZmRlZWEzNmIzNzRhOTlmOTkzZWZlYjkyLi4yOWY5
MTJkNGU4Yjg3YjU3YmExNTYyNGE2ZGM1ZTA2YjdjNWMxYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZVJl
bW90ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVv
RnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvRnJhbWVNZXRhZGF0YS5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CkBAIC0y
OTMsNyArMjk0LDcgQEAgcHJpdmF0ZToKICNpZiAhVVNFKEFWRk9VTkRBVElPTikKICAgICBib29s
IGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NH
TGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKSBmaW5hbDsKICNlbmRpZgotICAgIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKSBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZT4gdmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdl
PiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgV2ViQ29yZTo6RGVzdGlu
YXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSBmaW5hbDsKIApAQCAtNDYwLDcgKzQ2MSw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JLZXkgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV90aW1lSXNQcm9ncmVzc2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbmRlcmluZ0NhbkJl
QWNjZWxlcmF0ZWQgeyBmYWxzZSB9OwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFT
YW1wbGVWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6VmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZm
ZXJHYXRoZXJlZFdpdGhWaWRlb0ZyYW1lTWV0YWRhdGE7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y+IG1fcGl4ZWxCdWZmZXJDb25mb3JtZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVv
RnJhbWVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZVZpZGVvRnJhbWVQcm94eS5jcHAKaW5kZXggMjk0ZGQ5OWRkZDZiZGJjZThmM2IwYTYyOTZmZWM0
MzFkYTUxNDBmMS4uY2Y0ZWUxYjc3NjNmMmFmMjY5YTE2ZThkYTUwODljNGFhOGNlNGVmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlVmlkZW9GcmFtZVByb3h5LmNwcApAQCAtOTAsMzYgKzkwLDExIEBAIFJlbW90ZVZpZGVvRnJh
bWVSZWFkUmVmZXJlbmNlIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cmVhZCgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fcmVmZXJlbmNlVHJhY2tlci5yZWFkKCk7CiB9CiAKLU1lZGlhVGltZSBSZW1vdGVW
aWRlb0ZyYW1lUHJveHk6OnByZXNlbnRhdGlvblRpbWUoKSBjb25zdAotewotICAgIHJldHVybiBt
X3ByZXNlbnRhdGlvblRpbWU7Ci19Ci0KLVdlYkNvcmU6OlBsYXRmb3JtU2FtcGxlIFJlbW90ZVZp
ZGVvRnJhbWVQcm94eTo6cGxhdGZvcm1TYW1wbGUoKSBjb25zdAotewotICAgIHJldHVybiB7IFdl
YkNvcmU6OlBsYXRmb3JtU2FtcGxlOjpSZW1vdGVWaWRlb0ZyYW1lUHJveHlUeXBlLCB7IH0gfTsK
LX0KLQotTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojp2
aWRlb1JvdGF0aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9yb3RhdGlvbjsKLX0KLQotYm9v
bCBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnZpZGVvTWlycm9yZWQoKSBjb25zdAotewotICAgIHJl
dHVybiBtX2lzTWlycm9yZWQ7Ci19Ci0KIHVpbnQzMl90IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6
dmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGl4ZWxGb3JtYXQ7CiB9
CiAKLXN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBSZW1vdGVW
aWRlb0ZyYW1lUHJveHk6OnZpZGVvRnJhbWUoKSBjb25zdAotewotICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci19Ci0KICNpZiBQTEFURk9STShDT0NPQSkKIHZvaWQgUmVtb3RlVmlkZW9GcmFtZVBy
b3h5OjpnZXRQaXhlbEJ1ZmZlcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuaAppbmRleCA3MjA5NDA5
NzM5Njk5ZTM3MWEyM2E0YjFhNTFhN2ZkMDJiNTM2YjAxLi5mY2M0YTUwZmM0NzlhNjIxNWU0M2Qz
N2RlMTY2ODcxYThmZWJiMmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgKQEAgLTk0LDE0ICs5NCw4
IEBAIHByaXZhdGU6CiAgICAgUmVtb3RlVmlkZW9GcmFtZVByb3h5KElQQzo6Q29ubmVjdGlvbiYs
IFByb3BlcnRpZXMsIFBpeGVsQnVmZmVyQ2FsbGJhY2smJik7CiAKICAgICAvLyBXZWJDb3JlOjpW
aWRlb0ZyYW1lIG92ZXJyaWRlcy4KLSAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSgpIGNv
bnN0IGZpbmFsOwotICAgIFZpZGVvUm90YXRpb24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0IGZpbmFs
OwotICAgIGJvb2wgdmlkZW9NaXJyb3JlZCgpIGNvbnN0IGZpbmFsOwogICAgIFdlYkNvcmU6OkZs
b2F0U2l6ZSBwcmVzZW50YXRpb25TaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zaXplOyB9
Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVv
RnJhbWUoKSBjb25zdCBmaW5hbDsKICAgICB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0KCkgY29u
c3QgZmluYWw7Ci0gICAgLy8gRklYTUU6IFdoZW4gVmlkZW9GcmFtZSBpcyBub3QgTWVkaWFTYW1w
bGUsIHRoZXNlIHdpbGwgbm90IGJlIG5lZWRlZC4KLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVNhbXBs
ZSBwbGF0Zm9ybVNhbXBsZSgpIGNvbnN0IGZpbmFsOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgdm9pZCBnZXRQaXhlbEJ1ZmZlcigpOwpAQCAtMTA5LDkgKzEwMyw2IEBAIHByaXZhdGU6CiAK
ICAgICBjb25zdCBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgUmVtb3Rl
VmlkZW9GcmFtZVJlZmVyZW5jZVRyYWNrZXIgbV9yZWZlcmVuY2VUcmFja2VyOwotICAgIGNvbnN0
IE1lZGlhVGltZSBtX3ByZXNlbnRhdGlvblRpbWU7Ci0gICAgY29uc3QgYm9vbCBtX2lzTWlycm9y
ZWQ7Ci0gICAgY29uc3QgVmlkZW9Sb3RhdGlvbiBtX3JvdGF0aW9uOwogICAgIGNvbnN0IFdlYkNv
cmU6OkludFNpemUgbV9zaXplOwogICAgIHVpbnQzMl90IG1fcGl4ZWxGb3JtYXQgeyAwIH07CiAg
ICAgbXV0YWJsZSBMb2NrIG1fcGl4ZWxCdWZmZXJMb2NrOwpAQCAtMTQzLDkgKzEzNCw3IEBAIFRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIGNvbnN0IFJlbW90ZVZpZGVvRnJhbWVQ
cm94eTo6UHJvcGVydGllcyYpOwogfQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdl
YktpdDo6UmVtb3RlVmlkZW9GcmFtZVByb3h5KQotICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25z
dCBXZWJDb3JlOjpNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpIHsgcmV0dXJuIG1lZGlhU2FtcGxl
LnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBXZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZTo6UmVtb3Rl
VmlkZW9GcmFtZVByb3h5VHlwZTsgfQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQotU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpWaWRlb0ZyYW1lKQotICAgIHN0YXRp
YyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpIHsg
cmV0dXJuIG1lZGlhU2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBXZWJDb3JlOjpQbGF0
Zm9ybVNhbXBsZTo6UmVtb3RlVmlkZW9GcmFtZVByb3h5VHlwZTsgfQorICAgIHN0YXRpYyBib29s
IGlzVHlwZShjb25zdCBXZWJDb3JlOjpNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpIHsgcmV0dXJu
IGlzPFdlYkNvcmU6OlZpZGVvRnJhbWU+KG1lZGlhU2FtcGxlKSAmJiBkb3duY2FzdDxXZWJDb3Jl
OjpWaWRlb0ZyYW1lPihtZWRpYVNhbXBsZSkuaXNSZW1vdGVQcm94eSgpOyB9CiBTUEVDSUFMSVpF
X1RZUEVfVFJBSVRTX0VORCgpCisKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452180</attachid>
            <date>2022-02-16 04:24:32 -0800</date>
            <delta_ts>2022-02-16 04:43:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236701-20220216142430.patch</filename>
            <type>text/plain</type>
            <size>68253</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTliM2RkMTcwZjRjZmFj
NmExMTg2MzM3NzRjZTU4OWExNDJkN2NlNy4uODUwY2JhNmJmMDY5YWY2Njg5ZWRjMWY4ZTA4ZTFl
NmRhODlhM2E4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDIyLTAyLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFQbGF5ZXI6
OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHNob3VsZCByZXR1cm4gVmlkZW9GcmFtZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzAxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJlbmFtZSBDViBzcGVj
aWZpYyBwYXJ0cyBvZiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgdG8gVmlkZW9GcmFtZUNWLgorICAg
ICAgICBVc2UgVmlkZW9GcmFtZSBiYXNlIGNsYXNzIGluc3RlYWQgb2YgTWVkaWFTYW1wbGVWaWRl
b0ZyYW1lLgorICAgICAgICBWaWRlb0ZyYW1lIHN1cHBvcnRzIG11bHRpcGxlIHBvbHltb3JwaGlj
IHN1YmNsYXNzZXMuIE9uZSBzdWNoCisgICAgICAgIGlzIFJlbW90ZVZpZGVvRnJhbWVQcm94eSwg
d2hpY2ggd2lsbCBiZSB1c2VkIGluIHRoZSBmdXR1cmUgdG8KKyAgICAgICAgcmV0dXJuIHJlbW90
ZSBwcm94eSBvYmplY3RzIGluIHRoZXNlIGxvY2F0aW9ucy4KKworICAgICAgICBUaGlzIHBhdGNo
IGlzIG9ubHkgYSByZW5hbWUuIEl0IGNvbmNlcm5zIG9ubHkgdGhlIGluLXByb2Nlc3MKKyAgICAg
ICAgdXNhZ2Ugb2YgdmlkZW8gZnJhbWVzIHZpYSBpbi1wcm9jZXNzIFZpZGVvRnJhbWVDVi4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVNhbXBsZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGU6OnZpZGVvUGl4ZWxGb3JtYXQgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL1ZpZGVvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9GcmFtZTo6VmlkZW9GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lOjpwcmVz
ZW50YXRpb25UaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWU6OnZpZGVv
Um90YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZTo6dmlkZW9NaXJy
b3JlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lOjpwbGF0Zm9ybVNhbXBs
ZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vVmlkZW9GcmFtZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9GcmFtZTo6aXNSZW1vdGVQcm94eSBjb25zdCk6CisgICAgICAgIFRoaXMgbGVh
a3MgInJlbW90ZSIgY29uY2VwdCB0byBXZWJDb3JlIGxldmVsLiBIb3BlZnVsbHkKKyAgICAgICAg
aW4gdGhlIGZ1dHVyZSB0aGlzIGNhbiBiZSBzb2x2ZWQgaW4gYW5vdGhlciB3YXkuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb0ZyYW1lOjppc0NWIGNvbnN0KToKKyAgICAgICAgKGlzVHlwZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVWaWRlb0ZyYW1l
QVZGLm1tOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6dmlk
ZW9GcmFtZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdM
Q29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OnBpeGVsQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvRnJhbWVDVjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvRnJhbWVDVjo6ZGVjb2RlKToKKyAgICAgICAgKGlzVHlwZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvRnJhbWVDVjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWVDVjo6
VmlkZW9GcmFtZUNWKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWVDVjo6cHJlc2VudGF0
aW9uU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OnZpZGVvUGl4
ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZUNWOjpvcmllbnRh
dGlvbiBjb25zdCk6CisKIDIwMjItMDItMTYgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBVc2UgZHJtIHJlbmRlciBub2RlcyBpbiBH
Ym1EZXZpY2UgYW5kIG1ha2UgdGhlIGZkIGdsb2JhbCB0byB0aGUgcHJvY2VzcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA1MDE4MzUzYWMyOTE2NjZhMDJmYmU3YmE0Y2Y3NTVkYjI4NjMxMTBmLi4wNGJiMzE3YTM3ZTE4
NDJiZjlhYTM4YThlZWU4YTg4NGQ1NWVmYTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisy
MDIyLTAyLTE2ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWVkaWFQbGF5ZXI6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHNob3VsZCByZXR1cm4g
VmlkZW9GcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM2NzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXNlIGFkZGVkIFZpZGVvRnJhbWVDViBpbnN0ZWFkIG9mIHJlbW92ZWQgTWVkaWFTYW1wbGVW
aWRlb0ZyYW1lLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Ojpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCk6CisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPFJlZlB0cjxUPj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVm
UHRyPFQ+Pjo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuaDoKKyAgICAgICAgKGlzVHlw
ZSk6CisKIDIwMjItMDItMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgW21hY09TXSBBZGQgYW4gIk1hcmt1cCBJbWFnZSIgaXRlbSB0byB0aGUgc2hh
cmluZyBzZXJ2aWNlcyBwaWNrZXIgY29udGV4dCBtZW51CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBh
Yzc0NmE5ZTVlZjViNGE0ZDBkZmNmYTRkYzFhNDViOTFkYzU0MmVhLi5lMWQ5MDhjMjMyOWU1N2M3
YzJhNjFiZTM4ZWFlMzRkNjBjNjkzMzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE1MjYsNyAr
MTUyNiw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllckVudW1zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllcklkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNvdXJjZVByaXZhdGUuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFVc2FnZUluZm8uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMDI4MTRkMDIy
MmIyNmUyODk5YjhkYWNhZWQxYTQyZTU2YjU3NDE5NC4uNWI0YjU2NWMzOWFiYmZkZTJkNDE2ZjEz
ZGUyZmI1NDM3MjlmOTE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zMDQsNyArMzA0
LDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRy
YWNrUHJpdmF0ZUFWRi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKLXBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW0KIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcApAQCAt
NDE1LDYgKzQxNCw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1tCiBwbGF0
Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCiBwbGF0Zm9ybS9ncmFw
aGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9G
cmFtZUNWLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb2xvck1hdHJpeENvcmVJ
bWFnZUFwcGxpZXIubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNvbXBvbmVudFRy
YW5zZmVyQ29yZUltYWdlQXBwbGllci5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0Zp
bHRlckltYWdlQ29yZUltYWdlLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmI5ZmI3Y2MyMjE4OWYwMzQzMDIwY2Y2YzBmYTNk
NjY1ZGI5ZWIzOC4uZTU5YmE3Zjc2MWQwYjU0MDRiN2MwMGEyY2I0Y2QzMGJiYmQwZjUxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMjQwOSw3ICsyNDA5LDYgQEAKIAkJN0FGOUIyMEYxOENGQjVGNDAwQzY0QkVGIC8qIEpTVlRU
UmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0FGOUIyMEIxOENGQjVGMzAwQzY0QkVGIC8qIEpTVlRUUmVnaW9uTGlzdC5oICovOyB9Owog
CQk3QjEwMzM5RTI1NDk3MjE3MDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IxMDMzOUQyNTQ5NzIw
MTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjEwMzM5RjI1NDk3MjFFMDBDOEMxQUMgLyog
R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250
ZXh0R0xDVkNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJN0I0NDEwRTEyNzk1OEZDNTAwMEI0RjhBIC8qIE1lZGlhU2FtcGxlVmlkZW9GcmFt
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I0NDEw
REYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlhU2FtcGxlVmlkZW9GcmFtZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNUEzREFGMjdBQkY4QzUw
MDZDNkY5NyAvKiBWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QjVBM0RBRDI3QUJGOEM0MDA2QzZGOTcgLyogVmlkZW9GcmFtZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNjA5NERE
MjcwQzQ0QkQwMDY0ODM1QyAvKiBBTkdMRVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEFO
R0xFVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJN0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1
cmZhY2VTd2FwQ2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMjQyMiw2ICsyNDIxLDcgQEAKIAkJN0JCNjgwQkEyNUJBMUJFNDAwMkI4NzM4
IC8qIEdyYXBoaWNzQ2hlY2tzTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QkI2ODBCODI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NN
YWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
QkREQTMxRjI3NEZBMDIxMDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JEREEzMUQyNzRGOURB
NTAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkREQTM0QzI3NUEwMTMxMDAzODY1OUUg
LyogUHJvY2Vzc0lkZW50aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QkREQTM0OTI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0JFMzdG
ODcyN0JCQjcwODAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JFMzdGODYyN0JCQjZGRjAwN0E2Q0QzIC8qIFZp
ZGVvRnJhbWVDVi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdCRTc0MjczODFGQTkwNkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJC
RUQ4OTM2RjgxOEUyRjk5IC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CiAJCTdCRkY1
OUY0Mjc1NzcyNjcwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRkY1OUVGMjc1Nzcx
RTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAyOUM2RTI0OTNDOEY4MDAy
NjgyMDQgLyogQ29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0MwMjlDNkQyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE1MzAsOCAr
MTE1MzAsNiBAQAogCQk3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0
R0xDVkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjEwMzM5RDI1NDk3MjAxMDBDOEMxQUMgLyog
R3JhcGhpY3NDb250ZXh0R0xDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENW
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTYxOTEwMjcxOTg4MEUwMEM0MEVB
QyAvKiBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVW
aWRlb0ZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2FtcGxl
VmlkZW9GcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3QjQ0MTBFMjI3OTU4
RkRFMDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3QjVBM0RBQjI3QUJGOEM0MDA2QzZGOTcgLyogVmlkZW9GcmFtZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRlb0ZyYW1lLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I1QTNEQUQyN0FCRjhDNDAwNkM2Rjk3IC8qIFZpZGVv
RnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GcmFtZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNTI1NzEyRTkxMDAzODBDNzAgLyog
R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1NTUsNiArMTE1NTMsOCBAQAog
CQk3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAv
KiBQcm9jZXNzSWRlbnRpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJv
Y2Vzc0lkZW50aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRERBMzRCMjc1
QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJN0JFMzdGODUyN0JCQjZGRTAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvRnJhbWVDVi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JFMzdGODYyN0JCQjZGRjAwN0E2Q0QzIC8q
IFZpZGVvRnJhbWVDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Zy
YW1lQ1YuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JGRjU5RUYyNzU3NzFFODAw
NzczRDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5oOyBmaWxlRW5j
b2RpbmcgPSA0OyBwYXRoID0gRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRkY1OUYxMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5
Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0MwMTFGM0QyNEZBRDM2MDAwNUJFRjEwIC8qIFNldHRpbmdzLmNwcC5lcmIg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gU2V0dGluZ3MuY3BwLmVyYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4
NzgxLDcgKzE4NzgxLDYgQEAKIAkJCQkwNzFFNDk2RDFBRDVBQTBEMDA4QTUwQjQgLyogTWVkaWFQ
bGF5YmFja1RhcmdldENvY29hLm1tICovLAogCQkJCTA3NkYwRDA5MTJCODE5MjcwMEMyNkFBNCAv
KiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwICovLAogCQkJCTA3NkYwRDBBMTJC
ODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCAqLywKLQkJ
CQk3QjQ0MTBFMjI3OTU4RkRFMDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1t
ICovLAogCQkJCUNEQkVBRUFCMTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3Vw
QVZGT2JqQy5oICovLAogCQkJCUNEQkVBRUFBMTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVj
dGlvbkdyb3VwQVZGT2JqQy5tbSAqLywKIAkJCQk0MTAyNEZDODIzQ0YyNTRGMDBGREY5OEUgLyog
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCAqLywKQEAgLTI5MDQ3LDcgKzI5MDQ2LDYgQEAK
IAkJCQlDRDUyMDlFMzFCMEJEODM4MDA3NzE4NEUgLyogTWVkaWFQbGF5ZXJFbnVtcy5oICovLAog
CQkJCUY0MjkyNjE3MjUyNjRENDQwMDAwNzg5OCAvKiBNZWRpYVBsYXllcklkZW50aWZpZXIuaCAq
LywKIAkJCQkwNzlGNUU0QjBGM0JFQkVBMDA1RTA3ODIgLyogTWVkaWFQbGF5ZXJQcml2YXRlLmgg
Ki8sCi0JCQkJN0I0NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlhU2FtcGxlVmlkZW9GcmFt
ZS5oICovLAogCQkJCUNENjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVByaXZh
dGUuaCAqLywKIAkJCQlDRERDMUU3OTE4QTk1MkYzMDAyN0E5RDQgLyogTWVkaWFTb3VyY2VQcml2
YXRlQ2xpZW50LmggKi8sCiAJCQkJMDc2MTFEQjgyNDNGQjc1QzAwRDgwNzA0IC8qIE1lZGlhVXNh
Z2VJbmZvLmggKi8sCkBAIC0zMDQxNCw2ICszMDQxMiw4IEBACiAJCQkJMDc0NkQzMEEyMTQ2RUEz
NzAwM0RERjg0IC8qIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0gKi8sCiAJCQkJQ0Q3RDMzNDEx
QzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwICovLAogCQkJCUNE
N0QzMzQyMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi8sCisJ
CQkJN0JFMzdGODYyN0JCQjZGRjAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5oICovLAorCQkJCTdC
RTM3Rjg1MjdCQkI2RkUwMDdBNkNEMyAvKiBWaWRlb0ZyYW1lQ1YubW0gKi8sCiAJCQkpOwogCQkJ
cGF0aCA9IGN2OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTM2MjYxLDcgKzM2MjYx
LDYgQEAKIAkJCQlDRUVGQ0Q3QTE5REIzMUY3MDAzODc2RDcgLyogTWVkaWFSZXNvdXJjZUxvYWRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUJGOURCM0MxRDM5NzNBRDAwMjZBRUI3IC8qIE1lZGlh
U2FtcGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQjEyNEQ4RDFEMzgwQjcwMDBFQ0RGQjAgLyog
TWVkaWFTYW1wbGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKLQkJCQk3QjQ0MTBFMTI3OTU4RkM1
MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
REJFQUVBRDE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCBp
biBIZWFkZXJzICovLAogCQkJCUExN0QyNzVFMUVBQzU3OTgwMEJGMDFFNyAvKiBNZWRpYVNlbGVj
dGlvbk9wdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc3QkE1NzUyNjBGQTVGRTAwNzJGMTlG
IC8qIE1lZGlhU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNzg2Nyw2ICszNzg2Niw3IEBA
CiAJCQkJQkNBMjU3MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRpY2FsUG9zaXRpb25DYWNoZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGM0IyNTc5OUZBMTAwNjU2M0JCIC8qIFZpZGVvQ29u
ZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0I1QTNEQUYyN0FCRjhDNTAwNkM2Rjk3
IC8qIFZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCRTM3Rjg3MjdCQkI3MDgwMDdB
NkNEMyAvKiBWaWRlb0ZyYW1lQ1YuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxREVFRkI2MjcxOUJB
MUEwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
REVFRkIwMjcxOUIyOTAwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2Ny
ZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01l
ZGlhU2FtcGxlLmgKaW5kZXggYjA2NTA0ZjU3ZWU5MzZiOGUxOTg4NzFmMzU3Mjc2NTM1MzA0YWZk
My4uZjIxMDA0MzVjNDIxZGQzNTQ4MTNhYWE5MDFlZjA5YWJkZDkzNjBmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCkBAIC0yNiw3ICsyNiw2IEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgotI2luY2x1ZGUgIk1lZGlhU2FtcGxlVmlkZW9GcmFt
ZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlzLmg+CiAjaW5jbHVkZSA8
d3RmL0VudW1UcmFpdHMuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CkBAIC01MCw3ICs0
OSw3IEBAIHN0cnVjdCBQbGF0Zm9ybVNhbXBsZSB7CiAgICAgICAgIENNU2FtcGxlQnVmZmVyVHlw
ZSwKICAgICAgICAgR1N0cmVhbWVyU2FtcGxlVHlwZSwKICAgICAgICAgQnl0ZVJhbmdlU2FtcGxl
VHlwZSwKLSAgICAgICAgUmVtb3RlVmlkZW9GcmFtZVByb3h5VHlwZSwgLy8gRklYTUU6IFRvIGJl
IHJlbW92ZWQgd2hlbiBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRpYVNhbXBsZS4KKyAgICAgICAgVmlk
ZW9GcmFtZVR5cGUsIC8vIEZJWE1FOiBUbyBiZSByZW1vdmVkIHdoZW4gVmlkZW9GcmFtZSBpcyBu
b3QgTWVkaWFTYW1wbGUuCiAgICAgfSB0eXBlOwogICAgIHVuaW9uIHsKICAgICAgICAgY29uc3Qg
TW9ja1NhbXBsZUJveCogbW9ja1NhbXBsZUJveDsKQEAgLTEwOCw5ICsxMDcsNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCB7IHJldHVy
biBWaWRlb1JvdGF0aW9uOjpOb25lOyB9CiAgICAgdmlydHVhbCBib29sIHZpZGVvTWlycm9yZWQo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdWludDMyX3QgdmlkZW9QaXhl
bEZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSNpZiBkZWZpbmVkKEVOQUJMRV9WSURFTykg
JiYgRU5BQkxFX1ZJREVPCi0gICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlk
ZW9GcmFtZT4gdmlkZW9GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfTsKLSNl
bmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZpcnR1YWwgQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH07CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5jcHAKaW5kZXggZjA3NjliYTVlNTRhODgwYmU2MzkwOWE5
Y2RhMDMyODdhMzdkM2NmNC4uMmUzNDIxNTExODE1ZmIyOTAzOWE4MjI2MGZkYmM0ZTNiMWRlOGUx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5jcHAKQEAgLTMwLDEwICszMCwz
NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVZpZGVvRnJhbWU6OlZpZGVvRnJhbWUoKSA9
IGRlZmF1bHQ7CitWaWRlb0ZyYW1lOjpWaWRlb0ZyYW1lKE1lZGlhVGltZSBwcmVzZW50YXRpb25U
aW1lLCBib29sIGlzTWlycm9yZWQsIFZpZGVvUm90YXRpb24gcm90YXRpb24pCisgICAgOiBtX3By
ZXNlbnRhdGlvblRpbWUocHJlc2VudGF0aW9uVGltZSkKKyAgICAsIG1faXNNaXJyb3JlZChpc01p
cnJvcmVkKQorICAgICwgbV9yb3RhdGlvbihyb3RhdGlvbikKK3sKK30KIAogVmlkZW9GcmFtZTo6
flZpZGVvRnJhbWUoKSA9IGRlZmF1bHQ7CiAKK01lZGlhVGltZSBWaWRlb0ZyYW1lOjpwcmVzZW50
YXRpb25UaW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcmVzZW50YXRpb25UaW1lOworfQor
CitNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBWaWRlb0ZyYW1lOjp2aWRlb1JvdGF0aW9uKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9yb3RhdGlvbjsKK30KKworYm9vbCBWaWRlb0ZyYW1lOjp2
aWRlb01pcnJvcmVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pc01pcnJvcmVkOworfQorCitX
ZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZSBWaWRlb0ZyYW1lOjpwbGF0Zm9ybVNhbXBsZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIHsgV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OlZpZGVvRnJhbWVUeXBl
LCB7IH0gfTsKK30KKwogTWVkaWFUaW1lIFZpZGVvRnJhbWU6OmRlY29kZVRpbWUoKSBjb25zdAog
ewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFt
ZS5oCmluZGV4IGI2MzFmZDEzZTIyZTMxMjI2NjUwMDE0YmFmNzhkZWE5MGNhYTZmYjIuLjBmMDFk
NWQ1MGRmYTQ5MDJmN2JmMzU4NWU5NzU2ZjJmZGM1NzdjZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9WaWRlb0ZyYW1lLmgKQEAgLTM4LDggKzM4LDIzIEBAIGNsYXNzIFZpZGVvRnJhbWUgOiBwdWJs
aWMgTWVkaWFTYW1wbGUgewogcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIH5WaWRlb0ZyYW1l
KCk7CiAKKyAgICAvLyBXZWJDb3JlOjpNZWRpYVNhbXBsZSBvdmVycmlkZXMuCisgICAgV0VCQ09S
RV9FWFBPUlQgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWUoKSBjb25zdCBmaW5hbDsKKyAgICBX
RUJDT1JFX0VYUE9SVCBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCBmaW5hbDsK
KyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHZpZGVvTWlycm9yZWQoKSBjb25zdCBmaW5hbDsKKyAg
ICAvLyBGSVhNRTogV2hlbiBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRpYVNhbXBsZSwgdGhlc2Ugd2ls
bCBub3QgYmUgbmVlZGVkLgorICAgIFdFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OlBsYXRmb3JtU2Ft
cGxlIHBsYXRmb3JtU2FtcGxlKCkgY29uc3QgZmluYWw7CisKKyNpZiBVU0UoQVZGT1VOREFUSU9O
KQorICAgIHZpcnR1YWwgYm9vbCBpc1JlbW90ZVByb3h5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDVigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5k
aWYKKwogcHJvdGVjdGVkOgotICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvRnJhbWUoKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBWaWRlb0ZyYW1lKE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lLCBib29s
IGlzTWlycm9yZWQsIFZpZGVvUm90YXRpb24pOworICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IE1l
ZGlhVGltZSBtX3ByZXNlbnRhdGlvblRpbWU7CisgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgYm9v
bCBtX2lzTWlycm9yZWQ7CisgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgVmlkZW9Sb3RhdGlvbiBt
X3JvdGF0aW9uOwogCiBwcml2YXRlOgogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgbm90IGludGVu
ZGVkIHRvIGJlIHVzZWQgZm9yIHRoZXNlIG9iamVjdHMuCkBAIC02MCw0ICs3NSw3IEBAIHByaXZh
dGU6CiAKIH0KIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpWaWRlb0Zy
YW1lKQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpNZWRpYVNhbXBsZSYg
bWVkaWFTYW1wbGUpIHsgcmV0dXJuIG1lZGlhU2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9
PSBXZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZTo6VmlkZW9GcmFtZVR5cGU7IH0KK1NQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfRU5EKCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDBhYmMzMjIzOGQ2NDFhY2E0NWY3Mzk3NzU3
ZTRlNWUxNTFiYTdkYjUuLmVhZTRiZjBiYmNjNDMyMmI2MTcwMGM4NWQ4N2YxNzY4YzdmZGI5NjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAKQEAgLTEwODgsNyArMTA4OCw3IEBAIGJvb2wgTWVkaWFQbGF5ZXI6OmNvcHlWaWRlb1RleHR1
cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCogY29udGV4dCwKIAogI2VuZGlm
CiAKLXN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllcjo6dmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKK1JlZlB0cjxWaWRlb0ZyYW1lPiBNZWRpYVBsYXllcjo6
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT52aWRl
b0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDVmMGRhYTg2NmYyYzgyMzNhYzhjMTk0YTYxMzNk
OTczZjM0NDZmZTguLmIwMzU5MGJiZGM4YjFiYjY2NzEzZDgwZDE3MGU4ZDAzMDk2Y2FiZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAt
MzQsMTEgKzM0LDExIEBACiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgIk1lZGlh
UGxheWVyRW51bXMuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllcklkZW50aWZpZXIuaCIKLSNpbmNs
dWRlICJNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1UZXh0VHJhY2suaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bkRhdGEuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgIlZpZGVvRnJhbWUuaCIKICNp
bmNsdWRlICJWaWRlb0ZyYW1lTWV0YWRhdGEuaCIKICNpbmNsdWRlICJWaWRlb1BsYXliYWNrUXVh
bGl0eU1ldHJpY3MuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Gb3J3YXJkLmg+CkBAIC00
NzAsNyArNDcwLDcgQEAgcHVibGljOgogI2lmICFVU0UoQVZGT1VOREFUSU9OKQogICAgIGJvb2wg
Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiwgUGxh
dGZvcm1HTE9iamVjdCB0ZXh0dXJlLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdD
R0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIGJv
b2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSk7CiAjZW5kaWYKLSAgICBzdGQ6Om9wdGlv
bmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7Cisg
ICAgUmVmUHRyPFZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwogICAgIFJl
ZlB0cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpOwogICAgIERlc3Rp
bmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggZjlmZjRjYmYy
ODY5ZDkzMzEyMGVkZTAwZDAxNWU1YWRkZjQ3ODI5MS4uODA5YmUxNjUzMzIyNzIwNzY0ZmEwODE2
YzgzODhkYzMyYjU4MWQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTI5LDkgKzI5LDkgQEAKIAogI2luY2x1
ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgiCi0j
aW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2Uu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlICJWaWRlb0ZyYW1l
LmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVy
Lmg+CiAKQEAgLTE4MSw3ICsxODEsNyBAQCBwdWJsaWM6CiAjaWYgIVVTRShBVkZPVU5EQVRJT04p
CiAgICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFw
aGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dM
ZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKSB7IHJldHVybiBmYWxzZTsgfQog
I2VuZGlmCi0gICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CisgICAg
dmlydHVhbCBSZWZQdHI8VmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgUmVmUHRyPE5hdGl2ZUltYWdlPiBuYXRpdmVJ
bWFnZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgRGVz
dGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhU2FtcGxlVmlkZW9GcmFtZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxNDc0Y2ZiMTNmZmIxMTk2ZDNjMjQwNTBhMTYy
NmI3M2I0ODNlZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTYW1wbGVWaWRlb0ZyYW1l
LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFZJREVP
KQotI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKLQotI2lmIFVTRShBVkZPVU5EQVRJT04p
Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCi11c2luZyBDVlBpeGVsQnVmZmVyUmVmID0g
c3RydWN0IF9fQ1ZCdWZmZXIqOwotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xh
c3MgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lIHsKLXB1YmxpYzoKLSAgICBNZWRpYVNhbXBsZVZpZGVv
RnJhbWUoKSA9IGRlbGV0ZTsKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFdFQkNPUkVfRVhQ
T1JUIE1lZGlhU2FtcGxlVmlkZW9GcmFtZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiwg
SW1hZ2VPcmllbnRhdGlvbik7Ci0jZW5kaWYKLQotICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50
YXRpb24oKSBjb25zdCB7IHJldHVybiBtX29yaWVudGF0aW9uOyB9Ci0KLSNpZiBVU0UoQVZGT1VO
REFUSU9OKQotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIoKSBjb25zdCB7IHJldHVy
biBtX3BpeGVsQnVmZmVyLmdldCgpOyB9Ci0jZW5kaWYKLQotICAgIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBNZWRpYVNhbXBsZVZpZGVvRnJhbWUmIG90aGVyKSBjb25zdDsKLQotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZp
ZGVvRnJhbWU+IGRlY29kZShEZWNvZGVyJik7Ci0KLXByaXZhdGU6Ci0jaWYgVVNFKEFWRk9VTkRB
VElPTikKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlcjsKLSNl
bmRpZgotICAgIEltYWdlT3JpZW50YXRpb24gbV9vcmllbnRhdGlvbjsKLX07Ci0KLWlubGluZSBi
b29sIE1lZGlhU2FtcGxlVmlkZW9GcmFtZTo6b3BlcmF0b3I9PShjb25zdCBNZWRpYVNhbXBsZVZp
ZGVvRnJhbWUmIG90aGVyKSBjb25zdAotewotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgaWYg
KG1fcGl4ZWxCdWZmZXIgIT0gb3RoZXIubV9waXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotI2VuZGlmCi0gICAgcmV0dXJuIEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uKG90
aGVyLm1fb3JpZW50YXRpb24pID09IEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uKG1fb3Jp
ZW50YXRpb24pOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIE1lZGlhU2Ft
cGxlVmlkZW9GcmFtZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0jaWYgVVNF
KEFWRk9VTkRBVElPTikKLSAgICBlbmNvZGVyIDw8IG1fcGl4ZWxCdWZmZXI7Ci0gICAgZW5jb2Rl
ciA8PCBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbihtX29yaWVudGF0aW9uKTsKLSNlbHNl
Ci0gICAgVU5VU0VEX1BBUkFNKGVuY29kZXIpOwotI2VuZGlmCi19Ci0KLXRlbXBsYXRlPHR5cGVu
YW1lIERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVNh
bXBsZVZpZGVvRnJhbWU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotI2lmIFVTRShBVkZP
VU5EQVRJT04pCi0gICAgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+
IHBpeGVsQnVmZmVyOwotICAgIGRlY29kZXIgPj4gcGl4ZWxCdWZmZXI7Ci0gICAgaWYgKCFwaXhl
bEJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBzdGQ6Om9wdGlvbmFs
PEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uPiBvcmllbnRhdGlvbjsKLSAgICBkZWNvZGVy
ID4+IG9yaWVudGF0aW9uOwotICAgIGlmICghb3JpZW50YXRpb24pCi0gICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIE1lZGlhU2FtcGxlVmlkZW9GcmFtZSB7IFdURk1vdmUo
KnBpeGVsQnVmZmVyKSwgKm9yaWVudGF0aW9uIH07Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShk
ZWNvZGVyKTsKLSAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotI2VuZGlmCi19Ci0KLX0KLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhU2FtcGxlVmlkZW9GcmFtZUFWRi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW0KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0OTU5ODEyZjY2ZmNhNzA1NDE3YjAyYWY1NTFmZmMx
MzFhODQzNjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2FtcGxl
VmlkZW9GcmFtZUFWRi5tbQorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpZiBFTkFCTEUoVklERU8pCi0jaW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotTWVkaWFTYW1wbGVWaWRlb0ZyYW1lOjpNZWRpYVNh
bXBsZVZpZGVvRnJhbWUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYgcGl4ZWxCdWZmZXIs
IEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCi0gICAgOiBtX3BpeGVsQnVmZmVyKFdURk1v
dmUocGl4ZWxCdWZmZXIpKQotICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKLXsKLX0K
LQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCAzODM3NzJjNTA0NDkyOWI5
ZTUxNTc4NDE2ZGVmNjRmODc4ODAyMzY0Li4wMmYwOTNhOGUwOTQ2MGZmZWZjOGY5M2FjYTIzZDIy
Yzk2MWJjOWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0yNjIsNyArMjYyLDcgQEAgcHJp
dmF0ZToKICAgICBib29sIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpOwogICAgIGJvb2wgdmlkZW9P
dXRwdXRIYXNBdmFpbGFibGVGcmFtZSgpOwogICAgIHZvaWQgcGFpbnRXaXRoVmlkZW9PdXRwdXQo
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jik7Ci0gICAgc3RkOjpvcHRpb25hbDxN
ZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwor
ICAgIFJlZlB0cjxWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsK
ICAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5h
bDsKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGZpbmFsOwogICAgIHZv
aWQgd2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KaW5kZXggYWRiM2JkMWI3MGY0Mjk1OTgzYWQ1YTIyZTRiZWMyZjY1MGQwNzc3YS4u
YjE4NWU5NWU3ZDZkMWEwMzc4NmM4OWM4ZmRlOTM1ZGFkOWU3MmZlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCkBAIC02OCw2ICs2OCw3IEBACiAjaW1wb3J0ICJTb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmgiCiAjaW1wb3J0ICJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIgogI2ltcG9ydCAiVVRJ
VXRpbGl0aWVzLmgiCisjaW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIKICNpbXBvcnQgIlZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5oIgogI2ltcG9ydCAiVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgiCiAj
aW1wb3J0ICJXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCIKQEAgLTI3MjIsMTIgKzI3MjMsMTIg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhWaWRl
b091dHB1dChHcmFwaGljc0NvbnRleHQmIGMKIAogfQogCi1zdGQ6Om9wdGlvbmFsPE1lZGlhU2Ft
cGxlVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lKCkKK1JlZlB0cjxWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewogICAgIHVw
ZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpOwogICAgIGlmICghbV9sYXN0UGl4ZWxCdWZmZXIpCi0gICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIE1lZGlhU2FtcGxlVmlkZW9GcmFt
ZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3JpZW50YXRpb246Ok5v
bmUgfTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFZpZGVvRnJhbWVDVjo6
Y3JlYXRlKGN1cnJlbnRNZWRpYVRpbWUoKSwgZmFsc2UsIFZpZGVvRnJhbWVDVjo6VmlkZW9Sb3Rh
dGlvbjo6Tm9uZSwgUmV0YWluUHRyIHsgbV9sYXN0UGl4ZWxCdWZmZXIgfSk7CiB9CiAKIFJlZlB0
cjxOYXRpdmVJbWFnZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bmF0aXZl
SW1hZ2VGb3JDdXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IGJjYWQx
MjU0MzYzYTE4N2M2OGEzMzY4ZmE3YTdhMTQ4NTE1YjgyZTUuLjVlMTMwYWYxYWIxNDUzNzdjNGFi
NDJjNGE0YmQ2NjJjNWY3NjljYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0yMjIs
NyArMjIyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUxhc3RJbWFnZSgpOwogICAgIHZv
aWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKLSAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlk
ZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CisgICAgUmVmUHRyPFZp
ZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIERlc3RpbmF0
aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkgZmluYWw7CiAKICAgICBib29sIHN1cHBvcnRzQWNj
ZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5tbQppbmRleCBlOTVmOGMzY2FjZjBhZGUxODExZjExYmFlNjgzYmU0YjVmYjE1NTMzLi43NTRi
MjA3ZjY3NTEyYTVhYTA5MjQwNzJhZDMwOTFhNjU4MDU3NzE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJNZWRpYVNvdXJjZVByaXZhdGVD
bGllbnQuaCIKICNpbXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCIKICNpbXBvcnQgIlRl
eHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCisjaW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIKICNpbXBv
cnQgIlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oIgogI2ltcG9ydCAiV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZBc3NldC5oPgpAQCAtNzI1LDcg
KzcyNiw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYWlu
dEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZl
SW1hZ2UoKmltYWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCBvdXRwdXRSZWN0LCBpbWFnZVJlY3QpOwog
fQogCi1zdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQorUmVmUHRy
PFZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6dmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICAvLyBXZSBoYXZlIGJlZW4gYXNrZWQgdG8gcGFp
bnQgaW50byBhIFdlYkdMIGNhbnZhcywgc28gdGFrZSB0aGF0IGFzIGEgc2lnbmFsIHRvIGNyZWF0
ZQogICAgIC8vIGEgZGVjb21wcmVzc2lvbiBzZXNzaW9uLCBldmVuIGlmIHRoYXQgbWVhbnMgdGhl
IG5hdGl2ZSB2aWRlbyBjYW4ndCBhbHNvIGJlIGRpc3BsYXllZApAQCAtNzM4LDggKzczOSw4IEBA
IHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvCiAgICAgaWYgKCFtX2lzR2F0aGVyaW5nVmlkZW9GcmFt
ZU1ldGFkYXRhKQogICAgICAgICB1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKTsKICAgICBpZiAoIW1f
bGFzdFBpeGVsQnVmZmVyKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVy
biBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgeyBSZXRhaW5QdHIgeyBtX2xhc3RQaXhlbEJ1ZmZlciB9
LCBJbWFnZU9yaWVudGF0aW9uOjpOb25lIH07CisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBWaWRlb0ZyYW1lQ1Y6OmNyZWF0ZShjdXJyZW50TWVkaWFUaW1lKCksIGZhbHNlLCBW
aWRlb0ZyYW1lQ1Y6OlZpZGVvUm90YXRpb246Ok5vbmUsIFJldGFpblB0ciB7IG1fbGFzdFBpeGVs
QnVmZmVyIH0pOwogfQogCiBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpjb2xvclNwYWNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgK
aW5kZXggNTE2ZGNkYTk2ODY3Zjc1OWZhYzVlMjA0MDkyNzVjYzA4OWMwYjMxOC4uZmY1MWZjYTc3
NmY4OTdmNTY1NDQ1Mzg0N2IwYTFlZDg0OGNjMzRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgKQEAgLTE0Myw3ICsxNDMsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwYWludChHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3Vy
cmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92
ZXJyaWRlOwotICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0Zy
YW1lRm9yQ3VycmVudFRpbWUoKSBvdmVycmlkZTsKKyAgICBSZWZQdHI8VmlkZW9GcmFtZT4gdmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgb3ZlcnJpZGU7CiAgICAgRGVzdGluYXRpb25Db2xvclNw
YWNlIGNvbG9yU3BhY2UoKSBvdmVycmlkZTsKICAgICBib29sIG1ldGFEYXRhQXZhaWxhYmxlKCkg
Y29uc3QgeyByZXR1cm4gbV9tZWRpYVN0cmVhbVByaXZhdGUgJiYgbV9yZWFkeVN0YXRlID49IE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGE7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLm1tCmluZGV4IDQyZmQxNzQ4N2VhNmNkMTcxMDUwNTA1ZmY1ZjNmZjVlZGZiZTdlMTUu
LjI1ZmFkOTA5MTBhYjVlNGIzZWVmMDlkYjQ3ZTY5ZjZlMWI4MDJlMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMubW0KQEAgLTMwLDkgKzMwLDEwIEBACiAKICNpbXBvcnQgIkF1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTdHJlYW0uaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCi0jaW1w
b3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5o
IgorI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFQbGF5ZXIuaCIKKyNpbXBvcnQg
Ik1lZGlhU2FtcGxlQVZGT2JqQy5oIgogI2ltcG9ydCAiTWVkaWFTZXNzaW9uTWFuYWdlckNvY29h
LmgiCiAjaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNpbXBvcnQgIlBpeGVsQnVmZmVy
Q29uZm9ybWVyQ1YuaCIKQEAgLTEwMjIsMTUgKzEwMjMsMTggQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBo
aWNzQ28KICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqaW1hZ2UsIGltYWdlUmVjdC5zaXpl
KCksIHRyYW5zZm9ybWVkRGVzdFJlY3QsIGltYWdlUmVjdCk7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8
TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCitSZWZQdHI8VmlkZW9GcmFtZT4gTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUo
KQogewogICAgIGlmIChtX2Rpc3BsYXlNb2RlID09IE5vbmUgfHwgIW1ldGFEYXRhQXZhaWxhYmxl
KCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIGlmIChtX2Rpc3BsYXlNb2RlID09IFBhaW50SXRCbGFjaykKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFtX2ltYWdl
UGFpbnRlci5tZWRpYVNhbXBsZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBy
ZXR1cm4gbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUtPnZpZGVvRnJhbWUoKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGlzPFZpZGVvRnJhbWU+KCptX2ltYWdlUGFpbnRlci5t
ZWRpYVNhbXBsZSkpCisgICAgICAgIHJldHVybiAmZG93bmNhc3Q8VmlkZW9GcmFtZT4oKm1faW1h
Z2VQYWludGVyLm1lZGlhU2FtcGxlKTsKKyAgICBBU1NFUlQoaXM8TWVkaWFTYW1wbGVBVkZPYmpD
PigqbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8TWVk
aWFTYW1wbGVBVkZPYmpDPigqbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUpLnZpZGVvRnJhbWUo
KTsKIH0KIAogRGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6Y29sb3JTcGFjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5oCmluZGV4IDViNGY3ZjAwZGIzM2E1YmNkZjY1NmM2MDIyZjE0ODM0ZjQxYzU5
MDYuLjU4MTRjZjYzNWZlZDllZTA5NTFiMTI1ZTVjY2Y4MzQ0NDg0OTRkNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
U2FtcGxlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCkBAIC0zNSw2ICszNSw3IEBAIHVz
aW5nIENWUGl4ZWxCdWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1ZmZlcio7CiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFBpeGVsQnVmZmVyOworY2xhc3MgVmlkZW9GcmFtZUNWOwogCiBjbGFz
cyBNZWRpYVNhbXBsZUFWRk9iakMgOiBwdWJsaWMgTWVkaWFTYW1wbGUgewogcHVibGljOgpAQCAt
NzEsNyArNzIsNiBAQCBwdWJsaWM6CiAgICAgVmlkZW9Sb3RhdGlvbiB2aWRlb1JvdGF0aW9uKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9yb3RhdGlvbjsgfQogICAgIGJvb2wgdmlkZW9NaXJy
b3JlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbWlycm9yZWQ7IH0KICAgICBXRUJDT1JF
X0VYUE9SVCB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QgZmluYWw7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJh
bWUoKSBjb25zdCBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCBDVlBpeGVsQnVmZmVyUmVmIHBp
eGVsQnVmZmVyKCkgY29uc3QgZmluYWw7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVm
ZmVyKCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGUuZ2V0KCk7IH0KIApAQCAtODAsNiArODAsOCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEJ5dGVSYW5nZU9mZnNldChzaXplX3QpOwogCisgICAg
Ly8gRklYTUU6IFRvIGJlIHJlbW92ZWQgb25jZSBWaWRlb0ZyYW1lIGlzIG5vdCBhIE1lZGlhU2Ft
cGxlLgorICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxWaWRlb0ZyYW1lQ1Y+IHZpZGVvRnJhbWUo
KSBjb25zdDsKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVNhbXBsZUFWRk9i
akMoUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBN
ZWRpYVNhbXBsZUFWRk9iakMoQ01TYW1wbGVCdWZmZXJSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVB
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCmluZGV4IDUwMDQzNDBmZWY0OWU0MmViMmZkZjgz
NGZmYzI3OTE1M2Y1ODE0ZTcuLjYxMDMwNTg2NDVhZDY3ZmViNjhkZjc2MzY0NDE2NTYzNDVjYjQ5
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2ltcG9ydCAiUGl4ZWxCdWZmZXIuaCIKICNpbXBvcnQgIlBpeGVs
QnVmZmVyQ29uZm9ybWVyQ1YuaCIKKyNpbXBvcnQgIlZpZGVvRnJhbWVDVi5oIgogI2ltcG9ydCA8
SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvVHlw
ZWRBcnJheUlubGluZXMuaD4KICNpbXBvcnQgPHd0Zi9QcmludFN0cmVhbS5oPgpAQCAtMTY1LDI1
ICsxNjYsMTQgQEAgdWludDMyX3QgTWVkaWFTYW1wbGVBVkZPYmpDOjp2aWRlb1BpeGVsRm9ybWF0
KCkgY29uc3QKICAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhl
bEJ1ZmZlcik7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRp
YVNhbXBsZUFWRk9iakM6OnZpZGVvRnJhbWUoKSBjb25zdAorUmVmUHRyPFZpZGVvRnJhbWVDVj4g
TWVkaWFTYW1wbGVBVkZPYmpDOjp2aWRlb0ZyYW1lKCkgY29uc3QKIHsKKyAgICBpZiAoIW1fc2Ft
cGxlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3Rh
dGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVm
ZmVyKG1fc2FtcGxlLmdldCgpKSk7CiAgICAgaWYgKCFwaXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uID0gWyZd
IHsKLSAgICAgICAgLy8gU2FtcGxlIHRyYW5zZm9ybSBmaXJzdCBmbGlwcyB4LWNvb3JkaW5hdGVz
LCB0aGVuIHJvdGF0ZXMuCi0gICAgICAgIHN3aXRjaCAobV9yb3RhdGlvbikgewotICAgICAgICBj
YXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOgotICAgICAgICAgICAgcmV0dXJu
IG1fbWlycm9yZWQgPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Ub3BSaWdodCA6IEltYWdlT3Jp
ZW50YXRpb246Ok9yaWdpblRvcExlZnQ7Ci0gICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVv
Um90YXRpb246OlJpZ2h0OgotICAgICAgICAgICAgcmV0dXJuIG1fbWlycm9yZWQgPyBJbWFnZU9y
aWVudGF0aW9uOjpPcmlnaW5SaWdodEJvdHRvbSA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblJp
Z2h0VG9wOwotICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVE
b3duOgotICAgICAgICAgICAgcmV0dXJuIG1fbWlycm9yZWQgPyBJbWFnZU9yaWVudGF0aW9uOjpP
cmlnaW5Cb3R0b21MZWZ0IDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9tUmlnaHQ7Ci0g
ICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQ6Ci0gICAgICAgICAg
ICByZXR1cm4gbV9taXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkxlZnRUb3AgOiBJ
bWFnZU9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0Qm90dG9tOwotICAgICAgICB9Ci0gICAgfSgpOwot
ICAgIHJldHVybiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgeyBSZXRhaW5QdHIgeyBwaXhlbEJ1ZmZl
ciB9LCBvcmllbnRhdGlvbiB9OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
VmlkZW9GcmFtZUNWOjpjcmVhdGUocHJlc2VudGF0aW9uVGltZSgpLCBtX21pcnJvcmVkLCBtX3Jv
dGF0aW9uLCBSZXRhaW5QdHIgeyBwaXhlbEJ1ZmZlciB9KTsKIH0KIAogc3RhdGljIGJvb2wgaXND
TVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MoQ0ZEaWN0aW9uYXJ5UmVmIGF0dGFj
aG1lbnREaWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KaW5kZXggMzZlOGYwZmIw
MjkzNzdiNGVmZmU0MDUzNTIzN2U1ODIyMmZiZjc3MS4uNjc2MjZiZmRmZjhhMDM0ZWQ5YTFjYTU0
Zjk0Y2I2MTQ4YTQ5MmVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0z
Niw2ICszNiw3IEBACiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJQcm9jZXNzSWRlbnRp
dHkuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgorI2ltcG9ydCAiVmlk
ZW9GcmFtZUNWLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAj
aW1wb3J0IDxNZXRhbC9NZXRhbC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9NZXRhbFNQSS5o
PgpAQCAtNzkwLDYgKzc5MSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRl
eHR1cmVGcm9tTWVkaWEoTWVkaWFQbGF5ZXImIHBsYXllciwgUGxhdGZvcm1HCiAgICAgYXV0byB2
aWRlb0ZyYW1lID0gcGxheWVyLnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwogICAgIGlmICgh
dmlkZW9GcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIEFTU0VSVChpczxWaWRlb0Zy
YW1lQ1Y+KCp2aWRlb0ZyYW1lKSk7CiAKICAgICBhdXRvIGNvbnRleHRDViA9IGFzQ1YoKTsKICAg
ICBpZiAoIWNvbnRleHRDVikKQEAgLTc5Nyw3ICs3OTksNyBAQCBib29sIEdyYXBoaWNzQ29udGV4
dEdMQ29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKE1lZGlhUGxheWVyJiBwbGF5ZXIsIFBsYXRm
b3JtRwogCiAgICAgVU5VU0VEX1ZBUklBQkxFKHByZW11bHRpcGx5QWxwaGEpOwogICAgIEFTU0VS
VF9VTlVTRUQob3V0cHV0VGFyZ2V0LCBvdXRwdXRUYXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0R0w6
OlRFWFRVUkVfMkQpOwotICAgIHJldHVybiBjb250ZXh0Q1YtPmNvcHlWaWRlb1NhbXBsZVRvVGV4
dHVyZSgqdmlkZW9GcmFtZSwgb3V0cHV0VGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBm
b3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpOworICAgIHJldHVy
biBjb250ZXh0Q1YtPmNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShkb3duY2FzdDxWaWRlb0ZyYW1l
Q1Y+KCp2aWRlb0ZyYW1lKSwgb3V0cHV0VGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBm
b3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBo
aWNzQ29udGV4dEdMQ1YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dy
YXBoaWNzQ29udGV4dEdMQ1YuaAppbmRleCBhYzE0NzVlOWRhMzZlZDE0MTM1MjJlOTY5MTIyYjYz
MWUzMTkzZWZhLi5jNjAyZmJlYjcyOTY4ZGFmNjQyMTdmMDFmOTUwYTI0YTdjNWJmOGY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRl
eHRHTENWLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhp
Y3NDb250ZXh0R0xDVi5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0R0wuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgTWVkaWFTYW1wbGVWaWRlb0Zy
YW1lOworY2xhc3MgVmlkZW9GcmFtZUNWOwogCiAvLyBJbnRlcmZhY2UgdG8gaW50ZXJhY3Qgd2l0
aCBDViBvYmplY3RzIGFuZCBHcmFwaGljc0NvbnRleHRHTC4KIGNsYXNzIEdyYXBoaWNzQ29udGV4
dEdMQ1YgewpAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgRmxpcFkgPSBHcmFw
aGljc0NvbnRleHRHTDo6RmxpcFk7CiAgICAgLy8gQ29waWVzIENWIHBpeGVsIGJ1ZmZlciB0byBH
cmFwaGljc0NvbnRleHRHTCBURVhUVVJFXzJEIHRleHR1cmUgb2YgdGhlIHNhbWUgc2l6ZSBhcyB0
aGUgcGl4ZWwgYnVmZmVyLgogICAgIC8vIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgotICAgIHZp
cnR1YWwgYm9vbCBjb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoY29uc3QgTWVkaWFTYW1wbGVWaWRl
b0ZyYW1lJiwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50IGxldmVsLCBH
Q0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBG
bGlwWSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoY29u
c3QgVmlkZW9GcmFtZUNWJiwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50
IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51
bSB0eXBlLCBGbGlwWSkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5j
cHAKaW5kZXggMmM5OGY5ZDkyOTIzYzA0OWE5NGIzNDliNGY3NzUyOTQ3NzE5ZTIyOC4uYWY0YmM4
MWIyYWY4NWFhYzAzZGRkZjBmNzdjOTk3ZmRlNjMyN2ZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRH
TENWQ29jb2EuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRm91ckNDLmgiCiAjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJWaWRlb0ZyYW1lQ1YuaCIKICNpbmNsdWRlIDxwYWwvc3BpL2NmL0NvcmVWaWRlb1NQ
SS5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvSU9TdXJmYWNlU1BJLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC01ODUsNyArNTg2LDcgQEAgR3JhcGhpY3NDb250ZXh0
R0xDVkNvY29hOjpHcmFwaGljc0NvbnRleHRHTENWQ29jb2EoR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YSYgb3duZXIKICAgICBHTF9CaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZnJhbWVi
dWZmZXIpOwogfQogCi1ib29sIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVZpZGVvU2Ft
cGxlVG9UZXh0dXJlKGNvbnN0IE1lZGlhU2FtcGxlVmlkZW9GcmFtZSYgdmlkZW9GcmFtZSwgUGxh
dGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFs
Rm9ybWF0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgRmxpcFkgdW5wYWNrRmxpcFkpCiti
b29sIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKGNv
bnN0IFZpZGVvRnJhbWVDViYgdmlkZW9GcmFtZSwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0
dXJlLCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsRm9ybWF0LCBHTGVudW0gZm9ybWF0LCBH
TGVudW0gdHlwZSwgRmxpcFkgdW5wYWNrRmxpcFkpCiB7CiAgICAgYXV0byBpbWFnZSA9IHZpZGVv
RnJhbWUucGl4ZWxCdWZmZXIoKTsKICAgICAvLyBGSVhNRTogVGhpcyBjdXJyZW50bHkgb25seSBz
dXBwb3J0cyAnNDIwdicgYW5kICc0MjBmJyBwaXhlbCBmb3JtYXRzLiBJbnZlc3RpZ2F0ZSBzdXBw
b3J0aW5nIG1vcmUgcGl4ZWwgZm9ybWF0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmgKaW5k
ZXggOWUxYjQ0NDlkM2I0YmI5ZjVjMGQ3YWU4ZDg1ZjMwZWYxZDA0YmE4YS4uNzYwODlkY2FiNDIz
ZDk1MDkxMDA1ZTY3OGYwM2FjZDNkYTcyYjE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29h
LmgKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogCiAgICAgfkdyYXBoaWNzQ29udGV4dEdMQ1ZD
b2NvYSgpIGZpbmFsOwogCi0gICAgYm9vbCBjb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoY29uc3Qg
TWVkaWFTYW1wbGVWaWRlb0ZyYW1lJiwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBH
Q0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBH
Q0dMZW51bSB0eXBlLCBGbGlwWSkgZmluYWw7CisgICAgYm9vbCBjb3B5VmlkZW9TYW1wbGVUb1Rl
eHR1cmUoY29uc3QgVmlkZW9GcmFtZUNWJiwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJl
LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0
LCBHQ0dMZW51bSB0eXBlLCBGbGlwWSkgZmluYWw7CiAKICAgICB2b2lkIGludmFsaWRhdGVLbm93
blRleHR1cmVDb250ZW50KEdDR0x1aW50IHRleHR1cmUpOwogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWM2Yzg4OGE3MzlkOGIwMDJhNjlmNGVhZDJiZGU0N2ViNzdhYzRhYgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5o
CkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCisKKyNpbmNsdWRlICJJbWFnZU9y
aWVudGF0aW9uLmgiCisjaW5jbHVkZSAiVmlkZW9GcmFtZS5oIgorI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KKwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBWaWRlb0ZyYW1lQ1YgOiBwdWJsaWMgVmlk
ZW9GcmFtZSB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxWaWRlb0Zy
YW1lQ1Y+IGNyZWF0ZShNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSwgYm9vbCBpc01pcnJvcmVk
LCBWaWRlb1JvdGF0aW9uLCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgflZpZGVvRnJhbWVDVigpOworCisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhl
bEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxCdWZmZXIuZ2V0KCk7IH0KKyAgICBJbWFn
ZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFZpZGVvRnJhbWVDVj4+
IGRlY29kZShEZWNvZGVyJik7CisKKyAgICAvLyBWaWRlb0ZyYW1lIG92ZXJyaWRlcy4KKyAgICBX
ZWJDb3JlOjpGbG9hdFNpemUgcHJlc2VudGF0aW9uU2l6ZSgpIGNvbnN0IGZpbmFsOworICAgIHVp
bnQzMl90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGlzQ1YoKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKK3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBP
UlQgVmlkZW9GcmFtZUNWKE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lLCBib29sIGlzTWlycm9y
ZWQsIFZpZGVvUm90YXRpb24sIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmKTsKKworICAg
IGNvbnN0IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyOworfTsKKwor
dGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBWaWRlb0ZyYW1lQ1Y6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9wcmVzZW50YXRpb25UaW1l
IDw8IG1faXNNaXJyb3JlZCA8PCBtX3JvdGF0aW9uIDw8IG1fcGl4ZWxCdWZmZXI7Cit9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFZpZGVvRnJhbWVD
Vj4+IFZpZGVvRnJhbWVDVjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgYXV0byBw
cmVzZW50YXRpb25UaW1lID0gZGVjb2Rlci50ZW1wbGF0ZSBkZWNvZGU8TWVkaWFUaW1lPigpOwor
ICAgIGF1dG8gaXNNaXJyb3JlZCA9IGRlY29kZXIudGVtcGxhdGUgZGVjb2RlPGJvb2w+KCk7Cisg
ICAgYXV0byByb3RhdGlvbiA9IGRlY29kZXIudGVtcGxhdGUgZGVjb2RlPFZpZGVvUm90YXRpb24+
KCk7CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IGRlY29kZXIudGVtcGxhdGUgZGVjb2RlPFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPj4oKTsKKyAgICBpZiAoIWRlY29kZXIuaXNWYWxpZCgpIHx8
ICEqcGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJu
IFZpZGVvRnJhbWVDVjo6Y3JlYXRlKCpwcmVzZW50YXRpb25UaW1lLCAqaXNNaXJyb3JlZCwgKnJv
dGF0aW9uLCBXVEZNb3ZlKCpwaXhlbEJ1ZmZlcikpOworfQorCit9CisKK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6VmlkZW9GcmFtZUNWKQorICAgIHN0YXRpYyBib29sIGlz
VHlwZShjb25zdCBXZWJDb3JlOjpWaWRlb0ZyYW1lJiB2aWRlb0ZyYW1lKSB7IHJldHVybiB2aWRl
b0ZyYW1lLmlzQ1YoKTsgfQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpN
ZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpIHsgcmV0dXJuIGlzPFdlYkNvcmU6OlZpZGVvRnJhbWU+
KG1lZGlhU2FtcGxlKSAmJiBpczxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+KGRvd25jYXN0PFdlYkNv
cmU6OlZpZGVvRnJhbWU+KG1lZGlhU2FtcGxlKSk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
RU5EKCkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9WaWRlb0ZyYW1lQ1YubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9WaWRlb0ZyYW1lQ1YubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzUxMGMyODg5NDk5NzViODJlMjlhMjg1
MTQ4OWRhODFhODU3OTEyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5tbQpAQCAtMCwwICsxLDc1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlZpZGVvRnJhbWVDVi5oIgorCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikKKyNpbmNsdWRlICJD
b3JlVmlkZW9Tb2Z0TGluay5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxWaWRlb0Zy
YW1lQ1Y+IFZpZGVvRnJhbWVDVjo6Y3JlYXRlKE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lLCBi
b29sIGlzTWlycm9yZWQsIFZpZGVvUm90YXRpb24gcm90YXRpb24sIFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiYmIHBpeGVsQnVmZmVyKQoreworICAgIEFTU0VSVChwaXhlbEJ1ZmZlcik7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9GcmFtZUNWKHByZXNlbnRhdGlvblRpbWUsIGlz
TWlycm9yZWQsIHJvdGF0aW9uLCBXVEZNb3ZlKHBpeGVsQnVmZmVyKSkpOworfQorCitWaWRlb0Zy
YW1lQ1Y6OlZpZGVvRnJhbWVDVihNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSwgYm9vbCBpc01p
cnJvcmVkLCBWaWRlb1JvdGF0aW9uIHJvdGF0aW9uLCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4mJiBwaXhlbEJ1ZmZlcikKKyAgICA6IFZpZGVvRnJhbWUocHJlc2VudGF0aW9uVGltZSwgaXNN
aXJyb3JlZCwgcm90YXRpb24pCisgICAgLCBtX3BpeGVsQnVmZmVyKFdURk1vdmUocGl4ZWxCdWZm
ZXIpKQoreworfQorCitWaWRlb0ZyYW1lQ1Y6On5WaWRlb0ZyYW1lQ1YoKSA9IGRlZmF1bHQ7CisK
K1dlYkNvcmU6OkZsb2F0U2l6ZSBWaWRlb0ZyYW1lQ1Y6OnByZXNlbnRhdGlvblNpemUoKSBjb25z
dAoreworICAgIHJldHVybiB7IHN0YXRpY19jYXN0PGZsb2F0PihDVlBpeGVsQnVmZmVyR2V0V2lk
dGgobV9waXhlbEJ1ZmZlci5nZXQoKSkpLCBzdGF0aWNfY2FzdDxmbG9hdD4oQ1ZQaXhlbEJ1ZmZl
ckdldEhlaWdodChtX3BpeGVsQnVmZmVyLmdldCgpKSkgfTsKK30KKwordWludDMyX3QgVmlkZW9G
cmFtZUNWOjp2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQ1ZQaXhlbEJ1
ZmZlckdldFBpeGVsRm9ybWF0VHlwZShtX3BpeGVsQnVmZmVyLmdldCgpKTsKK30KKworSW1hZ2VP
cmllbnRhdGlvbiBWaWRlb0ZyYW1lQ1Y6Om9yaWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICAvLyBT
YW1wbGUgdHJhbnNmb3JtIGZpcnN0IGZsaXBzIHgtY29vcmRpbmF0ZXMsIHRoZW4gcm90YXRlcy4K
KyAgICBzd2l0Y2ggKG1fcm90YXRpb24pIHsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1Jv
dGF0aW9uOjpOb25lOgorICAgICAgICByZXR1cm4gbV9pc01pcnJvcmVkID8gSW1hZ2VPcmllbnRh
dGlvbjo6T3JpZ2luVG9wUmlnaHQgOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Ub3BMZWZ0Owor
ICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0OgorICAgICAgICByZXR1
cm4gbV9pc01pcnJvcmVkID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRCb3R0b20gOiBJ
bWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodFRvcDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpW
aWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAgICAgICByZXR1cm4gbV9pc01pcnJvcmVkID8g
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9tTGVmdCA6IEltYWdlT3JpZW50YXRpb246Ok9y
aWdpbkJvdHRvbVJpZ2h0OworICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Okxl
ZnQ6CisgICAgICAgIHJldHVybiBtX2lzTWlycm9yZWQgPyBJbWFnZU9yaWVudGF0aW9uOjpPcmln
aW5MZWZ0VG9wIDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luTGVmdEJvdHRvbTsKKyAgICB9Cit9
CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCAwNGNhMTBlMThm
MTUwODE1ZjNmZDY5M2ZmYjMyNjk1MzQyMjdkOTZhLi40YTY3YzVkMTZlNWEwZmY5Zjk4N2ZkMjQz
YTJkYjk1OGQzZGUyYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTI4Nyw3ICsy
ODcsNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRp
YShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZQogICAgIFVOVVNFRF9WQVJJQUJMRShwcmVt
dWx0aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5VU0VEKHRhcmdldCwgdGFyZ2V0ID09IEdyYXBo
aWNzQ29udGV4dEdMOjpURVhUVVJFXzJEKTsKIAotICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1w
bGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOworICAgIFJlZlB0cjxWaWRlb0ZyYW1lPiB2aWRlb0Zy
YW1lOwogICAgIGF1dG8gZ2V0VmlkZW9GcmFtZSA9IFsmXSB7CiAgICAgICAgIGlmICghbV9ncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjk4LDcgKzI5
OCw3IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbU1lZGlh
KFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllCiAKICAgICBjYWxsT25NYWluUnVuTG9vcEFu
ZFdhaXQoV1RGTW92ZShnZXRWaWRlb0ZyYW1lKSk7CiAKLSAgICBpZiAoIXZpZGVvRnJhbWUpIHsK
KyAgICBpZiAoIXZpZGVvRnJhbWUgfHwgIWlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpKSB7
CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTMwOSw3ICszMDksNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5
VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dENWLT5jb3B5Vmlk
ZW9TYW1wbGVUb1RleHR1cmUoKnZpZGVvRnJhbWUsIHRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZv
cm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKSk7Cisg
ICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUo
ZG93bmNhc3Q8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSksIHRleHR1cmUsIGxldmVsLCBpbnRl
cm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkp
KSk7CiAjZWxzZQogICAgIFVOVVNFRF9WQVJJQUJMRShtZWRpYVBsYXllcklkZW50aWZpZXIpOwog
ICAgIFVOVVNFRF9WQVJJQUJMRSh0ZXh0dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCA0MmEz
MjA2NTRiMDNkZjliNDM5Nzc3OTQyNTY0NTgyMDA2Y2RhMTEwLi4xOGQwMDRkZjdkOTI2ODhmNTBj
YjkyMTI2NTNkMTY0NjNjYTcyM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC02Nyw2ICs2Nyw3
IEBACiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0ZyYW1lQ1YuaD4KICNl
bmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEwNyw3ICsxMDgsNyBAQCB2b2lkIFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OmludmFsaWRhdGUoKQogICAgIH0KICAgICBtX3JlbmRlcmluZ1Jl
c291cmNlc1JlcXVlc3QgPSB7IH07CiAjaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBtX3ZpZGVv
RnJhbWVGb3JDdXJyZW50VGltZSA9IHN0ZDo6bnVsbG9wdDsKKyAgICBtX3ZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSA9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApAQCAtODY4LDIwICs4NjksMjggQEAg
dm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpjdXJyZW50VGltZUNoYW5nZWQoY29uc3QgTWVk
aWFUaW1lJiBtZWRpYVRpbWUpCiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpDdXJyZW50VGltZUNoYW5nZWQobWVkaWFU
aW1lLCBNb25vdG9uaWNUaW1lOjpub3coKSwgIW1lZGlhUGxheWVyUGF1c2VkT3JTdGFsbGVkKCkp
LCBtX2lkKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9y
Q3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4mJiwgYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCisvLyBGSVhNRTogVGhpcyB3aWxsIGJlIHR1cm5lZCBpbnRvIGNyb3NzLXBsYXRmb3Jt
IGNvZGUgc29vbi4KKyNpZiBQTEFURk9STShDT0NPQSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoc3RkOjpvcHRpb25hbDxSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPj4mJiwgYm9v
bCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpN
ZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHJlc3VsdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxX
ZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiByZXN1bHQ7CiAgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7
Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVv
RnJhbWU7CisgICAgUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWU+IHZpZGVvRnJhbWU7CiAgICAg
aWYgKG1fcGxheWVyKQogICAgICAgICB2aWRlb0ZyYW1lID0gbV9wbGF5ZXItPnZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZSgpOwotICAgIGlmICghKG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID09
IHZpZGVvRnJhbWUpKSB7CisgICAgaWYgKG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lICE9IHZp
ZGVvRnJhbWUpIHsKICAgICAgICAgbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSB2aWRlb0Zy
YW1lOwogICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgcmVzdWx0ID0gV1RGTW92ZSh2
aWRlb0ZyYW1lKTsKKyAgICAgICAgUmVmUHRyPFZpZGVvRnJhbWVDVj4gdmlkZW9GcmFtZUNWOwor
ICAgICAgICBpZiAodmlkZW9GcmFtZSkgeworICAgICAgICAgICAgQVNTRVJUKGlzPFZpZGVvRnJh
bWVDVj4oKnZpZGVvRnJhbWUpKTsKKyAgICAgICAgICAgIHZpZGVvRnJhbWVDViA9ICZkb3duY2Fz
dDxWaWRlb0ZyYW1lQ1Y+KCp2aWRlb0ZyYW1lKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQg
PSBXVEZNb3ZlKHZpZGVvRnJhbWVDVik7CiAgICAgfQogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUocmVzdWx0KSwgY2hhbmdlZCk7CiB9CisjZW5kaWYKIAogdm9pZCBSZW1vdGVNZWRpYVBs
YXllclByb3h5Ojp1cGRhdGVDYWNoZWRTdGF0ZShib29sIGZvcmNlQ3VycmVudFRpbWVVcGRhdGUp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuaAppbmRleCA5MzE2YjY2YWIzNTk2NmU1YjY0NWRkMWM3Y2UwZTgxMmYy
MDZhNjM3Li43NWVhYmQ0NWIzMWQwMzRiODRjNDhmYzY2YjI3NzlhMmU1NjQzOWEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5LmgKQEAgLTc4LDYgKzc4LDEyIEBAIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDb250
ZXh0OwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CiAKIHN0cnVjdCBGb3VyQ0M7CisKK2NsYXNz
IFZpZGVvRnJhbWU7CisKKyNpZiBQTEFURk9STShDT0NPQSkKK2NsYXNzIFZpZGVvRnJhbWVDVjsK
KyNlbmRpZgogfQogCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKQEAgLTMyNyw4ICszMzMsOCBAQCBw
cml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgbmF0aXZlSW1hZ2VGb3JDdXJy
ZW50VGltZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V1RGOjpNYWNoU2Vu
ZFJpZ2h0PiYmLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UpPiYmKTsKICAgICB2b2lk
IGNvbG9yU3BhY2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXN0aW5hdGlvbkNv
bG9yU3BhY2UpPiYmKTsKKyAgICB2b2lkIHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdl
ZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZp
ZGVvRnJhbWVDVj4+JiYsIGJvb2wpPiYmKTsKICNlbmRpZgotICAgIHZvaWQgdmlkZW9GcmFtZUZv
ckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+JiYsIGJvb2wpPiYmKTsKIAogI2lmICFS
RUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIo
KSBmaW5hbCB7IHJldHVybiBtX2xvZ2dlcjsgfQpAQCAtMzg0LDcgKzM5MCw3IEBAIHByaXZhdGU6
CiAgICAgU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCBtX3JlbmRlcmluZ1Jlc291cmNl
c1JlcXVlc3Q7CiAKICAgICBib29sIG1fb2JzZXJ2aW5nVGltZUNoYW5nZXMgeyBmYWxzZSB9Owot
ICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBtX3ZpZGVv
RnJhbWVGb3JDdXJyZW50VGltZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZT4gbV92
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAg
Y29uc3QgTG9nZ2VyJiBtX2xvZ2dlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNz
YWdlcy5pbgppbmRleCA0ZTRmZWNhMjgzMWE0Y2QzZTNhOWJlNzkyYWIyMDViMWUxM2VkMjYyLi5j
YzEzN2FkZTUxOWJjNmQ0NzA3NTZjZjU3MDFkMDQ2NmUxNWRkNzdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTI1LDggKzEyNSw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90
ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgTmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIC0+IChzdGQ6Om9wdGlvbmFsPE1hY2hTZW5k
UmlnaHQ+IHNlbmRSaWdodCwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3Bh
Y2UpIFN5bmNocm9ub3VzCiAgICAgQ29sb3JTcGFjZSgpIC0+IChXZWJDb3JlOjpEZXN0aW5hdGlv
bkNvbG9yU3BhY2UgY29sb3JTcGFjZSkgU3luY2hyb25vdXMKKyAgICBWaWRlb0ZyYW1lRm9yQ3Vy
cmVudFRpbWVJZkNoYW5nZWQoKSAtPiAoc3RkOjpvcHRpb25hbDxSZWZQdHI8V2ViQ29yZTo6Vmlk
ZW9GcmFtZUNWPj4gdmlkZW9GcmFtZSwgYm9vbCBjaGFuZ2VkKSBTeW5jaHJvbm91cwogI2VuZGlm
Ci0gICAgVmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCkgLT4gKHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lLCBib29sIGNoYW5n
ZWQpIFN5bmNocm9ub3VzCiAKICAgICBQbGF5QXRIb3N0VGltZShNb25vdG9uaWNUaW1lIHRpbWUp
CiAgICAgUGF1c2VBdEhvc3RUaW1lKE1vbm90b25pY1RpbWUgdGltZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGEzMzQyYzNiYzNlN2UyMTM0OGZl
MjA4ODdjYzFkZmVmMmJmOTU5NmMuLjcxZTUyMjhiZjYwODVmZWZlMDI3OGU2YjFhZjM1NTU5Mzk3
OGI4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29k
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApA
QCAtMjY1LDYgKzI2NSwzMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKICAgICB9CiB9OwogCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZWZQdHI8VD4+IHsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBVID0gVD4KKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgUmVmUHRyPFU+JiBvYmplY3QpCisgICAgeworICAgICAgICBpZiAob2JqZWN0
KQorICAgICAgICAgICAgZW5jb2RlciA8PCB0cnVlIDw8ICpvYmplY3Q7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVSA9IFQ+CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFU+PiBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIGF1dG8gaGFzT2JqZWN0ID0gZGVjb2Rl
ci50ZW1wbGF0ZSBkZWNvZGU8Ym9vbD4oKTsKKyAgICAgICAgaWYgKCFoYXNPYmplY3QpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBpZiAoISpoYXNPYmplY3QpCisg
ICAgICAgICAgICByZXR1cm4gUmVmUHRyPFU+IHsgfTsKKyAgICAgICAgLy8gRGVjb2RlcnMgb2Yg
VSBoZWxkIHdpdGggUmVmUHRyIGRvIG5vdCByZXR1cm4gc3RkOjpvcHRpb25hbDxVPiBidXQKKyAg
ICAgICAgLy8gc3RkOjpvcHRpb25hbDxSZWZQdHI8VT4+LiBXZSBjYW5ub3QgdXNlIGBkZWNvZGVy
LnRlbXBsYXRlIGRlY29kZTxVPigpYAorICAgICAgICAvLyBDdXJyZW50bHkgZXhwZWN0ICJtb2Rl
cm4gZGVjb2RlciIgLWxpa2UgZGVjb2RlIGZ1bmN0aW9uLgorICAgICAgICByZXR1cm4gVTo6ZGVj
b2RlKGRlY29kZXIpOworICAgIH0KK307CisKIHRlbXBsYXRlPHNpemVfdCBpbmRleCwgdHlwZW5h
bWUuLi4gRWxlbWVudHM+CiBzdHJ1Y3QgVHVwbGVFbmNvZGVyIHsKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBFbmNvZGVyPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDhkOWU1ZmY5
MmFjM2IzZjBlYjcxMzM5ZWZlOGI0YmYzZjQyOTY0ZGMuLmFkMWI3ZjJiNTZjZmU1Mzk4ZDMxMWZj
OTFlZDhmMmEyMjYwMDdjNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTgw
LDggKzgwLDkgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0jaW1wb3J0IDxXZWJD
b3JlL1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaD4KLSNpbXBvcnQgPFdlYkNvcmUvVmlkZW9MYXll
ck1hbmFnZXJPYmpDLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QaXhlbEJ1ZmZlckNvbmZvcm1lckNW
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0ZyYW1lQ1YuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTEwMDIsMTQgKzEwMDMsMjEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNv
cHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShXZWJDb3JlOjpHcmFwaGkKIH0KICNlbmRp
ZgogCi1zdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQorUmVmUHRyPFdl
YkNvcmU6OlZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZv
ckN1cnJlbnRUaW1lKCkKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxl
VmlkZW9GcmFtZT4gcmVzdWx0OworLy8gRklYTUU6IFRoaXMgd2lsbCBiZSBtYWRlIGNyb3NzLXBs
YXRmb3JtIGFnYWluIHNvb24uIFRoZXJlIGFyZSBubyBvdGhlciBwbGF0Zm9ybXMgdXNpbmcgdGhp
cyBhdCB0aGUgbW9tZW50LgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHN0ZDo6b3B0aW9uYWw8
UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+IHJlc3VsdDsKICAgICBib29sIGNoYW5nZWQg
PSBmYWxzZTsKICAgICBpZiAoIWNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6VmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCksIE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJ
ZkNoYW5nZWQ6OlJlcGx5KHJlc3VsdCwgY2hhbmdlZCksIG1faWQpKQotICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwotICAgIGlmIChjaGFuZ2VkKQotICAgICAgICBtX3ZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSA9IFdURk1vdmUocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIG1fdmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lOworICAgIGlmIChjaGFuZ2VkKSB7CisgICAgICAgIGlmIChyZXN1bHQp
CisgICAgICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IFdURk1vdmUoKnJlc3Vs
dCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1l
ID0gbnVsbHB0cjsKKyAgICB9CisjZW5kaWYKICAgICByZXR1cm4gbV92aWRlb0ZyYW1lRm9yQ3Vy
cmVudFRpbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDFhNmEzNDAzNDNk
MTQyZWRmZGVlYTM2YjM3NGE5OWY5OTNlZmViOTIuLjI5ZjkxMmQ0ZThiODdiNTdiYTE1NjI0YTZk
YzVlMDZiN2M1YzFiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMzksNiArMzks
NyBAQAogI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9GcmFtZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvVmlkZW9GcmFtZU1ldGFkYXRhLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5o
PgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KQEAgLTI5Myw3ICsyOTQsNyBAQCBwcml2YXRl
OgogI2lmICFVU0UoQVZGT1VOREFUSU9OKQogICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxh
dGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMKiwgUGxhdGZvcm1HTE9iamVj
dCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJvb2ws
IGJvb2wpIGZpbmFsOwogI2VuZGlmCi0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNh
bXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOworICAgIFJl
ZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBmaW5h
bDsKICAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVu
dFRpbWUoKSBmaW5hbDsKICAgICBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JT
cGFjZSgpIGZpbmFsOwogCkBAIC00NjAsNyArNDYxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
d2FpdGluZ0ZvcktleSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3RpbWVJc1Byb2dyZXNzaW5nIHsg
ZmFsc2UgfTsKICAgICBib29sIG1fcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCB7IGZhbHNlIH07
Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IG1fdmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lOworICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lPiBt
X3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlckdhdGhlcmVkV2l0aFZpZGVvRnJh
bWVNZXRhZGF0YTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGl4ZWxCdWZmZXJDb25m
b3JtZXJDVj4gbV9waXhlbEJ1ZmZlckNvbmZvcm1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcApp
bmRleCAwNThjZTliNzVmY2FjY2VmNGIxY2JmNTVjMTZmODE0YjBhZjEwODYzLi4zMzdkMTMwOTRh
MjI2YmY2ODcxY2YxYjRiYjk5YTk0ZDM3MTQ1NjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3Bw
CkBAIC02MSwxMSArNjEsOSBAQCB2b2lkIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cmVsZWFzZVVu
dXNlZChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFByb3BlcnRpZQogfQogCiBSZW1vdGVW
aWRlb0ZyYW1lUHJveHk6OlJlbW90ZVZpZGVvRnJhbWVQcm94eShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIFByb3BlcnRpZXMgcHJvcGVydGllcywgUGl4ZWxCdWZmZXJDYWxsYmFjayYmIGNh
bGxiYWNrKQotICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCisgICAgOiBWaWRlb0ZyYW1l
KHByb3BlcnRpZXMucHJlc2VudGF0aW9uVGltZSwgcHJvcGVydGllcy5pc01pcnJvcmVkLCBwcm9w
ZXJ0aWVzLnJvdGF0aW9uKQorICAgICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBt
X3JlZmVyZW5jZVRyYWNrZXIocHJvcGVydGllcy5yZWZlcmVuY2UpCi0gICAgLCBtX3ByZXNlbnRh
dGlvblRpbWUocHJvcGVydGllcy5wcmVzZW50YXRpb25UaW1lKQotICAgICwgbV9pc01pcnJvcmVk
KHByb3BlcnRpZXMuaXNNaXJyb3JlZCkKLSAgICAsIG1fcm90YXRpb24ocHJvcGVydGllcy5yb3Rh
dGlvbikKICAgICAsIG1fc2l6ZShwcm9wZXJ0aWVzLnNpemUpCiAgICAgLCBtX3BpeGVsRm9ybWF0
KHByb3BlcnRpZXMucGl4ZWxGb3JtYXQpCiAgICAgLCBtX3BpeGVsQnVmZmVyQ2FsbGJhY2soV1RG
TW92ZShjYWxsYmFjaykpCkBAIC05MiwzNiArOTAsMTEgQEAgUmVtb3RlVmlkZW9GcmFtZVJlYWRS
ZWZlcmVuY2UgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpyZWFkKCkgY29uc3QKICAgICByZXR1cm4g
bV9yZWZlcmVuY2VUcmFja2VyLnJlYWQoKTsKIH0KIAotTWVkaWFUaW1lIFJlbW90ZVZpZGVvRnJh
bWVQcm94eTo6cHJlc2VudGF0aW9uVGltZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJlc2Vu
dGF0aW9uVGltZTsKLX0KLQotV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGUgUmVtb3RlVmlkZW9GcmFt
ZVByb3h5OjpwbGF0Zm9ybVNhbXBsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHsgV2ViQ29yZTo6
UGxhdGZvcm1TYW1wbGU6OlJlbW90ZVZpZGVvRnJhbWVQcm94eVR5cGUsIHsgfSB9OwotfQotCi1N
ZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnZpZGVvUm90
YXRpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX3JvdGF0aW9uOwotfQotCi1ib29sIFJlbW90
ZVZpZGVvRnJhbWVQcm94eTo6dmlkZW9NaXJyb3JlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
aXNNaXJyb3JlZDsKLX0KLQogdWludDMyX3QgUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojp2aWRlb1Bp
eGVsRm9ybWF0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9waXhlbEZvcm1hdDsKIH0KIAotc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IFJlbW90ZVZpZGVvRnJh
bWVQcm94eTo6dmlkZW9GcmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
LX0KLQogI2lmIFBMQVRGT1JNKENPQ09BKQogdm9pZCBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6Omdl
dFBpeGVsQnVmZmVyKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oCmluZGV4IDMxYTFhODQ1N2ViZjY4
NTM2MThkNjhkNWVlOTUxMmVkNzRlZjFmZjcuLjQ5YTI2ZmNlM2JiNDMyNmJjMzgzNGRmMzYyMzJj
ZGFiMWVhMDlkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuaApAQCAtOTQsMTQgKzk0LDggQEAgcHJp
dmF0ZToKICAgICBSZW1vdGVWaWRlb0ZyYW1lUHJveHkoSVBDOjpDb25uZWN0aW9uJiwgUHJvcGVy
dGllcywgUGl4ZWxCdWZmZXJDYWxsYmFjayYmKTsKIAogICAgIC8vIFdlYkNvcmU6OlZpZGVvRnJh
bWUgb3ZlcnJpZGVzLgotICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lKCkgY29uc3QgZmlu
YWw7Ci0gICAgVmlkZW9Sb3RhdGlvbiB2aWRlb1JvdGF0aW9uKCkgY29uc3QgZmluYWw7Ci0gICAg
Ym9vbCB2aWRlb01pcnJvcmVkKCkgY29uc3QgZmluYWw7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXpl
IHByZXNlbnRhdGlvblNpemUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NpemU7IH0KLSAgICBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZSgp
IGNvbnN0IGZpbmFsOwogICAgIHVpbnQzMl90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5h
bDsKLSAgICAvLyBGSVhNRTogV2hlbiBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRpYVNhbXBsZSwgdGhl
c2Ugd2lsbCBub3QgYmUgbmVlZGVkLgotICAgIFdlYkNvcmU6OlBsYXRmb3JtU2FtcGxlIHBsYXRm
b3JtU2FtcGxlKCkgY29uc3QgZmluYWw7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lk
IGdldFBpeGVsQnVmZmVyKCk7CkBAIC0xMDksOSArMTAzLDYgQEAgcHJpdmF0ZToKIAogICAgIGNv
bnN0IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBSZW1vdGVWaWRlb0Zy
YW1lUmVmZXJlbmNlVHJhY2tlciBtX3JlZmVyZW5jZVRyYWNrZXI7Ci0gICAgY29uc3QgTWVkaWFU
aW1lIG1fcHJlc2VudGF0aW9uVGltZTsKLSAgICBjb25zdCBib29sIG1faXNNaXJyb3JlZDsKLSAg
ICBjb25zdCBWaWRlb1JvdGF0aW9uIG1fcm90YXRpb247CiAgICAgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSBtX3NpemU7CiAgICAgdWludDMyX3QgbV9waXhlbEZvcm1hdCB7IDAgfTsKICAgICBtdXRh
YmxlIExvY2sgbV9waXhlbEJ1ZmZlckxvY2s7CkBAIC0xNDksOSArMTQwLDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlBy
b3BlcnRpZXM+IFJlbW8KIAogfQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJLaXQ6
OlJlbW90ZVZpZGVvRnJhbWVQcm94eSkKLSAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2Vi
Q29yZTo6TWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKSB7IHJldHVybiBtZWRpYVNhbXBsZS5wbGF0
Zm9ybVNhbXBsZSgpLnR5cGUgPT0gV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OlJlbW90ZVZpZGVv
RnJhbWVQcm94eVR5cGU7IH0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKLVNQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6VmlkZW9GcmFtZSkKLSAgICBzdGF0aWMgYm9v
bCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKSB7IHJldHVy
biBtZWRpYVNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0gV2ViQ29yZTo6UGxhdGZvcm1T
YW1wbGU6OlJlbW90ZVZpZGVvRnJhbWVQcm94eVR5cGU7IH0KKyAgICBzdGF0aWMgYm9vbCBpc1R5
cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKSB7IHJldHVybiBpczxX
ZWJDb3JlOjpWaWRlb0ZyYW1lPihtZWRpYVNhbXBsZSkgJiYgZG93bmNhc3Q8V2ViQ29yZTo6Vmlk
ZW9GcmFtZT4obWVkaWFTYW1wbGUpLmlzUmVtb3RlUHJveHkoKTsgfQogU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19FTkQoKQorCiAjZW5kaWYK
</data>
<flag name="commit-queue"
          id="479134"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452183</attachid>
            <date>2022-02-16 04:39:26 -0800</date>
            <delta_ts>2022-02-16 05:03:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236701-20220216143924.patch</filename>
            <type>text/plain</type>
            <size>68364</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTliM2RkMTcwZjRjZmFj
NmExMTg2MzM3NzRjZTU4OWExNDJkN2NlNy4uODUwY2JhNmJmMDY5YWY2Njg5ZWRjMWY4ZTA4ZTFl
NmRhODlhM2E4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDIyLTAyLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFQbGF5ZXI6
OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHNob3VsZCByZXR1cm4gVmlkZW9GcmFtZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzAxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJlbmFtZSBDViBzcGVj
aWZpYyBwYXJ0cyBvZiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgdG8gVmlkZW9GcmFtZUNWLgorICAg
ICAgICBVc2UgVmlkZW9GcmFtZSBiYXNlIGNsYXNzIGluc3RlYWQgb2YgTWVkaWFTYW1wbGVWaWRl
b0ZyYW1lLgorICAgICAgICBWaWRlb0ZyYW1lIHN1cHBvcnRzIG11bHRpcGxlIHBvbHltb3JwaGlj
IHN1YmNsYXNzZXMuIE9uZSBzdWNoCisgICAgICAgIGlzIFJlbW90ZVZpZGVvRnJhbWVQcm94eSwg
d2hpY2ggd2lsbCBiZSB1c2VkIGluIHRoZSBmdXR1cmUgdG8KKyAgICAgICAgcmV0dXJuIHJlbW90
ZSBwcm94eSBvYmplY3RzIGluIHRoZXNlIGxvY2F0aW9ucy4KKworICAgICAgICBUaGlzIHBhdGNo
IGlzIG9ubHkgYSByZW5hbWUuIEl0IGNvbmNlcm5zIG9ubHkgdGhlIGluLXByb2Nlc3MKKyAgICAg
ICAgdXNhZ2Ugb2YgdmlkZW8gZnJhbWVzIHZpYSBpbi1wcm9jZXNzIFZpZGVvRnJhbWVDVi4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVNhbXBsZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGU6OnZpZGVvUGl4ZWxGb3JtYXQgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL1ZpZGVvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9GcmFtZTo6VmlkZW9GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lOjpwcmVz
ZW50YXRpb25UaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWU6OnZpZGVv
Um90YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZTo6dmlkZW9NaXJy
b3JlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lOjpwbGF0Zm9ybVNhbXBs
ZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vVmlkZW9GcmFtZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9GcmFtZTo6aXNSZW1vdGVQcm94eSBjb25zdCk6CisgICAgICAgIFRoaXMgbGVh
a3MgInJlbW90ZSIgY29uY2VwdCB0byBXZWJDb3JlIGxldmVsLiBIb3BlZnVsbHkKKyAgICAgICAg
aW4gdGhlIGZ1dHVyZSB0aGlzIGNhbiBiZSBzb2x2ZWQgaW4gYW5vdGhlciB3YXkuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb0ZyYW1lOjppc0NWIGNvbnN0KToKKyAgICAgICAgKGlzVHlwZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVWaWRlb0ZyYW1l
QVZGLm1tOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6dmlk
ZW9GcmFtZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdM
Q29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OnBpeGVsQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvRnJhbWVDVjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvRnJhbWVDVjo6ZGVjb2RlKToKKyAgICAgICAgKGlzVHlwZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvRnJhbWVDVjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWVDVjo6
VmlkZW9GcmFtZUNWKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWVDVjo6cHJlc2VudGF0
aW9uU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OnZpZGVvUGl4
ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZUNWOjpvcmllbnRh
dGlvbiBjb25zdCk6CisKIDIwMjItMDItMTYgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBVc2UgZHJtIHJlbmRlciBub2RlcyBpbiBH
Ym1EZXZpY2UgYW5kIG1ha2UgdGhlIGZkIGdsb2JhbCB0byB0aGUgcHJvY2VzcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA1MDE4MzUzYWMyOTE2NjZhMDJmYmU3YmE0Y2Y3NTVkYjI4NjMxMTBmLi4wNGJiMzE3YTM3ZTE4
NDJiZjlhYTM4YThlZWU4YTg4NGQ1NWVmYTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisy
MDIyLTAyLTE2ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWVkaWFQbGF5ZXI6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHNob3VsZCByZXR1cm4g
VmlkZW9GcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM2NzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXNlIGFkZGVkIFZpZGVvRnJhbWVDViBpbnN0ZWFkIG9mIHJlbW92ZWQgTWVkaWFTYW1wbGVW
aWRlb0ZyYW1lLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Ojpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCk6CisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPFJlZlB0cjxUPj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVm
UHRyPFQ+Pjo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuaDoKKyAgICAgICAgKGlzVHlw
ZSk6CisKIDIwMjItMDItMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgW21hY09TXSBBZGQgYW4gIk1hcmt1cCBJbWFnZSIgaXRlbSB0byB0aGUgc2hh
cmluZyBzZXJ2aWNlcyBwaWNrZXIgY29udGV4dCBtZW51CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBh
Yzc0NmE5ZTVlZjViNGE0ZDBkZmNmYTRkYzFhNDViOTFkYzU0MmVhLi5lMWQ5MDhjMjMyOWU1N2M3
YzJhNjFiZTM4ZWFlMzRkNjBjNjkzMzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE1MjYsNyAr
MTUyNiw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllckVudW1zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllcklkZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNvdXJjZVByaXZhdGUuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFVc2FnZUluZm8uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMDI4MTRkMDIy
MmIyNmUyODk5YjhkYWNhZWQxYTQyZTU2YjU3NDE5NC4uNWI0YjU2NWMzOWFiYmZkZTJkNDE2ZjEz
ZGUyZmI1NDM3MjlmOTE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0zMDQsNyArMzA0
LDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZE1ldGFkYXRhVGV4dFRy
YWNrUHJpdmF0ZUFWRi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRU
ZXh0VHJhY2tQcml2YXRlQVZGLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKLXBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW0KIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL1NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAKIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyTWFjLmNwcApAQCAt
NDE1LDYgKzQxNCw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1tCiBwbGF0
Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCiBwbGF0Zm9ybS9ncmFw
aGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9G
cmFtZUNWLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb2xvck1hdHJpeENvcmVJ
bWFnZUFwcGxpZXIubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNvbXBvbmVudFRy
YW5zZmVyQ29yZUltYWdlQXBwbGllci5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0Zp
bHRlckltYWdlQ29yZUltYWdlLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmI5ZmI3Y2MyMjE4OWYwMzQzMDIwY2Y2YzBmYTNk
NjY1ZGI5ZWIzOC4uZTU5YmE3Zjc2MWQwYjU0MDRiN2MwMGEyY2I0Y2QzMGJiYmQwZjUxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMjQwOSw3ICsyNDA5LDYgQEAKIAkJN0FGOUIyMEYxOENGQjVGNDAwQzY0QkVGIC8qIEpTVlRU
UmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0FGOUIyMEIxOENGQjVGMzAwQzY0QkVGIC8qIEpTVlRUUmVnaW9uTGlzdC5oICovOyB9Owog
CQk3QjEwMzM5RTI1NDk3MjE3MDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IxMDMzOUQyNTQ5NzIw
MTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjEwMzM5RjI1NDk3MjFFMDBDOEMxQUMgLyog
R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250
ZXh0R0xDVkNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJN0I0NDEwRTEyNzk1OEZDNTAwMEI0RjhBIC8qIE1lZGlhU2FtcGxlVmlkZW9GcmFt
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I0NDEw
REYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlhU2FtcGxlVmlkZW9GcmFtZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNUEzREFGMjdBQkY4QzUw
MDZDNkY5NyAvKiBWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QjVBM0RBRDI3QUJGOEM0MDA2QzZGOTcgLyogVmlkZW9GcmFtZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNjA5NERE
MjcwQzQ0QkQwMDY0ODM1QyAvKiBBTkdMRVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEFO
R0xFVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJN0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1
cmZhY2VTd2FwQ2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMjQyMiw2ICsyNDIxLDcgQEAKIAkJN0JCNjgwQkEyNUJBMUJFNDAwMkI4NzM4
IC8qIEdyYXBoaWNzQ2hlY2tzTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QkI2ODBCODI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NN
YWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
QkREQTMxRjI3NEZBMDIxMDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JEREEzMUQyNzRGOURB
NTAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkREQTM0QzI3NUEwMTMxMDAzODY1OUUg
LyogUHJvY2Vzc0lkZW50aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QkREQTM0OTI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0JFMzdG
ODcyN0JCQjcwODAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JFMzdGODYyN0JCQjZGRjAwN0E2Q0QzIC8qIFZp
ZGVvRnJhbWVDVi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdCRTc0MjczODFGQTkwNkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJC
RUQ4OTM2RjgxOEUyRjk5IC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CiAJCTdCRkY1
OUY0Mjc1NzcyNjcwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRkY1OUVGMjc1Nzcx
RTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAyOUM2RTI0OTNDOEY4MDAy
NjgyMDQgLyogQ29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0MwMjlDNkQyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE1MzAsOCAr
MTE1MzAsNiBAQAogCQk3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0
R0xDVkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjEwMzM5RDI1NDk3MjAxMDBDOEMxQUMgLyog
R3JhcGhpY3NDb250ZXh0R0xDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENW
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTYxOTEwMjcxOTg4MEUwMEM0MEVB
QyAvKiBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVW
aWRlb0ZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2FtcGxl
VmlkZW9GcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3QjQ0MTBFMjI3OTU4
RkRFMDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3QjVBM0RBQjI3QUJGOEM0MDA2QzZGOTcgLyogVmlkZW9GcmFtZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRlb0ZyYW1lLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I1QTNEQUQyN0FCRjhDNDAwNkM2Rjk3IC8qIFZpZGVv
RnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GcmFtZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNTI1NzEyRTkxMDAzODBDNzAgLyog
R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1NTUsNiArMTE1NTMsOCBAQAog
CQk3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAv
KiBQcm9jZXNzSWRlbnRpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJv
Y2Vzc0lkZW50aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRERBMzRCMjc1
QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJN0JFMzdGODUyN0JCQjZGRTAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvRnJhbWVDVi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JFMzdGODYyN0JCQjZGRjAwN0E2Q0QzIC8q
IFZpZGVvRnJhbWVDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Zy
YW1lQ1YuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JGRjU5RUYyNzU3NzFFODAw
NzczRDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5oOyBmaWxlRW5j
b2RpbmcgPSA0OyBwYXRoID0gRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRkY1OUYxMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5
Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0MwMTFGM0QyNEZBRDM2MDAwNUJFRjEwIC8qIFNldHRpbmdzLmNwcC5lcmIg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gU2V0dGluZ3MuY3BwLmVyYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4
NzgxLDcgKzE4NzgxLDYgQEAKIAkJCQkwNzFFNDk2RDFBRDVBQTBEMDA4QTUwQjQgLyogTWVkaWFQ
bGF5YmFja1RhcmdldENvY29hLm1tICovLAogCQkJCTA3NkYwRDA5MTJCODE5MjcwMEMyNkFBNCAv
KiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwICovLAogCQkJCTA3NkYwRDBBMTJC
ODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCAqLywKLQkJ
CQk3QjQ0MTBFMjI3OTU4RkRFMDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1t
ICovLAogCQkJCUNEQkVBRUFCMTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3Vw
QVZGT2JqQy5oICovLAogCQkJCUNEQkVBRUFBMTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVj
dGlvbkdyb3VwQVZGT2JqQy5tbSAqLywKIAkJCQk0MTAyNEZDODIzQ0YyNTRGMDBGREY5OEUgLyog
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCAqLywKQEAgLTI5MDQ3LDcgKzI5MDQ2LDYgQEAK
IAkJCQlDRDUyMDlFMzFCMEJEODM4MDA3NzE4NEUgLyogTWVkaWFQbGF5ZXJFbnVtcy5oICovLAog
CQkJCUY0MjkyNjE3MjUyNjRENDQwMDAwNzg5OCAvKiBNZWRpYVBsYXllcklkZW50aWZpZXIuaCAq
LywKIAkJCQkwNzlGNUU0QjBGM0JFQkVBMDA1RTA3ODIgLyogTWVkaWFQbGF5ZXJQcml2YXRlLmgg
Ki8sCi0JCQkJN0I0NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlhU2FtcGxlVmlkZW9GcmFt
ZS5oICovLAogCQkJCUNENjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVByaXZh
dGUuaCAqLywKIAkJCQlDRERDMUU3OTE4QTk1MkYzMDAyN0E5RDQgLyogTWVkaWFTb3VyY2VQcml2
YXRlQ2xpZW50LmggKi8sCiAJCQkJMDc2MTFEQjgyNDNGQjc1QzAwRDgwNzA0IC8qIE1lZGlhVXNh
Z2VJbmZvLmggKi8sCkBAIC0zMDQxNCw2ICszMDQxMiw4IEBACiAJCQkJMDc0NkQzMEEyMTQ2RUEz
NzAwM0RERjg0IC8qIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0gKi8sCiAJCQkJQ0Q3RDMzNDEx
QzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwICovLAogCQkJCUNE
N0QzMzQyMUM3QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi8sCisJ
CQkJN0JFMzdGODYyN0JCQjZGRjAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5oICovLAorCQkJCTdC
RTM3Rjg1MjdCQkI2RkUwMDdBNkNEMyAvKiBWaWRlb0ZyYW1lQ1YubW0gKi8sCiAJCQkpOwogCQkJ
cGF0aCA9IGN2OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTM2MjYxLDcgKzM2MjYx
LDYgQEAKIAkJCQlDRUVGQ0Q3QTE5REIzMUY3MDAzODc2RDcgLyogTWVkaWFSZXNvdXJjZUxvYWRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUJGOURCM0MxRDM5NzNBRDAwMjZBRUI3IC8qIE1lZGlh
U2FtcGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQjEyNEQ4RDFEMzgwQjcwMDBFQ0RGQjAgLyog
TWVkaWFTYW1wbGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKLQkJCQk3QjQ0MTBFMTI3OTU4RkM1
MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
REJFQUVBRDE5RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCBp
biBIZWFkZXJzICovLAogCQkJCUExN0QyNzVFMUVBQzU3OTgwMEJGMDFFNyAvKiBNZWRpYVNlbGVj
dGlvbk9wdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc3QkE1NzUyNjBGQTVGRTAwNzJGMTlG
IC8qIE1lZGlhU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNzg2Nyw2ICszNzg2Niw3IEBA
CiAJCQkJQkNBMjU3MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRpY2FsUG9zaXRpb25DYWNoZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzRUVGM0IyNTc5OUZBMTAwNjU2M0JCIC8qIFZpZGVvQ29u
ZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0I1QTNEQUYyN0FCRjhDNTAwNkM2Rjk3
IC8qIFZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCRTM3Rjg3MjdCQkI3MDgwMDdB
NkNEMyAvKiBWaWRlb0ZyYW1lQ1YuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxREVFRkI2MjcxOUJB
MUEwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
REVFRkIwMjcxOUIyOTAwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2Ny
ZWVuQ2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01l
ZGlhU2FtcGxlLmgKaW5kZXggYjA2NTA0ZjU3ZWU5MzZiOGUxOTg4NzFmMzU3Mjc2NTM1MzA0YWZk
My4uZjIxMDA0MzVjNDIxZGQzNTQ4MTNhYWE5MDFlZjA5YWJkZDkzNjBmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCkBAIC0yNiw3ICsyNiw2IEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgotI2luY2x1ZGUgIk1lZGlhU2FtcGxlVmlkZW9GcmFt
ZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlzLmg+CiAjaW5jbHVkZSA8
d3RmL0VudW1UcmFpdHMuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CkBAIC01MCw3ICs0
OSw3IEBAIHN0cnVjdCBQbGF0Zm9ybVNhbXBsZSB7CiAgICAgICAgIENNU2FtcGxlQnVmZmVyVHlw
ZSwKICAgICAgICAgR1N0cmVhbWVyU2FtcGxlVHlwZSwKICAgICAgICAgQnl0ZVJhbmdlU2FtcGxl
VHlwZSwKLSAgICAgICAgUmVtb3RlVmlkZW9GcmFtZVByb3h5VHlwZSwgLy8gRklYTUU6IFRvIGJl
IHJlbW92ZWQgd2hlbiBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRpYVNhbXBsZS4KKyAgICAgICAgVmlk
ZW9GcmFtZVR5cGUsIC8vIEZJWE1FOiBUbyBiZSByZW1vdmVkIHdoZW4gVmlkZW9GcmFtZSBpcyBu
b3QgTWVkaWFTYW1wbGUuCiAgICAgfSB0eXBlOwogICAgIHVuaW9uIHsKICAgICAgICAgY29uc3Qg
TW9ja1NhbXBsZUJveCogbW9ja1NhbXBsZUJveDsKQEAgLTEwOCw5ICsxMDcsNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCB7IHJldHVy
biBWaWRlb1JvdGF0aW9uOjpOb25lOyB9CiAgICAgdmlydHVhbCBib29sIHZpZGVvTWlycm9yZWQo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdWludDMyX3QgdmlkZW9QaXhl
bEZvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSNpZiBkZWZpbmVkKEVOQUJMRV9WSURFTykg
JiYgRU5BQkxFX1ZJREVPCi0gICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlk
ZW9GcmFtZT4gdmlkZW9GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfTsKLSNl
bmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZpcnR1YWwgQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH07CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5jcHAKaW5kZXggZjA3NjliYTVlNTRhODgwYmU2MzkwOWE5
Y2RhMDMyODdhMzdkM2NmNC4uMmUzNDIxNTExODE1ZmIyOTAzOWE4MjI2MGZkYmM0ZTNiMWRlOGUx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5jcHAKQEAgLTMwLDEwICszMCwz
NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVZpZGVvRnJhbWU6OlZpZGVvRnJhbWUoKSA9
IGRlZmF1bHQ7CitWaWRlb0ZyYW1lOjpWaWRlb0ZyYW1lKE1lZGlhVGltZSBwcmVzZW50YXRpb25U
aW1lLCBib29sIGlzTWlycm9yZWQsIFZpZGVvUm90YXRpb24gcm90YXRpb24pCisgICAgOiBtX3By
ZXNlbnRhdGlvblRpbWUocHJlc2VudGF0aW9uVGltZSkKKyAgICAsIG1faXNNaXJyb3JlZChpc01p
cnJvcmVkKQorICAgICwgbV9yb3RhdGlvbihyb3RhdGlvbikKK3sKK30KIAogVmlkZW9GcmFtZTo6
flZpZGVvRnJhbWUoKSA9IGRlZmF1bHQ7CiAKK01lZGlhVGltZSBWaWRlb0ZyYW1lOjpwcmVzZW50
YXRpb25UaW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcmVzZW50YXRpb25UaW1lOworfQor
CitNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBWaWRlb0ZyYW1lOjp2aWRlb1JvdGF0aW9uKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9yb3RhdGlvbjsKK30KKworYm9vbCBWaWRlb0ZyYW1lOjp2
aWRlb01pcnJvcmVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pc01pcnJvcmVkOworfQorCitX
ZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZSBWaWRlb0ZyYW1lOjpwbGF0Zm9ybVNhbXBsZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIHsgV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OlZpZGVvRnJhbWVUeXBl
LCB7IH0gfTsKK30KKwogTWVkaWFUaW1lIFZpZGVvRnJhbWU6OmRlY29kZVRpbWUoKSBjb25zdAog
ewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFt
ZS5oCmluZGV4IGI2MzFmZDEzZTIyZTMxMjI2NjUwMDE0YmFmNzhkZWE5MGNhYTZmYjIuLmJmZDhm
MDUxM2E1YzZiYmQyM2RhNzhkOTY4YmQ1YWZkYmQzYzY5ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9WaWRlb0ZyYW1lLmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShWSURFTykKIAogI2luY2x1ZGUgIk1lZGlh
U2FtcGxlLmgiCiAKQEAgLTM4LDggKzM4LDIzIEBAIGNsYXNzIFZpZGVvRnJhbWUgOiBwdWJsaWMg
TWVkaWFTYW1wbGUgewogcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIH5WaWRlb0ZyYW1lKCk7
CiAKKyAgICAvLyBXZWJDb3JlOjpNZWRpYVNhbXBsZSBvdmVycmlkZXMuCisgICAgV0VCQ09SRV9F
WFBPUlQgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWUoKSBjb25zdCBmaW5hbDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCBmaW5hbDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIHZpZGVvTWlycm9yZWQoKSBjb25zdCBmaW5hbDsKKyAgICAv
LyBGSVhNRTogV2hlbiBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRpYVNhbXBsZSwgdGhlc2Ugd2lsbCBu
b3QgYmUgbmVlZGVkLgorICAgIFdFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OlBsYXRmb3JtU2FtcGxl
IHBsYXRmb3JtU2FtcGxlKCkgY29uc3QgZmluYWw7CisKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQor
ICAgIHZpcnR1YWwgYm9vbCBpc1JlbW90ZVByb3h5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNDVigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYK
KwogcHJvdGVjdGVkOgotICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvRnJhbWUoKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBWaWRlb0ZyYW1lKE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lLCBib29sIGlz
TWlycm9yZWQsIFZpZGVvUm90YXRpb24pOworICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IE1lZGlh
VGltZSBtX3ByZXNlbnRhdGlvblRpbWU7CisgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgYm9vbCBt
X2lzTWlycm9yZWQ7CisgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgVmlkZW9Sb3RhdGlvbiBtX3Jv
dGF0aW9uOwogCiBwcml2YXRlOgogICAgIC8vIEZJWE1FOiBUaGVzZSBhcmUgbm90IGludGVuZGVk
IHRvIGJlIHVzZWQgZm9yIHRoZXNlIG9iamVjdHMuCkBAIC02MCw0ICs3NSw3IEBAIHByaXZhdGU6
CiAKIH0KIAorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpWaWRlb0ZyYW1l
KQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpNZWRpYVNhbXBsZSYgbWVk
aWFTYW1wbGUpIHsgcmV0dXJuIG1lZGlhU2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBX
ZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZTo6VmlkZW9GcmFtZVR5cGU7IH0KK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfRU5EKCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDBhYmMzMjIzOGQ2NDFhY2E0NWY3Mzk3NzU3ZTRl
NWUxNTFiYTdkYjUuLmVhZTRiZjBiYmNjNDMyMmI2MTcwMGM4NWQ4N2YxNzY4YzdmZGI5NjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAK
QEAgLTEwODgsNyArMTA4OCw3IEBAIGJvb2wgTWVkaWFQbGF5ZXI6OmNvcHlWaWRlb1RleHR1cmVU
b1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCogY29udGV4dCwKIAogI2VuZGlmCiAK
LXN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllcjo6dmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lKCkKK1JlZlB0cjxWaWRlb0ZyYW1lPiBNZWRpYVBsYXllcjo6dmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT52aWRlb0Zy
YW1lRm9yQ3VycmVudFRpbWUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5oCmluZGV4IDVmMGRhYTg2NmYyYzgyMzNhYzhjMTk0YTYxMzNkOTcz
ZjM0NDZmZTguLmIwMzU5MGJiZGM4YjFiYjY2NzEzZDgwZDE3MGU4ZDAzMDk2Y2FiZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMzQs
MTEgKzM0LDExIEBACiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgIk1lZGlhUGxh
eWVyRW51bXMuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllcklkZW50aWZpZXIuaCIKLSNpbmNsdWRl
ICJNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1UZXh0VHJhY2suaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRh
dGEuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgIlZpZGVvRnJhbWUuaCIKICNpbmNs
dWRlICJWaWRlb0ZyYW1lTWV0YWRhdGEuaCIKICNpbmNsdWRlICJWaWRlb1BsYXliYWNrUXVhbGl0
eU1ldHJpY3MuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Gb3J3YXJkLmg+CkBAIC00NzAs
NyArNDcwLDcgQEAgcHVibGljOgogI2lmICFVU0UoQVZGT1VOREFUSU9OKQogICAgIGJvb2wgY29w
eVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiwgUGxhdGZv
cm1HTE9iamVjdCB0ZXh0dXJlLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xl
bnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIGJvb2wg
cHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSk7CiAjZW5kaWYKLSAgICBzdGQ6Om9wdGlvbmFs
PE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CisgICAg
UmVmUHRyPFZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwogICAgIFJlZlB0
cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpOwogICAgIERlc3RpbmF0
aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggZjlmZjRjYmYyODY5
ZDkzMzEyMGVkZTAwZDAxNWU1YWRkZjQ3ODI5MS4uODA5YmUxNjUzMzIyNzIwNzY0ZmEwODE2Yzgz
ODhkYzMyYjU4MWQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTI5LDkgKzI5LDkgQEAKIAogI2luY2x1ZGUg
Ik1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgiCi0jaW5j
bHVkZSAiTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlICJWaWRlb0ZyYW1lLmgi
CiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CiAKQEAgLTE4MSw3ICsxODEsNyBAQCBwdWJsaWM6CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAg
ICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGlj
c0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtLCBHQ0dMaW50LCBHQ0dMZW51
bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKSB7IHJldHVybiBmYWxzZTsgfQogI2Vu
ZGlmCi0gICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9CisgICAgdmly
dHVhbCBSZWZQdHI8VmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1
cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgUmVmUHRyPE5hdGl2ZUltYWdlPiBuYXRpdmVJbWFn
ZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgRGVzdGlu
YXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhU2FtcGxlVmlkZW9GcmFtZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxNDc0Y2ZiMTNmZmIxMTk2ZDNjMjQwNTBhMTYyNmI3
M2I0ODNlZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgK
KysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAy
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFZJREVPKQot
I2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKLQotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0j
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCi11c2luZyBDVlBpeGVsQnVmZmVyUmVmID0gc3Ry
dWN0IF9fQ1ZCdWZmZXIqOwotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
TWVkaWFTYW1wbGVWaWRlb0ZyYW1lIHsKLXB1YmxpYzoKLSAgICBNZWRpYVNhbXBsZVZpZGVvRnJh
bWUoKSA9IGRlbGV0ZTsKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFdFQkNPUkVfRVhQT1JU
IE1lZGlhU2FtcGxlVmlkZW9GcmFtZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiwgSW1h
Z2VPcmllbnRhdGlvbik7Ci0jZW5kaWYKLQotICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRp
b24oKSBjb25zdCB7IHJldHVybiBtX29yaWVudGF0aW9uOyB9Ci0KLSNpZiBVU0UoQVZGT1VOREFU
SU9OKQotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIoKSBjb25zdCB7IHJldHVybiBt
X3BpeGVsQnVmZmVyLmdldCgpOyB9Ci0jZW5kaWYKLQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBNZWRpYVNhbXBsZVZpZGVvRnJhbWUmIG90aGVyKSBjb25zdDsKLQotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVv
RnJhbWU+IGRlY29kZShEZWNvZGVyJik7Ci0KLXByaXZhdGU6Ci0jaWYgVVNFKEFWRk9VTkRBVElP
TikKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlcjsKLSNlbmRp
ZgotICAgIEltYWdlT3JpZW50YXRpb24gbV9vcmllbnRhdGlvbjsKLX07Ci0KLWlubGluZSBib29s
IE1lZGlhU2FtcGxlVmlkZW9GcmFtZTo6b3BlcmF0b3I9PShjb25zdCBNZWRpYVNhbXBsZVZpZGVv
RnJhbWUmIG90aGVyKSBjb25zdAotewotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgaWYgKG1f
cGl4ZWxCdWZmZXIgIT0gb3RoZXIubV9waXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotI2VuZGlmCi0gICAgcmV0dXJuIEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uKG90aGVy
Lm1fb3JpZW50YXRpb24pID09IEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uKG1fb3JpZW50
YXRpb24pOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIE1lZGlhU2FtcGxl
VmlkZW9GcmFtZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0jaWYgVVNFKEFW
Rk9VTkRBVElPTikKLSAgICBlbmNvZGVyIDw8IG1fcGl4ZWxCdWZmZXI7Ci0gICAgZW5jb2RlciA8
PCBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbihtX29yaWVudGF0aW9uKTsKLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKGVuY29kZXIpOwotI2VuZGlmCi19Ci0KLXRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVNhbXBs
ZVZpZGVvRnJhbWU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotI2lmIFVTRShBVkZPVU5E
QVRJT04pCi0gICAgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHBp
eGVsQnVmZmVyOwotICAgIGRlY29kZXIgPj4gcGl4ZWxCdWZmZXI7Ci0gICAgaWYgKCFwaXhlbEJ1
ZmZlcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBzdGQ6Om9wdGlvbmFsPElt
YWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uPiBvcmllbnRhdGlvbjsKLSAgICBkZWNvZGVyID4+
IG9yaWVudGF0aW9uOwotICAgIGlmICghb3JpZW50YXRpb24pCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0gICAgcmV0dXJuIE1lZGlhU2FtcGxlVmlkZW9GcmFtZSB7IFdURk1vdmUoKnBp
eGVsQnVmZmVyKSwgKm9yaWVudGF0aW9uIH07Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShkZWNv
ZGVyKTsKLSAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotI2VuZGlmCi19Ci0KLX0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhU2FtcGxlVmlkZW9GcmFtZUFWRi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0OTU5ODEyZjY2ZmNhNzA1NDE3YjAyYWY1NTFmZmMxMzFh
ODQzNjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2FtcGxlVmlk
ZW9GcmFtZUFWRi5tbQorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0K
LSNpZiBFTkFCTEUoVklERU8pCi0jaW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgiCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotTWVkaWFTYW1wbGVWaWRlb0ZyYW1lOjpNZWRpYVNhbXBs
ZVZpZGVvRnJhbWUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYgcGl4ZWxCdWZmZXIsIElt
YWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCi0gICAgOiBtX3BpeGVsQnVmZmVyKFdURk1vdmUo
cGl4ZWxCdWZmZXIpKQotICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKLXsKLX0KLQot
fQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCAzODM3NzJjNTA0NDkyOWI5ZTUx
NTc4NDE2ZGVmNjRmODc4ODAyMzY0Li4wMmYwOTNhOGUwOTQ2MGZmZWZjOGY5M2FjYTIzZDIyYzk2
MWJjOWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0yNjIsNyArMjYyLDcgQEAgcHJpdmF0
ZToKICAgICBib29sIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpOwogICAgIGJvb2wgdmlkZW9PdXRw
dXRIYXNBdmFpbGFibGVGcmFtZSgpOwogICAgIHZvaWQgcGFpbnRXaXRoVmlkZW9PdXRwdXQoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jik7Ci0gICAgc3RkOjpvcHRpb25hbDxNZWRp
YVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOworICAg
IFJlZlB0cjxWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKICAg
ICBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsK
ICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGZpbmFsOwogICAgIHZvaWQg
d2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0KaW5kZXggYWRiM2JkMWI3MGY0Mjk1OTgzYWQ1YTIyZTRiZWMyZjY1MGQwNzc3YS4uYjE4
NWU5NWU3ZDZkMWEwMzc4NmM4OWM4ZmRlOTM1ZGFkOWU3MmZlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLm1tCkBAIC02OCw2ICs2OCw3IEBACiAjaW1wb3J0ICJTb3VyY2VCdWZmZXJQYXJzZXJXZWJN
LmgiCiAjaW1wb3J0ICJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIgogI2ltcG9ydCAiVVRJVXRp
bGl0aWVzLmgiCisjaW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIKICNpbXBvcnQgIlZpZGVvTGF5ZXJN
YW5hZ2VyT2JqQy5oIgogI2ltcG9ydCAiVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgiCiAjaW1w
b3J0ICJXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCIKQEAgLTI3MjIsMTIgKzI3MjMsMTIgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhWaWRlb091
dHB1dChHcmFwaGljc0NvbnRleHQmIGMKIAogfQogCi1zdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxl
VmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lKCkKK1JlZlB0cjxWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewogICAgIHVwZGF0
ZUxhc3RQaXhlbEJ1ZmZlcigpOwogICAgIGlmICghbV9sYXN0UGl4ZWxCdWZmZXIpCi0gICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIE1lZGlhU2FtcGxlVmlkZW9GcmFtZSB7
IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3JpZW50YXRpb246Ok5vbmUg
fTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFZpZGVvRnJhbWVDVjo6Y3Jl
YXRlKGN1cnJlbnRNZWRpYVRpbWUoKSwgZmFsc2UsIFZpZGVvRnJhbWVDVjo6VmlkZW9Sb3RhdGlv
bjo6Tm9uZSwgUmV0YWluUHRyIHsgbV9sYXN0UGl4ZWxCdWZmZXIgfSk7CiB9CiAKIFJlZlB0cjxO
YXRpdmVJbWFnZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bmF0aXZlSW1h
Z2VGb3JDdXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IGJjYWQxMjU0
MzYzYTE4N2M2OGEzMzY4ZmE3YTdhMTQ4NTE1YjgyZTUuLjVlMTMwYWYxYWIxNDUzNzdjNGFiNDJj
NGE0YmQ2NjJjNWY3NjljYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0yMjIsNyAr
MjIyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUxhc3RJbWFnZSgpOwogICAgIHZvaWQg
cGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBG
bG9hdFJlY3QmKSBvdmVycmlkZTsKLSAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9G
cmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CisgICAgUmVmUHRyPFZpZGVv
RnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIERlc3RpbmF0aW9u
Q29sb3JTcGFjZSBjb2xvclNwYWNlKCkgZmluYWw7CiAKICAgICBib29sIHN1cHBvcnRzQWNjZWxl
cmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5t
bQppbmRleCBlOTVmOGMzY2FjZjBhZGUxODExZjExYmFlNjgzYmU0YjVmYjE1NTMzLi43NTRiMjA3
ZjY3NTEyYTVhYTA5MjQwNzJhZDMwOTFhNjU4MDU3NzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJNZWRpYVNvdXJjZVByaXZhdGVDbGll
bnQuaCIKICNpbXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCIKICNpbXBvcnQgIlRleHRU
cmFja1JlcHJlc2VudGF0aW9uLmgiCisjaW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIKICNpbXBvcnQg
IlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oIgogI2ltcG9ydCAiV2ViQ29yZURlY29tcHJlc3Npb25T
ZXNzaW9uLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZBc3NldC5oPgpAQCAtNzI1LDcgKzcy
Niw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYWludEN1
cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZlSW1h
Z2UoKmltYWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCBvdXRwdXRSZWN0LCBpbWFnZVJlY3QpOwogfQog
Ci1zdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQorUmVmUHRyPFZp
ZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6dmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICAvLyBXZSBoYXZlIGJlZW4gYXNrZWQgdG8gcGFpbnQg
aW50byBhIFdlYkdMIGNhbnZhcywgc28gdGFrZSB0aGF0IGFzIGEgc2lnbmFsIHRvIGNyZWF0ZQog
ICAgIC8vIGEgZGVjb21wcmVzc2lvbiBzZXNzaW9uLCBldmVuIGlmIHRoYXQgbWVhbnMgdGhlIG5h
dGl2ZSB2aWRlbyBjYW4ndCBhbHNvIGJlIGRpc3BsYXllZApAQCAtNzM4LDggKzczOSw4IEBAIHN0
ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnZpZGVvCiAgICAgaWYgKCFtX2lzR2F0aGVyaW5nVmlkZW9GcmFtZU1l
dGFkYXRhKQogICAgICAgICB1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKTsKICAgICBpZiAoIW1fbGFz
dFBpeGVsQnVmZmVyKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBN
ZWRpYVNhbXBsZVZpZGVvRnJhbWUgeyBSZXRhaW5QdHIgeyBtX2xhc3RQaXhlbEJ1ZmZlciB9LCBJ
bWFnZU9yaWVudGF0aW9uOjpOb25lIH07CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJl
dHVybiBWaWRlb0ZyYW1lQ1Y6OmNyZWF0ZShjdXJyZW50TWVkaWFUaW1lKCksIGZhbHNlLCBWaWRl
b0ZyYW1lQ1Y6OlZpZGVvUm90YXRpb246Ok5vbmUsIFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVm
ZmVyIH0pOwogfQogCiBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpjb2xvclNwYWNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgKaW5k
ZXggNTE2ZGNkYTk2ODY3Zjc1OWZhYzVlMjA0MDkyNzVjYzA4OWMwYjMxOC4uZmY1MWZjYTc3NmY4
OTdmNTY1NDQ1Mzg0N2IwYTFlZDg0OGNjMzRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgK
QEAgLTE0Myw3ICsxNDMsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwYWludChHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVu
dEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJy
aWRlOwotICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWUoKSBvdmVycmlkZTsKKyAgICBSZWZQdHI8VmlkZW9GcmFtZT4gdmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lKCkgb3ZlcnJpZGU7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNl
IGNvbG9yU3BhY2UoKSBvdmVycmlkZTsKICAgICBib29sIG1ldGFEYXRhQXZhaWxhYmxlKCkgY29u
c3QgeyByZXR1cm4gbV9tZWRpYVN0cmVhbVByaXZhdGUgJiYgbV9yZWFkeVN0YXRlID49IE1lZGlh
UGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGE7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLm1tCmluZGV4IDQyZmQxNzQ4N2VhNmNkMTcxMDUwNTA1ZmY1ZjNmZjVlZGZiZTdlMTUuLjI1
ZmFkOTA5MTBhYjVlNGIzZWVmMDlkYjQ3ZTY5ZjZlMWI4MDJlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0KQEAgLTMwLDkgKzMwLDEwIEBACiAKICNpbXBvcnQgIkF1ZGlvVHJhY2tQcml2
YXRlTWVkaWFTdHJlYW0uaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCi0jaW1wb3J0
ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5oIgor
I2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFQbGF5ZXIuaCIKKyNpbXBvcnQgIk1l
ZGlhU2FtcGxlQVZGT2JqQy5oIgogI2ltcG9ydCAiTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmgi
CiAjaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNpbXBvcnQgIlBpeGVsQnVmZmVyQ29u
Zm9ybWVyQ1YuaCIKQEAgLTEwMjIsMTUgKzEwMjMsMTggQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNz
Q28KICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqaW1hZ2UsIGltYWdlUmVjdC5zaXplKCks
IHRyYW5zZm9ybWVkRGVzdFJlY3QsIGltYWdlUmVjdCk7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8TWVk
aWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCitSZWZQdHI8VmlkZW9GcmFtZT4gTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQog
ewogICAgIGlmIChtX2Rpc3BsYXlNb2RlID09IE5vbmUgfHwgIW1ldGFEYXRhQXZhaWxhYmxlKCkp
Ci0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIGlmIChtX2Rpc3BsYXlNb2RlID09IFBhaW50SXRCbGFjaykKLSAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFtX2ltYWdlUGFp
bnRlci5tZWRpYVNhbXBsZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1
cm4gbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUtPnZpZGVvRnJhbWUoKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgaWYgKGlzPFZpZGVvRnJhbWU+KCptX2ltYWdlUGFpbnRlci5tZWRp
YVNhbXBsZSkpCisgICAgICAgIHJldHVybiAmZG93bmNhc3Q8VmlkZW9GcmFtZT4oKm1faW1hZ2VQ
YWludGVyLm1lZGlhU2FtcGxlKTsKKyAgICBBU1NFUlQoaXM8TWVkaWFTYW1wbGVBVkZPYmpDPigq
bV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8TWVkaWFT
YW1wbGVBVkZPYmpDPigqbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUpLnZpZGVvRnJhbWUoKTsK
IH0KIAogRGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6Y29sb3JTcGFjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxl
QVZGT2JqQy5oCmluZGV4IDViNGY3ZjAwZGIzM2E1YmNkZjY1NmM2MDIyZjE0ODM0ZjQxYzU5MDYu
LjU4MTRjZjYzNWZlZDllZTA5NTFiMTI1ZTVjY2Y4MzQ0NDg0OTRkNjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCkBAIC0zNSw2ICszNSw3IEBAIHVzaW5n
IENWUGl4ZWxCdWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1ZmZlcio7CiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFBpeGVsQnVmZmVyOworY2xhc3MgVmlkZW9GcmFtZUNWOwogCiBjbGFzcyBN
ZWRpYVNhbXBsZUFWRk9iakMgOiBwdWJsaWMgTWVkaWFTYW1wbGUgewogcHVibGljOgpAQCAtNzEs
NyArNzIsNiBAQCBwdWJsaWM6CiAgICAgVmlkZW9Sb3RhdGlvbiB2aWRlb1JvdGF0aW9uKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9yb3RhdGlvbjsgfQogICAgIGJvb2wgdmlkZW9NaXJyb3Jl
ZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbWlycm9yZWQ7IH0KICAgICBXRUJDT1JFX0VY
UE9SVCB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QgZmluYWw7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWUo
KSBjb25zdCBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCBDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyKCkgY29uc3QgZmluYWw7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVy
KCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGUuZ2V0KCk7IH0KIApAQCAtODAsNiArODAsOCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldEJ5dGVSYW5nZU9mZnNldChzaXplX3QpOwogCisgICAgLy8g
RklYTUU6IFRvIGJlIHJlbW92ZWQgb25jZSBWaWRlb0ZyYW1lIGlzIG5vdCBhIE1lZGlhU2FtcGxl
LgorICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxWaWRlb0ZyYW1lQ1Y+IHZpZGVvRnJhbWUoKSBj
b25zdDsKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVNhbXBsZUFWRk9iakMo
UmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBNZWRp
YVNhbXBsZUFWRk9iakMoQ01TYW1wbGVCdWZmZXJSZWYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZP
YmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCmluZGV4IDUwMDQzNDBmZWY0OWU0MmViMmZkZjgzNGZm
YzI3OTE1M2Y1ODE0ZTcuLjYxMDMwNTg2NDVhZDY3ZmViNjhkZjc2MzY0NDE2NTYzNDVjYjQ5Nzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2ltcG9ydCAiUGl4ZWxCdWZmZXIuaCIKICNpbXBvcnQgIlBpeGVsQnVm
ZmVyQ29uZm9ybWVyQ1YuaCIKKyNpbXBvcnQgIlZpZGVvRnJhbWVDVi5oIgogI2ltcG9ydCA8SmF2
YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvVHlwZWRB
cnJheUlubGluZXMuaD4KICNpbXBvcnQgPHd0Zi9QcmludFN0cmVhbS5oPgpAQCAtMTY1LDI1ICsx
NjYsMTQgQEAgdWludDMyX3QgTWVkaWFTYW1wbGVBVkZPYmpDOjp2aWRlb1BpeGVsRm9ybWF0KCkg
Y29uc3QKICAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1
ZmZlcik7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVNh
bXBsZUFWRk9iakM6OnZpZGVvRnJhbWUoKSBjb25zdAorUmVmUHRyPFZpZGVvRnJhbWVDVj4gTWVk
aWFTYW1wbGVBVkZPYmpDOjp2aWRlb0ZyYW1lKCkgY29uc3QKIHsKKyAgICBpZiAoIW1fc2FtcGxl
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3RhdGlj
X2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVy
KG1fc2FtcGxlLmdldCgpKSk7CiAgICAgaWYgKCFwaXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKLSAgICBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uID0gWyZdIHsK
LSAgICAgICAgLy8gU2FtcGxlIHRyYW5zZm9ybSBmaXJzdCBmbGlwcyB4LWNvb3JkaW5hdGVzLCB0
aGVuIHJvdGF0ZXMuCi0gICAgICAgIHN3aXRjaCAobV9yb3RhdGlvbikgewotICAgICAgICBjYXNl
IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOgotICAgICAgICAgICAgcmV0dXJuIG1f
bWlycm9yZWQgPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Ub3BSaWdodCA6IEltYWdlT3JpZW50
YXRpb246Ok9yaWdpblRvcExlZnQ7Ci0gICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90
YXRpb246OlJpZ2h0OgotICAgICAgICAgICAgcmV0dXJuIG1fbWlycm9yZWQgPyBJbWFnZU9yaWVu
dGF0aW9uOjpPcmlnaW5SaWdodEJvdHRvbSA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblJpZ2h0
VG9wOwotICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3du
OgotICAgICAgICAgICAgcmV0dXJuIG1fbWlycm9yZWQgPyBJbWFnZU9yaWVudGF0aW9uOjpPcmln
aW5Cb3R0b21MZWZ0IDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9tUmlnaHQ7Ci0gICAg
ICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQ6Ci0gICAgICAgICAgICBy
ZXR1cm4gbV9taXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkxlZnRUb3AgOiBJbWFn
ZU9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0Qm90dG9tOwotICAgICAgICB9Ci0gICAgfSgpOwotICAg
IHJldHVybiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgeyBSZXRhaW5QdHIgeyBwaXhlbEJ1ZmZlciB9
LCBvcmllbnRhdGlvbiB9OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gVmlk
ZW9GcmFtZUNWOjpjcmVhdGUocHJlc2VudGF0aW9uVGltZSgpLCBtX21pcnJvcmVkLCBtX3JvdGF0
aW9uLCBSZXRhaW5QdHIgeyBwaXhlbEJ1ZmZlciB9KTsKIH0KIAogc3RhdGljIGJvb2wgaXNDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MoQ0ZEaWN0aW9uYXJ5UmVmIGF0dGFjaG1l
bnREaWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KaW5kZXggMzZlOGYwZmIwMjkz
NzdiNGVmZmU0MDUzNTIzN2U1ODIyMmZiZjc3MS4uNjc2MjZiZmRmZjhhMDM0ZWQ5YTFjYTU0Zjk0
Y2I2MTQ4YTQ5MmVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0zNiw2
ICszNiw3IEBACiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHku
aCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgorI2ltcG9ydCAiVmlkZW9G
cmFtZUNWLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1w
b3J0IDxNZXRhbC9NZXRhbC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9NZXRhbFNQSS5oPgpA
QCAtNzkwLDYgKzc5MSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRleHR1
cmVGcm9tTWVkaWEoTWVkaWFQbGF5ZXImIHBsYXllciwgUGxhdGZvcm1HCiAgICAgYXV0byB2aWRl
b0ZyYW1lID0gcGxheWVyLnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwogICAgIGlmICghdmlk
ZW9GcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIEFTU0VSVChpczxWaWRlb0ZyYW1l
Q1Y+KCp2aWRlb0ZyYW1lKSk7CiAKICAgICBhdXRvIGNvbnRleHRDViA9IGFzQ1YoKTsKICAgICBp
ZiAoIWNvbnRleHRDVikKQEAgLTc5Nyw3ICs3OTksNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdM
Q29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKE1lZGlhUGxheWVyJiBwbGF5ZXIsIFBsYXRmb3Jt
RwogCiAgICAgVU5VU0VEX1ZBUklBQkxFKHByZW11bHRpcGx5QWxwaGEpOwogICAgIEFTU0VSVF9V
TlVTRUQob3V0cHV0VGFyZ2V0LCBvdXRwdXRUYXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0R0w6OlRF
WFRVUkVfMkQpOwotICAgIHJldHVybiBjb250ZXh0Q1YtPmNvcHlWaWRlb1NhbXBsZVRvVGV4dHVy
ZSgqdmlkZW9GcmFtZSwgb3V0cHV0VGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3Jt
YXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpOworICAgIHJldHVybiBj
b250ZXh0Q1YtPmNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShkb3duY2FzdDxWaWRlb0ZyYW1lQ1Y+
KCp2aWRlb0ZyYW1lKSwgb3V0cHV0VGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3Jt
YXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpOwogfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNz
Q29udGV4dEdMQ1YuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBo
aWNzQ29udGV4dEdMQ1YuaAppbmRleCBhYzE0NzVlOWRhMzZlZDE0MTM1MjJlOTY5MTIyYjYzMWUz
MTkzZWZhLi5jNjAyZmJlYjcyOTY4ZGFmNjQyMTdmMDFmOTUwYTI0YTdjNWJmOGY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRH
TENWLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3ND
b250ZXh0R0xDVi5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
R0wuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgTWVkaWFTYW1wbGVWaWRlb0ZyYW1l
OworY2xhc3MgVmlkZW9GcmFtZUNWOwogCiAvLyBJbnRlcmZhY2UgdG8gaW50ZXJhY3Qgd2l0aCBD
ViBvYmplY3RzIGFuZCBHcmFwaGljc0NvbnRleHRHTC4KIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdM
Q1YgewpAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgRmxpcFkgPSBHcmFwaGlj
c0NvbnRleHRHTDo6RmxpcFk7CiAgICAgLy8gQ29waWVzIENWIHBpeGVsIGJ1ZmZlciB0byBHcmFw
aGljc0NvbnRleHRHTCBURVhUVVJFXzJEIHRleHR1cmUgb2YgdGhlIHNhbWUgc2l6ZSBhcyB0aGUg
cGl4ZWwgYnVmZmVyLgogICAgIC8vIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgotICAgIHZpcnR1
YWwgYm9vbCBjb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoY29uc3QgTWVkaWFTYW1wbGVWaWRlb0Zy
YW1lJiwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50IGxldmVsLCBHQ0dM
ZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBGbGlw
WSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoY29uc3Qg
VmlkZW9GcmFtZUNWJiwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dMaW50IGxl
dmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0
eXBlLCBGbGlwWSkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAK
aW5kZXggMmM5OGY5ZDkyOTIzYzA0OWE5NGIzNDliNGY3NzUyOTQ3NzE5ZTIyOC4uYWY0YmM4MWIy
YWY4NWFhYzAzZGRkZjBmNzdjOTk3ZmRlNjMyN2ZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENW
Q29jb2EuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRm91ckNDLmgiCiAjaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNs
dWRlICJWaWRlb0ZyYW1lQ1YuaCIKICNpbmNsdWRlIDxwYWwvc3BpL2NmL0NvcmVWaWRlb1NQSS5o
PgogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvSU9TdXJmYWNlU1BJLmg+CiAjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CkBAIC01ODUsNyArNTg2LDcgQEAgR3JhcGhpY3NDb250ZXh0R0xD
VkNvY29hOjpHcmFwaGljc0NvbnRleHRHTENWQ29jb2EoR3JhcGhpY3NDb250ZXh0R0xDb2NvYSYg
b3duZXIKICAgICBHTF9CaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZnJhbWVidWZm
ZXIpOwogfQogCi1ib29sIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVZpZGVvU2FtcGxl
VG9UZXh0dXJlKGNvbnN0IE1lZGlhU2FtcGxlVmlkZW9GcmFtZSYgdmlkZW9GcmFtZSwgUGxhdGZv
cm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsRm9y
bWF0LCBHTGVudW0gZm9ybWF0LCBHTGVudW0gdHlwZSwgRmxpcFkgdW5wYWNrRmxpcFkpCitib29s
IEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKGNvbnN0
IFZpZGVvRnJhbWVDViYgdmlkZW9GcmFtZSwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJl
LCBHTGludCBsZXZlbCwgR0xlbnVtIGludGVybmFsRm9ybWF0LCBHTGVudW0gZm9ybWF0LCBHTGVu
dW0gdHlwZSwgRmxpcFkgdW5wYWNrRmxpcFkpCiB7CiAgICAgYXV0byBpbWFnZSA9IHZpZGVvRnJh
bWUucGl4ZWxCdWZmZXIoKTsKICAgICAvLyBGSVhNRTogVGhpcyBjdXJyZW50bHkgb25seSBzdXBw
b3J0cyAnNDIwdicgYW5kICc0MjBmJyBwaXhlbCBmb3JtYXRzLiBJbnZlc3RpZ2F0ZSBzdXBwb3J0
aW5nIG1vcmUgcGl4ZWwgZm9ybWF0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmgKaW5kZXgg
OWUxYjQ0NDlkM2I0YmI5ZjVjMGQ3YWU4ZDg1ZjMwZWYxZDA0YmE4YS4uNzYwODlkY2FiNDIzZDk1
MDkxMDA1ZTY3OGYwM2FjZDNkYTcyYjE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmgK
QEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogCiAgICAgfkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2Nv
YSgpIGZpbmFsOwogCi0gICAgYm9vbCBjb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoY29uc3QgTWVk
aWFTYW1wbGVWaWRlb0ZyYW1lJiwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBHQ0dM
aW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dM
ZW51bSB0eXBlLCBGbGlwWSkgZmluYWw7CisgICAgYm9vbCBjb3B5VmlkZW9TYW1wbGVUb1RleHR1
cmUoY29uc3QgVmlkZW9GcmFtZUNWJiwgUGxhdGZvcm1HTE9iamVjdCBvdXRwdXRUZXh0dXJlLCBH
Q0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBH
Q0dMZW51bSB0eXBlLCBGbGlwWSkgZmluYWw7CiAKICAgICB2b2lkIGludmFsaWRhdGVLbm93blRl
eHR1cmVDb250ZW50KEdDR0x1aW50IHRleHR1cmUpOwogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWM2Yzg4OGE3MzlkOGIwMDJhNjlmNGVhZDJiZGU0N2ViNzdhYzRhYgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5oCkBA
IC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCisKKyNpbmNsdWRlICJJbWFnZU9yaWVu
dGF0aW9uLmgiCisjaW5jbHVkZSAiVmlkZW9GcmFtZS5oIgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KKwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBWaWRlb0ZyYW1lQ1YgOiBwdWJsaWMgVmlkZW9G
cmFtZSB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxWaWRlb0ZyYW1l
Q1Y+IGNyZWF0ZShNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSwgYm9vbCBpc01pcnJvcmVkLCBW
aWRlb1JvdGF0aW9uLCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJik7CisgICAgV0VCQ09S
RV9FWFBPUlQgflZpZGVvRnJhbWVDVigpOworCisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1
ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxCdWZmZXIuZ2V0KCk7IH0KKyAgICBJbWFnZU9y
aWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFZpZGVvRnJhbWVDVj4+IGRl
Y29kZShEZWNvZGVyJik7CisKKyAgICAvLyBWaWRlb0ZyYW1lIG92ZXJyaWRlcy4KKyAgICBXZWJD
b3JlOjpGbG9hdFNpemUgcHJlc2VudGF0aW9uU2l6ZSgpIGNvbnN0IGZpbmFsOworICAgIHVpbnQz
Ml90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGlzQ1YoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKK3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBPUlQg
VmlkZW9GcmFtZUNWKE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lLCBib29sIGlzTWlycm9yZWQs
IFZpZGVvUm90YXRpb24sIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmKTsKKworICAgIGNv
bnN0IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyOworfTsKKwordGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBWaWRlb0ZyYW1lQ1Y6OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9wcmVzZW50YXRpb25UaW1lIDw8
IG1faXNNaXJyb3JlZCA8PCBtX3JvdGF0aW9uIDw8IG1fcGl4ZWxCdWZmZXI7Cit9CisKK3RlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFZpZGVvRnJhbWVDVj4+
IFZpZGVvRnJhbWVDVjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgYXV0byBwcmVz
ZW50YXRpb25UaW1lID0gZGVjb2Rlci50ZW1wbGF0ZSBkZWNvZGU8TWVkaWFUaW1lPigpOworICAg
IGF1dG8gaXNNaXJyb3JlZCA9IGRlY29kZXIudGVtcGxhdGUgZGVjb2RlPGJvb2w+KCk7CisgICAg
YXV0byByb3RhdGlvbiA9IGRlY29kZXIudGVtcGxhdGUgZGVjb2RlPFZpZGVvUm90YXRpb24+KCk7
CisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IGRlY29kZXIudGVtcGxhdGUgZGVjb2RlPFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPj4oKTsKKyAgICBpZiAoIWRlY29kZXIuaXNWYWxpZCgpIHx8ICEq
cGl4ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIFZp
ZGVvRnJhbWVDVjo6Y3JlYXRlKCpwcmVzZW50YXRpb25UaW1lLCAqaXNNaXJyb3JlZCwgKnJvdGF0
aW9uLCBXVEZNb3ZlKCpwaXhlbEJ1ZmZlcikpOworfQorCit9CisKK1NQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfQkVHSU4oV2ViQ29yZTo6VmlkZW9GcmFtZUNWKQorICAgIHN0YXRpYyBib29sIGlzVHlw
ZShjb25zdCBXZWJDb3JlOjpWaWRlb0ZyYW1lJiB2aWRlb0ZyYW1lKSB7IHJldHVybiB2aWRlb0Zy
YW1lLmlzQ1YoKTsgfQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpNZWRp
YVNhbXBsZSYgbWVkaWFTYW1wbGUpIHsgcmV0dXJuIGlzPFdlYkNvcmU6OlZpZGVvRnJhbWU+KG1l
ZGlhU2FtcGxlKSAmJiBpczxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+KGRvd25jYXN0PFdlYkNvcmU6
OlZpZGVvRnJhbWU+KG1lZGlhU2FtcGxlKSk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5E
KCkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9WaWRlb0ZyYW1lQ1YubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9WaWRlb0ZyYW1lQ1YubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzUxMGMyODg5NDk5NzViODJlMjlhMjg1MTQ4
OWRhODFhODU3OTEyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5tbQpAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlZpZGVvRnJhbWVDVi5oIgorCisjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikKKyNpbmNsdWRlICJDb3Jl
VmlkZW9Tb2Z0TGluay5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxWaWRlb0ZyYW1l
Q1Y+IFZpZGVvRnJhbWVDVjo6Y3JlYXRlKE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lLCBib29s
IGlzTWlycm9yZWQsIFZpZGVvUm90YXRpb24gcm90YXRpb24sIFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiYmIHBpeGVsQnVmZmVyKQoreworICAgIEFTU0VSVChwaXhlbEJ1ZmZlcik7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9GcmFtZUNWKHByZXNlbnRhdGlvblRpbWUsIGlzTWly
cm9yZWQsIHJvdGF0aW9uLCBXVEZNb3ZlKHBpeGVsQnVmZmVyKSkpOworfQorCitWaWRlb0ZyYW1l
Q1Y6OlZpZGVvRnJhbWVDVihNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSwgYm9vbCBpc01pcnJv
cmVkLCBWaWRlb1JvdGF0aW9uIHJvdGF0aW9uLCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4m
JiBwaXhlbEJ1ZmZlcikKKyAgICA6IFZpZGVvRnJhbWUocHJlc2VudGF0aW9uVGltZSwgaXNNaXJy
b3JlZCwgcm90YXRpb24pCisgICAgLCBtX3BpeGVsQnVmZmVyKFdURk1vdmUocGl4ZWxCdWZmZXIp
KQoreworfQorCitWaWRlb0ZyYW1lQ1Y6On5WaWRlb0ZyYW1lQ1YoKSA9IGRlZmF1bHQ7CisKK1dl
YkNvcmU6OkZsb2F0U2l6ZSBWaWRlb0ZyYW1lQ1Y6OnByZXNlbnRhdGlvblNpemUoKSBjb25zdAor
eworICAgIHJldHVybiB7IHN0YXRpY19jYXN0PGZsb2F0PihDVlBpeGVsQnVmZmVyR2V0V2lkdGgo
bV9waXhlbEJ1ZmZlci5nZXQoKSkpLCBzdGF0aWNfY2FzdDxmbG9hdD4oQ1ZQaXhlbEJ1ZmZlckdl
dEhlaWdodChtX3BpeGVsQnVmZmVyLmdldCgpKSkgfTsKK30KKwordWludDMyX3QgVmlkZW9GcmFt
ZUNWOjp2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZl
ckdldFBpeGVsRm9ybWF0VHlwZShtX3BpeGVsQnVmZmVyLmdldCgpKTsKK30KKworSW1hZ2VPcmll
bnRhdGlvbiBWaWRlb0ZyYW1lQ1Y6Om9yaWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICAvLyBTYW1w
bGUgdHJhbnNmb3JtIGZpcnN0IGZsaXBzIHgtY29vcmRpbmF0ZXMsIHRoZW4gcm90YXRlcy4KKyAg
ICBzd2l0Y2ggKG1fcm90YXRpb24pIHsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0
aW9uOjpOb25lOgorICAgICAgICByZXR1cm4gbV9pc01pcnJvcmVkID8gSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luVG9wUmlnaHQgOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Ub3BMZWZ0OworICAg
IGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0OgorICAgICAgICByZXR1cm4g
bV9pc01pcnJvcmVkID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRCb3R0b20gOiBJbWFn
ZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodFRvcDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRl
b1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAgICAgICByZXR1cm4gbV9pc01pcnJvcmVkID8gSW1h
Z2VPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9tTGVmdCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdp
bkJvdHRvbVJpZ2h0OworICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQ6
CisgICAgICAgIHJldHVybiBtX2lzTWlycm9yZWQgPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5M
ZWZ0VG9wIDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luTGVmdEJvdHRvbTsKKyAgICB9Cit9CisK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCAwNGNhMTBlMThmMTUw
ODE1ZjNmZDY5M2ZmYjMyNjk1MzQyMjdkOTZhLi40YTY3YzVkMTZlNWEwZmY5Zjk4N2ZkMjQzYTJk
Yjk1OGQzZGUyYThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTI4Nyw3ICsyODcs
NyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYShX
ZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZQogICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0
aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5VU0VEKHRhcmdldCwgdGFyZ2V0ID09IEdyYXBoaWNz
Q29udGV4dEdMOjpURVhUVVJFXzJEKTsKIAotICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVW
aWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOworICAgIFJlZlB0cjxWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1l
OwogICAgIGF1dG8gZ2V0VmlkZW9GcmFtZSA9IFsmXSB7CiAgICAgICAgIGlmICghbV9ncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjk4LDcgKzI5OCw3
IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKFdl
YkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllCiAKICAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdh
aXQoV1RGTW92ZShnZXRWaWRlb0ZyYW1lKSk7CiAKLSAgICBpZiAoIXZpZGVvRnJhbWUpIHsKKyAg
ICBpZiAoIXZpZGVvRnJhbWUgfHwgIWlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpKSB7CiAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
QEAgLTMwOSw3ICszMDksNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4
dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dENWLT5jb3B5VmlkZW9T
YW1wbGVUb1RleHR1cmUoKnZpZGVvRnJhbWUsIHRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1h
dCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKSk7CisgICAg
Y29tcGxldGlvbkhhbmRsZXIoY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoZG93
bmNhc3Q8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSksIHRleHR1cmUsIGxldmVsLCBpbnRlcm5h
bEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKSk7
CiAjZWxzZQogICAgIFVOVVNFRF9WQVJJQUJMRShtZWRpYVBsYXllcklkZW50aWZpZXIpOwogICAg
IFVOVVNFRF9WQVJJQUJMRSh0ZXh0dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCA0MmEzMjA2
NTRiMDNkZjliNDM5Nzc3OTQyNTY0NTgyMDA2Y2RhMTEwLi4xOGQwMDRkZjdkOTI2ODhmNTBjYjky
MTI2NTNkMTY0NjNjYTcyM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC02Nyw2ICs2Nyw3IEBA
CiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0ZyYW1lQ1YuaD4KICNlbmRp
ZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEwNyw3ICsxMDgsNyBAQCB2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OmludmFsaWRhdGUoKQogICAgIH0KICAgICBtX3JlbmRlcmluZ1Jlc291
cmNlc1JlcXVlc3QgPSB7IH07CiAjaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBtX3ZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZSA9IHN0ZDo6bnVsbG9wdDsKKyAgICBtX3ZpZGVvRnJhbWVGb3JDdXJy
ZW50VGltZSA9IG51bGxwdHI7CiAjZW5kaWYKIH0KIApAQCAtODY4LDIwICs4NjksMjggQEAgdm9p
ZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpjdXJyZW50VGltZUNoYW5nZWQoY29uc3QgTWVkaWFU
aW1lJiBtZWRpYVRpbWUpCiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpDdXJyZW50VGltZUNoYW5nZWQobWVkaWFUaW1l
LCBNb25vdG9uaWNUaW1lOjpub3coKSwgIW1lZGlhUGxheWVyUGF1c2VkT3JTdGFsbGVkKCkpLCBt
X2lkKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3Vy
cmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4mJiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCisvLyBGSVhNRTogVGhpcyB3aWxsIGJlIHR1cm5lZCBpbnRvIGNyb3NzLXBsYXRmb3JtIGNv
ZGUgc29vbi4KKyNpZiBQTEFURk9STShDT0NPQSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc3RkOjpvcHRpb25hbDxSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPj4mJiwgYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRp
YVNhbXBsZVZpZGVvRnJhbWU+IHJlc3VsdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxXZWJD
b3JlOjpWaWRlb0ZyYW1lQ1Y+PiByZXN1bHQ7CiAgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7Ci0g
ICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJh
bWU7CisgICAgUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWU+IHZpZGVvRnJhbWU7CiAgICAgaWYg
KG1fcGxheWVyKQogICAgICAgICB2aWRlb0ZyYW1lID0gbV9wbGF5ZXItPnZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSgpOwotICAgIGlmICghKG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID09IHZp
ZGVvRnJhbWUpKSB7CisgICAgaWYgKG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lICE9IHZpZGVv
RnJhbWUpIHsKICAgICAgICAgbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSB2aWRlb0ZyYW1l
OwogICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgcmVzdWx0ID0gV1RGTW92ZSh2aWRl
b0ZyYW1lKTsKKyAgICAgICAgUmVmUHRyPFZpZGVvRnJhbWVDVj4gdmlkZW9GcmFtZUNWOworICAg
ICAgICBpZiAodmlkZW9GcmFtZSkgeworICAgICAgICAgICAgQVNTRVJUKGlzPFZpZGVvRnJhbWVD
Vj4oKnZpZGVvRnJhbWUpKTsKKyAgICAgICAgICAgIHZpZGVvRnJhbWVDViA9ICZkb3duY2FzdDxW
aWRlb0ZyYW1lQ1Y+KCp2aWRlb0ZyYW1lKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQgPSBX
VEZNb3ZlKHZpZGVvRnJhbWVDVik7CiAgICAgfQogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1v
dmUocmVzdWx0KSwgY2hhbmdlZCk7CiB9CisjZW5kaWYKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXll
clByb3h5Ojp1cGRhdGVDYWNoZWRTdGF0ZShib29sIGZvcmNlQ3VycmVudFRpbWVVcGRhdGUpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuaAppbmRleCA5MzE2YjY2YWIzNTk2NmU1YjY0NWRkMWM3Y2UwZTgxMmYyMDZh
NjM3Li43NWVhYmQ0NWIzMWQwMzRiODRjNDhmYzY2YjI3NzlhMmU1NjQzOWEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmgKQEAgLTc4LDYgKzc4LDEyIEBAIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0
OwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CiAKIHN0cnVjdCBGb3VyQ0M7CisKK2NsYXNzIFZp
ZGVvRnJhbWU7CisKKyNpZiBQTEFURk9STShDT0NPQSkKK2NsYXNzIFZpZGVvRnJhbWVDVjsKKyNl
bmRpZgogfQogCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKQEAgLTMyNyw4ICszMzMsOCBAQCBwcml2
YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgbmF0aXZlSW1hZ2VGb3JDdXJyZW50
VGltZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V1RGOjpNYWNoU2VuZFJp
Z2h0PiYmLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UpPiYmKTsKICAgICB2b2lkIGNv
bG9yU3BhY2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9y
U3BhY2UpPiYmKTsKKyAgICB2b2lkIHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVv
RnJhbWVDVj4+JiYsIGJvb2wpPiYmKTsKICNlbmRpZgotICAgIHZvaWQgdmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+JiYsIGJvb2wpPiYmKTsKIAogI2lmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBm
aW5hbCB7IHJldHVybiBtX2xvZ2dlcjsgfQpAQCAtMzg0LDcgKzM5MCw3IEBAIHByaXZhdGU6CiAg
ICAgU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCBtX3JlbmRlcmluZ1Jlc291cmNlc1Jl
cXVlc3Q7CiAKICAgICBib29sIG1fb2JzZXJ2aW5nVGltZUNoYW5nZXMgeyBmYWxzZSB9OwotICAg
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZT4gbV92aWRl
b0ZyYW1lRm9yQ3VycmVudFRpbWU7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29u
c3QgTG9nZ2VyJiBtX2xvZ2dlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdl
cy5pbgppbmRleCA0ZTRmZWNhMjgzMWE0Y2QzZTNhOWJlNzkyYWIyMDViMWUxM2VkMjYyLi5jYzEz
N2FkZTUxOWJjNmQ0NzA3NTZjZjU3MDFkMDQ2NmUxNWRkNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMTI1LDggKzEyNSw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
TmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIC0+IChzdGQ6Om9wdGlvbmFsPE1hY2hTZW5kUmln
aHQ+IHNlbmRSaWdodCwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2Up
IFN5bmNocm9ub3VzCiAgICAgQ29sb3JTcGFjZSgpIC0+IChXZWJDb3JlOjpEZXN0aW5hdGlvbkNv
bG9yU3BhY2UgY29sb3JTcGFjZSkgU3luY2hyb25vdXMKKyAgICBWaWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWVJZkNoYW5nZWQoKSAtPiAoc3RkOjpvcHRpb25hbDxSZWZQdHI8V2ViQ29yZTo6VmlkZW9G
cmFtZUNWPj4gdmlkZW9GcmFtZSwgYm9vbCBjaGFuZ2VkKSBTeW5jaHJvbm91cwogI2VuZGlmCi0g
ICAgVmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCkgLT4gKHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lLCBib29sIGNoYW5nZWQp
IFN5bmNocm9ub3VzCiAKICAgICBQbGF5QXRIb3N0VGltZShNb25vdG9uaWNUaW1lIHRpbWUpCiAg
ICAgUGF1c2VBdEhvc3RUaW1lKE1vbm90b25pY1RpbWUgdGltZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGEzMzQyYzNiYzNlN2UyMTM0OGZlMjA4
ODdjYzFkZmVmMmJmOTU5NmMuLjcxZTUyMjhiZjYwODVmZWZlMDI3OGU2YjFhZjM1NTU5Mzk3OGI4
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAt
MjY1LDYgKzI2NSwzMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKICAgICB9CiB9OwogCit0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZWZQdHI8VD4+IHsKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBVID0gVD4KKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgUmVmUHRyPFU+JiBvYmplY3QpCisgICAgeworICAgICAgICBpZiAob2JqZWN0KQor
ICAgICAgICAgICAgZW5jb2RlciA8PCB0cnVlIDw8ICpvYmplY3Q7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVSA9IFQ+CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFU+PiBkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIGF1dG8gaGFzT2JqZWN0ID0gZGVjb2Rlci50
ZW1wbGF0ZSBkZWNvZGU8Ym9vbD4oKTsKKyAgICAgICAgaWYgKCFoYXNPYmplY3QpCisgICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBpZiAoISpoYXNPYmplY3QpCisgICAg
ICAgICAgICByZXR1cm4gUmVmUHRyPFU+IHsgfTsKKyAgICAgICAgLy8gRGVjb2RlcnMgb2YgVSBo
ZWxkIHdpdGggUmVmUHRyIGRvIG5vdCByZXR1cm4gc3RkOjpvcHRpb25hbDxVPiBidXQKKyAgICAg
ICAgLy8gc3RkOjpvcHRpb25hbDxSZWZQdHI8VT4+LiBXZSBjYW5ub3QgdXNlIGBkZWNvZGVyLnRl
bXBsYXRlIGRlY29kZTxVPigpYAorICAgICAgICAvLyBDdXJyZW50bHkgZXhwZWN0ICJtb2Rlcm4g
ZGVjb2RlciIgLWxpa2UgZGVjb2RlIGZ1bmN0aW9uLgorICAgICAgICByZXR1cm4gVTo6ZGVjb2Rl
KGRlY29kZXIpOworICAgIH0KK307CisKIHRlbXBsYXRlPHNpemVfdCBpbmRleCwgdHlwZW5hbWUu
Li4gRWxlbWVudHM+CiBzdHJ1Y3QgVHVwbGVFbmNvZGVyIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBFbmNvZGVyPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDhkOWU1ZmY5MmFj
M2IzZjBlYjcxMzM5ZWZlOGI0YmYzZjQyOTY0ZGMuLmFkMWI3ZjJiNTZjZmU1Mzk4ZDMxMWZjOTFl
ZDhmMmEyMjYwMDdjNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTgwLDgg
KzgwLDkgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0jaW1wb3J0IDxXZWJDb3Jl
L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaD4KLSNpbXBvcnQgPFdlYkNvcmUvVmlkZW9MYXllck1h
bmFnZXJPYmpDLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0ZyYW1lQ1YuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Zp
ZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTEwMDIsMTQgKzEwMDMsMjEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNvcHlW
aWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShXZWJDb3JlOjpHcmFwaGkKIH0KICNlbmRpZgog
Ci1zdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQorUmVmUHRyPFdlYkNv
cmU6OlZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lKCkKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlk
ZW9GcmFtZT4gcmVzdWx0OworLy8gRklYTUU6IFRoaXMgd2lsbCBiZSBtYWRlIGNyb3NzLXBsYXRm
b3JtIGFnYWluIHNvb24uIFRoZXJlIGFyZSBubyBvdGhlciBwbGF0Zm9ybXMgdXNpbmcgdGhpcyBh
dCB0aGUgbW9tZW50LgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHN0ZDo6b3B0aW9uYWw8UmVm
UHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+IHJlc3VsdDsKICAgICBib29sIGNoYW5nZWQgPSBm
YWxzZTsKICAgICBpZiAoIWNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6VmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCksIE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNo
YW5nZWQ6OlJlcGx5KHJlc3VsdCwgY2hhbmdlZCksIG1faWQpKQotICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotICAgIGlmIChjaGFuZ2VkKQotICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJy
ZW50VGltZSA9IFdURk1vdmUocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIG1fdmlkZW9GcmFtZUZv
ckN1cnJlbnRUaW1lOworICAgIGlmIChjaGFuZ2VkKSB7CisgICAgICAgIGlmIChyZXN1bHQpCisg
ICAgICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IFdURk1vdmUoKnJlc3VsdCk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID0g
bnVsbHB0cjsKKyAgICB9CisjZW5kaWYKICAgICByZXR1cm4gbV92aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDFhNmEzNDAzNDNkMTQy
ZWRmZGVlYTM2YjM3NGE5OWY5OTNlZmViOTIuLjI5ZjkxMmQ0ZThiODdiNTdiYTE1NjI0YTZkYzVl
MDZiN2M1YzFiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9NZWRpYVBsYXllclByaXZhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
RGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvVmlkZW9GcmFtZU1ldGFkYXRhLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgog
I2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KQEAgLTI5Myw3ICsyOTQsNyBAQCBwcml2YXRlOgog
I2lmICFVU0UoQVZGT1VOREFUSU9OKQogICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZv
cm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMKiwgUGxhdGZvcm1HTE9iamVjdCwg
R0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJvb2wsIGJv
b2wpIGZpbmFsOwogI2VuZGlmCi0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBs
ZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOworICAgIFJlZlB0
cjxXZWJDb3JlOjpWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsK
ICAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRp
bWUoKSBmaW5hbDsKICAgICBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFj
ZSgpIGZpbmFsOwogCkBAIC00NjAsNyArNDYxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fd2Fp
dGluZ0ZvcktleSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3RpbWVJc1Byb2dyZXNzaW5nIHsgZmFs
c2UgfTsKICAgICBib29sIG1fcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCB7IGZhbHNlIH07Ci0g
ICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IG1fdmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lOworICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lPiBtX3Zp
ZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlckdhdGhlcmVkV2l0aFZpZGVvRnJhbWVN
ZXRhZGF0YTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGl4ZWxCdWZmZXJDb25mb3Jt
ZXJDVj4gbV9waXhlbEJ1ZmZlckNvbmZvcm1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcAppbmRl
eCAwNThjZTliNzVmY2FjY2VmNGIxY2JmNTVjMTZmODE0YjBhZjEwODYzLi4zMzdkMTMwOTRhMjI2
YmY2ODcxY2YxYjRiYjk5YTk0ZDM3MTQ1NjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwCkBA
IC02MSwxMSArNjEsOSBAQCB2b2lkIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cmVsZWFzZVVudXNl
ZChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFByb3BlcnRpZQogfQogCiBSZW1vdGVWaWRl
b0ZyYW1lUHJveHk6OlJlbW90ZVZpZGVvRnJhbWVQcm94eShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIFByb3BlcnRpZXMgcHJvcGVydGllcywgUGl4ZWxCdWZmZXJDYWxsYmFjayYmIGNhbGxi
YWNrKQotICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCisgICAgOiBWaWRlb0ZyYW1lKHBy
b3BlcnRpZXMucHJlc2VudGF0aW9uVGltZSwgcHJvcGVydGllcy5pc01pcnJvcmVkLCBwcm9wZXJ0
aWVzLnJvdGF0aW9uKQorICAgICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX3Jl
ZmVyZW5jZVRyYWNrZXIocHJvcGVydGllcy5yZWZlcmVuY2UpCi0gICAgLCBtX3ByZXNlbnRhdGlv
blRpbWUocHJvcGVydGllcy5wcmVzZW50YXRpb25UaW1lKQotICAgICwgbV9pc01pcnJvcmVkKHBy
b3BlcnRpZXMuaXNNaXJyb3JlZCkKLSAgICAsIG1fcm90YXRpb24ocHJvcGVydGllcy5yb3RhdGlv
bikKICAgICAsIG1fc2l6ZShwcm9wZXJ0aWVzLnNpemUpCiAgICAgLCBtX3BpeGVsRm9ybWF0KHBy
b3BlcnRpZXMucGl4ZWxGb3JtYXQpCiAgICAgLCBtX3BpeGVsQnVmZmVyQ2FsbGJhY2soV1RGTW92
ZShjYWxsYmFjaykpCkBAIC05MiwzNiArOTAsMTEgQEAgUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZl
cmVuY2UgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpyZWFkKCkgY29uc3QKICAgICByZXR1cm4gbV9y
ZWZlcmVuY2VUcmFja2VyLnJlYWQoKTsKIH0KIAotTWVkaWFUaW1lIFJlbW90ZVZpZGVvRnJhbWVQ
cm94eTo6cHJlc2VudGF0aW9uVGltZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJlc2VudGF0
aW9uVGltZTsKLX0KLQotV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGUgUmVtb3RlVmlkZW9GcmFtZVBy
b3h5OjpwbGF0Zm9ybVNhbXBsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHsgV2ViQ29yZTo6UGxh
dGZvcm1TYW1wbGU6OlJlbW90ZVZpZGVvRnJhbWVQcm94eVR5cGUsIHsgfSB9OwotfQotCi1NZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnZpZGVvUm90YXRp
b24oKSBjb25zdAotewotICAgIHJldHVybiBtX3JvdGF0aW9uOwotfQotCi1ib29sIFJlbW90ZVZp
ZGVvRnJhbWVQcm94eTo6dmlkZW9NaXJyb3JlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faXNN
aXJyb3JlZDsKLX0KLQogdWludDMyX3QgUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojp2aWRlb1BpeGVs
Rm9ybWF0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9waXhlbEZvcm1hdDsKIH0KIAotc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IFJlbW90ZVZpZGVvRnJhbWVQ
cm94eTo6dmlkZW9GcmFtZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLX0K
LQogI2lmIFBMQVRGT1JNKENPQ09BKQogdm9pZCBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OmdldFBp
eGVsQnVmZmVyKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oCmluZGV4IDMxYTFhODQ1N2ViZjY4NTM2
MThkNjhkNWVlOTUxMmVkNzRlZjFmZjcuLjQ5YTI2ZmNlM2JiNDMyNmJjMzgzNGRmMzYyMzJjZGFi
MWVhMDlkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlVmlkZW9GcmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuaApAQCAtOTQsMTQgKzk0LDggQEAgcHJpdmF0
ZToKICAgICBSZW1vdGVWaWRlb0ZyYW1lUHJveHkoSVBDOjpDb25uZWN0aW9uJiwgUHJvcGVydGll
cywgUGl4ZWxCdWZmZXJDYWxsYmFjayYmKTsKIAogICAgIC8vIFdlYkNvcmU6OlZpZGVvRnJhbWUg
b3ZlcnJpZGVzLgotICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lKCkgY29uc3QgZmluYWw7
Ci0gICAgVmlkZW9Sb3RhdGlvbiB2aWRlb1JvdGF0aW9uKCkgY29uc3QgZmluYWw7Ci0gICAgYm9v
bCB2aWRlb01pcnJvcmVkKCkgY29uc3QgZmluYWw7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHBy
ZXNlbnRhdGlvblNpemUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NpemU7IH0KLSAgICBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZSgpIGNv
bnN0IGZpbmFsOwogICAgIHVpbnQzMl90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsK
LSAgICAvLyBGSVhNRTogV2hlbiBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRpYVNhbXBsZSwgdGhlc2Ug
d2lsbCBub3QgYmUgbmVlZGVkLgotICAgIFdlYkNvcmU6OlBsYXRmb3JtU2FtcGxlIHBsYXRmb3Jt
U2FtcGxlKCkgY29uc3QgZmluYWw7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIGdl
dFBpeGVsQnVmZmVyKCk7CkBAIC0xMDksOSArMTAzLDYgQEAgcHJpdmF0ZToKIAogICAgIGNvbnN0
IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBSZW1vdGVWaWRlb0ZyYW1l
UmVmZXJlbmNlVHJhY2tlciBtX3JlZmVyZW5jZVRyYWNrZXI7Ci0gICAgY29uc3QgTWVkaWFUaW1l
IG1fcHJlc2VudGF0aW9uVGltZTsKLSAgICBjb25zdCBib29sIG1faXNNaXJyb3JlZDsKLSAgICBj
b25zdCBWaWRlb1JvdGF0aW9uIG1fcm90YXRpb247CiAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSBtX3NpemU7CiAgICAgdWludDMyX3QgbV9waXhlbEZvcm1hdCB7IDAgfTsKICAgICBtdXRhYmxl
IExvY2sgbV9waXhlbEJ1ZmZlckxvY2s7CkBAIC0xNDksOSArMTQwLDcgQEAgdGVtcGxhdGU8dHlw
ZW5hbWUgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3Bl
cnRpZXM+IFJlbW8KIAogfQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJLaXQ6OlJl
bW90ZVZpZGVvRnJhbWVQcm94eSkKLSAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29y
ZTo6TWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKSB7IHJldHVybiBtZWRpYVNhbXBsZS5wbGF0Zm9y
bVNhbXBsZSgpLnR5cGUgPT0gV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OlJlbW90ZVZpZGVvRnJh
bWVQcm94eVR5cGU7IH0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKLVNQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6VmlkZW9GcmFtZSkKLSAgICBzdGF0aWMgYm9vbCBp
c1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKSB7IHJldHVybiBt
ZWRpYVNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0gV2ViQ29yZTo6UGxhdGZvcm1TYW1w
bGU6OlJlbW90ZVZpZGVvRnJhbWVQcm94eVR5cGU7IH0KKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUo
Y29uc3QgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKSB7IHJldHVybiBpczxXZWJD
b3JlOjpWaWRlb0ZyYW1lPihtZWRpYVNhbXBsZSkgJiYgZG93bmNhc3Q8V2ViQ29yZTo6VmlkZW9G
cmFtZT4obWVkaWFTYW1wbGUpLmlzUmVtb3RlUHJveHkoKTsgfQogU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19FTkQoKQorCiAjZW5kaWYK
</data>
<flag name="commit-queue"
          id="479138"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452184</attachid>
            <date>2022-02-16 04:47:27 -0800</date>
            <delta_ts>2022-02-16 06:38:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236701-20220216144725.patch</filename>
            <type>text/plain</type>
            <size>68508</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTliM2RkMTcwZjRjZmFj
NmExMTg2MzM3NzRjZTU4OWExNDJkN2NlNy4uODUwY2JhNmJmMDY5YWY2Njg5ZWRjMWY4ZTA4ZTFl
NmRhODlhM2E4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDIyLTAyLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFQbGF5ZXI6
OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHNob3VsZCByZXR1cm4gVmlkZW9GcmFtZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzAxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJlbmFtZSBDViBzcGVj
aWZpYyBwYXJ0cyBvZiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgdG8gVmlkZW9GcmFtZUNWLgorICAg
ICAgICBVc2UgVmlkZW9GcmFtZSBiYXNlIGNsYXNzIGluc3RlYWQgb2YgTWVkaWFTYW1wbGVWaWRl
b0ZyYW1lLgorICAgICAgICBWaWRlb0ZyYW1lIHN1cHBvcnRzIG11bHRpcGxlIHBvbHltb3JwaGlj
IHN1YmNsYXNzZXMuIE9uZSBzdWNoCisgICAgICAgIGlzIFJlbW90ZVZpZGVvRnJhbWVQcm94eSwg
d2hpY2ggd2lsbCBiZSB1c2VkIGluIHRoZSBmdXR1cmUgdG8KKyAgICAgICAgcmV0dXJuIHJlbW90
ZSBwcm94eSBvYmplY3RzIGluIHRoZXNlIGxvY2F0aW9ucy4KKworICAgICAgICBUaGlzIHBhdGNo
IGlzIG9ubHkgYSByZW5hbWUuIEl0IGNvbmNlcm5zIG9ubHkgdGhlIGluLXByb2Nlc3MKKyAgICAg
ICAgdXNhZ2Ugb2YgdmlkZW8gZnJhbWVzIHZpYSBpbi1wcm9jZXNzIFZpZGVvRnJhbWVDVi4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVNhbXBsZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGU6OnZpZGVvUGl4ZWxGb3JtYXQgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL1ZpZGVvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9GcmFtZTo6VmlkZW9GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lOjpwcmVz
ZW50YXRpb25UaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWU6OnZpZGVv
Um90YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZTo6dmlkZW9NaXJy
b3JlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lOjpwbGF0Zm9ybVNhbXBs
ZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vVmlkZW9GcmFtZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9GcmFtZTo6aXNSZW1vdGVQcm94eSBjb25zdCk6CisgICAgICAgIFRoaXMgbGVh
a3MgInJlbW90ZSIgY29uY2VwdCB0byBXZWJDb3JlIGxldmVsLiBIb3BlZnVsbHkKKyAgICAgICAg
aW4gdGhlIGZ1dHVyZSB0aGlzIGNhbiBiZSBzb2x2ZWQgaW4gYW5vdGhlciB3YXkuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb0ZyYW1lOjppc0NWIGNvbnN0KToKKyAgICAgICAgKGlzVHlwZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVWaWRlb0ZyYW1l
QVZGLm1tOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6dmlk
ZW9GcmFtZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdM
Q29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OnBpeGVsQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvRnJhbWVDVjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvRnJhbWVDVjo6ZGVjb2RlKToKKyAgICAgICAgKGlzVHlwZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvRnJhbWVDVjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWVDVjo6
VmlkZW9GcmFtZUNWKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWVDVjo6cHJlc2VudGF0
aW9uU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OnZpZGVvUGl4
ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZUNWOjpvcmllbnRh
dGlvbiBjb25zdCk6CisKIDIwMjItMDItMTYgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBVc2UgZHJtIHJlbmRlciBub2RlcyBpbiBH
Ym1EZXZpY2UgYW5kIG1ha2UgdGhlIGZkIGdsb2JhbCB0byB0aGUgcHJvY2VzcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA1MDE4MzUzYWMyOTE2NjZhMDJmYmU3YmE0Y2Y3NTVkYjI4NjMxMTBmLi4wY2EwMWMxNDQzNTU3
YmNiMDMyYWUwNDU4MjJlYzhkMDdjMzE1Mjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisy
MDIyLTAyLTE2ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWVkaWFQbGF5ZXI6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHNob3VsZCByZXR1cm4g
VmlkZW9GcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM2NzAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXNlIGFkZGVkIFZpZGVvRnJhbWVDViBpbnN0ZWFkIG9mIHJlbW92ZWQgTWVkaWFTYW1wbGVW
aWRlb0ZyYW1lLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Ojpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCk6CisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFBsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBDOjpBcmd1bWVudENv
ZGVyPFJlZlB0cjxUPj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVm
UHRyPFQ+Pjo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHkpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oOgorICAgICAg
ICAoaXNUeXBlKToKKwogMjAyMi0wMi0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIEFkZCBhbiAiTWFya3VwIEltYWdlIiBpdGVtIHRv
IHRoZSBzaGFyaW5nIHNlcnZpY2VzIHBpY2tlciBjb250ZXh0IG1lbnUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CmluZGV4IGFjNzQ2YTllNWVmNWI0YTRkMGRmY2ZhNGRjMWE0NWI5MWRjNTQyZWEuLmUxZDkwOGMy
MzI5ZTU3YzdjMmE2MWJlMzhlYWUzNGQ2MGM2OTMzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAt
MTUyNiw3ICsxNTI2LDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyRW51bXMuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVySWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXJQcml2YXRlLmgKLSAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVv
RnJhbWUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZS5oCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmgKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVVzYWdlSW5mby5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAw
MjgxNGQwMjIyYjI2ZTI4OTliOGRhY2FlZDFhNDJlNTZiNTc0MTk0Li41YjRiNTY1YzM5YWJiZmRl
MmQ0MTZmMTNkZTJmYjU0MzcyOWY5MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTMw
NCw3ICszMDQsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRh
dGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAotcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2FtcGxlVmlkZW9GcmFtZUFWRi5tbQogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMu
Y3BwCkBAIC00MTUsNiArNDE0LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMu
bW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRm
b3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCiBwbGF0Zm9ybS9ncmFw
aGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9j
di9WaWRlb0ZyYW1lQ1YubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNvbG9yTWF0
cml4Q29yZUltYWdlQXBwbGllci5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZFQ29t
cG9uZW50VHJhbnNmZXJDb3JlSW1hZ2VBcHBsaWVyLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb3Jl
aW1hZ2UvRmlsdGVySW1hZ2VDb3JlSW1hZ2UubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmYjlmYjdjYzIyMTg5ZjAzNDMwMjBj
ZjZjMGZhM2Q2NjVkYjllYjM4Li5lNTliYTdmNzYxZDBiNTQwNGI3YzAwYTJjYjRjZDMwYmJiZDBm
NTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0yNDA5LDcgKzI0MDksNiBAQAogCQk3QUY5QjIwRjE4Q0ZCNUY0MDBDNjRCRUYg
LyogSlNWVFRSZWdpb25MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3QUY5QjIwQjE4Q0ZCNUYzMDBDNjRCRUYgLyogSlNWVFRSZWdpb25MaXN0Lmgg
Ki87IH07CiAJCTdCMTAzMzlFMjU0OTcyMTcwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENW
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEwMzM5
RDI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCMTAzMzlGMjU0OTcyMUUwMEM4
QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFw
aGljc0NvbnRleHRHTENWQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQk3QjQ0MTBFMTI3OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVW
aWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I1QTNEQUYy
N0FCRjhDNTAwNkM2Rjk3IC8qIFZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCNUEzREFEMjdBQkY4QzQwMDZDNkY5NyAvKiBWaWRlb0Zy
YW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I2MDk0REQyNzBDNDRCRDAwNjQ4MzVDIC8qIEFOR0xFVXRpbGl0aWVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkIzNEExNjI1MzQ1Q0IyMDAwMjlE
MDggLyogQU5HTEVVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3QjZEQzgxOTI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250
ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdCNkRDODE3MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRl
eHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0yNDIyLDYgKzI0MjEsNyBAQAogCQk3QkI2ODBCQTI1QkExQkU0
MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGlj
c0NoZWNrc01hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdCRERBMzFGMjc0RkEwMjEwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29h
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkREQTMx
RDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzRDMjc1QTAxMzEw
MDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRl
bnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk3QkUzN0Y4NzI3QkJCNzA4MDA3QTZDRDMgLyogVmlkZW9GcmFtZUNWLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkUzN0Y4NjI3QkJCNkZGMDA3QTZD
RDMgLyogVmlkZW9GcmFtZUNWLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJN0JFNzQyNzM4MUZBOTA2RkJCNEYwRjJDIC8qIEpTU1ZHR3JhcGhpY3NF
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NTBDNEMwMkJFRDg5MzZGODE4RTJGOTkgLyogSlNTVkdHcmFwaGljc0VsZW1lbnQuaCAqLzsgfTsK
IAkJN0JGRjU5RjQyNzU3NzI2NzAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JGRjU5
RUYyNzU3NzFFODAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMDI5QzZFMjQ5
M0M4RjgwMDI2ODIwNCAvKiBDb2xvclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QzAyOUM2RDI0OTNDOEY4MDAyNjgyMDQgLyogQ29sb3JUeXBl
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0x
MTUzMCw4ICsxMTUzMCw2IEBACiAJCTdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGlj
c0NvbnRleHRHTENWQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVkNv
Y29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTAzMzlEMjU0OTcyMDEwMEM4
QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29u
dGV4dEdMQ1YuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxNjE5MTAyNzE5ODgw
RTAwQzQwRUFDIC8qIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdCNDQxMERGMjc5NThGQzQwMDBCNEY4QSAvKiBNZWRp
YVNhbXBsZVZpZGVvRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVk
aWFTYW1wbGVWaWRlb0ZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdCNDQx
MEUyMjc5NThGREUwMDBCNEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBNZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdCNUEzREFCMjdBQkY4QzQwMDZDNkY5NyAvKiBWaWRlb0ZyYW1l
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvRnJhbWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QjVBM0RBRDI3QUJGOEM0MDA2QzZGOTcg
LyogVmlkZW9GcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Zy
YW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNkRDODE1MjU3MTJFOTEwMDM4
MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3
YXBDaGFpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTU1NSw2ICsxMTU1
Myw4IEBACiAJCTdCRERBMzFEMjc0RjlEQTUwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENv
Y29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdM
Q29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JEREEzNDkyNzVBMDEzMDAw
Mzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQcm9jZXNzSWRlbnRpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JE
REEzNEIyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3QkUzN0Y4NTI3QkJCNkZFMDA3QTZDRDMgLyogVmlkZW9GcmFt
ZUNWLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GcmFt
ZUNWLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QkUzN0Y4NjI3QkJCNkZGMDA3
QTZDRDMgLyogVmlkZW9GcmFtZUNWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZpZGVvRnJhbWVDVi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkZGNTlFRjI3
NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmg7
IGZpbGVFbmNvZGluZyA9IDQ7IHBhdGggPSBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JGRjU5RjEyNzU3NzFFODAwNzczRDM5IC8q
IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QzAxMUYzRDI0RkFEMzYwMDA1QkVGMTAgLyogU2V0dGluZ3Mu
Y3BwLmVyYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTZXR0aW5ncy5jcHAuZXJiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTg3ODEsNyArMTg3ODEsNiBAQAogCQkJCTA3MUU0OTZEMUFENUFBMEQwMDhBNTBCNCAv
KiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EubW0gKi8sCiAJCQkJMDc2RjBEMDkxMkI4MTkyNzAw
QzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgKi8sCiAJCQkJMDc2
RjBEMEExMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5o
ICovLAotCQkJCTdCNDQxMEUyMjc5NThGREUwMDBCNEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJh
bWVBVkYubW0gKi8sCiAJCQkJQ0RCRUFFQUIxOUQ5MkI2QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0
aW9uR3JvdXBBVkZPYmpDLmggKi8sCiAJCQkJQ0RCRUFFQUExOUQ5MkI2QzAwQkVCQTg4IC8qIE1l
ZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tICovLAogCQkJCTQxMDI0RkM4MjNDRjI1NEYwMEZE
Rjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwICovLApAQCAtMjkwNDcsNyArMjkw
NDYsNiBAQAogCQkJCUNENTIwOUUzMUIwQkQ4MzgwMDc3MTg0RSAvKiBNZWRpYVBsYXllckVudW1z
LmggKi8sCiAJCQkJRjQyOTI2MTcyNTI2NEQ0NDAwMDA3ODk4IC8qIE1lZGlhUGxheWVySWRlbnRp
Zmllci5oICovLAogCQkJCTA3OUY1RTRCMEYzQkVCRUEwMDVFMDc4MiAvKiBNZWRpYVBsYXllclBy
aXZhdGUuaCAqLywKLQkJCQk3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVW
aWRlb0ZyYW1lLmggKi8sCiAJCQkJQ0Q2NDFFQjExODE4RjVFRDAwRUU0QzQxIC8qIE1lZGlhU291
cmNlUHJpdmF0ZS5oICovLAogCQkJCUNEREMxRTc5MThBOTUyRjMwMDI3QTlENCAvKiBNZWRpYVNv
dXJjZVByaXZhdGVDbGllbnQuaCAqLywKIAkJCQkwNzYxMURCODI0M0ZCNzVDMDBEODA3MDQgLyog
TWVkaWFVc2FnZUluZm8uaCAqLywKQEAgLTMwNDE0LDYgKzMwNDEyLDggQEAKIAkJCQkwNzQ2RDMw
QTIxNDZFQTM3MDAzRERGODQgLyogSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbSAqLywKIAkJCQlD
RDdEMzM0MTFDN0ExMjNGMDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi8s
CiAJCQkJQ0Q3RDMzNDIxQzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Yu
aCAqLywKKwkJCQk3QkUzN0Y4NjI3QkJCNkZGMDA3QTZDRDMgLyogVmlkZW9GcmFtZUNWLmggKi8s
CisJCQkJN0JFMzdGODUyN0JCQjZGRTAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5tbSAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gY3Y7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzYyNjEs
NyArMzYyNjEsNiBAQAogCQkJCUNFRUZDRDdBMTlEQjMxRjcwMDM4NzZENyAvKiBNZWRpYVJlc291
cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQkY5REIzQzFEMzk3M0FEMDAyNkFFQjcg
LyogTWVkaWFTYW1wbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFCMTI0RDhEMUQzODBCNzAwMEVD
REZCMCAvKiBNZWRpYVNhbXBsZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAotCQkJCTdCNDQxMEUx
Mjc5NThGQzUwMDBCNEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNEQkVBRUFEMTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZG
T2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE3RDI3NUUxRUFDNTc5ODAwQkYwMUU3IC8qIE1l
ZGlhU2VsZWN0aW9uT3B0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzdCQTU3NTI2MEZBNUZF
MDA3MkYxOUYgLyogTWVkaWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTM3ODY3LDYgKzM3
ODY2LDcgQEAKIAkJCQlCQ0EyNTcxNTEyOTNDMDEwMDA3QTI2M0QgLyogVmVydGljYWxQb3NpdGlv
bkNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDNFRUYzQjI1Nzk5RkExMDA2NTYzQkIgLyog
VmlkZW9Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QjVBM0RBRjI3QUJGOEM1
MDA2QzZGOTcgLyogVmlkZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0JFMzdGODcyN0JC
QjcwODAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFERUVG
QjYyNzE5QkExQTAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDFERUVGQjAyNzE5QjI5MDAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovLAogCQkJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRl
b0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTWVkaWFTYW1wbGUuaAppbmRleCBiMDY1MDRmNTdlZTkzNmI4ZTE5ODg3MWYzNTcyNzY1
MzUzMDRhZmQzLi5mMjEwMDQzNWM0MjFkZDM1NDgxM2FhYTkwMWVmMDlhYmRkOTM2MGYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU2FtcGxlLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCi0jaW5jbHVkZSAiTWVkaWFTYW1wbGVW
aWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJheXMuaD4KICNp
bmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KQEAg
LTUwLDcgKzQ5LDcgQEAgc3RydWN0IFBsYXRmb3JtU2FtcGxlIHsKICAgICAgICAgQ01TYW1wbGVC
dWZmZXJUeXBlLAogICAgICAgICBHU3RyZWFtZXJTYW1wbGVUeXBlLAogICAgICAgICBCeXRlUmFu
Z2VTYW1wbGVUeXBlLAotICAgICAgICBSZW1vdGVWaWRlb0ZyYW1lUHJveHlUeXBlLCAvLyBGSVhN
RTogVG8gYmUgcmVtb3ZlZCB3aGVuIFZpZGVvRnJhbWUgaXMgbm90IE1lZGlhU2FtcGxlLgorICAg
ICAgICBWaWRlb0ZyYW1lVHlwZSwgLy8gRklYTUU6IFRvIGJlIHJlbW92ZWQgd2hlbiBWaWRlb0Zy
YW1lIGlzIG5vdCBNZWRpYVNhbXBsZS4KICAgICB9IHR5cGU7CiAgICAgdW5pb24gewogICAgICAg
ICBjb25zdCBNb2NrU2FtcGxlQm94KiBtb2NrU2FtcGxlQm94OwpAQCAtMTA4LDkgKzEwNyw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFZpZGVvUm90YXRpb24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIFZpZGVvUm90YXRpb246Ok5vbmU7IH0KICAgICB2aXJ0dWFsIGJvb2wgdmlkZW9N
aXJyb3JlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB1aW50MzJfdCB2
aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gMDsgfQotI2lmIGRlZmluZWQoRU5BQkxF
X1ZJREVPKSAmJiBFTkFCTEVfVklERU8KLSAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8TWVkaWFT
YW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lKCkgY29uc3QgeyByZXR1cm4gc3RkOjpudWxsb3B0
OyB9OwotI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCBDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmNwcAppbmRleCBmMDc2OWJhNWU1NGE4ODBi
ZTYzOTA5YTljZGEwMzI4N2EzN2QzY2Y0Li5jMmY0NTllNGM5MmZiOWU3OTU5YmE1MTM1MDhlYzY0
YjRlZTYxOTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmNwcApAQCAtMjYs
MTQgKzI2LDM5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVmlkZW9GcmFtZS5o
IgogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotVmlkZW9GcmFtZTo6VmlkZW9GcmFtZSgpID0gZGVmYXVsdDsKK1Zp
ZGVvRnJhbWU6OlZpZGVvRnJhbWUoTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWUsIGJvb2wgaXNN
aXJyb3JlZCwgVmlkZW9Sb3RhdGlvbiByb3RhdGlvbikKKyAgICA6IG1fcHJlc2VudGF0aW9uVGlt
ZShwcmVzZW50YXRpb25UaW1lKQorICAgICwgbV9pc01pcnJvcmVkKGlzTWlycm9yZWQpCisgICAg
LCBtX3JvdGF0aW9uKHJvdGF0aW9uKQoreworfQogCiBWaWRlb0ZyYW1lOjp+VmlkZW9GcmFtZSgp
ID0gZGVmYXVsdDsKIAorTWVkaWFUaW1lIFZpZGVvRnJhbWU6OnByZXNlbnRhdGlvblRpbWUoKSBj
b25zdAoreworICAgIHJldHVybiBtX3ByZXNlbnRhdGlvblRpbWU7Cit9CisKK01lZGlhU2FtcGxl
OjpWaWRlb1JvdGF0aW9uIFZpZGVvRnJhbWU6OnZpZGVvUm90YXRpb24oKSBjb25zdAoreworICAg
IHJldHVybiBtX3JvdGF0aW9uOworfQorCitib29sIFZpZGVvRnJhbWU6OnZpZGVvTWlycm9yZWQo
KSBjb25zdAoreworICAgIHJldHVybiBtX2lzTWlycm9yZWQ7Cit9CisKK1dlYkNvcmU6OlBsYXRm
b3JtU2FtcGxlIFZpZGVvRnJhbWU6OnBsYXRmb3JtU2FtcGxlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4geyBXZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZTo6VmlkZW9GcmFtZVR5cGUsIHsgfSB9OworfQor
CiBNZWRpYVRpbWUgVmlkZW9GcmFtZTo6ZGVjb2RlVGltZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRl
b0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmgKaW5kZXggYjYz
MWZkMTNlMjJlMzEyMjY2NTAwMTRiYWY3OGRlYTkwY2FhNmZiMi4uYmZkOGYwNTEzYTVjNmJiZDIz
ZGE3OGQ5NjhiZDVhZmRiZDNjNjllZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVmlkZW9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUu
aApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisjaWYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKIApA
QCAtMzgsOCArMzgsMjMgQEAgY2xhc3MgVmlkZW9GcmFtZSA6IHB1YmxpYyBNZWRpYVNhbXBsZSB7
CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgflZpZGVvRnJhbWUoKTsKIAorICAgIC8vIFdl
YkNvcmU6Ok1lZGlhU2FtcGxlIG92ZXJyaWRlcy4KKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVRp
bWUgcHJlc2VudGF0aW9uVGltZSgpIGNvbnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIFZp
ZGVvUm90YXRpb24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgdmlkZW9NaXJyb3JlZCgpIGNvbnN0IGZpbmFsOworICAgIC8vIEZJWE1FOiBXaGVu
IFZpZGVvRnJhbWUgaXMgbm90IE1lZGlhU2FtcGxlLCB0aGVzZSB3aWxsIG5vdCBiZSBuZWVkZWQu
CisgICAgV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1w
bGUoKSBjb25zdCBmaW5hbDsKKworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAgdmlydHVhbCBi
b29sIGlzUmVtb3RlUHJveHkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBpc0NWKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorCiBwcm90ZWN0ZWQ6
Ci0gICAgV0VCQ09SRV9FWFBPUlQgVmlkZW9GcmFtZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIFZp
ZGVvRnJhbWUoTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWUsIGJvb2wgaXNNaXJyb3JlZCwgVmlk
ZW9Sb3RhdGlvbik7CisgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgTWVkaWFUaW1lIG1fcHJlc2Vu
dGF0aW9uVGltZTsKKyAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBib29sIG1faXNNaXJyb3JlZDsK
KyAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBWaWRlb1JvdGF0aW9uIG1fcm90YXRpb247CiAKIHBy
aXZhdGU6CiAgICAgLy8gRklYTUU6IFRoZXNlIGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBm
b3IgdGhlc2Ugb2JqZWN0cy4KQEAgLTYwLDQgKzc1LDcgQEAgcHJpdmF0ZToKIAogfQogCitTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlZpZGVvRnJhbWUpCisgICAgc3RhdGlj
IGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkgeyBy
ZXR1cm4gbWVkaWFTYW1wbGUucGxhdGZvcm1TYW1wbGUoKS50eXBlID09IFdlYkNvcmU6OlBsYXRm
b3JtU2FtcGxlOjpWaWRlb0ZyYW1lVHlwZTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQo
KQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAKaW5kZXggMGFiYzMyMjM4ZDY0MWFjYTQ1ZjczOTc3NTdlNGU1ZTE1MWJhN2RiNS4u
ZWFlNGJmMGJiY2M0MzIyYjYxNzAwYzg1ZDg3ZjE3NjhjN2ZkYjk2MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTA4OCw3ICsx
MDg4LDcgQEAgYm9vbCBNZWRpYVBsYXllcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0
dXJlKEdyYXBoaWNzQ29udGV4dEdMKiBjb250ZXh0LAogCiAjZW5kaWYKIAotc3RkOjpvcHRpb25h
bDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhUGxheWVyOjp2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKQorUmVmUHRyPFZpZGVvRnJhbWU+IE1lZGlhUGxheWVyOjp2aWRlb0ZyYW1lRm9yQ3Vy
cmVudFRpbWUoKQogewogICAgIHJldHVybiBtX3ByaXZhdGUtPnZpZGVvRnJhbWVGb3JDdXJyZW50
VGltZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKaW5kZXggNWYwZGFhODY2ZjJjODIzM2FjOGMxOTRhNjEzM2Q5NzNmMzQ0NmZlOC4uYjAz
NTkwYmJkYzhiMWJiNjY3MTNkODBkMTcwZThkMDMwOTZjYWJmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zNCwxMSArMzQsMTEgQEAK
ICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJFbnVtcy5oIgog
I2luY2x1ZGUgIk1lZGlhUGxheWVySWRlbnRpZmllci5oIgotI2luY2x1ZGUgIk1lZGlhU2FtcGxl
VmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybVRleHRUcmFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSAiVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIlZpZGVvRnJh
bWVNZXRhZGF0YS5oIgogI2luY2x1ZGUgIlZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcy5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ZvcndhcmQuaD4KQEAgLTQ3MCw3ICs0NzAsNyBAQCBw
dWJsaWM6CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJl
VG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0IHRl
eHR1cmUsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxG
b3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFs
cGhhLCBib29sIGZsaXBZKTsKICNlbmRpZgotICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVW
aWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKKyAgICBSZWZQdHI8VmlkZW9G
cmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdl
PiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNl
IGNvbG9yU3BhY2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCBmOWZmNGNiZjI4NjlkOTMzMTIwZWRlMDBk
MDE1ZTVhZGRmNDc4MjkxLi44MDliZTE2NTMzMjI3MjA3NjRmYTA4MTZjODM4OGRjMzJiNTgxZDZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllclByaXZhdGUuaApAQCAtMjksOSArMjksOSBAQAogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIu
aCIKICNpbmNsdWRlICJNZWRpYVBsYXllcklkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJNZWRpYVNh
bXBsZVZpZGVvRnJhbWUuaCIKICNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtVGltZVJhbmdlcy5oIgorI2luY2x1ZGUgIlZpZGVvRnJhbWUuaCIKICNpbmNsdWRlIDxv
cHRpb25hbD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KIApAQCAtMTgxLDcg
KzE4MSw3IEBAIHB1YmxpYzoKICNpZiAhVVNFKEFWRk9VTkRBVElPTikKICAgICB2aXJ0dWFsIGJv
b2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiwg
UGxhdGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwg
R0NHTGVudW0sIGJvb2wsIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKLSAgICB2aXJ0
dWFsIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3Vy
cmVudFRpbWUoKSB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxW
aWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSB7IHJldHVybiBudWxscHRyOyB9
CiAgICAgdmlydHVhbCBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRp
bWUoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2UgY29sb3JTcGFjZSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzE0NzRjZmIxM2ZmYjExOTZkM2MyNDA1MGExNjI2YjczYjQ4M2VmNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaAorKysgL2Rldi9udWxs
CkBAIC0xLDEwMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoVklERU8pCi0jaW5jbHVkZSAiSW1h
Z2VPcmllbnRhdGlvbi5oIgotCi0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+Ci0KLXVzaW5nIENWUGl4ZWxCdWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1ZmZl
cio7Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBNZWRpYVNhbXBsZVZp
ZGVvRnJhbWUgewotcHVibGljOgotICAgIE1lZGlhU2FtcGxlVmlkZW9GcmFtZSgpID0gZGVsZXRl
OwotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgV0VCQ09SRV9FWFBPUlQgTWVkaWFTYW1wbGVW
aWRlb0ZyYW1lKFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmLCBJbWFnZU9yaWVudGF0aW9u
KTsKLSNlbmRpZgotCi0gICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fb3JpZW50YXRpb247IH0KLQotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgQ1ZQ
aXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxCdWZmZXIu
Z2V0KCk7IH0KLSNlbmRpZgotCi0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1lZGlhU2FtcGxl
VmlkZW9GcmFtZSYgb3RoZXIpIGNvbnN0OwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gZGVjb2Rl
KERlY29kZXImKTsKLQotcHJpdmF0ZToKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFJldGFp
blB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyOwotI2VuZGlmCi0gICAgSW1hZ2VP
cmllbnRhdGlvbiBtX29yaWVudGF0aW9uOwotfTsKLQotaW5saW5lIGJvb2wgTWVkaWFTYW1wbGVW
aWRlb0ZyYW1lOjpvcGVyYXRvcj09KGNvbnN0IE1lZGlhU2FtcGxlVmlkZW9GcmFtZSYgb3RoZXIp
IGNvbnN0Ci17Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBpZiAobV9waXhlbEJ1ZmZlciAh
PSBvdGhlci5tX3BpeGVsQnVmZmVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLSAg
ICByZXR1cm4gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24ob3RoZXIubV9vcmllbnRhdGlv
bikgPT0gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24obV9vcmllbnRhdGlvbik7Ci19Ci0K
LXRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQot
ICAgIGVuY29kZXIgPDwgbV9waXhlbEJ1ZmZlcjsKLSAgICBlbmNvZGVyIDw8IEltYWdlT3JpZW50
YXRpb246Ok9yaWVudGF0aW9uKG1fb3JpZW50YXRpb24pOwotI2Vsc2UKLSAgICBVTlVTRURfUEFS
QU0oZW5jb2Rlcik7Ci0jZW5kaWYKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3Rk
OjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhU2FtcGxlVmlkZW9GcmFtZTo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBz
dGQ6Om9wdGlvbmFsPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPj4gcGl4ZWxCdWZmZXI7Ci0g
ICAgZGVjb2RlciA+PiBwaXhlbEJ1ZmZlcjsKLSAgICBpZiAoIXBpeGVsQnVmZmVyKQotICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHN0ZDo6b3B0aW9uYWw8SW1hZ2VPcmllbnRhdGlv
bjo6T3JpZW50YXRpb24+IG9yaWVudGF0aW9uOwotICAgIGRlY29kZXIgPj4gb3JpZW50YXRpb247
Ci0gICAgaWYgKCFvcmllbnRhdGlvbikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAg
ICByZXR1cm4gTWVkaWFTYW1wbGVWaWRlb0ZyYW1lIHsgV1RGTW92ZSgqcGl4ZWxCdWZmZXIpLCAq
b3JpZW50YXRpb24gfTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGRlY29kZXIpOwotICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7Ci0jZW5kaWYKLX0KLQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVW
aWRlb0ZyYW1lQVZGLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhU2FtcGxlVmlkZW9GcmFtZUFWRi5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjQ5NTk4MTJmNjZmY2E3MDU0MTdiMDJhZjU1MWZmYzEzMWE4NDM2Mi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1t
CisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAy
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShW
SURFTykKLSNpbmNsdWRlICJNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1NZWRpYVNhbXBsZVZpZGVvRnJhbWU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZShS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiBwaXhlbEJ1ZmZlciwgSW1hZ2VPcmllbnRhdGlv
biBvcmllbnRhdGlvbikKLSAgICA6IG1fcGl4ZWxCdWZmZXIoV1RGTW92ZShwaXhlbEJ1ZmZlcikp
Ci0gICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQotewotfQotCi19Ci0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDM4Mzc3MmM1MDQ0OTI5YjllNTE1Nzg0MTZkZWY2NGY4
Nzg4MDIzNjQuLjAyZjA5M2E4ZTA5NDYwZmZlZmM4ZjkzYWNhMjNkMjJjOTYxYmM5Y2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKQEAgLTI2Miw3ICsyNjIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
dXBkYXRlTGFzdFBpeGVsQnVmZmVyKCk7CiAgICAgYm9vbCB2aWRlb091dHB1dEhhc0F2YWlsYWJs
ZUZyYW1lKCk7CiAgICAgdm9pZCBwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBGbG9hdFJlY3QmKTsKLSAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9G
cmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CisgICAgUmVmUHRyPFZpZGVv
RnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIFJlZlB0cjxOYXRp
dmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIERlc3RpbmF0
aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkgZmluYWw7CiAgICAgdm9pZCB3YWl0Rm9yVmlkZW9P
dXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCBh
ZGIzYmQxYjcwZjQyOTU5ODNhZDVhMjJlNGJlYzJmNjUwZDA3NzdhLi5iMTg1ZTk1ZTdkNmQxYTAz
Nzg2Yzg5YzhmZGU5MzVkYWQ5ZTcyZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTY4
LDYgKzY4LDcgQEAKICNpbXBvcnQgIlNvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCIKICNpbXBvcnQg
IlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCiAjaW1wb3J0ICJVVElVdGlsaXRpZXMuaCIKKyNp
bXBvcnQgIlZpZGVvRnJhbWVDVi5oIgogI2ltcG9ydCAiVmlkZW9MYXllck1hbmFnZXJPYmpDLmgi
CiAjaW1wb3J0ICJWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQgIldlYkNvcmVB
VkZSZXNvdXJjZUxvYWRlci5oIgpAQCAtMjcyMiwxMiArMjcyMywxMiBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNz
Q29udGV4dCYgYwogCiB9CiAKLXN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWUoKQorUmVmUHRyPFZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgdXBkYXRlTGFzdFBpeGVsQnVm
ZmVyKCk7CiAgICAgaWYgKCFtX2xhc3RQaXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKLSAgICByZXR1cm4gTWVkaWFTYW1wbGVWaWRlb0ZyYW1lIHsgUmV0YWluUHRyIHsg
bV9sYXN0UGl4ZWxCdWZmZXIgfSwgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSB9OworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gVmlkZW9GcmFtZUNWOjpjcmVhdGUoY3VycmVudE1l
ZGlhVGltZSgpLCBmYWxzZSwgVmlkZW9GcmFtZUNWOjpWaWRlb1JvdGF0aW9uOjpOb25lLCBSZXRh
aW5QdHIgeyBtX2xhc3RQaXhlbEJ1ZmZlciB9KTsKIH0KIAogUmVmUHRyPE5hdGl2ZUltYWdlPiBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRU
aW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggYmNhZDEyNTQzNjNhMTg3YzY4YTMz
NjhmYTdhN2ExNDg1MTViODJlNS4uNWUxMzBhZjFhYjE0NTM3N2M0YWI0MmM0YTRiZDY2MmM1Zjc2
OWNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTIyMiw3ICsyMjIsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgdXBkYXRlTGFzdEltYWdlKCk7CiAgICAgdm9pZCBwYWludChHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3Vy
cmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92
ZXJyaWRlOwotICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0Zy
YW1lRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKKyAgICBSZWZQdHI8VmlkZW9GcmFtZT4gdmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNlIGNv
bG9yU3BhY2UoKSBmaW5hbDsKIAogICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmlu
ZygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IGU5NWY4
YzNjYWNmMGFkZTE4MTFmMTFiYWU2ODNiZTRiNWZiMTU1MzMuLjc1NGIyMDdmNjc1MTJhNWFhMDky
NDA3MmFkMzA5MWE2NTgwNTc3MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTM5
LDYgKzM5LDcgQEAKICNpbXBvcnQgIk1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oIgogI2ltcG9y
dCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgogI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50
YXRpb24uaCIKKyNpbXBvcnQgIlZpZGVvRnJhbWVDVi5oIgogI2ltcG9ydCAiVmlkZW9MYXllck1h
bmFnZXJPYmpDLmgiCiAjaW1wb3J0ICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24uaCIKICNp
bXBvcnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0Lmg+CkBAIC03MjUsNyArNzI2LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5D
b250ZXh0KEdyYXBoaWNzQ28KICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqaW1hZ2UsIGlt
YWdlUmVjdC5zaXplKCksIG91dHB1dFJlY3QsIGltYWdlUmVjdCk7CiB9CiAKLXN0ZDo6b3B0aW9u
YWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCitSZWZQdHI8VmlkZW9GcmFtZT4gTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWUoKQogewogICAgIC8vIFdlIGhhdmUgYmVlbiBhc2tlZCB0byBwYWludCBpbnRvIGEgV2ViR0wg
Y2FudmFzLCBzbyB0YWtlIHRoYXQgYXMgYSBzaWduYWwgdG8gY3JlYXRlCiAgICAgLy8gYSBkZWNv
bXByZXNzaW9uIHNlc3Npb24sIGV2ZW4gaWYgdGhhdCBtZWFucyB0aGUgbmF0aXZlIHZpZGVvIGNh
bid0IGFsc28gYmUgZGlzcGxheWVkCkBAIC03MzgsOCArNzM5LDggQEAgc3RkOjpvcHRpb25hbDxN
ZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qzo6dmlkZW8KICAgICBpZiAoIW1faXNHYXRoZXJpbmdWaWRlb0ZyYW1lTWV0YWRhdGEpCiAgICAg
ICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpOwogICAgIGlmICghbV9sYXN0UGl4ZWxCdWZmZXIp
Ci0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIE1lZGlhU2FtcGxlVmlk
ZW9GcmFtZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3JpZW50YXRp
b246Ok5vbmUgfTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFZpZGVvRnJh
bWVDVjo6Y3JlYXRlKGN1cnJlbnRNZWRpYVRpbWUoKSwgZmFsc2UsIFZpZGVvRnJhbWVDVjo6Vmlk
ZW9Sb3RhdGlvbjo6Tm9uZSwgUmV0YWluUHRyIHsgbV9sYXN0UGl4ZWxCdWZmZXIgfSk7CiB9CiAK
IERlc3RpbmF0aW9uQ29sb3JTcGFjZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OmNvbG9yU3BhY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCA1MTZkY2RhOTY4
NjdmNzU5ZmFjNWUyMDQwOTI3NWNjMDg5YzBiMzE4Li5mZjUxZmNhNzc2Zjg5N2Y1NjU0NDUzODQ3
YjBhMWVkODQ4Y2MzNGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtMTQzLDcgKzE0
Myw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRl
eHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7Ci0gICAgc3Rk
OjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSgpIG92ZXJyaWRlOworICAgIFJlZlB0cjxWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKSBvdmVycmlkZTsKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgp
IG92ZXJyaWRlOwogICAgIGJvb2wgbWV0YURhdGFBdmFpbGFibGUoKSBjb25zdCB7IHJldHVybiBt
X21lZGlhU3RyZWFtUHJpdmF0ZSAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OlJlYWR5
U3RhdGU6OkhhdmVNZXRhZGF0YTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXgg
NDJmZDE3NDg3ZWE2Y2QxNzEwNTA1MDVmZjVmM2ZmNWVkZmJlN2UxNS4uMjVmYWQ5MDkxMGFiNWU0
YjNlZWYwOWRiNDdlNjlmNmUxYjgwMmUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpA
QCAtMzAsOSArMzAsMTAgQEAKIAogI2ltcG9ydCAiQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVh
bS5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKLSNpbXBvcnQgIkxvZ2dpbmcuaCIK
ICNpbXBvcnQgIkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCisjaW1wb3J0ICJMb2dn
aW5nLmgiCiAjaW1wb3J0ICJNZWRpYVBsYXllci5oIgorI2ltcG9ydCAiTWVkaWFTYW1wbGVBVkZP
YmpDLmgiCiAjaW1wb3J0ICJNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaCIKICNpbXBvcnQgIk1l
ZGlhU3RyZWFtUHJpdmF0ZS5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgpA
QCAtMTAyMiwxNSArMTAyMywxOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDbwogICAgIGNvbnRl
eHQuZHJhd05hdGl2ZUltYWdlKCppbWFnZSwgaW1hZ2VSZWN0LnNpemUoKSwgdHJhbnNmb3JtZWRE
ZXN0UmVjdCwgaW1hZ2VSZWN0KTsKIH0KIAotc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVv
RnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9GcmFtZUZv
ckN1cnJlbnRUaW1lKCkKK1JlZlB0cjxWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgaWYgKG1f
ZGlzcGxheU1vZGUgPT0gTm9uZSB8fCAhbWV0YURhdGFBdmFpbGFibGUoKSkKLSAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKG1fZGlz
cGxheU1vZGUgPT0gUGFpbnRJdEJsYWNrKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIW1faW1hZ2VQYWludGVyLm1lZGlhU2Ft
cGxlKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBtX2ltYWdlUGFp
bnRlci5tZWRpYVNhbXBsZS0+dmlkZW9GcmFtZSgpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICBpZiAoaXM8VmlkZW9GcmFtZT4oKm1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlKSkKKyAg
ICAgICAgcmV0dXJuICZkb3duY2FzdDxWaWRlb0ZyYW1lPigqbV9pbWFnZVBhaW50ZXIubWVkaWFT
YW1wbGUpOworICAgIEFTU0VSVChpczxNZWRpYVNhbXBsZUFWRk9iakM+KCptX2ltYWdlUGFpbnRl
ci5tZWRpYVNhbXBsZSkpOworICAgIHJldHVybiBkb3duY2FzdDxNZWRpYVNhbXBsZUFWRk9iakM+
KCptX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZSkudmlkZW9GcmFtZSgpOwogfQogCiBEZXN0aW5h
dGlvbkNvbG9yU3BhY2UgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjb2xv
clNwYWNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKaW5k
ZXggNWI0ZjdmMDBkYjMzYTViY2RmNjU2YzYwMjJmMTQ4MzRmNDFjNTkwNi4uNTgxNGNmNjM1ZmVk
OWVlMDk1MWIxMjVlNWNjZjgzNDQ0ODQ5NGQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFTYW1wbGVBVkZPYmpDLmgKQEAgLTM1LDYgKzM1LDcgQEAgdXNpbmcgQ1ZQaXhlbEJ1ZmZl
clJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
UGl4ZWxCdWZmZXI7CitjbGFzcyBWaWRlb0ZyYW1lQ1Y7CiAKIGNsYXNzIE1lZGlhU2FtcGxlQVZG
T2JqQyA6IHB1YmxpYyBNZWRpYVNhbXBsZSB7CiBwdWJsaWM6CkBAIC03MSw3ICs3Miw2IEBAIHB1
YmxpYzoKICAgICBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBtX3JvdGF0aW9uOyB9CiAgICAgYm9vbCB2aWRlb01pcnJvcmVkKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9taXJyb3JlZDsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHVpbnQzMl90
IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6
Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZSgpIGNvbnN0IGZpbmFs
OwogICAgIFdFQkNPUkVfRVhQT1JUIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIoKSBjb25z
dCBmaW5hbDsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIoKSBjb25zdCB7IHJl
dHVybiBtX3NhbXBsZS5nZXQoKTsgfQogCkBAIC04MCw2ICs4MCw4IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgc2V0Qnl0ZVJhbmdlT2Zmc2V0KHNpemVfdCk7CiAKKyAgICAvLyBGSVhNRTogVG8gYmUg
cmVtb3ZlZCBvbmNlIFZpZGVvRnJhbWUgaXMgbm90IGEgTWVkaWFTYW1wbGUuCisgICAgV0VCQ09S
RV9FWFBPUlQgUmVmUHRyPFZpZGVvRnJhbWVDVj4gdmlkZW9GcmFtZSgpIGNvbnN0OwogcHJvdGVj
dGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhU2FtcGxlQVZGT2JqQyhSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhU2FtcGxlQVZGT2Jq
QyhDTVNhbXBsZUJ1ZmZlclJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBs
ZUFWRk9iakMubW0KaW5kZXggNTAwNDM0MGZlZjQ5ZTQyZWIyZmRmODM0ZmZjMjc5MTUzZjU4MTRl
Ny4uNjEwMzA1ODY0NWFkNjdmZWI2OGRmNzYzNjQ0MTY1NjM0NWNiNDk3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFT
YW1wbGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQpAQCAtMjgsNiArMjgsNyBAQAog
CiAjaW1wb3J0ICJQaXhlbEJ1ZmZlci5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5oIgorI2ltcG9ydCAiVmlkZW9GcmFtZUNWLmgiCiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9K
U0NJbmxpbmVzLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5SW5saW5lcy5o
PgogI2ltcG9ydCA8d3RmL1ByaW50U3RyZWFtLmg+CkBAIC0xNjUsMjUgKzE2NiwxNCBAQCB1aW50
MzJfdCBNZWRpYVNhbXBsZUFWRk9iakM6OnZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdAogICAgIHJl
dHVybiBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKTsKIH0KIAot
c3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhU2FtcGxlQVZGT2JqQzo6
dmlkZW9GcmFtZSgpIGNvbnN0CitSZWZQdHI8VmlkZW9GcmFtZUNWPiBNZWRpYVNhbXBsZUFWRk9i
akM6OnZpZGVvRnJhbWUoKSBjb25zdAogeworICAgIGlmICghbV9zYW1wbGUpCisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVs
QnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0
KCkpKTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwotICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBbJl0gewotICAgICAgICAvLyBT
YW1wbGUgdHJhbnNmb3JtIGZpcnN0IGZsaXBzIHgtY29vcmRpbmF0ZXMsIHRoZW4gcm90YXRlcy4K
LSAgICAgICAgc3dpdGNoIChtX3JvdGF0aW9uKSB7Ci0gICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6
OlZpZGVvUm90YXRpb246Ok5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gbV9taXJyb3JlZCA/IElt
YWdlT3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2lu
VG9wTGVmdDsKLSAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ6
Ci0gICAgICAgICAgICByZXR1cm4gbV9taXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdp
blJpZ2h0Qm90dG9tIDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRUb3A7Ci0gICAgICAg
IGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd246Ci0gICAgICAgICAg
ICByZXR1cm4gbV9taXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbUxlZnQg
OiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21SaWdodDsKLSAgICAgICAgY2FzZSBNZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDoKLSAgICAgICAgICAgIHJldHVybiBtX21pcnJv
cmVkID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luTGVmdFRvcCA6IEltYWdlT3JpZW50YXRpb246
Ok9yaWdpbkxlZnRCb3R0b207Ci0gICAgICAgIH0KLSAgICB9KCk7Ci0gICAgcmV0dXJuIE1lZGlh
U2FtcGxlVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IHBpeGVsQnVmZmVyIH0sIG9yaWVudGF0aW9u
IH07CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBWaWRlb0ZyYW1lQ1Y6OmNy
ZWF0ZShwcmVzZW50YXRpb25UaW1lKCksIG1fbWlycm9yZWQsIG1fcm90YXRpb24sIFJldGFpblB0
ciB7IHBpeGVsQnVmZmVyIH0pOwogfQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyQXR0
YWNobWVudFJhbmRvbUFjY2VzcyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0Nv
bnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCAzNmU4ZjBmYjAyOTM3N2I0ZWZmZTQwNTM1
MjM3ZTU4MjIyZmJmNzcxLi42NzYyNmJmZGZmOGEwMzRlZDlhMWNhNTRmOTRjYjYxNDhhNDkyZWMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNp
bXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgogI2ltcG9ydCAi
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCisjaW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIKICNp
bXBvcnQgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRleHQuaD4KICNpbXBvcnQgPE1ldGFsL01l
dGFsLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL01ldGFsU1BJLmg+CkBAIC03OTAsNiArNzkx
LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYShN
ZWRpYVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUcKICAgICBhdXRvIHZpZGVvRnJhbWUgPSBwbGF5
ZXIudmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgaWYgKCF2aWRlb0ZyYW1lKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUKGlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJh
bWUpKTsKIAogICAgIGF1dG8gY29udGV4dENWID0gYXNDVigpOwogICAgIGlmICghY29udGV4dENW
KQpAQCAtNzk3LDcgKzc5OSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRl
eHR1cmVGcm9tTWVkaWEoTWVkaWFQbGF5ZXImIHBsYXllciwgUGxhdGZvcm1HCiAKICAgICBVTlVT
RURfVkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgQVNTRVJUX1VOVVNFRChvdXRwdXRU
YXJnZXQsIG91dHB1dFRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7Ci0g
ICAgcmV0dXJuIGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKCp2aWRlb0ZyYW1l
LCBvdXRwdXRUZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3Jh
cGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSk7CisgICAgcmV0dXJuIGNvbnRleHRDVi0+Y29w
eVZpZGVvU2FtcGxlVG9UZXh0dXJlKGRvd25jYXN0PFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUp
LCBvdXRwdXRUZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3Jh
cGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xD
Vi5oCmluZGV4IGFjMTQ3NWU5ZGEzNmVkMTQxMzUyMmU5NjkxMjJiNjMxZTMxOTNlZmEuLmM2MDJm
YmViNzI5NjhkYWY2NDIxN2YwMWY5NTBhMjRhN2M1YmY4ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmgK
QEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBNZWRpYVNhbXBsZVZpZGVvRnJhbWU7CitjbGFzcyBWaWRl
b0ZyYW1lQ1Y7CiAKIC8vIEludGVyZmFjZSB0byBpbnRlcmFjdCB3aXRoIENWIG9iamVjdHMgYW5k
IEdyYXBoaWNzQ29udGV4dEdMLgogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xDViB7CkBAIC00MCw3
ICs0MCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBGbGlwWSA9IEdyYXBoaWNzQ29udGV4dEdMOjpG
bGlwWTsKICAgICAvLyBDb3BpZXMgQ1YgcGl4ZWwgYnVmZmVyIHRvIEdyYXBoaWNzQ29udGV4dEdM
IFRFWFRVUkVfMkQgdGV4dHVyZSBvZiB0aGUgc2FtZSBzaXplIGFzIHRoZSBwaXhlbCBidWZmZXIu
CiAgICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCi0gICAgdmlydHVhbCBib29sIGNvcHlW
aWRlb1NhbXBsZVRvVGV4dHVyZShjb25zdCBNZWRpYVNhbXBsZVZpZGVvRnJhbWUmLCBQbGF0Zm9y
bUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFs
Rm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZKSA9IDA7CisgICAg
dmlydHVhbCBib29sIGNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShjb25zdCBWaWRlb0ZyYW1lQ1Ym
LCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVt
IGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZKSA9
IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcAppbmRleCAyYzk4Zjlk
OTI5MjNjMDQ5YTk0YjM0OWI0Zjc3NTI5NDc3MTllMjI4Li5hZjRiYzgxYjJhZjg1YWFjMDNkZGRm
MGY3N2M5OTdmZGU2MzI3ZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJGb3VyQ0MuaCIKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHRHTENvY29hLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlZpZGVvRnJh
bWVDVi5oIgogI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ29yZVZpZGVvU1BJLmg+CiAjaW5jbHVkZSA8
cGFsL3NwaS9jb2NvYS9JT1N1cmZhY2VTUEkuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KQEAgLTU4NSw3ICs1ODYsNyBAQCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OkdyYXBo
aWNzQ29udGV4dEdMQ1ZDb2NvYShHcmFwaGljc0NvbnRleHRHTENvY29hJiBvd25lcgogICAgIEdM
X0JpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mcmFtZWJ1ZmZlcik7CiB9CiAKLWJv
b2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoY29u
c3QgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lJiB2aWRlb0ZyYW1lLCBQbGF0Zm9ybUdMT2JqZWN0IG91
dHB1dFRleHR1cmUsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMZW51bSBm
b3JtYXQsIEdMZW51bSB0eXBlLCBGbGlwWSB1bnBhY2tGbGlwWSkKK2Jvb2wgR3JhcGhpY3NDb250
ZXh0R0xDVkNvY29hOjpjb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoY29uc3QgVmlkZW9GcmFtZUNW
JiB2aWRlb0ZyYW1lLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdMaW50IGxldmVs
LCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBGbGlw
WSB1bnBhY2tGbGlwWSkKIHsKICAgICBhdXRvIGltYWdlID0gdmlkZW9GcmFtZS5waXhlbEJ1ZmZl
cigpOwogICAgIC8vIEZJWE1FOiBUaGlzIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzICc0MjB2JyBh
bmQgJzQyMGYnIHBpeGVsIGZvcm1hdHMuIEludmVzdGlnYXRlIHN1cHBvcnRpbmcgbW9yZSBwaXhl
bCBmb3JtYXRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAppbmRleCA5ZTFiNDQ0OWQzYjRi
YjlmNWMwZDdhZThkODVmMzBlZjFkMDRiYThhLi43NjA4OWRjYWI0MjNkOTUwOTEwMDVlNjc4ZjAz
YWNkM2RhNzJiMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaApAQCAtNDMsNyArNDMs
NyBAQCBwdWJsaWM6CiAKICAgICB+R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hKCkgZmluYWw7CiAK
LSAgICBib29sIGNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShjb25zdCBNZWRpYVNhbXBsZVZpZGVv
RnJhbWUmLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdD
R0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZs
aXBZKSBmaW5hbDsKKyAgICBib29sIGNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShjb25zdCBWaWRl
b0ZyYW1lQ1YmLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWws
IEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUs
IEZsaXBZKSBmaW5hbDsKIAogICAgIHZvaWQgaW52YWxpZGF0ZUtub3duVGV4dHVyZUNvbnRlbnQo
R0NHTHVpbnQgdGV4dHVyZSk7CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzFjODgwMmNjOGM4
MzM5MzQ0ZmIwZDc0ZTFkYjNmZDNiZGRmN2RhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmgKQEAgLTAsMCArMSw4MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0Uo
QVZGT1VOREFUSU9OKQorCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgorI2luY2x1ZGUg
IlZpZGVvRnJhbWUuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK3VzaW5nIENWUGl4
ZWxCdWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1ZmZlcio7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgVmlkZW9GcmFtZUNWIDogcHVibGljIFZpZGVvRnJhbWUgeworcHVibGljOgorICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8VmlkZW9GcmFtZUNWPiBjcmVhdGUoTWVkaWFUaW1l
IHByZXNlbnRhdGlvblRpbWUsIGJvb2wgaXNNaXJyb3JlZCwgVmlkZW9Sb3RhdGlvbiwgUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIH5WaWRlb0ZyYW1l
Q1YoKTsKKworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIoKSBjb25zdCB7IHJldHVy
biBtX3BpeGVsQnVmZmVyLmdldCgpOyB9CisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlv
bigpIGNvbnN0OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFJlZlB0cjxWaWRlb0ZyYW1lQ1Y+PiBkZWNvZGUoRGVjb2RlciYpOworCisg
ICAgLy8gVmlkZW9GcmFtZSBvdmVycmlkZXMuCisgICAgV2ViQ29yZTo6RmxvYXRTaXplIHByZXNl
bnRhdGlvblNpemUoKSBjb25zdCBmaW5hbDsKKyAgICB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0
KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBpc0NWKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQorCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvRnJhbWVDVihNZWRpYVRp
bWUgcHJlc2VudGF0aW9uVGltZSwgYm9vbCBpc01pcnJvcmVkLCBWaWRlb1JvdGF0aW9uLCBSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJik7CisKKyAgICBjb25zdCBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlcjsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+IHZvaWQgVmlkZW9GcmFtZUNWOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBlbmNvZGVyIDw8IG1fcHJlc2VudGF0aW9uVGltZSA8PCBtX2lzTWlycm9yZWQgPDwgbV9y
b3RhdGlvbiA8PCBtX3BpeGVsQnVmZmVyOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVy
PiBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxWaWRlb0ZyYW1lQ1Y+PiBWaWRlb0ZyYW1lQ1Y6OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGF1dG8gcHJlc2VudGF0aW9uVGltZSA9IGRlY29k
ZXIudGVtcGxhdGUgZGVjb2RlPE1lZGlhVGltZT4oKTsKKyAgICBhdXRvIGlzTWlycm9yZWQgPSBk
ZWNvZGVyLnRlbXBsYXRlIGRlY29kZTxib29sPigpOworICAgIGF1dG8gcm90YXRpb24gPSBkZWNv
ZGVyLnRlbXBsYXRlIGRlY29kZTxWaWRlb1JvdGF0aW9uPigpOworICAgIGF1dG8gcGl4ZWxCdWZm
ZXIgPSBkZWNvZGVyLnRlbXBsYXRlIGRlY29kZTxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+
KCk7CisgICAgaWYgKCFkZWNvZGVyLmlzVmFsaWQoKSB8fCAhKnBpeGVsQnVmZmVyKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJldHVybiBWaWRlb0ZyYW1lQ1Y6OmNyZWF0ZSgq
cHJlc2VudGF0aW9uVGltZSwgKmlzTWlycm9yZWQsICpyb3RhdGlvbiwgV1RGTW92ZSgqcGl4ZWxC
dWZmZXIpKTsKK30KKworfQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6
OlZpZGVvRnJhbWVDVikKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6Vmlk
ZW9GcmFtZSYgdmlkZW9GcmFtZSkgeyByZXR1cm4gdmlkZW9GcmFtZS5pc0NWKCk7IH0KKyAgICBz
dGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxl
KSB7IHJldHVybiBpczxXZWJDb3JlOjpWaWRlb0ZyYW1lPihtZWRpYVNhbXBsZSkgJiYgaXM8V2Vi
Q29yZTo6VmlkZW9GcmFtZUNWPihkb3duY2FzdDxXZWJDb3JlOjpWaWRlb0ZyYW1lPihtZWRpYVNh
bXBsZSkpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE1YTZkMDgyYmJlNDJjMzE3M2FiYzFmYTg4MTJlNDQxY2FjNmY2ZTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0Zy
YW1lQ1YubW0KQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJWaWRlb0ZyYW1lQ1YuaCIKKworI2lmIEVOQUJMRShWSURFTykgJiYgVVNF
KEFWRk9VTkRBVElPTikKKyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1JlZjxWaWRlb0ZyYW1lQ1Y+IFZpZGVvRnJhbWVDVjo6Y3JlYXRlKE1l
ZGlhVGltZSBwcmVzZW50YXRpb25UaW1lLCBib29sIGlzTWlycm9yZWQsIFZpZGVvUm90YXRpb24g
cm90YXRpb24sIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmIHBpeGVsQnVmZmVyKQorewor
ICAgIEFTU0VSVChwaXhlbEJ1ZmZlcik7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9G
cmFtZUNWKHByZXNlbnRhdGlvblRpbWUsIGlzTWlycm9yZWQsIHJvdGF0aW9uLCBXVEZNb3ZlKHBp
eGVsQnVmZmVyKSkpOworfQorCitWaWRlb0ZyYW1lQ1Y6OlZpZGVvRnJhbWVDVihNZWRpYVRpbWUg
cHJlc2VudGF0aW9uVGltZSwgYm9vbCBpc01pcnJvcmVkLCBWaWRlb1JvdGF0aW9uIHJvdGF0aW9u
LCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiBwaXhlbEJ1ZmZlcikKKyAgICA6IFZpZGVv
RnJhbWUocHJlc2VudGF0aW9uVGltZSwgaXNNaXJyb3JlZCwgcm90YXRpb24pCisgICAgLCBtX3Bp
eGVsQnVmZmVyKFdURk1vdmUocGl4ZWxCdWZmZXIpKQoreworfQorCitWaWRlb0ZyYW1lQ1Y6On5W
aWRlb0ZyYW1lQ1YoKSA9IGRlZmF1bHQ7CisKK1dlYkNvcmU6OkZsb2F0U2l6ZSBWaWRlb0ZyYW1l
Q1Y6OnByZXNlbnRhdGlvblNpemUoKSBjb25zdAoreworICAgIHJldHVybiB7IHN0YXRpY19jYXN0
PGZsb2F0PihDVlBpeGVsQnVmZmVyR2V0V2lkdGgobV9waXhlbEJ1ZmZlci5nZXQoKSkpLCBzdGF0
aWNfY2FzdDxmbG9hdD4oQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChtX3BpeGVsQnVmZmVyLmdldCgp
KSkgfTsKK30KKwordWludDMyX3QgVmlkZW9GcmFtZUNWOjp2aWRlb1BpeGVsRm9ybWF0KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShtX3BpeGVs
QnVmZmVyLmdldCgpKTsKK30KKworSW1hZ2VPcmllbnRhdGlvbiBWaWRlb0ZyYW1lQ1Y6Om9yaWVu
dGF0aW9uKCkgY29uc3QKK3sKKyAgICAvLyBTYW1wbGUgdHJhbnNmb3JtIGZpcnN0IGZsaXBzIHgt
Y29vcmRpbmF0ZXMsIHRoZW4gcm90YXRlcy4KKyAgICBzd2l0Y2ggKG1fcm90YXRpb24pIHsKKyAg
ICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOgorICAgICAgICByZXR1cm4g
bV9pc01pcnJvcmVkID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wUmlnaHQgOiBJbWFnZU9y
aWVudGF0aW9uOjpPcmlnaW5Ub3BMZWZ0OworICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90
YXRpb246OlJpZ2h0OgorICAgICAgICByZXR1cm4gbV9pc01pcnJvcmVkID8gSW1hZ2VPcmllbnRh
dGlvbjo6T3JpZ2luUmlnaHRCb3R0b20gOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodFRv
cDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAg
ICAgICByZXR1cm4gbV9pc01pcnJvcmVkID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9t
TGVmdCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0OworICAgIGNhc2UgTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQ6CisgICAgICAgIHJldHVybiBtX2lzTWlycm9y
ZWQgPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0VG9wIDogSW1hZ2VPcmllbnRhdGlvbjo6
T3JpZ2luTGVmdEJvdHRvbTsKKyAgICB9Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMLmNwcAppbmRleCAwNGNhMTBlMThmMTUwODE1ZjNmZDY5M2ZmYjMyNjk1MzQyMjdkOTZh
Li40YTY3YzVkMTZlNWEwZmY5Zjk4N2ZkMjQzYTJkYjk1OGQzZGUyYThhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGlj
c0NvbnRleHRHTC5jcHAKQEAgLTI4Nyw3ICsyODcsNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZp
ZQogICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5V
U0VEKHRhcmdldCwgdGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJEKTsKIAot
ICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOworICAg
IFJlZlB0cjxWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOwogICAgIGF1dG8gZ2V0VmlkZW9GcmFtZSA9
IFsmXSB7CiAgICAgICAgIGlmICghbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmll
CiAKICAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoV1RGTW92ZShnZXRWaWRlb0ZyYW1lKSk7
CiAKLSAgICBpZiAoIXZpZGVvRnJhbWUpIHsKKyAgICBpZiAoIXZpZGVvRnJhbWUgfHwgIWlzPFZp
ZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZh
bHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMwOSw3ICszMDksNyBAQCB2b2lkIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRp
YVBsYXllcklkZW50aWZpZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY29tcGxldGlv
bkhhbmRsZXIoY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoKnZpZGVvRnJhbWUs
IHRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0Nv
bnRleHRHTDo6RmxpcFkoZmxpcFkpKSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dENW
LT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoZG93bmNhc3Q8VmlkZW9GcmFtZUNWPigqdmlkZW9G
cmFtZSksIHRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFw
aGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKSk7CiAjZWxzZQogICAgIFVOVVNFRF9WQVJJQUJM
RShtZWRpYVBsYXllcklkZW50aWZpZXIpOwogICAgIFVOVVNFRF9WQVJJQUJMRSh0ZXh0dXJlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcAppbmRleCA0MmEzMjA2NTRiMDNkZjliNDM5Nzc3OTQyNTY0NTgyMDA2
Y2RhMTEwLi4xOGQwMDRkZjdkOTI2ODhmNTBjYjkyMTI2NTNkMTY0NjNjYTcyM2I1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuY3BwCkBAIC02Nyw2ICs2Nyw3IEBACiAKICNpZiBQTEFURk9STShDT0NPQSkKICNp
bmNsdWRlIDxXZWJDb3JlL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9WaWRlb0ZyYW1lQ1YuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAg
LTEwNyw3ICsxMDgsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmludmFsaWRhdGUo
KQogICAgIH0KICAgICBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgPSB7IH07CiAjaWYgVVNF
KEFWRk9VTkRBVElPTikKLSAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IHN0ZDo6bnVs
bG9wdDsKKyAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IG51bGxwdHI7CiAjZW5kaWYK
IH0KIApAQCAtODY4LDIwICs4NjksMjggQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpj
dXJyZW50VGltZUNoYW5nZWQoY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUpCiAgICAgbV93ZWJQ
cm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpDdXJyZW50VGltZUNoYW5nZWQobWVkaWFUaW1lLCBNb25vdG9uaWNUaW1lOjpub3coKSwgIW1l
ZGlhUGxheWVyUGF1c2VkT3JTdGFsbGVkKCkpLCBtX2lkKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRp
YVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFt
ZT4mJiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisvLyBGSVhNRTogVGhpcyB3aWxsIGJl
IHR1cm5lZCBpbnRvIGNyb3NzLXBsYXRmb3JtIGNvZGUgc29vbi4KKyNpZiBQTEFURk9STShDT0NP
QSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1l
SWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZWZQdHI8V2Vi
Q29yZTo6VmlkZW9GcmFtZUNWPj4mJiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHJlc3VsdDsK
KyAgICBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiByZXN1bHQ7
CiAgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpN
ZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWU7CisgICAgUmVmUHRyPFdlYkNvcmU6OlZp
ZGVvRnJhbWU+IHZpZGVvRnJhbWU7CiAgICAgaWYgKG1fcGxheWVyKQogICAgICAgICB2aWRlb0Zy
YW1lID0gbV9wbGF5ZXItPnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwotICAgIGlmICghKG1f
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID09IHZpZGVvRnJhbWUpKSB7CisgICAgaWYgKG1fdmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lICE9IHZpZGVvRnJhbWUpIHsKICAgICAgICAgbV92aWRlb0Zy
YW1lRm9yQ3VycmVudFRpbWUgPSB2aWRlb0ZyYW1lOwogICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsK
LSAgICAgICAgcmVzdWx0ID0gV1RGTW92ZSh2aWRlb0ZyYW1lKTsKKyAgICAgICAgUmVmUHRyPFZp
ZGVvRnJhbWVDVj4gdmlkZW9GcmFtZUNWOworICAgICAgICBpZiAodmlkZW9GcmFtZSkgeworICAg
ICAgICAgICAgQVNTRVJUKGlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpKTsKKyAgICAgICAg
ICAgIHZpZGVvRnJhbWVDViA9ICZkb3duY2FzdDxWaWRlb0ZyYW1lQ1Y+KCp2aWRlb0ZyYW1lKTsK
KyAgICAgICAgfQorICAgICAgICByZXN1bHQgPSBXVEZNb3ZlKHZpZGVvRnJhbWVDVik7CiAgICAg
fQogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSwgY2hhbmdlZCk7CiB9Cisj
ZW5kaWYKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp1cGRhdGVDYWNoZWRTdGF0ZShi
b29sIGZvcmNlQ3VycmVudFRpbWVVcGRhdGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCA5MzE2YjY2
YWIzNTk2NmU1YjY0NWRkMWM3Y2UwZTgxMmYyMDZhNjM3Li43NWVhYmQ0NWIzMWQwMzRiODRjNDhm
YzY2YjI3NzlhMmU1NjQzOWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTc4LDYgKzc4LDEyIEBAIGNs
YXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7
CiAKIHN0cnVjdCBGb3VyQ0M7CisKK2NsYXNzIFZpZGVvRnJhbWU7CisKKyNpZiBQTEFURk9STShD
T0NPQSkKK2NsYXNzIFZpZGVvRnJhbWVDVjsKKyNlbmRpZgogfQogCiAjaWYgVVNFKEFWRk9VTkRB
VElPTikKQEAgLTMyNyw4ICszMzMsOCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIHZvaWQgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8V1RGOjpNYWNoU2VuZFJpZ2h0PiYmLCBXZWJDb3JlOjpEZXN0aW5hdGlv
bkNvbG9yU3BhY2UpPiYmKTsKICAgICB2b2lkIGNvbG9yU3BhY2UoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UpPiYmKTsKKyAgICB2b2lkIHZpZGVv
RnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6
b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+JiYsIGJvb2wpPiYmKTsKICNl
bmRpZgotICAgIHZvaWQgdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJh
bWU+JiYsIGJvb2wpPiYmKTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0
IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7IHJldHVybiBtX2xvZ2dlcjsgfQpA
QCAtMzg0LDcgKzM5MCw3IEBAIHByaXZhdGU6CiAgICAgU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2Vz
UmVxdWVzdCBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Q7CiAKICAgICBib29sIG1fb2JzZXJ2
aW5nVGltZUNoYW5nZXMgeyBmYWxzZSB9OwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVk
aWFTYW1wbGVWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6VmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiAjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dlcjsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0ZTRmZWNhMjgzMWE0Y2Qz
ZTNhOWJlNzkyYWIyMDViMWUxM2VkMjYyLi5jYzEzN2FkZTUxOWJjNmQ0NzA3NTZjZjU3MDFkMDQ2
NmUxNWRkNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTI1LDgg
KzEyNSw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRl
ZCB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgTmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgp
IC0+IChzdGQ6Om9wdGlvbmFsPE1hY2hTZW5kUmlnaHQ+IHNlbmRSaWdodCwgV2ViQ29yZTo6RGVz
dGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UpIFN5bmNocm9ub3VzCiAgICAgQ29sb3JTcGFj
ZSgpIC0+IChXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSkgU3luY2hy
b25vdXMKKyAgICBWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSAtPiAoc3RkOjpv
cHRpb25hbDxSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPj4gdmlkZW9GcmFtZSwgYm9vbCBj
aGFuZ2VkKSBTeW5jaHJvbm91cwogI2VuZGlmCi0gICAgVmlkZW9GcmFtZUZvckN1cnJlbnRUaW1l
SWZDaGFuZ2VkKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0Zy
YW1lPiB2aWRlb0ZyYW1lLCBib29sIGNoYW5nZWQpIFN5bmNocm9ub3VzCiAKICAgICBQbGF5QXRI
b3N0VGltZShNb25vdG9uaWNUaW1lIHRpbWUpCiAgICAgUGF1c2VBdEhvc3RUaW1lKE1vbm90b25p
Y1RpbWUgdGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3Vt
ZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5o
CmluZGV4IGEzMzQyYzNiYzNlN2UyMTM0OGZlMjA4ODdjYzFkZmVmMmJmOTU5NmMuLjcxZTUyMjhi
ZjYwODVmZWZlMDI3OGU2YjFhZjM1NTU5Mzk3OGI4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAtMjY1LDYgKzI2NSwzMSBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnBhaXI8VCwg
VT4+IHsKICAgICB9CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxSZWZQdHI8VD4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4KKyAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVmUHRyPFU+JiBvYmplY3Qp
CisgICAgeworICAgICAgICBpZiAob2JqZWN0KQorICAgICAgICAgICAgZW5jb2RlciA8PCB0cnVl
IDw8ICpvYmplY3Q7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7
CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+CisgICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8UmVmUHRyPFU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAg
ICAgIGF1dG8gaGFzT2JqZWN0ID0gZGVjb2Rlci50ZW1wbGF0ZSBkZWNvZGU8Ym9vbD4oKTsKKyAg
ICAgICAgaWYgKCFoYXNPYmplY3QpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgICAgICBpZiAoISpoYXNPYmplY3QpCisgICAgICAgICAgICByZXR1cm4gUmVmUHRyPFU+IHsg
fTsKKyAgICAgICAgLy8gRGVjb2RlcnMgb2YgVSBoZWxkIHdpdGggUmVmUHRyIGRvIG5vdCByZXR1
cm4gc3RkOjpvcHRpb25hbDxVPiBidXQKKyAgICAgICAgLy8gc3RkOjpvcHRpb25hbDxSZWZQdHI8
VT4+LiBXZSBjYW5ub3QgdXNlIGBkZWNvZGVyLnRlbXBsYXRlIGRlY29kZTxVPigpYAorICAgICAg
ICAvLyBDdXJyZW50bHkgZXhwZWN0ICJtb2Rlcm4gZGVjb2RlciIgLWxpa2UgZGVjb2RlIGZ1bmN0
aW9uLgorICAgICAgICByZXR1cm4gVTo6ZGVjb2RlKGRlY29kZXIpOworICAgIH0KK307CisKIHRl
bXBsYXRlPHNpemVfdCBpbmRleCwgdHlwZW5hbWUuLi4gRWxlbWVudHM+CiBzdHJ1Y3QgVHVwbGVF
bmNvZGVyIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwCmluZGV4IDhkOWU1ZmY5MmFjM2IzZjBlYjcxMzM5ZWZlOGI0YmYzZjQyOTY0
ZGMuLmFkMWI3ZjJiNTZjZmU1Mzk4ZDMxMWZjOTFlZDhmMmEyMjYwMDdjNGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTgwLDggKzgwLDkgQEAKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0jaW1wb3J0IDxXZWJDb3JlL1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaD4K
LSNpbXBvcnQgPFdlYkNvcmUvVmlkZW9MYXllck1hbmFnZXJPYmpDLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0Zy
YW1lQ1YuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oPgogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwMDIsMTQgKzEwMDMsMjEgQEAgYm9vbCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVy
ZShXZWJDb3JlOjpHcmFwaGkKIH0KICNlbmRpZgogCi1zdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWUoKQorUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWU+IE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKLSAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gcmVzdWx0OworLy8gRklYTUU6
IFRoaXMgd2lsbCBiZSBtYWRlIGNyb3NzLXBsYXRmb3JtIGFnYWluIHNvb24uIFRoZXJlIGFyZSBu
byBvdGhlciBwbGF0Zm9ybXMgdXNpbmcgdGhpcyBhdCB0aGUgbW9tZW50LgorI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+
IHJlc3VsdDsKICAgICBib29sIGNoYW5nZWQgPSBmYWxzZTsKICAgICBpZiAoIWNvbm5lY3Rpb24o
KS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VmlkZW9GcmFtZUZv
ckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjpWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQ6OlJlcGx5KHJlc3VsdCwgY2hhbmdl
ZCksIG1faWQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIGlmIChjaGFuZ2Vk
KQotICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IFdURk1vdmUocmVzdWx0KTsK
KyAgICAgICAgcmV0dXJuIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOworICAgIGlmIChjaGFu
Z2VkKSB7CisgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICBtX3ZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSA9IFdURk1vdmUoKnJlc3VsdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID0gbnVsbHB0cjsKKyAgICB9CisjZW5kaWYKICAg
ICByZXR1cm4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5oCmluZGV4IDFhNmEzNDAzNDNkMTQyZWRmZGVlYTM2YjM3NGE5OWY5OTNlZmViOTIu
LjI5ZjkxMmQ0ZThiODdiNTdiYTE1NjI0YTZkYzVlMDZiN2M1YzFiOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuaApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2
YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
VmlkZW9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9GcmFtZU1ldGFkYXRhLmg+CiAj
aW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4K
QEAgLTI5Myw3ICsyOTQsNyBAQCBwcml2YXRlOgogI2lmICFVU0UoQVZGT1VOREFUSU9OKQogICAg
IGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMKiwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVt
LCBHQ0dMZW51bSwgR0NHTGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwogI2VuZGlmCi0gICAgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZSgpIGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lPiB2aWRl
b0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKICAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZl
SW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKICAgICBXZWJDb3JlOjpE
ZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGZpbmFsOwogCkBAIC00NjAsNyArNDYx
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fd2FpdGluZ0ZvcktleSB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX3RpbWVJc1Byb2dyZXNzaW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVuZGVyaW5n
Q2FuQmVBY2NlbGVyYXRlZCB7IGZhbHNlIH07Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpN
ZWRpYVNhbXBsZVZpZGVvRnJhbWU+IG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOworICAgIFJl
ZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhl
bEJ1ZmZlckdhdGhlcmVkV2l0aFZpZGVvRnJhbWVNZXRhZGF0YTsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4gbV9waXhlbEJ1ZmZlckNvbmZvcm1l
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
VmlkZW9GcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcAppbmRleCAwNThjZTliNzVmY2FjY2VmNGIxY2JmNTVj
MTZmODE0YjBhZjEwODYzLi4zMzdkMTMwOTRhMjI2YmY2ODcxY2YxYjRiYjk5YTk0ZDM3MTQ1NjBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZp
ZGVvRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwCkBAIC02MSwxMSArNjEsOSBAQCB2b2lkIFJlbW90
ZVZpZGVvRnJhbWVQcm94eTo6cmVsZWFzZVVudXNlZChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIFByb3BlcnRpZQogfQogCiBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlJlbW90ZVZpZGVvRnJh
bWVQcm94eShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFByb3BlcnRpZXMgcHJvcGVydGll
cywgUGl4ZWxCdWZmZXJDYWxsYmFjayYmIGNhbGxiYWNrKQotICAgIDogbV9jb25uZWN0aW9uKGNv
bm5lY3Rpb24pCisgICAgOiBWaWRlb0ZyYW1lKHByb3BlcnRpZXMucHJlc2VudGF0aW9uVGltZSwg
cHJvcGVydGllcy5pc01pcnJvcmVkLCBwcm9wZXJ0aWVzLnJvdGF0aW9uKQorICAgICwgbV9jb25u
ZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX3JlZmVyZW5jZVRyYWNrZXIocHJvcGVydGllcy5y
ZWZlcmVuY2UpCi0gICAgLCBtX3ByZXNlbnRhdGlvblRpbWUocHJvcGVydGllcy5wcmVzZW50YXRp
b25UaW1lKQotICAgICwgbV9pc01pcnJvcmVkKHByb3BlcnRpZXMuaXNNaXJyb3JlZCkKLSAgICAs
IG1fcm90YXRpb24ocHJvcGVydGllcy5yb3RhdGlvbikKICAgICAsIG1fc2l6ZShwcm9wZXJ0aWVz
LnNpemUpCiAgICAgLCBtX3BpeGVsRm9ybWF0KHByb3BlcnRpZXMucGl4ZWxGb3JtYXQpCiAgICAg
LCBtX3BpeGVsQnVmZmVyQ2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCkBAIC05MiwzNiArOTAs
MTEgQEAgUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UgUmVtb3RlVmlkZW9GcmFtZVByb3h5
OjpyZWFkKCkgY29uc3QKICAgICByZXR1cm4gbV9yZWZlcmVuY2VUcmFja2VyLnJlYWQoKTsKIH0K
IAotTWVkaWFUaW1lIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cHJlc2VudGF0aW9uVGltZSgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJlc2VudGF0aW9uVGltZTsKLX0KLQotV2ViQ29yZTo6UGxh
dGZvcm1TYW1wbGUgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpwbGF0Zm9ybVNhbXBsZSgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIHsgV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OlJlbW90ZVZpZGVvRnJh
bWVQcm94eVR5cGUsIHsgfSB9OwotfQotCi1NZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBSZW1v
dGVWaWRlb0ZyYW1lUHJveHk6OnZpZGVvUm90YXRpb24oKSBjb25zdAotewotICAgIHJldHVybiBt
X3JvdGF0aW9uOwotfQotCi1ib29sIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6dmlkZW9NaXJyb3Jl
ZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faXNNaXJyb3JlZDsKLX0KLQogdWludDMyX3QgUmVt
b3RlVmlkZW9GcmFtZVByb3h5Ojp2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9waXhlbEZvcm1hdDsKIH0KIAotc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBs
ZVZpZGVvRnJhbWU+IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6dmlkZW9GcmFtZSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLX0KLQogI2lmIFBMQVRGT1JNKENPQ09BKQogdm9p
ZCBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OmdldFBpeGVsQnVmZmVyKCkKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQ
cm94eS5oCmluZGV4IDMxYTFhODQ1N2ViZjY4NTM2MThkNjhkNWVlOTUxMmVkNzRlZjFmZjcuLjQ5
YTI2ZmNlM2JiNDMyNmJjMzgzNGRmMzYyMzJjZGFiMWVhMDlkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJv
eHkuaApAQCAtOTQsMTQgKzk0LDggQEAgcHJpdmF0ZToKICAgICBSZW1vdGVWaWRlb0ZyYW1lUHJv
eHkoSVBDOjpDb25uZWN0aW9uJiwgUHJvcGVydGllcywgUGl4ZWxCdWZmZXJDYWxsYmFjayYmKTsK
IAogICAgIC8vIFdlYkNvcmU6OlZpZGVvRnJhbWUgb3ZlcnJpZGVzLgotICAgIE1lZGlhVGltZSBw
cmVzZW50YXRpb25UaW1lKCkgY29uc3QgZmluYWw7Ci0gICAgVmlkZW9Sb3RhdGlvbiB2aWRlb1Jv
dGF0aW9uKCkgY29uc3QgZmluYWw7Ci0gICAgYm9vbCB2aWRlb01pcnJvcmVkKCkgY29uc3QgZmlu
YWw7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHByZXNlbnRhdGlvblNpemUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3NpemU7IH0KLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZSgpIGNvbnN0IGZpbmFsOwogICAgIHVpbnQzMl90IHZp
ZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKLSAgICAvLyBGSVhNRTogV2hlbiBWaWRlb0Zy
YW1lIGlzIG5vdCBNZWRpYVNhbXBsZSwgdGhlc2Ugd2lsbCBub3QgYmUgbmVlZGVkLgotICAgIFdl
YkNvcmU6OlBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkgY29uc3QgZmluYWw7CiAKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIGdldFBpeGVsQnVmZmVyKCk7CkBAIC0xMDksOSAr
MTAzLDYgQEAgcHJpdmF0ZToKIAogICAgIGNvbnN0IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKICAgICBSZW1vdGVWaWRlb0ZyYW1lUmVmZXJlbmNlVHJhY2tlciBtX3JlZmVyZW5j
ZVRyYWNrZXI7Ci0gICAgY29uc3QgTWVkaWFUaW1lIG1fcHJlc2VudGF0aW9uVGltZTsKLSAgICBj
b25zdCBib29sIG1faXNNaXJyb3JlZDsKLSAgICBjb25zdCBWaWRlb1JvdGF0aW9uIG1fcm90YXRp
b247CiAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7CiAgICAgdWludDMyX3QgbV9w
aXhlbEZvcm1hdCB7IDAgfTsKICAgICBtdXRhYmxlIExvY2sgbV9waXhlbEJ1ZmZlckxvY2s7CkBA
IC0xNDksOSArMTQwLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RkOjpvcHRpb25h
bDxSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXM+IFJlbW8KIAogfQogU1BFQ0lBTEla
RV9UWVBFX1RSQUlUU19CRUdJTihXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94eSkKLSAgICBz
dGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxl
KSB7IHJldHVybiBtZWRpYVNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0gV2ViQ29yZTo6
UGxhdGZvcm1TYW1wbGU6OlJlbW90ZVZpZGVvRnJhbWVQcm94eVR5cGU7IH0KLVNQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfRU5EKCkKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6
VmlkZW9GcmFtZSkKLSAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFT
YW1wbGUmIG1lZGlhU2FtcGxlKSB7IHJldHVybiBtZWRpYVNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgp
LnR5cGUgPT0gV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OlJlbW90ZVZpZGVvRnJhbWVQcm94eVR5
cGU7IH0KKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTYW1wbGUm
IG1lZGlhU2FtcGxlKSB7IHJldHVybiBpczxXZWJDb3JlOjpWaWRlb0ZyYW1lPihtZWRpYVNhbXBs
ZSkgJiYgZG93bmNhc3Q8V2ViQ29yZTo6VmlkZW9GcmFtZT4obWVkaWFTYW1wbGUpLmlzUmVtb3Rl
UHJveHkoKTsgfQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452193</attachid>
            <date>2022-02-16 06:38:48 -0800</date>
            <delta_ts>2022-02-16 08:14:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236701-20220216163846.patch</filename>
            <type>text/plain</type>
            <size>68448</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ5Zjg1ZTliNGRkZmMy
ODdjZDViODNmY2YzM2IyMzNlN2YzZTQxNi4uZWFhN2RjYzQ5NmFiMWUwYzYxNTFiMThlYWQ1YzQ5
NDE1OTdmNTU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDIyLTAyLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFQbGF5ZXI6
OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHNob3VsZCByZXR1cm4gVmlkZW9GcmFtZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzAxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJlbmFtZSBDViBzcGVj
aWZpYyBwYXJ0cyBvZiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgdG8gVmlkZW9GcmFtZUNWLgorICAg
ICAgICBVc2UgVmlkZW9GcmFtZSBiYXNlIGNsYXNzIGluc3RlYWQgb2YgTWVkaWFTYW1wbGVWaWRl
b0ZyYW1lLgorICAgICAgICBWaWRlb0ZyYW1lIHN1cHBvcnRzIG11bHRpcGxlIHBvbHltb3JwaGlj
IHN1YmNsYXNzZXMuIE9uZSBzdWNoCisgICAgICAgIGlzIFJlbW90ZVZpZGVvRnJhbWVQcm94eSwg
d2hpY2ggd2lsbCBiZSB1c2VkIGluIHRoZSBmdXR1cmUgdG8KKyAgICAgICAgcmV0dXJuIHJlbW90
ZSBwcm94eSBvYmplY3RzIGluIHRoZXNlIGxvY2F0aW9ucy4KKworICAgICAgICBUaGlzIHBhdGNo
IGlzIG9ubHkgYSByZW5hbWUuIEl0IGNvbmNlcm5zIG9ubHkgdGhlIGluLXByb2Nlc3MKKyAgICAg
ICAgdXNhZ2Ugb2YgdmlkZW8gZnJhbWVzIHZpYSBpbi1wcm9jZXNzIFZpZGVvRnJhbWVDVi4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVNhbXBsZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGU6OnZpZGVvUGl4ZWxGb3JtYXQgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL1ZpZGVvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9GcmFtZTo6VmlkZW9GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lOjpwcmVz
ZW50YXRpb25UaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWU6OnZpZGVv
Um90YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZTo6dmlkZW9NaXJy
b3JlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lOjpwbGF0Zm9ybVNhbXBs
ZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vVmlkZW9GcmFtZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9GcmFtZTo6aXNSZW1vdGVQcm94eSBjb25zdCk6CisgICAgICAgIFRoaXMgbGVh
a3MgInJlbW90ZSIgY29uY2VwdCB0byBXZWJDb3JlIGxldmVsLiBIb3BlZnVsbHkKKyAgICAgICAg
aW4gdGhlIGZ1dHVyZSB0aGlzIGNhbiBiZSBzb2x2ZWQgaW4gYW5vdGhlciB3YXkuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb0ZyYW1lOjppc0NWIGNvbnN0KToKKyAgICAgICAgKGlzVHlwZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVWaWRlb0ZyYW1l
QVZGLm1tOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6dmlk
ZW9GcmFtZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdM
Q29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OnBpeGVsQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvRnJhbWVDVjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvRnJhbWVDVjo6ZGVjb2RlKToKKyAgICAgICAgKGlzVHlwZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvRnJhbWVDVjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWVDVjo6
VmlkZW9GcmFtZUNWKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWVDVjo6cHJlc2VudGF0
aW9uU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OnZpZGVvUGl4
ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZUNWOjpvcmllbnRh
dGlvbiBjb25zdCk6CisKIDIwMjItMDItMTYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtDU1MgQ29udGFpbmVyIFF1ZXJpZXNdIFNlcmlhbGl6ZSBjb250YWlu
ZXIgc2hvcnRoYW5kIGluIFN0eWxlUHJvcGVydGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1MDE4MzUzYWMyOTE2
NjZhMDJmYmU3YmE0Y2Y3NTVkYjI4NjMxMTBmLi4wY2EwMWMxNDQzNTU3YmNiMDMyYWUwNDU4MjJl
YzhkMDdjMzE1Mjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTAyLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFQbGF5ZXI6
OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHNob3VsZCByZXR1cm4gVmlkZW9GcmFtZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzAxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGFkZGVkIFZp
ZGVvRnJhbWVDViBpbnN0ZWFkIG9mIHJlbW92ZWQgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLgorCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZy
b21NZWRpYSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6aW52YWxp
ZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9B
cmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZlB0cjxUPj46
OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVmUHRyPFQ+Pjo6ZGVjb2Rl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVv
RnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9G
cmFtZVByb3h5OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHkpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oOgorICAgICAgICAoaXNUeXBlKToKKwog
MjAyMi0wMi0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbbWFjT1NdIEFkZCBhbiAiTWFya3VwIEltYWdlIiBpdGVtIHRvIHRoZSBzaGFyaW5nIHNl
cnZpY2VzIHBpY2tlciBjb250ZXh0IG1lbnUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGFjNzQ2YTll
NWVmNWI0YTRkMGRmY2ZhNGRjMWE0NWI5MWRjNTQyZWEuLmUxZDkwOGMyMzI5ZTU3YzdjMmE2MWJl
MzhlYWUzNGQ2MGM2OTMzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTUyNiw3ICsxNTI2LDYg
QEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyRW51bXMuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVySWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRl
LmgKLSAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVVzYWdlSW5mby5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAwMjgxNGQwMjIyYjI2ZTI4
OTliOGRhY2FlZDFhNDJlNTZiNTc0MTk0Li41YjRiNTY1YzM5YWJiZmRlMmQ0MTZmMTNkZTJmYjU0
MzcyOWY5MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTMwNCw3ICszMDQsNiBAQCBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2
YXRlQVZGLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkYuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
YmFja1RhcmdldENvY29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAotcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhU2FtcGxlVmlkZW9GcmFtZUFWRi5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwCkBAIC00MTUsNiAr
NDE0LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KIHBsYXRmb3JtL2dy
YXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2
L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGlj
c0NvbnRleHRHTENWQ29jb2EuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1Yu
bW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNvbG9yTWF0cml4Q29yZUltYWdlQXBw
bGllci5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZFQ29tcG9uZW50VHJhbnNmZXJD
b3JlSW1hZ2VBcHBsaWVyLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRmlsdGVySW1h
Z2VDb3JlSW1hZ2UubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBmYjlmYjdjYzIyMTg5ZjAzNDMwMjBjZjZjMGZhM2Q2NjVkYjll
YjM4Li5lNTliYTdmNzYxZDBiNTQwNGI3YzAwYTJjYjRjZDMwYmJiZDBmNTFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDA5
LDcgKzI0MDksNiBAQAogCQk3QUY5QjIwRjE4Q0ZCNUY0MDBDNjRCRUYgLyogSlNWVFRSZWdpb25M
aXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUY5
QjIwQjE4Q0ZCNUYzMDBDNjRCRUYgLyogSlNWVFRSZWdpb25MaXN0LmggKi87IH07CiAJCTdCMTAz
MzlFMjU0OTcyMTcwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEwMzM5RDI1NDk3MjAxMDBDOEMx
QUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTdCMTAzMzlGMjU0OTcyMUUwMEM4QzFBQyAvKiBHcmFwaGlj
c0NvbnRleHRHTENWQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENW
Q29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk3QjQ0MTBFMTI3OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjQ0MTBERjI3OTU4
RkM0MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I1QTNEQUYyN0FCRjhDNTAwNkM2Rjk3
IC8qIFZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCNUEzREFEMjdBQkY4QzQwMDZDNkY5NyAvKiBWaWRlb0ZyYW1lLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I2MDk0REQyNzBDNDRC
RDAwNjQ4MzVDIC8qIEFOR0xFVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QkIzNEExNjI1MzQ1Q0IyMDAwMjlEMDggLyogQU5HTEVVdGls
aXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QjZEQzgxOTI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VT
d2FwQ2hhaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCNkRDODE3MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3
YXBDaGFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0yNDIyLDYgKzI0MjEsNyBAQAogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3Jh
cGhpY3NDaGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzFG
Mjc0RkEwMjEwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkREQTMxRDI3NEY5REE1MDAzODY1
OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzRDMjc1QTAxMzEwMDM4NjU5RSAvKiBQcm9j
ZXNzSWRlbnRpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QkUzN0Y4NzI3QkJC
NzA4MDA3QTZDRDMgLyogVmlkZW9GcmFtZUNWLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QkUzN0Y4NjI3QkJCNkZGMDA3QTZDRDMgLyogVmlkZW9GcmFt
ZUNWLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0JFNzQyNzM4MUZBOTA2RkJCNEYwRjJDIC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBDNEMwMkJFRDg5MzZG
ODE4RTJGOTkgLyogSlNTVkdHcmFwaGljc0VsZW1lbnQuaCAqLzsgfTsKIAkJN0JGRjU5RjQyNzU3
NzI2NzAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JGRjU5RUYyNzU3NzFFODAwNzcz
RDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMDI5QzZFMjQ5M0M4RjgwMDI2ODIwNCAv
KiBDb2xvclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzAyOUM2RDI0OTNDOEY4MDAyNjgyMDQgLyogQ29sb3JUeXBlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTUzMCw4ICsxMTUzMCw2
IEBACiAJCTdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGlj
c0NvbnRleHRHTENWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1YuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxNjE5MTAyNzE5ODgwRTAwQzQwRUFDIC8qIFdl
YlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTdCNDQxMERGMjc5NThGQzQwMDBCNEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJh
bWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTYW1wbGVWaWRlb0Zy
YW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdCNDQxMEUyMjc5NThGREUwMDBC
NEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBNZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCNUEzREFCMjdBQkY4QzQwMDZDNkY5NyAvKiBWaWRlb0ZyYW1lLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3QjVBM0RBRDI3QUJGOEM0MDA2QzZGOTcgLyogVmlkZW9GcmFtZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0ZyYW1lLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNkRDODE1MjU3MTJFOTEwMDM4MEM3MCAvKiBHcmFwaGlj
c0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTU1NSw2ICsxMTU1Myw4IEBACiAJCTdCRERB
MzFEMjc0RjlEQTUwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JEREEzNDkyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nl
c3NJZGVudGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRl
bnRpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JEREEzNEIyNzVBMDEzMDAw
Mzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3QkUzN0Y4NTI3QkJCNkZFMDA3QTZDRDMgLyogVmlkZW9GcmFtZUNWLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GcmFtZUNWLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3QkUzN0Y4NjI3QkJCNkZGMDA3QTZDRDMgLyogVmlkZW9G
cmFtZUNWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnJhbWVDVi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkZGNTlFRjI3NTc3MUU4MDA3NzNEMzkg
LyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmg7IGZpbGVFbmNvZGluZyA9
IDQ7IHBhdGggPSBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0JGRjU5RjEyNzU3NzFFODAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1
cmF0aW9uTW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
aXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QzAxMUYzRDI0RkFEMzYwMDA1QkVGMTAgLyogU2V0dGluZ3MuY3BwLmVyYiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
ZXR0aW5ncy5jcHAuZXJiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg3ODEsNyAr
MTg3ODEsNiBAQAogCQkJCTA3MUU0OTZEMUFENUFBMEQwMDhBNTBCNCAvKiBNZWRpYVBsYXliYWNr
VGFyZ2V0Q29jb2EubW0gKi8sCiAJCQkJMDc2RjBEMDkxMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgKi8sCiAJCQkJMDc2RjBEMEExMkI4MTkyNzAw
QzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oICovLAotCQkJCTdCNDQx
MEUyMjc5NThGREUwMDBCNEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW0gKi8sCiAJ
CQkJQ0RCRUFFQUIxOUQ5MkI2QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpD
LmggKi8sCiAJCQkJQ0RCRUFFQUExOUQ5MkI2QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3Jv
dXBBVkZPYmpDLm1tICovLAogCQkJCTQxMDI0RkM4MjNDRjI1NEYwMEZERjk4RSAvKiBTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuY3BwICovLApAQCAtMjkwNDcsNyArMjkwNDYsNiBAQAogCQkJCUNE
NTIwOUUzMUIwQkQ4MzgwMDc3MTg0RSAvKiBNZWRpYVBsYXllckVudW1zLmggKi8sCiAJCQkJRjQy
OTI2MTcyNTI2NEQ0NDAwMDA3ODk4IC8qIE1lZGlhUGxheWVySWRlbnRpZmllci5oICovLAogCQkJ
CTA3OUY1RTRCMEYzQkVCRUEwMDVFMDc4MiAvKiBNZWRpYVBsYXllclByaXZhdGUuaCAqLywKLQkJ
CQk3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggKi8s
CiAJCQkJQ0Q2NDFFQjExODE4RjVFRDAwRUU0QzQxIC8qIE1lZGlhU291cmNlUHJpdmF0ZS5oICov
LAogCQkJCUNEREMxRTc5MThBOTUyRjMwMDI3QTlENCAvKiBNZWRpYVNvdXJjZVByaXZhdGVDbGll
bnQuaCAqLywKIAkJCQkwNzYxMURCODI0M0ZCNzVDMDBEODA3MDQgLyogTWVkaWFVc2FnZUluZm8u
aCAqLywKQEAgLTMwNDE0LDYgKzMwNDEyLDggQEAKIAkJCQkwNzQ2RDMwQTIxNDZFQTM3MDAzRERG
ODQgLyogSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbSAqLywKIAkJCQlDRDdEMzM0MTFDN0ExMjNG
MDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi8sCiAJCQkJQ0Q3RDMzNDIx
QzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCAqLywKKwkJCQk3QkUz
N0Y4NjI3QkJCNkZGMDA3QTZDRDMgLyogVmlkZW9GcmFtZUNWLmggKi8sCisJCQkJN0JFMzdGODUy
N0JCQjZGRTAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0g
Y3Y7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzYyNjEsNyArMzYyNjEsNiBAQAog
CQkJCUNFRUZDRDdBMTlEQjMxRjcwMDM4NzZENyAvKiBNZWRpYVJlc291cmNlTG9hZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQkY5REIzQzFEMzk3M0FEMDAyNkFFQjcgLyogTWVkaWFTYW1wbGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFCMTI0RDhEMUQzODBCNzAwMEVDREZCMCAvKiBNZWRpYVNh
bXBsZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAotCQkJCTdCNDQxMEUxMjc5NThGQzUwMDBCNEY4
QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQkVBRUFE
MTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTE3RDI3NUUxRUFDNTc5ODAwQkYwMUU3IC8qIE1lZGlhU2VsZWN0aW9uT3B0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzdCQTU3NTI2MEZBNUZFMDA3MkYxOUYgLyogTWVk
aWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTM3ODY3LDYgKzM3ODY2LDcgQEAKIAkJCQlC
Q0EyNTcxNTEyOTNDMDEwMDA3QTI2M0QgLyogVmVydGljYWxQb3NpdGlvbkNhY2hlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRDNFRUYzQjI1Nzk5RkExMDA2NTYzQkIgLyogVmlkZW9Db25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QjVBM0RBRjI3QUJGOEM1MDA2QzZGOTcgLyogVmlk
ZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0JFMzdGODcyN0JCQjcwODAwN0E2Q0QzIC8q
IFZpZGVvRnJhbWVDVi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFERUVGQjYyNzE5QkExQTAwQ0I4
RDc0IC8qIFZpZGVvRnJhbWVNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFERUVGQjAy
NzE5QjI5MDAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFu
Z2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9NZWRpYVNhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1w
bGUuaAppbmRleCBiMDY1MDRmNTdlZTkzNmI4ZTE5ODg3MWYzNTcyNzY1MzUzMDRhZmQzLi5mMjEw
MDQzNWM0MjFkZDM1NDgxM2FhYTkwMWVmMDlhYmRkOTM2MGYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lZGlhU2FtcGxlLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiRmxvYXRTaXplLmgiCi0jaW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJheXMuaD4KICNpbmNsdWRlIDx3dGYvRW51
bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KQEAgLTUwLDcgKzQ5LDcgQEAg
c3RydWN0IFBsYXRmb3JtU2FtcGxlIHsKICAgICAgICAgQ01TYW1wbGVCdWZmZXJUeXBlLAogICAg
ICAgICBHU3RyZWFtZXJTYW1wbGVUeXBlLAogICAgICAgICBCeXRlUmFuZ2VTYW1wbGVUeXBlLAot
ICAgICAgICBSZW1vdGVWaWRlb0ZyYW1lUHJveHlUeXBlLCAvLyBGSVhNRTogVG8gYmUgcmVtb3Zl
ZCB3aGVuIFZpZGVvRnJhbWUgaXMgbm90IE1lZGlhU2FtcGxlLgorICAgICAgICBWaWRlb0ZyYW1l
VHlwZSwgLy8gRklYTUU6IFRvIGJlIHJlbW92ZWQgd2hlbiBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRp
YVNhbXBsZS4KICAgICB9IHR5cGU7CiAgICAgdW5pb24gewogICAgICAgICBjb25zdCBNb2NrU2Ft
cGxlQm94KiBtb2NrU2FtcGxlQm94OwpAQCAtMTA4LDkgKzEwNyw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIFZpZGVvUm90YXRpb24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0IHsgcmV0dXJuIFZpZGVv
Um90YXRpb246Ok5vbmU7IH0KICAgICB2aXJ0dWFsIGJvb2wgdmlkZW9NaXJyb3JlZCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0
KCkgY29uc3QgeyByZXR1cm4gMDsgfQotI2lmIGRlZmluZWQoRU5BQkxFX1ZJREVPKSAmJiBFTkFC
TEVfVklERU8KLSAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1l
PiB2aWRlb0ZyYW1lKCkgY29uc3QgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9OwotI2VuZGlmCiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9WaWRlb0ZyYW1lLmNwcAppbmRleCBmMDc2OWJhNWU1NGE4ODBiZTYzOTA5YTljZGEwMzI4
N2EzN2QzY2Y0Li5jMmY0NTllNGM5MmZiOWU3OTU5YmE1MTM1MDhlYzY0YjRlZTYxOTlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmNwcApAQCAtMjYsMTQgKzI2LDM5IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVmlkZW9GcmFtZS5oIgogCi0jaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotVmlkZW9GcmFtZTo6VmlkZW9GcmFtZSgpID0gZGVmYXVsdDsKK1ZpZGVvRnJhbWU6OlZpZGVv
RnJhbWUoTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWUsIGJvb2wgaXNNaXJyb3JlZCwgVmlkZW9S
b3RhdGlvbiByb3RhdGlvbikKKyAgICA6IG1fcHJlc2VudGF0aW9uVGltZShwcmVzZW50YXRpb25U
aW1lKQorICAgICwgbV9pc01pcnJvcmVkKGlzTWlycm9yZWQpCisgICAgLCBtX3JvdGF0aW9uKHJv
dGF0aW9uKQoreworfQogCiBWaWRlb0ZyYW1lOjp+VmlkZW9GcmFtZSgpID0gZGVmYXVsdDsKIAor
TWVkaWFUaW1lIFZpZGVvRnJhbWU6OnByZXNlbnRhdGlvblRpbWUoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ByZXNlbnRhdGlvblRpbWU7Cit9CisKK01lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
IFZpZGVvRnJhbWU6OnZpZGVvUm90YXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX3JvdGF0
aW9uOworfQorCitib29sIFZpZGVvRnJhbWU6OnZpZGVvTWlycm9yZWQoKSBjb25zdAoreworICAg
IHJldHVybiBtX2lzTWlycm9yZWQ7Cit9CisKK1dlYkNvcmU6OlBsYXRmb3JtU2FtcGxlIFZpZGVv
RnJhbWU6OnBsYXRmb3JtU2FtcGxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyBXZWJDb3JlOjpQ
bGF0Zm9ybVNhbXBsZTo6VmlkZW9GcmFtZVR5cGUsIHsgfSB9OworfQorCiBNZWRpYVRpbWUgVmlk
ZW9GcmFtZTo6ZGVjb2RlVGltZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmgKaW5kZXggYjYzMWZkMTNlMjJlMzEyMjY2
NTAwMTRiYWY3OGRlYTkwY2FhNmZiMi4uMDVkYzQyMjNmNjIyN2MwYTkxOTUwYTQ1MmNkYWI2NzRi
Yzc0ZWIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaApAQCAtMjUsNyArMjUs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5B
QkxFKFZJREVPKQogCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKIApAQCAtMzgsOCArMzgsMjMg
QEAgY2xhc3MgVmlkZW9GcmFtZSA6IHB1YmxpYyBNZWRpYVNhbXBsZSB7CiBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgflZpZGVvRnJhbWUoKTsKIAorICAgIC8vIFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlIG92ZXJyaWRlcy4KKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVRpbWUgcHJlc2VudGF0aW9u
VGltZSgpIGNvbnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvUm90YXRpb24gdmlk
ZW9Sb3RhdGlvbigpIGNvbnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdmlkZW9N
aXJyb3JlZCgpIGNvbnN0IGZpbmFsOworICAgIC8vIEZJWE1FOiBXaGVuIFZpZGVvRnJhbWUgaXMg
bm90IE1lZGlhU2FtcGxlLCB0aGVzZSB3aWxsIG5vdCBiZSBuZWVkZWQuCisgICAgV0VCQ09SRV9F
WFBPUlQgV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1wbGUoKSBjb25zdCBmaW5h
bDsKKworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAgdmlydHVhbCBib29sIGlzUmVtb3RlUHJv
eHkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0NWKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9F
WFBPUlQgVmlkZW9GcmFtZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvRnJhbWUoTWVkaWFU
aW1lIHByZXNlbnRhdGlvblRpbWUsIGJvb2wgaXNNaXJyb3JlZCwgVmlkZW9Sb3RhdGlvbik7Cisg
ICAgY29uc3QgTWVkaWFUaW1lIG1fcHJlc2VudGF0aW9uVGltZTsKKyAgICBjb25zdCBib29sIG1f
aXNNaXJyb3JlZDsKKyAgICBjb25zdCBWaWRlb1JvdGF0aW9uIG1fcm90YXRpb247CiAKIHByaXZh
dGU6CiAgICAgLy8gRklYTUU6IFRoZXNlIGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBmb3Ig
dGhlc2Ugb2JqZWN0cy4KQEAgLTYwLDQgKzc1LDcgQEAgcHJpdmF0ZToKIAogfQogCitTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlZpZGVvRnJhbWUpCisgICAgc3RhdGljIGJv
b2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkgeyByZXR1
cm4gbWVkaWFTYW1wbGUucGxhdGZvcm1TYW1wbGUoKS50eXBlID09IFdlYkNvcmU6OlBsYXRmb3Jt
U2FtcGxlOjpWaWRlb0ZyYW1lVHlwZTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKaW5kZXggMGFiYzMyMjM4ZDY0MWFjYTQ1ZjczOTc3NTdlNGU1ZTE1MWJhN2RiNS4uZWFl
NGJmMGJiY2M0MzIyYjYxNzAwYzg1ZDg3ZjE3NjhjN2ZkYjk2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTA4OCw3ICsxMDg4
LDcgQEAgYm9vbCBNZWRpYVBsYXllcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJl
KEdyYXBoaWNzQ29udGV4dEdMKiBjb250ZXh0LAogCiAjZW5kaWYKIAotc3RkOjpvcHRpb25hbDxN
ZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhUGxheWVyOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWUoKQorUmVmUHRyPFZpZGVvRnJhbWU+IE1lZGlhUGxheWVyOjp2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKQogewogICAgIHJldHVybiBtX3ByaXZhdGUtPnZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmgKaW5kZXggNWYwZGFhODY2ZjJjODIzM2FjOGMxOTRhNjEzM2Q5NzNmMzQ0NmZlOC4uYjAzNTkw
YmJkYzhiMWJiNjY3MTNkODBkMTcwZThkMDMwOTZjYWJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zNCwxMSArMzQsMTEgQEAKICNp
bmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJFbnVtcy5oIgogI2lu
Y2x1ZGUgIk1lZGlhUGxheWVySWRlbnRpZmllci5oIgotI2luY2x1ZGUgIk1lZGlhU2FtcGxlVmlk
ZW9GcmFtZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVRleHRUcmFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogI2luY2x1ZGUg
IlRpbWVyLmgiCisjaW5jbHVkZSAiVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIlZpZGVvRnJhbWVN
ZXRhZGF0YS5oIgogI2luY2x1ZGUgIlZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcy5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ZvcndhcmQuaD4KQEAgLTQ3MCw3ICs0NzAsNyBAQCBwdWJs
aWM6CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9Q
bGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0IHRleHR1
cmUsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3Jt
YXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhh
LCBib29sIGZsaXBZKTsKICNlbmRpZgotICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRl
b0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKKyAgICBSZWZQdHI8VmlkZW9GcmFt
ZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBu
YXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNlIGNv
bG9yU3BhY2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCBmOWZmNGNiZjI4NjlkOTMzMTIwZWRlMDBkMDE1
ZTVhZGRmNDc4MjkxLi44MDliZTE2NTMzMjI3MjA3NjRmYTA4MTZjODM4OGRjMzJiNTgxZDZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaApAQCAtMjksOSArMjksOSBAQAogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIK
ICNpbmNsdWRlICJNZWRpYVBsYXllcklkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJNZWRpYVNhbXBs
ZVZpZGVvRnJhbWUuaCIKICNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtVGltZVJhbmdlcy5oIgorI2luY2x1ZGUgIlZpZGVvRnJhbWUuaCIKICNpbmNsdWRlIDxvcHRp
b25hbD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KIApAQCAtMTgxLDcgKzE4
MSw3IEBAIHB1YmxpYzoKICNpZiAhVVNFKEFWRk9VTkRBVElPTikKICAgICB2aXJ0dWFsIGJvb2wg
Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiwgUGxh
dGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NH
TGVudW0sIGJvb2wsIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKLSAgICB2aXJ0dWFs
IHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKSB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxWaWRl
b0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSB7IHJldHVybiBudWxscHRyOyB9CiAg
ICAgdmlydHVhbCBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUo
KSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBEZXN0aW5hdGlvbkNvbG9yU3BhY2Ug
Y29sb3JTcGFjZSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzE0NzRjZmIxM2ZmYjExOTZkM2MyNDA1MGExNjI2YjczYjQ4M2VmNi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaAorKysgL2Rldi9udWxsCkBA
IC0xLDEwMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoVklERU8pCi0jaW5jbHVkZSAiSW1hZ2VP
cmllbnRhdGlvbi5oIgotCi0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+Ci0KLXVzaW5nIENWUGl4ZWxCdWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1ZmZlcio7
Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBNZWRpYVNhbXBsZVZpZGVv
RnJhbWUgewotcHVibGljOgotICAgIE1lZGlhU2FtcGxlVmlkZW9GcmFtZSgpID0gZGVsZXRlOwot
I2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgV0VCQ09SRV9FWFBPUlQgTWVkaWFTYW1wbGVWaWRl
b0ZyYW1lKFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmLCBJbWFnZU9yaWVudGF0aW9uKTsK
LSNlbmRpZgotCi0gICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fb3JpZW50YXRpb247IH0KLQotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgQ1ZQaXhl
bEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxCdWZmZXIuZ2V0
KCk7IH0KLSNlbmRpZgotCi0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1lZGlhU2FtcGxlVmlk
ZW9GcmFtZSYgb3RoZXIpIGNvbnN0OwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gZGVjb2RlKERl
Y29kZXImKTsKLQotcHJpdmF0ZToKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyOwotI2VuZGlmCi0gICAgSW1hZ2VPcmll
bnRhdGlvbiBtX29yaWVudGF0aW9uOwotfTsKLQotaW5saW5lIGJvb2wgTWVkaWFTYW1wbGVWaWRl
b0ZyYW1lOjpvcGVyYXRvcj09KGNvbnN0IE1lZGlhU2FtcGxlVmlkZW9GcmFtZSYgb3RoZXIpIGNv
bnN0Ci17Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBpZiAobV9waXhlbEJ1ZmZlciAhPSBv
dGhlci5tX3BpeGVsQnVmZmVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLSAgICBy
ZXR1cm4gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24ob3RoZXIubV9vcmllbnRhdGlvbikg
PT0gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24obV9vcmllbnRhdGlvbik7Ci19Ci0KLXRl
bXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lOjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAg
IGVuY29kZXIgPDwgbV9waXhlbEJ1ZmZlcjsKLSAgICBlbmNvZGVyIDw8IEltYWdlT3JpZW50YXRp
b246Ok9yaWVudGF0aW9uKG1fb3JpZW50YXRpb24pOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0o
ZW5jb2Rlcik7Ci0jZW5kaWYKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RkOjpv
cHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhU2FtcGxlVmlkZW9GcmFtZTo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBzdGQ6
Om9wdGlvbmFsPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPj4gcGl4ZWxCdWZmZXI7Ci0gICAg
ZGVjb2RlciA+PiBwaXhlbEJ1ZmZlcjsKLSAgICBpZiAoIXBpeGVsQnVmZmVyKQotICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHN0ZDo6b3B0aW9uYWw8SW1hZ2VPcmllbnRhdGlvbjo6
T3JpZW50YXRpb24+IG9yaWVudGF0aW9uOwotICAgIGRlY29kZXIgPj4gb3JpZW50YXRpb247Ci0g
ICAgaWYgKCFvcmllbnRhdGlvbikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBy
ZXR1cm4gTWVkaWFTYW1wbGVWaWRlb0ZyYW1lIHsgV1RGTW92ZSgqcGl4ZWxCdWZmZXIpLCAqb3Jp
ZW50YXRpb24gfTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGRlY29kZXIpOwotICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7Ci0jZW5kaWYKLX0KLQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVWaWRl
b0ZyYW1lQVZGLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhU2FtcGxlVmlkZW9GcmFtZUFWRi5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjQ5NTk4MTJmNjZmY2E3MDU0MTdiMDJhZjU1MWZmYzEzMWE4NDM2Mi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tCisr
KyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShWSURF
TykKLSNpbmNsdWRlICJNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1NZWRpYVNhbXBsZVZpZGVvRnJhbWU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZShSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiBwaXhlbEJ1ZmZlciwgSW1hZ2VPcmllbnRhdGlvbiBv
cmllbnRhdGlvbikKLSAgICA6IG1fcGl4ZWxCdWZmZXIoV1RGTW92ZShwaXhlbEJ1ZmZlcikpCi0g
ICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQotewotfQotCi19Ci0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oCmluZGV4IDM4Mzc3MmM1MDQ0OTI5YjllNTE1Nzg0MTZkZWY2NGY4Nzg4
MDIzNjQuLjAyZjA5M2E4ZTA5NDYwZmZlZmM4ZjkzYWNhMjNkMjJjOTYxYmM5Y2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKQEAgLTI2Miw3ICsyNjIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBk
YXRlTGFzdFBpeGVsQnVmZmVyKCk7CiAgICAgYm9vbCB2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZy
YW1lKCk7CiAgICAgdm9pZCBwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmKTsKLSAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFt
ZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CisgICAgUmVmUHRyPFZpZGVvRnJh
bWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIFJlZlB0cjxOYXRpdmVJ
bWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIERlc3RpbmF0aW9u
Q29sb3JTcGFjZSBjb2xvclNwYWNlKCkgZmluYWw7CiAgICAgdm9pZCB3YWl0Rm9yVmlkZW9PdXRw
dXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCBhZGIz
YmQxYjcwZjQyOTU5ODNhZDVhMjJlNGJlYzJmNjUwZDA3NzdhLi5iMTg1ZTk1ZTdkNmQxYTAzNzg2
Yzg5YzhmZGU5MzVkYWQ5ZTcyZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTY4LDYg
KzY4LDcgQEAKICNpbXBvcnQgIlNvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCIKICNpbXBvcnQgIlRl
eHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCiAjaW1wb3J0ICJVVElVdGlsaXRpZXMuaCIKKyNpbXBv
cnQgIlZpZGVvRnJhbWVDVi5oIgogI2ltcG9ydCAiVmlkZW9MYXllck1hbmFnZXJPYmpDLmgiCiAj
aW1wb3J0ICJWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQgIldlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlci5oIgpAQCAtMjcyMiwxMiArMjcyMywxMiBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29u
dGV4dCYgYwogCiB9CiAKLXN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUo
KQorUmVmUHRyPFZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgdXBkYXRlTGFzdFBpeGVsQnVmZmVy
KCk7CiAgICAgaWYgKCFtX2xhc3RQaXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLSAgICByZXR1cm4gTWVkaWFTYW1wbGVWaWRlb0ZyYW1lIHsgUmV0YWluUHRyIHsgbV9s
YXN0UGl4ZWxCdWZmZXIgfSwgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSB9OworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gVmlkZW9GcmFtZUNWOjpjcmVhdGUoY3VycmVudE1lZGlh
VGltZSgpLCBmYWxzZSwgVmlkZW9GcmFtZUNWOjpWaWRlb1JvdGF0aW9uOjpOb25lLCBSZXRhaW5Q
dHIgeyBtX2xhc3RQaXhlbEJ1ZmZlciB9KTsKIH0KIAogUmVmUHRyPE5hdGl2ZUltYWdlPiBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1l
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggYmNhZDEyNTQzNjNhMTg3YzY4YTMzNjhm
YTdhN2ExNDg1MTViODJlNS4uNWUxMzBhZjFhYjE0NTM3N2M0YWI0MmM0YTRiZDY2MmM1Zjc2OWNj
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTIyMiw3ICsyMjIsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgdXBkYXRlTGFzdEltYWdlKCk7CiAgICAgdm9pZCBwYWludChHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVu
dEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJy
aWRlOwotICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKKyAgICBSZWZQdHI8VmlkZW9GcmFtZT4gdmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9y
U3BhY2UoKSBmaW5hbDsKIAogICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygp
IGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IGU5NWY4YzNj
YWNmMGFkZTE4MTFmMTFiYWU2ODNiZTRiNWZiMTU1MzMuLjc1NGIyMDdmNjc1MTJhNWFhMDkyNDA3
MmFkMzA5MWE2NTgwNTc3MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTM5LDYg
KzM5LDcgQEAKICNpbXBvcnQgIk1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oIgogI2ltcG9ydCAi
UGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgogI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24uaCIKKyNpbXBvcnQgIlZpZGVvRnJhbWVDVi5oIgogI2ltcG9ydCAiVmlkZW9MYXllck1hbmFn
ZXJPYmpDLmgiCiAjaW1wb3J0ICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24uaCIKICNpbXBv
cnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0Lmg+CkBAIC03MjUsNyArNzI2LDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KEdyYXBoaWNzQ28KICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqaW1hZ2UsIGltYWdl
UmVjdC5zaXplKCksIG91dHB1dFJlY3QsIGltYWdlUmVjdCk7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8
TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCitSZWZQdHI8VmlkZW9GcmFtZT4gTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUo
KQogewogICAgIC8vIFdlIGhhdmUgYmVlbiBhc2tlZCB0byBwYWludCBpbnRvIGEgV2ViR0wgY2Fu
dmFzLCBzbyB0YWtlIHRoYXQgYXMgYSBzaWduYWwgdG8gY3JlYXRlCiAgICAgLy8gYSBkZWNvbXBy
ZXNzaW9uIHNlc3Npb24sIGV2ZW4gaWYgdGhhdCBtZWFucyB0aGUgbmF0aXZlIHZpZGVvIGNhbid0
IGFsc28gYmUgZGlzcGxheWVkCkBAIC03MzgsOCArNzM5LDggQEAgc3RkOjpvcHRpb25hbDxNZWRp
YVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
dmlkZW8KICAgICBpZiAoIW1faXNHYXRoZXJpbmdWaWRlb0ZyYW1lTWV0YWRhdGEpCiAgICAgICAg
IHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpOwogICAgIGlmICghbV9sYXN0UGl4ZWxCdWZmZXIpCi0g
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIE1lZGlhU2FtcGxlVmlkZW9G
cmFtZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3JpZW50YXRpb246
Ok5vbmUgfTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFZpZGVvRnJhbWVD
Vjo6Y3JlYXRlKGN1cnJlbnRNZWRpYVRpbWUoKSwgZmFsc2UsIFZpZGVvRnJhbWVDVjo6VmlkZW9S
b3RhdGlvbjo6Tm9uZSwgUmV0YWluUHRyIHsgbV9sYXN0UGl4ZWxCdWZmZXIgfSk7CiB9CiAKIERl
c3RpbmF0aW9uQ29sb3JTcGFjZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmNvbG9yU3BhY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCA1MTZkY2RhOTY4Njdm
NzU5ZmFjNWUyMDQwOTI3NWNjMDg5YzBiMzE4Li5mZjUxZmNhNzc2Zjg5N2Y1NjU0NDUzODQ3YjBh
MWVkODQ4Y2MzNGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtMTQzLDcgKzE0Myw3
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQo
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7Ci0gICAgc3RkOjpv
cHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgp
IG92ZXJyaWRlOworICAgIFJlZlB0cjxWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWUoKSBvdmVycmlkZTsKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIG92
ZXJyaWRlOwogICAgIGJvb2wgbWV0YURhdGFBdmFpbGFibGUoKSBjb25zdCB7IHJldHVybiBtX21l
ZGlhU3RyZWFtUHJpdmF0ZSAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OlJlYWR5U3Rh
dGU6OkhhdmVNZXRhZGF0YTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggNDJm
ZDE3NDg3ZWE2Y2QxNzEwNTA1MDVmZjVmM2ZmNWVkZmJlN2UxNS4uMjVmYWQ5MDkxMGFiNWU0YjNl
ZWYwOWRiNDdlNjlmNmUxYjgwMmUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAt
MzAsOSArMzAsMTAgQEAKIAogI2ltcG9ydCAiQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5o
IgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKLSNpbXBvcnQgIkxvZ2dpbmcuaCIKICNp
bXBvcnQgIkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCisjaW1wb3J0ICJMb2dnaW5n
LmgiCiAjaW1wb3J0ICJNZWRpYVBsYXllci5oIgorI2ltcG9ydCAiTWVkaWFTYW1wbGVBVkZPYmpD
LmgiCiAjaW1wb3J0ICJNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaCIKICNpbXBvcnQgIk1lZGlh
U3RyZWFtUHJpdmF0ZS5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgpAQCAt
MTAyMiwxNSArMTAyMywxOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDbwogICAgIGNvbnRleHQu
ZHJhd05hdGl2ZUltYWdlKCppbWFnZSwgaW1hZ2VSZWN0LnNpemUoKSwgdHJhbnNmb3JtZWREZXN0
UmVjdCwgaW1hZ2VSZWN0KTsKIH0KIAotc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJh
bWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lKCkKK1JlZlB0cjxWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgaWYgKG1fZGlz
cGxheU1vZGUgPT0gTm9uZSB8fCAhbWV0YURhdGFBdmFpbGFibGUoKSkKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKG1fZGlzcGxh
eU1vZGUgPT0gUGFpbnRJdEJsYWNrKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIW1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxl
KQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBtX2ltYWdlUGFpbnRl
ci5tZWRpYVNhbXBsZS0+dmlkZW9GcmFtZSgpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICBpZiAoaXM8VmlkZW9GcmFtZT4oKm1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlKSkKKyAgICAg
ICAgcmV0dXJuICZkb3duY2FzdDxWaWRlb0ZyYW1lPigqbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1w
bGUpOworICAgIEFTU0VSVChpczxNZWRpYVNhbXBsZUFWRk9iakM+KCptX2ltYWdlUGFpbnRlci5t
ZWRpYVNhbXBsZSkpOworICAgIHJldHVybiBkb3duY2FzdDxNZWRpYVNhbXBsZUFWRk9iakM+KCpt
X2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZSkudmlkZW9GcmFtZSgpOwogfQogCiBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjb2xvclNw
YWNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKaW5kZXgg
NWI0ZjdmMDBkYjMzYTViY2RmNjU2YzYwMjJmMTQ4MzRmNDFjNTkwNi4uNTgxNGNmNjM1ZmVkOWVl
MDk1MWIxMjVlNWNjZjgzNDQ0ODQ5NGQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFTYW1wbGVBVkZPYmpDLmgKQEAgLTM1LDYgKzM1LDcgQEAgdXNpbmcgQ1ZQaXhlbEJ1ZmZlclJl
ZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGl4
ZWxCdWZmZXI7CitjbGFzcyBWaWRlb0ZyYW1lQ1Y7CiAKIGNsYXNzIE1lZGlhU2FtcGxlQVZGT2Jq
QyA6IHB1YmxpYyBNZWRpYVNhbXBsZSB7CiBwdWJsaWM6CkBAIC03MSw3ICs3Miw2IEBAIHB1Ymxp
YzoKICAgICBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3JvdGF0aW9uOyB9CiAgICAgYm9vbCB2aWRlb01pcnJvcmVkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9taXJyb3JlZDsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHVpbnQzMl90IHZp
ZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9w
dGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZSgpIGNvbnN0IGZpbmFsOwog
ICAgIFdFQkNPUkVfRVhQT1JUIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIoKSBjb25zdCBm
aW5hbDsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIoKSBjb25zdCB7IHJldHVy
biBtX3NhbXBsZS5nZXQoKTsgfQogCkBAIC04MCw2ICs4MCw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0Qnl0ZVJhbmdlT2Zmc2V0KHNpemVfdCk7CiAKKyAgICAvLyBGSVhNRTogVG8gYmUgcmVt
b3ZlZCBvbmNlIFZpZGVvRnJhbWUgaXMgbm90IGEgTWVkaWFTYW1wbGUuCisgICAgV0VCQ09SRV9F
WFBPUlQgUmVmUHRyPFZpZGVvRnJhbWVDVj4gdmlkZW9GcmFtZSgpIGNvbnN0OwogcHJvdGVjdGVk
OgogICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhU2FtcGxlQVZGT2JqQyhSZXRhaW5QdHI8Q01TYW1w
bGVCdWZmZXJSZWY+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhU2FtcGxlQVZGT2JqQyhD
TVNhbXBsZUJ1ZmZlclJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFW
Rk9iakMubW0KaW5kZXggNTAwNDM0MGZlZjQ5ZTQyZWIyZmRmODM0ZmZjMjc5MTUzZjU4MTRlNy4u
NjEwMzA1ODY0NWFkNjdmZWI2OGRmNzYzNjQ0MTY1NjM0NWNiNDk3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1w
bGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAj
aW1wb3J0ICJQaXhlbEJ1ZmZlci5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5o
IgorI2ltcG9ydCAiVmlkZW9GcmFtZUNWLmgiCiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU0NJ
bmxpbmVzLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5SW5saW5lcy5oPgog
I2ltcG9ydCA8d3RmL1ByaW50U3RyZWFtLmg+CkBAIC0xNjUsMjUgKzE2NiwxNCBAQCB1aW50MzJf
dCBNZWRpYVNhbXBsZUFWRk9iakM6OnZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdAogICAgIHJldHVy
biBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKTsKIH0KIAotc3Rk
OjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhU2FtcGxlQVZGT2JqQzo6dmlk
ZW9GcmFtZSgpIGNvbnN0CitSZWZQdHI8VmlkZW9GcmFtZUNWPiBNZWRpYVNhbXBsZUFWRk9iakM6
OnZpZGVvRnJhbWUoKSBjb25zdAogeworICAgIGlmICghbV9zYW1wbGUpCisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVm
ZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0KCkp
KTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owot
ICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBbJl0gewotICAgICAgICAvLyBTYW1w
bGUgdHJhbnNmb3JtIGZpcnN0IGZsaXBzIHgtY29vcmRpbmF0ZXMsIHRoZW4gcm90YXRlcy4KLSAg
ICAgICAgc3dpdGNoIChtX3JvdGF0aW9uKSB7Ci0gICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZp
ZGVvUm90YXRpb246Ok5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gbV9taXJyb3JlZCA/IEltYWdl
T3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9w
TGVmdDsKLSAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ6Ci0g
ICAgICAgICAgICByZXR1cm4gbV9taXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblJp
Z2h0Qm90dG9tIDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRUb3A7Ci0gICAgICAgIGNh
c2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd246Ci0gICAgICAgICAgICBy
ZXR1cm4gbV9taXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbUxlZnQgOiBJ
bWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21SaWdodDsKLSAgICAgICAgY2FzZSBNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDoKLSAgICAgICAgICAgIHJldHVybiBtX21pcnJvcmVk
ID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luTGVmdFRvcCA6IEltYWdlT3JpZW50YXRpb246Ok9y
aWdpbkxlZnRCb3R0b207Ci0gICAgICAgIH0KLSAgICB9KCk7Ci0gICAgcmV0dXJuIE1lZGlhU2Ft
cGxlVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IHBpeGVsQnVmZmVyIH0sIG9yaWVudGF0aW9uIH07
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBWaWRlb0ZyYW1lQ1Y6OmNyZWF0
ZShwcmVzZW50YXRpb25UaW1lKCksIG1fbWlycm9yZWQsIG1fcm90YXRpb24sIFJldGFpblB0ciB7
IHBpeGVsQnVmZmVyIH0pOwogfQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyQXR0YWNo
bWVudFJhbmRvbUFjY2VzcyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRl
eHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCAzNmU4ZjBmYjAyOTM3N2I0ZWZmZTQwNTM1MjM3
ZTU4MjIyZmJmNzcxLi42NzYyNmJmZGZmOGEwMzRlZDlhMWNhNTRmOTRjYjYxNDhhNDkyZWMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBv
cnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgogI2ltcG9ydCAiUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCisjaW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIKICNpbXBv
cnQgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRleHQuaD4KICNpbXBvcnQgPE1ldGFsL01ldGFs
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL01ldGFsU1BJLmg+CkBAIC03OTAsNiArNzkxLDcg
QEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRp
YVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUcKICAgICBhdXRvIHZpZGVvRnJhbWUgPSBwbGF5ZXIu
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgaWYgKCF2aWRlb0ZyYW1lKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUKGlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUp
KTsKIAogICAgIGF1dG8gY29udGV4dENWID0gYXNDVigpOwogICAgIGlmICghY29udGV4dENWKQpA
QCAtNzk3LDcgKzc5OSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRleHR1
cmVGcm9tTWVkaWEoTWVkaWFQbGF5ZXImIHBsYXllciwgUGxhdGZvcm1HCiAKICAgICBVTlVTRURf
VkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgQVNTRVJUX1VOVVNFRChvdXRwdXRUYXJn
ZXQsIG91dHB1dFRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7Ci0gICAg
cmV0dXJuIGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKCp2aWRlb0ZyYW1lLCBv
dXRwdXRUZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhp
Y3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSk7CisgICAgcmV0dXJuIGNvbnRleHRDVi0+Y29weVZp
ZGVvU2FtcGxlVG9UZXh0dXJlKGRvd25jYXN0PFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpLCBv
dXRwdXRUZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhp
Y3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVi5o
CmluZGV4IGFjMTQ3NWU5ZGEzNmVkMTQxMzUyMmU5NjkxMjJiNjMxZTMxOTNlZmEuLmM2MDJmYmVi
NzI5NjhkYWY2NDIxN2YwMWY5NTBhMjRhN2M1YmY4ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmgKQEAg
LTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci1jbGFzcyBNZWRpYVNhbXBsZVZpZGVvRnJhbWU7CitjbGFzcyBWaWRlb0Zy
YW1lQ1Y7CiAKIC8vIEludGVyZmFjZSB0byBpbnRlcmFjdCB3aXRoIENWIG9iamVjdHMgYW5kIEdy
YXBoaWNzQ29udGV4dEdMLgogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xDViB7CkBAIC00MCw3ICs0
MCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBGbGlwWSA9IEdyYXBoaWNzQ29udGV4dEdMOjpGbGlw
WTsKICAgICAvLyBDb3BpZXMgQ1YgcGl4ZWwgYnVmZmVyIHRvIEdyYXBoaWNzQ29udGV4dEdMIFRF
WFRVUkVfMkQgdGV4dHVyZSBvZiB0aGUgc2FtZSBzaXplIGFzIHRoZSBwaXhlbCBidWZmZXIuCiAg
ICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCi0gICAgdmlydHVhbCBib29sIGNvcHlWaWRl
b1NhbXBsZVRvVGV4dHVyZShjb25zdCBNZWRpYVNhbXBsZVZpZGVvRnJhbWUmLCBQbGF0Zm9ybUdM
T2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsRm9y
bWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZKSA9IDA7CisgICAgdmly
dHVhbCBib29sIGNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShjb25zdCBWaWRlb0ZyYW1lQ1YmLCBQ
bGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGlu
dGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZKSA9IDA7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcAppbmRleCAyYzk4ZjlkOTI5
MjNjMDQ5YTk0YjM0OWI0Zjc3NTI5NDc3MTllMjI4Li5hZjRiYzgxYjJhZjg1YWFjMDNkZGRmMGY3
N2M5OTdmZGU2MzI3ZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJGb3VyQ0MuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRl
eHRHTENvY29hLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlZpZGVvRnJhbWVD
Vi5oIgogI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ29yZVZpZGVvU1BJLmg+CiAjaW5jbHVkZSA8cGFs
L3NwaS9jb2NvYS9JT1N1cmZhY2VTUEkuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KQEAgLTU4NSw3ICs1ODYsNyBAQCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OkdyYXBoaWNz
Q29udGV4dEdMQ1ZDb2NvYShHcmFwaGljc0NvbnRleHRHTENvY29hJiBvd25lcgogICAgIEdMX0Jp
bmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mcmFtZWJ1ZmZlcik7CiB9CiAKLWJvb2wg
R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoY29uc3Qg
TWVkaWFTYW1wbGVWaWRlb0ZyYW1lJiB2aWRlb0ZyYW1lLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1
dFRleHR1cmUsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3Jt
YXQsIEdMZW51bSB0eXBlLCBGbGlwWSB1bnBhY2tGbGlwWSkKK2Jvb2wgR3JhcGhpY3NDb250ZXh0
R0xDVkNvY29hOjpjb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoY29uc3QgVmlkZW9GcmFtZUNWJiB2
aWRlb0ZyYW1lLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdMaW50IGxldmVsLCBH
TGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBGbGlwWSB1
bnBhY2tGbGlwWSkKIHsKICAgICBhdXRvIGltYWdlID0gdmlkZW9GcmFtZS5waXhlbEJ1ZmZlcigp
OwogICAgIC8vIEZJWE1FOiBUaGlzIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzICc0MjB2JyBhbmQg
JzQyMGYnIHBpeGVsIGZvcm1hdHMuIEludmVzdGlnYXRlIHN1cHBvcnRpbmcgbW9yZSBwaXhlbCBm
b3JtYXRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAppbmRleCA5ZTFiNDQ0OWQzYjRiYjlm
NWMwZDdhZThkODVmMzBlZjFkMDRiYThhLi43NjA4OWRjYWI0MjNkOTUwOTEwMDVlNjc4ZjAzYWNk
M2RhNzJiMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaApAQCAtNDMsNyArNDMsNyBA
QCBwdWJsaWM6CiAKICAgICB+R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hKCkgZmluYWw7CiAKLSAg
ICBib29sIGNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShjb25zdCBNZWRpYVNhbXBsZVZpZGVvRnJh
bWUmLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xl
bnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZ
KSBmaW5hbDsKKyAgICBib29sIGNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShjb25zdCBWaWRlb0Zy
YW1lQ1YmLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdD
R0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZs
aXBZKSBmaW5hbDsKIAogICAgIHZvaWQgaW52YWxpZGF0ZUtub3duVGV4dHVyZUNvbnRlbnQoR0NH
THVpbnQgdGV4dHVyZSk7CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzFjODgwMmNjOGM4MzM5
MzQ0ZmIwZDc0ZTFkYjNmZDNiZGRmN2RhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmgKQEAgLTAsMCArMSw4MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZG
T1VOREFUSU9OKQorCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgorI2luY2x1ZGUgIlZp
ZGVvRnJhbWUuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK3VzaW5nIENWUGl4ZWxC
dWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1ZmZlcio7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgVmlkZW9GcmFtZUNWIDogcHVibGljIFZpZGVvRnJhbWUgeworcHVibGljOgorICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8VmlkZW9GcmFtZUNWPiBjcmVhdGUoTWVkaWFUaW1lIHBy
ZXNlbnRhdGlvblRpbWUsIGJvb2wgaXNNaXJyb3JlZCwgVmlkZW9Sb3RhdGlvbiwgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIH5WaWRlb0ZyYW1lQ1Yo
KTsKKworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIoKSBjb25zdCB7IHJldHVybiBt
X3BpeGVsQnVmZmVyLmdldCgpOyB9CisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbigp
IGNvbnN0OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFJlZlB0cjxWaWRlb0ZyYW1lQ1Y+PiBkZWNvZGUoRGVjb2RlciYpOworCisgICAg
Ly8gVmlkZW9GcmFtZSBvdmVycmlkZXMuCisgICAgV2ViQ29yZTo6RmxvYXRTaXplIHByZXNlbnRh
dGlvblNpemUoKSBjb25zdCBmaW5hbDsKKyAgICB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0KCkg
Y29uc3QgZmluYWw7CisgICAgYm9vbCBpc0NWKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQorCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvRnJhbWVDVihNZWRpYVRpbWUg
cHJlc2VudGF0aW9uVGltZSwgYm9vbCBpc01pcnJvcmVkLCBWaWRlb1JvdGF0aW9uLCBSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJik7CisKKyAgICBjb25zdCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1
ZmZlclJlZj4gbV9waXhlbEJ1ZmZlcjsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+
IHZvaWQgVmlkZW9GcmFtZUNWOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IG1fcHJlc2VudGF0aW9uVGltZSA8PCBtX2lzTWlycm9yZWQgPDwgbV9yb3Rh
dGlvbiA8PCBtX3BpeGVsQnVmZmVyOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBz
dGQ6Om9wdGlvbmFsPFJlZlB0cjxWaWRlb0ZyYW1lQ1Y+PiBWaWRlb0ZyYW1lQ1Y6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGF1dG8gcHJlc2VudGF0aW9uVGltZSA9IGRlY29kZXIu
dGVtcGxhdGUgZGVjb2RlPE1lZGlhVGltZT4oKTsKKyAgICBhdXRvIGlzTWlycm9yZWQgPSBkZWNv
ZGVyLnRlbXBsYXRlIGRlY29kZTxib29sPigpOworICAgIGF1dG8gcm90YXRpb24gPSBkZWNvZGVy
LnRlbXBsYXRlIGRlY29kZTxWaWRlb1JvdGF0aW9uPigpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIg
PSBkZWNvZGVyLnRlbXBsYXRlIGRlY29kZTxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+KCk7
CisgICAgaWYgKCFkZWNvZGVyLmlzVmFsaWQoKSB8fCAhKnBpeGVsQnVmZmVyKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJldHVybiBWaWRlb0ZyYW1lQ1Y6OmNyZWF0ZSgqcHJl
c2VudGF0aW9uVGltZSwgKmlzTWlycm9yZWQsICpyb3RhdGlvbiwgV1RGTW92ZSgqcGl4ZWxCdWZm
ZXIpKTsKK30KKworfQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlZp
ZGVvRnJhbWVDVikKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6VmlkZW9G
cmFtZSYgdmlkZW9GcmFtZSkgeyByZXR1cm4gdmlkZW9GcmFtZS5pc0NWKCk7IH0KKyAgICBzdGF0
aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKSB7
IHJldHVybiBpczxXZWJDb3JlOjpWaWRlb0ZyYW1lPihtZWRpYVNhbXBsZSkgJiYgaXM8V2ViQ29y
ZTo6VmlkZW9GcmFtZUNWPihkb3duY2FzdDxXZWJDb3JlOjpWaWRlb0ZyYW1lPihtZWRpYVNhbXBs
ZSkpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE1YTZkMDgyYmJlNDJjMzE3M2FiYzFmYTg4MTJlNDQxY2FjNmY2ZTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1l
Q1YubW0KQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJWaWRlb0ZyYW1lQ1YuaCIKKworI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFW
Rk9VTkRBVElPTikKKyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1JlZjxWaWRlb0ZyYW1lQ1Y+IFZpZGVvRnJhbWVDVjo6Y3JlYXRlKE1lZGlh
VGltZSBwcmVzZW50YXRpb25UaW1lLCBib29sIGlzTWlycm9yZWQsIFZpZGVvUm90YXRpb24gcm90
YXRpb24sIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmIHBpeGVsQnVmZmVyKQoreworICAg
IEFTU0VSVChwaXhlbEJ1ZmZlcik7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9GcmFt
ZUNWKHByZXNlbnRhdGlvblRpbWUsIGlzTWlycm9yZWQsIHJvdGF0aW9uLCBXVEZNb3ZlKHBpeGVs
QnVmZmVyKSkpOworfQorCitWaWRlb0ZyYW1lQ1Y6OlZpZGVvRnJhbWVDVihNZWRpYVRpbWUgcHJl
c2VudGF0aW9uVGltZSwgYm9vbCBpc01pcnJvcmVkLCBWaWRlb1JvdGF0aW9uIHJvdGF0aW9uLCBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiBwaXhlbEJ1ZmZlcikKKyAgICA6IFZpZGVvRnJh
bWUocHJlc2VudGF0aW9uVGltZSwgaXNNaXJyb3JlZCwgcm90YXRpb24pCisgICAgLCBtX3BpeGVs
QnVmZmVyKFdURk1vdmUocGl4ZWxCdWZmZXIpKQoreworfQorCitWaWRlb0ZyYW1lQ1Y6On5WaWRl
b0ZyYW1lQ1YoKSA9IGRlZmF1bHQ7CisKK1dlYkNvcmU6OkZsb2F0U2l6ZSBWaWRlb0ZyYW1lQ1Y6
OnByZXNlbnRhdGlvblNpemUoKSBjb25zdAoreworICAgIHJldHVybiB7IHN0YXRpY19jYXN0PGZs
b2F0PihDVlBpeGVsQnVmZmVyR2V0V2lkdGgobV9waXhlbEJ1ZmZlci5nZXQoKSkpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4oQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChtX3BpeGVsQnVmZmVyLmdldCgpKSkg
fTsKK30KKwordWludDMyX3QgVmlkZW9GcmFtZUNWOjp2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShtX3BpeGVsQnVm
ZmVyLmdldCgpKTsKK30KKworSW1hZ2VPcmllbnRhdGlvbiBWaWRlb0ZyYW1lQ1Y6Om9yaWVudGF0
aW9uKCkgY29uc3QKK3sKKyAgICAvLyBTYW1wbGUgdHJhbnNmb3JtIGZpcnN0IGZsaXBzIHgtY29v
cmRpbmF0ZXMsIHRoZW4gcm90YXRlcy4KKyAgICBzd2l0Y2ggKG1fcm90YXRpb24pIHsKKyAgICBj
YXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOgorICAgICAgICByZXR1cm4gbV9p
c01pcnJvcmVkID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wUmlnaHQgOiBJbWFnZU9yaWVu
dGF0aW9uOjpPcmlnaW5Ub3BMZWZ0OworICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b246OlJpZ2h0OgorICAgICAgICByZXR1cm4gbV9pc01pcnJvcmVkID8gSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luUmlnaHRCb3R0b20gOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodFRvcDsK
KyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAgICAg
ICByZXR1cm4gbV9pc01pcnJvcmVkID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9tTGVm
dCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0OworICAgIGNhc2UgTWVkaWFT
YW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQ6CisgICAgICAgIHJldHVybiBtX2lzTWlycm9yZWQg
PyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0VG9wIDogSW1hZ2VPcmllbnRhdGlvbjo6T3Jp
Z2luTGVmdEJvdHRvbTsKKyAgICB9Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMLmNwcAppbmRleCAwNGNhMTBlMThmMTUwODE1ZjNmZDY5M2ZmYjMyNjk1MzQyMjdkOTZhLi40
YTY3YzVkMTZlNWEwZmY5Zjk4N2ZkMjQzYTJkYjk1OGQzZGUyYThhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTC5jcHAKQEAgLTI4Nyw3ICsyODcsNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZQog
ICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5VU0VE
KHRhcmdldCwgdGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJEKTsKIAotICAg
IHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOworICAgIFJl
ZlB0cjxWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOwogICAgIGF1dG8gZ2V0VmlkZW9GcmFtZSA9IFsm
XSB7CiAgICAgICAgIGlmICghbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0w6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllCiAK
ICAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoV1RGTW92ZShnZXRWaWRlb0ZyYW1lKSk7CiAK
LSAgICBpZiAoIXZpZGVvRnJhbWUpIHsKKyAgICBpZiAoIXZpZGVvRnJhbWUgfHwgIWlzPFZpZGVv
RnJhbWVDVj4oKnZpZGVvRnJhbWUpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNl
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMwOSw3ICszMDksNyBAQCB2b2lkIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBs
YXllcklkZW50aWZpZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY29tcGxldGlvbkhh
bmRsZXIoY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoKnZpZGVvRnJhbWUsIHRl
eHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRl
eHRHTDo6RmxpcFkoZmxpcFkpKSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dENWLT5j
b3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoZG93bmNhc3Q8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFt
ZSksIHRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGlj
c0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKSk7CiAjZWxzZQogICAgIFVOVVNFRF9WQVJJQUJMRSht
ZWRpYVBsYXllcklkZW50aWZpZXIpOwogICAgIFVOVVNFRF9WQVJJQUJMRSh0ZXh0dXJlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcAppbmRleCA0MmEzMjA2NTRiMDNkZjliNDM5Nzc3OTQyNTY0NTgyMDA2Y2Rh
MTEwLi4xOGQwMDRkZjdkOTI2ODhmNTBjYjkyMTI2NTNkMTY0NjNjYTcyM2I1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuY3BwCkBAIC02Nyw2ICs2Nyw3IEBACiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNs
dWRlIDxXZWJDb3JlL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9WaWRlb0ZyYW1lQ1YuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEw
Nyw3ICsxMDgsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmludmFsaWRhdGUoKQog
ICAgIH0KICAgICBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgPSB7IH07CiAjaWYgVVNFKEFW
Rk9VTkRBVElPTikKLSAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IHN0ZDo6bnVsbG9w
dDsKKyAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IG51bGxwdHI7CiAjZW5kaWYKIH0K
IApAQCAtODY4LDIwICs4NjksMjggQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpjdXJy
ZW50VGltZUNoYW5nZWQoY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUpCiAgICAgbV93ZWJQcm9j
ZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpD
dXJyZW50VGltZUNoYW5nZWQobWVkaWFUaW1lLCBNb25vdG9uaWNUaW1lOjpub3coKSwgIW1lZGlh
UGxheWVyUGF1c2VkT3JTdGFsbGVkKCkpLCBtX2lkKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBs
YXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4m
JiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisvLyBGSVhNRTogVGhpcyB3aWxsIGJlIHR1
cm5lZCBpbnRvIGNyb3NzLXBsYXRmb3JtIGNvZGUgc29vbi4KKyNpZiBQTEFURk9STShDT0NPQSkK
K3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZD
aGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZWZQdHI8V2ViQ29y
ZTo6VmlkZW9GcmFtZUNWPj4mJiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHJlc3VsdDsKKyAg
ICBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiByZXN1bHQ7CiAg
ICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRp
YVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWU7CisgICAgUmVmUHRyPFdlYkNvcmU6OlZpZGVv
RnJhbWU+IHZpZGVvRnJhbWU7CiAgICAgaWYgKG1fcGxheWVyKQogICAgICAgICB2aWRlb0ZyYW1l
ID0gbV9wbGF5ZXItPnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwotICAgIGlmICghKG1fdmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lID09IHZpZGVvRnJhbWUpKSB7CisgICAgaWYgKG1fdmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lICE9IHZpZGVvRnJhbWUpIHsKICAgICAgICAgbV92aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWUgPSB2aWRlb0ZyYW1lOwogICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAg
ICAgICAgcmVzdWx0ID0gV1RGTW92ZSh2aWRlb0ZyYW1lKTsKKyAgICAgICAgUmVmUHRyPFZpZGVv
RnJhbWVDVj4gdmlkZW9GcmFtZUNWOworICAgICAgICBpZiAodmlkZW9GcmFtZSkgeworICAgICAg
ICAgICAgQVNTRVJUKGlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpKTsKKyAgICAgICAgICAg
IHZpZGVvRnJhbWVDViA9ICZkb3duY2FzdDxWaWRlb0ZyYW1lQ1Y+KCp2aWRlb0ZyYW1lKTsKKyAg
ICAgICAgfQorICAgICAgICByZXN1bHQgPSBXVEZNb3ZlKHZpZGVvRnJhbWVDVik7CiAgICAgfQog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSwgY2hhbmdlZCk7CiB9CisjZW5k
aWYKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp1cGRhdGVDYWNoZWRTdGF0ZShib29s
IGZvcmNlQ3VycmVudFRpbWVVcGRhdGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCA5MzE2YjY2YWIz
NTk2NmU1YjY0NWRkMWM3Y2UwZTgxMmYyMDZhNjM3Li43NWVhYmQ0NWIzMWQwMzRiODRjNDhmYzY2
YjI3NzlhMmU1NjQzOWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTc4LDYgKzc4LDEyIEBAIGNsYXNz
IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CiAK
IHN0cnVjdCBGb3VyQ0M7CisKK2NsYXNzIFZpZGVvRnJhbWU7CisKKyNpZiBQTEFURk9STShDT0NP
QSkKK2NsYXNzIFZpZGVvRnJhbWVDVjsKKyNlbmRpZgogfQogCiAjaWYgVVNFKEFWRk9VTkRBVElP
TikKQEAgLTMyNyw4ICszMzMsOCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IHZvaWQgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8V1RGOjpNYWNoU2VuZFJpZ2h0PiYmLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNv
bG9yU3BhY2UpPiYmKTsKICAgICB2b2lkIGNvbG9yU3BhY2UoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UpPiYmKTsKKyAgICB2b2lkIHZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+JiYsIGJvb2wpPiYmKTsKICNlbmRp
ZgotICAgIHZvaWQgdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+
JiYsIGJvb2wpPiYmKTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExv
Z2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7IHJldHVybiBtX2xvZ2dlcjsgfQpAQCAt
Mzg0LDcgKzM5MCw3IEBAIHByaXZhdGU6CiAgICAgU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2VzUmVx
dWVzdCBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Q7CiAKICAgICBib29sIG1fb2JzZXJ2aW5n
VGltZUNoYW5nZXMgeyBmYWxzZSB9OwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFT
YW1wbGVWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6VmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiAjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dlcjsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0ZTRmZWNhMjgzMWE0Y2QzZTNh
OWJlNzkyYWIyMDViMWUxM2VkMjYyLi5jYzEzN2FkZTUxOWJjNmQ0NzA3NTZjZjU3MDFkMDQ2NmUx
NWRkNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTI1LDggKzEy
NSw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgTmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIC0+
IChzdGQ6Om9wdGlvbmFsPE1hY2hTZW5kUmlnaHQ+IHNlbmRSaWdodCwgV2ViQ29yZTo6RGVzdGlu
YXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UpIFN5bmNocm9ub3VzCiAgICAgQ29sb3JTcGFjZSgp
IC0+IChXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSkgU3luY2hyb25v
dXMKKyAgICBWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSAtPiAoc3RkOjpvcHRp
b25hbDxSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPj4gdmlkZW9GcmFtZSwgYm9vbCBjaGFu
Z2VkKSBTeW5jaHJvbm91cwogI2VuZGlmCi0gICAgVmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZD
aGFuZ2VkKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1l
PiB2aWRlb0ZyYW1lLCBib29sIGNoYW5nZWQpIFN5bmNocm9ub3VzCiAKICAgICBQbGF5QXRIb3N0
VGltZShNb25vdG9uaWNUaW1lIHRpbWUpCiAgICAgUGF1c2VBdEhvc3RUaW1lKE1vbm90b25pY1Rp
bWUgdGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50
Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmlu
ZGV4IGEzMzQyYzNiYzNlN2UyMTM0OGZlMjA4ODdjYzFkZmVmMmJmOTU5NmMuLjcxZTUyMjhiZjYw
ODVmZWZlMDI3OGU2YjFhZjM1NTU5Mzk3OGI4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAtMjY1LDYgKzI2NSwzMSBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+
IHsKICAgICB9CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxSZWZQdHI8VD4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4KKyAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVmUHRyPFU+JiBvYmplY3QpCisg
ICAgeworICAgICAgICBpZiAob2JqZWN0KQorICAgICAgICAgICAgZW5jb2RlciA8PCB0cnVlIDw8
ICpvYmplY3Q7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7Cisg
ICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+CisgICAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8UmVmUHRyPFU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAg
IGF1dG8gaGFzT2JqZWN0ID0gZGVjb2Rlci50ZW1wbGF0ZSBkZWNvZGU8Ym9vbD4oKTsKKyAgICAg
ICAgaWYgKCFoYXNPYmplY3QpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
ICAgICBpZiAoISpoYXNPYmplY3QpCisgICAgICAgICAgICByZXR1cm4gUmVmUHRyPFU+IHsgfTsK
KyAgICAgICAgLy8gRGVjb2RlcnMgb2YgVSBoZWxkIHdpdGggUmVmUHRyIGRvIG5vdCByZXR1cm4g
c3RkOjpvcHRpb25hbDxVPiBidXQKKyAgICAgICAgLy8gc3RkOjpvcHRpb25hbDxSZWZQdHI8VT4+
LiBXZSBjYW5ub3QgdXNlIGBkZWNvZGVyLnRlbXBsYXRlIGRlY29kZTxVPigpYAorICAgICAgICAv
LyBDdXJyZW50bHkgZXhwZWN0ICJtb2Rlcm4gZGVjb2RlciIgLWxpa2UgZGVjb2RlIGZ1bmN0aW9u
LgorICAgICAgICByZXR1cm4gVTo6ZGVjb2RlKGRlY29kZXIpOworICAgIH0KK307CisKIHRlbXBs
YXRlPHNpemVfdCBpbmRleCwgdHlwZW5hbWUuLi4gRWxlbWVudHM+CiBzdHJ1Y3QgVHVwbGVFbmNv
ZGVyIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuY3BwCmluZGV4IDhkOWU1ZmY5MmFjM2IzZjBlYjcxMzM5ZWZlOGI0YmYzZjQyOTY0ZGMu
LmFkMWI3ZjJiNTZjZmU1Mzk4ZDMxMWZjOTFlZDhmMmEyMjYwMDdjNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTgwLDggKzgwLDkgQEAKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCi0jaW1wb3J0IDxXZWJDb3JlL1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaD4KLSNp
bXBvcnQgPFdlYkNvcmUvVmlkZW9MYXllck1hbmFnZXJPYmpDLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0ZyYW1l
Q1YuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oPgogI2VuZGlm
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwMDIsMTQgKzEwMDMsMjEgQEAgYm9vbCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OmNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShX
ZWJDb3JlOjpHcmFwaGkKIH0KICNlbmRpZgogCi1zdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlh
U2FtcGxlVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1lRm9y
Q3VycmVudFRpbWUoKQorUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKLSAgICBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gcmVzdWx0OworLy8gRklYTUU6IFRo
aXMgd2lsbCBiZSBtYWRlIGNyb3NzLXBsYXRmb3JtIGFnYWluIHNvb24uIFRoZXJlIGFyZSBubyBv
dGhlciBwbGF0Zm9ybXMgdXNpbmcgdGhpcyBhdCB0aGUgbW9tZW50LgorI2lmIFBMQVRGT1JNKENP
Q09BKQorICAgIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+IHJl
c3VsdDsKICAgICBib29sIGNoYW5nZWQgPSBmYWxzZTsKICAgICBpZiAoIWNvbm5lY3Rpb24oKS5z
ZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lSWZDaGFuZ2VkKCksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpW
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQ6OlJlcGx5KHJlc3VsdCwgY2hhbmdlZCks
IG1faWQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIGlmIChjaGFuZ2VkKQot
ICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IFdURk1vdmUocmVzdWx0KTsKKyAg
ICAgICAgcmV0dXJuIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOworICAgIGlmIChjaGFuZ2Vk
KSB7CisgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJy
ZW50VGltZSA9IFdURk1vdmUoKnJlc3VsdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1f
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID0gbnVsbHB0cjsKKyAgICB9CisjZW5kaWYKICAgICBy
ZXR1cm4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5oCmluZGV4IDFhNmEzNDAzNDNkMTQyZWRmZGVlYTM2YjM3NGE5OWY5OTNlZmViOTIuLjI5
ZjkxMmQ0ZThiODdiNTdiYTE1NjI0YTZkYzVlMDZiN2M1YzFiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuaApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIlZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlk
ZW9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9GcmFtZU1ldGFkYXRhLmg+CiAjaW5j
bHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KQEAg
LTI5Myw3ICsyOTQsNyBAQCBwcml2YXRlOgogI2lmICFVU0UoQVZGT1VOREFUSU9OKQogICAgIGJv
b2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMKiwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBH
Q0dMZW51bSwgR0NHTGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwogI2VuZGlmCi0gICAgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJy
ZW50VGltZSgpIGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lPiB2aWRlb0Zy
YW1lRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKICAgICBSZWZQdHI8V2ViQ29yZTo6TmF0aXZlSW1h
Z2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKICAgICBXZWJDb3JlOjpEZXN0
aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGZpbmFsOwogCkBAIC00NjAsNyArNDYxLDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fd2FpdGluZ0ZvcktleSB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX3RpbWVJc1Byb2dyZXNzaW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVuZGVyaW5nQ2Fu
QmVBY2NlbGVyYXRlZCB7IGZhbHNlIH07Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRp
YVNhbXBsZVZpZGVvRnJhbWU+IG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lOworICAgIFJlZlB0
cjxXZWJDb3JlOjpWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1
ZmZlckdhdGhlcmVkV2l0aFZpZGVvRnJhbWVNZXRhZGF0YTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4gbV9waXhlbEJ1ZmZlckNvbmZvcm1lcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlk
ZW9GcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlVmlkZW9GcmFtZVByb3h5LmNwcAppbmRleCAwNThjZTliNzVmY2FjY2VmNGIxY2JmNTVjMTZm
ODE0YjBhZjEwODYzLi4zMzdkMTMwOTRhMjI2YmY2ODcxY2YxYjRiYjk5YTk0ZDM3MTQ1NjBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVv
RnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwCkBAIC02MSwxMSArNjEsOSBAQCB2b2lkIFJlbW90ZVZp
ZGVvRnJhbWVQcm94eTo6cmVsZWFzZVVudXNlZChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IFByb3BlcnRpZQogfQogCiBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlJlbW90ZVZpZGVvRnJhbWVQ
cm94eShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFByb3BlcnRpZXMgcHJvcGVydGllcywg
UGl4ZWxCdWZmZXJDYWxsYmFjayYmIGNhbGxiYWNrKQotICAgIDogbV9jb25uZWN0aW9uKGNvbm5l
Y3Rpb24pCisgICAgOiBWaWRlb0ZyYW1lKHByb3BlcnRpZXMucHJlc2VudGF0aW9uVGltZSwgcHJv
cGVydGllcy5pc01pcnJvcmVkLCBwcm9wZXJ0aWVzLnJvdGF0aW9uKQorICAgICwgbV9jb25uZWN0
aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX3JlZmVyZW5jZVRyYWNrZXIocHJvcGVydGllcy5yZWZl
cmVuY2UpCi0gICAgLCBtX3ByZXNlbnRhdGlvblRpbWUocHJvcGVydGllcy5wcmVzZW50YXRpb25U
aW1lKQotICAgICwgbV9pc01pcnJvcmVkKHByb3BlcnRpZXMuaXNNaXJyb3JlZCkKLSAgICAsIG1f
cm90YXRpb24ocHJvcGVydGllcy5yb3RhdGlvbikKICAgICAsIG1fc2l6ZShwcm9wZXJ0aWVzLnNp
emUpCiAgICAgLCBtX3BpeGVsRm9ybWF0KHByb3BlcnRpZXMucGl4ZWxGb3JtYXQpCiAgICAgLCBt
X3BpeGVsQnVmZmVyQ2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCkBAIC05MiwzNiArOTAsMTEg
QEAgUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UgUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojpy
ZWFkKCkgY29uc3QKICAgICByZXR1cm4gbV9yZWZlcmVuY2VUcmFja2VyLnJlYWQoKTsKIH0KIAot
TWVkaWFUaW1lIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cHJlc2VudGF0aW9uVGltZSgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fcHJlc2VudGF0aW9uVGltZTsKLX0KLQotV2ViQ29yZTo6UGxhdGZv
cm1TYW1wbGUgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpwbGF0Zm9ybVNhbXBsZSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIHsgV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OlJlbW90ZVZpZGVvRnJhbWVQ
cm94eVR5cGUsIHsgfSB9OwotfQotCi1NZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBSZW1vdGVW
aWRlb0ZyYW1lUHJveHk6OnZpZGVvUm90YXRpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX3Jv
dGF0aW9uOwotfQotCi1ib29sIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6dmlkZW9NaXJyb3JlZCgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faXNNaXJyb3JlZDsKLX0KLQogdWludDMyX3QgUmVtb3Rl
VmlkZW9GcmFtZVByb3h5Ojp2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9waXhlbEZvcm1hdDsKIH0KIAotc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZp
ZGVvRnJhbWU+IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6dmlkZW9GcmFtZSgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLX0KLQogI2lmIFBMQVRGT1JNKENPQ09BKQogdm9pZCBS
ZW1vdGVWaWRlb0ZyYW1lUHJveHk6OmdldFBpeGVsQnVmZmVyKCkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94
eS5oCmluZGV4IDMxYTFhODQ1N2ViZjY4NTM2MThkNjhkNWVlOTUxMmVkNzRlZjFmZjcuLjQ5YTI2
ZmNlM2JiNDMyNmJjMzgzNGRmMzYyMzJjZGFiMWVhMDlkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHku
aApAQCAtOTQsMTQgKzk0LDggQEAgcHJpdmF0ZToKICAgICBSZW1vdGVWaWRlb0ZyYW1lUHJveHko
SVBDOjpDb25uZWN0aW9uJiwgUHJvcGVydGllcywgUGl4ZWxCdWZmZXJDYWxsYmFjayYmKTsKIAog
ICAgIC8vIFdlYkNvcmU6OlZpZGVvRnJhbWUgb3ZlcnJpZGVzLgotICAgIE1lZGlhVGltZSBwcmVz
ZW50YXRpb25UaW1lKCkgY29uc3QgZmluYWw7Ci0gICAgVmlkZW9Sb3RhdGlvbiB2aWRlb1JvdGF0
aW9uKCkgY29uc3QgZmluYWw7Ci0gICAgYm9vbCB2aWRlb01pcnJvcmVkKCkgY29uc3QgZmluYWw7
CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHByZXNlbnRhdGlvblNpemUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3NpemU7IH0KLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxl
VmlkZW9GcmFtZT4gdmlkZW9GcmFtZSgpIGNvbnN0IGZpbmFsOwogICAgIHVpbnQzMl90IHZpZGVv
UGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKLSAgICAvLyBGSVhNRTogV2hlbiBWaWRlb0ZyYW1l
IGlzIG5vdCBNZWRpYVNhbXBsZSwgdGhlc2Ugd2lsbCBub3QgYmUgbmVlZGVkLgotICAgIFdlYkNv
cmU6OlBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkgY29uc3QgZmluYWw7CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICB2b2lkIGdldFBpeGVsQnVmZmVyKCk7CkBAIC0xMDksOSArMTAz
LDYgQEAgcHJpdmF0ZToKIAogICAgIGNvbnN0IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVj
dGlvbjsKICAgICBSZW1vdGVWaWRlb0ZyYW1lUmVmZXJlbmNlVHJhY2tlciBtX3JlZmVyZW5jZVRy
YWNrZXI7Ci0gICAgY29uc3QgTWVkaWFUaW1lIG1fcHJlc2VudGF0aW9uVGltZTsKLSAgICBjb25z
dCBib29sIG1faXNNaXJyb3JlZDsKLSAgICBjb25zdCBWaWRlb1JvdGF0aW9uIG1fcm90YXRpb247
CiAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7CiAgICAgdWludDMyX3QgbV9waXhl
bEZvcm1hdCB7IDAgfTsKICAgICBtdXRhYmxlIExvY2sgbV9waXhlbEJ1ZmZlckxvY2s7CkBAIC0x
NDksOSArMTQwLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxS
ZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXM+IFJlbW8KIAogfQogU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19CRUdJTihXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94eSkKLSAgICBzdGF0
aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKSB7
IHJldHVybiBtZWRpYVNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5cGUgPT0gV2ViQ29yZTo6UGxh
dGZvcm1TYW1wbGU6OlJlbW90ZVZpZGVvRnJhbWVQcm94eVR5cGU7IH0KLVNQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfRU5EKCkKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6Vmlk
ZW9GcmFtZSkKLSAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTYW1w
bGUmIG1lZGlhU2FtcGxlKSB7IHJldHVybiBtZWRpYVNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnR5
cGUgPT0gV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OlJlbW90ZVZpZGVvRnJhbWVQcm94eVR5cGU7
IH0KKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIG1l
ZGlhU2FtcGxlKSB7IHJldHVybiBpczxXZWJDb3JlOjpWaWRlb0ZyYW1lPihtZWRpYVNhbXBsZSkg
JiYgZG93bmNhc3Q8V2ViQ29yZTo6VmlkZW9GcmFtZT4obWVkaWFTYW1wbGUpLmlzUmVtb3RlUHJv
eHkoKTsgfQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQorCiAjZW5kaWYK
</data>
<flag name="commit-queue"
          id="479167"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452196</attachid>
            <date>2022-02-16 07:31:00 -0800</date>
            <delta_ts>2022-02-17 03:26:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236701-20220216173058.patch</filename>
            <type>text/plain</type>
            <size>69214</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ5Zjg1ZTliNGRkZmMy
ODdjZDViODNmY2YzM2IyMzNlN2YzZTQxNi4uZWFhN2RjYzQ5NmFiMWUwYzYxNTFiMThlYWQ1YzQ5
NDE1OTdmNTU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDIyLTAyLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFQbGF5ZXI6
OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHNob3VsZCByZXR1cm4gVmlkZW9GcmFtZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzAxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIFJlbmFtZSBDViBzcGVj
aWZpYyBwYXJ0cyBvZiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgdG8gVmlkZW9GcmFtZUNWLgorICAg
ICAgICBVc2UgVmlkZW9GcmFtZSBiYXNlIGNsYXNzIGluc3RlYWQgb2YgTWVkaWFTYW1wbGVWaWRl
b0ZyYW1lLgorICAgICAgICBWaWRlb0ZyYW1lIHN1cHBvcnRzIG11bHRpcGxlIHBvbHltb3JwaGlj
IHN1YmNsYXNzZXMuIE9uZSBzdWNoCisgICAgICAgIGlzIFJlbW90ZVZpZGVvRnJhbWVQcm94eSwg
d2hpY2ggd2lsbCBiZSB1c2VkIGluIHRoZSBmdXR1cmUgdG8KKyAgICAgICAgcmV0dXJuIHJlbW90
ZSBwcm94eSBvYmplY3RzIGluIHRoZXNlIGxvY2F0aW9ucy4KKworICAgICAgICBUaGlzIHBhdGNo
IGlzIG9ubHkgYSByZW5hbWUuIEl0IGNvbmNlcm5zIG9ubHkgdGhlIGluLXByb2Nlc3MKKyAgICAg
ICAgdXNhZ2Ugb2YgdmlkZW8gZnJhbWVzIHZpYSBpbi1wcm9jZXNzIFZpZGVvRnJhbWVDVi4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAgICogSGVhZGVycy5jbWFr
ZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9NZWRpYVNhbXBsZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGU6OnZpZGVvUGl4ZWxGb3JtYXQgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL1ZpZGVvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Vmlk
ZW9GcmFtZTo6VmlkZW9GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lOjpwcmVz
ZW50YXRpb25UaW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWU6OnZpZGVv
Um90YXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZTo6dmlkZW9NaXJy
b3JlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lOjpwbGF0Zm9ybVNhbXBs
ZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vVmlkZW9GcmFtZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VmlkZW9GcmFtZTo6aXNSZW1vdGVQcm94eSBjb25zdCk6CisgICAgICAgIFRoaXMgbGVh
a3MgInJlbW90ZSIgY29uY2VwdCB0byBXZWJDb3JlIGxldmVsLiBIb3BlZnVsbHkKKyAgICAgICAg
aW4gdGhlIGZ1dHVyZSB0aGlzIGNhbiBiZSBzb2x2ZWQgaW4gYW5vdGhlciB3YXkuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb0ZyYW1lOjppc0NWIGNvbnN0KToKKyAgICAgICAgKGlzVHlwZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVWaWRlb0ZyYW1l
QVZGLm1tOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6dmlk
ZW9GcmFtZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdM
Q29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMQ1ZDb2NvYTo6Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OnBpeGVsQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvRnJhbWVDVjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvRnJhbWVDVjo6ZGVjb2RlKToKKyAgICAgICAgKGlzVHlwZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlZpZGVvRnJhbWVDVjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWVDVjo6
VmlkZW9GcmFtZUNWKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWVDVjo6cHJlc2VudGF0
aW9uU2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OnZpZGVvUGl4
ZWxGb3JtYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZUNWOjpvcmllbnRh
dGlvbiBjb25zdCk6CisKIDIwMjItMDItMTYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtDU1MgQ29udGFpbmVyIFF1ZXJpZXNdIFNlcmlhbGl6ZSBjb250YWlu
ZXIgc2hvcnRoYW5kIGluIFN0eWxlUHJvcGVydGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1MDE4MzUzYWMyOTE2
NjZhMDJmYmU3YmE0Y2Y3NTVkYjI4NjMxMTBmLi4wY2EwMWMxNDQzNTU3YmNiMDMyYWUwNDU4MjJl
YzhkMDdjMzE1Mjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTAyLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFQbGF5ZXI6
OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHNob3VsZCByZXR1cm4gVmlkZW9GcmFtZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzAxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGFkZGVkIFZp
ZGVvRnJhbWVDViBpbnN0ZWFkIG9mIHJlbW92ZWQgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLgorCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZy
b21NZWRpYSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6aW52YWxp
ZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9B
cmd1bWVudENvZGVycy5oOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZlB0cjxUPj46
OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVmUHRyPFQ+Pjo6ZGVjb2Rl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVv
RnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlVmlkZW9G
cmFtZVByb3h5OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHkpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oOgorICAgICAgICAoaXNUeXBlKToKKwog
MjAyMi0wMi0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbbWFjT1NdIEFkZCBhbiAiTWFya3VwIEltYWdlIiBpdGVtIHRvIHRoZSBzaGFyaW5nIHNl
cnZpY2VzIHBpY2tlciBjb250ZXh0IG1lbnUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGFjNzQ2YTll
NWVmNWI0YTRkMGRmY2ZhNGRjMWE0NWI5MWRjNTQyZWEuLmUxZDkwOGMyMzI5ZTU3YzdjMmE2MWJl
MzhlYWUzNGQ2MGM2OTMzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTUyNiw3ICsxNTI2LDYg
QEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyRW51bXMuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVySWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRl
LmgKLSAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVVzYWdlSW5mby5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAwMjgxNGQwMjIyYjI2ZTI4
OTliOGRhY2FlZDFhNDJlNTZiNTc0MTk0Li41YjRiNTY1YzM5YWJiZmRlMmQ0MTZmMTNkZTJmYjU0
MzcyOWY5MTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTMwNCw3ICszMDQsNiBAQCBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0YWRhdGFUZXh0VHJhY2tQcml2
YXRlQVZGLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0luYmFuZFRleHRUcmFj
a1ByaXZhdGVBVkYuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
YmFja1RhcmdldENvY29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAotcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhU2FtcGxlVmlkZW9GcmFtZUFWRi5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJNYWMuY3BwCkBAIC00MTUsNiAr
NDE0LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvQ1ZVdGlsaXRpZXMubW0KIHBsYXRmb3JtL2dy
YXBoaWNzL2N2L0ltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2N2
L1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGlj
c0NvbnRleHRHTENWQ29jb2EuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1Yu
bW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNvbG9yTWF0cml4Q29yZUltYWdlQXBw
bGllci5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZFQ29tcG9uZW50VHJhbnNmZXJD
b3JlSW1hZ2VBcHBsaWVyLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRmlsdGVySW1h
Z2VDb3JlSW1hZ2UubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBmYjlmYjdjYzIyMTg5ZjAzNDMwMjBjZjZjMGZhM2Q2NjVkYjll
YjM4Li5lNTliYTdmNzYxZDBiNTQwNGI3YzAwYTJjYjRjZDMwYmJiZDBmNTFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDA5
LDcgKzI0MDksNiBAQAogCQk3QUY5QjIwRjE4Q0ZCNUY0MDBDNjRCRUYgLyogSlNWVFRSZWdpb25M
aXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QUY5
QjIwQjE4Q0ZCNUYzMDBDNjRCRUYgLyogSlNWVFRSZWdpb25MaXN0LmggKi87IH07CiAJCTdCMTAz
MzlFMjU0OTcyMTcwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEwMzM5RDI1NDk3MjAxMDBDOEMx
QUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTdCMTAzMzlGMjU0OTcyMUUwMEM4QzFBQyAvKiBHcmFwaGlj
c0NvbnRleHRHTENWQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENW
Q29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk3QjQ0MTBFMTI3OTU4RkM1MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjQ0MTBERjI3OTU4
RkM0MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I1QTNEQUYyN0FCRjhDNTAwNkM2Rjk3
IC8qIFZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCNUEzREFEMjdBQkY4QzQwMDZDNkY5NyAvKiBWaWRlb0ZyYW1lLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I2MDk0REQyNzBDNDRC
RDAwNjQ4MzVDIC8qIEFOR0xFVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QkIzNEExNjI1MzQ1Q0IyMDAwMjlEMDggLyogQU5HTEVVdGls
aXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QjZEQzgxOTI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VT
d2FwQ2hhaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCNkRDODE3MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3
YXBDaGFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0yNDIyLDYgKzI0MjEsNyBAQAogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3Jh
cGhpY3NDaGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzFG
Mjc0RkEwMjEwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkREQTMxRDI3NEY5REE1MDAzODY1
OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzRDMjc1QTAxMzEwMDM4NjU5RSAvKiBQcm9j
ZXNzSWRlbnRpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QkUzN0Y4NzI3QkJC
NzA4MDA3QTZDRDMgLyogVmlkZW9GcmFtZUNWLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QkUzN0Y4NjI3QkJCNkZGMDA3QTZDRDMgLyogVmlkZW9GcmFt
ZUNWLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0JFNzQyNzM4MUZBOTA2RkJCNEYwRjJDIC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBDNEMwMkJFRDg5MzZG
ODE4RTJGOTkgLyogSlNTVkdHcmFwaGljc0VsZW1lbnQuaCAqLzsgfTsKIAkJN0JGRjU5RjQyNzU3
NzI2NzAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JGRjU5RUYyNzU3NzFFODAwNzcz
RDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMDI5QzZFMjQ5M0M4RjgwMDI2ODIwNCAv
KiBDb2xvclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzAyOUM2RDI0OTNDOEY4MDAyNjgyMDQgLyogQ29sb3JUeXBlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTUzMCw4ICsxMTUzMCw2
IEBACiAJCTdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGlj
c0NvbnRleHRHTENWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1YuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxNjE5MTAyNzE5ODgwRTAwQzQwRUFDIC8qIFdl
YlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTdCNDQxMERGMjc5NThGQzQwMDBCNEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJh
bWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTYW1wbGVWaWRlb0Zy
YW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdCNDQxMEUyMjc5NThGREUwMDBC
NEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBNZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCNUEzREFCMjdBQkY4QzQwMDZDNkY5NyAvKiBWaWRlb0ZyYW1lLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3QjVBM0RBRDI3QUJGOEM0MDA2QzZGOTcgLyogVmlkZW9GcmFtZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0ZyYW1lLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNkRDODE1MjU3MTJFOTEwMDM4MEM3MCAvKiBHcmFwaGlj
c0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTU1NSw2ICsxMTU1Myw4IEBACiAJCTdCRERB
MzFEMjc0RjlEQTUwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JEREEzNDkyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nl
c3NJZGVudGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRl
bnRpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JEREEzNEIyNzVBMDEzMDAw
Mzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3QkUzN0Y4NTI3QkJCNkZFMDA3QTZDRDMgLyogVmlkZW9GcmFtZUNWLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GcmFtZUNWLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3QkUzN0Y4NjI3QkJCNkZGMDA3QTZDRDMgLyogVmlkZW9G
cmFtZUNWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnJhbWVDVi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkZGNTlFRjI3NTc3MUU4MDA3NzNEMzkg
LyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmg7IGZpbGVFbmNvZGluZyA9
IDQ7IHBhdGggPSBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0JGRjU5RjEyNzU3NzFFODAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1
cmF0aW9uTW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
aXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QzAxMUYzRDI0RkFEMzYwMDA1QkVGMTAgLyogU2V0dGluZ3MuY3BwLmVyYiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
ZXR0aW5ncy5jcHAuZXJiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg3ODEsNyAr
MTg3ODEsNiBAQAogCQkJCTA3MUU0OTZEMUFENUFBMEQwMDhBNTBCNCAvKiBNZWRpYVBsYXliYWNr
VGFyZ2V0Q29jb2EubW0gKi8sCiAJCQkJMDc2RjBEMDkxMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgKi8sCiAJCQkJMDc2RjBEMEExMkI4MTkyNzAw
QzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oICovLAotCQkJCTdCNDQx
MEUyMjc5NThGREUwMDBCNEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW0gKi8sCiAJ
CQkJQ0RCRUFFQUIxOUQ5MkI2QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpD
LmggKi8sCiAJCQkJQ0RCRUFFQUExOUQ5MkI2QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3Jv
dXBBVkZPYmpDLm1tICovLAogCQkJCTQxMDI0RkM4MjNDRjI1NEYwMEZERjk4RSAvKiBTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuY3BwICovLApAQCAtMjkwNDcsNyArMjkwNDYsNiBAQAogCQkJCUNE
NTIwOUUzMUIwQkQ4MzgwMDc3MTg0RSAvKiBNZWRpYVBsYXllckVudW1zLmggKi8sCiAJCQkJRjQy
OTI2MTcyNTI2NEQ0NDAwMDA3ODk4IC8qIE1lZGlhUGxheWVySWRlbnRpZmllci5oICovLAogCQkJ
CTA3OUY1RTRCMEYzQkVCRUEwMDVFMDc4MiAvKiBNZWRpYVBsYXllclByaXZhdGUuaCAqLywKLQkJ
CQk3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggKi8s
CiAJCQkJQ0Q2NDFFQjExODE4RjVFRDAwRUU0QzQxIC8qIE1lZGlhU291cmNlUHJpdmF0ZS5oICov
LAogCQkJCUNEREMxRTc5MThBOTUyRjMwMDI3QTlENCAvKiBNZWRpYVNvdXJjZVByaXZhdGVDbGll
bnQuaCAqLywKIAkJCQkwNzYxMURCODI0M0ZCNzVDMDBEODA3MDQgLyogTWVkaWFVc2FnZUluZm8u
aCAqLywKQEAgLTMwNDE0LDYgKzMwNDEyLDggQEAKIAkJCQkwNzQ2RDMwQTIxNDZFQTM3MDAzRERG
ODQgLyogSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbSAqLywKIAkJCQlDRDdEMzM0MTFDN0ExMjNG
MDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi8sCiAJCQkJQ0Q3RDMzNDIx
QzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCAqLywKKwkJCQk3QkUz
N0Y4NjI3QkJCNkZGMDA3QTZDRDMgLyogVmlkZW9GcmFtZUNWLmggKi8sCisJCQkJN0JFMzdGODUy
N0JCQjZGRTAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0g
Y3Y7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzYyNjEsNyArMzYyNjEsNiBAQAog
CQkJCUNFRUZDRDdBMTlEQjMxRjcwMDM4NzZENyAvKiBNZWRpYVJlc291cmNlTG9hZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQkY5REIzQzFEMzk3M0FEMDAyNkFFQjcgLyogTWVkaWFTYW1wbGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFCMTI0RDhEMUQzODBCNzAwMEVDREZCMCAvKiBNZWRpYVNh
bXBsZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAotCQkJCTdCNDQxMEUxMjc5NThGQzUwMDBCNEY4
QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQkVBRUFE
MTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTE3RDI3NUUxRUFDNTc5ODAwQkYwMUU3IC8qIE1lZGlhU2VsZWN0aW9uT3B0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzdCQTU3NTI2MEZBNUZFMDA3MkYxOUYgLyogTWVk
aWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTM3ODY3LDYgKzM3ODY2LDcgQEAKIAkJCQlC
Q0EyNTcxNTEyOTNDMDEwMDA3QTI2M0QgLyogVmVydGljYWxQb3NpdGlvbkNhY2hlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRDNFRUYzQjI1Nzk5RkExMDA2NTYzQkIgLyogVmlkZW9Db25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QjVBM0RBRjI3QUJGOEM1MDA2QzZGOTcgLyogVmlk
ZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0JFMzdGODcyN0JCQjcwODAwN0E2Q0QzIC8q
IFZpZGVvRnJhbWVDVi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFERUVGQjYyNzE5QkExQTAwQ0I4
RDc0IC8qIFZpZGVvRnJhbWVNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFERUVGQjAy
NzE5QjI5MDAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFu
Z2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9NZWRpYVNhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1w
bGUuaAppbmRleCBiMDY1MDRmNTdlZTkzNmI4ZTE5ODg3MWYzNTcyNzY1MzUzMDRhZmQzLi5mMjEw
MDQzNWM0MjFkZDM1NDgxM2FhYTkwMWVmMDlhYmRkOTM2MGYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lZGlhU2FtcGxlLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiRmxvYXRTaXplLmgiCi0jaW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJheXMuaD4KICNpbmNsdWRlIDx3dGYvRW51
bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KQEAgLTUwLDcgKzQ5LDcgQEAg
c3RydWN0IFBsYXRmb3JtU2FtcGxlIHsKICAgICAgICAgQ01TYW1wbGVCdWZmZXJUeXBlLAogICAg
ICAgICBHU3RyZWFtZXJTYW1wbGVUeXBlLAogICAgICAgICBCeXRlUmFuZ2VTYW1wbGVUeXBlLAot
ICAgICAgICBSZW1vdGVWaWRlb0ZyYW1lUHJveHlUeXBlLCAvLyBGSVhNRTogVG8gYmUgcmVtb3Zl
ZCB3aGVuIFZpZGVvRnJhbWUgaXMgbm90IE1lZGlhU2FtcGxlLgorICAgICAgICBWaWRlb0ZyYW1l
VHlwZSwgLy8gRklYTUU6IFRvIGJlIHJlbW92ZWQgd2hlbiBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRp
YVNhbXBsZS4KICAgICB9IHR5cGU7CiAgICAgdW5pb24gewogICAgICAgICBjb25zdCBNb2NrU2Ft
cGxlQm94KiBtb2NrU2FtcGxlQm94OwpAQCAtMTA4LDkgKzEwNyw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIFZpZGVvUm90YXRpb24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0IHsgcmV0dXJuIFZpZGVv
Um90YXRpb246Ok5vbmU7IH0KICAgICB2aXJ0dWFsIGJvb2wgdmlkZW9NaXJyb3JlZCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0
KCkgY29uc3QgeyByZXR1cm4gMDsgfQotI2lmIGRlZmluZWQoRU5BQkxFX1ZJREVPKSAmJiBFTkFC
TEVfVklERU8KLSAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1l
PiB2aWRlb0ZyYW1lKCkgY29uc3QgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9OwotI2VuZGlmCiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9WaWRlb0ZyYW1lLmNwcAppbmRleCBmMDc2OWJhNWU1NGE4ODBiZTYzOTA5YTljZGEwMzI4
N2EzN2QzY2Y0Li5jMmY0NTllNGM5MmZiOWU3OTU5YmE1MTM1MDhlYzY0YjRlZTYxOTlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmNwcApAQCAtMjYsMTQgKzI2LDM5IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVmlkZW9GcmFtZS5oIgogCi0jaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotVmlkZW9GcmFtZTo6VmlkZW9GcmFtZSgpID0gZGVmYXVsdDsKK1ZpZGVvRnJhbWU6OlZpZGVv
RnJhbWUoTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWUsIGJvb2wgaXNNaXJyb3JlZCwgVmlkZW9S
b3RhdGlvbiByb3RhdGlvbikKKyAgICA6IG1fcHJlc2VudGF0aW9uVGltZShwcmVzZW50YXRpb25U
aW1lKQorICAgICwgbV9pc01pcnJvcmVkKGlzTWlycm9yZWQpCisgICAgLCBtX3JvdGF0aW9uKHJv
dGF0aW9uKQoreworfQogCiBWaWRlb0ZyYW1lOjp+VmlkZW9GcmFtZSgpID0gZGVmYXVsdDsKIAor
TWVkaWFUaW1lIFZpZGVvRnJhbWU6OnByZXNlbnRhdGlvblRpbWUoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ByZXNlbnRhdGlvblRpbWU7Cit9CisKK01lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
IFZpZGVvRnJhbWU6OnZpZGVvUm90YXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX3JvdGF0
aW9uOworfQorCitib29sIFZpZGVvRnJhbWU6OnZpZGVvTWlycm9yZWQoKSBjb25zdAoreworICAg
IHJldHVybiBtX2lzTWlycm9yZWQ7Cit9CisKK1dlYkNvcmU6OlBsYXRmb3JtU2FtcGxlIFZpZGVv
RnJhbWU6OnBsYXRmb3JtU2FtcGxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyBXZWJDb3JlOjpQ
bGF0Zm9ybVNhbXBsZTo6VmlkZW9GcmFtZVR5cGUsIHsgfSB9OworfQorCiBNZWRpYVRpbWUgVmlk
ZW9GcmFtZTo6ZGVjb2RlVGltZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmgKaW5kZXggYjYzMWZkMTNlMjJlMzEyMjY2
NTAwMTRiYWY3OGRlYTkwY2FhNmZiMi4uMDVkYzQyMjNmNjIyN2MwYTkxOTUwYTQ1MmNkYWI2NzRi
Yzc0ZWIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaApAQCAtMjUsNyArMjUs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5B
QkxFKFZJREVPKQogCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKIApAQCAtMzgsOCArMzgsMjMg
QEAgY2xhc3MgVmlkZW9GcmFtZSA6IHB1YmxpYyBNZWRpYVNhbXBsZSB7CiBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgflZpZGVvRnJhbWUoKTsKIAorICAgIC8vIFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlIG92ZXJyaWRlcy4KKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVRpbWUgcHJlc2VudGF0aW9u
VGltZSgpIGNvbnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvUm90YXRpb24gdmlk
ZW9Sb3RhdGlvbigpIGNvbnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdmlkZW9N
aXJyb3JlZCgpIGNvbnN0IGZpbmFsOworICAgIC8vIEZJWE1FOiBXaGVuIFZpZGVvRnJhbWUgaXMg
bm90IE1lZGlhU2FtcGxlLCB0aGVzZSB3aWxsIG5vdCBiZSBuZWVkZWQuCisgICAgV0VCQ09SRV9F
WFBPUlQgV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1wbGUoKSBjb25zdCBmaW5h
bDsKKworI2lmIFVTRShBVkZPVU5EQVRJT04pCisgICAgdmlydHVhbCBib29sIGlzUmVtb3RlUHJv
eHkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0NWKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9F
WFBPUlQgVmlkZW9GcmFtZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvRnJhbWUoTWVkaWFU
aW1lIHByZXNlbnRhdGlvblRpbWUsIGJvb2wgaXNNaXJyb3JlZCwgVmlkZW9Sb3RhdGlvbik7Cisg
ICAgY29uc3QgTWVkaWFUaW1lIG1fcHJlc2VudGF0aW9uVGltZTsKKyAgICBjb25zdCBib29sIG1f
aXNNaXJyb3JlZDsKKyAgICBjb25zdCBWaWRlb1JvdGF0aW9uIG1fcm90YXRpb247CiAKIHByaXZh
dGU6CiAgICAgLy8gRklYTUU6IFRoZXNlIGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBmb3Ig
dGhlc2Ugb2JqZWN0cy4KQEAgLTYwLDQgKzc1LDcgQEAgcHJpdmF0ZToKIAogfQogCitTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlZpZGVvRnJhbWUpCisgICAgc3RhdGljIGJv
b2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkgeyByZXR1
cm4gbWVkaWFTYW1wbGUucGxhdGZvcm1TYW1wbGUoKS50eXBlID09IFdlYkNvcmU6OlBsYXRmb3Jt
U2FtcGxlOjpWaWRlb0ZyYW1lVHlwZTsgfQorU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKaW5kZXggMGFiYzMyMjM4ZDY0MWFjYTQ1ZjczOTc3NTdlNGU1ZTE1MWJhN2RiNS4uZWFl
NGJmMGJiY2M0MzIyYjYxNzAwYzg1ZDg3ZjE3NjhjN2ZkYjk2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTA4OCw3ICsxMDg4
LDcgQEAgYm9vbCBNZWRpYVBsYXllcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJl
KEdyYXBoaWNzQ29udGV4dEdMKiBjb250ZXh0LAogCiAjZW5kaWYKIAotc3RkOjpvcHRpb25hbDxN
ZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhUGxheWVyOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWUoKQorUmVmUHRyPFZpZGVvRnJhbWU+IE1lZGlhUGxheWVyOjp2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKQogewogICAgIHJldHVybiBtX3ByaXZhdGUtPnZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmgKaW5kZXggNWYwZGFhODY2ZjJjODIzM2FjOGMxOTRhNjEzM2Q5NzNmMzQ0NmZlOC4uYjAzNTkw
YmJkYzhiMWJiNjY3MTNkODBkMTcwZThkMDMwOTZjYWJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0zNCwxMSArMzQsMTEgQEAKICNp
bmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJFbnVtcy5oIgogI2lu
Y2x1ZGUgIk1lZGlhUGxheWVySWRlbnRpZmllci5oIgotI2luY2x1ZGUgIk1lZGlhU2FtcGxlVmlk
ZW9GcmFtZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVRleHRUcmFjay5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogI2luY2x1ZGUg
IlRpbWVyLmgiCisjaW5jbHVkZSAiVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIlZpZGVvRnJhbWVN
ZXRhZGF0YS5oIgogI2luY2x1ZGUgIlZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcy5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ZvcndhcmQuaD4KQEAgLTQ3MCw3ICs0NzAsNyBAQCBwdWJs
aWM6CiAjaWYgIVVTRShBVkZPVU5EQVRJT04pCiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9Q
bGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0IHRleHR1
cmUsIEdDR0xlbnVtIHRhcmdldCwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3Jt
YXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgYm9vbCBwcmVtdWx0aXBseUFscGhh
LCBib29sIGZsaXBZKTsKICNlbmRpZgotICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRl
b0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKKyAgICBSZWZQdHI8VmlkZW9GcmFt
ZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgUmVmUHRyPE5hdGl2ZUltYWdlPiBu
YXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNlIGNv
bG9yU3BhY2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCBmOWZmNGNiZjI4NjlkOTMzMTIwZWRlMDBkMDE1
ZTVhZGRmNDc4MjkxLi44MDliZTE2NTMzMjI3MjA3NjRmYTA4MTZjODM4OGRjMzJiNTgxZDZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaApAQCAtMjksOSArMjksOSBAQAogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIK
ICNpbmNsdWRlICJNZWRpYVBsYXllcklkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJNZWRpYVNhbXBs
ZVZpZGVvRnJhbWUuaCIKICNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtVGltZVJhbmdlcy5oIgorI2luY2x1ZGUgIlZpZGVvRnJhbWUuaCIKICNpbmNsdWRlIDxvcHRp
b25hbD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KIApAQCAtMTgxLDcgKzE4
MSw3IEBAIHB1YmxpYzoKICNpZiAhVVNFKEFWRk9VTkRBVElPTikKICAgICB2aXJ0dWFsIGJvb2wg
Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdMKiwgUGxh
dGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdDR0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NH
TGVudW0sIGJvb2wsIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKLSAgICB2aXJ0dWFs
IHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWUoKSB7IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxWaWRl
b0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSB7IHJldHVybiBudWxscHRyOyB9CiAg
ICAgdmlydHVhbCBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUo
KSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBEZXN0aW5hdGlvbkNvbG9yU3BhY2Ug
Y29sb3JTcGFjZSgpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzE0NzRjZmIxM2ZmYjExOTZkM2MyNDA1MGExNjI2YjczYjQ4M2VmNi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaAorKysgL2Rldi9udWxsCkBA
IC0xLDEwMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoVklERU8pCi0jaW5jbHVkZSAiSW1hZ2VP
cmllbnRhdGlvbi5oIgotCi0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+Ci0KLXVzaW5nIENWUGl4ZWxCdWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1ZmZlcio7
Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBNZWRpYVNhbXBsZVZpZGVv
RnJhbWUgewotcHVibGljOgotICAgIE1lZGlhU2FtcGxlVmlkZW9GcmFtZSgpID0gZGVsZXRlOwot
I2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgV0VCQ09SRV9FWFBPUlQgTWVkaWFTYW1wbGVWaWRl
b0ZyYW1lKFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmLCBJbWFnZU9yaWVudGF0aW9uKTsK
LSNlbmRpZgotCi0gICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fb3JpZW50YXRpb247IH0KLQotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgQ1ZQaXhl
bEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxCdWZmZXIuZ2V0
KCk7IH0KLSNlbmRpZgotCi0gICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1lZGlhU2FtcGxlVmlk
ZW9GcmFtZSYgb3RoZXIpIGNvbnN0OwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29k
ZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gZGVjb2RlKERl
Y29kZXImKTsKLQotcHJpdmF0ZToKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyOwotI2VuZGlmCi0gICAgSW1hZ2VPcmll
bnRhdGlvbiBtX29yaWVudGF0aW9uOwotfTsKLQotaW5saW5lIGJvb2wgTWVkaWFTYW1wbGVWaWRl
b0ZyYW1lOjpvcGVyYXRvcj09KGNvbnN0IE1lZGlhU2FtcGxlVmlkZW9GcmFtZSYgb3RoZXIpIGNv
bnN0Ci17Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBpZiAobV9waXhlbEJ1ZmZlciAhPSBv
dGhlci5tX3BpeGVsQnVmZmVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLSAgICBy
ZXR1cm4gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24ob3RoZXIubV9vcmllbnRhdGlvbikg
PT0gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24obV9vcmllbnRhdGlvbik7Ci19Ci0KLXRl
bXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lOjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAg
IGVuY29kZXIgPDwgbV9waXhlbEJ1ZmZlcjsKLSAgICBlbmNvZGVyIDw8IEltYWdlT3JpZW50YXRp
b246Ok9yaWVudGF0aW9uKG1fb3JpZW50YXRpb24pOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0o
ZW5jb2Rlcik7Ci0jZW5kaWYKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RkOjpv
cHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhU2FtcGxlVmlkZW9GcmFtZTo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBzdGQ6
Om9wdGlvbmFsPFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPj4gcGl4ZWxCdWZmZXI7Ci0gICAg
ZGVjb2RlciA+PiBwaXhlbEJ1ZmZlcjsKLSAgICBpZiAoIXBpeGVsQnVmZmVyKQotICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHN0ZDo6b3B0aW9uYWw8SW1hZ2VPcmllbnRhdGlvbjo6
T3JpZW50YXRpb24+IG9yaWVudGF0aW9uOwotICAgIGRlY29kZXIgPj4gb3JpZW50YXRpb247Ci0g
ICAgaWYgKCFvcmllbnRhdGlvbikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBy
ZXR1cm4gTWVkaWFTYW1wbGVWaWRlb0ZyYW1lIHsgV1RGTW92ZSgqcGl4ZWxCdWZmZXIpLCAqb3Jp
ZW50YXRpb24gfTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGRlY29kZXIpOwotICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7Ci0jZW5kaWYKLX0KLQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVWaWRl
b0ZyYW1lQVZGLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhU2FtcGxlVmlkZW9GcmFtZUFWRi5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjQ5NTk4MTJmNjZmY2E3MDU0MTdiMDJhZjU1MWZmYzEzMWE4NDM2Mi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tCisr
KyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShWSURF
TykKLSNpbmNsdWRlICJNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1NZWRpYVNhbXBsZVZpZGVvRnJhbWU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZShSZXRh
aW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiBwaXhlbEJ1ZmZlciwgSW1hZ2VPcmllbnRhdGlvbiBv
cmllbnRhdGlvbikKLSAgICA6IG1fcGl4ZWxCdWZmZXIoV1RGTW92ZShwaXhlbEJ1ZmZlcikpCi0g
ICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQotewotfQotCi19Ci0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oCmluZGV4IDM4Mzc3MmM1MDQ0OTI5YjllNTE1Nzg0MTZkZWY2NGY4Nzg4
MDIzNjQuLjAyZjA5M2E4ZTA5NDYwZmZlZmM4ZjkzYWNhMjNkMjJjOTYxYmM5Y2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLmgKQEAgLTI2Miw3ICsyNjIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBk
YXRlTGFzdFBpeGVsQnVmZmVyKCk7CiAgICAgYm9vbCB2aWRlb091dHB1dEhhc0F2YWlsYWJsZUZy
YW1lKCk7CiAgICAgdm9pZCBwYWludFdpdGhWaWRlb091dHB1dChHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmKTsKLSAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFt
ZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CisgICAgUmVmUHRyPFZpZGVvRnJh
bWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIFJlZlB0cjxOYXRpdmVJ
bWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIERlc3RpbmF0aW9u
Q29sb3JTcGFjZSBjb2xvclNwYWNlKCkgZmluYWw7CiAgICAgdm9pZCB3YWl0Rm9yVmlkZW9PdXRw
dXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCBhZGIz
YmQxYjcwZjQyOTU5ODNhZDVhMjJlNGJlYzJmNjUwZDA3NzdhLi5iMTg1ZTk1ZTdkNmQxYTAzNzg2
Yzg5YzhmZGU5MzVkYWQ5ZTcyZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTY4LDYg
KzY4LDcgQEAKICNpbXBvcnQgIlNvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCIKICNpbXBvcnQgIlRl
eHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCiAjaW1wb3J0ICJVVElVdGlsaXRpZXMuaCIKKyNpbXBv
cnQgIlZpZGVvRnJhbWVDVi5oIgogI2ltcG9ydCAiVmlkZW9MYXllck1hbmFnZXJPYmpDLmgiCiAj
aW1wb3J0ICJWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQgIldlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlci5oIgpAQCAtMjcyMiwxMiArMjcyMywxMiBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aFZpZGVvT3V0cHV0KEdyYXBoaWNzQ29u
dGV4dCYgYwogCiB9CiAKLXN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUo
KQorUmVmUHRyPFZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgdXBkYXRlTGFzdFBpeGVsQnVmZmVy
KCk7CiAgICAgaWYgKCFtX2xhc3RQaXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLSAgICByZXR1cm4gTWVkaWFTYW1wbGVWaWRlb0ZyYW1lIHsgUmV0YWluUHRyIHsgbV9s
YXN0UGl4ZWxCdWZmZXIgfSwgSW1hZ2VPcmllbnRhdGlvbjo6Tm9uZSB9OworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gVmlkZW9GcmFtZUNWOjpjcmVhdGUoY3VycmVudE1lZGlh
VGltZSgpLCBmYWxzZSwgVmlkZW9GcmFtZUNWOjpWaWRlb1JvdGF0aW9uOjpOb25lLCBSZXRhaW5Q
dHIgeyBtX2xhc3RQaXhlbEJ1ZmZlciB9KTsKIH0KIAogUmVmUHRyPE5hdGl2ZUltYWdlPiBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1l
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggYmNhZDEyNTQzNjNhMTg3YzY4YTMzNjhm
YTdhN2ExNDg1MTViODJlNS4uNWUxMzBhZjFhYjE0NTM3N2M0YWI0MmM0YTRiZDY2MmM1Zjc2OWNj
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTIyMiw3ICsyMjIsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgdXBkYXRlTGFzdEltYWdlKCk7CiAgICAgdm9pZCBwYWludChHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVu
dEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJy
aWRlOwotICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKKyAgICBSZWZQdHI8VmlkZW9GcmFtZT4gdmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9y
U3BhY2UoKSBmaW5hbDsKIAogICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygp
IGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IGU5NWY4YzNj
YWNmMGFkZTE4MTFmMTFiYWU2ODNiZTRiNWZiMTU1MzMuLjc1NGIyMDdmNjc1MTJhNWFhMDkyNDA3
MmFkMzA5MWE2NTgwNTc3MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTM5LDYg
KzM5LDcgQEAKICNpbXBvcnQgIk1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oIgogI2ltcG9ydCAi
UGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgogI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24uaCIKKyNpbXBvcnQgIlZpZGVvRnJhbWVDVi5oIgogI2ltcG9ydCAiVmlkZW9MYXllck1hbmFn
ZXJPYmpDLmgiCiAjaW1wb3J0ICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb24uaCIKICNpbXBv
cnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0Lmg+CkBAIC03MjUsNyArNzI2LDcgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KEdyYXBoaWNzQ28KICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqaW1hZ2UsIGltYWdl
UmVjdC5zaXplKCksIG91dHB1dFJlY3QsIGltYWdlUmVjdCk7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8
TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCitSZWZQdHI8VmlkZW9GcmFtZT4gTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUo
KQogewogICAgIC8vIFdlIGhhdmUgYmVlbiBhc2tlZCB0byBwYWludCBpbnRvIGEgV2ViR0wgY2Fu
dmFzLCBzbyB0YWtlIHRoYXQgYXMgYSBzaWduYWwgdG8gY3JlYXRlCiAgICAgLy8gYSBkZWNvbXBy
ZXNzaW9uIHNlc3Npb24sIGV2ZW4gaWYgdGhhdCBtZWFucyB0aGUgbmF0aXZlIHZpZGVvIGNhbid0
IGFsc28gYmUgZGlzcGxheWVkCkBAIC03MzgsOCArNzM5LDggQEAgc3RkOjpvcHRpb25hbDxNZWRp
YVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
dmlkZW8KICAgICBpZiAoIW1faXNHYXRoZXJpbmdWaWRlb0ZyYW1lTWV0YWRhdGEpCiAgICAgICAg
IHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpOwogICAgIGlmICghbV9sYXN0UGl4ZWxCdWZmZXIpCi0g
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIE1lZGlhU2FtcGxlVmlkZW9G
cmFtZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3JpZW50YXRpb246
Ok5vbmUgfTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFZpZGVvRnJhbWVD
Vjo6Y3JlYXRlKGN1cnJlbnRNZWRpYVRpbWUoKSwgZmFsc2UsIFZpZGVvRnJhbWVDVjo6VmlkZW9S
b3RhdGlvbjo6Tm9uZSwgUmV0YWluUHRyIHsgbV9sYXN0UGl4ZWxCdWZmZXIgfSk7CiB9CiAKIERl
c3RpbmF0aW9uQ29sb3JTcGFjZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OmNvbG9yU3BhY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaAppbmRleCA1MTZkY2RhOTY4Njdm
NzU5ZmFjNWUyMDQwOTI3NWNjMDg5YzBiMzE4Li5mZjUxZmNhNzc2Zjg5N2Y1NjU0NDUzODQ3YjBh
MWVkODQ4Y2MzNGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaApAQCAtMTQzLDcgKzE0Myw3
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQo
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7Ci0gICAgc3RkOjpv
cHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgp
IG92ZXJyaWRlOworICAgIFJlZlB0cjxWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWUoKSBvdmVycmlkZTsKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIG92
ZXJyaWRlOwogICAgIGJvb2wgbWV0YURhdGFBdmFpbGFibGUoKSBjb25zdCB7IHJldHVybiBtX21l
ZGlhU3RyZWFtUHJpdmF0ZSAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OlJlYWR5U3Rh
dGU6OkhhdmVNZXRhZGF0YTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KaW5kZXggNDJm
ZDE3NDg3ZWE2Y2QxNzEwNTA1MDVmZjVmM2ZmNWVkZmJlN2UxNS4uMjVmYWQ5MDkxMGFiNWU0YjNl
ZWYwOWRiNDdlNjlmNmUxYjgwMmUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAt
MzAsOSArMzAsMTAgQEAKIAogI2ltcG9ydCAiQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5o
IgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKLSNpbXBvcnQgIkxvZ2dpbmcuaCIKICNp
bXBvcnQgIkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmgiCisjaW1wb3J0ICJMb2dnaW5n
LmgiCiAjaW1wb3J0ICJNZWRpYVBsYXllci5oIgorI2ltcG9ydCAiTWVkaWFTYW1wbGVBVkZPYmpD
LmgiCiAjaW1wb3J0ICJNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaCIKICNpbXBvcnQgIk1lZGlh
U3RyZWFtUHJpdmF0ZS5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgpAQCAt
MTAyMiwxNSArMTAyMywxOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDbwogICAgIGNvbnRleHQu
ZHJhd05hdGl2ZUltYWdlKCppbWFnZSwgaW1hZ2VSZWN0LnNpemUoKSwgdHJhbnNmb3JtZWREZXN0
UmVjdCwgaW1hZ2VSZWN0KTsKIH0KIAotc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJh
bWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lKCkKK1JlZlB0cjxWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgaWYgKG1fZGlz
cGxheU1vZGUgPT0gTm9uZSB8fCAhbWV0YURhdGFBdmFpbGFibGUoKSkKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKG1fZGlzcGxh
eU1vZGUgPT0gUGFpbnRJdEJsYWNrKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIW1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxl
KQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBtX2ltYWdlUGFpbnRl
ci5tZWRpYVNhbXBsZS0+dmlkZW9GcmFtZSgpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICBpZiAoaXM8VmlkZW9GcmFtZT4oKm1faW1hZ2VQYWludGVyLm1lZGlhU2FtcGxlKSkKKyAgICAg
ICAgcmV0dXJuICZkb3duY2FzdDxWaWRlb0ZyYW1lPigqbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1w
bGUpOworICAgIEFTU0VSVChpczxNZWRpYVNhbXBsZUFWRk9iakM+KCptX2ltYWdlUGFpbnRlci5t
ZWRpYVNhbXBsZSkpOworICAgIHJldHVybiBkb3duY2FzdDxNZWRpYVNhbXBsZUFWRk9iakM+KCpt
X2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZSkudmlkZW9GcmFtZSgpOwogfQogCiBEZXN0aW5hdGlv
bkNvbG9yU3BhY2UgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjb2xvclNw
YWNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKaW5kZXgg
NWI0ZjdmMDBkYjMzYTViY2RmNjU2YzYwMjJmMTQ4MzRmNDFjNTkwNi4uNTgxNGNmNjM1ZmVkOWVl
MDk1MWIxMjVlNWNjZjgzNDQ0ODQ5NGQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFTYW1wbGVBVkZPYmpDLmgKQEAgLTM1LDYgKzM1LDcgQEAgdXNpbmcgQ1ZQaXhlbEJ1ZmZlclJl
ZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUGl4
ZWxCdWZmZXI7CitjbGFzcyBWaWRlb0ZyYW1lQ1Y7CiAKIGNsYXNzIE1lZGlhU2FtcGxlQVZGT2Jq
QyA6IHB1YmxpYyBNZWRpYVNhbXBsZSB7CiBwdWJsaWM6CkBAIC03MSw3ICs3Miw2IEBAIHB1Ymxp
YzoKICAgICBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX3JvdGF0aW9uOyB9CiAgICAgYm9vbCB2aWRlb01pcnJvcmVkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9taXJyb3JlZDsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHVpbnQzMl90IHZp
ZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9w
dGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZSgpIGNvbnN0IGZpbmFsOwog
ICAgIFdFQkNPUkVfRVhQT1JUIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIoKSBjb25zdCBm
aW5hbDsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIoKSBjb25zdCB7IHJldHVy
biBtX3NhbXBsZS5nZXQoKTsgfQogCkBAIC04MCw2ICs4MCw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0Qnl0ZVJhbmdlT2Zmc2V0KHNpemVfdCk7CiAKKyAgICAvLyBGSVhNRTogVG8gYmUgcmVt
b3ZlZCBvbmNlIFZpZGVvRnJhbWUgaXMgbm90IGEgTWVkaWFTYW1wbGUuCisgICAgV0VCQ09SRV9F
WFBPUlQgUmVmUHRyPFZpZGVvRnJhbWVDVj4gdmlkZW9GcmFtZSgpIGNvbnN0OwogcHJvdGVjdGVk
OgogICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhU2FtcGxlQVZGT2JqQyhSZXRhaW5QdHI8Q01TYW1w
bGVCdWZmZXJSZWY+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhU2FtcGxlQVZGT2JqQyhD
TVNhbXBsZUJ1ZmZlclJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFW
Rk9iakMubW0KaW5kZXggNTAwNDM0MGZlZjQ5ZTQyZWIyZmRmODM0ZmZjMjc5MTUzZjU4MTRlNy4u
NjEwMzA1ODY0NWFkNjdmZWI2OGRmNzYzNjQ0MTY1NjM0NWNiNDk3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1w
bGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAj
aW1wb3J0ICJQaXhlbEJ1ZmZlci5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5o
IgorI2ltcG9ydCAiVmlkZW9GcmFtZUNWLmgiCiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU0NJ
bmxpbmVzLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFycmF5SW5saW5lcy5oPgog
I2ltcG9ydCA8d3RmL1ByaW50U3RyZWFtLmg+CkBAIC0xNjUsMjUgKzE2NiwxNCBAQCB1aW50MzJf
dCBNZWRpYVNhbXBsZUFWRk9iakM6OnZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdAogICAgIHJldHVy
biBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKTsKIH0KIAotc3Rk
OjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhU2FtcGxlQVZGT2JqQzo6dmlk
ZW9GcmFtZSgpIGNvbnN0CitSZWZQdHI8VmlkZW9GcmFtZUNWPiBNZWRpYVNhbXBsZUFWRk9iakM6
OnZpZGVvRnJhbWUoKSBjb25zdAogeworICAgIGlmICghbV9zYW1wbGUpCisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNfY2FzdDxDVlBpeGVsQnVm
ZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIobV9zYW1wbGUuZ2V0KCkp
KTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owot
ICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBbJl0gewotICAgICAgICAvLyBTYW1w
bGUgdHJhbnNmb3JtIGZpcnN0IGZsaXBzIHgtY29vcmRpbmF0ZXMsIHRoZW4gcm90YXRlcy4KLSAg
ICAgICAgc3dpdGNoIChtX3JvdGF0aW9uKSB7Ci0gICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZp
ZGVvUm90YXRpb246Ok5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gbV9taXJyb3JlZCA/IEltYWdl
T3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9w
TGVmdDsKLSAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ6Ci0g
ICAgICAgICAgICByZXR1cm4gbV9taXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblJp
Z2h0Qm90dG9tIDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRUb3A7Ci0gICAgICAgIGNh
c2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd246Ci0gICAgICAgICAgICBy
ZXR1cm4gbV9taXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbUxlZnQgOiBJ
bWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21SaWdodDsKLSAgICAgICAgY2FzZSBNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDoKLSAgICAgICAgICAgIHJldHVybiBtX21pcnJvcmVk
ID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luTGVmdFRvcCA6IEltYWdlT3JpZW50YXRpb246Ok9y
aWdpbkxlZnRCb3R0b207Ci0gICAgICAgIH0KLSAgICB9KCk7Ci0gICAgcmV0dXJuIE1lZGlhU2Ft
cGxlVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IHBpeGVsQnVmZmVyIH0sIG9yaWVudGF0aW9uIH07
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBWaWRlb0ZyYW1lQ1Y6OmNyZWF0
ZShwcmVzZW50YXRpb25UaW1lKCksIG1fbWlycm9yZWQsIG1fcm90YXRpb24sIFJldGFpblB0ciB7
IHBpeGVsQnVmZmVyIH0pOwogfQogCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyQXR0YWNo
bWVudFJhbmRvbUFjY2VzcyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRl
eHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCAzNmU4ZjBmYjAyOTM3N2I0ZWZmZTQwNTM1MjM3
ZTU4MjIyZmJmNzcxLi42NzYyNmJmZGZmOGEwMzRlZDlhMWNhNTRmOTRjYjYxNDhhNDkyZWMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbXBv
cnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgogI2ltcG9ydCAiUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCisjaW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIKICNpbXBv
cnQgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRleHQuaD4KICNpbXBvcnQgPE1ldGFsL01ldGFs
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL01ldGFsU1BJLmg+CkBAIC03OTAsNiArNzkxLDcg
QEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYShNZWRp
YVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUcKICAgICBhdXRvIHZpZGVvRnJhbWUgPSBwbGF5ZXIu
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgaWYgKCF2aWRlb0ZyYW1lKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUKGlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUp
KTsKIAogICAgIGF1dG8gY29udGV4dENWID0gYXNDVigpOwogICAgIGlmICghY29udGV4dENWKQpA
QCAtNzk3LDcgKzc5OSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRleHR1
cmVGcm9tTWVkaWEoTWVkaWFQbGF5ZXImIHBsYXllciwgUGxhdGZvcm1HCiAKICAgICBVTlVTRURf
VkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgQVNTRVJUX1VOVVNFRChvdXRwdXRUYXJn
ZXQsIG91dHB1dFRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRHTDo6VEVYVFVSRV8yRCk7Ci0gICAg
cmV0dXJuIGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKCp2aWRlb0ZyYW1lLCBv
dXRwdXRUZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhp
Y3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSk7CisgICAgcmV0dXJuIGNvbnRleHRDVi0+Y29weVZp
ZGVvU2FtcGxlVG9UZXh0dXJlKGRvd25jYXN0PFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpLCBv
dXRwdXRUZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQsIGZvcm1hdCwgdHlwZSwgR3JhcGhp
Y3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVi5o
CmluZGV4IGFjMTQ3NWU5ZGEzNmVkMTQxMzUyMmU5NjkxMjJiNjMxZTMxOTNlZmEuLmM2MDJmYmVi
NzI5NjhkYWY2NDIxN2YwMWY5NTBhMjRhN2M1YmY4ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1YuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWLmgKQEAg
LTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci1jbGFzcyBNZWRpYVNhbXBsZVZpZGVvRnJhbWU7CitjbGFzcyBWaWRlb0Zy
YW1lQ1Y7CiAKIC8vIEludGVyZmFjZSB0byBpbnRlcmFjdCB3aXRoIENWIG9iamVjdHMgYW5kIEdy
YXBoaWNzQ29udGV4dEdMLgogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xDViB7CkBAIC00MCw3ICs0
MCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBGbGlwWSA9IEdyYXBoaWNzQ29udGV4dEdMOjpGbGlw
WTsKICAgICAvLyBDb3BpZXMgQ1YgcGl4ZWwgYnVmZmVyIHRvIEdyYXBoaWNzQ29udGV4dEdMIFRF
WFRVUkVfMkQgdGV4dHVyZSBvZiB0aGUgc2FtZSBzaXplIGFzIHRoZSBwaXhlbCBidWZmZXIuCiAg
ICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCi0gICAgdmlydHVhbCBib29sIGNvcHlWaWRl
b1NhbXBsZVRvVGV4dHVyZShjb25zdCBNZWRpYVNhbXBsZVZpZGVvRnJhbWUmLCBQbGF0Zm9ybUdM
T2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsRm9y
bWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZKSA9IDA7CisgICAgdmly
dHVhbCBib29sIGNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShjb25zdCBWaWRlb0ZyYW1lQ1YmLCBQ
bGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGlu
dGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZKSA9IDA7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmNwcAppbmRleCAyYzk4ZjlkOTI5
MjNjMDQ5YTk0YjM0OWI0Zjc3NTI5NDc3MTllMjI4Li5hZjRiYzgxYjJhZjg1YWFjMDNkZGRmMGY3
N2M5OTdmZGU2MzI3ZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJGb3VyQ0MuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRl
eHRHTENvY29hLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlZpZGVvRnJhbWVD
Vi5oIgogI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ29yZVZpZGVvU1BJLmg+CiAjaW5jbHVkZSA8cGFs
L3NwaS9jb2NvYS9JT1N1cmZhY2VTUEkuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KQEAgLTU4NSw3ICs1ODYsNyBAQCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OkdyYXBoaWNz
Q29udGV4dEdMQ1ZDb2NvYShHcmFwaGljc0NvbnRleHRHTENvY29hJiBvd25lcgogICAgIEdMX0Jp
bmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mcmFtZWJ1ZmZlcik7CiB9CiAKLWJvb2wg
R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoY29uc3Qg
TWVkaWFTYW1wbGVWaWRlb0ZyYW1lJiB2aWRlb0ZyYW1lLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1
dFRleHR1cmUsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3Jt
YXQsIEdMZW51bSB0eXBlLCBGbGlwWSB1bnBhY2tGbGlwWSkKK2Jvb2wgR3JhcGhpY3NDb250ZXh0
R0xDVkNvY29hOjpjb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoY29uc3QgVmlkZW9GcmFtZUNWJiB2
aWRlb0ZyYW1lLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdMaW50IGxldmVsLCBH
TGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBGbGlwWSB1
bnBhY2tGbGlwWSkKIHsKICAgICBhdXRvIGltYWdlID0gdmlkZW9GcmFtZS5waXhlbEJ1ZmZlcigp
OwogICAgIC8vIEZJWE1FOiBUaGlzIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzICc0MjB2JyBhbmQg
JzQyMGYnIHBpeGVsIGZvcm1hdHMuIEludmVzdGlnYXRlIHN1cHBvcnRpbmcgbW9yZSBwaXhlbCBm
b3JtYXRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAppbmRleCA5ZTFiNDQ0OWQzYjRiYjlm
NWMwZDdhZThkODVmMzBlZjFkMDRiYThhLi43NjA4OWRjYWI0MjNkOTUwOTEwMDVlNjc4ZjAzYWNk
M2RhNzJiMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaApAQCAtNDMsNyArNDMsNyBA
QCBwdWJsaWM6CiAKICAgICB+R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hKCkgZmluYWw7CiAKLSAg
ICBib29sIGNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShjb25zdCBNZWRpYVNhbXBsZVZpZGVvRnJh
bWUmLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xl
bnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZ
KSBmaW5hbDsKKyAgICBib29sIGNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShjb25zdCBWaWRlb0Zy
YW1lQ1YmLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWwsIEdD
R0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEZs
aXBZKSBmaW5hbDsKIAogICAgIHZvaWQgaW52YWxpZGF0ZUtub3duVGV4dHVyZUNvbnRlbnQoR0NH
THVpbnQgdGV4dHVyZSk7CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzFjODgwMmNjOGM4MzM5
MzQ0ZmIwZDc0ZTFkYjNmZDNiZGRmN2RhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmgKQEAgLTAsMCArMSw4MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZG
T1VOREFUSU9OKQorCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRhdGlvbi5oIgorI2luY2x1ZGUgIlZp
ZGVvRnJhbWUuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK3VzaW5nIENWUGl4ZWxC
dWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1ZmZlcio7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgVmlkZW9GcmFtZUNWIDogcHVibGljIFZpZGVvRnJhbWUgeworcHVibGljOgorICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8VmlkZW9GcmFtZUNWPiBjcmVhdGUoTWVkaWFUaW1lIHBy
ZXNlbnRhdGlvblRpbWUsIGJvb2wgaXNNaXJyb3JlZCwgVmlkZW9Sb3RhdGlvbiwgUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIH5WaWRlb0ZyYW1lQ1Yo
KTsKKworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIoKSBjb25zdCB7IHJldHVybiBt
X3BpeGVsQnVmZmVyLmdldCgpOyB9CisgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbigp
IGNvbnN0OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPFJlZlB0cjxWaWRlb0ZyYW1lQ1Y+PiBkZWNvZGUoRGVjb2RlciYpOworCisgICAg
Ly8gVmlkZW9GcmFtZSBvdmVycmlkZXMuCisgICAgV2ViQ29yZTo6RmxvYXRTaXplIHByZXNlbnRh
dGlvblNpemUoKSBjb25zdCBmaW5hbDsKKyAgICB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0KCkg
Y29uc3QgZmluYWw7CisgICAgYm9vbCBpc0NWKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsg
fQorCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvRnJhbWVDVihNZWRpYVRpbWUg
cHJlc2VudGF0aW9uVGltZSwgYm9vbCBpc01pcnJvcmVkLCBWaWRlb1JvdGF0aW9uLCBSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJik7CisKKyAgICBjb25zdCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1
ZmZlclJlZj4gbV9waXhlbEJ1ZmZlcjsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+
IHZvaWQgVmlkZW9GcmFtZUNWOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IG1fcHJlc2VudGF0aW9uVGltZSA8PCBtX2lzTWlycm9yZWQgPDwgbV9yb3Rh
dGlvbiA8PCBtX3BpeGVsQnVmZmVyOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBz
dGQ6Om9wdGlvbmFsPFJlZlB0cjxWaWRlb0ZyYW1lQ1Y+PiBWaWRlb0ZyYW1lQ1Y6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGF1dG8gcHJlc2VudGF0aW9uVGltZSA9IGRlY29kZXIu
dGVtcGxhdGUgZGVjb2RlPE1lZGlhVGltZT4oKTsKKyAgICBhdXRvIGlzTWlycm9yZWQgPSBkZWNv
ZGVyLnRlbXBsYXRlIGRlY29kZTxib29sPigpOworICAgIGF1dG8gcm90YXRpb24gPSBkZWNvZGVy
LnRlbXBsYXRlIGRlY29kZTxWaWRlb1JvdGF0aW9uPigpOworICAgIGF1dG8gcGl4ZWxCdWZmZXIg
PSBkZWNvZGVyLnRlbXBsYXRlIGRlY29kZTxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+KCk7
CisgICAgaWYgKCFkZWNvZGVyLmlzVmFsaWQoKSB8fCAhKnBpeGVsQnVmZmVyKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJldHVybiBWaWRlb0ZyYW1lQ1Y6OmNyZWF0ZSgqcHJl
c2VudGF0aW9uVGltZSwgKmlzTWlycm9yZWQsICpyb3RhdGlvbiwgV1RGTW92ZSgqcGl4ZWxCdWZm
ZXIpKTsKK30KKworfQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlZp
ZGVvRnJhbWVDVikKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6VmlkZW9G
cmFtZSYgdmlkZW9GcmFtZSkgeyByZXR1cm4gdmlkZW9GcmFtZS5pc0NWKCk7IH0KKyAgICBzdGF0
aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKSB7
IHJldHVybiBpczxXZWJDb3JlOjpWaWRlb0ZyYW1lPihtZWRpYVNhbXBsZSkgJiYgaXM8V2ViQ29y
ZTo6VmlkZW9GcmFtZUNWPihkb3duY2FzdDxXZWJDb3JlOjpWaWRlb0ZyYW1lPihtZWRpYVNhbXBs
ZSkpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE1YTZkMDgyYmJlNDJjMzE3M2FiYzFmYTg4MTJlNDQxY2FjNmY2ZTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1l
Q1YubW0KQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJWaWRlb0ZyYW1lQ1YuaCIKKworI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFW
Rk9VTkRBVElPTikKKyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0TGluay5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1JlZjxWaWRlb0ZyYW1lQ1Y+IFZpZGVvRnJhbWVDVjo6Y3JlYXRlKE1lZGlh
VGltZSBwcmVzZW50YXRpb25UaW1lLCBib29sIGlzTWlycm9yZWQsIFZpZGVvUm90YXRpb24gcm90
YXRpb24sIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmIHBpeGVsQnVmZmVyKQoreworICAg
IEFTU0VSVChwaXhlbEJ1ZmZlcik7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVmlkZW9GcmFt
ZUNWKHByZXNlbnRhdGlvblRpbWUsIGlzTWlycm9yZWQsIHJvdGF0aW9uLCBXVEZNb3ZlKHBpeGVs
QnVmZmVyKSkpOworfQorCitWaWRlb0ZyYW1lQ1Y6OlZpZGVvRnJhbWVDVihNZWRpYVRpbWUgcHJl
c2VudGF0aW9uVGltZSwgYm9vbCBpc01pcnJvcmVkLCBWaWRlb1JvdGF0aW9uIHJvdGF0aW9uLCBS
ZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiBwaXhlbEJ1ZmZlcikKKyAgICA6IFZpZGVvRnJh
bWUocHJlc2VudGF0aW9uVGltZSwgaXNNaXJyb3JlZCwgcm90YXRpb24pCisgICAgLCBtX3BpeGVs
QnVmZmVyKFdURk1vdmUocGl4ZWxCdWZmZXIpKQoreworfQorCitWaWRlb0ZyYW1lQ1Y6On5WaWRl
b0ZyYW1lQ1YoKSA9IGRlZmF1bHQ7CisKK1dlYkNvcmU6OkZsb2F0U2l6ZSBWaWRlb0ZyYW1lQ1Y6
OnByZXNlbnRhdGlvblNpemUoKSBjb25zdAoreworICAgIHJldHVybiB7IHN0YXRpY19jYXN0PGZs
b2F0PihDVlBpeGVsQnVmZmVyR2V0V2lkdGgobV9waXhlbEJ1ZmZlci5nZXQoKSkpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4oQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodChtX3BpeGVsQnVmZmVyLmdldCgpKSkg
fTsKK30KKwordWludDMyX3QgVmlkZW9GcmFtZUNWOjp2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVsRm9ybWF0VHlwZShtX3BpeGVsQnVm
ZmVyLmdldCgpKTsKK30KKworSW1hZ2VPcmllbnRhdGlvbiBWaWRlb0ZyYW1lQ1Y6Om9yaWVudGF0
aW9uKCkgY29uc3QKK3sKKyAgICAvLyBTYW1wbGUgdHJhbnNmb3JtIGZpcnN0IGZsaXBzIHgtY29v
cmRpbmF0ZXMsIHRoZW4gcm90YXRlcy4KKyAgICBzd2l0Y2ggKG1fcm90YXRpb24pIHsKKyAgICBj
YXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOgorICAgICAgICByZXR1cm4gbV9p
c01pcnJvcmVkID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wUmlnaHQgOiBJbWFnZU9yaWVu
dGF0aW9uOjpPcmlnaW5Ub3BMZWZ0OworICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b246OlJpZ2h0OgorICAgICAgICByZXR1cm4gbV9pc01pcnJvcmVkID8gSW1hZ2VPcmllbnRhdGlv
bjo6T3JpZ2luUmlnaHRCb3R0b20gOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodFRvcDsK
KyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOgorICAgICAg
ICByZXR1cm4gbV9pc01pcnJvcmVkID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9tTGVm
dCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0OworICAgIGNhc2UgTWVkaWFT
YW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQ6CisgICAgICAgIHJldHVybiBtX2lzTWlycm9yZWQg
PyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0VG9wIDogSW1hZ2VPcmllbnRhdGlvbjo6T3Jp
Z2luTGVmdEJvdHRvbTsKKyAgICB9Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMLmNwcAppbmRleCAwNGNhMTBlMThmMTUwODE1ZjNmZDY5M2ZmYjMyNjk1MzQyMjdkOTZhLi40
YTY3YzVkMTZlNWEwZmY5Zjk4N2ZkMjQzYTJkYjk1OGQzZGUyYThhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTC5jcHAKQEAgLTI4Nyw3ICsyODcsNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZQog
ICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKICAgICBBU1NFUlRfVU5VU0VE
KHRhcmdldCwgdGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdMOjpURVhUVVJFXzJEKTsKIAotICAg
IHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOworICAgIFJl
ZlB0cjxWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOwogICAgIGF1dG8gZ2V0VmlkZW9GcmFtZSA9IFsm
XSB7CiAgICAgICAgIGlmICghbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0w6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllCiAK
ICAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoV1RGTW92ZShnZXRWaWRlb0ZyYW1lKSk7CiAK
LSAgICBpZiAoIXZpZGVvRnJhbWUpIHsKKyAgICBpZiAoIXZpZGVvRnJhbWUgfHwgIWlzPFZpZGVv
RnJhbWVDVj4oKnZpZGVvRnJhbWUpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNl
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMwOSw3ICszMDksNyBAQCB2b2lkIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBs
YXllcklkZW50aWZpZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY29tcGxldGlvbkhh
bmRsZXIoY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoKnZpZGVvRnJhbWUsIHRl
eHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRl
eHRHTDo6RmxpcFkoZmxpcFkpKSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dENWLT5j
b3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoZG93bmNhc3Q8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFt
ZSksIHRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0LCB0eXBlLCBHcmFwaGlj
c0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKSk7CiAjZWxzZQogICAgIFVOVVNFRF9WQVJJQUJMRSht
ZWRpYVBsYXllcklkZW50aWZpZXIpOwogICAgIFVOVVNFRF9WQVJJQUJMRSh0ZXh0dXJlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcAppbmRleCA0MmEzMjA2NTRiMDNkZjliNDM5Nzc3OTQyNTY0NTgyMDA2Y2Rh
MTEwLi4xOGQwMDRkZjdkOTI2ODhmNTBjYjkyMTI2NTNkMTY0NjNjYTcyM2I1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuY3BwCkBAIC02Nyw2ICs2Nyw3IEBACiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNs
dWRlIDxXZWJDb3JlL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9WaWRlb0ZyYW1lQ1YuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEw
Nyw3ICsxMDgsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmludmFsaWRhdGUoKQog
ICAgIH0KICAgICBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3QgPSB7IH07CiAjaWYgVVNFKEFW
Rk9VTkRBVElPTikKLSAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IHN0ZDo6bnVsbG9w
dDsKKyAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IG51bGxwdHI7CiAjZW5kaWYKIH0K
IApAQCAtODY4LDIwICs4NjksMjggQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpjdXJy
ZW50VGltZUNoYW5nZWQoY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUpCiAgICAgbV93ZWJQcm9j
ZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpD
dXJyZW50VGltZUNoYW5nZWQobWVkaWFUaW1lLCBNb25vdG9uaWNUaW1lOjpub3coKSwgIW1lZGlh
UGxheWVyUGF1c2VkT3JTdGFsbGVkKCkpLCBtX2lkKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBs
YXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4m
JiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisvLyBGSVhNRTogVGhpcyB3aWxsIGJlIHR1
cm5lZCBpbnRvIGNyb3NzLXBsYXRmb3JtIGNvZGUgc29vbi4KKyNpZiBQTEFURk9STShDT0NPQSkK
K3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZD
aGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZWZQdHI8V2ViQ29y
ZTo6VmlkZW9GcmFtZUNWPj4mJiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHJlc3VsdDsKKyAg
ICBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiByZXN1bHQ7CiAg
ICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRp
YVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWU7CisgICAgUmVmUHRyPFdlYkNvcmU6OlZpZGVv
RnJhbWU+IHZpZGVvRnJhbWU7CiAgICAgaWYgKG1fcGxheWVyKQogICAgICAgICB2aWRlb0ZyYW1l
ID0gbV9wbGF5ZXItPnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwotICAgIGlmICghKG1fdmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lID09IHZpZGVvRnJhbWUpKSB7CisgICAgaWYgKG1fdmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lICE9IHZpZGVvRnJhbWUpIHsKICAgICAgICAgbV92aWRlb0ZyYW1l
Rm9yQ3VycmVudFRpbWUgPSB2aWRlb0ZyYW1lOwogICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAg
ICAgICAgcmVzdWx0ID0gV1RGTW92ZSh2aWRlb0ZyYW1lKTsKKyAgICAgICAgUmVmUHRyPFZpZGVv
RnJhbWVDVj4gdmlkZW9GcmFtZUNWOworICAgICAgICBpZiAodmlkZW9GcmFtZSkgeworICAgICAg
ICAgICAgQVNTRVJUKGlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpKTsKKyAgICAgICAgICAg
IHZpZGVvRnJhbWVDViA9ICZkb3duY2FzdDxWaWRlb0ZyYW1lQ1Y+KCp2aWRlb0ZyYW1lKTsKKyAg
ICAgICAgfQorICAgICAgICByZXN1bHQgPSBXVEZNb3ZlKHZpZGVvRnJhbWVDVik7CiAgICAgfQog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSwgY2hhbmdlZCk7CiB9CisjZW5k
aWYKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp1cGRhdGVDYWNoZWRTdGF0ZShib29s
IGZvcmNlQ3VycmVudFRpbWVVcGRhdGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCA5MzE2YjY2YWIz
NTk2NmU1YjY0NWRkMWM3Y2UwZTgxMmYyMDZhNjM3Li43NWVhYmQ0NWIzMWQwMzRiODRjNDhmYzY2
YjI3NzlhMmU1NjQzOWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTc4LDYgKzc4LDEyIEBAIGNsYXNz
IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OwogY2xhc3MgVmlkZW9UcmFja1ByaXZhdGU7CiAK
IHN0cnVjdCBGb3VyQ0M7CisKK2NsYXNzIFZpZGVvRnJhbWU7CisKKyNpZiBQTEFURk9STShDT0NP
QSkKK2NsYXNzIFZpZGVvRnJhbWVDVjsKKyNlbmRpZgogfQogCiAjaWYgVVNFKEFWRk9VTkRBVElP
TikKQEAgLTMyNyw4ICszMzMsOCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IHZvaWQgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8V1RGOjpNYWNoU2VuZFJpZ2h0PiYmLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNv
bG9yU3BhY2UpPiYmKTsKICAgICB2b2lkIGNvbG9yU3BhY2UoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UpPiYmKTsKKyAgICB2b2lkIHZpZGVvRnJh
bWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+JiYsIGJvb2wpPiYmKTsKICNlbmRp
ZgotICAgIHZvaWQgdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+
JiYsIGJvb2wpPiYmKTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExv
Z2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7IHJldHVybiBtX2xvZ2dlcjsgfQpAQCAt
Mzg0LDcgKzM5MCw3IEBAIHByaXZhdGU6CiAgICAgU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2VzUmVx
dWVzdCBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Q7CiAKICAgICBib29sIG1fb2JzZXJ2aW5n
VGltZUNoYW5nZXMgeyBmYWxzZSB9OwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFT
YW1wbGVWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6VmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiAjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtX2xvZ2dlcjsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0ZTRmZWNhMjgzMWE0Y2QzZTNh
OWJlNzkyYWIyMDViMWUxM2VkMjYyLi5jYzEzN2FkZTUxOWJjNmQ0NzA3NTZjZjU3MDFkMDQ2NmUx
NWRkNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTI1LDggKzEy
NSw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyUHJveHkgTm90UmVmQ291bnRlZCB7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgTmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIC0+
IChzdGQ6Om9wdGlvbmFsPE1hY2hTZW5kUmlnaHQ+IHNlbmRSaWdodCwgV2ViQ29yZTo6RGVzdGlu
YXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UpIFN5bmNocm9ub3VzCiAgICAgQ29sb3JTcGFjZSgp
IC0+IChXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSkgU3luY2hyb25v
dXMKKyAgICBWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSAtPiAoc3RkOjpvcHRp
b25hbDxSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPj4gdmlkZW9GcmFtZSwgYm9vbCBjaGFu
Z2VkKSBTeW5jaHJvbm91cwogI2VuZGlmCi0gICAgVmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZD
aGFuZ2VkKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1l
PiB2aWRlb0ZyYW1lLCBib29sIGNoYW5nZWQpIFN5bmNocm9ub3VzCiAKICAgICBQbGF5QXRIb3N0
VGltZShNb25vdG9uaWNUaW1lIHRpbWUpCiAgICAgUGF1c2VBdEhvc3RUaW1lKE1vbm90b25pY1Rp
bWUgdGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50
Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCmlu
ZGV4IGEzMzQyYzNiYzNlN2UyMTM0OGZlMjA4ODdjYzFkZmVmMmJmOTU5NmMuLjcxZTUyMjhiZjYw
ODVmZWZlMDI3OGU2YjFhZjM1NTU5Mzk3OGI4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAtMjY1LDYgKzI2NSwzMSBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxzdGQ6OnBhaXI8VCwgVT4+
IHsKICAgICB9CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxSZWZQdHI8VD4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4KKyAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUmVmUHRyPFU+JiBvYmplY3QpCisg
ICAgeworICAgICAgICBpZiAob2JqZWN0KQorICAgICAgICAgICAgZW5jb2RlciA8PCB0cnVlIDw8
ICpvYmplY3Q7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7Cisg
ICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+CisgICAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8UmVmUHRyPFU+PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAg
IGF1dG8gaGFzT2JqZWN0ID0gZGVjb2Rlci50ZW1wbGF0ZSBkZWNvZGU8Ym9vbD4oKTsKKyAgICAg
ICAgaWYgKCFoYXNPYmplY3QpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
ICAgICBpZiAoISpoYXNPYmplY3QpCisgICAgICAgICAgICByZXR1cm4gUmVmUHRyPFU+IHsgfTsK
KyAgICAgICAgLy8gRGVjb2RlcnMgb2YgVSBoZWxkIHdpdGggUmVmUHRyIGRvIG5vdCByZXR1cm4g
c3RkOjpvcHRpb25hbDxVPiBidXQKKyAgICAgICAgLy8gc3RkOjpvcHRpb25hbDxSZWZQdHI8VT4+
LiBXZSBjYW5ub3QgdXNlIGBkZWNvZGVyLnRlbXBsYXRlIGRlY29kZTxVPigpYAorICAgICAgICAv
LyBDdXJyZW50bHkgZXhwZWN0ICJtb2Rlcm4gZGVjb2RlciIgLWxpa2UgZGVjb2RlIGZ1bmN0aW9u
LgorICAgICAgICByZXR1cm4gVTo6ZGVjb2RlKGRlY29kZXIpOworICAgIH0KK307CisKIHRlbXBs
YXRlPHNpemVfdCBpbmRleCwgdHlwZW5hbWUuLi4gRWxlbWVudHM+CiBzdHJ1Y3QgVHVwbGVFbmNv
ZGVyIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMjI0YmZmZjZmOGU2YmJmMDA3YTI2NTUwYzMxNDhk
ZDMzNTNlYTEyNC4uY2I1MDUyNWVmNDM3MTk0ZWE5NzU3N2FjYWJiY2I5MWUzZWVlMzgzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zODEsNiArMzgxLDcg
QEAgZGVmIGNvbmRpdGlvbnNfZm9yX2hlYWRlcihoZWFkZXIpOgogICAgICAgICAnIldDQ29udGVu
dEJ1ZmZlcklkZW50aWZpZXIuaCInOiBbIlVTRShHUkFQSElDU19MQVlFUl9XQykiXSwKICAgICAg
ICAgJyJXQ0xheWVyVHJlZUhvc3RJZGVudGlmaWVyLmgiJzogWyJVU0UoR1JBUEhJQ1NfTEFZRVJf
V0MpIl0sCiAgICAgICAgICc8V2ViQ29yZS9DVlV0aWxpdGllcy5oPic6IFsiUExBVEZPUk0oQ09D
T0EpIiwgXSwKKyAgICAgICAgJzxXZWJDb3JlL1ZpZGVvRnJhbWVDVi5oPic6IFsiUExBVEZPUk0o
Q09DT0EpIiwgXSwKICAgICAgICAgJzxXZWJDb3JlL0RhdGFEZXRlY3RvclR5cGUuaD4nOiBbIkVO
QUJMRShEQVRBX0RFVEVDVElPTikiXSwKICAgICAgICAgJzxXZWJDb3JlL01lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0Lmg+JzogWyJFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSJdLAog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCA4ZDllNWZmOTJhYzNiM2Yw
ZWI3MTMzOWVmZThiNGJmM2Y0Mjk2NGRjLi5hZDFiN2YyYjU2Y2ZlNTM5OGQzMTFmYzkxZWQ4ZjJh
MjI2MDA3YzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC04MCw4ICs4MCw5
IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotI2ltcG9ydCA8V2ViQ29yZS9QaXhl
bEJ1ZmZlckNvbmZvcm1lckNWLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1ZpZGVvTGF5ZXJNYW5hZ2Vy
T2JqQy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvVmlkZW9GcmFtZUNWLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0xh
eWVyTWFuYWdlck9iakMuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMDAy
LDE0ICsxMDAzLDIxIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpjb3B5VmlkZW9U
ZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpCiB9CiAjZW5kaWYKIAotc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKK1JlZlB0cjxXZWJDb3JlOjpW
aWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnZpZGVvRnJhbWVGb3JDdXJyZW50
VGltZSgpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJh
bWU+IHJlc3VsdDsKKy8vIEZJWE1FOiBUaGlzIHdpbGwgYmUgbWFkZSBjcm9zcy1wbGF0Zm9ybSBh
Z2FpbiBzb29uLiBUaGVyZSBhcmUgbm8gb3RoZXIgcGxhdGZvcm1zIHVzaW5nIHRoaXMgYXQgdGhl
IG1vbWVudC4KKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxX
ZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiByZXN1bHQ7CiAgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7
CiAgICAgaWYgKCFjb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6OlZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZCgpLCBNZXNzYWdlczo6
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2Vk
OjpSZXBseShyZXN1bHQsIGNoYW5nZWQpLCBtX2lkKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLSAgICBpZiAoY2hhbmdlZCkKLSAgICAgICAgbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRp
bWUgPSBXVEZNb3ZlKHJlc3VsdCk7CisgICAgICAgIHJldHVybiBtX3ZpZGVvRnJhbWVGb3JDdXJy
ZW50VGltZTsKKyAgICBpZiAoY2hhbmdlZCkgeworICAgICAgICBpZiAocmVzdWx0KQorICAgICAg
ICAgICAgbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBXVEZNb3ZlKCpyZXN1bHQpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IG51bGxw
dHI7CisgICAgfQorI2VuZGlmCiAgICAgcmV0dXJuIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1l
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAppbmRleCAxYTZhMzQwMzQzZDE0MmVkZmRl
ZWEzNmIzNzRhOTlmOTkzZWZlYjkyLi4yOWY5MTJkNGU4Yjg3YjU3YmExNTYyNGE2ZGM1ZTA2Yjdj
NWMxYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNp
bmNsdWRlICJWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFQbGF5ZXJQcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Zp
ZGVvRnJhbWVNZXRhZGF0YS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNs
dWRlIDx3dGYvTWVkaWFUaW1lLmg+CkBAIC0yOTMsNyArMjk0LDcgQEAgcHJpdmF0ZToKICNpZiAh
VVNFKEFWRk9VTkRBVElPTikKICAgICBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4
dHVyZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xl
bnVtLCBHQ0dMaW50LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKSBm
aW5hbDsKICNlbmRpZgotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRl
b0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6VmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAg
UmVmUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPiBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkg
ZmluYWw7CiAgICAgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSBm
aW5hbDsKIApAQCAtNDYwLDcgKzQ2MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3dhaXRpbmdG
b3JLZXkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90aW1lSXNQcm9ncmVzc2luZyB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX3JlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQgeyBmYWxzZSB9OwotICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVG
b3JDdXJyZW50VGltZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZT4gbV92aWRlb0Zy
YW1lRm9yQ3VycmVudFRpbWU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPENW
UGl4ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXJHYXRoZXJlZFdpdGhWaWRlb0ZyYW1lTWV0YWRh
dGE7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1Y+
IG1fcGl4ZWxCdWZmZXJDb25mb3JtZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHAKaW5kZXggMDU4
Y2U5Yjc1ZmNhY2NlZjRiMWNiZjU1YzE2ZjgxNGIwYWYxMDg2My4uMzM3ZDEzMDk0YTIyNmJmNjg3
MWNmMWI0YmI5OWE5NGQzNzE0NTYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcApAQCAtNjEs
MTEgKzYxLDkgQEAgdm9pZCBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnJlbGVhc2VVbnVzZWQoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQcm9wZXJ0aWUKIH0KIAogUmVtb3RlVmlkZW9GcmFt
ZVByb3h5OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHkoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBQcm9wZXJ0aWVzIHByb3BlcnRpZXMsIFBpeGVsQnVmZmVyQ2FsbGJhY2smJiBjYWxsYmFjaykK
LSAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQorICAgIDogVmlkZW9GcmFtZShwcm9wZXJ0
aWVzLnByZXNlbnRhdGlvblRpbWUsIHByb3BlcnRpZXMuaXNNaXJyb3JlZCwgcHJvcGVydGllcy5y
b3RhdGlvbikKKyAgICAsIG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogICAgICwgbV9yZWZlcmVu
Y2VUcmFja2VyKHByb3BlcnRpZXMucmVmZXJlbmNlKQotICAgICwgbV9wcmVzZW50YXRpb25UaW1l
KHByb3BlcnRpZXMucHJlc2VudGF0aW9uVGltZSkKLSAgICAsIG1faXNNaXJyb3JlZChwcm9wZXJ0
aWVzLmlzTWlycm9yZWQpCi0gICAgLCBtX3JvdGF0aW9uKHByb3BlcnRpZXMucm90YXRpb24pCiAg
ICAgLCBtX3NpemUocHJvcGVydGllcy5zaXplKQogICAgICwgbV9waXhlbEZvcm1hdChwcm9wZXJ0
aWVzLnBpeGVsRm9ybWF0KQogICAgICwgbV9waXhlbEJ1ZmZlckNhbGxiYWNrKFdURk1vdmUoY2Fs
bGJhY2spKQpAQCAtOTIsMzYgKzkwLDExIEBAIFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNl
IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cmVhZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVmZXJl
bmNlVHJhY2tlci5yZWFkKCk7CiB9CiAKLU1lZGlhVGltZSBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6
OnByZXNlbnRhdGlvblRpbWUoKSBjb25zdAotewotICAgIHJldHVybiBtX3ByZXNlbnRhdGlvblRp
bWU7Ci19Ci0KLVdlYkNvcmU6OlBsYXRmb3JtU2FtcGxlIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6
cGxhdGZvcm1TYW1wbGUoKSBjb25zdAotewotICAgIHJldHVybiB7IFdlYkNvcmU6OlBsYXRmb3Jt
U2FtcGxlOjpSZW1vdGVWaWRlb0ZyYW1lUHJveHlUeXBlLCB7IH0gfTsKLX0KLQotTWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb24gUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojp2aWRlb1JvdGF0aW9uKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9yb3RhdGlvbjsKLX0KLQotYm9vbCBSZW1vdGVWaWRlb0Zy
YW1lUHJveHk6OnZpZGVvTWlycm9yZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2lzTWlycm9y
ZWQ7Ci19Ci0KIHVpbnQzMl90IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6dmlkZW9QaXhlbEZvcm1h
dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGl4ZWxGb3JtYXQ7CiB9CiAKLXN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6
OnZpZGVvRnJhbWUoKSBjb25zdAotewotICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci19Ci0KICNp
ZiBQTEFURk9STShDT0NPQSkKIHZvaWQgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpnZXRQaXhlbEJ1
ZmZlcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuaAppbmRleCAzMWExYTg0NTdlYmY2ODUzNjE4ZDY4
ZDVlZTk1MTJlZDc0ZWYxZmY3Li40OWEyNmZjZTNiYjQzMjZiYzM4MzRkZjM2MjMyY2RhYjFlYTA5
ZDRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZVZpZGVvRnJhbWVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgKQEAgLTk0LDE0ICs5NCw4IEBAIHByaXZhdGU6CiAg
ICAgUmVtb3RlVmlkZW9GcmFtZVByb3h5KElQQzo6Q29ubmVjdGlvbiYsIFByb3BlcnRpZXMsIFBp
eGVsQnVmZmVyQ2FsbGJhY2smJik7CiAKICAgICAvLyBXZWJDb3JlOjpWaWRlb0ZyYW1lIG92ZXJy
aWRlcy4KLSAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSgpIGNvbnN0IGZpbmFsOwotICAg
IFZpZGVvUm90YXRpb24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgdmlk
ZW9NaXJyb3JlZCgpIGNvbnN0IGZpbmFsOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBwcmVzZW50
YXRpb25TaXplKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zaXplOyB9Ci0gICAgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWUoKSBjb25zdCBm
aW5hbDsKICAgICB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QgZmluYWw7Ci0gICAg
Ly8gRklYTUU6IFdoZW4gVmlkZW9GcmFtZSBpcyBub3QgTWVkaWFTYW1wbGUsIHRoZXNlIHdpbGwg
bm90IGJlIG5lZWRlZC4KLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBs
ZSgpIGNvbnN0IGZpbmFsOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBnZXRQaXhl
bEJ1ZmZlcigpOwpAQCAtMTA5LDkgKzEwMyw2IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBSZWY8
SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgUmVtb3RlVmlkZW9GcmFtZVJlZmVy
ZW5jZVRyYWNrZXIgbV9yZWZlcmVuY2VUcmFja2VyOwotICAgIGNvbnN0IE1lZGlhVGltZSBtX3By
ZXNlbnRhdGlvblRpbWU7Ci0gICAgY29uc3QgYm9vbCBtX2lzTWlycm9yZWQ7Ci0gICAgY29uc3Qg
VmlkZW9Sb3RhdGlvbiBtX3JvdGF0aW9uOwogICAgIGNvbnN0IFdlYkNvcmU6OkludFNpemUgbV9z
aXplOwogICAgIHVpbnQzMl90IG1fcGl4ZWxGb3JtYXQgeyAwIH07CiAgICAgbXV0YWJsZSBMb2Nr
IG1fcGl4ZWxCdWZmZXJMb2NrOwpAQCAtMTQ5LDkgKzE0MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVz
PiBSZW1vCiAKIH0KIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViS2l0OjpSZW1vdGVW
aWRlb0ZyYW1lUHJveHkpCi0gICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkgeyByZXR1cm4gbWVkaWFTYW1wbGUucGxhdGZvcm1TYW1w
bGUoKS50eXBlID09IFdlYkNvcmU6OlBsYXRmb3JtU2FtcGxlOjpSZW1vdGVWaWRlb0ZyYW1lUHJv
eHlUeXBlOyB9Ci1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCi1TUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0JFR0lOKFdlYkNvcmU6OlZpZGVvRnJhbWUpCi0gICAgc3RhdGljIGJvb2wgaXNUeXBl
KGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkgeyByZXR1cm4gbWVkaWFT
YW1wbGUucGxhdGZvcm1TYW1wbGUoKS50eXBlID09IFdlYkNvcmU6OlBsYXRmb3JtU2FtcGxlOjpS
ZW1vdGVWaWRlb0ZyYW1lUHJveHlUeXBlOyB9CisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0
IFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkgeyByZXR1cm4gaXM8V2ViQ29yZTo6
VmlkZW9GcmFtZT4obWVkaWFTYW1wbGUpICYmIGRvd25jYXN0PFdlYkNvcmU6OlZpZGVvRnJhbWU+
KG1lZGlhU2FtcGxlKS5pc1JlbW90ZVByb3h5KCk7IH0KIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNf
RU5EKCkKKwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452344</attachid>
            <date>2022-02-17 03:26:33 -0800</date>
            <delta_ts>2022-02-17 04:29:20 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236701-20220217132631.patch</filename>
            <type>text/plain</type>
            <size>71659</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5OTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmEzNjc0MWM3YjljMWNj
MGU2MzNjNTNlOGRkYWYyYTUxZWQ0OTlhOS4uZmQxMzQ1ODExYzc5NTg1ODBiZGM5MDMzODM1OWVm
OWY1ZWU4NjU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDIyLTAyLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFQbGF5ZXI6
OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHNob3VsZCByZXR1cm4gVmlkZW9GcmFtZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzAxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorICAgICAgICBSZW5hbWUgQ1Ygc3BlY2lm
aWMgcGFydHMgb2YgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lIHRvIFZpZGVvRnJhbWVDVi4KKyAgICAg
ICAgVXNlIFZpZGVvRnJhbWUgYmFzZSBjbGFzcyBpbnN0ZWFkIG9mIE1lZGlhU2FtcGxlVmlkZW9G
cmFtZS4KKyAgICAgICAgVmlkZW9GcmFtZSBzdXBwb3J0cyBtdWx0aXBsZSBwb2x5bW9ycGhpYyBz
dWJjbGFzc2VzLiBPbmUgc3VjaAorICAgICAgICBpcyBSZW1vdGVWaWRlb0ZyYW1lUHJveHksIHdo
aWNoIHdpbGwgYmUgdXNlZCBpbiB0aGUgZnV0dXJlIHRvCisgICAgICAgIHJldHVybiByZW1vdGUg
cHJveHkgb2JqZWN0cyBpbiB0aGVzZSBsb2NhdGlvbnMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBp
cyBvbmx5IGEgcmVuYW1lLiBJdCBjb25jZXJucyBvbmx5IHRoZSBpbi1wcm9jZXNzCisgICAgICAg
IHVzYWdlIG9mIHZpZGVvIGZyYW1lcyB2aWEgaW4tcHJvY2VzcyBWaWRlb0ZyYW1lQ1YuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCByZWZhY3Rvci4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6
CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTWVkaWFTYW1wbGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjp2aWRlb1BpeGVsRm9ybWF0IGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9WaWRlb0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
RnJhbWU6OlZpZGVvRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZTo6cHJlc2Vu
dGF0aW9uVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lOjp2aWRlb1Jv
dGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWU6OnZpZGVvTWlycm9y
ZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZTo6cGxhdGZvcm1TYW1wbGUg
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1ZpZGVvRnJhbWUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvRnJhbWU6OmlzUmVtb3RlUHJveHkgY29uc3QpOgorICAgICAgICBUaGlzIGxlYWtz
ICJyZW1vdGUiIGNvbmNlcHQgdG8gV2ViQ29yZSBsZXZlbC4gSG9wZWZ1bGx5CisgICAgICAgIGlu
IHRoZSBmdXR1cmUgdGhpcyBjYW4gYmUgc29sdmVkIGluIGFub3RoZXIgd2F5LgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9GcmFtZTo6aXNDViBjb25zdCk6CisgICAgICAgIChpc1R5cGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmg6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2FtcGxlVmlkZW9GcmFtZUFW
Ri5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp2aWRlb0ZyYW1lRm9y
Q3VycmVudFRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBs
ZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OnZpZGVv
RnJhbWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNz
Q29udGV4dEdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvR3JhcGhpY3NDb250ZXh0R0xDVi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2
L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRHTENWQ29jb2E6OmNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9GcmFtZUNWOjpwaXhlbEJ1ZmZlciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpWaWRlb0ZyYW1lQ1Y6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b0ZyYW1lQ1Y6OmRlY29kZSk6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpW
aWRlb0ZyYW1lQ1Y6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OlZp
ZGVvRnJhbWVDVik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OnByZXNlbnRhdGlv
blNpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZUNWOjp2aWRlb1BpeGVs
Rm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWVDVjo6b3JpZW50YXRp
b24gY29uc3QpOgorCiAyMDIyLTAyLTE2ICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBs
ZS5jb20+CiAKICAgICAgICAgTG9va3VwIGxpbmUgbmFtZXMgZm9yIHN1YiBncmlkcyB1c2luZyBs
aW5lIG5hbWVzIGZyb20gYW5jZXN0b3IgZ3JpZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzkwMDFlYjRhNDk4MTE1
YzAxYzM3OGE2ODI2MGI2OWMwMTlkM2VhMS4uODBjMTY0YWY5NDNlMjhhYjJiZjk0YzY1MjRjMTk2
ODcyOWZjODNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMi0wMi0xNiAgS2ltbW8g
S2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhUGxheWVyOjp2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBzaG91bGQgcmV0dXJuIFZpZGVvRnJhbWUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjcwMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBVc2UgYWRkZWQgVmlkZW9G
cmFtZUNWIGluc3RlYWQgb2YgcmVtb3ZlZCBNZWRpYVNhbXBsZVZpZGVvRnJhbWUuCisKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbU1l
ZGlhKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjppbnZhbGlkYXRl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9GcmFtZUZv
ckN1cnJlbnRUaW1lSWZDaGFuZ2VkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogUGxhdGZvcm0vSVBDL0FyZ3Vt
ZW50Q29kZXJzLmg6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVmUHRyPFQ+Pjo6ZW5j
b2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWZQdHI8VD4+OjpkZWNvZGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9GcmFt
ZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVWaWRlb0ZyYW1lUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1l
UHJveHk6OlJlbW90ZVZpZGVvRnJhbWVQcm94eSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5Lmg6CisgICAgICAgIChpc1R5cGUpOgorCiAyMDIy
LTAyLTE2ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3RlVmlkZW9GcmFtZVByb3h5IHNob3VsZCB1c2UgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eSB0byBnZXQgdGhlIHBpeGVsIGJ1ZmZlciByZXByZXNlbnRhdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKaW5kZXggMzNkZjgwMTc2MGQzM2NiYzgwMDI1ODc4MWZlODUxZjhiZDEyNjAyMS4uMWEx
NmFhNzA5N2U5MzJjMjc3NzNhNGZhY2RkYTZhZGFjNGZkOGNjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CkBAIC0xNTI3LDcgKzE1MjcsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJFbnVtcy5oCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllclByaXZhdGUuaAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhU2FtcGxl
VmlkZW9GcmFtZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhVXNhZ2VJbmZvLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0Cmlu
ZGV4IGNjYjA4Njg1OGMxYzljYzMxMWE4N2ZiMzk1ODg3Njg4ODEwOTBlZTcuLjVkMjUwYTgwYWJk
MmY5ODc0ODFhNTVmMTAwNjVkMDFjMTUwYzFkN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApA
QCAtMzA0LDcgKzMwNCw2IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9JbmJhbmRN
ZXRhZGF0YVRleHRUcmFja1ByaXZhdGVBVkYuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EubW0KIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwCi1wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tCiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0K
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vV2ViTWVkaWFTZXNzaW9uTWFuYWdl
ck1hYy5jcHAKQEAgLTQxMiw2ICs0MTEsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9H
bHlwaFBhZ2VDb3JlVGV4dC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0NWVXRpbGl0aWVzLm1t
CiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVRyYW5zZmVyU2Vzc2lvblZULm1tCiBwbGF0Zm9y
bS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNwcAorcGxhdGZvcm0vZ3JhcGhp
Y3MvY3YvVmlkZW9GcmFtZUNWLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb2xv
ck1hdHJpeENvcmVJbWFnZUFwcGxpZXIubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9G
RUNvbXBvbmVudFRyYW5zZmVyQ29yZUltYWdlQXBwbGllci5tbQogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29yZWltYWdlL0ZpbHRlckltYWdlQ29yZUltYWdlLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2Y4NDhkOTRmZTNmYjY1M2My
YjM2ZTYwNDkwNGU3NWYwZDg0YzBhNC4uZmI2NDJhODJjMjQ1ZGU0ODVkODExYzNiZTIzZmQyNzJk
ODEyMWRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjQwNyw3ICsyNDA3LDYgQEAKIAkJN0FGOUIyMEYxOENGQjVGNDAwQzY0
QkVGIC8qIEpTVlRUUmVnaW9uTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0FGOUIyMEIxOENGQjVGMzAwQzY0QkVGIC8qIEpTVlRUUmVnaW9uTGlz
dC5oICovOyB9OwogCQk3QjEwMzM5RTI1NDk3MjE3MDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0
R0xDVi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0Ix
MDMzOUQyNTQ5NzIwMTAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1YuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjEwMzM5RjI1NDk3MjFF
MDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMgLyog
R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJN0I0NDEwRTEyNzk1OEZDNTAwMEI0RjhBIC8qIE1lZGlhU2Ft
cGxlVmlkZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0I0NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlhU2FtcGxlVmlkZW9GcmFtZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCNUEz
REFGMjdBQkY4QzUwMDZDNkY5NyAvKiBWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjVBM0RBRDI3QUJGOEM0MDA2QzZGOTcgLyogVmlk
ZW9GcmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTdCNjA5NEREMjcwQzQ0QkQwMDY0ODM1QyAvKiBBTkdMRVV0aWxpdGllcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBMTYyNTM0NUNCMjAw
MDI5RDA4IC8qIEFOR0xFVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNz
Q29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QjZEQzgxNzI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3ND
b250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjQyMCw2ICsyNDE5LDcgQEAKIAkJN0JCNjgwQkEyNUJB
MUJFNDAwMkI4NzM4IC8qIEdyYXBoaWNzQ2hlY2tzTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkI2ODBCODI1QkExQkU0MDAyQjg3MzggLyogR3Jh
cGhpY3NDaGVja3NNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QkREQTMxRjI3NEZBMDIxMDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xD
b2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JE
REEzMUQyNzRGOURBNTAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkREQTM0QzI3NUEw
MTMxMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkREQTM0OTI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vz
c0lkZW50aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJN0JFMzdGODcyN0JCQjcwODAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JFMzdGODYyN0JCQjZGRjAw
N0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdCRTM3RjdBMjdCQjg2QUIwMDdBNkNEMyAvKiBHcmFwaGljc0Nv
bnRleHRHTENvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0JEREEzMUMyNzRGOURBNDAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2Eu
bW0gKi87IH07CiAJCTdCRTM3RjdDMjdCQjg2QjgwMDdBNkNEMyAvKiBBTkdMRVV0aWxpdGllc0Nv
Y29hLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
Q0Q0MkRBMjcwNUM5NDkwMEVCMjEyNyAvKiBBTkdMRVV0aWxpdGllc0NvY29hLmNwcCAqLzsgfTsK
IAkJN0JFMzdGN0QyN0JCODZDRDAwN0E2Q0QzIC8qIEFOR0xFVXRpbGl0aWVzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQ0Q0MkQ4MjcwNTk5RUYw
MEVCMjEyNyAvKiBBTkdMRVV0aWxpdGllcy5jcHAgKi87IH07CkBAIC0xMTUzOCw4ICsxMTUzOCw2
IEBACiAJCTdCMTAzMzlDMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTAzMzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGlj
c0NvbnRleHRHTENWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1YuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0IxNjE5MTAyNzE5ODgwRTAwQzQwRUFDIC8qIFdl
YlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTdCNDQxMERGMjc5NThGQzQwMDBCNEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJh
bWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTYW1wbGVWaWRlb0Zy
YW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdCNDQxMEUyMjc5NThGREUwMDBC
NEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBNZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCNUEzREFCMjdBQkY4QzQwMDZDNkY5NyAvKiBWaWRlb0ZyYW1lLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3QjVBM0RBRDI3QUJGOEM0MDA2QzZGOTcgLyogVmlkZW9GcmFtZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0ZyYW1lLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCNkRDODE1MjU3MTJFOTEwMDM4MEM3MCAvKiBHcmFwaGlj
c0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTU2Myw2ICsxMTU2MSw4IEBACiAJCTdCRERB
MzFEMjc0RjlEQTUwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JEREEzNDkyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nl
c3NJZGVudGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRl
bnRpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JEREEzNEIyNzVBMDEzMDAw
Mzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3QkUzN0Y4NTI3QkJCNkZFMDA3QTZDRDMgLyogVmlkZW9GcmFtZUNWLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GcmFtZUNWLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3QkUzN0Y4NjI3QkJCNkZGMDA3QTZDRDMgLyogVmlkZW9G
cmFtZUNWLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnJhbWVDVi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkZGNTlFRjI3NTc3MUU4MDA3NzNEMzkg
LyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmg7IGZpbGVFbmNvZGluZyA9
IDQ7IHBhdGggPSBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0JGRjU5RjEyNzU3NzFFODAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1
cmF0aW9uTW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
aXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QzAxMUYzRDI0RkFEMzYwMDA1QkVGMTAgLyogU2V0dGluZ3MuY3BwLmVyYiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
ZXR0aW5ncy5jcHAuZXJiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg3OTEsNyAr
MTg3OTEsNiBAQAogCQkJCTA3MUU0OTZEMUFENUFBMEQwMDhBNTBCNCAvKiBNZWRpYVBsYXliYWNr
VGFyZ2V0Q29jb2EubW0gKi8sCiAJCQkJMDc2RjBEMDkxMkI4MTkyNzAwQzI2QUE0IC8qIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgKi8sCiAJCQkJMDc2RjBEMEExMkI4MTkyNzAw
QzI2QUE0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oICovLAotCQkJCTdCNDQx
MEUyMjc5NThGREUwMDBCNEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW0gKi8sCiAJ
CQkJQ0RCRUFFQUIxOUQ5MkI2QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpD
LmggKi8sCiAJCQkJQ0RCRUFFQUExOUQ5MkI2QzAwQkVCQTg4IC8qIE1lZGlhU2VsZWN0aW9uR3Jv
dXBBVkZPYmpDLm1tICovLAogCQkJCTQxMDI0RkM4MjNDRjI1NEYwMEZERjk4RSAvKiBTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIuY3BwICovLApAQCAtMjkwNjMsNyArMjkwNjIsNiBAQAogCQkJCUNE
NTIwOUUzMUIwQkQ4MzgwMDc3MTg0RSAvKiBNZWRpYVBsYXllckVudW1zLmggKi8sCiAJCQkJRjQy
OTI2MTcyNTI2NEQ0NDAwMDA3ODk4IC8qIE1lZGlhUGxheWVySWRlbnRpZmllci5oICovLAogCQkJ
CTA3OUY1RTRCMEYzQkVCRUEwMDVFMDc4MiAvKiBNZWRpYVBsYXllclByaXZhdGUuaCAqLywKLQkJ
CQk3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggKi8s
CiAJCQkJQ0Q2NDFFQjExODE4RjVFRDAwRUU0QzQxIC8qIE1lZGlhU291cmNlUHJpdmF0ZS5oICov
LAogCQkJCUNEREMxRTc5MThBOTUyRjMwMDI3QTlENCAvKiBNZWRpYVNvdXJjZVByaXZhdGVDbGll
bnQuaCAqLywKIAkJCQkwNzYxMURCODI0M0ZCNzVDMDBEODA3MDQgLyogTWVkaWFVc2FnZUluZm8u
aCAqLywKQEAgLTMwNDMwLDYgKzMwNDI4LDggQEAKIAkJCQkwNzQ2RDMwQTIxNDZFQTM3MDAzRERG
ODQgLyogSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbSAqLywKIAkJCQlDRDdEMzM0MTFDN0ExMjNG
MDAwNDEyOTMgLyogUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAgKi8sCiAJCQkJQ0Q3RDMzNDIx
QzdBMTIzRjAwMDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCAqLywKKwkJCQk3QkUz
N0Y4NjI3QkJCNkZGMDA3QTZDRDMgLyogVmlkZW9GcmFtZUNWLmggKi8sCisJCQkJN0JFMzdGODUy
N0JCQjZGRTAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0g
Y3Y7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzYyNzksNyArMzYyNzksNiBAQAog
CQkJCUNFRUZDRDdBMTlEQjMxRjcwMDM4NzZENyAvKiBNZWRpYVJlc291cmNlTG9hZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQkY5REIzQzFEMzk3M0FEMDAyNkFFQjcgLyogTWVkaWFTYW1wbGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFCMTI0RDhEMUQzODBCNzAwMEVDREZCMCAvKiBNZWRpYVNh
bXBsZUFWRk9iakMuaCBpbiBIZWFkZXJzICovLAotCQkJCTdCNDQxMEUxMjc5NThGQzUwMDBCNEY4
QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQkVBRUFE
MTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTE3RDI3NUUxRUFDNTc5ODAwQkYwMUU3IC8qIE1lZGlhU2VsZWN0aW9uT3B0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzdCQTU3NTI2MEZBNUZFMDA3MkYxOUYgLyogTWVk
aWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTM3ODg0LDYgKzM3ODgzLDcgQEAKIAkJCQlC
Q0EyNTcxNTEyOTNDMDEwMDA3QTI2M0QgLyogVmVydGljYWxQb3NpdGlvbkNhY2hlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRDNFRUYzQjI1Nzk5RkExMDA2NTYzQkIgLyogVmlkZW9Db25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QjVBM0RBRjI3QUJGOEM1MDA2QzZGOTcgLyogVmlk
ZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0JFMzdGODcyN0JCQjcwODAwN0E2Q0QzIC8q
IFZpZGVvRnJhbWVDVi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFERUVGQjYyNzE5QkExQTAwQ0I4
RDc0IC8qIFZpZGVvRnJhbWVNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFERUVGQjAy
NzE5QjI5MDAwQ0I4RDc0IC8qIFZpZGVvRnJhbWVSZXF1ZXN0Q2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUyQjBENEMwMUM1N0ZENjYwMDc3Q0U1MyAvKiBWaWRlb0Z1bGxzY3JlZW5DaGFu
Z2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9NZWRpYVNhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1w
bGUuaAppbmRleCA4YjNkY2E2MTJjMjNhYTI5ZTNhNGUzNjZhN2Y0NGMxY2E1YzIwMzQ4Li5jODA0
MDg3NDkzMmQ2NTE0NzgwOTIxZjYyY2ZmY2FlOGY2M2NmOTdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01lZGlhU2FtcGxlLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiRmxvYXRTaXplLmgiCi0jaW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJheXMuaD4KICNpbmNsdWRlIDx3dGYvRW51
bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KQEAgLTUwLDcgKzQ5LDcgQEAg
c3RydWN0IFBsYXRmb3JtU2FtcGxlIHsKICAgICAgICAgQ01TYW1wbGVCdWZmZXJUeXBlLAogICAg
ICAgICBHU3RyZWFtZXJTYW1wbGVUeXBlLAogICAgICAgICBCeXRlUmFuZ2VTYW1wbGVUeXBlLAot
ICAgICAgICBSZW1vdGVWaWRlb0ZyYW1lUHJveHlUeXBlLCAvLyBGSVhNRTogVG8gYmUgcmVtb3Zl
ZCB3aGVuIFZpZGVvRnJhbWUgaXMgbm90IE1lZGlhU2FtcGxlLgorICAgICAgICBWaWRlb0ZyYW1l
VHlwZSwgLy8gRklYTUU6IFRvIGJlIHJlbW92ZWQgd2hlbiBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRp
YVNhbXBsZS4KICAgICB9IHR5cGU7CiAgICAgdW5pb24gewogICAgICAgICBjb25zdCBNb2NrU2Ft
cGxlQm94KiBtb2NrU2FtcGxlQm94OwpAQCAtMTA5LDkgKzEwOCw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIFZpZGVvUm90YXRpb24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0IHsgcmV0dXJuIFZpZGVv
Um90YXRpb246Ok5vbmU7IH0KICAgICB2aXJ0dWFsIGJvb2wgdmlkZW9NaXJyb3JlZCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB1aW50MzJfdCB2aWRlb1BpeGVsRm9ybWF0
KCkgY29uc3QgeyByZXR1cm4gMDsgfQotI2lmIGRlZmluZWQoRU5BQkxFX1ZJREVPKSAmJiBFTkFC
TEVfVklERU8KLSAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1l
PiB2aWRlb0ZyYW1lKCkgY29uc3QgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9OwotI2VuZGlmCiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVm
ZmVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9WaWRlb0ZyYW1lLmNwcAppbmRleCBmMDc2OWJhNWU1NGE4ODBiZTYzOTA5YTljZGEwMzI4
N2EzN2QzY2Y0Li5hNTQ5YzFhNWM0OGViMjNkNjRiYTNmZDM1Mzg0MDhiZDE1NTIzNGYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmNwcApAQCAtMjYsMTQgKzI2LDQ0IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVmlkZW9GcmFtZS5oIgogCi0jaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyNpZiBFTkFCTEUoVklERU8pCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotVmlkZW9GcmFtZTo6VmlkZW9GcmFtZSgpID0gZGVmYXVsdDsKK1ZpZGVvRnJhbWU6OlZpZGVv
RnJhbWUoTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWUsIGJvb2wgaXNNaXJyb3JlZCwgVmlkZW9S
b3RhdGlvbiByb3RhdGlvbikKKyAgICA6IG1fcHJlc2VudGF0aW9uVGltZShwcmVzZW50YXRpb25U
aW1lKQorICAgICwgbV9pc01pcnJvcmVkKGlzTWlycm9yZWQpCisgICAgLCBtX3JvdGF0aW9uKHJv
dGF0aW9uKQoreworfQogCiBWaWRlb0ZyYW1lOjp+VmlkZW9GcmFtZSgpID0gZGVmYXVsdDsKIAor
TWVkaWFUaW1lIFZpZGVvRnJhbWU6OnByZXNlbnRhdGlvblRpbWUoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ByZXNlbnRhdGlvblRpbWU7Cit9CisKK01lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
IFZpZGVvRnJhbWU6OnZpZGVvUm90YXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX3JvdGF0
aW9uOworfQorCitib29sIFZpZGVvRnJhbWU6OnZpZGVvTWlycm9yZWQoKSBjb25zdAoreworICAg
IHJldHVybiBtX2lzTWlycm9yZWQ7Cit9CisKK1dlYkNvcmU6OlBsYXRmb3JtU2FtcGxlIFZpZGVv
RnJhbWU6OnBsYXRmb3JtU2FtcGxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyBXZWJDb3JlOjpQ
bGF0Zm9ybVNhbXBsZTo6VmlkZW9GcmFtZVR5cGUsIHsgfSB9OworfQorCitQbGF0Zm9ybVNhbXBs
ZTo6VHlwZSBWaWRlb0ZyYW1lOjpwbGF0Zm9ybVNhbXBsZVR5cGUoKSBjb25zdAoreworICAgIHJl
dHVybiBXZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZTo6VmlkZW9GcmFtZVR5cGU7Cit9CisKIE1lZGlh
VGltZSBWaWRlb0ZyYW1lOjpkZWNvZGVUaW1lKCkgY29uc3QKIHsKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaAppbmRleCBiNjMxZmQxM2Uy
MmUzMTIyNjY1MDAxNGJhZjc4ZGVhOTBjYWE2ZmIyLi5iNTU0NTZmZjk0YWJiNzExZDMyNmYyZDZk
MDk5OWQ2YmQ1YzYwYTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRl
b0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5oCkBAIC0y
NSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyNpZiBFTkFCTEUoVklERU8pCiAKICNpbmNsdWRlICJNZWRpYVNhbXBsZS5oIgogCkBAIC0zOCw4
ICszOCwyNCBAQCBjbGFzcyBWaWRlb0ZyYW1lIDogcHVibGljIE1lZGlhU2FtcGxlIHsKIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB+VmlkZW9GcmFtZSgpOwogCisgICAgLy8gV2ViQ29yZTo6
TWVkaWFTYW1wbGUgb3ZlcnJpZGVzLgorICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhVGltZSBwcmVz
ZW50YXRpb25UaW1lKCkgY29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgVmlkZW9Sb3Rh
dGlvbiB2aWRlb1JvdGF0aW9uKCkgY29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCB2aWRlb01pcnJvcmVkKCkgY29uc3QgZmluYWw7CisgICAgLy8gRklYTUU6IFdoZW4gVmlkZW9G
cmFtZSBpcyBub3QgTWVkaWFTYW1wbGUsIHRoZXNlIHdpbGwgbm90IGJlIG5lZWRlZC4KKyAgICBX
RUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBsZSgpIGNv
bnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtU2FtcGxlOjpUeXBlIHBsYXRm
b3JtU2FtcGxlVHlwZSgpIGNvbnN0IGZpbmFsOworCisgICAgdmlydHVhbCBib29sIGlzUmVtb3Rl
UHJveHkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2lmIFVTRShBVkZPVU5EQVRJT04pCisg
ICAgdmlydHVhbCBib29sIGlzQ1YoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCisK
IHByb3RlY3RlZDoKLSAgICBXRUJDT1JFX0VYUE9SVCBWaWRlb0ZyYW1lKCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgVmlkZW9GcmFtZShNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSwgYm9vbCBpc01p
cnJvcmVkLCBWaWRlb1JvdGF0aW9uKTsKKyAgICBjb25zdCBNZWRpYVRpbWUgbV9wcmVzZW50YXRp
b25UaW1lOworICAgIGNvbnN0IGJvb2wgbV9pc01pcnJvcmVkOworICAgIGNvbnN0IFZpZGVvUm90
YXRpb24gbV9yb3RhdGlvbjsKIAogcHJpdmF0ZToKICAgICAvLyBGSVhNRTogVGhlc2UgYXJlIG5v
dCBpbnRlbmRlZCB0byBiZSB1c2VkIGZvciB0aGVzZSBvYmplY3RzLgpAQCAtNjAsNCArNzYsNyBA
QCBwcml2YXRlOgogCiB9CiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6
VmlkZW9GcmFtZSkKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFT
YW1wbGUmIG1lZGlhU2FtcGxlKSB7IHJldHVybiBtZWRpYVNhbXBsZS5wbGF0Zm9ybVNhbXBsZVR5
cGUoKSA9PSBXZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZTo6VmlkZW9GcmFtZVR5cGU7IH0KK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDZjNjFkNzM3MDg0MWYzODE1MDdi
NzY4MmVmYzhmYmU5YTIxYjNlZjcuLmZkYTVhZDFkOTA3MGNjZjRjNjA4ZWRhYjEyYWY5MGI5NmU4
NmY0MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAKQEAgLTEwODgsNyArMTA4OCw3IEBAIGJvb2wgTWVkaWFQbGF5ZXI6OmNvcHlWaWRl
b1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCogY29udGV4dCwKIAog
I2VuZGlmCiAKLXN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXll
cjo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKK1JlZlB0cjxWaWRlb0ZyYW1lPiBNZWRpYVBs
YXllcjo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICByZXR1cm4gbV9wcml2YXRl
LT52aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDg5MzE3MTU5MjVhMTQ4M2FmYWQwY2Nj
YTE2M2FlMTU5Zjk0NzNiOGEuLmExN2U1ZWU2ZDdkNTA3ZGY1YWE4MGU3NmE5ZmZiNTM1MTM1Yzcw
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aApAQCAtMzQsMTEgKzM0LDExIEBACiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUg
Ik1lZGlhUGxheWVyRW51bXMuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllcklkZW50aWZpZXIuaCIK
LSNpbmNsdWRlICJNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxh
eWVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UZXh0VHJhY2suaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgIlZpZGVvRnJhbWUu
aCIKICNpbmNsdWRlICJWaWRlb0ZyYW1lTWV0YWRhdGEuaCIKICNpbmNsdWRlICJWaWRlb1BsYXli
YWNrUXVhbGl0eU1ldHJpY3MuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Gb3J3YXJkLmg+
CkBAIC00NzEsNyArNDcxLDcgQEAgcHVibGljOgogI2lmICFVU0UoQVZGT1VOREFUSU9OKQogICAg
IGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dEdM
KiwgUGxhdGZvcm1HTE9iamVjdCB0ZXh0dXJlLCBHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2
ZWwsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5
cGUsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBmbGlwWSk7CiAjZW5kaWYKLSAgICBzdGQ6
Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1l
KCk7CisgICAgUmVmUHRyPFZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwog
ICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpOwogICAg
IERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKaW5kZXggZjlm
ZjRjYmYyODY5ZDkzMzEyMGVkZTAwZDAxNWU1YWRkZjQ3ODI5MS4uODA5YmUxNjUzMzIyNzIwNzY0
ZmEwODE2YzgzODhkYzMyYjU4MWQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTI5LDkgKzI5LDkgQEAKIAog
I2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVy
LmgiCi0jaW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSAiTmF0aXZl
SW1hZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlICJWaWRl
b0ZyYW1lLmgiCiAjaW5jbHVkZSA8b3B0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CiAKQEAgLTE4MSw3ICsxODEsNyBAQCBwdWJsaWM6CiAjaWYgIVVTRShBVkZPVU5E
QVRJT04pCiAgICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVy
ZShHcmFwaGljc0NvbnRleHRHTCosIFBsYXRmb3JtR0xPYmplY3QsIEdDR0xlbnVtLCBHQ0dMaW50
LCBHQ0dMZW51bSwgR0NHTGVudW0sIEdDR0xlbnVtLCBib29sLCBib29sKSB7IHJldHVybiBmYWxz
ZTsgfQogI2VuZGlmCi0gICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9G
cmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gc3RkOjpudWxsb3B0OyB9
CisgICAgdmlydHVhbCBSZWZQdHI8VmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1l
KCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgUmVmUHRyPE5hdGl2ZUltYWdlPiBu
YXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1
YWwgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSA9IDA7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhU2FtcGxlVmlkZW9GcmFtZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTYW1wbGVWaWRlb0ZyYW1l
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxNDc0Y2ZiMTNmZmIxMTk2ZDNjMjQw
NTBhMTYyNmI3M2I0ODNlZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTYW1wbGVWaWRl
b0ZyYW1lLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxF
KFZJREVPKQotI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKLQotI2lmIFVTRShBVkZPVU5E
QVRJT04pCi0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCi11c2luZyBDVlBpeGVsQnVmZmVy
UmVmID0gc3RydWN0IF9fQ1ZCdWZmZXIqOwotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lIHsKLXB1YmxpYzoKLSAgICBNZWRpYVNhbXBs
ZVZpZGVvRnJhbWUoKSA9IGRlbGV0ZTsKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFdFQkNP
UkVfRVhQT1JUIE1lZGlhU2FtcGxlVmlkZW9GcmFtZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4mJiwgSW1hZ2VPcmllbnRhdGlvbik7Ci0jZW5kaWYKLQotICAgIEltYWdlT3JpZW50YXRpb24g
b3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX29yaWVudGF0aW9uOyB9Ci0KLSNpZiBVU0Uo
QVZGT1VOREFUSU9OKQotICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIoKSBjb25zdCB7
IHJldHVybiBtX3BpeGVsQnVmZmVyLmdldCgpOyB9Ci0jZW5kaWYKLQotICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBNZWRpYVNhbXBsZVZpZGVvRnJhbWUmIG90aGVyKSBjb25zdDsKLQotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxNZWRpYVNh
bXBsZVZpZGVvRnJhbWU+IGRlY29kZShEZWNvZGVyJik7Ci0KLXByaXZhdGU6Ci0jaWYgVVNFKEFW
Rk9VTkRBVElPTikKLSAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZl
cjsKLSNlbmRpZgotICAgIEltYWdlT3JpZW50YXRpb24gbV9vcmllbnRhdGlvbjsKLX07Ci0KLWlu
bGluZSBib29sIE1lZGlhU2FtcGxlVmlkZW9GcmFtZTo6b3BlcmF0b3I9PShjb25zdCBNZWRpYVNh
bXBsZVZpZGVvRnJhbWUmIG90aGVyKSBjb25zdAotewotI2lmIFVTRShBVkZPVU5EQVRJT04pCi0g
ICAgaWYgKG1fcGl4ZWxCdWZmZXIgIT0gb3RoZXIubV9waXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotI2VuZGlmCi0gICAgcmV0dXJuIEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0
aW9uKG90aGVyLm1fb3JpZW50YXRpb24pID09IEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9u
KG1fb3JpZW50YXRpb24pOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIE1l
ZGlhU2FtcGxlVmlkZW9GcmFtZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0j
aWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBlbmNvZGVyIDw8IG1fcGl4ZWxCdWZmZXI7Ci0gICAg
ZW5jb2RlciA8PCBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbihtX29yaWVudGF0aW9uKTsK
LSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGVuY29kZXIpOwotI2VuZGlmCi19Ci0KLXRlbXBsYXRl
PHR5cGVuYW1lIERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBN
ZWRpYVNhbXBsZVZpZGVvRnJhbWU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotI2lmIFVT
RShBVkZPVU5EQVRJT04pCi0gICAgc3RkOjpvcHRpb25hbDxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4+IHBpeGVsQnVmZmVyOwotICAgIGRlY29kZXIgPj4gcGl4ZWxCdWZmZXI7Ci0gICAgaWYg
KCFwaXhlbEJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBzdGQ6Om9w
dGlvbmFsPEltYWdlT3JpZW50YXRpb246Ok9yaWVudGF0aW9uPiBvcmllbnRhdGlvbjsKLSAgICBk
ZWNvZGVyID4+IG9yaWVudGF0aW9uOwotICAgIGlmICghb3JpZW50YXRpb24pCi0gICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIE1lZGlhU2FtcGxlVmlkZW9GcmFtZSB7IFdU
Rk1vdmUoKnBpeGVsQnVmZmVyKSwgKm9yaWVudGF0aW9uIH07Ci0jZWxzZQotICAgIFVOVVNFRF9Q
QVJBTShkZWNvZGVyKTsKLSAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotI2VuZGlmCi19Ci0KLX0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVt
b3RlVmlkZW9TYW1wbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVt
b3RlVmlkZW9TYW1wbGUuY3BwCmluZGV4IGM1YjJkZGY5ZTZjYzQwOGEwYzhmNjIwMDI5YTFhYjFj
Y2Y3YzEzNGMuLmRhYjZmMmE0MTc3M2E1YjI3ODE1YWIyMGQ0YmQ0NDY5ZDYyYjkyZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1Nh
bXBsZS5jcHAKQEAgLTMxLDcgKzMxLDggQEAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRDRy5o
IgogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRl
ICJNZWRpYVNhbXBsZS5oIgorI2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgorI2luY2x1
ZGUgIlZpZGVvRnJhbWVDVi5oIgogCiAjaWYgVVNFKEFDQ0VMRVJBVEUpCiAjaW5jbHVkZSA8QWNj
ZWxlcmF0ZS9BY2NlbGVyYXRlLmg+CkBAIC04NywxNCArODgsMTkgQEAgc3RhdGljIGlubGluZSBz
dGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiB0cmFuc2ZlckJHUkFQaXhlbEJ1ZmZlclRvSU9TdXJm
YWNlKENWUGkKIAogc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBSZW1vdGVWaWRl
b1NhbXBsZTo6Y3JlYXRlKE1lZGlhU2FtcGxlJiBzYW1wbGUsIFNob3VsZENoZWNrRm9ySU9TdXJm
YWNlIHNob3VsZENoZWNrRm9ySU9TdXJmYWNlKQogewotICAgIEFTU0VSVChzYW1wbGUucGxhdGZv
cm1TYW1wbGUoKS50eXBlID09IFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGUpOwot
Ci0gICAgUmV0YWluUHRyIGltYWdlQnVmZmVyID0gUEFMOjpDTVNhbXBsZUJ1ZmZlckdldEltYWdl
QnVmZmVyKHNhbXBsZS5wbGF0Zm9ybVNhbXBsZSgpLnNhbXBsZS5jbVNhbXBsZUJ1ZmZlcik7Cisg
ICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IGltYWdlQnVmZmVyOworICAgIGlmIChpczxN
ZWRpYVNhbXBsZUFWRk9iakM+KHNhbXBsZSkpCisgICAgICAgIGltYWdlQnVmZmVyID0gZG93bmNh
c3Q8TWVkaWFTYW1wbGVBVkZPYmpDPihzYW1wbGUpLnBpeGVsQnVmZmVyKCk7CisgICAgZWxzZSBp
ZiAoaXM8VmlkZW9GcmFtZUNWPihzYW1wbGUpKQorICAgICAgICBpbWFnZUJ1ZmZlciA9IGRvd25j
YXN0PFZpZGVvRnJhbWVDVj4oc2FtcGxlKS5waXhlbEJ1ZmZlcigpOworICAgIGVsc2UgeworICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGU6
IGNhbm5vdCBvYnRhaW4gQ1ZQaXhlbEJ1ZmZlciBmcm9tIHNhbXBsZS4gVW5rbm93biBzYW1wbGUg
dHlwZS4iKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogICAgIGlmICghaW1hZ2VC
dWZmZXIpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJSZW1vdGVWaWRlb1Nh
bXBsZTo6Y3JlYXRlOiBDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyIHJldHVybmVkIG51bGxw
dHIiKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJSZW1vdGVWaWRlb1NhbXBs
ZTo6Y3JlYXRlOiBjYW5ub3Qgb2J0YWluIENWUGl4ZWxCdWZmZXIgZnJvbSBzYW1wbGUuIE5vIGJ1
ZmZlci4iKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotCiAgICAgc3RkOjp1bmlx
dWVfcHRyPElPU3VyZmFjZT4gaW9TdXJmYWNlOwogICAgIGF1dG8gc3VyZmFjZSA9IENWUGl4ZWxC
dWZmZXJHZXRJT1N1cmZhY2UoaW1hZ2VCdWZmZXIuZ2V0KCkpOwogICAgIGlmICghc3VyZmFjZSAm
JiBzaG91bGRDaGVja0ZvcklPU3VyZmFjZSA9PSBTaG91bGRDaGVja0ZvcklPU3VyZmFjZTo6WWVz
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2FtcGxlVmlkZW9GcmFtZUFWRi5tbQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjQ5NTk4MTJmNjZmY2E3MDU0MTdiMDJhZjU1MWZm
YzEzMWE4NDM2Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTYW1w
bGVWaWRlb0ZyYW1lQVZGLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLQotI2lmIEVOQUJMRShWSURFTykKLSNpbmNsdWRlICJNZWRpYVNhbXBsZVZpZGVvRnJhbWUu
aCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1NZWRpYVNhbXBsZVZpZGVvRnJhbWU6Ok1lZGlh
U2FtcGxlVmlkZW9GcmFtZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiBwaXhlbEJ1ZmZl
ciwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKLSAgICA6IG1fcGl4ZWxCdWZmZXIoV1RG
TW92ZShwaXhlbEJ1ZmZlcikpCi0gICAgLCBtX29yaWVudGF0aW9uKG9yaWVudGF0aW9uKQotewot
fQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDM4Mzc3MmM1MDQ0OTI5
YjllNTE1Nzg0MTZkZWY2NGY4Nzg4MDIzNjQuLjAyZjA5M2E4ZTA5NDYwZmZlZmM4ZjkzYWNhMjNk
MjJjOTYxYmM5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTI2Miw3ICsyNjIsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgdXBkYXRlTGFzdFBpeGVsQnVmZmVyKCk7CiAgICAgYm9vbCB2aWRl
b091dHB1dEhhc0F2YWlsYWJsZUZyYW1lKCk7CiAgICAgdm9pZCBwYWludFdpdGhWaWRlb091dHB1
dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKTsKLSAgICBzdGQ6Om9wdGlvbmFs
PE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7
CisgICAgUmVmUHRyPFZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFs
OwogICAgIFJlZlB0cjxOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZp
bmFsOwogICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkgZmluYWw7CiAgICAg
dm9pZCB3YWl0Rm9yVmlkZW9PdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQppbmRleCBmYTc1MzdmN2RlOWU0YmMzZTNiYTQwYzA4YTFjNWVhMTM4YThkYjAz
Li42YmRhMmZlMGI4YWEzZDI4NWExNmYxMTAxMjUzYTE2ODVjYWVhY2Y4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KQEAgLTY4LDYgKzY4LDcgQEAKICNpbXBvcnQgIlNvdXJjZUJ1ZmZlclBhcnNl
cldlYk0uaCIKICNpbXBvcnQgIlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCiAjaW1wb3J0ICJV
VElVdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlZpZGVvRnJhbWVDVi5oIgogI2ltcG9ydCAiVmlkZW9M
YXllck1hbmFnZXJPYmpDLmgiCiAjaW1wb3J0ICJWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCIK
ICNpbXBvcnQgIldlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5oIgpAQCAtMjcyMCwxMiArMjcyMSwx
MiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBhaW50V2l0aFZp
ZGVvT3V0cHV0KEdyYXBoaWNzQ29udGV4dCYgYwogCiB9CiAKLXN0ZDo6b3B0aW9uYWw8TWVkaWFT
YW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp2aWRl
b0ZyYW1lRm9yQ3VycmVudFRpbWUoKQorUmVmUHRyPFZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCiB7CiAgICAg
dXBkYXRlTGFzdFBpeGVsQnVmZmVyKCk7CiAgICAgaWYgKCFtX2xhc3RQaXhlbEJ1ZmZlcikKLSAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXR1cm4gTWVkaWFTYW1wbGVWaWRlb0Zy
YW1lIHsgUmV0YWluUHRyIHsgbV9sYXN0UGl4ZWxCdWZmZXIgfSwgSW1hZ2VPcmllbnRhdGlvbjo6
Tm9uZSB9OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gVmlkZW9GcmFtZUNW
OjpjcmVhdGUoY3VycmVudE1lZGlhVGltZSgpLCBmYWxzZSwgVmlkZW9GcmFtZUNWOjpWaWRlb1Jv
dGF0aW9uOjpOb25lLCBSZXRhaW5QdHIgeyBtX2xhc3RQaXhlbEJ1ZmZlciB9KTsKIH0KIAogUmVm
UHRyPE5hdGl2ZUltYWdlPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpuYXRp
dmVJbWFnZUZvckN1cnJlbnRUaW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggMjk4
M2NlY2FkZWEyMmUzZjI1NWIwNzljOTZhMmY3ODkxY2QzYTMzMC4uYjllZDZmZmMwOGEzOTJiMjc5
NDE1MGVjYTM4NGQwMzU3YmQ0ZmFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTIy
Miw3ICsyMjIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBkYXRlTGFzdEltYWdlKCk7CiAgICAg
dm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsK
ICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwotICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVW
aWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKKyAgICBSZWZQdHI8
VmlkZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAgICAgRGVzdGlu
YXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UoKSBmaW5hbDsKIAogICAgIGJvb2wgc3VwcG9ydHNB
Y2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCmluZGV4IDFjMzMyNzI1NDZiNGVmOGI3OTc4OGQ5MDUyN2E1MGU1NGQ2ZDQ5ZDMuLjdk
NGMzNzNkMTJkZTJiOGExZDk4Y2E2ZWY1YTYyYzYxYTE2OWYzYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMubW0KQEAgLTM5LDYgKzM5LDcgQEAKICNpbXBvcnQgIk1lZGlhU291cmNlUHJpdmF0
ZUNsaWVudC5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgogI2ltcG9ydCAi
VGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCIKKyNpbXBvcnQgIlZpZGVvRnJhbWVDVi5oIgogI2lt
cG9ydCAiVmlkZW9MYXllck1hbmFnZXJPYmpDLmgiCiAjaW1wb3J0ICJXZWJDb3JlRGVjb21wcmVz
c2lvblNlc3Npb24uaCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0Lmg+CkBAIC03MjUs
NyArNzI2LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBh
aW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ28KICAgICBjb250ZXh0LmRyYXdOYXRp
dmVJbWFnZSgqaW1hZ2UsIGltYWdlUmVjdC5zaXplKCksIG91dHB1dFJlY3QsIGltYWdlUmVjdCk7
CiB9CiAKLXN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCitSZWZQ
dHI8VmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp2aWRl
b0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewogICAgIC8vIFdlIGhhdmUgYmVlbiBhc2tlZCB0byBw
YWludCBpbnRvIGEgV2ViR0wgY2FudmFzLCBzbyB0YWtlIHRoYXQgYXMgYSBzaWduYWwgdG8gY3Jl
YXRlCiAgICAgLy8gYSBkZWNvbXByZXNzaW9uIHNlc3Npb24sIGV2ZW4gaWYgdGhhdCBtZWFucyB0
aGUgbmF0aXZlIHZpZGVvIGNhbid0IGFsc28gYmUgZGlzcGxheWVkCkBAIC03MzgsOCArNzM5LDgg
QEAgc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6dmlkZW8KICAgICBpZiAoIW1faXNHYXRoZXJpbmdWaWRlb0Zy
YW1lTWV0YWRhdGEpCiAgICAgICAgIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpOwogICAgIGlmICgh
bV9sYXN0UGl4ZWxCdWZmZXIpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0
dXJuIE1lZGlhU2FtcGxlVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVy
IH0sIEltYWdlT3JpZW50YXRpb246Ok5vbmUgfTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgcmV0dXJuIFZpZGVvRnJhbWVDVjo6Y3JlYXRlKGN1cnJlbnRNZWRpYVRpbWUoKSwgZmFsc2Us
IFZpZGVvRnJhbWVDVjo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSwgUmV0YWluUHRyIHsgbV9sYXN0UGl4
ZWxCdWZmZXIgfSk7CiB9CiAKIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmNvbG9yU3BhY2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aAppbmRleCA1MTZkY2RhOTY4NjdmNzU5ZmFjNWUyMDQwOTI3NWNjMDg5YzBiMzE4Li5mZjUxZmNh
Nzc2Zjg5N2Y1NjU0NDUzODQ3YjBhMWVkODQ4Y2MzNGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMuaApAQCAtMTQzLDcgKzE0Myw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBhaW50KEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGFpbnRD
dXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikg
b3ZlcnJpZGU7Ci0gICAgc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVv
RnJhbWVGb3JDdXJyZW50VGltZSgpIG92ZXJyaWRlOworICAgIFJlZlB0cjxWaWRlb0ZyYW1lPiB2
aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBvdmVycmlkZTsKICAgICBEZXN0aW5hdGlvbkNvbG9y
U3BhY2UgY29sb3JTcGFjZSgpIG92ZXJyaWRlOwogICAgIGJvb2wgbWV0YURhdGFBdmFpbGFibGUo
KSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtUHJpdmF0ZSAmJiBtX3JlYWR5U3RhdGUgPj0g
TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMubW0KaW5kZXggNDJmZDE3NDg3ZWE2Y2QxNzEwNTA1MDVmZjVmM2ZmNWVkZmJlN2Ux
NS4uMjVmYWQ5MDkxMGFiNWU0YjNlZWYwOWRiNDdlNjlmNmUxYjgwMmUyMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbQpAQCAtMzAsOSArMzAsMTAgQEAKIAogI2ltcG9ydCAiQXVkaW9UcmFj
a1ByaXZhdGVNZWRpYVN0cmVhbS5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKLSNp
bXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIkxvY2FsU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
LmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYVBsYXllci5oIgorI2ltcG9y
dCAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJNZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2EuaCIKICNpbXBvcnQgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgogI2ltcG9ydCAiUGl4ZWxCdWZm
ZXJDb25mb3JtZXJDVi5oIgpAQCAtMTAyMiwxNSArMTAyMywxOCBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3Jh
cGhpY3NDbwogICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKCppbWFnZSwgaW1hZ2VSZWN0LnNp
emUoKSwgdHJhbnNmb3JtZWREZXN0UmVjdCwgaW1hZ2VSZWN0KTsKIH0KIAotc3RkOjpvcHRpb25h
bDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkKK1JlZlB0cjxWaWRlb0ZyYW1lPiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSgpCiB7CiAgICAgaWYgKG1fZGlzcGxheU1vZGUgPT0gTm9uZSB8fCAhbWV0YURhdGFBdmFpbGFi
bGUoKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgaWYgKG1fZGlzcGxheU1vZGUgPT0gUGFpbnRJdEJsYWNrKQotICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIW1faW1h
Z2VQYWludGVyLm1lZGlhU2FtcGxlKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAg
IHJldHVybiBtX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZS0+dmlkZW9GcmFtZSgpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoaXM8VmlkZW9GcmFtZT4oKm1faW1hZ2VQYWludGVy
Lm1lZGlhU2FtcGxlKSkKKyAgICAgICAgcmV0dXJuICZkb3duY2FzdDxWaWRlb0ZyYW1lPigqbV9p
bWFnZVBhaW50ZXIubWVkaWFTYW1wbGUpOworICAgIEFTU0VSVChpczxNZWRpYVNhbXBsZUFWRk9i
akM+KCptX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZSkpOworICAgIHJldHVybiBkb3duY2FzdDxN
ZWRpYVNhbXBsZUFWRk9iakM+KCptX2ltYWdlUGFpbnRlci5tZWRpYVNhbXBsZSkudmlkZW9GcmFt
ZSgpOwogfQogCiBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjpjb2xvclNwYWNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFT
YW1wbGVBVkZPYmpDLmgKaW5kZXggYWMyN2EyMGI3ZDBhZDViMGFjY2E4M2MwMTI2ZTI2NzMwY2Nj
ZmU3ZC4uZjY4MmFhMmM3YzRhMzViOTc4NzYzNDg1NTVlYjQ0ZjIyMDQzYWMzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFTYW1wbGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKQEAgLTM3LDYgKzM3LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGcmFnbWVudGVkU2hhcmVkQnVmZmVyOwogY2xh
c3MgUGl4ZWxCdWZmZXI7CitjbGFzcyBWaWRlb0ZyYW1lQ1Y7CiAKIGNsYXNzIE1lZGlhU2FtcGxl
QVZGT2JqQyA6IHB1YmxpYyBNZWRpYVNhbXBsZSB7CiBwdWJsaWM6CkBAIC03NCw3ICs3NSw2IEBA
IHB1YmxpYzoKICAgICBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX3JvdGF0aW9uOyB9CiAgICAgYm9vbCB2aWRlb01pcnJvcmVkKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9taXJyb3JlZDsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHVpbnQz
Ml90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZSgpIGNvbnN0IGZp
bmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIoKSBj
b25zdCBmaW5hbDsKICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIoKSBjb25zdCB7
IHJldHVybiBtX3NhbXBsZS5nZXQoKTsgfQogCkBAIC05MCw2ICs5MCw4IEBAIHB1YmxpYzoKICAg
ICBLZXlJRHMmIGtleUlEcygpIHsgcmV0dXJuIG1fa2V5SURzOyB9CiAjZW5kaWYKIAorICAgIC8v
IEZJWE1FOiBUbyBiZSByZW1vdmVkIG9uY2UgVmlkZW9GcmFtZSBpcyBub3QgYSBNZWRpYVNhbXBs
ZS4KKyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8VmlkZW9GcmFtZUNWPiB2aWRlb0ZyYW1lKCkg
Y29uc3Q7CiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgTWVkaWFTYW1wbGVBVkZPYmpD
KFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgTWVk
aWFTYW1wbGVBVkZPYmpDKENNU2FtcGxlQnVmZmVyUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZG
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQppbmRleCA1MDA0MzQwZmVmNDllNDJlYjJmZGY4MzRm
ZmMyNzkxNTNmNTgxNGU3Li42MTAzMDU4NjQ1YWQ2N2ZlYjY4ZGY3NjM2NDQxNjU2MzQ1Y2I0OTc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpbXBvcnQgIlBpeGVsQnVmZmVyLmgiCiAjaW1wb3J0ICJQaXhlbEJ1
ZmZlckNvbmZvcm1lckNWLmgiCisjaW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIKICNpbXBvcnQgPEph
dmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL1R5cGVk
QXJyYXlJbmxpbmVzLmg+CiAjaW1wb3J0IDx3dGYvUHJpbnRTdHJlYW0uaD4KQEAgLTE2NSwyNSAr
MTY2LDE0IEBAIHVpbnQzMl90IE1lZGlhU2FtcGxlQVZGT2JqQzo6dmlkZW9QaXhlbEZvcm1hdCgp
IGNvbnN0CiAgICAgcmV0dXJuIENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxC
dWZmZXIpOwogfQogCi1zdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gTWVkaWFT
YW1wbGVBVkZPYmpDOjp2aWRlb0ZyYW1lKCkgY29uc3QKK1JlZlB0cjxWaWRlb0ZyYW1lQ1Y+IE1l
ZGlhU2FtcGxlQVZGT2JqQzo6dmlkZW9GcmFtZSgpIGNvbnN0CiB7CisgICAgaWYgKCFtX3NhbXBs
ZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0YXRp
Y19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZl
cihtX3NhbXBsZS5nZXQoKSkpOwogICAgIGlmICghcGl4ZWxCdWZmZXIpCi0gICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7Ci0gICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IFsmXSB7
Ci0gICAgICAgIC8vIFNhbXBsZSB0cmFuc2Zvcm0gZmlyc3QgZmxpcHMgeC1jb29yZGluYXRlcywg
dGhlbiByb3RhdGVzLgotICAgICAgICBzd2l0Y2ggKG1fcm90YXRpb24pIHsKLSAgICAgICAgY2Fz
ZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZToKLSAgICAgICAgICAgIHJldHVybiBt
X21pcnJvcmVkID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luVG9wUmlnaHQgOiBJbWFnZU9yaWVu
dGF0aW9uOjpPcmlnaW5Ub3BMZWZ0OwotICAgICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1Jv
dGF0aW9uOjpSaWdodDoKLSAgICAgICAgICAgIHJldHVybiBtX21pcnJvcmVkID8gSW1hZ2VPcmll
bnRhdGlvbjo6T3JpZ2luUmlnaHRCb3R0b20gOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdo
dFRvcDsKLSAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRlRG93
bjoKLSAgICAgICAgICAgIHJldHVybiBtX21pcnJvcmVkID8gSW1hZ2VPcmllbnRhdGlvbjo6T3Jp
Z2luQm90dG9tTGVmdCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbVJpZ2h0OwotICAg
ICAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0OgotICAgICAgICAgICAg
cmV0dXJuIG1fbWlycm9yZWQgPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0VG9wIDogSW1h
Z2VPcmllbnRhdGlvbjo6T3JpZ2luTGVmdEJvdHRvbTsKLSAgICAgICAgfQotICAgIH0oKTsKLSAg
ICByZXR1cm4gTWVkaWFTYW1wbGVWaWRlb0ZyYW1lIHsgUmV0YWluUHRyIHsgcGl4ZWxCdWZmZXIg
fSwgb3JpZW50YXRpb24gfTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFZp
ZGVvRnJhbWVDVjo6Y3JlYXRlKHByZXNlbnRhdGlvblRpbWUoKSwgbV9taXJyb3JlZCwgbV9yb3Rh
dGlvbiwgUmV0YWluUHRyIHsgcGl4ZWxCdWZmZXIgfSk7CiB9CiAKIHN0YXRpYyBib29sIGlzQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50UmFuZG9tQWNjZXNzKENGRGljdGlvbmFyeVJlZiBhdHRhY2ht
ZW50RGljdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IDQ3ZDcxMDYxMTFj
NWI2MWNjYjQ1YzI3YTBkMWYzNDRhMWE1MWMwZjQuLmEwYmZjZjI3Mjk1MTZlMjRlNmM5OWIyMGE2
NDUyM2M3Y2U4OWRjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQpAQCAtMzgs
NiArMzgsNyBAQAogI2ltcG9ydCAiUGl4ZWxCdWZmZXIuaCIKICNpbXBvcnQgIlByb2Nlc3NJZGVu
dGl0eS5oIgogI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCisjaW1wb3J0ICJW
aWRlb0ZyYW1lQ1YuaCIKICNpbXBvcnQgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRleHQuaD4K
ICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL01ldGFsU1BJ
Lmg+CkBAIC03ODIsNiArNzgzLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjb3B5
VGV4dHVyZUZyb21NZWRpYShNZWRpYVBsYXllciYgcGxheWVyLCBQbGF0Zm9ybUcKICAgICBhdXRv
IHZpZGVvRnJhbWUgPSBwbGF5ZXIudmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiAgICAgaWYg
KCF2aWRlb0ZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUKGlzPFZpZGVv
RnJhbWVDVj4oKnZpZGVvRnJhbWUpKTsKIAogICAgIGF1dG8gY29udGV4dENWID0gYXNDVigpOwog
ICAgIGlmICghY29udGV4dENWKQpAQCAtNzg5LDcgKzc5MSw3IEBAIGJvb2wgR3JhcGhpY3NDb250
ZXh0R0xDb2NvYTo6Y29weVRleHR1cmVGcm9tTWVkaWEoTWVkaWFQbGF5ZXImIHBsYXllciwgUGxh
dGZvcm1HCiAKICAgICBVTlVTRURfVkFSSUFCTEUocHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgQVNT
RVJUX1VOVVNFRChvdXRwdXRUYXJnZXQsIG91dHB1dFRhcmdldCA9PSBHcmFwaGljc0NvbnRleHRH
TDo6VEVYVFVSRV8yRCk7Ci0gICAgcmV0dXJuIGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9U
ZXh0dXJlKCp2aWRlb0ZyYW1lLCBvdXRwdXRUZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQs
IGZvcm1hdCwgdHlwZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSk7CisgICAgcmV0
dXJuIGNvbnRleHRDVi0+Y29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKGRvd25jYXN0PFZpZGVvRnJh
bWVDVj4oKnZpZGVvRnJhbWUpLCBvdXRwdXRUZXh0dXJlLCBsZXZlbCwgaW50ZXJuYWxGb3JtYXQs
IGZvcm1hdCwgdHlwZSwgR3JhcGhpY3NDb250ZXh0R0w6OkZsaXBZKGZsaXBZKSk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3Jh
cGhpY3NDb250ZXh0R0xDVi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
R3JhcGhpY3NDb250ZXh0R0xDVi5oCmluZGV4IGFjMTQ3NWU5ZGEzNmVkMTQxMzUyMmU5NjkxMjJi
NjMxZTMxOTNlZmEuLmM2MDJmYmViNzI5NjhkYWY2NDIxN2YwMWY5NTBhMjRhN2M1YmY4ZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29u
dGV4dEdMQ1YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWLmgKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHRHTC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBNZWRpYVNhbXBsZVZpZGVv
RnJhbWU7CitjbGFzcyBWaWRlb0ZyYW1lQ1Y7CiAKIC8vIEludGVyZmFjZSB0byBpbnRlcmFjdCB3
aXRoIENWIG9iamVjdHMgYW5kIEdyYXBoaWNzQ29udGV4dEdMLgogY2xhc3MgR3JhcGhpY3NDb250
ZXh0R0xDViB7CkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBGbGlwWSA9IEdy
YXBoaWNzQ29udGV4dEdMOjpGbGlwWTsKICAgICAvLyBDb3BpZXMgQ1YgcGl4ZWwgYnVmZmVyIHRv
IEdyYXBoaWNzQ29udGV4dEdMIFRFWFRVUkVfMkQgdGV4dHVyZSBvZiB0aGUgc2FtZSBzaXplIGFz
IHRoZSBwaXhlbCBidWZmZXIuCiAgICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCi0gICAg
dmlydHVhbCBib29sIGNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShjb25zdCBNZWRpYVNhbXBsZVZp
ZGVvRnJhbWUmLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xpbnQgbGV2ZWws
IEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUs
IEZsaXBZKSA9IDA7CisgICAgdmlydHVhbCBib29sIGNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShj
b25zdCBWaWRlb0ZyYW1lQ1YmLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdDR0xp
bnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xl
bnVtIHR5cGUsIEZsaXBZKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29h
LmNwcAppbmRleCBhODNjZmEyOTU3MDg2MGYzMzkzNGEzODcyODZkNjliNTI4MDRhNTAyLi40MmY0
ZDNkMzA2YzJiNDlmZDg1ZjgxM2M0MzJjOGFkMTFmNTcwNTM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4
dEdMQ1ZDb2NvYS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJGb3VyQ0MuaCIKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHRHTENvY29hLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIlZpZGVvRnJhbWVDVi5oIgogI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ29yZVZpZGVv
U1BJLmg+CiAjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9JT1N1cmZhY2VTUEkuaD4KICNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTU4Niw3ICs1ODcsNyBAQCBHcmFwaGljc0NvbnRl
eHRHTENWQ29jb2E6OkdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYShHcmFwaGljc0NvbnRleHRHTENv
Y29hJiBvd25lcgogICAgIEdMX0JpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mcmFt
ZWJ1ZmZlcik7CiB9CiAKLWJvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5VmlkZW9T
YW1wbGVUb1RleHR1cmUoY29uc3QgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lJiB2aWRlb0ZyYW1lLCBQ
bGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJu
YWxGb3JtYXQsIEdMZW51bSBmb3JtYXQsIEdMZW51bSB0eXBlLCBGbGlwWSB1bnBhY2tGbGlwWSkK
K2Jvb2wgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOjpjb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUo
Y29uc3QgVmlkZW9GcmFtZUNWJiB2aWRlb0ZyYW1lLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRl
eHR1cmUsIEdMaW50IGxldmVsLCBHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdMZW51bSBmb3JtYXQs
IEdMZW51bSB0eXBlLCBGbGlwWSB1bnBhY2tGbGlwWSkKIHsKICAgICBhdXRvIGltYWdlID0gdmlk
ZW9GcmFtZS5waXhlbEJ1ZmZlcigpOwogICAgIC8vIEZJWE1FOiBUaGlzIGN1cnJlbnRseSBvbmx5
IHN1cHBvcnRzICc0MjB2JyBhbmQgJzQyMGYnIHBpeGVsIGZvcm1hdHMuIEludmVzdGlnYXRlIHN1
cHBvcnRpbmcgbW9yZSBwaXhlbCBmb3JtYXRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaApp
bmRleCA3N2RlZGQ0ODcyOTExOTYxMTM1N2JiZGRiNmNjNjhjMzg4OWJiMDAxLi4wNmE5OTVkNjIx
NTYxN2M4N2I4MTQwNDZlYTQwNzY3NGU4NzAyYjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29j
b2EuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAKICAgICB+R3JhcGhpY3NDb250ZXh0R0xD
VkNvY29hKCkgZmluYWw7CiAKLSAgICBib29sIGNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShjb25z
dCBNZWRpYVNhbXBsZVZpZGVvRnJhbWUmLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1cmUs
IEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3JtYXQs
IEdDR0xlbnVtIHR5cGUsIEZsaXBZKSBmaW5hbDsKKyAgICBib29sIGNvcHlWaWRlb1NhbXBsZVRv
VGV4dHVyZShjb25zdCBWaWRlb0ZyYW1lQ1YmLCBQbGF0Zm9ybUdMT2JqZWN0IG91dHB1dFRleHR1
cmUsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsRm9ybWF0LCBHQ0dMZW51bSBmb3Jt
YXQsIEdDR0xlbnVtIHR5cGUsIEZsaXBZKSBmaW5hbDsKIAogICAgIHZvaWQgaW52YWxpZGF0ZUtu
b3duVGV4dHVyZUNvbnRlbnQoR0NHTHVpbnQgdGV4dHVyZSk7CiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44MzFjODgwMmNjOGM4MzM5MzQ0ZmIwZDc0ZTFkYjNmZDNiZGRmN2RhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNW
LmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQorCisjaW5jbHVkZSAiSW1hZ2VPcmllbnRh
dGlvbi5oIgorI2luY2x1ZGUgIlZpZGVvRnJhbWUuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRy
Lmg+CisKK3VzaW5nIENWUGl4ZWxCdWZmZXJSZWYgPSBzdHJ1Y3QgX19DVkJ1ZmZlcio7CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVmlkZW9GcmFtZUNWIDogcHVibGljIFZpZGVvRnJh
bWUgeworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8VmlkZW9GcmFtZUNW
PiBjcmVhdGUoTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWUsIGJvb2wgaXNNaXJyb3JlZCwgVmlk
ZW9Sb3RhdGlvbiwgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYpOworICAgIFdFQkNPUkVf
RVhQT1JUIH5WaWRlb0ZyYW1lQ1YoKTsKKworICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIoKSBjb25zdCB7IHJldHVybiBtX3BpeGVsQnVmZmVyLmdldCgpOyB9CisgICAgSW1hZ2VPcmll
bnRhdGlvbiBvcmllbnRhdGlvbigpIGNvbnN0OworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxWaWRlb0ZyYW1lQ1Y+PiBkZWNv
ZGUoRGVjb2RlciYpOworCisgICAgLy8gVmlkZW9GcmFtZSBvdmVycmlkZXMuCisgICAgV2ViQ29y
ZTo6RmxvYXRTaXplIHByZXNlbnRhdGlvblNpemUoKSBjb25zdCBmaW5hbDsKKyAgICB1aW50MzJf
dCB2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBpc0NWKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCitwcml2YXRlOgorICAgIFdFQkNPUkVfRVhQT1JUIFZp
ZGVvRnJhbWVDVihNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSwgYm9vbCBpc01pcnJvcmVkLCBW
aWRlb1JvdGF0aW9uLCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJik7CisKKyAgICBjb25z
dCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlcjsKK307CisKK3RlbXBs
YXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgVmlkZW9GcmFtZUNWOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fcHJlc2VudGF0aW9uVGltZSA8PCBt
X2lzTWlycm9yZWQgPDwgbV9yb3RhdGlvbiA8PCBtX3BpeGVsQnVmZmVyOworfQorCit0ZW1wbGF0
ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxWaWRlb0ZyYW1lQ1Y+PiBW
aWRlb0ZyYW1lQ1Y6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGF1dG8gcHJlc2Vu
dGF0aW9uVGltZSA9IGRlY29kZXIudGVtcGxhdGUgZGVjb2RlPE1lZGlhVGltZT4oKTsKKyAgICBh
dXRvIGlzTWlycm9yZWQgPSBkZWNvZGVyLnRlbXBsYXRlIGRlY29kZTxib29sPigpOworICAgIGF1
dG8gcm90YXRpb24gPSBkZWNvZGVyLnRlbXBsYXRlIGRlY29kZTxWaWRlb1JvdGF0aW9uPigpOwor
ICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBkZWNvZGVyLnRlbXBsYXRlIGRlY29kZTxSZXRhaW5QdHI8
Q1ZQaXhlbEJ1ZmZlclJlZj4+KCk7CisgICAgaWYgKCFkZWNvZGVyLmlzVmFsaWQoKSB8fCAhKnBp
eGVsQnVmZmVyKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJldHVybiBWaWRl
b0ZyYW1lQ1Y6OmNyZWF0ZSgqcHJlc2VudGF0aW9uVGltZSwgKmlzTWlycm9yZWQsICpyb3RhdGlv
biwgV1RGTW92ZSgqcGl4ZWxCdWZmZXIpKTsKK30KKworfQorCitTUEVDSUFMSVpFX1RZUEVfVFJB
SVRTX0JFR0lOKFdlYkNvcmU6OlZpZGVvRnJhbWVDVikKKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUo
Y29uc3QgV2ViQ29yZTo6VmlkZW9GcmFtZSYgdmlkZW9GcmFtZSkgeyByZXR1cm4gdmlkZW9GcmFt
ZS5pc0NWKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFT
YW1wbGUmIG1lZGlhU2FtcGxlKSB7IHJldHVybiBpczxXZWJDb3JlOjpWaWRlb0ZyYW1lPihtZWRp
YVNhbXBsZSkgJiYgaXM8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPihkb3duY2FzdDxXZWJDb3JlOjpW
aWRlb0ZyYW1lPihtZWRpYVNhbXBsZSkpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgp
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvVmlkZW9GcmFtZUNWLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3Yv
VmlkZW9GcmFtZUNWLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1YTZkMDgyYmJlNDJjMzE3M2FiYzFmYTg4MTJl
NDQxY2FjNmY2ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YubW0KQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWaWRlb0ZyYW1lQ1YuaCIKKworI2lmIEVO
QUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKKyNpbmNsdWRlICJDb3JlVmlkZW9Tb2Z0
TGluay5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxWaWRlb0ZyYW1lQ1Y+IFZpZGVv
RnJhbWVDVjo6Y3JlYXRlKE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lLCBib29sIGlzTWlycm9y
ZWQsIFZpZGVvUm90YXRpb24gcm90YXRpb24sIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYm
IHBpeGVsQnVmZmVyKQoreworICAgIEFTU0VSVChwaXhlbEJ1ZmZlcik7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgVmlkZW9GcmFtZUNWKHByZXNlbnRhdGlvblRpbWUsIGlzTWlycm9yZWQsIHJv
dGF0aW9uLCBXVEZNb3ZlKHBpeGVsQnVmZmVyKSkpOworfQorCitWaWRlb0ZyYW1lQ1Y6OlZpZGVv
RnJhbWVDVihNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSwgYm9vbCBpc01pcnJvcmVkLCBWaWRl
b1JvdGF0aW9uIHJvdGF0aW9uLCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiBwaXhlbEJ1
ZmZlcikKKyAgICA6IFZpZGVvRnJhbWUocHJlc2VudGF0aW9uVGltZSwgaXNNaXJyb3JlZCwgcm90
YXRpb24pCisgICAgLCBtX3BpeGVsQnVmZmVyKFdURk1vdmUocGl4ZWxCdWZmZXIpKQoreworfQor
CitWaWRlb0ZyYW1lQ1Y6On5WaWRlb0ZyYW1lQ1YoKSA9IGRlZmF1bHQ7CisKK1dlYkNvcmU6OkZs
b2F0U2l6ZSBWaWRlb0ZyYW1lQ1Y6OnByZXNlbnRhdGlvblNpemUoKSBjb25zdAoreworICAgIHJl
dHVybiB7IHN0YXRpY19jYXN0PGZsb2F0PihDVlBpeGVsQnVmZmVyR2V0V2lkdGgobV9waXhlbEJ1
ZmZlci5nZXQoKSkpLCBzdGF0aWNfY2FzdDxmbG9hdD4oQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodCht
X3BpeGVsQnVmZmVyLmdldCgpKSkgfTsKK30KKwordWludDMyX3QgVmlkZW9GcmFtZUNWOjp2aWRl
b1BpeGVsRm9ybWF0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gQ1ZQaXhlbEJ1ZmZlckdldFBpeGVs
Rm9ybWF0VHlwZShtX3BpeGVsQnVmZmVyLmdldCgpKTsKK30KKworSW1hZ2VPcmllbnRhdGlvbiBW
aWRlb0ZyYW1lQ1Y6Om9yaWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICAvLyBTYW1wbGUgdHJhbnNm
b3JtIGZpcnN0IGZsaXBzIHgtY29vcmRpbmF0ZXMsIHRoZW4gcm90YXRlcy4KKyAgICBzd2l0Y2gg
KG1fcm90YXRpb24pIHsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25l
OgorICAgICAgICByZXR1cm4gbV9pc01pcnJvcmVkID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2lu
VG9wUmlnaHQgOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Ub3BMZWZ0OworICAgIGNhc2UgTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0OgorICAgICAgICByZXR1cm4gbV9pc01pcnJv
cmVkID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRCb3R0b20gOiBJbWFnZU9yaWVudGF0
aW9uOjpPcmlnaW5SaWdodFRvcDsKKyAgICBjYXNlIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
OjpVcHNpZGVEb3duOgorICAgICAgICByZXR1cm4gbV9pc01pcnJvcmVkID8gSW1hZ2VPcmllbnRh
dGlvbjo6T3JpZ2luQm90dG9tTGVmdCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkJvdHRvbVJp
Z2h0OworICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQ6CisgICAgICAg
IHJldHVybiBtX2lzTWlycm9yZWQgPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0VG9wIDog
SW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luTGVmdEJvdHRvbTsKKyAgICB9Cit9CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCAwNGNhMTBlMThmMTUwODE1ZjNmZDY5
M2ZmYjMyNjk1MzQyMjdkOTZhLi40YTY3YzVkMTZlNWEwZmY5Zjk4N2ZkMjQzYTJkYjk1OGQzZGUy
YThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTI4Nyw3ICsyODcsNyBAQCB2b2lk
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpN
ZWRpYVBsYXllcklkZW50aWZpZQogICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhh
KTsKICAgICBBU1NFUlRfVU5VU0VEKHRhcmdldCwgdGFyZ2V0ID09IEdyYXBoaWNzQ29udGV4dEdM
OjpURVhUVVJFXzJEKTsKIAotICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1l
PiB2aWRlb0ZyYW1lOworICAgIFJlZlB0cjxWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lOwogICAgIGF1
dG8gZ2V0VmlkZW9GcmFtZSA9IFsmXSB7CiAgICAgICAgIGlmICghbV9ncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQg
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1l
ZGlhUGxheWVySWRlbnRpZmllCiAKICAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoV1RGTW92
ZShnZXRWaWRlb0ZyYW1lKSk7CiAKLSAgICBpZiAoIXZpZGVvRnJhbWUpIHsKKyAgICBpZiAoIXZp
ZGVvRnJhbWUgfHwgIWlzPFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpKSB7CiAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMwOSw3
ICszMDksNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21N
ZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1Rl
eHR1cmUoKnZpZGVvRnJhbWUsIHRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwgZm9ybWF0
LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKSk7CisgICAgY29tcGxldGlv
bkhhbmRsZXIoY29udGV4dENWLT5jb3B5VmlkZW9TYW1wbGVUb1RleHR1cmUoZG93bmNhc3Q8Vmlk
ZW9GcmFtZUNWPigqdmlkZW9GcmFtZSksIHRleHR1cmUsIGxldmVsLCBpbnRlcm5hbEZvcm1hdCwg
Zm9ybWF0LCB0eXBlLCBHcmFwaGljc0NvbnRleHRHTDo6RmxpcFkoZmxpcFkpKSk7CiAjZWxzZQog
ICAgIFVOVVNFRF9WQVJJQUJMRShtZWRpYVBsYXllcklkZW50aWZpZXIpOwogICAgIFVOVVNFRF9W
QVJJQUJMRSh0ZXh0dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCA3MTFjZWQwYmYxMzE0MjU5
MTc3NWZmZDc5M2FlNWE4NmM2YWUwY2ZlLi5jZDJjNTFiYmQzMmUyOGMyZmU0MzQ2ZTlmMjYzNTAx
ODllZWE2NjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC02Nyw2ICs2Nyw3IEBACiAKICNpZiBQ
TEFURk9STShDT0NPQSkKICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0ZyYW1lQ1YuaD4KICNlbmRpZgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTEwNyw3ICsxMDgsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OmludmFsaWRhdGUoKQogICAgIH0KICAgICBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVl
c3QgPSB7IH07CiAjaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBtX3ZpZGVvRnJhbWVGb3JDdXJy
ZW50VGltZSA9IHN0ZDo6bnVsbG9wdDsKKyAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9
IG51bGxwdHI7CiAjZW5kaWYKIH0KIApAQCAtODY3LDIwICs4NjgsMjggQEAgdm9pZCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpjdXJyZW50VGltZUNoYW5nZWQoY29uc3QgTWVkaWFUaW1lJiBtZWRp
YVRpbWUpCiAgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOjpDdXJyZW50VGltZUNoYW5nZWQobWVkaWFUaW1lLCBNb25vdG9u
aWNUaW1lOjpub3coKSwgIW1lZGlhUGxheWVyUGF1c2VkT3JTdGFsbGVkKCkpLCBtX2lkKTsKIH0K
IAotdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJ
ZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlVmlkZW9GcmFtZT4mJiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisvLyBG
SVhNRTogVGhpcyB3aWxsIGJlIHR1cm5lZCBpbnRvIGNyb3NzLXBsYXRmb3JtIGNvZGUgc29vbi4K
KyNpZiBQTEFURk9STShDT0NPQSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6dmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPj4mJiwgYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZp
ZGVvRnJhbWU+IHJlc3VsdDsKKyAgICBzdGQ6Om9wdGlvbmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRl
b0ZyYW1lQ1Y+PiByZXN1bHQ7CiAgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7Ci0gICAgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWU7CisgICAg
UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWU+IHZpZGVvRnJhbWU7CiAgICAgaWYgKG1fcGxheWVy
KQogICAgICAgICB2aWRlb0ZyYW1lID0gbV9wbGF5ZXItPnZpZGVvRnJhbWVGb3JDdXJyZW50VGlt
ZSgpOwotICAgIGlmICghKG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID09IHZpZGVvRnJhbWUp
KSB7CisgICAgaWYgKG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lICE9IHZpZGVvRnJhbWUpIHsK
ICAgICAgICAgbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSB2aWRlb0ZyYW1lOwogICAgICAg
ICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgcmVzdWx0ID0gV1RGTW92ZSh2aWRlb0ZyYW1lKTsK
KyAgICAgICAgUmVmUHRyPFZpZGVvRnJhbWVDVj4gdmlkZW9GcmFtZUNWOworICAgICAgICBpZiAo
dmlkZW9GcmFtZSkgeworICAgICAgICAgICAgQVNTRVJUKGlzPFZpZGVvRnJhbWVDVj4oKnZpZGVv
RnJhbWUpKTsKKyAgICAgICAgICAgIHZpZGVvRnJhbWVDViA9ICZkb3duY2FzdDxWaWRlb0ZyYW1l
Q1Y+KCp2aWRlb0ZyYW1lKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQgPSBXVEZNb3ZlKHZp
ZGVvRnJhbWVDVik7CiAgICAgfQogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0
KSwgY2hhbmdlZCk7CiB9CisjZW5kaWYKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp1
cGRhdGVDYWNoZWRTdGF0ZShib29sIGZvcmNlQ3VycmVudFRpbWVVcGRhdGUpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaAppbmRleCA1OTVjNTg5MTllYTEzZmViOTVkOGZjMGQwYjQzMjMwNjhhODJhMGJhLi5hYzEx
OGY2NzgyY2E2ODY3MzhmMjU1Nzc1ODM4MDQ5MDM5MTUyODAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAg
LTc4LDYgKzc4LDEyIEBAIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OwogY2xhc3Mg
VmlkZW9UcmFja1ByaXZhdGU7CiAKIHN0cnVjdCBGb3VyQ0M7CisKK2NsYXNzIFZpZGVvRnJhbWU7
CisKKyNpZiBQTEFURk9STShDT0NPQSkKK2NsYXNzIFZpZGVvRnJhbWVDVjsKKyNlbmRpZgogfQog
CiAjaWYgVVNFKEFWRk9VTkRBVElPTikKQEAgLTMyNyw4ICszMzMsOCBAQCBwcml2YXRlOgogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V1RGOjpNYWNoU2VuZFJpZ2h0PiYmLCBX
ZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UpPiYmKTsKICAgICB2b2lkIGNvbG9yU3BhY2Uo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UpPiYm
KTsKKyAgICB2b2lkIHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWVDVj4+
JiYsIGJvb2wpPiYmKTsKICNlbmRpZgotICAgIHZvaWQgdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1l
SWZDaGFuZ2VkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpN
ZWRpYVNhbXBsZVZpZGVvRnJhbWU+JiYsIGJvb2wpPiYmKTsKIAogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKSBmaW5hbCB7IHJl
dHVybiBtX2xvZ2dlcjsgfQpAQCAtMzg0LDcgKzM5MCw3IEBAIHByaXZhdGU6CiAgICAgU2NvcGVk
UmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdCBtX3JlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3Q7CiAK
ICAgICBib29sIG1fb2JzZXJ2aW5nVGltZUNoYW5nZXMgeyBmYWxzZSB9OwotICAgIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVGb3JDdXJy
ZW50VGltZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9y
Q3VycmVudFRpbWU7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2Vy
JiBtX2xvZ2dlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgppbmRl
eCA0ZTRmZWNhMjgzMWE0Y2QzZTNhOWJlNzkyYWIyMDViMWUxM2VkMjYyLi5jYzEzN2FkZTUxOWJj
NmQ0NzA3NTZjZjU3MDFkMDQ2NmUxNWRkNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNz
YWdlcy5pbgpAQCAtMTI1LDggKzEyNSw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVy
UHJveHkgTm90UmVmQ291bnRlZCB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgTmF0aXZlSW1h
Z2VGb3JDdXJyZW50VGltZSgpIC0+IChzdGQ6Om9wdGlvbmFsPE1hY2hTZW5kUmlnaHQ+IHNlbmRS
aWdodCwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UpIFN5bmNocm9u
b3VzCiAgICAgQ29sb3JTcGFjZSgpIC0+IChXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2Ug
Y29sb3JTcGFjZSkgU3luY2hyb25vdXMKKyAgICBWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNo
YW5nZWQoKSAtPiAoc3RkOjpvcHRpb25hbDxSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPj4g
dmlkZW9GcmFtZSwgYm9vbCBjaGFuZ2VkKSBTeW5jaHJvbm91cwogI2VuZGlmCi0gICAgVmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lLCBib29sIGNoYW5nZWQpIFN5bmNocm9u
b3VzCiAKICAgICBQbGF5QXRIb3N0VGltZShNb25vdG9uaWNUaW1lIHRpbWUpCiAgICAgUGF1c2VB
dEhvc3RUaW1lKE1vbm90b25pY1RpbWUgdGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9Bcmd1bWVudENvZGVycy5oCmluZGV4IGEzMzQyYzNiYzNlN2UyMTM0OGZlMjA4ODdjYzFkZmVm
MmJmOTU5NmMuLjcxZTUyMjhiZjYwODVmZWZlMDI3OGU2YjFhZjM1NTU5Mzk3OGI4ZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0FyZ3VtZW50Q29kZXJzLmgKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaApAQCAtMjY1LDYgKzI2
NSwzMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxzdGQ6OnBhaXI8VCwgVT4+IHsKICAgICB9CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZWZQdHI8VD4+IHsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVID0gVD4KKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
UmVmUHRyPFU+JiBvYmplY3QpCisgICAgeworICAgICAgICBpZiAob2JqZWN0KQorICAgICAgICAg
ICAgZW5jb2RlciA8PCB0cnVlIDw8ICpvYmplY3Q7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGVuY29kZXIgPDwgZmFsc2U7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVSA9IFQ+
CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFU+PiBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKKyAgICB7CisgICAgICAgIGF1dG8gaGFzT2JqZWN0ID0gZGVjb2Rlci50ZW1wbGF0ZSBk
ZWNvZGU8Ym9vbD4oKTsKKyAgICAgICAgaWYgKCFoYXNPYmplY3QpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworICAgICAgICBpZiAoISpoYXNPYmplY3QpCisgICAgICAgICAgICBy
ZXR1cm4gUmVmUHRyPFU+IHsgfTsKKyAgICAgICAgLy8gRGVjb2RlcnMgb2YgVSBoZWxkIHdpdGgg
UmVmUHRyIGRvIG5vdCByZXR1cm4gc3RkOjpvcHRpb25hbDxVPiBidXQKKyAgICAgICAgLy8gc3Rk
OjpvcHRpb25hbDxSZWZQdHI8VT4+LiBXZSBjYW5ub3QgdXNlIGBkZWNvZGVyLnRlbXBsYXRlIGRl
Y29kZTxVPigpYAorICAgICAgICAvLyBDdXJyZW50bHkgZXhwZWN0ICJtb2Rlcm4gZGVjb2RlciIg
LWxpa2UgZGVjb2RlIGZ1bmN0aW9uLgorICAgICAgICByZXR1cm4gVTo6ZGVjb2RlKGRlY29kZXIp
OworICAgIH0KK307CisKIHRlbXBsYXRlPHNpemVfdCBpbmRleCwgdHlwZW5hbWUuLi4gRWxlbWVu
dHM+CiBzdHJ1Y3QgVHVwbGVFbmNvZGVyIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMjI0YmZmZjZm
OGU2YmJmMDA3YTI2NTUwYzMxNDhkZDMzNTNlYTEyNC4uNTNjM2Q5NjBkM2JhN2NiZDhkYWY4Y2Iw
NWE2YjI1MjVkNTViZmRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5CkBAIC0zODMsNiArMzgzLDcgQEAgZGVmIGNvbmRpdGlvbnNfZm9yX2hlYWRlcihoZWFkZXIp
OgogICAgICAgICAnPFdlYkNvcmUvQ1ZVdGlsaXRpZXMuaD4nOiBbIlBMQVRGT1JNKENPQ09BKSIs
IF0sCiAgICAgICAgICc8V2ViQ29yZS9EYXRhRGV0ZWN0b3JUeXBlLmg+JzogWyJFTkFCTEUoREFU
QV9ERVRFQ1RJT04pIl0sCiAgICAgICAgICc8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0Q29u
dGV4dC5oPic6IFsiRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkiXSwKKyAgICAgICAg
JzxXZWJDb3JlL1ZpZGVvRnJhbWVDVi5oPic6IFsiUExBVEZPUk0oQ09DT0EpIiwgXSwKICAgICB9
CiAgICAgaWYgbm90IGhlYWRlciBpbiBjb25kaXRpb25zOgogICAgICAgICByZXR1cm4gTm9uZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDVjNzFhMjY4ZTBkMGI0Njc1MGIzYjYy
ZjVjN2RjZjc3MmYyYjA2ODcuLmMxOWYyNTUwYWRiMzBhYzczYTk2MGRiZGY0ODNmYjU4OTBjM2Yw
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTgwLDggKzgwLDkgQEAKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0jaW1wb3J0IDxXZWJDb3JlL1BpeGVsQnVmZmVy
Q29uZm9ybWVyQ1YuaD4KLSNpbXBvcnQgPFdlYkNvcmUvVmlkZW9MYXllck1hbmFnZXJPYmpDLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9WaWRlb0ZyYW1lQ1YuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvTGF5ZXJNYW5h
Z2VyT2JqQy5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEwMDIsMTQgKzEw
MDMsMjEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmNvcHlWaWRlb1RleHR1cmVU
b1BsYXRmb3JtVGV4dHVyZShXZWJDb3JlOjpHcmFwaGkKIH0KICNlbmRpZgogCi1zdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQorUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJh
bWU+IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkK
IHsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gcmVz
dWx0OworLy8gRklYTUU6IFRoaXMgd2lsbCBiZSBtYWRlIGNyb3NzLXBsYXRmb3JtIGFnYWluIHNv
b24uIFRoZXJlIGFyZSBubyBvdGhlciBwbGF0Zm9ybXMgdXNpbmcgdGhpcyBhdCB0aGUgbW9tZW50
LgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6
OlZpZGVvRnJhbWVDVj4+IHJlc3VsdDsKICAgICBib29sIGNoYW5nZWQgPSBmYWxzZTsKICAgICBp
ZiAoIWNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eTo6VmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKCksIE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQ6OlJlcGx5
KHJlc3VsdCwgY2hhbmdlZCksIG1faWQpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owot
ICAgIGlmIChjaGFuZ2VkKQotICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IFdU
Rk1vdmUocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1l
OworICAgIGlmIChjaGFuZ2VkKSB7CisgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICBt
X3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IFdURk1vdmUoKnJlc3VsdCk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID0gbnVsbHB0cjsKKyAg
ICB9CisjZW5kaWYKICAgICByZXR1cm4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDFhNmEzNDAzNDNkMTQyZWRmZGVlYTM2YjM3
NGE5OWY5OTNlZmViOTIuLjI5ZjkxMmQ0ZThiODdiNTdiYTE1NjI0YTZkYzVlMDZiN2M1YzFiOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUg
IlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXll
clByaXZhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvVmlkZW9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9GcmFt
ZU1ldGFkYXRhLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0
Zi9NZWRpYVRpbWUuaD4KQEAgLTI5Myw3ICsyOTQsNyBAQCBwcml2YXRlOgogI2lmICFVU0UoQVZG
T1VOREFUSU9OKQogICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMKiwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVudW0sIEdD
R0xpbnQsIEdDR0xlbnVtLCBHQ0dMZW51bSwgR0NHTGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwog
I2VuZGlmCi0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+
IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpW
aWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKICAgICBSZWZQdHI8
V2ViQ29yZTo6TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsK
ICAgICBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGZpbmFsOwog
CkBAIC00NjAsNyArNDYxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fd2FpdGluZ0ZvcktleSB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX3RpbWVJc1Byb2dyZXNzaW5nIHsgZmFsc2UgfTsKICAgICBi
b29sIG1fcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCB7IGZhbHNlIH07Ci0gICAgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IG1fdmlkZW9GcmFtZUZvckN1cnJl
bnRUaW1lOworICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Q1ZQaXhlbEJ1
ZmZlclJlZj4gbV9waXhlbEJ1ZmZlckdhdGhlcmVkV2l0aFZpZGVvRnJhbWVNZXRhZGF0YTsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGl4ZWxCdWZmZXJDb25mb3JtZXJDVj4gbV9waXhl
bEJ1ZmZlckNvbmZvcm1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcAppbmRleCBmZDJlMTViOWVm
NThkMmExOWIwOTA4OTMxZjdlZDVmNTE4ZmJkYTBjLi5kODM3YTQ2YmFmMTQwNzc0ZWE2ZWRkODI0
OWNkZTYyMzI0YjJkNDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwCkBAIC02NiwxMSArNjYs
OSBAQCB2b2lkIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cmVsZWFzZVVudXNlZChJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIFByb3BlcnRpZQogfQogCiBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6
OlJlbW90ZVZpZGVvRnJhbWVQcm94eShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFJlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkmIHZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHksIFBy
b3BlcnRpZXMmJiBwcm9wZXJ0aWVzKQotICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCisg
ICAgOiBWaWRlb0ZyYW1lKHByb3BlcnRpZXMucHJlc2VudGF0aW9uVGltZSwgcHJvcGVydGllcy5p
c01pcnJvcmVkLCBwcm9wZXJ0aWVzLnJvdGF0aW9uKQorICAgICwgbV9jb25uZWN0aW9uKGNvbm5l
Y3Rpb24pCiAgICAgLCBtX3JlZmVyZW5jZVRyYWNrZXIocHJvcGVydGllcy5yZWZlcmVuY2UpCi0g
ICAgLCBtX3ByZXNlbnRhdGlvblRpbWUocHJvcGVydGllcy5wcmVzZW50YXRpb25UaW1lKQotICAg
ICwgbV9pc01pcnJvcmVkKHByb3BlcnRpZXMuaXNNaXJyb3JlZCkKLSAgICAsIG1fcm90YXRpb24o
cHJvcGVydGllcy5yb3RhdGlvbikKICAgICAsIG1fc2l6ZShwcm9wZXJ0aWVzLnNpemUpCiAgICAg
LCBtX3BpeGVsRm9ybWF0KHByb3BlcnRpZXMucGl4ZWxGb3JtYXQpCiAgICAgLCBtX3ZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHkoJnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkpCkBAIC05NywzNiAr
OTUsMTEgQEAgUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UgUmVtb3RlVmlkZW9GcmFtZVBy
b3h5OjpyZWFkKCkgY29uc3QKICAgICByZXR1cm4gbV9yZWZlcmVuY2VUcmFja2VyLnJlYWQoKTsK
IH0KIAotTWVkaWFUaW1lIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cHJlc2VudGF0aW9uVGltZSgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJlc2VudGF0aW9uVGltZTsKLX0KLQotV2ViQ29yZTo6
UGxhdGZvcm1TYW1wbGUgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpwbGF0Zm9ybVNhbXBsZSgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIHsgV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OlJlbW90ZVZpZGVv
RnJhbWVQcm94eVR5cGUsIHsgfSB9OwotfQotCi1NZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBS
ZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnZpZGVvUm90YXRpb24oKSBjb25zdAotewotICAgIHJldHVy
biBtX3JvdGF0aW9uOwotfQotCi1ib29sIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6dmlkZW9NaXJy
b3JlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faXNNaXJyb3JlZDsKLX0KLQogdWludDMyX3Qg
UmVtb3RlVmlkZW9GcmFtZVByb3h5Ojp2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9waXhlbEZvcm1hdDsKIH0KIAotc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYVNh
bXBsZVZpZGVvRnJhbWU+IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6dmlkZW9GcmFtZSgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLX0KLQogI2lmIFBMQVRGT1JNKENPQ09BKQog
Q1ZQaXhlbEJ1ZmZlclJlZiBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnBpeGVsQnVmZmVyKCkgY29u
c3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlVmlkZW9GcmFtZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oCmluZGV4IDBhZjk0ZWEzZjJmNTEyYWQ5MmVlZGVhN2Fi
NDU2MGQ1ODNhZGY1ZjAuLjE2NTczMDcyOTg5MzUwMDVlYjJmMzM0Y2Y2YTI5NDQ1NjUwZjE1ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlk
ZW9GcmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVWaWRlb0ZyYW1lUHJveHkuaApAQCAtNzcsMjkgKzc3LDIxIEBAIHB1YmxpYzoKIAogICAg
IFdlYkNvcmU6OkludFNpemUgc2l6ZSgpIGNvbnN0OwogCisgICAgLy8gV2ViQ29yZTo6VmlkZW9G
cmFtZSBvdmVycmlkZXMuCisgICAgV2ViQ29yZTo6RmxvYXRTaXplIHByZXNlbnRhdGlvblNpemUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NpemU7IH0KKyAgICB1aW50MzJfdCB2aWRlb1BpeGVs
Rm9ybWF0KCkgY29uc3QgZmluYWw7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlcigpIGNvbnN0IGZpbmFsOwogI2VuZGlmCisgICAgYm9vbCBpc1Jl
bW90ZVByb3h5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgogICAg
IFJlbW90ZVZpZGVvRnJhbWVQcm94eShJUEM6OkNvbm5lY3Rpb24mLCBSZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5JiwgUHJvcGVydGllcyYmKTsKIAotICAgIC8vIFdlYkNvcmU6OlZpZGVv
RnJhbWUgb3ZlcnJpZGVzLgotICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lKCkgY29uc3Qg
ZmluYWw7Ci0gICAgVmlkZW9Sb3RhdGlvbiB2aWRlb1JvdGF0aW9uKCkgY29uc3QgZmluYWw7Ci0g
ICAgYm9vbCB2aWRlb01pcnJvcmVkKCkgY29uc3QgZmluYWw7Ci0gICAgV2ViQ29yZTo6RmxvYXRT
aXplIHByZXNlbnRhdGlvblNpemUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NpemU7IH0KLSAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFt
ZSgpIGNvbnN0IGZpbmFsOwotICAgIHVpbnQzMl90IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBm
aW5hbDsKLSAgICAvLyBGSVhNRTogV2hlbiBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRpYVNhbXBsZSwg
dGhlc2Ugd2lsbCBub3QgYmUgbmVlZGVkLgotICAgIFdlYkNvcmU6OlBsYXRmb3JtU2FtcGxlIHBs
YXRmb3JtU2FtcGxlKCkgY29uc3QgZmluYWw7Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6
OlR5cGUgcGxhdGZvcm1TYW1wbGVUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gV2ViQ29yZTo6
UGxhdGZvcm1TYW1wbGU6OlJlbW90ZVZpZGVvRnJhbWVQcm94eVR5cGU7IH0KKwogCiAgICAgY29u
c3QgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFJlbW90ZVZpZGVvRnJh
bWVSZWZlcmVuY2VUcmFja2VyIG1fcmVmZXJlbmNlVHJhY2tlcjsKLSAgICBjb25zdCBNZWRpYVRp
bWUgbV9wcmVzZW50YXRpb25UaW1lOwotICAgIGNvbnN0IGJvb2wgbV9pc01pcnJvcmVkOwotICAg
IGNvbnN0IFZpZGVvUm90YXRpb24gbV9yb3RhdGlvbjsKICAgICBjb25zdCBXZWJDb3JlOjpJbnRT
aXplIG1fc2l6ZTsKICAgICB1aW50MzJfdCBtX3BpeGVsRm9ybWF0IHsgMCB9OwogICAgIC8vIEZJ
WE1FOiBSZW1vdmUgdGhpcy4KQEAgLTEzMyw5ICsxMjUsNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mLCBjb25zdCBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXMm
KTsKIH0KIAogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJLaXQ6OlJlbW90ZVZpZGVv
RnJhbWVQcm94eSkKLSAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFT
YW1wbGUmIG1lZGlhU2FtcGxlKSB7IHJldHVybiBtZWRpYVNhbXBsZS5wbGF0Zm9ybVNhbXBsZVR5
cGUoKSA9PSBXZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZTo6UmVtb3RlVmlkZW9GcmFtZVByb3h5VHlw
ZTsgfQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQotU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19CRUdJTihXZWJDb3JlOjpWaWRlb0ZyYW1lKQotICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25z
dCBXZWJDb3JlOjpNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpIHsgcmV0dXJuIG1lZGlhU2FtcGxl
LnBsYXRmb3JtU2FtcGxlVHlwZSgpID09IFdlYkNvcmU6OlBsYXRmb3JtU2FtcGxlOjpSZW1vdGVW
aWRlb0ZyYW1lUHJveHlUeXBlOyB9CisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNv
cmU6Ok1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkgeyByZXR1cm4gaXM8V2ViQ29yZTo6VmlkZW9G
cmFtZT4obWVkaWFTYW1wbGUpICYmIGRvd25jYXN0PFdlYkNvcmU6OlZpZGVvRnJhbWU+KG1lZGlh
U2FtcGxlKS5pc1JlbW90ZVByb3h5KCk7IH0KIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkK
KwogI2VuZGlmCg==
</data>
<flag name="commit-queue"
          id="479357"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452349</attachid>
            <date>2022-02-17 03:55:47 -0800</date>
            <delta_ts>2022-02-17 09:57:36 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236701-20220217135544.patch</filename>
            <type>text/plain</type>
            <size>72228</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMDA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjcwOTQxNDQzOGM2ZDgw
YTc1NjI4MTZhNGY1MzNkMTI1NTU3YzhkMC4uYTNiMTVkOTAzNjU0ZGZhMThkYzFjM2RiMWZmMWJk
N2I3Y2I2ZjA1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDIyLTAyLTE2ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFQbGF5ZXI6
OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHNob3VsZCByZXR1cm4gVmlkZW9GcmFtZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzAxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorICAgICAgICBSZW5hbWUgQ1Ygc3BlY2lm
aWMgcGFydHMgb2YgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lIHRvIFZpZGVvRnJhbWVDVi4KKyAgICAg
ICAgVXNlIFZpZGVvRnJhbWUgYmFzZSBjbGFzcyBpbnN0ZWFkIG9mIE1lZGlhU2FtcGxlVmlkZW9G
cmFtZS4KKyAgICAgICAgVmlkZW9GcmFtZSBzdXBwb3J0cyBtdWx0aXBsZSBwb2x5bW9ycGhpYyBz
dWJjbGFzc2VzLiBPbmUgc3VjaAorICAgICAgICBpcyBSZW1vdGVWaWRlb0ZyYW1lUHJveHksIHdo
aWNoIHdpbGwgYmUgdXNlZCBpbiB0aGUgZnV0dXJlIHRvCisgICAgICAgIHJldHVybiByZW1vdGUg
cHJveHkgb2JqZWN0cyBpbiB0aGVzZSBsb2NhdGlvbnMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBp
cyBvbmx5IGEgcmVuYW1lLiBJdCBjb25jZXJucyBvbmx5IHRoZSBpbi1wcm9jZXNzCisgICAgICAg
IHVzYWdlIG9mIHZpZGVvIGZyYW1lcyB2aWEgaW4tcHJvY2VzcyBWaWRlb0ZyYW1lQ1YuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCByZWZhY3Rvci4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6
CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTWVkaWFTYW1wbGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjp2aWRlb1BpeGVsRm9ybWF0IGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9WaWRlb0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
RnJhbWU6OlZpZGVvRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZTo6cHJlc2Vu
dGF0aW9uVGltZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lOjp2aWRlb1Jv
dGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWU6OnZpZGVvTWlycm9y
ZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZTo6cGxhdGZvcm1TYW1wbGUg
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1ZpZGVvRnJhbWUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvRnJhbWU6OmlzUmVtb3RlUHJveHkgY29uc3QpOgorICAgICAgICBUaGlzIGxlYWtz
ICJyZW1vdGUiIGNvbmNlcHQgdG8gV2ViQ29yZSBsZXZlbC4gSG9wZWZ1bGx5CisgICAgICAgIGlu
IHRoZSBmdXR1cmUgdGhpcyBjYW4gYmUgc29sdmVkIGluIGFub3RoZXIgd2F5LgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9GcmFtZTo6aXNDViBjb25zdCk6CisgICAgICAgIChpc1R5cGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmg6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2FtcGxlVmlkZW9GcmFtZUFW
Ri5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp2aWRlb0ZyYW1lRm9y
Q3VycmVudFRpbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBs
ZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OnZpZGVv
RnJhbWUgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNz
Q29udGV4dEdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y3YvR3JhcGhpY3NDb250ZXh0R0xDVi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2N2
L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRHTENWQ29jb2E6OmNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9GcmFtZUNWLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9GcmFtZUNWOjpwaXhlbEJ1ZmZlciBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpWaWRlb0ZyYW1lQ1Y6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWRl
b0ZyYW1lQ1Y6OmRlY29kZSk6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpW
aWRlb0ZyYW1lQ1Y6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OlZp
ZGVvRnJhbWVDVik6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y6OnByZXNlbnRhdGlv
blNpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9GcmFtZUNWOjp2aWRlb1BpeGVs
Rm9ybWF0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvRnJhbWVDVjo6b3JpZW50YXRp
b24gY29uc3QpOgorCiAyMDIyLTAyLTE3ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFu
bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtMQlNFXSBBcHBseSBTVkcgc3BlY2lmaWMgY2hhbmdl
cyB0byBSZW5kZXJMYXllciBwYWludGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkOTI2NzM0YmJkN2E2ZDc2YmIy
NzIxNzU1MTNlZDY3Njg1Zjg1YWNkLi45NGM0YmZmYzliZGQxNDY2NGMwMWNjN2Q4NGJkMGUwNGY3
ZDEzNjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTAyLTE2ICBLaW1tbyBLaW5u
dW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFQbGF5ZXI6OnZpZGVv
RnJhbWVGb3JDdXJyZW50VGltZSgpIHNob3VsZCByZXR1cm4gVmlkZW9GcmFtZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzAxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFVzZSBhZGRlZCBWaWRlb0ZyYW1l
Q1YgaW5zdGVhZCBvZiByZW1vdmVkIE1lZGlhU2FtcGxlVmlkZW9GcmFtZS4KKworICAgICAgICAq
IEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmludmFsaWRhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3Vy
cmVudFRpbWVJZkNoYW5nZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQXJndW1lbnRD
b2RlcnMuaDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWZQdHI8VD4+OjplbmNvZGUp
OgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZlB0cjxUPj46OmRlY29kZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1lRm9y
Q3VycmVudFRpbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZp
ZGVvRnJhbWVQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94
eTo6UmVtb3RlVmlkZW9GcmFtZVByb3h5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuaDoKKyAgICAgICAgKGlzVHlwZSk6CisKIDIwMjItMDIt
MTcgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IHNvbWUgbW9yZSBkZWJ1ZyB0cmlnZ2VycyBmb3IgV0tIb3ZlclBsYXR0ZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCmluZGV4IDJhYWFiZDg0MzM0NDkzMDE0NzZiNWE3ZmMxYjdhYzQ1NjhjYzA0NzMuLmY5OWVi
Zjc1YTU3OTA2YzMwZjQ4NGUwZTY1OThjNDQ5M2Y2NDViMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtMTUyOCw3ICsxNTI4LDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyRW51bXMuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVySWRlbnRpZmllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmgKLSAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZp
ZGVvRnJhbWUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhU291cmNlUHJpdmF0ZS5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVVzYWdlSW5mby5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRl
eCBjY2IwODY4NThjMWM5Y2MzMTFhODdmYjM5NTg4NzY4ODgxMDkwZWU3Li41ZDI1MGE4MGFiZDJm
OTg3NDgxYTU1ZjEwMDY1ZDAxYzE1MGMxZDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAg
LTMwNCw3ICszMDQsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vSW5iYW5kTWV0
YWRhdGFUZXh0VHJhY2tQcml2YXRlQVZGLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkYuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAotcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2FtcGxlVmlkZW9GcmFtZUFWRi5tbQogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNw
cAogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXJN
YWMuY3BwCkBAIC00MTIsNiArNDExLDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvR2x5
cGhQYWdlQ29yZVRleHQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9jdi9DVlV0aWxpdGllcy5tbQog
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VUcmFuc2ZlclNlc3Npb25WVC5tbQogcGxhdGZvcm0v
Z3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5jcHAKK3BsYXRmb3JtL2dyYXBoaWNz
L2N2L1ZpZGVvRnJhbWVDVi5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZFQ29sb3JN
YXRyaXhDb3JlSW1hZ2VBcHBsaWVyLm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVD
b21wb25lbnRUcmFuc2ZlckNvcmVJbWFnZUFwcGxpZXIubW0KIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
cmVpbWFnZS9GaWx0ZXJJbWFnZUNvcmVJbWFnZS5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM4YjBiMGNmZjM0NGM3NzRlM2Nm
NTRjNmY3ODFjMDc1ODllZjA0OTcuLmJmY2YyOGVkMGRmNmZmNWNhMTJjZWE2MWVhOWYyNTcxNTEx
MDZhNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTI0MDgsNyArMjQwOCw2IEBACiAJCTdBRjlCMjBGMThDRkI1RjQwMEM2NEJF
RiAvKiBKU1ZUVFJlZ2lvbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdBRjlCMjBCMThDRkI1RjMwMEM2NEJFRiAvKiBKU1ZUVFJlZ2lvbkxpc3Qu
aCAqLzsgfTsKIAkJN0IxMDMzOUUyNTQ5NzIxNzAwQzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdM
Q1YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCMTAz
MzlEMjU0OTcyMDEwMEM4QzFBQyAvKiBHcmFwaGljc0NvbnRleHRHTENWLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0IxMDMzOUYyNTQ5NzIxRTAw
QzhDMUFDIC8qIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0IxMDMzOUMyNTQ5NzIwMTAwQzhDMUFDIC8qIEdy
YXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTdCNDQxMEUxMjc5NThGQzUwMDBCNEY4QSAvKiBNZWRpYVNhbXBs
ZVZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCNDQxMERGMjc5NThGQzQwMDBCNEY4QSAvKiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QjVBM0RB
RjI3QUJGOEM1MDA2QzZGOTcgLyogVmlkZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I1QTNEQUQyN0FCRjhDNDAwNkM2Rjk3IC8qIFZpZGVv
RnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QjYwOTRERDI3MEM0NEJEMDA2NDgzNUMgLyogQU5HTEVVdGlsaXRpZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjM0QTE2MjUzNDVDQjIwMDAy
OUQwOCAvKiBBTkdMRVV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdCNkRDODE5MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0Nv
bnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0I2REM4MTcyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29u
dGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI0MjEsNiArMjQyMCw3IEBACiAJCTdCQjY4MEJBMjVCQTFC
RTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCNjgwQjgyNUJBMUJFNDAwMkI4NzM4IC8qIEdyYXBo
aWNzQ2hlY2tzTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJN0JEREEzMUYyNzRGQTAyMTAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29j
b2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERB
MzFEMjc0RjlEQTUwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JEREEzNEMyNzVBMDEz
MTAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0JEREEzNDkyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJ
ZGVudGl0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTdCRTM3Rjg3MjdCQkI3MDgwMDdBNkNEMyAvKiBWaWRlb0ZyYW1lQ1YuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRTM3Rjg2MjdCQkI2RkYwMDdB
NkNEMyAvKiBWaWRlb0ZyYW1lQ1YuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3QkUzN0Y3QTI3QkI4NkFCMDA3QTZDRDMgLyogR3JhcGhpY3NDb250
ZXh0R0xDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCRERBMzFDMjc0RjlEQTQwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLm1t
ICovOyB9OwogCQk3QkUzN0Y3QzI3QkI4NkI4MDA3QTZDRDMgLyogQU5HTEVVdGlsaXRpZXNDb2Nv
YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkNE
NDJEQTI3MDVDOTQ5MDBFQjIxMjcgLyogQU5HTEVVdGlsaXRpZXNDb2NvYS5jcHAgKi87IH07CiAJ
CTdCRTM3RjdEMjdCQjg2Q0QwMDdBNkNEMyAvKiBBTkdMRVV0aWxpdGllcy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkNENDJEODI3MDU5OUVGMDBF
QjIxMjcgLyogQU5HTEVVdGlsaXRpZXMuY3BwICovOyB9OwpAQCAtMTE1NDEsOCArMTE1NDEsNiBA
QAogCQk3QjEwMzM5QzI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3NDb250ZXh0R0xDVkNvY29h
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QjEwMzM5RDI1NDk3MjAxMDBDOEMxQUMgLyogR3JhcGhpY3ND
b250ZXh0R0xDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENWLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCMTYxOTEwMjcxOTg4MEUwMEM0MEVBQyAvKiBXZWJQ
cm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
YlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk3QjQ0MTBERjI3OTU4RkM0MDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1l
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2FtcGxlVmlkZW9GcmFt
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3QjQ0MTBFMjI3OTU4RkRFMDAwQjRG
OEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3QjVBM0RBQjI3QUJGOEM0MDA2QzZGOTcgLyogVmlkZW9GcmFtZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRlb0ZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0I1QTNEQUQyN0FCRjhDNDAwNkM2Rjk3IC8qIFZpZGVvRnJhbWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GcmFtZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QjZEQzgxNTI1NzEyRTkxMDAzODBDNzAgLyogR3JhcGhpY3ND
b250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1NjYsNiArMTE1NjQsOCBAQAogCQk3QkREQTMx
RDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNz
SWRlbnRpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvY2Vzc0lkZW50
aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRERBMzRCMjc1QTAxMzAwMDM4
NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJN0JFMzdGODUyN0JCQjZGRTAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvRnJhbWVDVi5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JFMzdGODYyN0JCQjZGRjAwN0E2Q0QzIC8qIFZpZGVvRnJh
bWVDVi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0ZyYW1lQ1YuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JGRjU5RUYyNzU3NzFFODAwNzczRDM5IC8q
IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5oOyBmaWxlRW5jb2RpbmcgPSA0
OyBwYXRoID0gRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdCRkY1OUYxMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJh
dGlvbk1vbml0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlz
cGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0MwMTFGM0QyNEZBRDM2MDAwNUJFRjEwIC8qIFNldHRpbmdzLmNwcC5lcmIgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2V0
dGluZ3MuY3BwLmVyYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4Nzk0LDcgKzE4
Nzk0LDYgQEAKIAkJCQkwNzFFNDk2RDFBRDVBQTBEMDA4QTUwQjQgLyogTWVkaWFQbGF5YmFja1Rh
cmdldENvY29hLm1tICovLAogCQkJCTA3NkYwRDA5MTJCODE5MjcwMEMyNkFBNCAvKiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwICovLAogCQkJCTA3NkYwRDBBMTJCODE5MjcwMEMy
NkFBNCAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCAqLywKLQkJCQk3QjQ0MTBF
MjI3OTU4RkRFMDAwQjRGOEEgLyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lQVZGLm1tICovLAogCQkJ
CUNEQkVBRUFCMTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5o
ICovLAogCQkJCUNEQkVBRUFBMTlEOTJCNkMwMEJFQkE4OCAvKiBNZWRpYVNlbGVjdGlvbkdyb3Vw
QVZGT2JqQy5tbSAqLywKIAkJCQk0MTAyNEZDODIzQ0YyNTRGMDBGREY5OEUgLyogU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyLmNwcCAqLywKQEAgLTI5MDY4LDcgKzI5MDY3LDYgQEAKIAkJCQlDRDUy
MDlFMzFCMEJEODM4MDA3NzE4NEUgLyogTWVkaWFQbGF5ZXJFbnVtcy5oICovLAogCQkJCUY0Mjky
NjE3MjUyNjRENDQwMDAwNzg5OCAvKiBNZWRpYVBsYXllcklkZW50aWZpZXIuaCAqLywKIAkJCQkw
NzlGNUU0QjBGM0JFQkVBMDA1RTA3ODIgLyogTWVkaWFQbGF5ZXJQcml2YXRlLmggKi8sCi0JCQkJ
N0I0NDEwREYyNzk1OEZDNDAwMEI0RjhBIC8qIE1lZGlhU2FtcGxlVmlkZW9GcmFtZS5oICovLAog
CQkJCUNENjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBNZWRpYVNvdXJjZVByaXZhdGUuaCAqLywK
IAkJCQlDRERDMUU3OTE4QTk1MkYzMDAyN0E5RDQgLyogTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50
LmggKi8sCiAJCQkJMDc2MTFEQjgyNDNGQjc1QzAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmgg
Ki8sCkBAIC0zMDQzNSw2ICszMDQzMyw4IEBACiAJCQkJMDc0NkQzMEEyMTQ2RUEzNzAwM0RERjg0
IC8qIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQubW0gKi8sCiAJCQkJQ0Q3RDMzNDExQzdBMTIzRjAw
MDQxMjkzIC8qIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuY3BwICovLAogCQkJCUNEN0QzMzQyMUM3
QTEyM0YwMDA0MTI5MyAvKiBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmggKi8sCisJCQkJN0JFMzdG
ODYyN0JCQjZGRjAwN0E2Q0QzIC8qIFZpZGVvRnJhbWVDVi5oICovLAorCQkJCTdCRTM3Rjg1MjdC
QkI2RkUwMDdBNkNEMyAvKiBWaWRlb0ZyYW1lQ1YubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGN2
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTM2Mjg1LDcgKzM2Mjg1LDYgQEAKIAkJ
CQlDRUVGQ0Q3QTE5REIzMUY3MDAzODc2RDcgLyogTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUJGOURCM0MxRDM5NzNBRDAwMjZBRUI3IC8qIE1lZGlhU2FtcGxlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQjEyNEQ4RDFEMzgwQjcwMDBFQ0RGQjAgLyogTWVkaWFTYW1w
bGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKLQkJCQk3QjQ0MTBFMTI3OTU4RkM1MDAwQjRGOEEg
LyogTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREJFQUVBRDE5
RDkyQjZDMDBCRUJBODggLyogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUExN0QyNzVFMUVBQzU3OTgwMEJGMDFFNyAvKiBNZWRpYVNlbGVjdGlvbk9wdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc3QkE1NzUyNjBGQTVGRTAwNzJGMTlGIC8qIE1lZGlh
U2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNzg5MCw2ICszNzg4OSw3IEBACiAJCQkJQkNB
MjU3MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRpY2FsUG9zaXRpb25DYWNoZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0QzRUVGM0IyNTc5OUZBMTAwNjU2M0JCIC8qIFZpZGVvQ29uZmlndXJhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0I1QTNEQUYyN0FCRjhDNTAwNkM2Rjk3IC8qIFZpZGVv
RnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCRTM3Rjg3MjdCQkI3MDgwMDdBNkNEMyAvKiBW
aWRlb0ZyYW1lQ1YuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxREVFRkI2MjcxOUJBMUEwMENCOEQ3
NCAvKiBWaWRlb0ZyYW1lTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxREVFRkIwMjcx
OUIyOTAwMENCOEQ3NCAvKiBWaWRlb0ZyYW1lUmVxdWVzdENhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MkIwRDRDMDFDNTdGRDY2MDA3N0NFNTMgLyogVmlkZW9GdWxsc2NyZWVuQ2hhbmdl
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTWVkaWFTYW1wbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU2FtcGxl
LmgKaW5kZXggOGIzZGNhNjEyYzIzYWEyOWUzYTRlMzY2YTdmNDRjMWNhNWMyMDM0OC4uYzgwNDA4
NzQ5MzJkNjUxNDc4MDkyMWY2MmNmZmNhZThmNjNjZjk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9NZWRpYVNhbXBsZS5oCkBAIC0yNiw3ICsyNiw2IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkZsb2F0U2l6ZS5oIgotI2luY2x1ZGUgIk1lZGlhU2FtcGxlVmlkZW9GcmFtZS5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlzLmg+CiAjaW5jbHVkZSA8d3RmL0VudW1U
cmFpdHMuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CkBAIC01MCw3ICs0OSw3IEBAIHN0
cnVjdCBQbGF0Zm9ybVNhbXBsZSB7CiAgICAgICAgIENNU2FtcGxlQnVmZmVyVHlwZSwKICAgICAg
ICAgR1N0cmVhbWVyU2FtcGxlVHlwZSwKICAgICAgICAgQnl0ZVJhbmdlU2FtcGxlVHlwZSwKLSAg
ICAgICAgUmVtb3RlVmlkZW9GcmFtZVByb3h5VHlwZSwgLy8gRklYTUU6IFRvIGJlIHJlbW92ZWQg
d2hlbiBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRpYVNhbXBsZS4KKyAgICAgICAgVmlkZW9GcmFtZVR5
cGUsIC8vIEZJWE1FOiBUbyBiZSByZW1vdmVkIHdoZW4gVmlkZW9GcmFtZSBpcyBub3QgTWVkaWFT
YW1wbGUuCiAgICAgfSB0eXBlOwogICAgIHVuaW9uIHsKICAgICAgICAgY29uc3QgTW9ja1NhbXBs
ZUJveCogbW9ja1NhbXBsZUJveDsKQEAgLTEwOSw5ICsxMDgsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCB7IHJldHVybiBWaWRlb1Jv
dGF0aW9uOjpOb25lOyB9CiAgICAgdmlydHVhbCBib29sIHZpZGVvTWlycm9yZWQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdWludDMyX3QgdmlkZW9QaXhlbEZvcm1hdCgp
IGNvbnN0IHsgcmV0dXJuIDA7IH0KLSNpZiBkZWZpbmVkKEVOQUJMRV9WSURFTykgJiYgRU5BQkxF
X1ZJREVPCi0gICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZSgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfTsKLSNlbmRpZgogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIHZpcnR1YWwgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
cigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVmlkZW9GcmFtZS5jcHAKaW5kZXggZjA3NjliYTVlNTRhODgwYmU2MzkwOWE5Y2RhMDMyODdh
MzdkM2NmNC4uYTU0OWMxYTVjNDhlYjIzZDY0YmEzZmQzNTM4NDA4YmQxNTUyMzRmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9GcmFtZS5jcHAKQEAgLTI2LDE0ICsyNiw0NCBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlZpZGVvRnJhbWUuaCIKIAotI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKFZJREVPKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LVZpZGVvRnJhbWU6OlZpZGVvRnJhbWUoKSA9IGRlZmF1bHQ7CitWaWRlb0ZyYW1lOjpWaWRlb0Zy
YW1lKE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lLCBib29sIGlzTWlycm9yZWQsIFZpZGVvUm90
YXRpb24gcm90YXRpb24pCisgICAgOiBtX3ByZXNlbnRhdGlvblRpbWUocHJlc2VudGF0aW9uVGlt
ZSkKKyAgICAsIG1faXNNaXJyb3JlZChpc01pcnJvcmVkKQorICAgICwgbV9yb3RhdGlvbihyb3Rh
dGlvbikKK3sKK30KIAogVmlkZW9GcmFtZTo6flZpZGVvRnJhbWUoKSA9IGRlZmF1bHQ7CiAKK01l
ZGlhVGltZSBWaWRlb0ZyYW1lOjpwcmVzZW50YXRpb25UaW1lKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcmVzZW50YXRpb25UaW1lOworfQorCitNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBW
aWRlb0ZyYW1lOjp2aWRlb1JvdGF0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yb3RhdGlv
bjsKK30KKworYm9vbCBWaWRlb0ZyYW1lOjp2aWRlb01pcnJvcmVkKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9pc01pcnJvcmVkOworfQorCitXZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZSBWaWRlb0Zy
YW1lOjpwbGF0Zm9ybVNhbXBsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHsgV2ViQ29yZTo6UGxh
dGZvcm1TYW1wbGU6OlZpZGVvRnJhbWVUeXBlLCB7IH0gfTsKK30KKworUGxhdGZvcm1TYW1wbGU6
OlR5cGUgVmlkZW9GcmFtZTo6cGxhdGZvcm1TYW1wbGVUeXBlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OlZpZGVvRnJhbWVUeXBlOworfQorCiBNZWRpYVRp
bWUgVmlkZW9GcmFtZTo6ZGVjb2RlVGltZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9WaWRlb0ZyYW1lLmgKaW5kZXggYjYzMWZkMTNlMjJl
MzEyMjY2NTAwMTRiYWY3OGRlYTkwY2FhNmZiMi4uYjU1NDU2ZmY5NGFiYjcxMWQzMjZmMmQ2ZDA5
OTlkNmJkNWM2MGE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVmlkZW9G
cmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1ZpZGVvRnJhbWUuaApAQCAtMjUs
NyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisj
aWYgRU5BQkxFKFZJREVPKQogCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGUuaCIKIApAQCAtMzgsOCAr
MzgsMjQgQEAgY2xhc3MgVmlkZW9GcmFtZSA6IHB1YmxpYyBNZWRpYVNhbXBsZSB7CiBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgflZpZGVvRnJhbWUoKTsKIAorICAgIC8vIFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlIG92ZXJyaWRlcy4KKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVRpbWUgcHJlc2Vu
dGF0aW9uVGltZSgpIGNvbnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIFZpZGVvUm90YXRp
b24gdmlkZW9Sb3RhdGlvbigpIGNvbnN0IGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
dmlkZW9NaXJyb3JlZCgpIGNvbnN0IGZpbmFsOworICAgIC8vIEZJWE1FOiBXaGVuIFZpZGVvRnJh
bWUgaXMgbm90IE1lZGlhU2FtcGxlLCB0aGVzZSB3aWxsIG5vdCBiZSBuZWVkZWQuCisgICAgV0VC
Q09SRV9FWFBPUlQgV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1wbGUoKSBjb25z
dCBmaW5hbDsKKyAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybVNhbXBsZTo6VHlwZSBwbGF0Zm9y
bVNhbXBsZVR5cGUoKSBjb25zdCBmaW5hbDsKKworICAgIHZpcnR1YWwgYm9vbCBpc1JlbW90ZVBy
b3h5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorICAg
IHZpcnR1YWwgYm9vbCBpc0NWKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorCiBw
cm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9FWFBPUlQgVmlkZW9GcmFtZSgpOworICAgIFdFQkNPUkVf
RVhQT1JUIFZpZGVvRnJhbWUoTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWUsIGJvb2wgaXNNaXJy
b3JlZCwgVmlkZW9Sb3RhdGlvbik7CisgICAgY29uc3QgTWVkaWFUaW1lIG1fcHJlc2VudGF0aW9u
VGltZTsKKyAgICBjb25zdCBib29sIG1faXNNaXJyb3JlZDsKKyAgICBjb25zdCBWaWRlb1JvdGF0
aW9uIG1fcm90YXRpb247CiAKIHByaXZhdGU6CiAgICAgLy8gRklYTUU6IFRoZXNlIGFyZSBub3Qg
aW50ZW5kZWQgdG8gYmUgdXNlZCBmb3IgdGhlc2Ugb2JqZWN0cy4KQEAgLTYwLDQgKzc2LDcgQEAg
cHJpdmF0ZToKIAogfQogCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlZp
ZGVvRnJhbWUpCisgICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlJiBtZWRpYVNhbXBsZSkgeyByZXR1cm4gbWVkaWFTYW1wbGUucGxhdGZvcm1TYW1wbGVUeXBl
KCkgPT0gV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OlZpZGVvRnJhbWVUeXBlOyB9CitTUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0VORCgpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA2YzYxZDczNzA4NDFmMzgxNTA3Yjc2
ODJlZmM4ZmJlOWEyMWIzZWY3Li5mZGE1YWQxZDkwNzBjY2Y0YzYwOGVkYWIxMmFmOTBiOTZlODZm
NDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCkBAIC0xMDg4LDcgKzEwODgsNyBAQCBib29sIE1lZGlhUGxheWVyOjpjb3B5VmlkZW9U
ZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0R0wqIGNvbnRleHQsCiAKICNl
bmRpZgogCi1zdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXI6
OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCitSZWZQdHI8VmlkZW9GcmFtZT4gTWVkaWFQbGF5
ZXI6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA4OTMxNzE1OTI1YTE0ODNhZmFkMGNjY2Ex
NjNhZTE1OWY5NDczYjhhLi5hMTdlNWVlNmQ3ZDUwN2RmNWFhODBlNzZhOWZmYjUzNTEzNWM3MGU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
QEAgLTM0LDExICszNCwxMSBAQAogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKICNpbmNsdWRlICJN
ZWRpYVBsYXllckVudW1zLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmgiCi0j
aW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1MYXll
ci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtVGV4dFRyYWNrLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW5EYXRhLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlICJWaWRlb0ZyYW1lLmgi
CiAjaW5jbHVkZSAiVmlkZW9GcmFtZU1ldGFkYXRhLmgiCiAjaW5jbHVkZSAiVmlkZW9QbGF5YmFj
a1F1YWxpdHlNZXRyaWNzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRm9yd2FyZC5oPgpA
QCAtNDcxLDcgKzQ3MSw3IEBAIHB1YmxpYzoKICNpZiAhVVNFKEFWRk9VTkRBVElPTikKICAgICBi
b29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCos
IFBsYXRmb3JtR0xPYmplY3QgdGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVs
LCBHQ0dMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBl
LCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgZmxpcFkpOwogI2VuZGlmCi0gICAgc3RkOjpv
cHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgp
OworICAgIFJlZlB0cjxWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKTsKICAg
ICBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKTsKICAgICBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IGY5ZmY0
Y2JmMjg2OWQ5MzMxMjBlZGUwMGQwMTVlNWFkZGY0NzgyOTEuLjgwOWJlMTY1MzMyMjcyMDc2NGZh
MDgxNmM4Mzg4ZGMzMmI1ODFkNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0yOSw5ICsyOSw5IEBACiAKICNp
bmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVySWRlbnRpZmllci5o
IgotI2luY2x1ZGUgIk1lZGlhU2FtcGxlVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIk5hdGl2ZUlt
YWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1UaW1lUmFuZ2VzLmgiCisjaW5jbHVkZSAiVmlkZW9G
cmFtZS5oIgogI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgogCkBAIC0xODEsNyArMTgxLDcgQEAgcHVibGljOgogI2lmICFVU0UoQVZGT1VOREFU
SU9OKQogICAgIHZpcnR1YWwgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUo
R3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NHTGludCwg
R0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgeyByZXR1cm4gZmFsc2U7
IH0KICNlbmRpZgotICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJh
bWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQor
ICAgIHZpcnR1YWwgUmVmUHRyPFZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgp
IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIFJlZlB0cjxOYXRpdmVJbWFnZT4gbmF0
aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFs
IERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkgPSAwOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVNhbXBsZVZpZGVvRnJhbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhU2FtcGxlVmlkZW9GcmFtZS5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTQ3NGNmYjEzZmZiMTE5NmQzYzI0MDUw
YTE2MjZiNzNiNDgzZWY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhU2FtcGxlVmlkZW9G
cmFtZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShW
SURFTykKLSNpbmNsdWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCi0KLSNpZiBVU0UoQVZGT1VOREFU
SU9OKQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLQotdXNpbmcgQ1ZQaXhlbEJ1ZmZlclJl
ZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIE1lZGlhU2FtcGxlVmlkZW9GcmFtZSB7Ci1wdWJsaWM6Ci0gICAgTWVkaWFTYW1wbGVW
aWRlb0ZyYW1lKCkgPSBkZWxldGU7Ci0jaWYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBXRUJDT1JF
X0VYUE9SVCBNZWRpYVNhbXBsZVZpZGVvRnJhbWUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+
JiYsIEltYWdlT3JpZW50YXRpb24pOwotI2VuZGlmCi0KLSAgICBJbWFnZU9yaWVudGF0aW9uIG9y
aWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsgfQotCi0jaWYgVVNFKEFW
Rk9VTkRBVElPTikKLSAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9waXhlbEJ1ZmZlci5nZXQoKTsgfQotI2VuZGlmCi0KLSAgICBib29sIG9wZXJhdG9y
PT0oY29uc3QgTWVkaWFTYW1wbGVWaWRlb0ZyYW1lJiBvdGhlcikgY29uc3Q7Ci0KLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1w
bGVWaWRlb0ZyYW1lPiBkZWNvZGUoRGVjb2RlciYpOwotCi1wcml2YXRlOgotI2lmIFVTRShBVkZP
VU5EQVRJT04pCi0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXI7
Ci0jZW5kaWYKLSAgICBJbWFnZU9yaWVudGF0aW9uIG1fb3JpZW50YXRpb247Ci19OwotCi1pbmxp
bmUgYm9vbCBNZWRpYVNhbXBsZVZpZGVvRnJhbWU6Om9wZXJhdG9yPT0oY29uc3QgTWVkaWFTYW1w
bGVWaWRlb0ZyYW1lJiBvdGhlcikgY29uc3QKLXsKLSNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAg
IGlmIChtX3BpeGVsQnVmZmVyICE9IG90aGVyLm1fcGl4ZWxCdWZmZXIpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSNlbmRpZgotICAgIHJldHVybiBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlv
bihvdGhlci5tX29yaWVudGF0aW9uKSA9PSBJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbiht
X29yaWVudGF0aW9uKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBNZWRp
YVNhbXBsZVZpZGVvRnJhbWU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotI2lm
IFVTRShBVkZPVU5EQVRJT04pCi0gICAgZW5jb2RlciA8PCBtX3BpeGVsQnVmZmVyOwotICAgIGVu
Y29kZXIgPDwgSW1hZ2VPcmllbnRhdGlvbjo6T3JpZW50YXRpb24obV9vcmllbnRhdGlvbik7Ci0j
ZWxzZQotICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsKLSNlbmRpZgotfQotCi10ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPiBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gTWVk
aWFTYW1wbGVWaWRlb0ZyYW1lOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSNpZiBVU0Uo
QVZGT1VOREFUSU9OKQotICAgIHN0ZDo6b3B0aW9uYWw8UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+PiBwaXhlbEJ1ZmZlcjsKLSAgICBkZWNvZGVyID4+IHBpeGVsQnVmZmVyOwotICAgIGlmICgh
cGl4ZWxCdWZmZXIpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgc3RkOjpvcHRp
b25hbDxJbWFnZU9yaWVudGF0aW9uOjpPcmllbnRhdGlvbj4gb3JpZW50YXRpb247Ci0gICAgZGVj
b2RlciA+PiBvcmllbnRhdGlvbjsKLSAgICBpZiAoIW9yaWVudGF0aW9uKQotICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgeyBXVEZN
b3ZlKCpwaXhlbEJ1ZmZlciksICpvcmllbnRhdGlvbiB9OwotI2Vsc2UKLSAgICBVTlVTRURfUEFS
QU0oZGVjb2Rlcik7Ci0gICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSNlbmRpZgotfQotCi19Ci0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90
ZVZpZGVvU2FtcGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90
ZVZpZGVvU2FtcGxlLmNwcAppbmRleCBjNWIyZGRmOWU2Y2M0MDhhMGM4ZjYyMDAyOWExYWIxY2Nm
N2MxMzRjLi5kYWI2ZjJhNDE3NzNhNWIyNzgxNWFiMjBkNGJkNDQ2OWQ2MmI5MmVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1w
bGUuY3BwCkBAIC0zMSw3ICszMSw4IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Q0cuaCIK
ICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAi
TWVkaWFTYW1wbGUuaCIKKyNpbmNsdWRlICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKKyNpbmNsdWRl
ICJWaWRlb0ZyYW1lQ1YuaCIKIAogI2lmIFVTRShBQ0NFTEVSQVRFKQogI2luY2x1ZGUgPEFjY2Vs
ZXJhdGUvQWNjZWxlcmF0ZS5oPgpAQCAtODcsMTQgKzg4LDE5IEBAIHN0YXRpYyBpbmxpbmUgc3Rk
Ojp1bmlxdWVfcHRyPElPU3VyZmFjZT4gdHJhbnNmZXJCR1JBUGl4ZWxCdWZmZXJUb0lPU3VyZmFj
ZShDVlBpCiAKIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gUmVtb3RlVmlkZW9T
YW1wbGU6OmNyZWF0ZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBTaG91bGRDaGVja0ZvcklPU3VyZmFj
ZSBzaG91bGRDaGVja0ZvcklPU3VyZmFjZSkKIHsKLSAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3Jt
U2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKLQot
ICAgIFJldGFpblB0ciBpbWFnZUJ1ZmZlciA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1
ZmZlcihzYW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOworICAg
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBpbWFnZUJ1ZmZlcjsKKyAgICBpZiAoaXM8TWVk
aWFTYW1wbGVBVkZPYmpDPihzYW1wbGUpKQorICAgICAgICBpbWFnZUJ1ZmZlciA9IGRvd25jYXN0
PE1lZGlhU2FtcGxlQVZGT2JqQz4oc2FtcGxlKS5waXhlbEJ1ZmZlcigpOworICAgIGVsc2UgaWYg
KGlzPFZpZGVvRnJhbWVDVj4oc2FtcGxlKSkKKyAgICAgICAgaW1hZ2VCdWZmZXIgPSBkb3duY2Fz
dDxWaWRlb0ZyYW1lQ1Y+KHNhbXBsZSkucGl4ZWxCdWZmZXIoKTsKKyAgICBlbHNlIHsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlOiBj
YW5ub3Qgb2J0YWluIENWUGl4ZWxCdWZmZXIgZnJvbSBzYW1wbGUuIFVua25vd24gc2FtcGxlIHR5
cGUuIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KICAgICBpZiAoIWltYWdlQnVm
ZmVyKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiUmVtb3RlVmlkZW9TYW1w
bGU6OmNyZWF0ZTogQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlciByZXR1cm5lZCBudWxscHRy
Iik7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiUmVtb3RlVmlkZW9TYW1wbGU6
OmNyZWF0ZTogY2Fubm90IG9idGFpbiBDVlBpeGVsQnVmZmVyIGZyb20gc2FtcGxlLiBObyBidWZm
ZXIuIik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLQogICAgIHN0ZDo6dW5pcXVl
X3B0cjxJT1N1cmZhY2U+IGlvU3VyZmFjZTsKICAgICBhdXRvIHN1cmZhY2UgPSBDVlBpeGVsQnVm
ZmVyR2V0SU9TdXJmYWNlKGltYWdlQnVmZmVyLmdldCgpKTsKICAgICBpZiAoIXN1cmZhY2UgJiYg
c2hvdWxkQ2hlY2tGb3JJT1N1cmZhY2UgPT0gU2hvdWxkQ2hlY2tGb3JJT1N1cmZhY2U6Olllcykg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhU2FtcGxlVmlkZW9GcmFtZUFWRi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNhbXBsZVZpZGVvRnJhbWVBVkYubW0KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0OTU5ODEyZjY2ZmNhNzA1NDE3YjAyYWY1NTFmZmMx
MzFhODQzNjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2FtcGxl
VmlkZW9GcmFtZUFWRi5tbQorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpZiBFTkFCTEUoVklERU8pCi0jaW5jbHVkZSAiTWVkaWFTYW1wbGVWaWRlb0ZyYW1lLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotTWVkaWFTYW1wbGVWaWRlb0ZyYW1lOjpNZWRpYVNh
bXBsZVZpZGVvRnJhbWUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYgcGl4ZWxCdWZmZXIs
IEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pCi0gICAgOiBtX3BpeGVsQnVmZmVyKFdURk1v
dmUocGl4ZWxCdWZmZXIpKQotICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKLXsKLX0K
LQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCAzODM3NzJjNTA0NDkyOWI5
ZTUxNTc4NDE2ZGVmNjRmODc4ODAyMzY0Li4wMmYwOTNhOGUwOTQ2MGZmZWZjOGY5M2FjYTIzZDIy
Yzk2MWJjOWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0yNjIsNyArMjYyLDcgQEAgcHJp
dmF0ZToKICAgICBib29sIHVwZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpOwogICAgIGJvb2wgdmlkZW9P
dXRwdXRIYXNBdmFpbGFibGVGcmFtZSgpOwogICAgIHZvaWQgcGFpbnRXaXRoVmlkZW9PdXRwdXQo
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jik7Ci0gICAgc3RkOjpvcHRpb25hbDxN
ZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwor
ICAgIFJlZlB0cjxWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsK
ICAgICBSZWZQdHI8TmF0aXZlSW1hZ2U+IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5h
bDsKICAgICBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSgpIGZpbmFsOwogICAgIHZv
aWQgd2FpdEZvclZpZGVvT3V0cHV0TWVkaWFEYXRhV2lsbENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KaW5kZXggZmE3NTM3ZjdkZTllNGJjM2UzYmE0MGMwOGExYzVlYTEzOGE4ZGIwMy4u
NmJkYTJmZTBiOGFhM2QyODVhMTZmMTEwMTI1M2ExNjg1Y2FlYWNmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCkBAIC02OCw2ICs2OCw3IEBACiAjaW1wb3J0ICJTb3VyY2VCdWZmZXJQYXJzZXJX
ZWJNLmgiCiAjaW1wb3J0ICJUZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oIgogI2ltcG9ydCAiVVRJ
VXRpbGl0aWVzLmgiCisjaW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIKICNpbXBvcnQgIlZpZGVvTGF5
ZXJNYW5hZ2VyT2JqQy5oIgogI2ltcG9ydCAiVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgiCiAj
aW1wb3J0ICJXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCIKQEAgLTI3MjAsMTIgKzI3MjEsMTIg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwYWludFdpdGhWaWRl
b091dHB1dChHcmFwaGljc0NvbnRleHQmIGMKIAogfQogCi1zdGQ6Om9wdGlvbmFsPE1lZGlhU2Ft
cGxlVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lKCkKK1JlZlB0cjxWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQogewogICAgIHVw
ZGF0ZUxhc3RQaXhlbEJ1ZmZlcigpOwogICAgIGlmICghbV9sYXN0UGl4ZWxCdWZmZXIpCi0gICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIE1lZGlhU2FtcGxlVmlkZW9GcmFt
ZSB7IFJldGFpblB0ciB7IG1fbGFzdFBpeGVsQnVmZmVyIH0sIEltYWdlT3JpZW50YXRpb246Ok5v
bmUgfTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFZpZGVvRnJhbWVDVjo6
Y3JlYXRlKGN1cnJlbnRNZWRpYVRpbWUoKSwgZmFsc2UsIFZpZGVvRnJhbWVDVjo6VmlkZW9Sb3Rh
dGlvbjo6Tm9uZSwgUmV0YWluUHRyIHsgbV9sYXN0UGl4ZWxCdWZmZXIgfSk7CiB9CiAKIFJlZlB0
cjxOYXRpdmVJbWFnZT4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6bmF0aXZl
SW1hZ2VGb3JDdXJyZW50VGltZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IDI5ODNj
ZWNhZGVhMjJlM2YyNTViMDc5Yzk2YTJmNzg5MWNkM2EzMzAuLmI5ZWQ2ZmZjMDhhMzkyYjI3OTQx
NTBlY2EzODRkMDM1N2JkNGZhZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0yMjIs
NyArMjIyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUxhc3RJbWFnZSgpOwogICAgIHZv
aWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKLSAgICBzdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlk
ZW9GcmFtZT4gdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CisgICAgUmVmUHRyPFZp
ZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIERlc3RpbmF0
aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkgZmluYWw7CiAKICAgICBib29sIHN1cHBvcnRzQWNj
ZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2Jq
Qy5tbQppbmRleCAxYzMzMjcyNTQ2YjRlZjhiNzk3ODhkOTA1MjdhNTBlNTRkNmQ0OWQzLi43ZDRj
MzczZDEyZGUyYjhhMWQ5OGNhNmVmNWE2MmM2MWExNjlmM2E0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJNZWRpYVNvdXJjZVByaXZhdGVD
bGllbnQuaCIKICNpbXBvcnQgIlBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaCIKICNpbXBvcnQgIlRl
eHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCisjaW1wb3J0ICJWaWRlb0ZyYW1lQ1YuaCIKICNpbXBv
cnQgIlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oIgogI2ltcG9ydCAiV2ViQ29yZURlY29tcHJlc3Np
b25TZXNzaW9uLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZBc3NldC5oPgpAQCAtNzI1LDcg
KzcyNiw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYWlu
dEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvCiAgICAgY29udGV4dC5kcmF3TmF0aXZl
SW1hZ2UoKmltYWdlLCBpbWFnZVJlY3Quc2l6ZSgpLCBvdXRwdXRSZWN0LCBpbWFnZVJlY3QpOwog
fQogCi1zdGQ6Om9wdGlvbmFsPE1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQorUmVmUHRy
PFZpZGVvRnJhbWU+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6dmlkZW9G
cmFtZUZvckN1cnJlbnRUaW1lKCkKIHsKICAgICAvLyBXZSBoYXZlIGJlZW4gYXNrZWQgdG8gcGFp
bnQgaW50byBhIFdlYkdMIGNhbnZhcywgc28gdGFrZSB0aGF0IGFzIGEgc2lnbmFsIHRvIGNyZWF0
ZQogICAgIC8vIGEgZGVjb21wcmVzc2lvbiBzZXNzaW9uLCBldmVuIGlmIHRoYXQgbWVhbnMgdGhl
IG5hdGl2ZSB2aWRlbyBjYW4ndCBhbHNvIGJlIGRpc3BsYXllZApAQCAtNzM4LDggKzczOSw4IEBA
IHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakM6OnZpZGVvCiAgICAgaWYgKCFtX2lzR2F0aGVyaW5nVmlkZW9GcmFt
ZU1ldGFkYXRhKQogICAgICAgICB1cGRhdGVMYXN0UGl4ZWxCdWZmZXIoKTsKICAgICBpZiAoIW1f
bGFzdFBpeGVsQnVmZmVyKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVy
biBNZWRpYVNhbXBsZVZpZGVvRnJhbWUgeyBSZXRhaW5QdHIgeyBtX2xhc3RQaXhlbEJ1ZmZlciB9
LCBJbWFnZU9yaWVudGF0aW9uOjpOb25lIH07CisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiBWaWRlb0ZyYW1lQ1Y6OmNyZWF0ZShjdXJyZW50TWVkaWFUaW1lKCksIGZhbHNlLCBW
aWRlb0ZyYW1lQ1Y6OlZpZGVvUm90YXRpb246Ok5vbmUsIFJldGFpblB0ciB7IG1fbGFzdFBpeGVs
QnVmZmVyIH0pOwogfQogCiBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDOjpjb2xvclNwYWNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgK
aW5kZXggNTE2ZGNkYTk2ODY3Zjc1OWZhYzVlMjA0MDkyNzVjYzA4OWMwYjMxOC4uZmY1MWZjYTc3
NmY4OTdmNTY1NDQ1Mzg0N2IwYTFlZDg0OGNjMzRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgKQEAgLTE0Myw3ICsxNDMsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwYWludChHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3Vy
cmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92
ZXJyaWRlOwotICAgIHN0ZDo6b3B0aW9uYWw8TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0Zy
YW1lRm9yQ3VycmVudFRpbWUoKSBvdmVycmlkZTsKKyAgICBSZWZQdHI8VmlkZW9GcmFtZT4gdmlk
ZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgb3ZlcnJpZGU7CiAgICAgRGVzdGluYXRpb25Db2xvclNw
YWNlIGNvbG9yU3BhY2UoKSBvdmVycmlkZTsKICAgICBib29sIG1ldGFEYXRhQXZhaWxhYmxlKCkg
Y29uc3QgeyByZXR1cm4gbV9tZWRpYVN0cmVhbVByaXZhdGUgJiYgbV9yZWFkeVN0YXRlID49IE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTWV0YWRhdGE7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLm1tCmluZGV4IDQyZmQxNzQ4N2VhNmNkMTcxMDUwNTA1ZmY1ZjNmZjVlZGZiZTdlMTUu
LjI1ZmFkOTA5MTBhYjVlNGIzZWVmMDlkYjQ3ZTY5ZjZlMWI4MDJlMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMubW0KQEAgLTMwLDkgKzMwLDEwIEBACiAKICNpbXBvcnQgIkF1ZGlvVHJhY2tQ
cml2YXRlTWVkaWFTdHJlYW0uaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCi0jaW1w
b3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5o
IgorI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFQbGF5ZXIuaCIKKyNpbXBvcnQg
Ik1lZGlhU2FtcGxlQVZGT2JqQy5oIgogI2ltcG9ydCAiTWVkaWFTZXNzaW9uTWFuYWdlckNvY29h
LmgiCiAjaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKICNpbXBvcnQgIlBpeGVsQnVmZmVy
Q29uZm9ybWVyQ1YuaCIKQEAgLTEwMjIsMTUgKzEwMjMsMTggQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBo
aWNzQ28KICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqaW1hZ2UsIGltYWdlUmVjdC5zaXpl
KCksIHRyYW5zZm9ybWVkRGVzdFJlY3QsIGltYWdlUmVjdCk7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8
TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCitSZWZQdHI8VmlkZW9GcmFtZT4gTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUo
KQogewogICAgIGlmIChtX2Rpc3BsYXlNb2RlID09IE5vbmUgfHwgIW1ldGFEYXRhQXZhaWxhYmxl
KCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIGlmIChtX2Rpc3BsYXlNb2RlID09IFBhaW50SXRCbGFjaykKLSAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFtX2ltYWdl
UGFpbnRlci5tZWRpYVNhbXBsZSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICBy
ZXR1cm4gbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUtPnZpZGVvRnJhbWUoKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGlzPFZpZGVvRnJhbWU+KCptX2ltYWdlUGFpbnRlci5t
ZWRpYVNhbXBsZSkpCisgICAgICAgIHJldHVybiAmZG93bmNhc3Q8VmlkZW9GcmFtZT4oKm1faW1h
Z2VQYWludGVyLm1lZGlhU2FtcGxlKTsKKyAgICBBU1NFUlQoaXM8TWVkaWFTYW1wbGVBVkZPYmpD
PigqbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8TWVk
aWFTYW1wbGVBVkZPYmpDPigqbV9pbWFnZVBhaW50ZXIubWVkaWFTYW1wbGUpLnZpZGVvRnJhbWUo
KTsKIH0KIAogRGVzdGluYXRpb25Db2xvclNwYWNlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6Y29sb3JTcGFjZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5oCmluZGV4IGFjMjdhMjBiN2QwYWQ1YjBhY2NhODNjMDEyNmUyNjczMGNjY2Zl
N2QuLmY2ODJhYTJjN2M0YTM1Yjk3ODc2MzQ4NTU1ZWI0NGYyMjA0M2FjM2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
U2FtcGxlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCkBAIC0zNyw2ICszNyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlcjsKIGNsYXNz
IFBpeGVsQnVmZmVyOworY2xhc3MgVmlkZW9GcmFtZUNWOwogCiBjbGFzcyBNZWRpYVNhbXBsZUFW
Rk9iakMgOiBwdWJsaWMgTWVkaWFTYW1wbGUgewogcHVibGljOgpAQCAtNzQsNyArNzUsNiBAQCBw
dWJsaWM6CiAgICAgVmlkZW9Sb3RhdGlvbiB2aWRlb1JvdGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9yb3RhdGlvbjsgfQogICAgIGJvb2wgdmlkZW9NaXJyb3JlZCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fbWlycm9yZWQ7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB1aW50MzJf
dCB2aWRlb1BpeGVsRm9ybWF0KCkgY29uc3QgZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3Rk
OjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWUoKSBjb25zdCBmaW5h
bDsKICAgICBXRUJDT1JFX0VYUE9SVCBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKCkgY29u
c3QgZmluYWw7CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9zYW1wbGUuZ2V0KCk7IH0KIApAQCAtOTAsNiArOTAsOCBAQCBwdWJsaWM6CiAgICAg
S2V5SURzJiBrZXlJRHMoKSB7IHJldHVybiBtX2tleUlEczsgfQogI2VuZGlmCiAKKyAgICAvLyBG
SVhNRTogVG8gYmUgcmVtb3ZlZCBvbmNlIFZpZGVvRnJhbWUgaXMgbm90IGEgTWVkaWFTYW1wbGUu
CisgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPFZpZGVvRnJhbWVDVj4gdmlkZW9GcmFtZSgpIGNv
bnN0OwogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhU2FtcGxlQVZGT2JqQyhS
ZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlh
U2FtcGxlQVZGT2JqQyhDTVNhbXBsZUJ1ZmZlclJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVNhbXBsZUFWRk9iakMubW0KaW5kZXggNTAwNDM0MGZlZjQ5ZTQyZWIyZmRmODM0ZmZj
Mjc5MTUzZjU4MTRlNy4uNjEwMzA1ODY0NWFkNjdmZWI2OGRmNzYzNjQ0MTY1NjM0NWNiNDk3NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQpAQCAtMjgs
NiArMjgsNyBAQAogCiAjaW1wb3J0ICJQaXhlbEJ1ZmZlci5oIgogI2ltcG9ydCAiUGl4ZWxCdWZm
ZXJDb25mb3JtZXJDVi5oIgorI2ltcG9ydCAiVmlkZW9GcmFtZUNWLmgiCiAjaW1wb3J0IDxKYXZh
U2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9UeXBlZEFy
cmF5SW5saW5lcy5oPgogI2ltcG9ydCA8d3RmL1ByaW50U3RyZWFtLmg+CkBAIC0xNjUsMjUgKzE2
NiwxNCBAQCB1aW50MzJfdCBNZWRpYVNhbXBsZUFWRk9iakM6OnZpZGVvUGl4ZWxGb3JtYXQoKSBj
b25zdAogICAgIHJldHVybiBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVm
ZmVyKTsKIH0KIAotc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IE1lZGlhU2Ft
cGxlQVZGT2JqQzo6dmlkZW9GcmFtZSgpIGNvbnN0CitSZWZQdHI8VmlkZW9GcmFtZUNWPiBNZWRp
YVNhbXBsZUFWRk9iakM6OnZpZGVvRnJhbWUoKSBjb25zdAogeworICAgIGlmICghbV9zYW1wbGUp
CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNf
Y2FzdDxDVlBpeGVsQnVmZmVyUmVmPihQQUw6OkNNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIo
bV9zYW1wbGUuZ2V0KCkpKTsKICAgICBpZiAoIXBpeGVsQnVmZmVyKQotICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwotICAgIEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBbJl0gewot
ICAgICAgICAvLyBTYW1wbGUgdHJhbnNmb3JtIGZpcnN0IGZsaXBzIHgtY29vcmRpbmF0ZXMsIHRo
ZW4gcm90YXRlcy4KLSAgICAgICAgc3dpdGNoIChtX3JvdGF0aW9uKSB7Ci0gICAgICAgIGNhc2Ug
TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gbV9t
aXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblRvcFJpZ2h0IDogSW1hZ2VPcmllbnRh
dGlvbjo6T3JpZ2luVG9wTGVmdDsKLSAgICAgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbjo6UmlnaHQ6Ci0gICAgICAgICAgICByZXR1cm4gbV9taXJyb3JlZCA/IEltYWdlT3JpZW50
YXRpb246Ok9yaWdpblJpZ2h0Qm90dG9tIDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luUmlnaHRU
b3A7Ci0gICAgICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd246
Ci0gICAgICAgICAgICByZXR1cm4gbV9taXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdp
bkJvdHRvbUxlZnQgOiBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5Cb3R0b21SaWdodDsKLSAgICAg
ICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDoKLSAgICAgICAgICAgIHJl
dHVybiBtX21pcnJvcmVkID8gSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luTGVmdFRvcCA6IEltYWdl
T3JpZW50YXRpb246Ok9yaWdpbkxlZnRCb3R0b207Ci0gICAgICAgIH0KLSAgICB9KCk7Ci0gICAg
cmV0dXJuIE1lZGlhU2FtcGxlVmlkZW9GcmFtZSB7IFJldGFpblB0ciB7IHBpeGVsQnVmZmVyIH0s
IG9yaWVudGF0aW9uIH07CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBWaWRl
b0ZyYW1lQ1Y6OmNyZWF0ZShwcmVzZW50YXRpb25UaW1lKCksIG1fbWlycm9yZWQsIG1fcm90YXRp
b24sIFJldGFpblB0ciB7IHBpeGVsQnVmZmVyIH0pOwogfQogCiBzdGF0aWMgYm9vbCBpc0NNU2Ft
cGxlQnVmZmVyQXR0YWNobWVudFJhbmRvbUFjY2VzcyhDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVu
dERpY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCA0N2Q3MTA2MTExYzVi
NjFjY2I0NWMyN2EwZDFmMzQ0YTFhNTFjMGY0Li5hMGJmY2YyNzI5NTE2ZTI0ZTZjOTliMjBhNjQ1
MjNjN2NlODlkYzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTM4LDYg
KzM4LDcgQEAKICNpbXBvcnQgIlBpeGVsQnVmZmVyLmgiCiAjaW1wb3J0ICJQcm9jZXNzSWRlbnRp
dHkuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgorI2ltcG9ydCAiVmlk
ZW9GcmFtZUNWLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAj
aW1wb3J0IDxNZXRhbC9NZXRhbC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9NZXRhbFNQSS5o
PgpAQCAtNzgyLDYgKzc4Myw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y29weVRl
eHR1cmVGcm9tTWVkaWEoTWVkaWFQbGF5ZXImIHBsYXllciwgUGxhdGZvcm1HCiAgICAgYXV0byB2
aWRlb0ZyYW1lID0gcGxheWVyLnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpOwogICAgIGlmICgh
dmlkZW9GcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIEFTU0VSVChpczxWaWRlb0Zy
YW1lQ1Y+KCp2aWRlb0ZyYW1lKSk7CiAKICAgICBhdXRvIGNvbnRleHRDViA9IGFzQ1YoKTsKICAg
ICBpZiAoIWNvbnRleHRDVikKQEAgLTc4OSw3ICs3OTEsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4
dEdMQ29jb2E6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKE1lZGlhUGxheWVyJiBwbGF5ZXIsIFBsYXRm
b3JtRwogCiAgICAgVU5VU0VEX1ZBUklBQkxFKHByZW11bHRpcGx5QWxwaGEpOwogICAgIEFTU0VS
VF9VTlVTRUQob3V0cHV0VGFyZ2V0LCBvdXRwdXRUYXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0R0w6
OlRFWFRVUkVfMkQpOwotICAgIHJldHVybiBjb250ZXh0Q1YtPmNvcHlWaWRlb1NhbXBsZVRvVGV4
dHVyZSgqdmlkZW9GcmFtZSwgb3V0cHV0VGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBm
b3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpOworICAgIHJldHVy
biBjb250ZXh0Q1YtPmNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShkb3duY2FzdDxWaWRlb0ZyYW1l
Q1Y+KCp2aWRlb0ZyYW1lKSwgb3V0cHV0VGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBm
b3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFn
ZS9Tb3VyY2VHcmFwaGljQ29yZUltYWdlQXBwbGllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9Tb3VyY2VHcmFwaGljQ29yZUltYWdlQXBwbGllci5tbQpp
bmRleCAxNDZiZGQ5MmIzYmI0YWEzYTdmMGZjZTJhZjI5MTY2ODk4Yzg3MzZkLi41ZjE2NWExYjkw
ODcxNzQyYmE1N2I5YWIzYmFkMWM5ZjUyYmQ2Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvU291cmNlR3JhcGhpY0NvcmVJbWFnZUFwcGxp
ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL1Nv
dXJjZUdyYXBoaWNDb3JlSW1hZ2VBcHBsaWVyLm1tCkBAIC0zMCw2ICszMCw5IEBACiAKICNpbXBv
cnQgIkZpbHRlckltYWdlLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUltYWdlQnVmZmVyLmgiCisjaW1w
b3J0IDxDb3JlSW1hZ2UvQ0lDb250ZXh0Lmg+CisjaW1wb3J0IDxDb3JlSW1hZ2UvQ0lGaWx0ZXIu
aD4KKyNpbXBvcnQgPENvcmVJbWFnZS9Db3JlSW1hZ2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFw
aGljc0NvbnRleHRHTENWLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9H
cmFwaGljc0NvbnRleHRHTENWLmgKaW5kZXggYWMxNDc1ZTlkYTM2ZWQxNDEzNTIyZTk2OTEyMmI2
MzFlMzE5M2VmYS4uYzYwMmZiZWI3Mjk2OGRhZjY0MjE3ZjAxZjk1MGEyNGE3YzViZjhmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250
ZXh0R0xDVi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBo
aWNzQ29udGV4dEdMQ1YuaApAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dEdMLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIE1lZGlhU2FtcGxlVmlkZW9G
cmFtZTsKK2NsYXNzIFZpZGVvRnJhbWVDVjsKIAogLy8gSW50ZXJmYWNlIHRvIGludGVyYWN0IHdp
dGggQ1Ygb2JqZWN0cyBhbmQgR3JhcGhpY3NDb250ZXh0R0wuCiBjbGFzcyBHcmFwaGljc0NvbnRl
eHRHTENWIHsKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIHVzaW5nIEZsaXBZID0gR3Jh
cGhpY3NDb250ZXh0R0w6OkZsaXBZOwogICAgIC8vIENvcGllcyBDViBwaXhlbCBidWZmZXIgdG8g
R3JhcGhpY3NDb250ZXh0R0wgVEVYVFVSRV8yRCB0ZXh0dXJlIG9mIHRoZSBzYW1lIHNpemUgYXMg
dGhlIHBpeGVsIGJ1ZmZlci4KICAgICAvLyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KLSAgICB2
aXJ0dWFsIGJvb2wgY29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKGNvbnN0IE1lZGlhU2FtcGxlVmlk
ZW9GcmFtZSYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGludCBsZXZlbCwg
R0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwg
RmxpcFkpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgY29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKGNv
bnN0IFZpZGVvRnJhbWVDViYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0NHTGlu
dCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVu
dW0gdHlwZSwgRmxpcFkpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2Eu
Y3BwCmluZGV4IGE4M2NmYTI5NTcwODYwZjMzOTM0YTM4NzI4NmQ2OWI1MjgwNGE1MDIuLjQyZjRk
M2QzMDZjMmI0OWZkODVmODEzYzQzMmM4YWQxMWY1NzA1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0
R0xDVkNvY29hLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkZvdXJDQy5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisj
aW5jbHVkZSAiVmlkZW9GcmFtZUNWLmgiCiAjaW5jbHVkZSA8cGFsL3NwaS9jZi9Db3JlVmlkZW9T
UEkuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtNTg2LDcgKzU4Nyw3IEBAIEdyYXBoaWNzQ29udGV4
dEdMQ1ZDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hKEdyYXBoaWNzQ29udGV4dEdMQ29j
b2EmIG93bmVyCiAgICAgR0xfQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2ZyYW1l
YnVmZmVyKTsKIH0KIAotYm9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlWaWRlb1Nh
bXBsZVRvVGV4dHVyZShjb25zdCBNZWRpYVNhbXBsZVZpZGVvRnJhbWUmIHZpZGVvRnJhbWUsIFBs
YXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5h
bEZvcm1hdCwgR0xlbnVtIGZvcm1hdCwgR0xlbnVtIHR5cGUsIEZsaXBZIHVucGFja0ZsaXBZKQor
Ym9vbCBHcmFwaGljc0NvbnRleHRHTENWQ29jb2E6OmNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShj
b25zdCBWaWRlb0ZyYW1lQ1YmIHZpZGVvRnJhbWUsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4
dHVyZSwgR0xpbnQgbGV2ZWwsIEdMZW51bSBpbnRlcm5hbEZvcm1hdCwgR0xlbnVtIGZvcm1hdCwg
R0xlbnVtIHR5cGUsIEZsaXBZIHVucGFja0ZsaXBZKQogewogICAgIGF1dG8gaW1hZ2UgPSB2aWRl
b0ZyYW1lLnBpeGVsQnVmZmVyKCk7CiAgICAgLy8gRklYTUU6IFRoaXMgY3VycmVudGx5IG9ubHkg
c3VwcG9ydHMgJzQyMHYnIGFuZCAnNDIwZicgcGl4ZWwgZm9ybWF0cy4gSW52ZXN0aWdhdGUgc3Vw
cG9ydGluZyBtb3JlIHBpeGVsIGZvcm1hdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jdi9HcmFwaGljc0NvbnRleHRHTENWQ29jb2EuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oCmlu
ZGV4IDc3ZGVkZDQ4NzI5MTE5NjExMzU3YmJkZGI2Y2M2OGMzODg5YmIwMDEuLjA2YTk5NWQ2MjE1
NjE3Yzg3YjgxNDA0NmVhNDA3Njc0ZTg3MDJiMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZDb2Nv
YS5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKIAogICAgIH5HcmFwaGljc0NvbnRleHRHTENW
Q29jb2EoKSBmaW5hbDsKIAotICAgIGJvb2wgY29weVZpZGVvU2FtcGxlVG9UZXh0dXJlKGNvbnN0
IE1lZGlhU2FtcGxlVmlkZW9GcmFtZSYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVyZSwg
R0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1hdCwg
R0NHTGVudW0gdHlwZSwgRmxpcFkpIGZpbmFsOworICAgIGJvb2wgY29weVZpZGVvU2FtcGxlVG9U
ZXh0dXJlKGNvbnN0IFZpZGVvRnJhbWVDViYsIFBsYXRmb3JtR0xPYmplY3Qgb3V0cHV0VGV4dHVy
ZSwgR0NHTGludCBsZXZlbCwgR0NHTGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDR0xlbnVtIGZvcm1h
dCwgR0NHTGVudW0gdHlwZSwgRmxpcFkpIGZpbmFsOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlS25v
d25UZXh0dXJlQ29udGVudChHQ0dMdWludCB0ZXh0dXJlKTsKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1YuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjgzMWM4ODAyY2M4YzgzMzkzNDRmYjBkNzRlMWRiM2ZkM2JkZGY3ZGEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb0ZyYW1lQ1Yu
aApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCisKKyNpbmNsdWRlICJJbWFnZU9yaWVudGF0
aW9uLmgiCisjaW5jbHVkZSAiVmlkZW9GcmFtZS5oIgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KKwordXNpbmcgQ1ZQaXhlbEJ1ZmZlclJlZiA9IHN0cnVjdCBfX0NWQnVmZmVyKjsKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBWaWRlb0ZyYW1lQ1YgOiBwdWJsaWMgVmlkZW9GcmFt
ZSB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxWaWRlb0ZyYW1lQ1Y+
IGNyZWF0ZShNZWRpYVRpbWUgcHJlc2VudGF0aW9uVGltZSwgYm9vbCBpc01pcnJvcmVkLCBWaWRl
b1JvdGF0aW9uLCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJik7CisgICAgV0VCQ09SRV9F
WFBPUlQgflZpZGVvRnJhbWVDVigpOworCisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
cigpIGNvbnN0IHsgcmV0dXJuIG1fcGl4ZWxCdWZmZXIuZ2V0KCk7IH0KKyAgICBJbWFnZU9yaWVu
dGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
RGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFZpZGVvRnJhbWVDVj4+IGRlY29k
ZShEZWNvZGVyJik7CisKKyAgICAvLyBWaWRlb0ZyYW1lIG92ZXJyaWRlcy4KKyAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgcHJlc2VudGF0aW9uU2l6ZSgpIGNvbnN0IGZpbmFsOworICAgIHVpbnQzMl90
IHZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIGlzQ1YoKSBjb25zdCBm
aW5hbCB7IHJldHVybiB0cnVlOyB9CisKK3ByaXZhdGU6CisgICAgV0VCQ09SRV9FWFBPUlQgVmlk
ZW9GcmFtZUNWKE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lLCBib29sIGlzTWlycm9yZWQsIFZp
ZGVvUm90YXRpb24sIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmKTsKKworICAgIGNvbnN0
IFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyOworfTsKKwordGVtcGxh
dGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBWaWRlb0ZyYW1lQ1Y6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9wcmVzZW50YXRpb25UaW1lIDw8IG1f
aXNNaXJyb3JlZCA8PCBtX3JvdGF0aW9uIDw8IG1fcGl4ZWxCdWZmZXI7Cit9CisKK3RlbXBsYXRl
PHR5cGVuYW1lIERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFZpZGVvRnJhbWVDVj4+IFZp
ZGVvRnJhbWVDVjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgYXV0byBwcmVzZW50
YXRpb25UaW1lID0gZGVjb2Rlci50ZW1wbGF0ZSBkZWNvZGU8TWVkaWFUaW1lPigpOworICAgIGF1
dG8gaXNNaXJyb3JlZCA9IGRlY29kZXIudGVtcGxhdGUgZGVjb2RlPGJvb2w+KCk7CisgICAgYXV0
byByb3RhdGlvbiA9IGRlY29kZXIudGVtcGxhdGUgZGVjb2RlPFZpZGVvUm90YXRpb24+KCk7Cisg
ICAgYXV0byBwaXhlbEJ1ZmZlciA9IGRlY29kZXIudGVtcGxhdGUgZGVjb2RlPFJldGFpblB0cjxD
VlBpeGVsQnVmZmVyUmVmPj4oKTsKKyAgICBpZiAoIWRlY29kZXIuaXNWYWxpZCgpIHx8ICEqcGl4
ZWxCdWZmZXIpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0dXJuIFZpZGVv
RnJhbWVDVjo6Y3JlYXRlKCpwcmVzZW50YXRpb25UaW1lLCAqaXNNaXJyb3JlZCwgKnJvdGF0aW9u
LCBXVEZNb3ZlKCpwaXhlbEJ1ZmZlcikpOworfQorCit9CisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfQkVHSU4oV2ViQ29yZTo6VmlkZW9GcmFtZUNWKQorICAgIHN0YXRpYyBib29sIGlzVHlwZShj
b25zdCBXZWJDb3JlOjpWaWRlb0ZyYW1lJiB2aWRlb0ZyYW1lKSB7IHJldHVybiB2aWRlb0ZyYW1l
LmlzQ1YoKTsgfQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpNZWRpYVNh
bXBsZSYgbWVkaWFTYW1wbGUpIHsgcmV0dXJuIGlzPFdlYkNvcmU6OlZpZGVvRnJhbWU+KG1lZGlh
U2FtcGxlKSAmJiBpczxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+KGRvd25jYXN0PFdlYkNvcmU6OlZp
ZGVvRnJhbWU+KG1lZGlhU2FtcGxlKSk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
di9WaWRlb0ZyYW1lQ1YubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9W
aWRlb0ZyYW1lQ1YubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTVhNmQwODJiYmU0MmMzMTczYWJjMWZhODgxMmU0
NDFjYWM2ZjZlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L1ZpZGVvRnJhbWVDVi5tbQpAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlZpZGVvRnJhbWVDVi5oIgorCisjaWYgRU5B
QkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQorI2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRM
aW5rLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFZpZGVvRnJhbWVDVj4gVmlkZW9G
cmFtZUNWOjpjcmVhdGUoTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWUsIGJvb2wgaXNNaXJyb3Jl
ZCwgVmlkZW9Sb3RhdGlvbiByb3RhdGlvbiwgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYg
cGl4ZWxCdWZmZXIpCit7CisgICAgQVNTRVJUKHBpeGVsQnVmZmVyKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBWaWRlb0ZyYW1lQ1YocHJlc2VudGF0aW9uVGltZSwgaXNNaXJyb3JlZCwgcm90
YXRpb24sIFdURk1vdmUocGl4ZWxCdWZmZXIpKSk7Cit9CisKK1ZpZGVvRnJhbWVDVjo6VmlkZW9G
cmFtZUNWKE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lLCBib29sIGlzTWlycm9yZWQsIFZpZGVv
Um90YXRpb24gcm90YXRpb24sIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmIHBpeGVsQnVm
ZmVyKQorICAgIDogVmlkZW9GcmFtZShwcmVzZW50YXRpb25UaW1lLCBpc01pcnJvcmVkLCByb3Rh
dGlvbikKKyAgICAsIG1fcGl4ZWxCdWZmZXIoV1RGTW92ZShwaXhlbEJ1ZmZlcikpCit7Cit9CisK
K1ZpZGVvRnJhbWVDVjo6flZpZGVvRnJhbWVDVigpID0gZGVmYXVsdDsKKworV2ViQ29yZTo6Rmxv
YXRTaXplIFZpZGVvRnJhbWVDVjo6cHJlc2VudGF0aW9uU2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHsgc3RhdGljX2Nhc3Q8ZmxvYXQ+KENWUGl4ZWxCdWZmZXJHZXRXaWR0aChtX3BpeGVsQnVm
ZmVyLmdldCgpKSksIHN0YXRpY19jYXN0PGZsb2F0PihDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KG1f
cGl4ZWxCdWZmZXIuZ2V0KCkpKSB9OworfQorCit1aW50MzJfdCBWaWRlb0ZyYW1lQ1Y6OnZpZGVv
UGl4ZWxGb3JtYXQoKSBjb25zdAoreworICAgIHJldHVybiBDVlBpeGVsQnVmZmVyR2V0UGl4ZWxG
b3JtYXRUeXBlKG1fcGl4ZWxCdWZmZXIuZ2V0KCkpOworfQorCitJbWFnZU9yaWVudGF0aW9uIFZp
ZGVvRnJhbWVDVjo6b3JpZW50YXRpb24oKSBjb25zdAoreworICAgIC8vIFNhbXBsZSB0cmFuc2Zv
cm0gZmlyc3QgZmxpcHMgeC1jb29yZGluYXRlcywgdGhlbiByb3RhdGVzLgorICAgIHN3aXRjaCAo
bV9yb3RhdGlvbikgeworICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU6
CisgICAgICAgIHJldHVybiBtX2lzTWlycm9yZWQgPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5U
b3BSaWdodCA6IEltYWdlT3JpZW50YXRpb246Ok9yaWdpblRvcExlZnQ7CisgICAgY2FzZSBNZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ6CisgICAgICAgIHJldHVybiBtX2lzTWlycm9y
ZWQgPyBJbWFnZU9yaWVudGF0aW9uOjpPcmlnaW5SaWdodEJvdHRvbSA6IEltYWdlT3JpZW50YXRp
b246Ok9yaWdpblJpZ2h0VG9wOworICAgIGNhc2UgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246
OlVwc2lkZURvd246CisgICAgICAgIHJldHVybiBtX2lzTWlycm9yZWQgPyBJbWFnZU9yaWVudGF0
aW9uOjpPcmlnaW5Cb3R0b21MZWZ0IDogSW1hZ2VPcmllbnRhdGlvbjo6T3JpZ2luQm90dG9tUmln
aHQ7CisgICAgY2FzZSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDoKKyAgICAgICAg
cmV0dXJuIG1faXNNaXJyb3JlZCA/IEltYWdlT3JpZW50YXRpb246Ok9yaWdpbkxlZnRUb3AgOiBJ
bWFnZU9yaWVudGF0aW9uOjpPcmlnaW5MZWZ0Qm90dG9tOworICAgIH0KK30KKworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCmluZGV4IDA0Y2ExMGUxOGYxNTA4MTVmM2ZkNjkz
ZmZiMzI2OTUzNDIyN2Q5NmEuLjRhNjdjNWQxNmU1YTBmZjlmOTg3ZmQyNDNhMmRiOTU4ZDNkZTJh
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcApAQCAtMjg3LDcgKzI4Nyw3IEBAIHZvaWQg
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbU1lZGlhKFdlYkNvcmU6Ok1l
ZGlhUGxheWVySWRlbnRpZmllCiAgICAgVU5VU0VEX1ZBUklBQkxFKHByZW11bHRpcGx5QWxwaGEp
OwogICAgIEFTU0VSVF9VTlVTRUQodGFyZ2V0LCB0YXJnZXQgPT0gR3JhcGhpY3NDb250ZXh0R0w6
OlRFWFRVUkVfMkQpOwogCi0gICAgc3RkOjpvcHRpb25hbDxNZWRpYVNhbXBsZVZpZGVvRnJhbWU+
IHZpZGVvRnJhbWU7CisgICAgUmVmUHRyPFZpZGVvRnJhbWU+IHZpZGVvRnJhbWU7CiAgICAgYXV0
byBnZXRWaWRlb0ZyYW1lID0gWyZdIHsKICAgICAgICAgaWYgKCFtX2dwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yOTgsNyArMjk4LDcgQEAgdm9pZCBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y29weVRleHR1cmVGcm9tTWVkaWEoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJJZGVudGlmaWUKIAogICAgIGNhbGxPbk1haW5SdW5Mb29wQW5kV2FpdChXVEZNb3Zl
KGdldFZpZGVvRnJhbWUpKTsKIAotICAgIGlmICghdmlkZW9GcmFtZSkgeworICAgIGlmICghdmlk
ZW9GcmFtZSB8fCAhaXM8VmlkZW9GcmFtZUNWPigqdmlkZW9GcmFtZSkpIHsKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzA5LDcg
KzMwOSw3IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbU1l
ZGlhKFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0Q1YtPmNvcHlWaWRlb1NhbXBsZVRvVGV4
dHVyZSgqdmlkZW9GcmFtZSwgdGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBmb3JtYXQs
IHR5cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpKTsKKyAgICBjb21wbGV0aW9u
SGFuZGxlcihjb250ZXh0Q1YtPmNvcHlWaWRlb1NhbXBsZVRvVGV4dHVyZShkb3duY2FzdDxWaWRl
b0ZyYW1lQ1Y+KCp2aWRlb0ZyYW1lKSwgdGV4dHVyZSwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBm
b3JtYXQsIHR5cGUsIEdyYXBoaWNzQ29udGV4dEdMOjpGbGlwWShmbGlwWSkpKTsKICNlbHNlCiAg
ICAgVU5VU0VEX1ZBUklBQkxFKG1lZGlhUGxheWVySWRlbnRpZmllcik7CiAgICAgVU5VU0VEX1ZB
UklBQkxFKHRleHR1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IDcxMWNlZDBiZjEzMTQyNTkx
Nzc1ZmZkNzkzYWU1YTg2YzZhZTBjZmUuLmNkMmM1MWJiZDMyZTI4YzJmZTQzNDZlOWYyNjM1MDE4
OWVlYTY2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTY3LDYgKzY3LDcgQEAKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQogI2luY2x1ZGUgPFdlYkNvcmUvQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvRnJhbWVDVi5oPgogI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewpAQCAtMTA3LDcgKzEwOCw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6aW52YWxpZGF0ZSgpCiAgICAgfQogICAgIG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVz
dCA9IHsgfTsKICNpZiBVU0UoQVZGT1VOREFUSU9OKQotICAgIG1fdmlkZW9GcmFtZUZvckN1cnJl
bnRUaW1lID0gc3RkOjpudWxsb3B0OworICAgIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID0g
bnVsbHB0cjsKICNlbmRpZgogfQogCkBAIC04NjcsMjAgKzg2OCwyOCBAQCB2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OmN1cnJlbnRUaW1lQ2hhbmdlZChjb25zdCBNZWRpYVRpbWUmIG1lZGlh
VGltZSkKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6OkN1cnJlbnRUaW1lQ2hhbmdlZChtZWRpYVRpbWUsIE1vbm90b25p
Y1RpbWU6Om5vdygpLCAhbWVkaWFQbGF5ZXJQYXVzZWRPclN0YWxsZWQoKSksIG1faWQpOwogfQog
Ci12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlm
Q2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVk
aWFTYW1wbGVWaWRlb0ZyYW1lPiYmLCBib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKy8vIEZJ
WE1FOiBUaGlzIHdpbGwgYmUgdHVybmVkIGludG8gY3Jvc3MtcGxhdGZvcm0gY29kZSBzb29uLgor
I2lmIFBMQVRGT1JNKENPQ09BKQordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0Zy
YW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiYmLCBib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlk
ZW9GcmFtZT4gcmVzdWx0OworICAgIHN0ZDo6b3B0aW9uYWw8UmVmUHRyPFdlYkNvcmU6OlZpZGVv
RnJhbWVDVj4+IHJlc3VsdDsKICAgICBib29sIGNoYW5nZWQgPSBmYWxzZTsKLSAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gdmlkZW9GcmFtZTsKKyAgICBS
ZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZT4gdmlkZW9GcmFtZTsKICAgICBpZiAobV9wbGF5ZXIp
CiAgICAgICAgIHZpZGVvRnJhbWUgPSBtX3BsYXllci0+dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1l
KCk7Ci0gICAgaWYgKCEobV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPT0gdmlkZW9GcmFtZSkp
IHsKKyAgICBpZiAobV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgIT0gdmlkZW9GcmFtZSkgewog
ICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSA9IHZpZGVvRnJhbWU7CiAgICAgICAg
IGNoYW5nZWQgPSB0cnVlOwotICAgICAgICByZXN1bHQgPSBXVEZNb3ZlKHZpZGVvRnJhbWUpOwor
ICAgICAgICBSZWZQdHI8VmlkZW9GcmFtZUNWPiB2aWRlb0ZyYW1lQ1Y7CisgICAgICAgIGlmICh2
aWRlb0ZyYW1lKSB7CisgICAgICAgICAgICBBU1NFUlQoaXM8VmlkZW9GcmFtZUNWPigqdmlkZW9G
cmFtZSkpOworICAgICAgICAgICAgdmlkZW9GcmFtZUNWID0gJmRvd25jYXN0PFZpZGVvRnJhbWVD
Vj4oKnZpZGVvRnJhbWUpOworICAgICAgICB9CisgICAgICAgIHJlc3VsdCA9IFdURk1vdmUodmlk
ZW9GcmFtZUNWKTsKICAgICB9CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQp
LCBjaGFuZ2VkKTsKIH0KKyNlbmRpZgogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnVw
ZGF0ZUNhY2hlZFN0YXRlKGJvb2wgZm9yY2VDdXJyZW50VGltZVVwZGF0ZSkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5oCmluZGV4IDU5NWM1ODkxOWVhMTNmZWI5NWQ4ZmMwZDBiNDMyMzA2OGE4MmEwYmEuLmFjMTE4
ZjY3ODJjYTY4NjczOGYyNTU3NzU4MzgwNDkwMzkxNTI4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAt
NzgsNiArNzgsMTIgQEAgY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ7CiBjbGFzcyBW
aWRlb1RyYWNrUHJpdmF0ZTsKIAogc3RydWN0IEZvdXJDQzsKKworY2xhc3MgVmlkZW9GcmFtZTsK
KworI2lmIFBMQVRGT1JNKENPQ09BKQorY2xhc3MgVmlkZW9GcmFtZUNWOworI2VuZGlmCiB9CiAK
ICNpZiBVU0UoQVZGT1VOREFUSU9OKQpAQCAtMzI3LDggKzMzMyw4IEBAIHByaXZhdGU6CiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXVEY6Ok1hY2hTZW5kUmlnaHQ+JiYsIFdl
YkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSk+JiYpOwogICAgIHZvaWQgY29sb3JTcGFjZShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSk+JiYp
OworICAgIHZvaWQgdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lSWZDaGFuZ2VkKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFtZUNWPj4m
JiwgYm9vbCk+JiYpOwogI2VuZGlmCi0gICAgdm9pZCB2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJ
ZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlVmlkZW9GcmFtZT4mJiwgYm9vbCk+JiYpOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dlcigpIGZpbmFsIHsgcmV0
dXJuIG1fbG9nZ2VyOyB9CkBAIC0zODQsNyArMzkwLDcgQEAgcHJpdmF0ZToKICAgICBTY29wZWRS
ZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0IG1fcmVuZGVyaW5nUmVzb3VyY2VzUmVxdWVzdDsKIAog
ICAgIGJvb2wgbV9vYnNlcnZpbmdUaW1lQ2hhbmdlcyB7IGZhbHNlIH07Ci0gICAgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IG1fdmlkZW9GcmFtZUZvckN1cnJl
bnRUaW1lOworICAgIFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lPiBtX3ZpZGVvRnJhbWVGb3JD
dXJyZW50VGltZTsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXIm
IG1fbG9nZ2VyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4
IDRlNGZlY2EyODMxYTRjZDNlM2E5YmU3OTJhYjIwNWIxZTEzZWQyNjIuLmNjMTM3YWRlNTE5YmM2
ZDQ3MDc1NmNmNTcwMWQwNDY2ZTE1ZGQ3N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC0xMjUsOCArMTI1LDggQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eSBOb3RSZWZDb3VudGVkIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBOYXRpdmVJbWFn
ZUZvckN1cnJlbnRUaW1lKCkgLT4gKHN0ZDo6b3B0aW9uYWw8TWFjaFNlbmRSaWdodD4gc2VuZFJp
Z2h0LCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSkgU3luY2hyb25v
dXMKICAgICBDb2xvclNwYWNlKCkgLT4gKFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBj
b2xvclNwYWNlKSBTeW5jaHJvbm91cworICAgIFZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hh
bmdlZCgpIC0+IChzdGQ6Om9wdGlvbmFsPFJlZlB0cjxXZWJDb3JlOjpWaWRlb0ZyYW1lQ1Y+PiB2
aWRlb0ZyYW1lLCBib29sIGNoYW5nZWQpIFN5bmNocm9ub3VzCiAjZW5kaWYKLSAgICBWaWRlb0Zy
YW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpN
ZWRpYVNhbXBsZVZpZGVvRnJhbWU+IHZpZGVvRnJhbWUsIGJvb2wgY2hhbmdlZCkgU3luY2hyb25v
dXMKIAogICAgIFBsYXlBdEhvc3RUaW1lKE1vbm90b25pY1RpbWUgdGltZSkKICAgICBQYXVzZUF0
SG9zdFRpbWUoTW9ub3RvbmljVGltZSB0aW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0FyZ3VtZW50Q29kZXJzLmgKaW5kZXggYTMzNDJjM2JjM2U3ZTIxMzQ4ZmUyMDg4N2NjMWRmZWYy
YmY5NTk2Yy4uNzFlNTIyOGJmNjA4NWZlZmUwMjc4ZTZiMWFmMzU1NTkzOTc4YjhmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXJndW1lbnRDb2RlcnMuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Bcmd1bWVudENvZGVycy5oCkBAIC0yNjUsNiArMjY1
LDMxIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPHN0ZDo6cGFpcjxULCBVPj4gewogICAgIH0KIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFJlZlB0cjxUPj4geworICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFUgPSBUPgorICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBS
ZWZQdHI8VT4mIG9iamVjdCkKKyAgICB7CisgICAgICAgIGlmIChvYmplY3QpCisgICAgICAgICAg
ICBlbmNvZGVyIDw8IHRydWUgPDwgKm9iamVjdDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
ZW5jb2RlciA8PCBmYWxzZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVID0gVD4K
KyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZWZQdHI8VT4+IGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQorICAgIHsKKyAgICAgICAgYXV0byBoYXNPYmplY3QgPSBkZWNvZGVyLnRlbXBsYXRlIGRl
Y29kZTxib29sPigpOworICAgICAgICBpZiAoIWhhc09iamVjdCkKKyAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGlmICghKmhhc09iamVjdCkKKyAgICAgICAgICAgIHJl
dHVybiBSZWZQdHI8VT4geyB9OworICAgICAgICAvLyBEZWNvZGVycyBvZiBVIGhlbGQgd2l0aCBS
ZWZQdHIgZG8gbm90IHJldHVybiBzdGQ6Om9wdGlvbmFsPFU+IGJ1dAorICAgICAgICAvLyBzdGQ6
Om9wdGlvbmFsPFJlZlB0cjxVPj4uIFdlIGNhbm5vdCB1c2UgYGRlY29kZXIudGVtcGxhdGUgZGVj
b2RlPFU+KClgCisgICAgICAgIC8vIEN1cnJlbnRseSBleHBlY3QgIm1vZGVybiBkZWNvZGVyIiAt
bGlrZSBkZWNvZGUgZnVuY3Rpb24uCisgICAgICAgIHJldHVybiBVOjpkZWNvZGUoZGVjb2Rlcik7
CisgICAgfQorfTsKKwogdGVtcGxhdGU8c2l6ZV90IGluZGV4LCB0eXBlbmFtZS4uLiBFbGVtZW50
cz4KIHN0cnVjdCBUdXBsZUVuY29kZXIgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAyMjRiZmZmNmY4
ZTZiYmYwMDdhMjY1NTBjMzE0OGRkMzM1M2VhMTI0Li41M2MzZDk2MGQzYmE3Y2JkOGRhZjhjYjA1
YTZiMjUyNWQ1NWJmZGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKQEAgLTM4Myw2ICszODMsNyBAQCBkZWYgY29uZGl0aW9uc19mb3JfaGVhZGVyKGhlYWRlcik6
CiAgICAgICAgICc8V2ViQ29yZS9DVlV0aWxpdGllcy5oPic6IFsiUExBVEZPUk0oQ09DT0EpIiwg
XSwKICAgICAgICAgJzxXZWJDb3JlL0RhdGFEZXRlY3RvclR5cGUuaD4nOiBbIkVOQUJMRShEQVRB
X0RFVEVDVElPTikiXSwKICAgICAgICAgJzxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRDb250
ZXh0Lmg+JzogWyJFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSJdLAorICAgICAgICAn
PFdlYkNvcmUvVmlkZW9GcmFtZUNWLmg+JzogWyJQTEFURk9STShDT0NPQSkiLCBdLAogICAgIH0K
ICAgICBpZiBub3QgaGVhZGVyIGluIGNvbmRpdGlvbnM6CiAgICAgICAgIHJldHVybiBOb25lCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggNWM3MWEyNjhlMGQwYjQ2NzUwYjNiNjJm
NWM3ZGNmNzcyZjJiMDY4Ny4uYzE5ZjI1NTBhZGIzMGFjNzNhOTYwZGJkZjQ4M2ZiNTg5MGMzZjBi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtODAsOCArODAsOSBAQAogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSNpbXBvcnQgPFdlYkNvcmUvUGl4ZWxCdWZmZXJD
b25mb3JtZXJDVi5oPgotI2ltcG9ydCA8V2ViQ29yZS9WaWRlb0xheWVyTWFuYWdlck9iakMuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1BpeGVsQnVmZmVyQ29uZm9ybWVyQ1YuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1ZpZGVvRnJhbWVDVi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9MYXllck1hbmFn
ZXJPYmpDLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTAwMiwxNCArMTAw
MywyMSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6Y29weVZpZGVvVGV4dHVyZVRv
UGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaQogfQogI2VuZGlmCiAKLXN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpCitSZWZQdHI8V2ViQ29yZTo6VmlkZW9GcmFt
ZT4gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjp2aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUoKQog
ewotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiByZXN1
bHQ7CisvLyBGSVhNRTogVGhpcyB3aWxsIGJlIG1hZGUgY3Jvc3MtcGxhdGZvcm0gYWdhaW4gc29v
bi4gVGhlcmUgYXJlIG5vIG90aGVyIHBsYXRmb3JtcyB1c2luZyB0aGlzIGF0IHRoZSBtb21lbnQu
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgc3RkOjpvcHRpb25hbDxSZWZQdHI8V2ViQ29yZTo6
VmlkZW9GcmFtZUNWPj4gcmVzdWx0OwogICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOwogICAgIGlm
ICghY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjpWaWRlb0ZyYW1lRm9yQ3VycmVudFRpbWVJZkNoYW5nZWQoKSwgTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OlZpZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZDo6UmVwbHko
cmVzdWx0LCBjaGFuZ2VkKSwgbV9pZCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0g
ICAgaWYgKGNoYW5nZWQpCi0gICAgICAgIG1fdmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID0gV1RG
TW92ZShyZXN1bHQpOworICAgICAgICByZXR1cm4gbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWU7
CisgICAgaWYgKGNoYW5nZWQpIHsKKyAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgIG1f
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID0gV1RGTW92ZSgqcmVzdWx0KTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgbV92aWRlb0ZyYW1lRm9yQ3VycmVudFRpbWUgPSBudWxscHRyOworICAg
IH0KKyNlbmRpZgogICAgIHJldHVybiBtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXggMWE2YTM0MDM0M2QxNDJlZGZkZWVhMzZiMzc0
YTk5Zjk5M2VmZWI5Mi4uMjlmOTEyZDRlOGI4N2I1N2JhMTU2MjRhNmRjNWUwNmI3YzVjMWI5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAi
VmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVy
UHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9WaWRlb0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb0ZyYW1l
TWV0YWRhdGEuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3Rm
L01lZGlhVGltZS5oPgpAQCAtMjkzLDcgKzI5NCw3IEBAIHByaXZhdGU6CiAjaWYgIVVTRShBVkZP
VU5EQVRJT04pCiAgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0wqLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgR0NH
TGludCwgR0NHTGVudW0sIEdDR0xlbnVtLCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7CiAj
ZW5kaWYKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4g
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OlZp
ZGVvRnJhbWU+IHZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogICAgIFJlZlB0cjxX
ZWJDb3JlOjpOYXRpdmVJbWFnZT4gbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZpbmFsOwog
ICAgIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKCkgZmluYWw7CiAK
QEAgLTQ2MCw3ICs0NjEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YWl0aW5nRm9yS2V5IHsg
ZmFsc2UgfTsKICAgICBib29sIG1fdGltZUlzUHJvZ3Jlc3NpbmcgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkIHsgZmFsc2UgfTsKLSAgICBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6Ok1lZGlhU2FtcGxlVmlkZW9GcmFtZT4gbV92aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWU7CisgICAgUmVmUHRyPFdlYkNvcmU6OlZpZGVvRnJhbWU+IG1fdmlkZW9GcmFtZUZvckN1
cnJlbnRUaW1lOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiBtX3BpeGVsQnVmZmVyR2F0aGVyZWRXaXRoVmlkZW9GcmFtZU1ldGFkYXRhOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQaXhlbEJ1ZmZlckNvbmZvcm1lckNWPiBtX3BpeGVs
QnVmZmVyQ29uZm9ybWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwCmluZGV4IGZkMmUxNWI5ZWY1
OGQyYTE5YjA5MDg5MzFmN2VkNWY1MThmYmRhMGMuLmQ4MzdhNDZiYWYxNDA3NzRlYTZlZGQ4MjQ5
Y2RlNjIzMjRiMmQ0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHAKQEAgLTY2LDExICs2Niw5
IEBAIHZvaWQgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpyZWxlYXNlVW51c2VkKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgUHJvcGVydGllCiB9CiAKIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6
UmVtb3RlVmlkZW9GcmFtZVByb3h5KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSYgdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSwgUHJv
cGVydGllcyYmIHByb3BlcnRpZXMpCi0gICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKKyAg
ICA6IFZpZGVvRnJhbWUocHJvcGVydGllcy5wcmVzZW50YXRpb25UaW1lLCBwcm9wZXJ0aWVzLmlz
TWlycm9yZWQsIHByb3BlcnRpZXMucm90YXRpb24pCisgICAgLCBtX2Nvbm5lY3Rpb24oY29ubmVj
dGlvbikKICAgICAsIG1fcmVmZXJlbmNlVHJhY2tlcihwcm9wZXJ0aWVzLnJlZmVyZW5jZSkKLSAg
ICAsIG1fcHJlc2VudGF0aW9uVGltZShwcm9wZXJ0aWVzLnByZXNlbnRhdGlvblRpbWUpCi0gICAg
LCBtX2lzTWlycm9yZWQocHJvcGVydGllcy5pc01pcnJvcmVkKQotICAgICwgbV9yb3RhdGlvbihw
cm9wZXJ0aWVzLnJvdGF0aW9uKQogICAgICwgbV9zaXplKHByb3BlcnRpZXMuc2l6ZSkKICAgICAs
IG1fcGl4ZWxGb3JtYXQocHJvcGVydGllcy5waXhlbEZvcm1hdCkKICAgICAsIG1fdmlkZW9GcmFt
ZU9iamVjdEhlYXBQcm94eSgmdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSkKQEAgLTk3LDM2ICs5
NSwxMSBAQCBSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSBSZW1vdGVWaWRlb0ZyYW1lUHJv
eHk6OnJlYWQoKSBjb25zdAogICAgIHJldHVybiBtX3JlZmVyZW5jZVRyYWNrZXIucmVhZCgpOwog
fQogCi1NZWRpYVRpbWUgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpwcmVzZW50YXRpb25UaW1lKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9wcmVzZW50YXRpb25UaW1lOwotfQotCi1XZWJDb3JlOjpQ
bGF0Zm9ybVNhbXBsZSBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnBsYXRmb3JtU2FtcGxlKCkgY29u
c3QKLXsKLSAgICByZXR1cm4geyBXZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZTo6UmVtb3RlVmlkZW9G
cmFtZVByb3h5VHlwZSwgeyB9IH07Ci19Ci0KLU1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIFJl
bW90ZVZpZGVvRnJhbWVQcm94eTo6dmlkZW9Sb3RhdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fcm90YXRpb247Ci19Ci0KLWJvb2wgUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojp2aWRlb01pcnJv
cmVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pc01pcnJvcmVkOwotfQotCiB1aW50MzJfdCBS
ZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdAogewogICAgIHJl
dHVybiBtX3BpeGVsRm9ybWF0OwogfQogCi1zdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlVmlkZW9GcmFtZT4gUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojp2aWRlb0ZyYW1lKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotfQotCiAjaWYgUExBVEZPUk0oQ09DT0EpCiBD
VlBpeGVsQnVmZmVyUmVmIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cGl4ZWxCdWZmZXIoKSBjb25z
dAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVWaWRlb0ZyYW1lUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlVmlkZW9GcmFtZVByb3h5LmgKaW5kZXggMGFmOTRlYTNmMmY1MTJhZDkyZWVkZWE3YWI0
NTYwZDU4M2FkZjVmMC4uMTY1NzMwNzI5ODkzNTAwNWViMmYzMzRjZjZhMjk0NDU2NTBmMTVlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRl
b0ZyYW1lUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZVZpZGVvRnJhbWVQcm94eS5oCkBAIC03NywyOSArNzcsMjEgQEAgcHVibGljOgogCiAgICAg
V2ViQ29yZTo6SW50U2l6ZSBzaXplKCkgY29uc3Q7CiAKKyAgICAvLyBXZWJDb3JlOjpWaWRlb0Zy
YW1lIG92ZXJyaWRlcy4KKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgcHJlc2VudGF0aW9uU2l6ZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2l6ZTsgfQorICAgIHVpbnQzMl90IHZpZGVvUGl4ZWxG
b3JtYXQoKSBjb25zdCBmaW5hbDsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKKyAgICBib29sIGlzUmVt
b3RlUHJveHkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKIHByaXZhdGU6CiAgICAg
UmVtb3RlVmlkZW9GcmFtZVByb3h5KElQQzo6Q29ubmVjdGlvbiYsIFJlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHkmLCBQcm9wZXJ0aWVzJiYpOwogCi0gICAgLy8gV2ViQ29yZTo6VmlkZW9G
cmFtZSBvdmVycmlkZXMuCi0gICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWUoKSBjb25zdCBm
aW5hbDsKLSAgICBWaWRlb1JvdGF0aW9uIHZpZGVvUm90YXRpb24oKSBjb25zdCBmaW5hbDsKLSAg
ICBib29sIHZpZGVvTWlycm9yZWQoKSBjb25zdCBmaW5hbDsKLSAgICBXZWJDb3JlOjpGbG9hdFNp
emUgcHJlc2VudGF0aW9uU2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2l6ZTsgfQotICAg
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1lPiB2aWRlb0ZyYW1l
KCkgY29uc3QgZmluYWw7Ci0gICAgdWludDMyX3QgdmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0IGZp
bmFsOwotICAgIC8vIEZJWE1FOiBXaGVuIFZpZGVvRnJhbWUgaXMgbm90IE1lZGlhU2FtcGxlLCB0
aGVzZSB3aWxsIG5vdCBiZSBuZWVkZWQuCi0gICAgV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGUgcGxh
dGZvcm1TYW1wbGUoKSBjb25zdCBmaW5hbDsKLSAgICBXZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZTo6
VHlwZSBwbGF0Zm9ybVNhbXBsZVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBXZWJDb3JlOjpQ
bGF0Zm9ybVNhbXBsZTo6UmVtb3RlVmlkZW9GcmFtZVByb3h5VHlwZTsgfQorCiAKICAgICBjb25z
dCBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgUmVtb3RlVmlkZW9GcmFt
ZVJlZmVyZW5jZVRyYWNrZXIgbV9yZWZlcmVuY2VUcmFja2VyOwotICAgIGNvbnN0IE1lZGlhVGlt
ZSBtX3ByZXNlbnRhdGlvblRpbWU7Ci0gICAgY29uc3QgYm9vbCBtX2lzTWlycm9yZWQ7Ci0gICAg
Y29uc3QgVmlkZW9Sb3RhdGlvbiBtX3JvdGF0aW9uOwogICAgIGNvbnN0IFdlYkNvcmU6OkludFNp
emUgbV9zaXplOwogICAgIHVpbnQzMl90IG1fcGl4ZWxGb3JtYXQgeyAwIH07CiAgICAgLy8gRklY
TUU6IFJlbW92ZSB0aGlzLgpAQCAtMTMzLDkgKzEyNSw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYsIGNvbnN0IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVydGllcyYp
OwogfQogCiBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYktpdDo6UmVtb3RlVmlkZW9G
cmFtZVByb3h5KQotICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpNZWRpYVNh
bXBsZSYgbWVkaWFTYW1wbGUpIHsgcmV0dXJuIG1lZGlhU2FtcGxlLnBsYXRmb3JtU2FtcGxlVHlw
ZSgpID09IFdlYkNvcmU6OlBsYXRmb3JtU2FtcGxlOjpSZW1vdGVWaWRlb0ZyYW1lUHJveHlUeXBl
OyB9Ci1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0JFR0lOKFdlYkNvcmU6OlZpZGVvRnJhbWUpCi0gICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0
IFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiBtZWRpYVNhbXBsZSkgeyByZXR1cm4gbWVkaWFTYW1wbGUu
cGxhdGZvcm1TYW1wbGVUeXBlKCkgPT0gV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OlJlbW90ZVZp
ZGVvRnJhbWVQcm94eVR5cGU7IH0KKyAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViQ29y
ZTo6TWVkaWFTYW1wbGUmIG1lZGlhU2FtcGxlKSB7IHJldHVybiBpczxXZWJDb3JlOjpWaWRlb0Zy
YW1lPihtZWRpYVNhbXBsZSkgJiYgZG93bmNhc3Q8V2ViQ29yZTo6VmlkZW9GcmFtZT4obWVkaWFT
YW1wbGUpLmlzUmVtb3RlUHJveHkoKTsgfQogU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19FTkQoKQor
CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>