<?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>166730</bug_id>
          
          <creation_ts>2017-01-05 09:08:56 -0800</creation_ts>
          <short_desc>[WK2] Add diagnostic logging to measure WebGL usage</short_desc>
          <delta_ts>2017-01-13 21:54:01 -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>Canvas</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>166866</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andersca</cc>
    
    <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mjs</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1264132</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-05 09:08:56 -0800</bug_when>
    <thetext>Add diagnostic logging to measure WebGL usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264133</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-05 09:09:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/29883469&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265064</commentid>
    <comment_count>2</comment_count>
      <attachid>298367</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-09 11:02:11 -0800</bug_when>
    <thetext>Created attachment 298367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265067</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-09 11:03:20 -0800</bug_when>
    <thetext>Attachment 298367 did not pass style-queue:


ERROR: Source/WebCore/platform/WebGLStateTracker.cpp:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265139</commentid>
    <comment_count>4</comment_count>
      <attachid>298390</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-09 14:25:49 -0800</bug_when>
    <thetext>Created attachment 298390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265141</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-09 14:27:53 -0800</bug_when>
    <thetext>Attachment 298390 did not pass style-queue:


ERROR: Source/WebCore/platform/WebGLStateTracker.cpp:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265171</commentid>
    <comment_count>6</comment_count>
      <attachid>298402</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-09 15:37:52 -0800</bug_when>
    <thetext>Created attachment 298402
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265173</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-09 15:40:47 -0800</bug_when>
    <thetext>Attachment 298402 did not pass style-queue:


ERROR: Source/WebCore/platform/WebGLStateTracker.cpp:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265182</commentid>
    <comment_count>8</comment_count>
      <attachid>298407</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-09 15:52:55 -0800</bug_when>
    <thetext>Created attachment 298407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1265184</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-09 15:55:22 -0800</bug_when>
    <thetext>Attachment 298407 did not pass style-queue:


ERROR: Source/WebCore/platform/WebGLStateTracker.cpp:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266596</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-13 14:58:00 -0800</bug_when>
    <thetext>ping review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266650</commentid>
    <comment_count>11</comment_count>
      <attachid>298407</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-13 16:19:33 -0800</bug_when>
    <thetext>Comment on attachment 298407
Patch

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

&gt; Source/WebCore/platform/WebGLStateTracker.cpp:42
&gt; +    return m_WebGLContextCounter.count();

W should probably be lowercase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266655</commentid>
    <comment_count>12</comment_count>
      <attachid>298808</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-13 16:45:55 -0800</bug_when>
    <thetext>Created attachment 298808
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266658</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-13 16:48:51 -0800</bug_when>
    <thetext>Attachment 298808 did not pass style-queue:


ERROR: Source/WebCore/platform/WebGLStateTracker.cpp:33:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266681</commentid>
    <comment_count>14</comment_count>
      <attachid>298808</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-13 17:06:38 -0800</bug_when>
    <thetext>Comment on attachment 298808
Patch

Clearing flags on attachment: 298808

Committed r210753: &lt;http://trac.webkit.org/changeset/210753&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266682</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-13 17:06:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266778</commentid>
    <comment_count>16</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-01-13 21:54:01 -0800</bug_when>
    <thetext>r210762</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298367</attachid>
            <date>2017-01-09 11:02:11 -0800</date>
            <delta_ts>2017-01-09 14:25:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166730-20170109110039.patch</filename>
            <type>text/plain</type>
            <size>39558</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwZDk1MGEwM2ZiOWEw
Y2U4NWIzYmFiMDA1MTU1OTZjODcwZjQ3Yi4uYmFjMmExMjFkNTcwOTgxNGY5NWE3NWU1MzRmNGY1
NmJhOGIyNWRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE3LTAxLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIGRpYWdub3N0
aWMgbG9nZ2luZyB0byBtZWFzdXJlIFdlYkdMIHVzYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzI5ODgzNDY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBkaWFnbm9zdGljIGxvZ2dpbmcgdG8gbWVhc3VyZSBoaWdoIHBlcmZvcm1hbmNlIFdl
YkdMIHVzYWdlLiBXZSByZXBvcnQKKyAgICAgICAgYXQgcmVndWxhciBpbnRlcnZhbHMgaW4gd2hp
Y2ggV2ViR0wgc3RhdGUgU2FmYXJpIGlzOgorICAgICAgICAtIEluYWN0aXZlCisgICAgICAgIC0g
QWN0aXZlSW5Gb3JlZ3JvdW5kVGFiCisgICAgICAgIC0gQWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25s
eQorCisgICAgICAgIFRoaXMgc2hvdWxkIGdpdmUgdXMgYW4gZXN0aW1hdGUgb2Y6CisgICAgICAg
IC0gV2hhdCAlIG9mIHRoZSB0aW1lIGlzIFNhZmFyaSB1c2luZyBoaWdoIHBlcmZvcm1hbmNlIGdy
YXBoaWNzCisgICAgICAgIC0gV2hhdCAlIG9mIHRoaXMgdGltZSBpcyBvbmx5IGR1ZSB0byBiYWNr
Z3JvdW5kIHRhYnMKKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZp
b3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6cmVnaXN0ZXJXaXRoV2ViR0xTdGF0ZVRyYWNrZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBwYWdlL0RpYWdub3N0aWNM
b2dnaW5nS2V5cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OmluYWN0aXZlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6
YWN0aXZlSW5Gb3JlZ3JvdW5kVGFiS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNM
b2dnaW5nS2V5czo6YWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25seUtleSk6CisgICAgICAgIChXZWJD
b3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnN0YXRlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6d2ViR0xLZXkpOgorICAgICAgICAqIHBh
Z2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6d2ViR0xTdGF0ZVRyYWNrZXIpOgorICAgICAgICAqIHBhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9XZWJHTFN0YXRlVHJhY2tlci5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcy5oLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTdGF0ZVRyYWNrZXI6OldlYkdMU3RhdGVU
cmFja2VyKToKKyAgICAgICAgKFdlYkNvcmU6Om1fc3RhdGVDaGFuZ2VIYW5kbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMU3RhdGVUcmFja2VyOjp1cGRhdGVXZWJHTFN0YXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9XZWJHTFN0YXRlVHJhY2tlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMuaC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMuaDoK
KwogMjAxNy0wMS0wNiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNv
bGxhYm9yYS5jby51az4KIAogICAgICAgICBbR1RLXSBTaG91bGQgc3VwcG9ydCBrZXkgYW5kIGNv
ZGUgcHJvcGVydGllcyBvbiBrZXlib2FyZCBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhODFjYzEwYTU3
NGJkZjQ0ZGY2YTIwNWM2MzM0ODY4ODZkZDE2MmVjLi41NThhNTFiMjNlNjBjZGYyZmM3Njg5NTc5
MTEzNWY3NTM5MWQ4NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTctMDEtMDkg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBBZGQgZGlh
Z25vc3RpYyBsb2dnaW5nIHRvIG1lYXN1cmUgV2ViR0wgdXNhZ2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjczMAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjk4ODM0Njk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGRpYWdub3N0aWMgbG9nZ2luZyB0byBtZWFzdXJlIGhpZ2ggcGVyZm9ybWFu
Y2UgV2ViR0wgdXNhZ2UuIFdlIHJlcG9ydAorICAgICAgICBhdCByZWd1bGFyIGludGVydmFscyBp
biB3aGljaCBXZWJHTCBzdGF0ZSBTYWZhcmkgaXM6CisgICAgICAgIC0gSW5hY3RpdmUKKyAgICAg
ICAgLSBBY3RpdmVJbkZvcmVncm91bmRUYWIKKyAgICAgICAgLSBBY3RpdmVJbkJhY2tncm91bmRU
YWJPbmx5CisKKyAgICAgICAgVGhpcyBzaG91bGQgZ2l2ZSB1cyBhbiBlc3RpbWF0ZSBvZjoKKyAg
ICAgICAgLSBXaGF0ICUgb2YgdGhlIHRpbWUgaXMgU2FmYXJpIHVzaW5nIGhpZ2ggcGVyZm9ybWFu
Y2UgZ3JhcGhpY3MKKyAgICAgICAgLSBXaGF0ICUgb2YgdGhpcyB0aW1lIGlzIG9ubHkgZHVlIHRv
IGJhY2tncm91bmQgdGFicworCisgICAgICAgICogVUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdy
YXBoaWNzVXNhZ2VTYW1wbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkhpZ2hQZXJm
b3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyOjpIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlcik6CisgICAgICAgIChXZWJLaXQ6OkhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VT
YW1wbGVyOjp0aW1lckZpcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNl
R3JhcGhpY3NVc2FnZVNhbXBsZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmguCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNl
dElzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1faGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2Fn
ZVNhbXBsZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAg
ICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fdXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbik6CisKIDIwMTctMDEtMDYgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAg
PGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgW0dUS10gU2hvdWxk
IHN1cHBvcnQga2V5IGFuZCBjb2RlIHByb3BlcnRpZXMgb24ga2V5Ym9hcmQgZXZlbnRzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NmNjNDIzOTk3YmNkN2FiYzRiZmZjOTM0ODdlMTFjMTQzYzI0ZTM3YS4uNzgxZDI4MzcyODkwNDM2
MDdhY2EzYzA4ZjNhMjUyODNiMDRkMjU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzAyNyw2ICszMDI3LDggQEAKIAkJODM4
RUY1MzgxREMxNDlFMjAwOEYwQzM5IC8qIElEQlRyYW5zYWN0aW9uTW9kZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4RUY1MzYxREMxNDlEQTAwOEYw
QzM5IC8qIElEQlRyYW5zYWN0aW9uTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTgzOEVGNTNCMURDMTRBN0MwMDhGMEMzOSAvKiBKU0lEQlRy
YW5zYWN0aW9uTW9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MzhFRjUzOTFEQzE0QTc1MDA4RjBDMzkgLyogSlNJREJUcmFuc2FjdGlvbk1vZGUu
Y3BwICovOyB9OwogCQk4MzhFRjUzQzFEQzE0QTdDMDA4RjBDMzkgLyogSlNJREJUcmFuc2FjdGlv
bk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
OEVGNTNBMURDMTRBNzUwMDhGMEMzOSAvKiBKU0lEQlRyYW5zYWN0aW9uTW9kZS5oICovOyB9Owor
CQk4MzlBMkYyRDFFMjA0QTcxMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QTJGMkIxRTIwNEE2
RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmNwcCAqLzsgfTsKKwkJODM5QTJGMkUxRTIw
NEE3MTAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMkYyQzFFMjA0QTZEMDAzOTA1N0UgLyogV2Vi
R0xTdGF0ZVRyYWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4MzlBQUZFQzFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QUFGRUEx
QTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmNwcCAqLzsgfTsKIAkJODM5QUFGRUQx
QTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBQUZFQjFBMEMwQzhEMDA2MDVGOTkgLyogSFRN
TFdCUkVsZW1lbnQuaCAqLzsgfTsKIAkJODNBNEE5RjkxQ0U3RkQ4MTAwNzA5QjAwIC8qIEpTWE1M
RG9jdW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNBNEE5RjgxQ0U3RkQ3RTAwNzA5QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0b20u
Y3BwICovOyB9OwpAQCAtMTA1NDMsNiArMTA1NDUsOCBAQAogCQk4MzhFRjUzNzFEQzE0OURBMDA4
RjBDMzkgLyogSURCVHJhbnNhY3Rpb25Nb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJ
REJUcmFuc2FjdGlvbk1vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzhF
RjUzOTFEQzE0QTc1MDA4RjBDMzkgLyogSlNJREJUcmFuc2FjdGlvbk1vZGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJUcmFuc2FjdGlvbk1vZGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzhFRjUzQTFEQzE0QTc1MDA4RjBDMzkgLyog
SlNJREJUcmFuc2FjdGlvbk1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNJREJUcmFuc2FjdGlvbk1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM5
QTJGMkIxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMU3RhdGVUcmFja2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM5QTJGMkMxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdM
U3RhdGVUcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMU3Rh
dGVUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUFBRkVBMUEwQzBD
OEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBIVE1MV0JSRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MV0JSRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4M0E0QTlGODFDRTdGRDdFMDA3MDlCMDAgLyogSlNYTUxEb2N1
bWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hN
TERvY3VtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNjc1
LDYgKzIyNjc5LDggQEAKIAkJCQk0NkRCN0Q1OTFCMjBGRTU4MDA1NjUxQjIgLyogVk5vZGVUcmFj
a2VyLmggKi8sCiAJCQkJNTE1Rjc5NTExQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1Ro
cmVhZENvcGllci5jcHAgKi8sCiAJCQkJNTE1Rjc5NTIxQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNv
cmVDcm9zc1RocmVhZENvcGllci5oICovLAorCQkJCTgzOUEyRjJCMUUyMDRBNkQwMDM5MDU3RSAv
KiBXZWJHTFN0YXRlVHJhY2tlci5jcHAgKi8sCisJCQkJODM5QTJGMkMxRTIwNEE2RDAwMzkwNTdF
IC8qIFdlYkdMU3RhdGVUcmFja2VyLmggKi8sCiAJCQkJOTM4MEY0NzEwOUExMUFCNDAwMUZEQjM0
IC8qIFdpZGdldC5jcHAgKi8sCiAJCQkJOTM4MEY0NzIwOUExMUFCNDAwMUZEQjM0IC8qIFdpZGdl
dC5oICovLAogCQkJCUUxRTFCRUZGMTE1RkY2RkIwMDZGNTJDQSAvKiBXaW5kb3dzS2V5Ym9hcmRD
b2Rlcy5oICovLApAQCAtMjU0OTAsNiArMjU0OTYsNyBAQAogCQkJCTBGNDcxMEFGMURCNTZBRkMw
MDJEQ0VDMyAvKiBET01SZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQ3MTBCMTFEQjU2QUZD
MDAyRENFQzMgLyogRE9NUmVjdEluaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDcxMEIzMURC
NTZBRkMwMDJEQ0VDMyAvKiBET01SZWN0UmVhZE9ubHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTgz
OUEyRjJFMUUyMDRBNzEwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1QTg2ODUwQzMzNjc2MDAwRUVBNjQ5IC8qIERPTVNlbGVjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQzU0NDI3NEIxMUE1N0U3QTAwNjNBNzQ5IC8qIERPTVN0cmluZ0xpc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjQ2NDBBMTFEN0YzMDQwMDY0NTVCMCAvKiBET01TdHJp
bmdNYXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjk0NTYsNiArMjk0NjMsNyBAQAogCQkJCTY1QkYw
MjJFMDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzRB
ODYyMjE0QjdBREJCMDAzRkRDNzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZFRDEzRDNEMENFQTkzNkEwMEQ4OTQ2NiAvKiBGcmFtZUlPUy5tbSBp
biBTb3VyY2VzICovLAorCQkJCTgzOUEyRjJEMUUyMDRBNzEwMDM5MDU3RSAvKiBXZWJHTFN0YXRl
VHJhY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzJFMTYwOTBBRjU3ODM0MDAyNUY0MDgg
LyogRnJhbWVMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDAwMEVCQTIxMUJEQUZENDAw
QzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg2QkE3NjZFMTY2NDI3QTgwMDVCRTVEMSAvKiBGcmFtZUxvYWRSZXF1ZXN0LmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCA5ODQ1YjNlZjU4M2Y5OTk4MTZjYWU3ZjA0ZmU0
ZjY3NmU5YWUyNWU3Li44MTQxMmVhYWY1ODAzMDFiZWY1NTJjYjZkZDFkOTVmODNmYjVlOThlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcApAQCAtMzk5LDcgKzM5OSw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUo
SFRNCiAgICAgaWYgKGZyYW1lLT5zZXR0aW5ncygpLmZvcmNlU29mdHdhcmVXZWJHTFJlbmRlcmlu
ZygpKQogICAgICAgICBhdHRyaWJ1dGVzLmZvcmNlU29mdHdhcmVSZW5kZXJlciA9IHRydWU7CiAK
LSAgICBpZiAoIWF0dHJpYnV0ZXMucHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSAmJiBm
cmFtZS0+c2V0dGluZ3MoKS5wcmVmZXJMb3dQb3dlcldlYkdMUmVuZGVyaW5nKCkpCisgICAgYXR0
cmlidXRlcy5pbml0aWFsUHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSA9IGF0dHJpYnV0
ZXMucHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZTsKKyAgICBpZiAoZnJhbWUtPnNldHRp
bmdzKCkucHJlZmVyTG93UG93ZXJXZWJHTFJlbmRlcmluZygpKQogICAgICAgICBhdHRyaWJ1dGVz
LnByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2UgPSB0cnVlOwogCiAgICAgaWYgKHBhZ2Up
CkBAIC00NjEsNiArNDYyLDcgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2EKICAgICAsIG1fbnVt
R0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkKG1heEdMRXJyb3JzQWxsb3dlZFRvQ29uc29sZSkKICAg
ICAsIG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbih0cnVlKQogeworICAgIHJlZ2lzdGVyV2l0
aFdlYkdMU3RhdGVUcmFja2VyKCk7CiB9CiAKIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywg
UmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMg
YXR0cmlidXRlcykKQEAgLTQ4Miw2ICs0ODQsMjAgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2EK
IAogICAgIHNldHVwRmxhZ3MoKTsKICAgICBpbml0aWFsaXplTmV3Q29udGV4dCgpOworICAgIHJl
Z2lzdGVyV2l0aFdlYkdMU3RhdGVUcmFja2VyKCk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6cmVnaXN0ZXJXaXRoV2ViR0xTdGF0ZVRyYWNrZXIoKQoreworICAgIGF1dG8q
IHBhZ2UgPSBjYW52YXMoKS5kb2N1bWVudCgpLnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8qIHRyYWNrZXIgPSBwYWdlLT53ZWJHTFN0YXRlVHJhY2tl
cigpOworICAgIGlmICghdHJhY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV90cmFja2Vy
VG9rZW4gPSB0cmFja2VyLT50b2tlbihtX2F0dHJpYnV0ZXMuaW5pdGlhbFByZWZlckxvd1Bvd2Vy
VG9IaWdoUGVyZm9ybWFuY2UpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmluaXRpYWxpemVOZXdDb250ZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCA5ZjllOGI2NDFmZjZiY2Qz
OWFkMjc1NmQyNzM3N2RlMjMyOWNkZjYwLi4wMjU4MTk5OWQxZjBjMmZlNTY1ZWY5Njc1MjkyMzA1
OGFmMzk4Y2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiVGlt
ZXIuaCIKICNpbmNsdWRlICJXZWJHTEFueS5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEF0dHJp
YnV0ZXMuaCIKKyNpbmNsdWRlICJXZWJHTFN0YXRlVHJhY2tlci5oIgogI2luY2x1ZGUgIldlYkdM
VGV4dHVyZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KIApAQCAtNzk4LDYgKzc5OSw5IEBAIHByb3Rl
Y3RlZDoKIAogcHJpdmF0ZToKICAgICBib29sIHZhbGlkYXRlQXJyYXlCdWZmZXJUeXBlKGNvbnN0
IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0MzRGVudW0gdHlwZSwgc3RkOjpvcHRpb25hbDxKU0M6OlR5
cGVkQXJyYXlUeXBlPik7CisgICAgdm9pZCByZWdpc3RlcldpdGhXZWJHTFN0YXRlVHJhY2tlcigp
OworCisgICAgV2ViR0xTdGF0ZVRyYWNrZXI6OlRva2VuIG1fdHJhY2tlclRva2VuOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
aWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGlj
TG9nZ2luZ0tleXMuY3BwCmluZGV4IGQ2YmUwMjBhYjVhNTlkMjJiMDhkZDljYzZkZTQ2ZjA0NTZh
OTNhZWQuLjYwYzRjZjA1OGMwMzcxMjExYmUyZGFjOTYzNWRjZDdlM2I1YWRkZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKQEAgLTIzOCw2ICsy
MzgsMTEgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aW5NZW1vcnlDYWNoZUtleSgp
CiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW5NZW1vcnlDYWNoZSIpOwogfQogCitTdHJpbmcg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbmFjdGl2ZUtleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJ
TGl0ZXJhbCgiaW5hY3RpdmUiKTsKK30KKwogU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
aW50ZXJuYWxFcnJvcktleSgpCiB7CiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW50ZXJuYWxF
cnJvciIpOwpAQCAtMzEzLDYgKzMxOCwxNiBAQCBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpkZWx0YUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZGVsdGEiKTsKIH0KIAorU3Ry
aW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6YWN0aXZlSW5Gb3JlZ3JvdW5kVGFiS2V5KCkKK3sK
KyAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJhY3RpdmVJbkZvcmVncm91bmRUYWIiKTsKK30KKwor
U3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6YWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25seUtl
eSgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiYWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25s
eSIpOworfQorCiBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjphcHBsaWNhdGlvbkNhY2hl
S2V5KCkKIHsKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJhcHBsaWNhdGlvbkNhY2hlIik7CkBA
IC00MzgsNiArNDUzLDExIEBAIFN0cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnNvdXJjZUtl
eSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic291cmNlIik7CiB9CiAKK1N0cmluZyBEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OnN0YXRlS2V5KCkKK3sKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFs
KCJzdGF0ZSIpOworfQorCiBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzdHJlYW1pbmdN
ZWRpYSgpCiB7CiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic3RyZWFtaW5nTWVkaWEiKTsKQEAg
LTYxOCw1ICs2MzgsMTAgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm90SW5DYWNo
ZUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibm90SW5DYWNoZSIpOwogfQogCitTdHJp
bmcgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp3ZWJHTEtleSgpCit7CisgICAgcmV0
dXJuIEFTQ0lJTGl0ZXJhbCgid2ViR0wiKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaAppbmRleCAyZWU2
MjdiOGY0MzgzYWQ2ODNiNzJiNDAxNmRkMjI5MjIwNzFlNTkyLi43MDRkY2NiMzA0NzdiNDM4ZTQ0
Y2JlMTRjZTJhM2EwOTcwYzdiMjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rp
YWdub3N0aWNMb2dnaW5nS2V5cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzLmgKQEAgLTMxLDYgKzMxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBEaWFnbm9zdGljTG9nZ2luZ0tleXMgewogcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTdHJpbmcgYWN0aXZlSW5Gb3JlZ3JvdW5kVGFiS2V5KCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFN0cmluZyBhY3RpdmVJbkJhY2tncm91bmRUYWJPbmx5S2V5KCk7CiAgICAg
c3RhdGljIFN0cmluZyBhcHBsaWNhdGlvbkNhY2hlS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBh
dWRpb0tleSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgYmFja05hdmlnYXRp
b25LZXkoKTsKQEAgLTU2LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgaHR0
cHNOb1N0b3JlS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBpbWFnZUtleSgpOwogICAgIHN0YXRp
YyBTdHJpbmcgaW5NZW1vcnlDYWNoZUtleSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBT
dHJpbmcgaW5hY3RpdmVLZXkoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIGlu
dGVybmFsRXJyb3JLZXkoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIGludmFs
aWRTZXNzaW9uSURLZXkoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIGlzQXR0
YWNobWVudEtleSgpOwpAQCAtMTE4LDYgKzEyMSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3Ry
aW5nIHNhbWVMb2FkS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBzY3JpcHRLZXkoKTsKICAgICBz
dGF0aWMgU3RyaW5nIHNvdXJjZUtleSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJp
bmcgc3RhdGVLZXkoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIHN0cmVhbWlu
Z01lZGlhKCk7CiAgICAgc3RhdGljIFN0cmluZyBzdHlsZVNoZWV0S2V5KCk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFN0cmluZyBzdWNjZXNzZnVsU3BlY3VsYXRpdmVXYXJtdXBXaXRoUmV2
YWxpZGF0aW9uS2V5KCk7CkBAIC0xNDUsNiArMTQ5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBT
dHJpbmcgdmlkZW9LZXkoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIHdhc3Rl
ZFNwZWN1bGF0aXZlV2FybXVwV2l0aFJldmFsaWRhdGlvbktleSgpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBTdHJpbmcgd2FzdGVkU3BlY3VsYXRpdmVXYXJtdXBXaXRob3V0UmV2YWxpZGF0
aW9uS2V5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyB3ZWJHTEtleSgpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgd2ViVmlld0tleSgpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgem9vbWVkS2V5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmlu
ZGV4IDkzMzFiMzAyOTA3ZTc5YjdjMTFiNWVjMDg0NmJhZmQ1YzNmZWM0OTcuLjczMDBkM2E1NDM5
NTNlZmY5YmNjNTM2Y2Q0ZmVmMGM4MWYxMDIzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtOTcs
NiArOTcsNyBAQAogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RhdGUuaCIKICNpbmNsdWRlICJWaXNp
dGVkTGlua1N0b3JlLmgiCiAjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCisjaW5jbHVkZSAiV2Vi
R0xTdGF0ZVRyYWNrZXIuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZExlYWtDb3VudGVyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAt
MTkwLDYgKzE5MSw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmln
dXJhdGlvbikKICAgICAsIG1fcGx1Z0luQ2xpZW50KHBhZ2VDb25maWd1cmF0aW9uLnBsdWdJbkNs
aWVudCkKICAgICAsIG1fdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQoV1RGTW92ZShwYWdlQ29uZmln
dXJhdGlvbi52YWxpZGF0aW9uTWVzc2FnZUNsaWVudCkpCiAgICAgLCBtX2RpYWdub3N0aWNMb2dn
aW5nQ2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQpKQorICAgICwgbV93ZWJHTFN0YXRlVHJhY2tlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9u
LndlYkdMU3RhdGVUcmFja2VyKSkKICAgICAsIG1fc3ViZnJhbWVDb3VudCgwKQogICAgICwgbV9v
cGVuZWRCeURPTShmYWxzZSkKICAgICAsIG1fdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKHRy
dWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IGRlM2ZlNGU4NTgwOTc2M2NmM2IwM2RjOTQ3YWNjZjYxYzE2
ZDE1ZTkuLjM3YWM2YTdjODFkYzM4NGYxZjYyNjM3OTljZDg4OGFiMTJhMjNjZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCkBAIC0xMjksNiArMTI5LDcgQEAgY2xhc3MgVXNlckNvbnRlbnRQcm92aWRlcjsKIGNs
YXNzIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogY2xhc3MgQWN0aXZpdHlTdGF0ZUNoYW5nZU9i
c2VydmVyOwogY2xhc3MgVmlzaXRlZExpbmtTdG9yZTsKK2NsYXNzIFdlYkdMU3RhdGVUcmFja2Vy
OwogCiB0eXBlZGVmIHVpbnQ2NF90IExpbmtIYXNoOwogCkBAIC01NDgsNiArNTQ5LDcgQEAgcHVi
bGljOgogICAgIHN0ZDo6b3B0aW9uYWw8RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3I+IGV2ZW50VGhy
b3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX2V2ZW50VGhyb3R0bGlu
Z0JlaGF2aW9yT3ZlcnJpZGU7IH0KICAgICB2b2lkIHNldEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9y
T3ZlcnJpZGUoc3RkOjpvcHRpb25hbDxFdmVudFRocm90dGxpbmdCZWhhdmlvcj4gdGhyb3R0bGlu
ZykgeyBtX2V2ZW50VGhyb3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGUgPSB0aHJvdHRsaW5nOyB9CiAK
KyAgICBXZWJHTFN0YXRlVHJhY2tlciogd2ViR0xTdGF0ZVRyYWNrZXIoKSBjb25zdCB7IHJldHVy
biBtX3dlYkdMU3RhdGVUcmFja2VyLmdldCgpOyB9CiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgaW5pdEdyb3VwKCk7CiAKQEAgLTYxMSw2ICs2MTMsNyBAQCBwcml2YXRlOgogICAg
IFBsdWdJbkNsaWVudCogbV9wbHVnSW5DbGllbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZhbGlk
YXRpb25NZXNzYWdlQ2xpZW50PiBtX3ZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxEaWFnbm9zdGljTG9nZ2luZ0NsaWVudD4gbV9kaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xTdGF0ZVRyYWNrZXI+IG1fd2ViR0xTdGF0
ZVRyYWNrZXI7CiAKICAgICBpbnQgbV9zdWJmcmFtZUNvdW50OwogICAgIFN0cmluZyBtX2dyb3Vw
TmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggYjEy
ZGI0ZTYwYTY1ODQ0ZTliNDU4ZDRmMDY1ZmNkNWUwMWE2OTY1MC4uOWRiZjdkZjI3NDA4MTg3NjYy
NjU2MWVjZGNmYTk1Y2ZjMjJmZTA2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIgogI2luY2x1ZGUg
IlZpc2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJHTFN0YXRlVHJhY2tlci5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
aAppbmRleCA4YzcxZjgxNzdmZmU5NjM3NmM0YTlhMWI2YmY5ZTM5MTE5OWFhZDA2Li40ZDgxMTM2
ZTUzMGZjNTFmZmZlMWQxOWFiNTZkYTVkMDQ5NjMxNDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIFN0b3JhZ2VOYW1lc3Bh
Y2VQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CiBjbGFzcyBWYWxpZGF0aW9u
TWVzc2FnZUNsaWVudDsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CitjbGFzcyBXZWJHTFN0YXRl
VHJhY2tlcjsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogY2xhc3MgQ29udGV4dE1lbnVD
bGllbnQ7CkBAIC04MCw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFs
aWRhdGlvbk1lc3NhZ2VDbGllbnQ+IHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogICAgIEZyYW1l
TG9hZGVyQ2xpZW50KiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgeyBudWxscHRyIH07CiAgICAg
c3RkOjp1bmlxdWVfcHRyPERpYWdub3N0aWNMb2dnaW5nQ2xpZW50PiBkaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xTdGF0ZVRyYWNrZXI+IHdlYkdMU3Rh
dGVUcmFja2VyOwogCiAgICAgUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlPiBhcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTsKICAgICBSZWZQdHI8RGF0YWJhc2VQcm92aWRlcj4gZGF0YWJhc2VQ
cm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dlYkdMU3RhdGVU
cmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dlYkdMU3RhdGVUcmFja2VyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zOGExNzQ4ZGIxMjBmOTEwZjZmMzQ4NjAxODkxN2QwYzc0YjMyOWRlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViR0xTdGF0ZVRyYWNr
ZXIuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViR0xTdGF0ZVRyYWNrZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitXZWJHTFN0YXRlVHJhY2tlcjo6V2ViR0xTdGF0ZVRyYWNrZXIoU3RhdGVDaGFuZ2VIYW5kbGVy
JiYgaGFuZGxlcikKKyAgICA6IG1fV2ViR0xDb250ZXh0Q291bnRlcihbdGhpc10oUmVmQ291bnRl
ckV2ZW50KSB7IHVwZGF0ZVdlYkdMU3RhdGUoKTsgfSkKKyAgICAsIG1fc3RhdGVDaGFuZ2VIYW5k
bGVyKFdURk1vdmUoaGFuZGxlcikpCit7Cit9CisKK2F1dG8gV2ViR0xTdGF0ZVRyYWNrZXI6OnRv
a2VuKGJvb2wgcHJlZmVyTG93UG93ZXIpIC0+IFRva2VuCit7CisgICAgLy8gV2Ugb25seSB0cmFj
ayBoaWdoIHBlcmZvcm1hbmNlIFdlYkdMIGNvbnRleHRzIGF0IHRoZSBtb21lbnQuCisgICAgaWYg
KHByZWZlckxvd1Bvd2VyKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBtX1dlYkdM
Q29udGV4dENvdW50ZXIuY291bnQoKTsKK30KKwordm9pZCBXZWJHTFN0YXRlVHJhY2tlcjo6dXBk
YXRlV2ViR0xTdGF0ZSgpCit7CisgICAgaWYgKCFtX1dlYkdMQ29udGV4dENvdW50ZXIudmFsdWUo
KSkKKyAgICAgICAgbV9zdGF0ZUNoYW5nZUhhbmRsZXIoZmFsc2UpOworICAgIGVsc2UgaWYgKG1f
V2ViR0xDb250ZXh0Q291bnRlci52YWx1ZSgpID09IDEpCisgICAgICAgIG1fc3RhdGVDaGFuZ2VI
YW5kbGVyKHRydWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XZWJHTFN0YXRlVHJhY2tlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vV2ViR0xTdGF0ZVRyYWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jY2Q3YTA1ODVkODY3
NTM1N2I4Y2RmMGI2ODZkZTZiNTZhOWZkYTFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vV2ViR0xTdGF0ZVRyYWNrZXIuaApAQCAtMCwwICsxLDUxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdl
YkdMU3RhdGVUcmFja2VyIHsKK3B1YmxpYzoKKyAgICB1c2luZyBTdGF0ZUNoYW5nZUhhbmRsZXIg
PSBGdW5jdGlvbjx2b2lkKGJvb2wgaXNVc2luZ1dlYkdMKT47CisgICAgV0VCQ09SRV9FWFBPUlQg
ZXhwbGljaXQgV2ViR0xTdGF0ZVRyYWNrZXIoU3RhdGVDaGFuZ2VIYW5kbGVyJiYpOworCisgICAg
ZW51bSBXZWJHTENvbnRleHRDb3VudGVyVHlwZSB7IH07CisgICAgdXNpbmcgV2ViR0xDb250ZXh0
Q291bnRlciA9IFJlZkNvdW50ZXI8V2ViR0xDb250ZXh0Q291bnRlclR5cGU+OworICAgIHVzaW5n
IFRva2VuID0gV2ViR0xDb250ZXh0Q291bnRlcjo6VG9rZW47CisKKyAgICBUb2tlbiB0b2tlbihi
b29sIHByZWZlckxvd1Bvd2VyKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHVwZGF0ZVdlYkdMU3Rh
dGUoKTsKKworICAgIFdlYkdMQ29udGV4dENvdW50ZXIgbV9XZWJHTENvbnRleHRDb3VudGVyOwor
ICAgIFN0YXRlQ2hhbmdlSGFuZGxlciBtX3N0YXRlQ2hhbmdlSGFuZGxlcjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmgKaW5kZXggYjlhMjY4
NjUzOThiNDIwMjVjZmE4ZWRhOWYyMDg2MmYzZWU3MTU1NC4uZjlmMjE2MWE0MjE4YWJmYjlhZDE2
NTU5ZmViNTlmMDQ1ODZlYjlmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmgKQEAgLTQ0
LDYgKzQ0LDcgQEAgc3RydWN0IEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyB7CiAgICAgYm9v
bCB1c2VHTEVTMyB7IGZhbHNlIH07CiAgICAgYm9vbCBub0V4dGVuc2lvbnMgeyBmYWxzZSB9Owog
ICAgIGZsb2F0IGRldmljZVBpeGVsUmF0aW8geyAxIH07CisgICAgYm9vbCBpbml0aWFsUHJlZmVy
TG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNh
bXBsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdyYXBo
aWNzVXNhZ2VTYW1wbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjMxNWM0Yzk4ZTY2MzYxNTJmNDRmZjY4
ZmEyNzkwMjU5MGQ4ZDFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0hpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcApAQCAtMCwwICsxLDc4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhpZ2hQZXJm
b3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmgiCisKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9v
bC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RhdGljIGNvbnN0
IHN0ZDo6Y2hyb25vOjpzZWNvbmRzIHNhbXBsaW5nSW50ZXJ2YWwgeyA2MCB9OworCitIaWdoUGVy
Zm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcjo6SGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2Fn
ZVNhbXBsZXIoV2ViUHJvY2Vzc1Bvb2wmIHdlYlByb2Nlc3NQb29sKQorICAgIDogbV93ZWJQcm9j
ZXNzUG9vbCh3ZWJQcm9jZXNzUG9vbCkKKyAgICAsIG1fdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0
aGlzLCAmSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXI6OnRpbWVyRmlyZWQpCit7
CisgICAgbV90aW1lci5zdGFydFJlcGVhdGluZyhzYW1wbGluZ0ludGVydmFsKTsKK30KKwordm9p
ZCBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcjo6dGltZXJGaXJlZCgpCit7Cisg
ICAgYm9vbCBpc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0wgPSBmYWxzZTsKKyAgICBib29sIGlz
VXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTEluVmlzaWJsZVZpZXcgPSBmYWxzZTsKKworICAgIFdl
YlBhZ2VQcm94eSogZmlyc3RQYWdlID0gbnVsbHB0cjsKKyAgICBmb3IgKGF1dG8mIHdlYlByb2Nl
c3MgOiBtX3dlYlByb2Nlc3NQb29sLnByb2Nlc3NlcygpKSB7CisgICAgICAgIGZvciAoYXV0byYg
cGFnZSA6IHdlYlByb2Nlc3MtPnBhZ2VzKCkpIHsKKyAgICAgICAgICAgIGlmICghZmlyc3RQYWdl
KQorICAgICAgICAgICAgICAgIGZpcnN0UGFnZSA9IHBhZ2U7CisKKyAgICAgICAgICAgIGlmIChw
YWdlLT5pc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0woKSkgeworICAgICAgICAgICAgICAgIGlz
VXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTCA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKHBh
Z2UtPmlzVmlld1Zpc2libGUoKSkgeworICAgICAgICAgICAgICAgICAgICBpc1VzaW5nSGlnaFBl
cmZvcm1hbmNlV2ViR0xJblZpc2libGVWaWV3ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fQorCisgICAgaWYgKCFmaXJzdFBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBz
dGF0ZSA9IERpYWdub3N0aWNMb2dnaW5nS2V5czo6aW5hY3RpdmVLZXkoKTsKKyAgICBpZiAoaXNV
c2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMSW5WaXNpYmxlVmlldykKKyAgICAgICAgc3RhdGUgPSBE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OmFjdGl2ZUluRm9yZWdyb3VuZFRhYktleSgpOworICAgIGVs
c2UgaWYgKGlzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTCkKKyAgICAgICAgc3RhdGUgPSBEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OmFjdGl2ZUluQmFja2dyb3VuZFRhYk9ubHlLZXkoKTsKKworICAg
IGZpcnN0UGFnZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjp3ZWJHTEtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnN0YXRlS2V5KCksIHN0
YXRlLCBmYWxzZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVy
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2Fn
ZVNhbXBsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDU2YjBhMjQ2M2RlZGYxNjY5NThjMjhmZmI3NWFhMGUy
Y2U1MWYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0hpZ2hQ
ZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQb29sOworCitjbGFzcyBIaWdoUGVyZm9y
bWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgSGlnaFBl
cmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIoV2ViUHJvY2Vzc1Bvb2wmKTsKKworcHJpdmF0
ZToKKyAgICB2b2lkIHRpbWVyRmlyZWQoKTsKKworICAgIFdlYlByb2Nlc3NQb29sJiBtX3dlYlBy
b2Nlc3NQb29sOworICAgIFJ1bkxvb3A6OlRpbWVyPEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNh
Z2VTYW1wbGVyPiBtX3RpbWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZWY1NmIxYzY2MzZmMWFiNWRjZDZm
ZTU4ZGY2Mjg4NGM5ODEzZWUxMS4uYmQ4ZDQzYzQxNjVlOTA2MDk1YWI3Nzk0NDdjOTQxMzUzM2Rh
YWJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMzc4LDYg
KzM3OCw5IEBAIHB1YmxpYzoKICAgICBib29sIHRyeUNsb3NlKCk7CiAgICAgYm9vbCBpc0Nsb3Nl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDbG9zZWQ7IH0KIAorICAgIHZvaWQgc2V0SXNVc2luZ0hp
Z2hQZXJmb3JtYW5jZVdlYkdMKGJvb2wgdmFsdWUpIHsgbV9pc1VzaW5nSGlnaFBlcmZvcm1hbmNl
V2ViR0wgPSB2YWx1ZTsgfQorICAgIGJvb2wgaXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0w7IH0KKwogICAgIHZv
aWQgY2xvc2VQYWdlKGJvb2wgc3RvcFJlc3BvbnNpdmVuZXNzVGltZXIpOwogCiAgICAgdm9pZCBh
ZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKExvYWRQYXJhbWV0ZXJzJik7CkBAIC0xOTczLDYgKzE5
NzYsOCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShET1dOTE9BRF9BVFRSSUJVVEUpCiAgICAgYm9v
bCBtX3N5bmNOYXZpZ2F0aW9uQWN0aW9uSGFzRG93bmxvYWRBdHRyaWJ1dGUgeyBmYWxzZSB9Owog
I2VuZGlmCisKKyAgICBib29sIG1faXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMIHsgZmFsc2Ug
fTsKICAgICAgICAgCiAgICAgV2Vha1B0ckZhY3Rvcnk8V2ViUGFnZVByb3h5PiBtX3dlYWtQdHJG
YWN0b3J5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IDYyMTAyYTE5ZGRkYWJiNjdhZDU3OGI0OTc3YWRkOWNlNTk3Mjcy
OTAuLjUyNzI4NzUxZjkzOTI0OGJhODM5YTQzNzVjNzM3ZWEyMThlM2FkODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDg1
LDQgKzQ4NSw2IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkSGFuZGxlQWNj
ZXB0ZWRDYW5kaWRhdGUoKQogICAgIEhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jl
c3BvbnNlKGJvb2wgaGFzQWN0aXZlU2Vzc2lvbiwgU3RyaW5nIHRpdGxlLCBkb3VibGUgZHVyYXRp
b24sIGRvdWJsZSBlbGFwc2VkVGltZSkKICNlbmRpZgorCisgICAgU2V0SXNVc2luZ0hpZ2hQZXJm
b3JtYW5jZVdlYkdMKGJvb2wgaXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYWVlOTUzZmRjMTdj
NmY3ZjE3NWQ5MDcyN2Y5MjI2ODIzNmU3M2ZhNi4uNjY3OWY2OWNhNzg0NWViNjQ5ZjY1MDU5ZmQx
NGY4MmM4ODNiMWY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eS5oIgogI2lu
Y2x1ZGUgIkRvd25sb2FkUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkdhbWVwYWREYXRhLmgi
CisjaW5jbHVkZSAiSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCIKICNpbmNs
dWRlICJMb2dJbml0aWFsaXphdGlvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgpAQCAt
MTc1LDYgKzE3Niw3IEBAIFdlYlByb2Nlc3NQb29sOjpXZWJQcm9jZXNzUG9vbChBUEk6OlByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICAsIG1fcHJvY2Vzc1N1cHBy
ZXNzaW9uRGlzYWJsZWRGb3JQYWdlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50KSB7IHVw
ZGF0ZVByb2Nlc3NTdXBwcmVzc2lvblN0YXRlKCk7IH0pCiAgICAgLCBtX2hpZGRlblBhZ2VUaHJv
dHRsaW5nQXV0b0luY3JlYXNlc0NvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCkgeyBtX2hp
ZGRlblBhZ2VUaHJvdHRsaW5nVGltZXIuc3RhcnRPbmVTaG90KDApOyB9KQogICAgICwgbV9oaWRk
ZW5QYWdlVGhyb3R0bGluZ1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJldlYlByb2Nlc3NQ
b29sOjp1cGRhdGVIaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFzZUxpbWl0KQorICAgICwg
bV9oaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcihzdGQ6Om1ha2VfdW5pcXVlPEhp
Z2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyPigqdGhpcykpCiB7CiAgICAgZm9yIChh
dXRvJiBzY2hlbWUgOiBtX2NvbmZpZ3VyYXRpb24tPmFsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1l
cygpKQogICAgICAgICBtX3NjaGVtZXNUb1JlZ2lzdGVyQXNBbHdheXNSZXZhbGlkYXRlZC5hZGQo
c2NoZW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXgg
NmY4OTk1YzI3NmQ1NjEyMWQwZDc4OGVhNWRkZDc5NWU3MTlkMjBmYi4uZDMwYzhmZjdjZjM0MTA3
OWYzMzAwYTM1NzQ2NjZiMThiNzY0MmE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKQEAgLTc5LDYgKzc5LDcgQEAgY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRG93bmxvYWRQcm94eTsKK2NsYXNzIEhpZ2hQ
ZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyOwogY2xhc3MgVUlHYW1lcGFkOwogY2xhc3Mg
V2ViQXV0b21hdGlvblNlc3Npb247CiBjbGFzcyBXZWJDb250ZXh0U3VwcGxlbWVudDsKQEAgLTU3
NSw2ICs1NzYsOCBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8V2ViUHJvY2Vzc1Byb3h5Kj4gbV9w
cm9jZXNzZXNVc2luZ0dhbWVwYWRzOwogI2VuZGlmCiAKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SGln
aFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXI+IG1faGlnaFBlcmZvcm1hbmNlR3JhcGhp
Y3NVc2FnZVNhbXBsZXI7CisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIG1fY29va2ll
U3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjYzNmY2
N2U1MDk3MzIyMjVmMjRlM2I1NWU4ODU2NDRjZmVjZTA1My4uYmJjZDc5NjFhZjRiMmU5OGVkZjc1
OTdkNDNmNjJmZjAyOGQxNGNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI1Myw2ICsxMjUzLDggQEAKIAkJODM5MTQ5NjUx
QkVBODM4NTAwRDJEOTUzIC8qIE5ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5MTQ5NjMxQkVBODM4NTAwRDJEOTUz
IC8qIE5ldHdvcmtMb2FkUGFyYW1ldGVycy5oICovOyB9OwogCQk4Mzk5MDIwMjFCRTlBMDJCMDAw
RjM2NTMgLyogTmV0d29ya0xvYWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM5OTAxRkYxQkU5QTAxQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmNw
cCAqLzsgfTsKIAkJODM5OTAyMDMxQkU5QTAyQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzk5MDFGRTFCRTlB
MDFCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuaCAqLzsgfTsKKwkJODM5QTJGMzExRTIwNjc0NTAw
MzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEyRjJGMUUyMDY3Mzkw
MDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi87IH07
CisJCTgzOUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1Vz
YWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM5QTJGMzAxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNh
Z2VTYW1wbGVyLmggKi87IH07CiAJCTgzQkRDQ0I5MUFDNUZEQjYwMDNGNjQ0MSAvKiBOZXR3b3Jr
Q2FjaGVTdGF0aXN0aWNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzQkRDQ0I4MUFDNUZEQjYwMDNGNjQ0MSAvKiBOZXR3b3JrQ2FjaGVTdGF0aXN0
aWNzLmNwcCAqLzsgfTsKIAkJODNCRkFDNDIxRDk2MTM3QzAwNDMzNDkwIC8qIEJsb2JEb3dubG9h
ZENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODNCRkFDNDAxRDk2MTM2MDAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5oICovOyB9Owog
CQk4M0JGQUM0MzFEOTYxMzdDMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQkZBQzQxMUQ5NjEz
NjAwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuY3BwICovOyB9OwpAQCAtMzQwMSw2ICsz
NDAzLDggQEAKIAkJODM5MTQ5NjMxQkVBODM4NTAwRDJEOTUzIC8qIE5ldHdvcmtMb2FkUGFyYW1l
dGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrTG9hZFBhcmFt
ZXRlcnMuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5MDFGRTFCRTlBMDFCMDAwRjM2NTMgLyog
TmV0d29ya0xvYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0xv
YWQuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzOTkwMUZGMUJFOUEwMUIwMDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrTG9hZC5jcHA7
IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzOUEyRjJGMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VH
cmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTgzOUEyRjMwMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9y
bWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4M0JEQ0NCODFBQzVGREI2MDAzRjY0NDEgLyogTmV0d29ya0NhY2hl
U3RhdGlzdGljcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3
b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNC
RkFDNDAxRDk2MTM2MDAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBCbG9iRG93bmxvYWRDbGllbnQuaDsgcGF0aCA9IE5ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODNCRkFDNDExRDk2MTM2MDAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENs
aWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCbG9iRG93bmxv
YWRDbGllbnQuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JEb3dubG9h
ZENsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MjU3LDYgKzYyNjEs
OCBAQAogCQkJCUJDMDZGNDQ4MTJEQkQxRjUwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8sCiAJCQkJQkMwNkY0MzkxMkRCQ0NGQjAwMkQ3OERF
IC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgKi8sCiAJCQkJQkMwNkY0
MzgxMkRCQ0NGQjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5o
ICovLAorCQkJCTgzOUEyRjJGMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFw
aGljc1VzYWdlU2FtcGxlci5jcHAgKi8sCisJCQkJODM5QTJGMzAxRTIwNjczOTAwMzkwNTdFIC8q
IEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmggKi8sCiAJCQkJMzE2MDdGMzgx
OTYyNzAwMjAwOUI4N0RBIC8qIExlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oICovLAogCQkJCUJD
NkVEQUE1MTExMjcxQzYwMEU3Njc4QiAvKiBQYWdlQ2xpZW50LmggKi8sCiAJCQkJMUFDNzUzNzkx
ODNBOUZEQTAwNzJDQjE1IC8qIFBhZ2VMb2FkU3RhdGUuY3BwICovLApAQCAtNzg4NSw2ICs3ODkx
LDcgQEAKIAkJCQkxQTZGQkQyODExRTY5QkMyMDBEQjEzNzEgLyogTmV0c2NhcGVQbHVnaW4uaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNEE5QzU2MTJCODE2Q0YwMDhGRTk4NCAvKiBOZXRzY2FwZVBs
dWdpbk1vZHVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNTg4OTIxMUVFNzA0MDAwNjFCODgy
IC8qIE5ldHNjYXBlUGx1Z2luU3RyZWFtLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzlBMkYzMjFF
MjA2NzQ1MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUUxNzk4QzdBMTZFNjgxODgwMDI0MDEzOSAvKiBOZXR3b3JrQmxv
YlJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQzNkVDQzFBMEQwNDBCMDBFQUQyMDQg
LyogTmV0d29ya0NhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDlENDBENzFBRDNGQjE3MDA2
NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLApAQCAtOTM4
MCw2ICs5Mzg3LDcgQEAKIAkJCQkxQTZGQkQyOTExRTY5QkMyMDBEQjEzNzEgLyogTmV0c2NhcGVQ
bHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFNUI3RkIxMUU3QUVEMjAwQkE2NzY3IC8q
IE5ldHNjYXBlUGx1Z2luTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE0QTlDNTUxMkI4MTZD
RjAwOEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTgzOUEyRjMxMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTRBOUM5QTEyQjgyMUNEMDA4RkU5ODQg
LyogTmV0c2NhcGVQbHVnaW5Nb2R1bGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUE1ODg5
MzExRUU3MDQwMDA2MUI4ODIgLyogTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTE3OThDNzkxNkU2ODE4ODAwMjQwMTM5IC8qIE5ldHdvcmtCbG9iUmVnaXN0cnku
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggZDE3YTdmY2VjODdjOTMxNjRkMzdlMmM5NDZiZDlmOWY2MTNjZWU5
ZS4uNjFjMGRjNmQ5MGVhOGI0ZTFjNzc2Y2MzODg1MzFiMTU4OGU2ZTBhYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTc2LDYgKzE3Niw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVldC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvVmlzaWJsZVBvc2l0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaXNpYmxlVW5pdHMuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1dlYkdMU3RhdGVUcmFja2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9odG1sZWRpdGluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvbWFya3VwLmg+CiAjaW5jbHVkZSA8
YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KQEAgLTM1Nyw2ICszNTgsOSBAQCBXZWJQYWdlOjpXZWJQ
YWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycykKICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUg
PSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jl
c3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudCgqdGhpcyk7CiAg
ICAgcGFnZUNvbmZpZ3VyYXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50PigqdGhpcyk7CisgICAgcGFnZUNvbmZp
Z3VyYXRpb24ud2ViR0xTdGF0ZVRyYWNrZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMU3RhdGVU
cmFja2VyPihbdGhpc10oYm9vbCBpc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0wpIHsKKyAgICAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRJc1VzaW5nSGlnaFBlcmZvcm1hbmNl
V2ViR0woaXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKSk7CisgICAgfSk7CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBwYWdlQ29uZmlndXJhdGlvbi52YWxpZGF0aW9uTWVzc2FnZUNsaWVu
dCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ+KCp0aGlzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298390</attachid>
            <date>2017-01-09 14:25:49 -0800</date>
            <delta_ts>2017-01-09 15:37:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166730-20170109142414.patch</filename>
            <type>text/plain</type>
            <size>39558</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwZDk1MGEwM2ZiOWEw
Y2U4NWIzYmFiMDA1MTU1OTZjODcwZjQ3Yi4uYmFjMmExMjFkNTcwOTgxNGY5NWE3NWU1MzRmNGY1
NmJhOGIyNWRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE3LTAxLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIGRpYWdub3N0
aWMgbG9nZ2luZyB0byBtZWFzdXJlIFdlYkdMIHVzYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzI5ODgzNDY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBkaWFnbm9zdGljIGxvZ2dpbmcgdG8gbWVhc3VyZSBoaWdoIHBlcmZvcm1hbmNlIFdl
YkdMIHVzYWdlLiBXZSByZXBvcnQKKyAgICAgICAgYXQgcmVndWxhciBpbnRlcnZhbHMgaW4gd2hp
Y2ggV2ViR0wgc3RhdGUgU2FmYXJpIGlzOgorICAgICAgICAtIEluYWN0aXZlCisgICAgICAgIC0g
QWN0aXZlSW5Gb3JlZ3JvdW5kVGFiCisgICAgICAgIC0gQWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25s
eQorCisgICAgICAgIFRoaXMgc2hvdWxkIGdpdmUgdXMgYW4gZXN0aW1hdGUgb2Y6CisgICAgICAg
IC0gV2hhdCAlIG9mIHRoZSB0aW1lIGlzIFNhZmFyaSB1c2luZyBoaWdoIHBlcmZvcm1hbmNlIGdy
YXBoaWNzCisgICAgICAgIC0gV2hhdCAlIG9mIHRoaXMgdGltZSBpcyBvbmx5IGR1ZSB0byBiYWNr
Z3JvdW5kIHRhYnMKKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZp
b3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6cmVnaXN0ZXJXaXRoV2ViR0xTdGF0ZVRyYWNrZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBwYWdlL0RpYWdub3N0aWNM
b2dnaW5nS2V5cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OmluYWN0aXZlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6
YWN0aXZlSW5Gb3JlZ3JvdW5kVGFiS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNM
b2dnaW5nS2V5czo6YWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25seUtleSk6CisgICAgICAgIChXZWJD
b3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnN0YXRlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6d2ViR0xLZXkpOgorICAgICAgICAqIHBh
Z2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6d2ViR0xTdGF0ZVRyYWNrZXIpOgorICAgICAgICAqIHBhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9XZWJHTFN0YXRlVHJhY2tlci5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcy5oLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTdGF0ZVRyYWNrZXI6OldlYkdMU3RhdGVU
cmFja2VyKToKKyAgICAgICAgKFdlYkNvcmU6Om1fc3RhdGVDaGFuZ2VIYW5kbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMU3RhdGVUcmFja2VyOjp1cGRhdGVXZWJHTFN0YXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9XZWJHTFN0YXRlVHJhY2tlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMuaC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMuaDoK
KwogMjAxNy0wMS0wNiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNv
bGxhYm9yYS5jby51az4KIAogICAgICAgICBbR1RLXSBTaG91bGQgc3VwcG9ydCBrZXkgYW5kIGNv
ZGUgcHJvcGVydGllcyBvbiBrZXlib2FyZCBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhODFjYzEwYTU3
NGJkZjQ0ZGY2YTIwNWM2MzM0ODY4ODZkZDE2MmVjLi41NThhNTFiMjNlNjBjZGYyZmM3Njg5NTc5
MTEzNWY3NTM5MWQ4NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTctMDEtMDkg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBBZGQgZGlh
Z25vc3RpYyBsb2dnaW5nIHRvIG1lYXN1cmUgV2ViR0wgdXNhZ2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjczMAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjk4ODM0Njk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGRpYWdub3N0aWMgbG9nZ2luZyB0byBtZWFzdXJlIGhpZ2ggcGVyZm9ybWFu
Y2UgV2ViR0wgdXNhZ2UuIFdlIHJlcG9ydAorICAgICAgICBhdCByZWd1bGFyIGludGVydmFscyBp
biB3aGljaCBXZWJHTCBzdGF0ZSBTYWZhcmkgaXM6CisgICAgICAgIC0gSW5hY3RpdmUKKyAgICAg
ICAgLSBBY3RpdmVJbkZvcmVncm91bmRUYWIKKyAgICAgICAgLSBBY3RpdmVJbkJhY2tncm91bmRU
YWJPbmx5CisKKyAgICAgICAgVGhpcyBzaG91bGQgZ2l2ZSB1cyBhbiBlc3RpbWF0ZSBvZjoKKyAg
ICAgICAgLSBXaGF0ICUgb2YgdGhlIHRpbWUgaXMgU2FmYXJpIHVzaW5nIGhpZ2ggcGVyZm9ybWFu
Y2UgZ3JhcGhpY3MKKyAgICAgICAgLSBXaGF0ICUgb2YgdGhpcyB0aW1lIGlzIG9ubHkgZHVlIHRv
IGJhY2tncm91bmQgdGFicworCisgICAgICAgICogVUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdy
YXBoaWNzVXNhZ2VTYW1wbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkhpZ2hQZXJm
b3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyOjpIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlcik6CisgICAgICAgIChXZWJLaXQ6OkhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VT
YW1wbGVyOjp0aW1lckZpcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNl
R3JhcGhpY3NVc2FnZVNhbXBsZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmguCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNl
dElzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1faGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2Fn
ZVNhbXBsZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAg
ICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fdXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbik6CisKIDIwMTctMDEtMDYgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAg
PGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgW0dUS10gU2hvdWxk
IHN1cHBvcnQga2V5IGFuZCBjb2RlIHByb3BlcnRpZXMgb24ga2V5Ym9hcmQgZXZlbnRzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NmNjNDIzOTk3YmNkN2FiYzRiZmZjOTM0ODdlMTFjMTQzYzI0ZTM3YS4uNzgxZDI4MzcyODkwNDM2
MDdhY2EzYzA4ZjNhMjUyODNiMDRkMjU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzAyNyw2ICszMDI3LDggQEAKIAkJODM4
RUY1MzgxREMxNDlFMjAwOEYwQzM5IC8qIElEQlRyYW5zYWN0aW9uTW9kZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4RUY1MzYxREMxNDlEQTAwOEYw
QzM5IC8qIElEQlRyYW5zYWN0aW9uTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTgzOEVGNTNCMURDMTRBN0MwMDhGMEMzOSAvKiBKU0lEQlRy
YW5zYWN0aW9uTW9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MzhFRjUzOTFEQzE0QTc1MDA4RjBDMzkgLyogSlNJREJUcmFuc2FjdGlvbk1vZGUu
Y3BwICovOyB9OwogCQk4MzhFRjUzQzFEQzE0QTdDMDA4RjBDMzkgLyogSlNJREJUcmFuc2FjdGlv
bk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
OEVGNTNBMURDMTRBNzUwMDhGMEMzOSAvKiBKU0lEQlRyYW5zYWN0aW9uTW9kZS5oICovOyB9Owor
CQk4MzlBMkYyRDFFMjA0QTcxMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QTJGMkIxRTIwNEE2
RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmNwcCAqLzsgfTsKKwkJODM5QTJGMkUxRTIw
NEE3MTAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMkYyQzFFMjA0QTZEMDAzOTA1N0UgLyogV2Vi
R0xTdGF0ZVRyYWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4MzlBQUZFQzFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QUFGRUEx
QTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmNwcCAqLzsgfTsKIAkJODM5QUFGRUQx
QTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBQUZFQjFBMEMwQzhEMDA2MDVGOTkgLyogSFRN
TFdCUkVsZW1lbnQuaCAqLzsgfTsKIAkJODNBNEE5RjkxQ0U3RkQ4MTAwNzA5QjAwIC8qIEpTWE1M
RG9jdW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNBNEE5RjgxQ0U3RkQ3RTAwNzA5QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0b20u
Y3BwICovOyB9OwpAQCAtMTA1NDMsNiArMTA1NDUsOCBAQAogCQk4MzhFRjUzNzFEQzE0OURBMDA4
RjBDMzkgLyogSURCVHJhbnNhY3Rpb25Nb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJ
REJUcmFuc2FjdGlvbk1vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzhF
RjUzOTFEQzE0QTc1MDA4RjBDMzkgLyogSlNJREJUcmFuc2FjdGlvbk1vZGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJUcmFuc2FjdGlvbk1vZGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzhFRjUzQTFEQzE0QTc1MDA4RjBDMzkgLyog
SlNJREJUcmFuc2FjdGlvbk1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNJREJUcmFuc2FjdGlvbk1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM5
QTJGMkIxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkdMU3RhdGVUcmFja2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM5QTJGMkMxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdM
U3RhdGVUcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMU3Rh
dGVUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUFBRkVBMUEwQzBD
OEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBIVE1MV0JSRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MV0JSRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4M0E0QTlGODFDRTdGRDdFMDA3MDlCMDAgLyogSlNYTUxEb2N1
bWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hN
TERvY3VtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNjc1
LDYgKzIyNjc5LDggQEAKIAkJCQk0NkRCN0Q1OTFCMjBGRTU4MDA1NjUxQjIgLyogVk5vZGVUcmFj
a2VyLmggKi8sCiAJCQkJNTE1Rjc5NTExQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1Ro
cmVhZENvcGllci5jcHAgKi8sCiAJCQkJNTE1Rjc5NTIxQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNv
cmVDcm9zc1RocmVhZENvcGllci5oICovLAorCQkJCTgzOUEyRjJCMUUyMDRBNkQwMDM5MDU3RSAv
KiBXZWJHTFN0YXRlVHJhY2tlci5jcHAgKi8sCisJCQkJODM5QTJGMkMxRTIwNEE2RDAwMzkwNTdF
IC8qIFdlYkdMU3RhdGVUcmFja2VyLmggKi8sCiAJCQkJOTM4MEY0NzEwOUExMUFCNDAwMUZEQjM0
IC8qIFdpZGdldC5jcHAgKi8sCiAJCQkJOTM4MEY0NzIwOUExMUFCNDAwMUZEQjM0IC8qIFdpZGdl
dC5oICovLAogCQkJCUUxRTFCRUZGMTE1RkY2RkIwMDZGNTJDQSAvKiBXaW5kb3dzS2V5Ym9hcmRD
b2Rlcy5oICovLApAQCAtMjU0OTAsNiArMjU0OTYsNyBAQAogCQkJCTBGNDcxMEFGMURCNTZBRkMw
MDJEQ0VDMyAvKiBET01SZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQ3MTBCMTFEQjU2QUZD
MDAyRENFQzMgLyogRE9NUmVjdEluaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDcxMEIzMURC
NTZBRkMwMDJEQ0VDMyAvKiBET01SZWN0UmVhZE9ubHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTgz
OUEyRjJFMUUyMDRBNzEwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1QTg2ODUwQzMzNjc2MDAwRUVBNjQ5IC8qIERPTVNlbGVjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQzU0NDI3NEIxMUE1N0U3QTAwNjNBNzQ5IC8qIERPTVN0cmluZ0xpc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjQ2NDBBMTFEN0YzMDQwMDY0NTVCMCAvKiBET01TdHJp
bmdNYXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjk0NTYsNiArMjk0NjMsNyBAQAogCQkJCTY1QkYw
MjJFMDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzRB
ODYyMjE0QjdBREJCMDAzRkRDNzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZFRDEzRDNEMENFQTkzNkEwMEQ4OTQ2NiAvKiBGcmFtZUlPUy5tbSBp
biBTb3VyY2VzICovLAorCQkJCTgzOUEyRjJEMUUyMDRBNzEwMDM5MDU3RSAvKiBXZWJHTFN0YXRl
VHJhY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzJFMTYwOTBBRjU3ODM0MDAyNUY0MDgg
LyogRnJhbWVMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDAwMEVCQTIxMUJEQUZENDAw
QzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg2QkE3NjZFMTY2NDI3QTgwMDVCRTVEMSAvKiBGcmFtZUxvYWRSZXF1ZXN0LmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCA5ODQ1YjNlZjU4M2Y5OTk4MTZjYWU3ZjA0ZmU0
ZjY3NmU5YWUyNWU3Li44MTQxMmVhYWY1ODAzMDFiZWY1NTJjYjZkZDFkOTVmODNmYjVlOThlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcApAQCAtMzk5LDcgKzM5OSw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUo
SFRNCiAgICAgaWYgKGZyYW1lLT5zZXR0aW5ncygpLmZvcmNlU29mdHdhcmVXZWJHTFJlbmRlcmlu
ZygpKQogICAgICAgICBhdHRyaWJ1dGVzLmZvcmNlU29mdHdhcmVSZW5kZXJlciA9IHRydWU7CiAK
LSAgICBpZiAoIWF0dHJpYnV0ZXMucHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSAmJiBm
cmFtZS0+c2V0dGluZ3MoKS5wcmVmZXJMb3dQb3dlcldlYkdMUmVuZGVyaW5nKCkpCisgICAgYXR0
cmlidXRlcy5pbml0aWFsUHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSA9IGF0dHJpYnV0
ZXMucHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZTsKKyAgICBpZiAoZnJhbWUtPnNldHRp
bmdzKCkucHJlZmVyTG93UG93ZXJXZWJHTFJlbmRlcmluZygpKQogICAgICAgICBhdHRyaWJ1dGVz
LnByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2UgPSB0cnVlOwogCiAgICAgaWYgKHBhZ2Up
CkBAIC00NjEsNiArNDYyLDcgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2EKICAgICAsIG1fbnVt
R0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkKG1heEdMRXJyb3JzQWxsb3dlZFRvQ29uc29sZSkKICAg
ICAsIG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbih0cnVlKQogeworICAgIHJlZ2lzdGVyV2l0
aFdlYkdMU3RhdGVUcmFja2VyKCk7CiB9CiAKIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywg
UmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRleHQsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMg
YXR0cmlidXRlcykKQEAgLTQ4Miw2ICs0ODQsMjAgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2EK
IAogICAgIHNldHVwRmxhZ3MoKTsKICAgICBpbml0aWFsaXplTmV3Q29udGV4dCgpOworICAgIHJl
Z2lzdGVyV2l0aFdlYkdMU3RhdGVUcmFja2VyKCk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6cmVnaXN0ZXJXaXRoV2ViR0xTdGF0ZVRyYWNrZXIoKQoreworICAgIGF1dG8q
IHBhZ2UgPSBjYW52YXMoKS5kb2N1bWVudCgpLnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8qIHRyYWNrZXIgPSBwYWdlLT53ZWJHTFN0YXRlVHJhY2tl
cigpOworICAgIGlmICghdHJhY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV90cmFja2Vy
VG9rZW4gPSB0cmFja2VyLT50b2tlbihtX2F0dHJpYnV0ZXMuaW5pdGlhbFByZWZlckxvd1Bvd2Vy
VG9IaWdoUGVyZm9ybWFuY2UpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OmluaXRpYWxpemVOZXdDb250ZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCA5ZjllOGI2NDFmZjZiY2Qz
OWFkMjc1NmQyNzM3N2RlMjMyOWNkZjYwLi4wMjU4MTk5OWQxZjBjMmZlNTY1ZWY5Njc1MjkyMzA1
OGFmMzk4Y2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiVGlt
ZXIuaCIKICNpbmNsdWRlICJXZWJHTEFueS5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEF0dHJp
YnV0ZXMuaCIKKyNpbmNsdWRlICJXZWJHTFN0YXRlVHJhY2tlci5oIgogI2luY2x1ZGUgIldlYkdM
VGV4dHVyZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KIApAQCAtNzk4LDYgKzc5OSw5IEBAIHByb3Rl
Y3RlZDoKIAogcHJpdmF0ZToKICAgICBib29sIHZhbGlkYXRlQXJyYXlCdWZmZXJUeXBlKGNvbnN0
IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0MzRGVudW0gdHlwZSwgc3RkOjpvcHRpb25hbDxKU0M6OlR5
cGVkQXJyYXlUeXBlPik7CisgICAgdm9pZCByZWdpc3RlcldpdGhXZWJHTFN0YXRlVHJhY2tlcigp
OworCisgICAgV2ViR0xTdGF0ZVRyYWNrZXI6OlRva2VuIG1fdHJhY2tlclRva2VuOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
aWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGlj
TG9nZ2luZ0tleXMuY3BwCmluZGV4IGQ2YmUwMjBhYjVhNTlkMjJiMDhkZDljYzZkZTQ2ZjA0NTZh
OTNhZWQuLjYwYzRjZjA1OGMwMzcxMjExYmUyZGFjOTYzNWRjZDdlM2I1YWRkZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKQEAgLTIzOCw2ICsy
MzgsMTEgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aW5NZW1vcnlDYWNoZUtleSgp
CiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW5NZW1vcnlDYWNoZSIpOwogfQogCitTdHJpbmcg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbmFjdGl2ZUtleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJ
TGl0ZXJhbCgiaW5hY3RpdmUiKTsKK30KKwogU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
aW50ZXJuYWxFcnJvcktleSgpCiB7CiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW50ZXJuYWxF
cnJvciIpOwpAQCAtMzEzLDYgKzMxOCwxNiBAQCBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpkZWx0YUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZGVsdGEiKTsKIH0KIAorU3Ry
aW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6YWN0aXZlSW5Gb3JlZ3JvdW5kVGFiS2V5KCkKK3sK
KyAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJhY3RpdmVJbkZvcmVncm91bmRUYWIiKTsKK30KKwor
U3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6YWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25seUtl
eSgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiYWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25s
eSIpOworfQorCiBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjphcHBsaWNhdGlvbkNhY2hl
S2V5KCkKIHsKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJhcHBsaWNhdGlvbkNhY2hlIik7CkBA
IC00MzgsNiArNDUzLDExIEBAIFN0cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnNvdXJjZUtl
eSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic291cmNlIik7CiB9CiAKK1N0cmluZyBEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OnN0YXRlS2V5KCkKK3sKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFs
KCJzdGF0ZSIpOworfQorCiBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzdHJlYW1pbmdN
ZWRpYSgpCiB7CiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgic3RyZWFtaW5nTWVkaWEiKTsKQEAg
LTYxOCw1ICs2MzgsMTAgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm90SW5DYWNo
ZUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibm90SW5DYWNoZSIpOwogfQogCitTdHJp
bmcgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp3ZWJHTEtleSgpCit7CisgICAgcmV0
dXJuIEFTQ0lJTGl0ZXJhbCgid2ViR0wiKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaAppbmRleCAyZWU2
MjdiOGY0MzgzYWQ2ODNiNzJiNDAxNmRkMjI5MjIwNzFlNTkyLi43MDRkY2NiMzA0NzdiNDM4ZTQ0
Y2JlMTRjZTJhM2EwOTcwYzdiMjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rp
YWdub3N0aWNMb2dnaW5nS2V5cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzLmgKQEAgLTMxLDYgKzMxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBEaWFnbm9zdGljTG9nZ2luZ0tleXMgewogcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTdHJpbmcgYWN0aXZlSW5Gb3JlZ3JvdW5kVGFiS2V5KCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFN0cmluZyBhY3RpdmVJbkJhY2tncm91bmRUYWJPbmx5S2V5KCk7CiAgICAg
c3RhdGljIFN0cmluZyBhcHBsaWNhdGlvbkNhY2hlS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBh
dWRpb0tleSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgYmFja05hdmlnYXRp
b25LZXkoKTsKQEAgLTU2LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgaHR0
cHNOb1N0b3JlS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBpbWFnZUtleSgpOwogICAgIHN0YXRp
YyBTdHJpbmcgaW5NZW1vcnlDYWNoZUtleSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBT
dHJpbmcgaW5hY3RpdmVLZXkoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIGlu
dGVybmFsRXJyb3JLZXkoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIGludmFs
aWRTZXNzaW9uSURLZXkoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIGlzQXR0
YWNobWVudEtleSgpOwpAQCAtMTE4LDYgKzEyMSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3Ry
aW5nIHNhbWVMb2FkS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBzY3JpcHRLZXkoKTsKICAgICBz
dGF0aWMgU3RyaW5nIHNvdXJjZUtleSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJp
bmcgc3RhdGVLZXkoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIHN0cmVhbWlu
Z01lZGlhKCk7CiAgICAgc3RhdGljIFN0cmluZyBzdHlsZVNoZWV0S2V5KCk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFN0cmluZyBzdWNjZXNzZnVsU3BlY3VsYXRpdmVXYXJtdXBXaXRoUmV2
YWxpZGF0aW9uS2V5KCk7CkBAIC0xNDUsNiArMTQ5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBT
dHJpbmcgdmlkZW9LZXkoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIHdhc3Rl
ZFNwZWN1bGF0aXZlV2FybXVwV2l0aFJldmFsaWRhdGlvbktleSgpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBTdHJpbmcgd2FzdGVkU3BlY3VsYXRpdmVXYXJtdXBXaXRob3V0UmV2YWxpZGF0
aW9uS2V5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyB3ZWJHTEtleSgpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgd2ViVmlld0tleSgpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgem9vbWVkS2V5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmlu
ZGV4IDkzMzFiMzAyOTA3ZTc5YjdjMTFiNWVjMDg0NmJhZmQ1YzNmZWM0OTcuLjczMDBkM2E1NDM5
NTNlZmY5YmNjNTM2Y2Q0ZmVmMGM4MWYxMDIzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtOTcs
NiArOTcsNyBAQAogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RhdGUuaCIKICNpbmNsdWRlICJWaXNp
dGVkTGlua1N0b3JlLmgiCiAjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCisjaW5jbHVkZSAiV2Vi
R0xTdGF0ZVRyYWNrZXIuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZExlYWtDb3VudGVyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAt
MTkwLDYgKzE5MSw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmln
dXJhdGlvbikKICAgICAsIG1fcGx1Z0luQ2xpZW50KHBhZ2VDb25maWd1cmF0aW9uLnBsdWdJbkNs
aWVudCkKICAgICAsIG1fdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQoV1RGTW92ZShwYWdlQ29uZmln
dXJhdGlvbi52YWxpZGF0aW9uTWVzc2FnZUNsaWVudCkpCiAgICAgLCBtX2RpYWdub3N0aWNMb2dn
aW5nQ2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQpKQorICAgICwgbV93ZWJHTFN0YXRlVHJhY2tlcihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9u
LndlYkdMU3RhdGVUcmFja2VyKSkKICAgICAsIG1fc3ViZnJhbWVDb3VudCgwKQogICAgICwgbV9v
cGVuZWRCeURPTShmYWxzZSkKICAgICAsIG1fdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKHRy
dWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IGRlM2ZlNGU4NTgwOTc2M2NmM2IwM2RjOTQ3YWNjZjYxYzE2
ZDE1ZTkuLjM3YWM2YTdjODFkYzM4NGYxZjYyNjM3OTljZDg4OGFiMTJhMjNjZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCkBAIC0xMjksNiArMTI5LDcgQEAgY2xhc3MgVXNlckNvbnRlbnRQcm92aWRlcjsKIGNs
YXNzIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogY2xhc3MgQWN0aXZpdHlTdGF0ZUNoYW5nZU9i
c2VydmVyOwogY2xhc3MgVmlzaXRlZExpbmtTdG9yZTsKK2NsYXNzIFdlYkdMU3RhdGVUcmFja2Vy
OwogCiB0eXBlZGVmIHVpbnQ2NF90IExpbmtIYXNoOwogCkBAIC01NDgsNiArNTQ5LDcgQEAgcHVi
bGljOgogICAgIHN0ZDo6b3B0aW9uYWw8RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3I+IGV2ZW50VGhy
b3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX2V2ZW50VGhyb3R0bGlu
Z0JlaGF2aW9yT3ZlcnJpZGU7IH0KICAgICB2b2lkIHNldEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9y
T3ZlcnJpZGUoc3RkOjpvcHRpb25hbDxFdmVudFRocm90dGxpbmdCZWhhdmlvcj4gdGhyb3R0bGlu
ZykgeyBtX2V2ZW50VGhyb3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGUgPSB0aHJvdHRsaW5nOyB9CiAK
KyAgICBXZWJHTFN0YXRlVHJhY2tlciogd2ViR0xTdGF0ZVRyYWNrZXIoKSBjb25zdCB7IHJldHVy
biBtX3dlYkdMU3RhdGVUcmFja2VyLmdldCgpOyB9CiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgaW5pdEdyb3VwKCk7CiAKQEAgLTYxMSw2ICs2MTMsNyBAQCBwcml2YXRlOgogICAg
IFBsdWdJbkNsaWVudCogbV9wbHVnSW5DbGllbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZhbGlk
YXRpb25NZXNzYWdlQ2xpZW50PiBtX3ZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxEaWFnbm9zdGljTG9nZ2luZ0NsaWVudD4gbV9kaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xTdGF0ZVRyYWNrZXI+IG1fd2ViR0xTdGF0
ZVRyYWNrZXI7CiAKICAgICBpbnQgbV9zdWJmcmFtZUNvdW50OwogICAgIFN0cmluZyBtX2dyb3Vw
TmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggYjEy
ZGI0ZTYwYTY1ODQ0ZTliNDU4ZDRmMDY1ZmNkNWUwMWE2OTY1MC4uOWRiZjdkZjI3NDA4MTg3NjYy
NjU2MWVjZGNmYTk1Y2ZjMjJmZTA2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIgogI2luY2x1ZGUg
IlZpc2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJHTFN0YXRlVHJhY2tlci5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
aAppbmRleCA4YzcxZjgxNzdmZmU5NjM3NmM0YTlhMWI2YmY5ZTM5MTE5OWFhZDA2Li40ZDgxMTM2
ZTUzMGZjNTFmZmZlMWQxOWFiNTZkYTVkMDQ5NjMxNDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNzIFN0b3JhZ2VOYW1lc3Bh
Y2VQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CiBjbGFzcyBWYWxpZGF0aW9u
TWVzc2FnZUNsaWVudDsKIGNsYXNzIFZpc2l0ZWRMaW5rU3RvcmU7CitjbGFzcyBXZWJHTFN0YXRl
VHJhY2tlcjsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogY2xhc3MgQ29udGV4dE1lbnVD
bGllbnQ7CkBAIC04MCw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFs
aWRhdGlvbk1lc3NhZ2VDbGllbnQ+IHZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogICAgIEZyYW1l
TG9hZGVyQ2xpZW50KiBsb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgeyBudWxscHRyIH07CiAgICAg
c3RkOjp1bmlxdWVfcHRyPERpYWdub3N0aWNMb2dnaW5nQ2xpZW50PiBkaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xTdGF0ZVRyYWNrZXI+IHdlYkdMU3Rh
dGVUcmFja2VyOwogCiAgICAgUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlPiBhcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTsKICAgICBSZWZQdHI8RGF0YWJhc2VQcm92aWRlcj4gZGF0YWJhc2VQ
cm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dlYkdMU3RhdGVU
cmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dlYkdMU3RhdGVUcmFja2VyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zOGExNzQ4ZGIxMjBmOTEwZjZmMzQ4NjAxODkxN2QwYzc0YjMyOWRlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViR0xTdGF0ZVRyYWNr
ZXIuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViR0xTdGF0ZVRyYWNrZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitXZWJHTFN0YXRlVHJhY2tlcjo6V2ViR0xTdGF0ZVRyYWNrZXIoU3RhdGVDaGFuZ2VIYW5kbGVy
JiYgaGFuZGxlcikKKyAgICA6IG1fV2ViR0xDb250ZXh0Q291bnRlcihbdGhpc10oUmVmQ291bnRl
ckV2ZW50KSB7IHVwZGF0ZVdlYkdMU3RhdGUoKTsgfSkKKyAgICAsIG1fc3RhdGVDaGFuZ2VIYW5k
bGVyKFdURk1vdmUoaGFuZGxlcikpCit7Cit9CisKK2F1dG8gV2ViR0xTdGF0ZVRyYWNrZXI6OnRv
a2VuKGJvb2wgcHJlZmVyTG93UG93ZXIpIC0+IFRva2VuCit7CisgICAgLy8gV2Ugb25seSB0cmFj
ayBoaWdoIHBlcmZvcm1hbmNlIFdlYkdMIGNvbnRleHRzIGF0IHRoZSBtb21lbnQuCisgICAgaWYg
KHByZWZlckxvd1Bvd2VyKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVybiBtX1dlYkdM
Q29udGV4dENvdW50ZXIuY291bnQoKTsKK30KKwordm9pZCBXZWJHTFN0YXRlVHJhY2tlcjo6dXBk
YXRlV2ViR0xTdGF0ZSgpCit7CisgICAgaWYgKCFtX1dlYkdMQ29udGV4dENvdW50ZXIudmFsdWUo
KSkKKyAgICAgICAgbV9zdGF0ZUNoYW5nZUhhbmRsZXIoZmFsc2UpOworICAgIGVsc2UgaWYgKG1f
V2ViR0xDb250ZXh0Q291bnRlci52YWx1ZSgpID09IDEpCisgICAgICAgIG1fc3RhdGVDaGFuZ2VI
YW5kbGVyKHRydWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XZWJHTFN0YXRlVHJhY2tlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vV2ViR0xTdGF0ZVRyYWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jY2Q3YTA1ODVkODY3
NTM1N2I4Y2RmMGI2ODZkZTZiNTZhOWZkYTFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vV2ViR0xTdGF0ZVRyYWNrZXIuaApAQCAtMCwwICsxLDUxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdl
YkdMU3RhdGVUcmFja2VyIHsKK3B1YmxpYzoKKyAgICB1c2luZyBTdGF0ZUNoYW5nZUhhbmRsZXIg
PSBGdW5jdGlvbjx2b2lkKGJvb2wgaXNVc2luZ1dlYkdMKT47CisgICAgV0VCQ09SRV9FWFBPUlQg
ZXhwbGljaXQgV2ViR0xTdGF0ZVRyYWNrZXIoU3RhdGVDaGFuZ2VIYW5kbGVyJiYpOworCisgICAg
ZW51bSBXZWJHTENvbnRleHRDb3VudGVyVHlwZSB7IH07CisgICAgdXNpbmcgV2ViR0xDb250ZXh0
Q291bnRlciA9IFJlZkNvdW50ZXI8V2ViR0xDb250ZXh0Q291bnRlclR5cGU+OworICAgIHVzaW5n
IFRva2VuID0gV2ViR0xDb250ZXh0Q291bnRlcjo6VG9rZW47CisKKyAgICBUb2tlbiB0b2tlbihi
b29sIHByZWZlckxvd1Bvd2VyKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHVwZGF0ZVdlYkdMU3Rh
dGUoKTsKKworICAgIFdlYkdMQ29udGV4dENvdW50ZXIgbV9XZWJHTENvbnRleHRDb3VudGVyOwor
ICAgIFN0YXRlQ2hhbmdlSGFuZGxlciBtX3N0YXRlQ2hhbmdlSGFuZGxlcjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmgKaW5kZXggYjlhMjY4
NjUzOThiNDIwMjVjZmE4ZWRhOWYyMDg2MmYzZWU3MTU1NC4uZjlmMjE2MWE0MjE4YWJmYjlhZDE2
NTU5ZmViNTlmMDQ1ODZlYjlmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmgKQEAgLTQ0
LDYgKzQ0LDcgQEAgc3RydWN0IEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyB7CiAgICAgYm9v
bCB1c2VHTEVTMyB7IGZhbHNlIH07CiAgICAgYm9vbCBub0V4dGVuc2lvbnMgeyBmYWxzZSB9Owog
ICAgIGZsb2F0IGRldmljZVBpeGVsUmF0aW8geyAxIH07CisgICAgYm9vbCBpbml0aWFsUHJlZmVy
TG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSB7IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNh
bXBsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdyYXBo
aWNzVXNhZ2VTYW1wbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjliY2M1YzhhZmVlNjI0MzRmOWZjNzZj
OTVlMWFlNWU3ZmViNzk2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0hpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcApAQCAtMCwwICsxLDc4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhpZ2hQZXJm
b3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmgiCisKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9v
bC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworc3RhdGljIGNvbnN0
IHN0ZDo6Y2hyb25vOjptaW51dGVzIHNhbXBsaW5nSW50ZXJ2YWwgeyAxMCB9OworCitIaWdoUGVy
Zm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcjo6SGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2Fn
ZVNhbXBsZXIoV2ViUHJvY2Vzc1Bvb2wmIHdlYlByb2Nlc3NQb29sKQorICAgIDogbV93ZWJQcm9j
ZXNzUG9vbCh3ZWJQcm9jZXNzUG9vbCkKKyAgICAsIG1fdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0
aGlzLCAmSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXI6OnRpbWVyRmlyZWQpCit7
CisgICAgbV90aW1lci5zdGFydFJlcGVhdGluZyhzYW1wbGluZ0ludGVydmFsKTsKK30KKwordm9p
ZCBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcjo6dGltZXJGaXJlZCgpCit7Cisg
ICAgYm9vbCBpc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0wgPSBmYWxzZTsKKyAgICBib29sIGlz
VXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTEluVmlzaWJsZVZpZXcgPSBmYWxzZTsKKworICAgIFdl
YlBhZ2VQcm94eSogZmlyc3RQYWdlID0gbnVsbHB0cjsKKyAgICBmb3IgKGF1dG8mIHdlYlByb2Nl
c3MgOiBtX3dlYlByb2Nlc3NQb29sLnByb2Nlc3NlcygpKSB7CisgICAgICAgIGZvciAoYXV0byYg
cGFnZSA6IHdlYlByb2Nlc3MtPnBhZ2VzKCkpIHsKKyAgICAgICAgICAgIGlmICghZmlyc3RQYWdl
KQorICAgICAgICAgICAgICAgIGZpcnN0UGFnZSA9IHBhZ2U7CisKKyAgICAgICAgICAgIGlmIChw
YWdlLT5pc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0woKSkgeworICAgICAgICAgICAgICAgIGlz
VXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTCA9IHRydWU7CisgICAgICAgICAgICAgICAgaWYgKHBh
Z2UtPmlzVmlld1Zpc2libGUoKSkgeworICAgICAgICAgICAgICAgICAgICBpc1VzaW5nSGlnaFBl
cmZvcm1hbmNlV2ViR0xJblZpc2libGVWaWV3ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fQorCisgICAgaWYgKCFmaXJzdFBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBz
dGF0ZSA9IERpYWdub3N0aWNMb2dnaW5nS2V5czo6aW5hY3RpdmVLZXkoKTsKKyAgICBpZiAoaXNV
c2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMSW5WaXNpYmxlVmlldykKKyAgICAgICAgc3RhdGUgPSBE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OmFjdGl2ZUluRm9yZWdyb3VuZFRhYktleSgpOworICAgIGVs
c2UgaWYgKGlzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTCkKKyAgICAgICAgc3RhdGUgPSBEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OmFjdGl2ZUluQmFja2dyb3VuZFRhYk9ubHlLZXkoKTsKKworICAg
IGZpcnN0UGFnZS0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjp3ZWJHTEtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnN0YXRlS2V5KCksIHN0
YXRlLCBmYWxzZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVy
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2Fn
ZVNhbXBsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDU2YjBhMjQ2M2RlZGYxNjY5NThjMjhmZmI3NWFhMGUy
Y2U1MWYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0hpZ2hQ
ZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nlc3NQb29sOworCitjbGFzcyBIaWdoUGVyZm9y
bWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgSGlnaFBl
cmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIoV2ViUHJvY2Vzc1Bvb2wmKTsKKworcHJpdmF0
ZToKKyAgICB2b2lkIHRpbWVyRmlyZWQoKTsKKworICAgIFdlYlByb2Nlc3NQb29sJiBtX3dlYlBy
b2Nlc3NQb29sOworICAgIFJ1bkxvb3A6OlRpbWVyPEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNh
Z2VTYW1wbGVyPiBtX3RpbWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZWY1NmIxYzY2MzZmMWFiNWRjZDZm
ZTU4ZGY2Mjg4NGM5ODEzZWUxMS4uYmQ4ZDQzYzQxNjVlOTA2MDk1YWI3Nzk0NDdjOTQxMzUzM2Rh
YWJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMzc4LDYg
KzM3OCw5IEBAIHB1YmxpYzoKICAgICBib29sIHRyeUNsb3NlKCk7CiAgICAgYm9vbCBpc0Nsb3Nl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDbG9zZWQ7IH0KIAorICAgIHZvaWQgc2V0SXNVc2luZ0hp
Z2hQZXJmb3JtYW5jZVdlYkdMKGJvb2wgdmFsdWUpIHsgbV9pc1VzaW5nSGlnaFBlcmZvcm1hbmNl
V2ViR0wgPSB2YWx1ZTsgfQorICAgIGJvb2wgaXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0w7IH0KKwogICAgIHZv
aWQgY2xvc2VQYWdlKGJvb2wgc3RvcFJlc3BvbnNpdmVuZXNzVGltZXIpOwogCiAgICAgdm9pZCBh
ZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKExvYWRQYXJhbWV0ZXJzJik7CkBAIC0xOTczLDYgKzE5
NzYsOCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShET1dOTE9BRF9BVFRSSUJVVEUpCiAgICAgYm9v
bCBtX3N5bmNOYXZpZ2F0aW9uQWN0aW9uSGFzRG93bmxvYWRBdHRyaWJ1dGUgeyBmYWxzZSB9Owog
I2VuZGlmCisKKyAgICBib29sIG1faXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMIHsgZmFsc2Ug
fTsKICAgICAgICAgCiAgICAgV2Vha1B0ckZhY3Rvcnk8V2ViUGFnZVByb3h5PiBtX3dlYWtQdHJG
YWN0b3J5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IDYyMTAyYTE5ZGRkYWJiNjdhZDU3OGI0OTc3YWRkOWNlNTk3Mjcy
OTAuLjUyNzI4NzUxZjkzOTI0OGJhODM5YTQzNzVjNzM3ZWEyMThlM2FkODEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDg1
LDQgKzQ4NSw2IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkSGFuZGxlQWNj
ZXB0ZWRDYW5kaWRhdGUoKQogICAgIEhhbmRsZUFjdGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jl
c3BvbnNlKGJvb2wgaGFzQWN0aXZlU2Vzc2lvbiwgU3RyaW5nIHRpdGxlLCBkb3VibGUgZHVyYXRp
b24sIGRvdWJsZSBlbGFwc2VkVGltZSkKICNlbmRpZgorCisgICAgU2V0SXNVc2luZ0hpZ2hQZXJm
b3JtYW5jZVdlYkdMKGJvb2wgaXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYWVlOTUzZmRjMTdj
NmY3ZjE3NWQ5MDcyN2Y5MjI2ODIzNmU3M2ZhNi4uNjY3OWY2OWNhNzg0NWViNjQ5ZjY1MDU5ZmQx
NGY4MmM4ODNiMWY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eS5oIgogI2lu
Y2x1ZGUgIkRvd25sb2FkUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkdhbWVwYWREYXRhLmgi
CisjaW5jbHVkZSAiSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCIKICNpbmNs
dWRlICJMb2dJbml0aWFsaXphdGlvbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgpAQCAt
MTc1LDYgKzE3Niw3IEBAIFdlYlByb2Nlc3NQb29sOjpXZWJQcm9jZXNzUG9vbChBUEk6OlByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICAsIG1fcHJvY2Vzc1N1cHBy
ZXNzaW9uRGlzYWJsZWRGb3JQYWdlQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50KSB7IHVw
ZGF0ZVByb2Nlc3NTdXBwcmVzc2lvblN0YXRlKCk7IH0pCiAgICAgLCBtX2hpZGRlblBhZ2VUaHJv
dHRsaW5nQXV0b0luY3JlYXNlc0NvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJFdmVudCkgeyBtX2hp
ZGRlblBhZ2VUaHJvdHRsaW5nVGltZXIuc3RhcnRPbmVTaG90KDApOyB9KQogICAgICwgbV9oaWRk
ZW5QYWdlVGhyb3R0bGluZ1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJldlYlByb2Nlc3NQ
b29sOjp1cGRhdGVIaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFzZUxpbWl0KQorICAgICwg
bV9oaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcihzdGQ6Om1ha2VfdW5pcXVlPEhp
Z2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyPigqdGhpcykpCiB7CiAgICAgZm9yIChh
dXRvJiBzY2hlbWUgOiBtX2NvbmZpZ3VyYXRpb24tPmFsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1l
cygpKQogICAgICAgICBtX3NjaGVtZXNUb1JlZ2lzdGVyQXNBbHdheXNSZXZhbGlkYXRlZC5hZGQo
c2NoZW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXgg
NmY4OTk1YzI3NmQ1NjEyMWQwZDc4OGVhNWRkZDc5NWU3MTlkMjBmYi4uZDMwYzhmZjdjZjM0MTA3
OWYzMzAwYTM1NzQ2NjZiMThiNzY0MmE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKQEAgLTc5LDYgKzc5LDcgQEAgY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRG93bmxvYWRQcm94eTsKK2NsYXNzIEhpZ2hQ
ZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyOwogY2xhc3MgVUlHYW1lcGFkOwogY2xhc3Mg
V2ViQXV0b21hdGlvblNlc3Npb247CiBjbGFzcyBXZWJDb250ZXh0U3VwcGxlbWVudDsKQEAgLTU3
NSw2ICs1NzYsOCBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8V2ViUHJvY2Vzc1Byb3h5Kj4gbV9w
cm9jZXNzZXNVc2luZ0dhbWVwYWRzOwogI2VuZGlmCiAKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SGln
aFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXI+IG1faGlnaFBlcmZvcm1hbmNlR3JhcGhp
Y3NVc2FnZVNhbXBsZXI7CisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIG1fY29va2ll
U3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjYzNmY2
N2U1MDk3MzIyMjVmMjRlM2I1NWU4ODU2NDRjZmVjZTA1My4uYmJjZDc5NjFhZjRiMmU5OGVkZjc1
OTdkNDNmNjJmZjAyOGQxNGNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI1Myw2ICsxMjUzLDggQEAKIAkJODM5MTQ5NjUx
QkVBODM4NTAwRDJEOTUzIC8qIE5ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5MTQ5NjMxQkVBODM4NTAwRDJEOTUz
IC8qIE5ldHdvcmtMb2FkUGFyYW1ldGVycy5oICovOyB9OwogCQk4Mzk5MDIwMjFCRTlBMDJCMDAw
RjM2NTMgLyogTmV0d29ya0xvYWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM5OTAxRkYxQkU5QTAxQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmNw
cCAqLzsgfTsKIAkJODM5OTAyMDMxQkU5QTAyQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzk5MDFGRTFCRTlB
MDFCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuaCAqLzsgfTsKKwkJODM5QTJGMzExRTIwNjc0NTAw
MzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEyRjJGMUUyMDY3Mzkw
MDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi87IH07
CisJCTgzOUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1Vz
YWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM5QTJGMzAxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNh
Z2VTYW1wbGVyLmggKi87IH07CiAJCTgzQkRDQ0I5MUFDNUZEQjYwMDNGNjQ0MSAvKiBOZXR3b3Jr
Q2FjaGVTdGF0aXN0aWNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzQkRDQ0I4MUFDNUZEQjYwMDNGNjQ0MSAvKiBOZXR3b3JrQ2FjaGVTdGF0aXN0
aWNzLmNwcCAqLzsgfTsKIAkJODNCRkFDNDIxRDk2MTM3QzAwNDMzNDkwIC8qIEJsb2JEb3dubG9h
ZENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODNCRkFDNDAxRDk2MTM2MDAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5oICovOyB9Owog
CQk4M0JGQUM0MzFEOTYxMzdDMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQkZBQzQxMUQ5NjEz
NjAwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuY3BwICovOyB9OwpAQCAtMzQwMSw2ICsz
NDAzLDggQEAKIAkJODM5MTQ5NjMxQkVBODM4NTAwRDJEOTUzIC8qIE5ldHdvcmtMb2FkUGFyYW1l
dGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrTG9hZFBhcmFt
ZXRlcnMuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5MDFGRTFCRTlBMDFCMDAwRjM2NTMgLyog
TmV0d29ya0xvYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0xv
YWQuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzOTkwMUZGMUJFOUEwMUIwMDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrTG9hZC5jcHA7
IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzOUEyRjJGMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VH
cmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTgzOUEyRjMwMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9y
bWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4M0JEQ0NCODFBQzVGREI2MDAzRjY0NDEgLyogTmV0d29ya0NhY2hl
U3RhdGlzdGljcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3
b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNC
RkFDNDAxRDk2MTM2MDAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBCbG9iRG93bmxvYWRDbGllbnQuaDsgcGF0aCA9IE5ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODNCRkFDNDExRDk2MTM2MDAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENs
aWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCbG9iRG93bmxv
YWRDbGllbnQuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JEb3dubG9h
ZENsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MjU3LDYgKzYyNjEs
OCBAQAogCQkJCUJDMDZGNDQ4MTJEQkQxRjUwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8sCiAJCQkJQkMwNkY0MzkxMkRCQ0NGQjAwMkQ3OERF
IC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgKi8sCiAJCQkJQkMwNkY0
MzgxMkRCQ0NGQjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5o
ICovLAorCQkJCTgzOUEyRjJGMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFw
aGljc1VzYWdlU2FtcGxlci5jcHAgKi8sCisJCQkJODM5QTJGMzAxRTIwNjczOTAwMzkwNTdFIC8q
IEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmggKi8sCiAJCQkJMzE2MDdGMzgx
OTYyNzAwMjAwOUI4N0RBIC8qIExlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oICovLAogCQkJCUJD
NkVEQUE1MTExMjcxQzYwMEU3Njc4QiAvKiBQYWdlQ2xpZW50LmggKi8sCiAJCQkJMUFDNzUzNzkx
ODNBOUZEQTAwNzJDQjE1IC8qIFBhZ2VMb2FkU3RhdGUuY3BwICovLApAQCAtNzg4NSw2ICs3ODkx
LDcgQEAKIAkJCQkxQTZGQkQyODExRTY5QkMyMDBEQjEzNzEgLyogTmV0c2NhcGVQbHVnaW4uaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNEE5QzU2MTJCODE2Q0YwMDhGRTk4NCAvKiBOZXRzY2FwZVBs
dWdpbk1vZHVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNTg4OTIxMUVFNzA0MDAwNjFCODgy
IC8qIE5ldHNjYXBlUGx1Z2luU3RyZWFtLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzlBMkYzMjFF
MjA2NzQ1MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUUxNzk4QzdBMTZFNjgxODgwMDI0MDEzOSAvKiBOZXR3b3JrQmxv
YlJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQzNkVDQzFBMEQwNDBCMDBFQUQyMDQg
LyogTmV0d29ya0NhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDlENDBENzFBRDNGQjE3MDA2
NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLApAQCAtOTM4
MCw2ICs5Mzg3LDcgQEAKIAkJCQkxQTZGQkQyOTExRTY5QkMyMDBEQjEzNzEgLyogTmV0c2NhcGVQ
bHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFNUI3RkIxMUU3QUVEMjAwQkE2NzY3IC8q
IE5ldHNjYXBlUGx1Z2luTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE0QTlDNTUxMkI4MTZD
RjAwOEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTgzOUEyRjMxMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTRBOUM5QTEyQjgyMUNEMDA4RkU5ODQg
LyogTmV0c2NhcGVQbHVnaW5Nb2R1bGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUE1ODg5
MzExRUU3MDQwMDA2MUI4ODIgLyogTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTE3OThDNzkxNkU2ODE4ODAwMjQwMTM5IC8qIE5ldHdvcmtCbG9iUmVnaXN0cnku
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggZDE3YTdmY2VjODdjOTMxNjRkMzdlMmM5NDZiZDlmOWY2MTNjZWU5
ZS4uNjFjMGRjNmQ5MGVhOGI0ZTFjNzc2Y2MzODg1MzFiMTU4OGU2ZTBhYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTc2LDYgKzE3Niw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVldC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvVmlzaWJsZVBvc2l0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaXNpYmxlVW5pdHMuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1dlYkdMU3RhdGVUcmFja2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9odG1sZWRpdGluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvbWFya3VwLmg+CiAjaW5jbHVkZSA8
YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KQEAgLTM1Nyw2ICszNTgsOSBAQCBXZWJQYWdlOjpXZWJQ
YWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycykKICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUg
PSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ucHJvZ3Jl
c3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJhY2tlckNsaWVudCgqdGhpcyk7CiAg
ICAgcGFnZUNvbmZpZ3VyYXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50PigqdGhpcyk7CisgICAgcGFnZUNvbmZp
Z3VyYXRpb24ud2ViR0xTdGF0ZVRyYWNrZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMU3RhdGVU
cmFja2VyPihbdGhpc10oYm9vbCBpc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0wpIHsKKyAgICAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRJc1VzaW5nSGlnaFBlcmZvcm1hbmNl
V2ViR0woaXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKSk7CisgICAgfSk7CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBwYWdlQ29uZmlndXJhdGlvbi52YWxpZGF0aW9uTWVzc2FnZUNsaWVu
dCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ+KCp0aGlzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298402</attachid>
            <date>2017-01-09 15:37:52 -0800</date>
            <delta_ts>2017-01-09 15:52:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166730-20170109153617.patch</filename>
            <type>text/plain</type>
            <size>40060</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwZDk1MGEwM2ZiOWEw
Y2U4NWIzYmFiMDA1MTU1OTZjODcwZjQ3Yi4uYmFjMmExMjFkNTcwOTgxNGY5NWE3NWU1MzRmNGY1
NmJhOGIyNWRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE3LTAxLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIGRpYWdub3N0
aWMgbG9nZ2luZyB0byBtZWFzdXJlIFdlYkdMIHVzYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzI5ODgzNDY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBkaWFnbm9zdGljIGxvZ2dpbmcgdG8gbWVhc3VyZSBoaWdoIHBlcmZvcm1hbmNlIFdl
YkdMIHVzYWdlLiBXZSByZXBvcnQKKyAgICAgICAgYXQgcmVndWxhciBpbnRlcnZhbHMgaW4gd2hp
Y2ggV2ViR0wgc3RhdGUgU2FmYXJpIGlzOgorICAgICAgICAtIEluYWN0aXZlCisgICAgICAgIC0g
QWN0aXZlSW5Gb3JlZ3JvdW5kVGFiCisgICAgICAgIC0gQWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25s
eQorCisgICAgICAgIFRoaXMgc2hvdWxkIGdpdmUgdXMgYW4gZXN0aW1hdGUgb2Y6CisgICAgICAg
IC0gV2hhdCAlIG9mIHRoZSB0aW1lIGlzIFNhZmFyaSB1c2luZyBoaWdoIHBlcmZvcm1hbmNlIGdy
YXBoaWNzCisgICAgICAgIC0gV2hhdCAlIG9mIHRoaXMgdGltZSBpcyBvbmx5IGR1ZSB0byBiYWNr
Z3JvdW5kIHRhYnMKKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZp
b3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6cmVnaXN0ZXJXaXRoV2ViR0xTdGF0ZVRyYWNrZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBwYWdlL0RpYWdub3N0aWNM
b2dnaW5nS2V5cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OmluYWN0aXZlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6
YWN0aXZlSW5Gb3JlZ3JvdW5kVGFiS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNM
b2dnaW5nS2V5czo6YWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25seUtleSk6CisgICAgICAgIChXZWJD
b3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnN0YXRlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6d2ViR0xLZXkpOgorICAgICAgICAqIHBh
Z2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6d2ViR0xTdGF0ZVRyYWNrZXIpOgorICAgICAgICAqIHBhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9XZWJHTFN0YXRlVHJhY2tlci5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcy5oLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTdGF0ZVRyYWNrZXI6OldlYkdMU3RhdGVU
cmFja2VyKToKKyAgICAgICAgKFdlYkNvcmU6Om1fc3RhdGVDaGFuZ2VIYW5kbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMU3RhdGVUcmFja2VyOjp1cGRhdGVXZWJHTFN0YXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9XZWJHTFN0YXRlVHJhY2tlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMuaC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMuaDoK
KwogMjAxNy0wMS0wNiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNv
bGxhYm9yYS5jby51az4KIAogICAgICAgICBbR1RLXSBTaG91bGQgc3VwcG9ydCBrZXkgYW5kIGNv
ZGUgcHJvcGVydGllcyBvbiBrZXlib2FyZCBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhODFjYzEwYTU3
NGJkZjQ0ZGY2YTIwNWM2MzM0ODY4ODZkZDE2MmVjLi41NThhNTFiMjNlNjBjZGYyZmM3Njg5NTc5
MTEzNWY3NTM5MWQ4NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTctMDEtMDkg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBBZGQgZGlh
Z25vc3RpYyBsb2dnaW5nIHRvIG1lYXN1cmUgV2ViR0wgdXNhZ2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjczMAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjk4ODM0Njk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGRpYWdub3N0aWMgbG9nZ2luZyB0byBtZWFzdXJlIGhpZ2ggcGVyZm9ybWFu
Y2UgV2ViR0wgdXNhZ2UuIFdlIHJlcG9ydAorICAgICAgICBhdCByZWd1bGFyIGludGVydmFscyBp
biB3aGljaCBXZWJHTCBzdGF0ZSBTYWZhcmkgaXM6CisgICAgICAgIC0gSW5hY3RpdmUKKyAgICAg
ICAgLSBBY3RpdmVJbkZvcmVncm91bmRUYWIKKyAgICAgICAgLSBBY3RpdmVJbkJhY2tncm91bmRU
YWJPbmx5CisKKyAgICAgICAgVGhpcyBzaG91bGQgZ2l2ZSB1cyBhbiBlc3RpbWF0ZSBvZjoKKyAg
ICAgICAgLSBXaGF0ICUgb2YgdGhlIHRpbWUgaXMgU2FmYXJpIHVzaW5nIGhpZ2ggcGVyZm9ybWFu
Y2UgZ3JhcGhpY3MKKyAgICAgICAgLSBXaGF0ICUgb2YgdGhpcyB0aW1lIGlzIG9ubHkgZHVlIHRv
IGJhY2tncm91bmQgdGFicworCisgICAgICAgICogVUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdy
YXBoaWNzVXNhZ2VTYW1wbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkhpZ2hQZXJm
b3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyOjpIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlcik6CisgICAgICAgIChXZWJLaXQ6OkhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VT
YW1wbGVyOjp0aW1lckZpcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNl
R3JhcGhpY3NVc2FnZVNhbXBsZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmguCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNl
dElzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1faGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2Fn
ZVNhbXBsZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAg
ICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fdXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbik6CisKIDIwMTctMDEtMDYgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAg
PGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgW0dUS10gU2hvdWxk
IHN1cHBvcnQga2V5IGFuZCBjb2RlIHByb3BlcnRpZXMgb24ga2V5Ym9hcmQgZXZlbnRzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDZlYjMxNDY5OWFiZDUxNDlhOWQ0YjVmZjllOTE2ODU4NjU0OTgx
M2QuLmM4NDY5N2NiYzAwMmZlNWFlOWQ2YTA4ZDc5NDYzMTEyOTY2ODY5OWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0yMTE0LDYgKzIxMTQsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGxhdGZvcm0vVVVJRC5jcHAKICAgICBwbGF0Zm9ybS9Vc2VyQWN0aXZpdHkuY3BwCiAgICAgcGxh
dGZvcm0vV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcAorICAgIHBsYXRmb3JtL1dlYkdMU3Rh
dGVUcmFja2VyLmNwcAogICAgIHBsYXRmb3JtL1dpZGdldC5jcHAKIAogICAgIHBsYXRmb3JtL2Fu
aW1hdGlvbi9BbmltYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmNjNDIzOTk3YmNkN2FiYzRiZmZjOTM0ODdlMTFj
MTQzYzI0ZTM3YS4uNzgxZDI4MzcyODkwNDM2MDdhY2EzYzA4ZjNhMjUyODNiMDRkMjU3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMzAyNyw2ICszMDI3LDggQEAKIAkJODM4RUY1MzgxREMxNDlFMjAwOEYwQzM5IC8qIElEQlRy
YW5zYWN0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM4RUY1MzYxREMxNDlEQTAwOEYwQzM5IC8qIElEQlRyYW5zYWN0aW9uTW9kZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzOEVGNTNC
MURDMTRBN0MwMDhGMEMzOSAvKiBKU0lEQlRyYW5zYWN0aW9uTW9kZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzhFRjUzOTFEQzE0QTc1MDA4RjBD
MzkgLyogSlNJREJUcmFuc2FjdGlvbk1vZGUuY3BwICovOyB9OwogCQk4MzhFRjUzQzFEQzE0QTdD
MDA4RjBDMzkgLyogSlNJREJUcmFuc2FjdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOEVGNTNBMURDMTRBNzUwMDhGMEMzOSAvKiBKU0lE
QlRyYW5zYWN0aW9uTW9kZS5oICovOyB9OworCQk4MzlBMkYyRDFFMjA0QTcxMDAzOTA1N0UgLyog
V2ViR0xTdGF0ZVRyYWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODM5QTJGMkIxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2Vy
LmNwcCAqLzsgfTsKKwkJODM5QTJGMkUxRTIwNEE3MTAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFj
a2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlB
MkYyQzFFMjA0QTZEMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzlBQUZFQzFBMEMwQzhEMDA2
MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM5QUFGRUExQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVt
ZW50LmNwcCAqLzsgfTsKIAkJODM5QUFGRUQxQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlB
QUZFQjFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCAqLzsgfTsKIAkJODNBNEE5
RjkxQ0U3RkQ4MTAwNzA5QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNBNEE5RjgxQ0U3RkQ3RTAwNzA5
QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0b20uY3BwICovOyB9OwpAQCAtMTA1NDMsNiArMTA1NDUs
OCBAQAogCQk4MzhFRjUzNzFEQzE0OURBMDA4RjBDMzkgLyogSURCVHJhbnNhY3Rpb25Nb2RlLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJREJUcmFuc2FjdGlvbk1vZGUuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzhFRjUzOTFEQzE0QTc1MDA4RjBDMzkgLyogSlNJREJU
cmFuc2FjdGlvbk1vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNJREJUcmFuc2FjdGlvbk1vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MzhFRjUzQTFEQzE0QTc1MDA4RjBDMzkgLyogSlNJREJUcmFuc2FjdGlvbk1vZGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJREJUcmFuc2FjdGlvbk1vZGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM5QTJGMkIxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdM
U3RhdGVUcmFja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkdMU3RhdGVUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM5QTJG
MkMxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMU3RhdGVUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzOUFBRkVBMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MV0JSRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5
OSAvKiBIVE1MV0JSRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
VE1MV0JSRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0E0QTlGODFD
RTdGRDdFMDA3MDlCMDAgLyogSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hNTERvY3VtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNjc1LDYgKzIyNjc5LDggQEAKIAkJCQk0NkRCN0Q1OTFC
MjBGRTU4MDA1NjUxQjIgLyogVk5vZGVUcmFja2VyLmggKi8sCiAJCQkJNTE1Rjc5NTExQ0ZDQTND
NzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHAgKi8sCiAJCQkJNTE1Rjc5
NTIxQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENvcGllci5oICovLAorCQkJ
CTgzOUEyRjJCMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5jcHAgKi8sCisJ
CQkJODM5QTJGMkMxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmggKi8sCiAJ
CQkJOTM4MEY0NzEwOUExMUFCNDAwMUZEQjM0IC8qIFdpZGdldC5jcHAgKi8sCiAJCQkJOTM4MEY0
NzIwOUExMUFCNDAwMUZEQjM0IC8qIFdpZGdldC5oICovLAogCQkJCUUxRTFCRUZGMTE1RkY2RkIw
MDZGNTJDQSAvKiBXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oICovLApAQCAtMjU0OTAsNiArMjU0OTYs
NyBAQAogCQkJCTBGNDcxMEFGMURCNTZBRkMwMDJEQ0VDMyAvKiBET01SZWN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjQ3MTBCMTFEQjU2QUZDMDAyRENFQzMgLyogRE9NUmVjdEluaXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNDcxMEIzMURCNTZBRkMwMDJEQ0VDMyAvKiBET01SZWN0UmVhZE9u
bHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzOUEyRjJFMUUyMDRBNzEwMDM5MDU3RSAvKiBXZWJH
TFN0YXRlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1QTg2ODUwQzMzNjc2MDAwRUVB
NjQ5IC8qIERPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU0NDI3NEIxMUE1N0U3
QTAwNjNBNzQ5IC8qIERPTVN0cmluZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjQ2NDBB
MTFEN0YzMDQwMDY0NTVCMCAvKiBET01TdHJpbmdNYXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjk0
NTYsNiArMjk0NjMsNyBAQAogCQkJCTY1QkYwMjJFMDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzRBODYyMjE0QjdBREJCMDAzRkRDNzYgLyogRnJhbWVE
ZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFRDEzRDNEMENFQTkz
NkEwMEQ4OTQ2NiAvKiBGcmFtZUlPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTgzOUEyRjJEMUUy
MDRBNzEwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5MzJFMTYwOTBBRjU3ODM0MDAyNUY0MDggLyogRnJhbWVMb2FkZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRDAwMEVCQTIxMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNo
aW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2QkE3NjZFMTY2NDI3QTgwMDVCRTVEMSAvKiBG
cmFtZUxvYWRSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCA5
ODQ1YjNlZjU4M2Y5OTk4MTZjYWU3ZjA0ZmU0ZjY3NmU5YWUyNWU3Li44MTQxMmVhYWY1ODAzMDFi
ZWY1NTJjYjZkZDFkOTVmODNmYjVlOThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMzk5LDcgKzM5
OSw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoSFRNCiAgICAgaWYgKGZyYW1lLT5zZXR0aW5ncygp
LmZvcmNlU29mdHdhcmVXZWJHTFJlbmRlcmluZygpKQogICAgICAgICBhdHRyaWJ1dGVzLmZvcmNl
U29mdHdhcmVSZW5kZXJlciA9IHRydWU7CiAKLSAgICBpZiAoIWF0dHJpYnV0ZXMucHJlZmVyTG93
UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSAmJiBmcmFtZS0+c2V0dGluZ3MoKS5wcmVmZXJMb3dQb3dl
cldlYkdMUmVuZGVyaW5nKCkpCisgICAgYXR0cmlidXRlcy5pbml0aWFsUHJlZmVyTG93UG93ZXJU
b0hpZ2hQZXJmb3JtYW5jZSA9IGF0dHJpYnV0ZXMucHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3Jt
YW5jZTsKKyAgICBpZiAoZnJhbWUtPnNldHRpbmdzKCkucHJlZmVyTG93UG93ZXJXZWJHTFJlbmRl
cmluZygpKQogICAgICAgICBhdHRyaWJ1dGVzLnByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFu
Y2UgPSB0cnVlOwogCiAgICAgaWYgKHBhZ2UpCkBAIC00NjEsNiArNDYyLDcgQEAgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxl
bWVudCYgcGFzc2VkQ2EKICAgICAsIG1fbnVtR0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkKG1heEdM
RXJyb3JzQWxsb3dlZFRvQ29uc29sZSkKICAgICAsIG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlv
bih0cnVlKQogeworICAgIHJlZ2lzdGVyV2l0aFdlYkdMU3RhdGVUcmFja2VyKCk7CiB9CiAKIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENh
bnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRl
eHQsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKQEAgLTQ4Miw2ICs0ODQsMjAg
QEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShI
VE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2EKIAogICAgIHNldHVwRmxhZ3MoKTsKICAgICBpbml0
aWFsaXplTmV3Q29udGV4dCgpOworICAgIHJlZ2lzdGVyV2l0aFdlYkdMU3RhdGVUcmFja2VyKCk7
Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVnaXN0ZXJXaXRoV2ViR0xT
dGF0ZVRyYWNrZXIoKQoreworICAgIGF1dG8qIHBhZ2UgPSBjYW52YXMoKS5kb2N1bWVudCgpLnBh
Z2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIHRyYWNr
ZXIgPSBwYWdlLT53ZWJHTFN0YXRlVHJhY2tlcigpOworICAgIGlmICghdHJhY2tlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV90cmFja2VyVG9rZW4gPSB0cmFja2VyLT50b2tlbihtX2F0dHJp
YnV0ZXMuaW5pdGlhbFByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2UpOwogfQogCiB2b2lk
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRpYWxpemVOZXdDb250ZXh0KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaAppbmRleCA5ZjllOGI2NDFmZjZiY2QzOWFkMjc1NmQyNzM3N2RlMjMyOWNkZjYwLi4wMjU4
MTk5OWQxZjBjMmZlNTY1ZWY5Njc1MjkyMzA1OGFmMzk4Y2RmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJXZWJHTEFueS5oIgog
I2luY2x1ZGUgIldlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCIKKyNpbmNsdWRlICJXZWJHTFN0YXRl
VHJhY2tlci5oIgogI2luY2x1ZGUgIldlYkdMVGV4dHVyZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4K
IApAQCAtNzk4LDYgKzc5OSw5IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBib29sIHZh
bGlkYXRlQXJyYXlCdWZmZXJUeXBlKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0MzRGVudW0g
dHlwZSwgc3RkOjpvcHRpb25hbDxKU0M6OlR5cGVkQXJyYXlUeXBlPik7CisgICAgdm9pZCByZWdp
c3RlcldpdGhXZWJHTFN0YXRlVHJhY2tlcigpOworCisgICAgV2ViR0xTdGF0ZVRyYWNrZXI6OlRv
a2VuIG1fdHJhY2tlclRva2VuOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwCmluZGV4IGQ2YmUwMjBh
YjVhNTlkMjJiMDhkZDljYzZkZTQ2ZjA0NTZhOTNhZWQuLjYwYzRjZjA1OGMwMzcxMjExYmUyZGFj
OTYzNWRjZDdlM2I1YWRkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNM
b2dnaW5nS2V5cy5jcHAKQEAgLTIzOCw2ICsyMzgsMTEgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dn
aW5nS2V5czo6aW5NZW1vcnlDYWNoZUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW5N
ZW1vcnlDYWNoZSIpOwogfQogCitTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbmFjdGl2
ZUtleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW5hY3RpdmUiKTsKK30KKwogU3Ry
aW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aW50ZXJuYWxFcnJvcktleSgpCiB7CiAgICAgcmV0
dXJuIEFTQ0lJTGl0ZXJhbCgiaW50ZXJuYWxFcnJvciIpOwpAQCAtMzEzLDYgKzMxOCwxNiBAQCBT
dHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpkZWx0YUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJ
TGl0ZXJhbCgiZGVsdGEiKTsKIH0KIAorU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6YWN0
aXZlSW5Gb3JlZ3JvdW5kVGFiS2V5KCkKK3sKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJhY3Rp
dmVJbkZvcmVncm91bmRUYWIiKTsKK30KKworU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
YWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25seUtleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bCgiYWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25seSIpOworfQorCiBTdHJpbmcgRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjphcHBsaWNhdGlvbkNhY2hlS2V5KCkKIHsKICAgICByZXR1cm4gQVNDSUlMaXRl
cmFsKCJhcHBsaWNhdGlvbkNhY2hlIik7CkBAIC00MzgsNiArNDUzLDExIEBAIFN0cmluZyBEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OnNvdXJjZUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
c291cmNlIik7CiB9CiAKK1N0cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnN0YXRlS2V5KCkK
K3sKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzdGF0ZSIpOworfQorCiBTdHJpbmcgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpzdHJlYW1pbmdNZWRpYSgpCiB7CiAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgic3RyZWFtaW5nTWVkaWEiKTsKQEAgLTYxOCw1ICs2MzgsMTAgQEAgU3RyaW5nIERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6bm90SW5DYWNoZUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bCgibm90SW5DYWNoZSIpOwogfQogCitTdHJpbmcgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjp3ZWJHTEtleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgid2ViR0wiKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9z
dGljTG9nZ2luZ0tleXMuaAppbmRleCAyZWU2MjdiOGY0MzgzYWQ2ODNiNzJiNDAxNmRkMjI5MjIw
NzFlNTkyLi43MDRkY2NiMzA0NzdiNDM4ZTQ0Y2JlMTRjZTJhM2EwOTcwYzdiMjQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgKQEAgLTMxLDYgKzMxLDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0tleXMgewog
cHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgYWN0aXZlSW5Gb3JlZ3Jv
dW5kVGFiS2V5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBhY3RpdmVJbkJh
Y2tncm91bmRUYWJPbmx5S2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBhcHBsaWNhdGlvbkNhY2hl
S2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBhdWRpb0tleSgpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTdHJpbmcgYmFja05hdmlnYXRpb25LZXkoKTsKQEAgLTU2LDYgKzU4LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBTdHJpbmcgaHR0cHNOb1N0b3JlS2V5KCk7CiAgICAgc3RhdGljIFN0
cmluZyBpbWFnZUtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgaW5NZW1vcnlDYWNoZUtleSgpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgaW5hY3RpdmVLZXkoKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIGludGVybmFsRXJyb3JLZXkoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgU3RyaW5nIGludmFsaWRTZXNzaW9uSURLZXkoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgU3RyaW5nIGlzQXR0YWNobWVudEtleSgpOwpAQCAtMTE4LDYgKzEyMSw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3RyaW5nIHNhbWVMb2FkS2V5KCk7CiAgICAgc3RhdGlj
IFN0cmluZyBzY3JpcHRLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHNvdXJjZUtleSgpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgc3RhdGVLZXkoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgU3RyaW5nIHN0cmVhbWluZ01lZGlhKCk7CiAgICAgc3RhdGljIFN0cmluZyBz
dHlsZVNoZWV0S2V5KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBzdWNjZXNz
ZnVsU3BlY3VsYXRpdmVXYXJtdXBXaXRoUmV2YWxpZGF0aW9uS2V5KCk7CkBAIC0xNDUsNiArMTQ5
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgdmlkZW9LZXkoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgU3RyaW5nIHdhc3RlZFNwZWN1bGF0aXZlV2FybXVwV2l0aFJldmFsaWRh
dGlvbktleSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgd2FzdGVkU3BlY3Vs
YXRpdmVXYXJtdXBXaXRob3V0UmV2YWxpZGF0aW9uS2V5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFN0cmluZyB3ZWJHTEtleSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJp
bmcgd2ViVmlld0tleSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgem9vbWVk
S2V5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDkzMzFiMzAyOTA3ZTc5YjdjMTFiNWVjMDg0
NmJhZmQ1YzNmZWM0OTcuLjczMDBkM2E1NDM5NTNlZmY5YmNjNTM2Y2Q0ZmVmMGM4MWYxMDIzNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtOTcsNiArOTcsNyBAQAogI2luY2x1ZGUgIlZpc2l0ZWRM
aW5rU3RhdGUuaCIKICNpbmNsdWRlICJWaXNpdGVkTGlua1N0b3JlLmgiCiAjaW5jbHVkZSAiVm9p
ZENhbGxiYWNrLmgiCisjaW5jbHVkZSAiV2ViR0xTdGF0ZVRyYWNrZXIuaCIKICNpbmNsdWRlICJX
aWRnZXQuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtMTkwLDYgKzE5MSw3IEBAIFBhZ2U6OlBhZ2UoUGFn
ZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAsIG1fcGx1Z0luQ2xpZW50
KHBhZ2VDb25maWd1cmF0aW9uLnBsdWdJbkNsaWVudCkKICAgICAsIG1fdmFsaWRhdGlvbk1lc3Nh
Z2VDbGllbnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi52YWxpZGF0aW9uTWVzc2FnZUNsaWVu
dCkpCiAgICAgLCBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3Vy
YXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpKQorICAgICwgbV93ZWJHTFN0YXRlVHJhY2tl
cihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLndlYkdMU3RhdGVUcmFja2VyKSkKICAgICAsIG1f
c3ViZnJhbWVDb3VudCgwKQogICAgICwgbV9vcGVuZWRCeURPTShmYWxzZSkKICAgICAsIG1fdGFi
S2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGRlM2ZlNGU4
NTgwOTc2M2NmM2IwM2RjOTQ3YWNjZjYxYzE2ZDE1ZTkuLjM3YWM2YTdjODFkYzM4NGYxZjYyNjM3
OTljZDg4OGFiMTJhMjNjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMjksNiArMTI5LDcgQEAgY2xh
c3MgVXNlckNvbnRlbnRQcm92aWRlcjsKIGNsYXNzIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50Owog
Y2xhc3MgQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyOwogY2xhc3MgVmlzaXRlZExpbmtTdG9y
ZTsKK2NsYXNzIFdlYkdMU3RhdGVUcmFja2VyOwogCiB0eXBlZGVmIHVpbnQ2NF90IExpbmtIYXNo
OwogCkBAIC01NDgsNiArNTQ5LDcgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8RXZlbnRU
aHJvdHRsaW5nQmVoYXZpb3I+IGV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGUoKSBjb25z
dCB7IHJldHVybiBtX2V2ZW50VGhyb3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGU7IH0KICAgICB2b2lk
IHNldEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGUoc3RkOjpvcHRpb25hbDxFdmVudFRo
cm90dGxpbmdCZWhhdmlvcj4gdGhyb3R0bGluZykgeyBtX2V2ZW50VGhyb3R0bGluZ0JlaGF2aW9y
T3ZlcnJpZGUgPSB0aHJvdHRsaW5nOyB9CiAKKyAgICBXZWJHTFN0YXRlVHJhY2tlciogd2ViR0xT
dGF0ZVRyYWNrZXIoKSBjb25zdCB7IHJldHVybiBtX3dlYkdMU3RhdGVUcmFja2VyLmdldCgpOyB9
CiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW5pdEdyb3VwKCk7CiAKQEAgLTYx
MSw2ICs2MTMsNyBAQCBwcml2YXRlOgogICAgIFBsdWdJbkNsaWVudCogbV9wbHVnSW5DbGllbnQ7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50PiBtX3ZhbGlkYXRp
b25NZXNzYWdlQ2xpZW50OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudD4gbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
R0xTdGF0ZVRyYWNrZXI+IG1fd2ViR0xTdGF0ZVRyYWNrZXI7CiAKICAgICBpbnQgbV9zdWJmcmFt
ZUNvdW50OwogICAgIFN0cmluZyBtX2dyb3VwTmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uZmlndXJhdGlvbi5jcHAKaW5kZXggYjEyZGI0ZTYwYTY1ODQ0ZTliNDU4ZDRmMDY1ZmNkNWUw
MWE2OTY1MC4uOWRiZjdkZjI3NDA4MTg3NjYyNjU2MWVjZGNmYTk1Y2ZjMjJmZTA2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJWYWxpZGF0aW9u
TWVzc2FnZUNsaWVudC5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRl
ICJXZWJHTFN0YXRlVHJhY2tlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCA4YzcxZjgxNzdmZmU5NjM3NmM0YTlh
MWI2YmY5ZTM5MTE5OWFhZDA2Li40ZDgxMTM2ZTUzMGZjNTFmZmZlMWQxOWFiNTZkYTVkMDQ5NjMx
NDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC01MCw2ICs1
MCw3IEBAIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50
UHJvdmlkZXI7CiBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKIGNsYXNzIFZpc2l0ZWRM
aW5rU3RvcmU7CitjbGFzcyBXZWJHTFN0YXRlVHJhY2tlcjsKIAogI2lmIEVOQUJMRShDT05URVhU
X01FTlVTKQogY2xhc3MgQ29udGV4dE1lbnVDbGllbnQ7CkBAIC04MCw2ICs4MSw3IEBAIHB1Ymxp
YzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ+IHZhbGlkYXRp
b25NZXNzYWdlQ2xpZW50OwogICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBsb2FkZXJDbGllbnRGb3JN
YWluRnJhbWUgeyBudWxscHRyIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPERpYWdub3N0aWNMb2dn
aW5nQ2xpZW50PiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViR0xTdGF0ZVRyYWNrZXI+IHdlYkdMU3RhdGVUcmFja2VyOwogCiAgICAgUmVmUHRyPEFwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlPiBhcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTsKICAgICBSZWZQdHI8
RGF0YWJhc2VQcm92aWRlcj4gZGF0YWJhc2VQcm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1dlYkdMU3RhdGVUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1dlYkdMU3RhdGVUcmFja2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGExNzQ4ZGIxMjBmOTEw
ZjZmMzQ4NjAxODkxN2QwYzc0YjMyOWRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vV2ViR0xTdGF0ZVRyYWNrZXIuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xTdGF0ZVRyYWNrZXIu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXZWJHTFN0YXRlVHJhY2tlcjo6V2ViR0xTdGF0
ZVRyYWNrZXIoU3RhdGVDaGFuZ2VIYW5kbGVyJiYgaGFuZGxlcikKKyAgICA6IG1fV2ViR0xDb250
ZXh0Q291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50KSB7IHVwZGF0ZVdlYkdMU3RhdGUoKTsg
fSkKKyAgICAsIG1fc3RhdGVDaGFuZ2VIYW5kbGVyKFdURk1vdmUoaGFuZGxlcikpCit7Cit9CisK
K2F1dG8gV2ViR0xTdGF0ZVRyYWNrZXI6OnRva2VuKGJvb2wgcHJlZmVyTG93UG93ZXIpIC0+IFRv
a2VuCit7CisgICAgLy8gV2Ugb25seSB0cmFjayBoaWdoIHBlcmZvcm1hbmNlIFdlYkdMIGNvbnRl
eHRzIGF0IHRoZSBtb21lbnQuCisgICAgaWYgKHByZWZlckxvd1Bvd2VyKQorICAgICAgICByZXR1
cm4geyB9OworICAgIHJldHVybiBtX1dlYkdMQ29udGV4dENvdW50ZXIuY291bnQoKTsKK30KKwor
dm9pZCBXZWJHTFN0YXRlVHJhY2tlcjo6dXBkYXRlV2ViR0xTdGF0ZSgpCit7CisgICAgaWYgKCFt
X1dlYkdMQ29udGV4dENvdW50ZXIudmFsdWUoKSkKKyAgICAgICAgbV9zdGF0ZUNoYW5nZUhhbmRs
ZXIoZmFsc2UpOworICAgIGVsc2UgaWYgKG1fV2ViR0xDb250ZXh0Q291bnRlci52YWx1ZSgpID09
IDEpCisgICAgICAgIG1fc3RhdGVDaGFuZ2VIYW5kbGVyKHRydWUpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XZWJHTFN0
YXRlVHJhY2tlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViR0xTdGF0ZVRyYWNrZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jY2Q3YTA1ODVkODY3NTM1N2I4Y2RmMGI2ODZkZTZiNTZhOWZkYTFjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViR0xTdGF0ZVRyYWNr
ZXIuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYkdMU3RhdGVUcmFja2VyIHsKK3B1YmxpYzoKKyAg
ICB1c2luZyBTdGF0ZUNoYW5nZUhhbmRsZXIgPSBGdW5jdGlvbjx2b2lkKGJvb2wgaXNVc2luZ1dl
YkdMKT47CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgV2ViR0xTdGF0ZVRyYWNrZXIoU3Rh
dGVDaGFuZ2VIYW5kbGVyJiYpOworCisgICAgZW51bSBXZWJHTENvbnRleHRDb3VudGVyVHlwZSB7
IH07CisgICAgdXNpbmcgV2ViR0xDb250ZXh0Q291bnRlciA9IFJlZkNvdW50ZXI8V2ViR0xDb250
ZXh0Q291bnRlclR5cGU+OworICAgIHVzaW5nIFRva2VuID0gV2ViR0xDb250ZXh0Q291bnRlcjo6
VG9rZW47CisKKyAgICBUb2tlbiB0b2tlbihib29sIHByZWZlckxvd1Bvd2VyKTsKKworcHJpdmF0
ZToKKyAgICB2b2lkIHVwZGF0ZVdlYkdMU3RhdGUoKTsKKworICAgIFdlYkdMQ29udGV4dENvdW50
ZXIgbV9XZWJHTENvbnRleHRDb3VudGVyOworICAgIFN0YXRlQ2hhbmdlSGFuZGxlciBtX3N0YXRl
Q2hhbmdlSGFuZGxlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzLmgKaW5kZXggYjlhMjY4NjUzOThiNDIwMjVjZmE4ZWRhOWYyMDg2MmYzZWU3
MTU1NC4uZjlmMjE2MWE0MjE4YWJmYjlhZDE2NTU5ZmViNTlmMDQ1ODZlYjlmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RBdHRy
aWJ1dGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0RBdHRyaWJ1dGVzLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgc3RydWN0IEdyYXBoaWNzQ29u
dGV4dDNEQXR0cmlidXRlcyB7CiAgICAgYm9vbCB1c2VHTEVTMyB7IGZhbHNlIH07CiAgICAgYm9v
bCBub0V4dGVuc2lvbnMgeyBmYWxzZSB9OwogICAgIGZsb2F0IGRldmljZVBpeGVsUmF0aW8geyAx
IH07CisgICAgYm9vbCBpbml0aWFsUHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSB7IGZh
bHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSGln
aFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNjliY2M1YzhhZmVlNjI0MzRmOWZjNzZjOTVlMWFlNWU3ZmViNzk2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNh
Z2VTYW1wbGVyLmNwcApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmgi
CisKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25vOjptaW51dGVzIHNhbXBsaW5n
SW50ZXJ2YWwgeyAxMCB9OworCitIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcjo6
SGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIoV2ViUHJvY2Vzc1Bvb2wmIHdlYlBy
b2Nlc3NQb29sKQorICAgIDogbV93ZWJQcm9jZXNzUG9vbCh3ZWJQcm9jZXNzUG9vbCkKKyAgICAs
IG1fdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NV
c2FnZVNhbXBsZXI6OnRpbWVyRmlyZWQpCit7CisgICAgbV90aW1lci5zdGFydFJlcGVhdGluZyhz
YW1wbGluZ0ludGVydmFsKTsKK30KKwordm9pZCBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlcjo6dGltZXJGaXJlZCgpCit7CisgICAgYm9vbCBpc1VzaW5nSGlnaFBlcmZvcm1hbmNl
V2ViR0wgPSBmYWxzZTsKKyAgICBib29sIGlzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTEluVmlz
aWJsZVZpZXcgPSBmYWxzZTsKKworICAgIFdlYlBhZ2VQcm94eSogZmlyc3RQYWdlID0gbnVsbHB0
cjsKKyAgICBmb3IgKGF1dG8mIHdlYlByb2Nlc3MgOiBtX3dlYlByb2Nlc3NQb29sLnByb2Nlc3Nl
cygpKSB7CisgICAgICAgIGZvciAoYXV0byYgcGFnZSA6IHdlYlByb2Nlc3MtPnBhZ2VzKCkpIHsK
KyAgICAgICAgICAgIGlmICghZmlyc3RQYWdlKQorICAgICAgICAgICAgICAgIGZpcnN0UGFnZSA9
IHBhZ2U7CisKKyAgICAgICAgICAgIGlmIChwYWdlLT5pc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2Vi
R0woKSkgeworICAgICAgICAgICAgICAgIGlzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTCA9IHRy
dWU7CisgICAgICAgICAgICAgICAgaWYgKHBhZ2UtPmlzVmlld1Zpc2libGUoKSkgeworICAgICAg
ICAgICAgICAgICAgICBpc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0xJblZpc2libGVWaWV3ID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFmaXJzdFBhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIFN0cmluZyBzdGF0ZSA9IERpYWdub3N0aWNMb2dnaW5nS2V5czo6
aW5hY3RpdmVLZXkoKTsKKyAgICBpZiAoaXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMSW5WaXNp
YmxlVmlldykKKyAgICAgICAgc3RhdGUgPSBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmFjdGl2ZUlu
Rm9yZWdyb3VuZFRhYktleSgpOworICAgIGVsc2UgaWYgKGlzVXNpbmdIaWdoUGVyZm9ybWFuY2VX
ZWJHTCkKKyAgICAgICAgc3RhdGUgPSBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmFjdGl2ZUluQmFj
a2dyb3VuZFRhYk9ubHlLZXkoKTsKKworICAgIGZpcnN0UGFnZS0+bG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp3ZWJHTEtleSgpLCBEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnN0YXRlS2V5KCksIHN0YXRlLCBmYWxzZSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0hpZ2hQZXJm
b3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
SGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDU2YjBh
MjQ2M2RlZGYxNjY5NThjMjhmZmI3NWFhMGUyY2U1MWYxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVy
LmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nl
c3NQb29sOworCitjbGFzcyBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlciB7Citw
dWJsaWM6CisgICAgZXhwbGljaXQgSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIo
V2ViUHJvY2Vzc1Bvb2wmKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHRpbWVyRmlyZWQoKTsKKwor
ICAgIFdlYlByb2Nlc3NQb29sJiBtX3dlYlByb2Nlc3NQb29sOworICAgIFJ1bkxvb3A6OlRpbWVy
PEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyPiBtX3RpbWVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggZWY1NmIxYzY2MzZmMWFiNWRjZDZmZTU4ZGY2Mjg4NGM5ODEzZWUxMS4uYmQ4ZDQzYzQx
NjVlOTA2MDk1YWI3Nzk0NDdjOTQxMzUzM2RhYWJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMzc4LDYgKzM3OCw5IEBAIHB1YmxpYzoKICAgICBib29sIHRy
eUNsb3NlKCk7CiAgICAgYm9vbCBpc0Nsb3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDbG9zZWQ7
IH0KIAorICAgIHZvaWQgc2V0SXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKGJvb2wgdmFsdWUp
IHsgbV9pc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0wgPSB2YWx1ZTsgfQorICAgIGJvb2wgaXNV
c2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKCkgY29uc3QgeyByZXR1cm4gbV9pc1VzaW5nSGlnaFBl
cmZvcm1hbmNlV2ViR0w7IH0KKwogICAgIHZvaWQgY2xvc2VQYWdlKGJvb2wgc3RvcFJlc3BvbnNp
dmVuZXNzVGltZXIpOwogCiAgICAgdm9pZCBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKExvYWRQ
YXJhbWV0ZXJzJik7CkBAIC0xOTczLDYgKzE5NzYsOCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShE
T1dOTE9BRF9BVFRSSUJVVEUpCiAgICAgYm9vbCBtX3N5bmNOYXZpZ2F0aW9uQWN0aW9uSGFzRG93
bmxvYWRBdHRyaWJ1dGUgeyBmYWxzZSB9OwogI2VuZGlmCisKKyAgICBib29sIG1faXNVc2luZ0hp
Z2hQZXJmb3JtYW5jZVdlYkdMIHsgZmFsc2UgfTsKICAgICAgICAgCiAgICAgV2Vha1B0ckZhY3Rv
cnk8V2ViUGFnZVByb3h5PiBtX3dlYWtQdHJGYWN0b3J5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDYyMTAyYTE5ZGRk
YWJiNjdhZDU3OGI0OTc3YWRkOWNlNTk3MjcyOTAuLjUyNzI4NzUxZjkzOTI0OGJhODM5YTQzNzVj
NzM3ZWEyMThlM2FkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDg1LDQgKzQ4NSw2IEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2VQcm94eSB7CiAgICAgRGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoKQogICAgIEhhbmRsZUFj
dGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGJvb2wgaGFzQWN0aXZlU2Vzc2lvbiwg
U3RyaW5nIHRpdGxlLCBkb3VibGUgZHVyYXRpb24sIGRvdWJsZSBlbGFwc2VkVGltZSkKICNlbmRp
ZgorCisgICAgU2V0SXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKGJvb2wgaXNVc2luZ0hpZ2hQ
ZXJmb3JtYW5jZVdlYkdMKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKaW5kZXggYWVlOTUzZmRjMTdjNmY3ZjE3NWQ5MDcyN2Y5MjI2ODIzNmU3M2ZhNi4u
MTJmODA5OTc4MmQyZDgwMzM1NWU3ODlkMWJiMjZhMjdkNjE2OWM2YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5j
bHVkZSAiRG93bmxvYWRQcm94eS5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIkdhbWVwYWREYXRhLmgiCisjaW5jbHVkZSAiSGlnaFBlcmZvcm1hbmNlR3Jh
cGhpY3NVc2FnZVNhbXBsZXIuaCIKICNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlvbi5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgpAQCAtMTY1LDYgKzE2Niw3IEBAIFdlYlByb2Nlc3NQb29s
OjpXZWJQcm9jZXNzUG9vbChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJh
dGlvbikKICAgICAsIG1fbWVtb3J5U2FtcGxlckVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX21lbW9y
eVNhbXBsZXJJbnRlcnZhbCgxNDAwLjApCiAgICAgLCBtX3dlYnNpdGVEYXRhU3RvcmUobV9jb25m
aWd1cmF0aW9uLT5zaG91bGRIYXZlTGVnYWN5RGF0YVN0b3JlKCkgPyBBUEk6OldlYnNpdGVEYXRh
U3RvcmU6OmNyZWF0ZShsZWdhY3lXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbihtX2NvbmZp
Z3VyYXRpb24pKS5wdHIoKSA6IG51bGxwdHIpCisgICAgLCBtX2hpZ2hQZXJmb3JtYW5jZUdyYXBo
aWNzVXNhZ2VTYW1wbGVyKHN0ZDo6bWFrZV91bmlxdWU8SGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NV
c2FnZVNhbXBsZXI+KCp0aGlzKSkKICAgICAsIG1fc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNz
aW9uKGZhbHNlKQogICAgICwgbV9wcm9jZXNzVGVybWluYXRpb25FbmFibGVkKHRydWUpCiAgICAg
LCBtX2NhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKHRydWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDZmODk5NWMyNzZkNTYxMjFkMGQ3
ODhlYTVkZGQ3OTVlNzE5ZDIwZmIuLjRlZDBjNTliNDVjNjg0MDhiMWU0YmNlMmExMmY1YjRiOWZk
NmVjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC03
OSw2ICs3OSw3IEBAIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIERvd25sb2FkUHJveHk7CitjbGFzcyBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1Vz
YWdlU2FtcGxlcjsKIGNsYXNzIFVJR2FtZXBhZDsKIGNsYXNzIFdlYkF1dG9tYXRpb25TZXNzaW9u
OwogY2xhc3MgV2ViQ29udGV4dFN1cHBsZW1lbnQ7CkBAIC01MjMsNiArNTI0LDggQEAgcHJpdmF0
ZToKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9u
Tm90aWZpY2F0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2F1dG9tYXRp
Y1F1b3RlU3Vic3RpdHV0aW9uTm90aWZpY2F0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPE5T
T2JqZWN0PiBtX2F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25Ob3RpZmljYXRpb25PYnNlcnZlcjsK
KworICAgIHN0ZDo6dW5pcXVlX3B0cjxIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxl
cj4gbV9oaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcjsKICNlbmRpZgogCiAgICAg
U3RyaW5nIG1fb3ZlcnJpZGVJY29uRGF0YWJhc2VQYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI2MzZmNjdlNTA5NzMyMjI1
ZjI0ZTNiNTVlODg1NjQ0Y2ZlY2UwNTMuLmJiY2Q3OTYxYWY0YjJlOThlZGY3NTk3ZDQzZjYyZmYw
MjhkMTRjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTEyNTMsNiArMTI1Myw4IEBACiAJCTgzOTE0OTY1MUJFQTgzODUwMEQy
RDk1MyAvKiBOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOTE0OTYzMUJFQTgzODUwMEQyRDk1MyAvKiBOZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJODM5OTAyMDIxQkU5QTAyQjAwMEYzNjUzIC8qIE5l
dHdvcmtMb2FkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzOTkwMUZGMUJFOUEwMUIwMDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5jcHAgKi87IH07CiAJ
CTgzOTkwMjAzMUJFOUEwMkIwMDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTAxRkUxQkU5QTAxQjAwMEYzNjUz
IC8qIE5ldHdvcmtMb2FkLmggKi87IH07CisJCTgzOUEyRjMxMUUyMDY3NDUwMDM5MDU3RSAvKiBI
aWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMkYyRjFFMjA2NzM5MDAzOTA1N0UgLyog
SGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwICovOyB9OworCQk4MzlBMkYz
MjFFMjA2NzQ1MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEyRjMw
MUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5o
ICovOyB9OwogCQk4M0JEQ0NCOTFBQzVGREI2MDAzRjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlz
dGljcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0JEQ0NCODFBQzVGREI2MDAzRjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgKi87
IH07CiAJCTgzQkZBQzQyMUQ5NjEzN0MwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQkZBQzQwMUQ5
NjEzNjAwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuaCAqLzsgfTsKIAkJODNCRkFDNDMx
RDk2MTM3QzAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JGQUM0MTFEOTYxMzYwMDA0MzM0OTAg
LyogQmxvYkRvd25sb2FkQ2xpZW50LmNwcCAqLzsgfTsKQEAgLTM0MDEsNiArMzQwMyw4IEBACiAJ
CTgzOTE0OTYzMUJFQTgzODUwMEQyRDk1MyAvKiBOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg7IHBh
dGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODM5OTAxRkUxQkU5QTAxQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2Fk
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtMb2FkLmg7IHBhdGgg
PSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4Mzk5MDFGRjFCRTlBMDFCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya0xvYWQuY3BwOyBwYXRoID0gTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4MzlBMkYyRjFFMjA2NzM5MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2Fn
ZVNhbXBsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGlnaFBl
cmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4MzlBMkYzMDFFMjA2NzM5MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhp
Y3NVc2FnZVNhbXBsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGlnaFBl
cmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNCRENDQjgxQUM1RkRCNjAwM0Y2NDQxIC8qIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3Mu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NhY2hlU3Rh
dGlzdGljcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQkZBQzQwMUQ5NjEz
NjAwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gQmxvYkRvd25sb2FkQ2xpZW50Lmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9E
b3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzQkZBQzQxMUQ5NjEzNjAwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQmxvYkRvd25sb2FkQ2xpZW50LmNw
cDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGllbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjI1Nyw2ICs2MjYxLDggQEAKIAkJCQlC
QzA2RjQ0ODEyREJEMUY1MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oICovLAogCQkJCUJDMDZGNDM5MTJEQkNDRkIwMDJENzhERSAvKiBHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwICovLAogCQkJCUJDMDZGNDM4MTJEQkNDRkIw
MDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAqLywKKwkJCQk4
MzlBMkYyRjFFMjA2NzM5MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNh
bXBsZXIuY3BwICovLAorCQkJCTgzOUEyRjMwMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9y
bWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oICovLAogCQkJCTMxNjA3RjM4MTk2MjcwMDIwMDlC
ODdEQSAvKiBMZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaCAqLywKIAkJCQlCQzZFREFBNTExMTI3
MUM2MDBFNzY3OEIgLyogUGFnZUNsaWVudC5oICovLAogCQkJCTFBQzc1Mzc5MTgzQTlGREEwMDcy
Q0IxNSAvKiBQYWdlTG9hZFN0YXRlLmNwcCAqLywKQEAgLTc4ODUsNiArNzg5MSw3IEBACiAJCQkJ
MUE2RkJEMjgxMUU2OUJDMjAwREIxMzcxIC8qIE5ldHNjYXBlUGx1Z2luLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTRBOUM1NjEyQjgxNkNGMDA4RkU5ODQgLyogTmV0c2NhcGVQbHVnaW5Nb2R1bGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTU4ODkyMTFFRTcwNDAwMDYxQjg4MiAvKiBOZXRzY2Fw
ZVBsdWdpblN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJODM5QTJGMzIxRTIwNjc0NTAwMzkw
NTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMTc5OEM3QTE2RTY4MTg4MDAyNDAxMzkgLyogTmV0d29ya0Jsb2JSZWdpc3RyeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0MzZFQ0MxQTBEMDQwQjAwRUFEMjA0IC8qIE5ldHdvcmtD
YWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ5RDQwRDcxQUQzRkIxNzAwNjZCN0I5IC8qIE5l
dHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKQEAgLTkzODAsNiArOTM4Nyw3
IEBACiAJCQkJMUE2RkJEMjkxMUU2OUJDMjAwREIxMzcxIC8qIE5ldHNjYXBlUGx1Z2luLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBRTVCN0ZCMTFFN0FFRDIwMEJBNjc2NyAvKiBOZXRzY2FwZVBs
dWdpbk1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNEE5QzU1MTJCODE2Q0YwMDhGRTk4NCAv
KiBOZXRzY2FwZVBsdWdpbk1vZHVsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4MzlBMkYzMTFF
MjA2NzQ1MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUE0QTlDOUExMkI4MjFDRDAwOEZFOTg0IC8qIE5ldHNjYXBl
UGx1Z2luTW9kdWxlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBNTg4OTMxMUVFNzA0MDAw
NjFCODgyIC8qIE5ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
Nzk4Qzc5MTZFNjgxODgwMDI0MDEzOSAvKiBOZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IGQxN2E3ZmNlYzg3YzkzMTY0ZDM3ZTJjOTQ2YmQ5ZjlmNjEzY2VlOWUuLjYxYzBkYzZk
OTBlYThiNGUxYzc3NmNjMzg4NTMxYjE1ODhlNmUwYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE3Niw2ICsxNzYsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvVXNlclN0eWxlU2hlZXQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Zpc2libGVQ
b3NpdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlzaWJsZVVuaXRzLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9XZWJHTFN0YXRlVHJhY2tlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvaHRtbGVkaXRp
bmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL21hcmt1cC5oPgogI2luY2x1ZGUgPGJpbmRpbmdzL1Nj
cmlwdFZhbHVlLmg+CkBAIC0zNTcsNiArMzU4LDkgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRf
dCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAg
ICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZy
YW1lTG9hZGVyQ2xpZW50OwogICAgIHBhZ2VDb25maWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNs
aWVudCA9IG5ldyBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQoKnRoaXMpOwogICAgIHBhZ2VDb25m
aWd1cmF0aW9uLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudD4oKnRoaXMpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLndl
YkdMU3RhdGVUcmFja2VyID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTFN0YXRlVHJhY2tlcj4oW3Ro
aXNdKGJvb2wgaXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKSB7CisgICAgICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0SXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKGlzVXNp
bmdIaWdoUGVyZm9ybWFuY2VXZWJHTCkpOworICAgIH0pOwogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24udmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQgPSBzdGQ6Om1h
a2VfdW5pcXVlPFdlYlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50PigqdGhpcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298407</attachid>
            <date>2017-01-09 15:52:55 -0800</date>
            <delta_ts>2017-01-13 16:45:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166730-20170109155120.patch</filename>
            <type>text/plain</type>
            <size>40087</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwZDk1MGEwM2ZiOWEw
Y2U4NWIzYmFiMDA1MTU1OTZjODcwZjQ3Yi4uYmFjMmExMjFkNTcwOTgxNGY5NWE3NWU1MzRmNGY1
NmJhOGIyNWRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE3LTAxLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIGRpYWdub3N0
aWMgbG9nZ2luZyB0byBtZWFzdXJlIFdlYkdMIHVzYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzI5ODgzNDY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBkaWFnbm9zdGljIGxvZ2dpbmcgdG8gbWVhc3VyZSBoaWdoIHBlcmZvcm1hbmNlIFdl
YkdMIHVzYWdlLiBXZSByZXBvcnQKKyAgICAgICAgYXQgcmVndWxhciBpbnRlcnZhbHMgaW4gd2hp
Y2ggV2ViR0wgc3RhdGUgU2FmYXJpIGlzOgorICAgICAgICAtIEluYWN0aXZlCisgICAgICAgIC0g
QWN0aXZlSW5Gb3JlZ3JvdW5kVGFiCisgICAgICAgIC0gQWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25s
eQorCisgICAgICAgIFRoaXMgc2hvdWxkIGdpdmUgdXMgYW4gZXN0aW1hdGUgb2Y6CisgICAgICAg
IC0gV2hhdCAlIG9mIHRoZSB0aW1lIGlzIFNhZmFyaSB1c2luZyBoaWdoIHBlcmZvcm1hbmNlIGdy
YXBoaWNzCisgICAgICAgIC0gV2hhdCAlIG9mIHRoaXMgdGltZSBpcyBvbmx5IGR1ZSB0byBiYWNr
Z3JvdW5kIHRhYnMKKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIFdlYi1mYWNpbmcgYmVoYXZp
b3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6cmVnaXN0ZXJXaXRoV2ViR0xTdGF0ZVRyYWNrZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAgICAgKiBwYWdlL0RpYWdub3N0aWNM
b2dnaW5nS2V5cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OmluYWN0aXZlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6
YWN0aXZlSW5Gb3JlZ3JvdW5kVGFiS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNM
b2dnaW5nS2V5czo6YWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25seUtleSk6CisgICAgICAgIChXZWJD
b3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnN0YXRlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6d2ViR0xLZXkpOgorICAgICAgICAqIHBh
Z2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6d2ViR0xTdGF0ZVRyYWNrZXIpOgorICAgICAgICAqIHBhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9XZWJHTFN0YXRlVHJhY2tlci5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcy5oLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xTdGF0ZVRyYWNrZXI6OldlYkdMU3RhdGVU
cmFja2VyKToKKyAgICAgICAgKFdlYkNvcmU6Om1fc3RhdGVDaGFuZ2VIYW5kbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMU3RhdGVUcmFja2VyOjp1cGRhdGVXZWJHTFN0YXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9XZWJHTFN0YXRlVHJhY2tlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMuaC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMuaDoK
KwogMjAxNy0wMS0wNiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNv
bGxhYm9yYS5jby51az4KIAogICAgICAgICBbR1RLXSBTaG91bGQgc3VwcG9ydCBrZXkgYW5kIGNv
ZGUgcHJvcGVydGllcyBvbiBrZXlib2FyZCBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhODFjYzEwYTU3
NGJkZjQ0ZGY2YTIwNWM2MzM0ODY4ODZkZDE2MmVjLi41NThhNTFiMjNlNjBjZGYyZmM3Njg5NTc5
MTEzNWY3NTM5MWQ4NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTctMDEtMDkg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBBZGQgZGlh
Z25vc3RpYyBsb2dnaW5nIHRvIG1lYXN1cmUgV2ViR0wgdXNhZ2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjczMAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjk4ODM0Njk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGRpYWdub3N0aWMgbG9nZ2luZyB0byBtZWFzdXJlIGhpZ2ggcGVyZm9ybWFu
Y2UgV2ViR0wgdXNhZ2UuIFdlIHJlcG9ydAorICAgICAgICBhdCByZWd1bGFyIGludGVydmFscyBp
biB3aGljaCBXZWJHTCBzdGF0ZSBTYWZhcmkgaXM6CisgICAgICAgIC0gSW5hY3RpdmUKKyAgICAg
ICAgLSBBY3RpdmVJbkZvcmVncm91bmRUYWIKKyAgICAgICAgLSBBY3RpdmVJbkJhY2tncm91bmRU
YWJPbmx5CisKKyAgICAgICAgVGhpcyBzaG91bGQgZ2l2ZSB1cyBhbiBlc3RpbWF0ZSBvZjoKKyAg
ICAgICAgLSBXaGF0ICUgb2YgdGhlIHRpbWUgaXMgU2FmYXJpIHVzaW5nIGhpZ2ggcGVyZm9ybWFu
Y2UgZ3JhcGhpY3MKKyAgICAgICAgLSBXaGF0ICUgb2YgdGhpcyB0aW1lIGlzIG9ubHkgZHVlIHRv
IGJhY2tncm91bmQgdGFicworCisgICAgICAgICogVUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdy
YXBoaWNzVXNhZ2VTYW1wbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkhpZ2hQZXJm
b3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyOjpIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlcik6CisgICAgICAgIChXZWJLaXQ6OkhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VT
YW1wbGVyOjp0aW1lckZpcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNl
R3JhcGhpY3NVc2FnZVNhbXBsZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmguCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNl
dElzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1faGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2Fn
ZVNhbXBsZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAg
ICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fdXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbik6CisKIDIwMTctMDEtMDYgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAg
PGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgW0dUS10gU2hvdWxk
IHN1cHBvcnQga2V5IGFuZCBjb2RlIHByb3BlcnRpZXMgb24ga2V5Ym9hcmQgZXZlbnRzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDZlYjMxNDY5OWFiZDUxNDlhOWQ0YjVmZjllOTE2ODU4NjU0OTgx
M2QuLmM4NDY5N2NiYzAwMmZlNWFlOWQ2YTA4ZDc5NDYzMTEyOTY2ODY5OWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0yMTE0LDYgKzIxMTQsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAg
cGxhdGZvcm0vVVVJRC5jcHAKICAgICBwbGF0Zm9ybS9Vc2VyQWN0aXZpdHkuY3BwCiAgICAgcGxh
dGZvcm0vV2ViQ29yZUNyb3NzVGhyZWFkQ29waWVyLmNwcAorICAgIHBsYXRmb3JtL1dlYkdMU3Rh
dGVUcmFja2VyLmNwcAogICAgIHBsYXRmb3JtL1dpZGdldC5jcHAKIAogICAgIHBsYXRmb3JtL2Fu
aW1hdGlvbi9BbmltYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmNjNDIzOTk3YmNkN2FiYzRiZmZjOTM0ODdlMTFj
MTQzYzI0ZTM3YS4uNzgxZDI4MzcyODkwNDM2MDdhY2EzYzA4ZjNhMjUyODNiMDRkMjU3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMzAyNyw2ICszMDI3LDggQEAKIAkJODM4RUY1MzgxREMxNDlFMjAwOEYwQzM5IC8qIElEQlRy
YW5zYWN0aW9uTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM4RUY1MzYxREMxNDlEQTAwOEYwQzM5IC8qIElEQlRyYW5zYWN0aW9uTW9kZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzOEVGNTNC
MURDMTRBN0MwMDhGMEMzOSAvKiBKU0lEQlRyYW5zYWN0aW9uTW9kZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzhFRjUzOTFEQzE0QTc1MDA4RjBD
MzkgLyogSlNJREJUcmFuc2FjdGlvbk1vZGUuY3BwICovOyB9OwogCQk4MzhFRjUzQzFEQzE0QTdD
MDA4RjBDMzkgLyogSlNJREJUcmFuc2FjdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOEVGNTNBMURDMTRBNzUwMDhGMEMzOSAvKiBKU0lE
QlRyYW5zYWN0aW9uTW9kZS5oICovOyB9OworCQk4MzlBMkYyRDFFMjA0QTcxMDAzOTA1N0UgLyog
V2ViR0xTdGF0ZVRyYWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODM5QTJGMkIxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2Vy
LmNwcCAqLzsgfTsKKwkJODM5QTJGMkUxRTIwNEE3MTAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFj
a2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlB
MkYyQzFFMjA0QTZEMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzlBQUZFQzFBMEMwQzhEMDA2
MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM5QUFGRUExQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVt
ZW50LmNwcCAqLzsgfTsKIAkJODM5QUFGRUQxQTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlB
QUZFQjFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCAqLzsgfTsKIAkJODNBNEE5
RjkxQ0U3RkQ4MTAwNzA5QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNBNEE5RjgxQ0U3RkQ3RTAwNzA5
QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0b20uY3BwICovOyB9OwpAQCAtMTA1NDMsNiArMTA1NDUs
OCBAQAogCQk4MzhFRjUzNzFEQzE0OURBMDA4RjBDMzkgLyogSURCVHJhbnNhY3Rpb25Nb2RlLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJREJUcmFuc2FjdGlvbk1vZGUuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MzhFRjUzOTFEQzE0QTc1MDA4RjBDMzkgLyogSlNJREJU
cmFuc2FjdGlvbk1vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNJREJUcmFuc2FjdGlvbk1vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MzhFRjUzQTFEQzE0QTc1MDA4RjBDMzkgLyogSlNJREJUcmFuc2FjdGlvbk1vZGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJREJUcmFuc2FjdGlvbk1vZGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM5QTJGMkIxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdM
U3RhdGVUcmFja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkdMU3RhdGVUcmFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM5QTJG
MkMxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMU3RhdGVUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzOUFBRkVBMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MV0JSRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5
OSAvKiBIVE1MV0JSRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
VE1MV0JSRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0E0QTlGODFD
RTdGRDdFMDA3MDlCMDAgLyogSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hNTERvY3VtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyNjc1LDYgKzIyNjc5LDggQEAKIAkJCQk0NkRCN0Q1OTFC
MjBGRTU4MDA1NjUxQjIgLyogVk5vZGVUcmFja2VyLmggKi8sCiAJCQkJNTE1Rjc5NTExQ0ZDQTND
NzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHAgKi8sCiAJCQkJNTE1Rjc5
NTIxQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENvcGllci5oICovLAorCQkJ
CTgzOUEyRjJCMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5jcHAgKi8sCisJ
CQkJODM5QTJGMkMxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVUcmFja2VyLmggKi8sCiAJ
CQkJOTM4MEY0NzEwOUExMUFCNDAwMUZEQjM0IC8qIFdpZGdldC5jcHAgKi8sCiAJCQkJOTM4MEY0
NzIwOUExMUFCNDAwMUZEQjM0IC8qIFdpZGdldC5oICovLAogCQkJCUUxRTFCRUZGMTE1RkY2RkIw
MDZGNTJDQSAvKiBXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oICovLApAQCAtMjU0OTAsNiArMjU0OTYs
NyBAQAogCQkJCTBGNDcxMEFGMURCNTZBRkMwMDJEQ0VDMyAvKiBET01SZWN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjQ3MTBCMTFEQjU2QUZDMDAyRENFQzMgLyogRE9NUmVjdEluaXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNDcxMEIzMURCNTZBRkMwMDJEQ0VDMyAvKiBET01SZWN0UmVhZE9u
bHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzOUEyRjJFMUUyMDRBNzEwMDM5MDU3RSAvKiBXZWJH
TFN0YXRlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1QTg2ODUwQzMzNjc2MDAwRUVB
NjQ5IC8qIERPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU0NDI3NEIxMUE1N0U3
QTAwNjNBNzQ5IC8qIERPTVN0cmluZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjQ2NDBB
MTFEN0YzMDQwMDY0NTVCMCAvKiBET01TdHJpbmdNYXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjk0
NTYsNiArMjk0NjMsNyBAQAogCQkJCTY1QkYwMjJFMDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzRBODYyMjE0QjdBREJCMDAzRkRDNzYgLyogRnJhbWVE
ZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFRDEzRDNEMENFQTkz
NkEwMEQ4OTQ2NiAvKiBGcmFtZUlPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTgzOUEyRjJEMUUy
MDRBNzEwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5MzJFMTYwOTBBRjU3ODM0MDAyNUY0MDggLyogRnJhbWVMb2FkZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRDAwMEVCQTIxMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNo
aW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2QkE3NjZFMTY2NDI3QTgwMDVCRTVEMSAvKiBG
cmFtZUxvYWRSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCA5
ODQ1YjNlZjU4M2Y5OTk4MTZjYWU3ZjA0ZmU0ZjY3NmU5YWUyNWU3Li44MTQxMmVhYWY1ODAzMDFi
ZWY1NTJjYjZkZDFkOTVmODNmYjVlOThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMzk5LDcgKzM5
OSw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoSFRNCiAgICAgaWYgKGZyYW1lLT5zZXR0aW5ncygp
LmZvcmNlU29mdHdhcmVXZWJHTFJlbmRlcmluZygpKQogICAgICAgICBhdHRyaWJ1dGVzLmZvcmNl
U29mdHdhcmVSZW5kZXJlciA9IHRydWU7CiAKLSAgICBpZiAoIWF0dHJpYnV0ZXMucHJlZmVyTG93
UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSAmJiBmcmFtZS0+c2V0dGluZ3MoKS5wcmVmZXJMb3dQb3dl
cldlYkdMUmVuZGVyaW5nKCkpCisgICAgYXR0cmlidXRlcy5pbml0aWFsUHJlZmVyTG93UG93ZXJU
b0hpZ2hQZXJmb3JtYW5jZSA9IGF0dHJpYnV0ZXMucHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3Jt
YW5jZTsKKyAgICBpZiAoZnJhbWUtPnNldHRpbmdzKCkucHJlZmVyTG93UG93ZXJXZWJHTFJlbmRl
cmluZygpKQogICAgICAgICBhdHRyaWJ1dGVzLnByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFu
Y2UgPSB0cnVlOwogCiAgICAgaWYgKHBhZ2UpCkBAIC00NjEsNiArNDYyLDcgQEAgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxl
bWVudCYgcGFzc2VkQ2EKICAgICAsIG1fbnVtR0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkKG1heEdM
RXJyb3JzQWxsb3dlZFRvQ29uc29sZSkKICAgICAsIG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlv
bih0cnVlKQogeworICAgIHJlZ2lzdGVyV2l0aFdlYkdMU3RhdGVUcmFja2VyKCk7CiB9CiAKIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoSFRNTENh
bnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmPEdyYXBoaWNzQ29udGV4dDNEPiYmIGNvbnRl
eHQsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKQEAgLTQ4Miw2ICs0ODQsMjAg
QEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShI
VE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2EKIAogICAgIHNldHVwRmxhZ3MoKTsKICAgICBpbml0
aWFsaXplTmV3Q29udGV4dCgpOworICAgIHJlZ2lzdGVyV2l0aFdlYkdMU3RhdGVUcmFja2VyKCk7
Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVnaXN0ZXJXaXRoV2ViR0xT
dGF0ZVRyYWNrZXIoKQoreworICAgIGF1dG8qIHBhZ2UgPSBjYW52YXMoKS5kb2N1bWVudCgpLnBh
Z2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIHRyYWNr
ZXIgPSBwYWdlLT53ZWJHTFN0YXRlVHJhY2tlcigpOworICAgIGlmICghdHJhY2tlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV90cmFja2VyVG9rZW4gPSB0cmFja2VyLT50b2tlbihtX2F0dHJp
YnV0ZXMuaW5pdGlhbFByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2UpOwogfQogCiB2b2lk
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRpYWxpemVOZXdDb250ZXh0KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaAppbmRleCA5ZjllOGI2NDFmZjZiY2QzOWFkMjc1NmQyNzM3N2RlMjMyOWNkZjYwLi4wMjU4
MTk5OWQxZjBjMmZlNTY1ZWY5Njc1MjkyMzA1OGFmMzk4Y2RmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJXZWJHTEFueS5oIgog
I2luY2x1ZGUgIldlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCIKKyNpbmNsdWRlICJXZWJHTFN0YXRl
VHJhY2tlci5oIgogI2luY2x1ZGUgIldlYkdMVGV4dHVyZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4K
IApAQCAtNzk4LDYgKzc5OSw5IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBib29sIHZh
bGlkYXRlQXJyYXlCdWZmZXJUeXBlKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0MzRGVudW0g
dHlwZSwgc3RkOjpvcHRpb25hbDxKU0M6OlR5cGVkQXJyYXlUeXBlPik7CisgICAgdm9pZCByZWdp
c3RlcldpdGhXZWJHTFN0YXRlVHJhY2tlcigpOworCisgICAgV2ViR0xTdGF0ZVRyYWNrZXI6OlRv
a2VuIG1fdHJhY2tlclRva2VuOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwCmluZGV4IGQ2YmUwMjBh
YjVhNTlkMjJiMDhkZDljYzZkZTQ2ZjA0NTZhOTNhZWQuLjYwYzRjZjA1OGMwMzcxMjExYmUyZGFj
OTYzNWRjZDdlM2I1YWRkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNM
b2dnaW5nS2V5cy5jcHAKQEAgLTIzOCw2ICsyMzgsMTEgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dn
aW5nS2V5czo6aW5NZW1vcnlDYWNoZUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW5N
ZW1vcnlDYWNoZSIpOwogfQogCitTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbmFjdGl2
ZUtleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW5hY3RpdmUiKTsKK30KKwogU3Ry
aW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aW50ZXJuYWxFcnJvcktleSgpCiB7CiAgICAgcmV0
dXJuIEFTQ0lJTGl0ZXJhbCgiaW50ZXJuYWxFcnJvciIpOwpAQCAtMzEzLDYgKzMxOCwxNiBAQCBT
dHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpkZWx0YUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJ
TGl0ZXJhbCgiZGVsdGEiKTsKIH0KIAorU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6YWN0
aXZlSW5Gb3JlZ3JvdW5kVGFiS2V5KCkKK3sKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJhY3Rp
dmVJbkZvcmVncm91bmRUYWIiKTsKK30KKworU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
YWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25seUtleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bCgiYWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25seSIpOworfQorCiBTdHJpbmcgRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjphcHBsaWNhdGlvbkNhY2hlS2V5KCkKIHsKICAgICByZXR1cm4gQVNDSUlMaXRl
cmFsKCJhcHBsaWNhdGlvbkNhY2hlIik7CkBAIC00MzgsNiArNDUzLDExIEBAIFN0cmluZyBEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OnNvdXJjZUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
c291cmNlIik7CiB9CiAKK1N0cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnN0YXRlS2V5KCkK
K3sKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzdGF0ZSIpOworfQorCiBTdHJpbmcgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpzdHJlYW1pbmdNZWRpYSgpCiB7CiAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgic3RyZWFtaW5nTWVkaWEiKTsKQEAgLTYxOCw1ICs2MzgsMTAgQEAgU3RyaW5nIERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6bm90SW5DYWNoZUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bCgibm90SW5DYWNoZSIpOwogfQogCitTdHJpbmcgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjp3ZWJHTEtleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgid2ViR0wiKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9z
dGljTG9nZ2luZ0tleXMuaAppbmRleCAyZWU2MjdiOGY0MzgzYWQ2ODNiNzJiNDAxNmRkMjI5MjIw
NzFlNTkyLi43MDRkY2NiMzA0NzdiNDM4ZTQ0Y2JlMTRjZTJhM2EwOTcwYzdiMjQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgKQEAgLTMxLDYgKzMxLDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0tleXMgewog
cHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgYWN0aXZlSW5Gb3JlZ3Jv
dW5kVGFiS2V5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBhY3RpdmVJbkJh
Y2tncm91bmRUYWJPbmx5S2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBhcHBsaWNhdGlvbkNhY2hl
S2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBhdWRpb0tleSgpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTdHJpbmcgYmFja05hdmlnYXRpb25LZXkoKTsKQEAgLTU2LDYgKzU4LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBTdHJpbmcgaHR0cHNOb1N0b3JlS2V5KCk7CiAgICAgc3RhdGljIFN0
cmluZyBpbWFnZUtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgaW5NZW1vcnlDYWNoZUtleSgpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgaW5hY3RpdmVLZXkoKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIGludGVybmFsRXJyb3JLZXkoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgU3RyaW5nIGludmFsaWRTZXNzaW9uSURLZXkoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgU3RyaW5nIGlzQXR0YWNobWVudEtleSgpOwpAQCAtMTE4LDYgKzEyMSw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3RyaW5nIHNhbWVMb2FkS2V5KCk7CiAgICAgc3RhdGlj
IFN0cmluZyBzY3JpcHRLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHNvdXJjZUtleSgpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgc3RhdGVLZXkoKTsKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgU3RyaW5nIHN0cmVhbWluZ01lZGlhKCk7CiAgICAgc3RhdGljIFN0cmluZyBz
dHlsZVNoZWV0S2V5KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBzdWNjZXNz
ZnVsU3BlY3VsYXRpdmVXYXJtdXBXaXRoUmV2YWxpZGF0aW9uS2V5KCk7CkBAIC0xNDUsNiArMTQ5
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgdmlkZW9LZXkoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgU3RyaW5nIHdhc3RlZFNwZWN1bGF0aXZlV2FybXVwV2l0aFJldmFsaWRh
dGlvbktleSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgd2FzdGVkU3BlY3Vs
YXRpdmVXYXJtdXBXaXRob3V0UmV2YWxpZGF0aW9uS2V5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFN0cmluZyB3ZWJHTEtleSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJp
bmcgd2ViVmlld0tleSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgem9vbWVk
S2V5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDkzMzFiMzAyOTA3ZTc5YjdjMTFiNWVjMDg0
NmJhZmQ1YzNmZWM0OTcuLjczMDBkM2E1NDM5NTNlZmY5YmNjNTM2Y2Q0ZmVmMGM4MWYxMDIzNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtOTcsNiArOTcsNyBAQAogI2luY2x1ZGUgIlZpc2l0ZWRM
aW5rU3RhdGUuaCIKICNpbmNsdWRlICJWaXNpdGVkTGlua1N0b3JlLmgiCiAjaW5jbHVkZSAiVm9p
ZENhbGxiYWNrLmgiCisjaW5jbHVkZSAiV2ViR0xTdGF0ZVRyYWNrZXIuaCIKICNpbmNsdWRlICJX
aWRnZXQuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtMTkwLDYgKzE5MSw3IEBAIFBhZ2U6OlBhZ2UoUGFn
ZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICAgICAsIG1fcGx1Z0luQ2xpZW50
KHBhZ2VDb25maWd1cmF0aW9uLnBsdWdJbkNsaWVudCkKICAgICAsIG1fdmFsaWRhdGlvbk1lc3Nh
Z2VDbGllbnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi52YWxpZGF0aW9uTWVzc2FnZUNsaWVu
dCkpCiAgICAgLCBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3Vy
YXRpb24uZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQpKQorICAgICwgbV93ZWJHTFN0YXRlVHJhY2tl
cihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLndlYkdMU3RhdGVUcmFja2VyKSkKICAgICAsIG1f
c3ViZnJhbWVDb3VudCgwKQogICAgICwgbV9vcGVuZWRCeURPTShmYWxzZSkKICAgICAsIG1fdGFi
S2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGRlM2ZlNGU4
NTgwOTc2M2NmM2IwM2RjOTQ3YWNjZjYxYzE2ZDE1ZTkuLjM3YWM2YTdjODFkYzM4NGYxZjYyNjM3
OTljZDg4OGFiMTJhMjNjZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xMjksNiArMTI5LDcgQEAgY2xh
c3MgVXNlckNvbnRlbnRQcm92aWRlcjsKIGNsYXNzIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50Owog
Y2xhc3MgQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyOwogY2xhc3MgVmlzaXRlZExpbmtTdG9y
ZTsKK2NsYXNzIFdlYkdMU3RhdGVUcmFja2VyOwogCiB0eXBlZGVmIHVpbnQ2NF90IExpbmtIYXNo
OwogCkBAIC01NDgsNiArNTQ5LDcgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8RXZlbnRU
aHJvdHRsaW5nQmVoYXZpb3I+IGV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGUoKSBjb25z
dCB7IHJldHVybiBtX2V2ZW50VGhyb3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGU7IH0KICAgICB2b2lk
IHNldEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yT3ZlcnJpZGUoc3RkOjpvcHRpb25hbDxFdmVudFRo
cm90dGxpbmdCZWhhdmlvcj4gdGhyb3R0bGluZykgeyBtX2V2ZW50VGhyb3R0bGluZ0JlaGF2aW9y
T3ZlcnJpZGUgPSB0aHJvdHRsaW5nOyB9CiAKKyAgICBXZWJHTFN0YXRlVHJhY2tlciogd2ViR0xT
dGF0ZVRyYWNrZXIoKSBjb25zdCB7IHJldHVybiBtX3dlYkdMU3RhdGVUcmFja2VyLmdldCgpOyB9
CiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW5pdEdyb3VwKCk7CiAKQEAgLTYx
MSw2ICs2MTMsNyBAQCBwcml2YXRlOgogICAgIFBsdWdJbkNsaWVudCogbV9wbHVnSW5DbGllbnQ7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50PiBtX3ZhbGlkYXRp
b25NZXNzYWdlQ2xpZW50OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxEaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudD4gbV9kaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
R0xTdGF0ZVRyYWNrZXI+IG1fd2ViR0xTdGF0ZVRyYWNrZXI7CiAKICAgICBpbnQgbV9zdWJmcmFt
ZUNvdW50OwogICAgIFN0cmluZyBtX2dyb3VwTmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uZmlndXJhdGlvbi5jcHAKaW5kZXggYjEyZGI0ZTYwYTY1ODQ0ZTliNDU4ZDRmMDY1ZmNkNWUw
MWE2OTY1MC4uOWRiZjdkZjI3NDA4MTg3NjYyNjU2MWVjZGNmYTk1Y2ZjMjJmZTA2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJWYWxpZGF0aW9u
TWVzc2FnZUNsaWVudC5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RvcmUuaCIKKyNpbmNsdWRl
ICJXZWJHTFN0YXRlVHJhY2tlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCA4YzcxZjgxNzdmZmU5NjM3NmM0YTlh
MWI2YmY5ZTM5MTE5OWFhZDA2Li40ZDgxMTM2ZTUzMGZjNTFmZmZlMWQxOWFiNTZkYTVkMDQ5NjMx
NDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCkBAIC01MCw2ICs1
MCw3IEBAIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50
UHJvdmlkZXI7CiBjbGFzcyBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKIGNsYXNzIFZpc2l0ZWRM
aW5rU3RvcmU7CitjbGFzcyBXZWJHTFN0YXRlVHJhY2tlcjsKIAogI2lmIEVOQUJMRShDT05URVhU
X01FTlVTKQogY2xhc3MgQ29udGV4dE1lbnVDbGllbnQ7CkBAIC04MCw2ICs4MSw3IEBAIHB1Ymxp
YzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ+IHZhbGlkYXRp
b25NZXNzYWdlQ2xpZW50OwogICAgIEZyYW1lTG9hZGVyQ2xpZW50KiBsb2FkZXJDbGllbnRGb3JN
YWluRnJhbWUgeyBudWxscHRyIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPERpYWdub3N0aWNMb2dn
aW5nQ2xpZW50PiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViR0xTdGF0ZVRyYWNrZXI+IHdlYkdMU3RhdGVUcmFja2VyOwogCiAgICAgUmVmUHRyPEFwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlPiBhcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTsKICAgICBSZWZQdHI8
RGF0YWJhc2VQcm92aWRlcj4gZGF0YWJhc2VQcm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1dlYkdMU3RhdGVUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1dlYkdMU3RhdGVUcmFja2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGExNzQ4ZGIxMjBmOTEw
ZjZmMzQ4NjAxODkxN2QwYzc0YjMyOWRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vV2ViR0xTdGF0ZVRyYWNrZXIuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViR0xTdGF0ZVRyYWNrZXIu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXZWJHTFN0YXRlVHJhY2tlcjo6V2ViR0xTdGF0
ZVRyYWNrZXIoU3RhdGVDaGFuZ2VIYW5kbGVyJiYgaGFuZGxlcikKKyAgICA6IG1fV2ViR0xDb250
ZXh0Q291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50KSB7IHVwZGF0ZVdlYkdMU3RhdGUoKTsg
fSkKKyAgICAsIG1fc3RhdGVDaGFuZ2VIYW5kbGVyKFdURk1vdmUoaGFuZGxlcikpCit7Cit9CisK
K2F1dG8gV2ViR0xTdGF0ZVRyYWNrZXI6OnRva2VuKGJvb2wgcHJlZmVyTG93UG93ZXIpIC0+IFRv
a2VuCit7CisgICAgLy8gV2Ugb25seSB0cmFjayBoaWdoIHBlcmZvcm1hbmNlIFdlYkdMIGNvbnRl
eHRzIGF0IHRoZSBtb21lbnQuCisgICAgaWYgKHByZWZlckxvd1Bvd2VyKQorICAgICAgICByZXR1
cm4geyB9OworICAgIHJldHVybiBtX1dlYkdMQ29udGV4dENvdW50ZXIuY291bnQoKTsKK30KKwor
dm9pZCBXZWJHTFN0YXRlVHJhY2tlcjo6dXBkYXRlV2ViR0xTdGF0ZSgpCit7CisgICAgaWYgKCFt
X1dlYkdMQ29udGV4dENvdW50ZXIudmFsdWUoKSkKKyAgICAgICAgbV9zdGF0ZUNoYW5nZUhhbmRs
ZXIoZmFsc2UpOworICAgIGVsc2UgaWYgKG1fV2ViR0xDb250ZXh0Q291bnRlci52YWx1ZSgpID09
IDEpCisgICAgICAgIG1fc3RhdGVDaGFuZ2VIYW5kbGVyKHRydWUpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XZWJHTFN0
YXRlVHJhY2tlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViR0xTdGF0ZVRyYWNrZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jY2Q3YTA1ODVkODY3NTM1N2I4Y2RmMGI2ODZkZTZiNTZhOWZkYTFjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViR0xTdGF0ZVRyYWNr
ZXIuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYkdMU3RhdGVUcmFja2VyIHsKK3B1YmxpYzoKKyAg
ICB1c2luZyBTdGF0ZUNoYW5nZUhhbmRsZXIgPSBGdW5jdGlvbjx2b2lkKGJvb2wgaXNVc2luZ1dl
YkdMKT47CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgV2ViR0xTdGF0ZVRyYWNrZXIoU3Rh
dGVDaGFuZ2VIYW5kbGVyJiYpOworCisgICAgZW51bSBXZWJHTENvbnRleHRDb3VudGVyVHlwZSB7
IH07CisgICAgdXNpbmcgV2ViR0xDb250ZXh0Q291bnRlciA9IFJlZkNvdW50ZXI8V2ViR0xDb250
ZXh0Q291bnRlclR5cGU+OworICAgIHVzaW5nIFRva2VuID0gV2ViR0xDb250ZXh0Q291bnRlcjo6
VG9rZW47CisKKyAgICBUb2tlbiB0b2tlbihib29sIHByZWZlckxvd1Bvd2VyKTsKKworcHJpdmF0
ZToKKyAgICB2b2lkIHVwZGF0ZVdlYkdMU3RhdGUoKTsKKworICAgIFdlYkdMQ29udGV4dENvdW50
ZXIgbV9XZWJHTENvbnRleHRDb3VudGVyOworICAgIFN0YXRlQ2hhbmdlSGFuZGxlciBtX3N0YXRl
Q2hhbmdlSGFuZGxlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzLmgKaW5kZXggYjlhMjY4NjUzOThiNDIwMjVjZmE4ZWRhOWYyMDg2MmYzZWU3
MTU1NC4uZjlmMjE2MWE0MjE4YWJmYjlhZDE2NTU5ZmViNTlmMDQ1ODZlYjlmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RBdHRy
aWJ1dGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0RBdHRyaWJ1dGVzLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgc3RydWN0IEdyYXBoaWNzQ29u
dGV4dDNEQXR0cmlidXRlcyB7CiAgICAgYm9vbCB1c2VHTEVTMyB7IGZhbHNlIH07CiAgICAgYm9v
bCBub0V4dGVuc2lvbnMgeyBmYWxzZSB9OwogICAgIGZsb2F0IGRldmljZVBpeGVsUmF0aW8geyAx
IH07CisgICAgYm9vbCBpbml0aWFsUHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSB7IGZh
bHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSGln
aFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNjliY2M1YzhhZmVlNjI0MzRmOWZjNzZjOTVlMWFlNWU3ZmViNzk2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNh
Z2VTYW1wbGVyLmNwcApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmgi
CisKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworc3RhdGljIGNvbnN0IHN0ZDo6Y2hyb25vOjptaW51dGVzIHNhbXBsaW5n
SW50ZXJ2YWwgeyAxMCB9OworCitIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcjo6
SGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIoV2ViUHJvY2Vzc1Bvb2wmIHdlYlBy
b2Nlc3NQb29sKQorICAgIDogbV93ZWJQcm9jZXNzUG9vbCh3ZWJQcm9jZXNzUG9vbCkKKyAgICAs
IG1fdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NV
c2FnZVNhbXBsZXI6OnRpbWVyRmlyZWQpCit7CisgICAgbV90aW1lci5zdGFydFJlcGVhdGluZyhz
YW1wbGluZ0ludGVydmFsKTsKK30KKwordm9pZCBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlcjo6dGltZXJGaXJlZCgpCit7CisgICAgYm9vbCBpc1VzaW5nSGlnaFBlcmZvcm1hbmNl
V2ViR0wgPSBmYWxzZTsKKyAgICBib29sIGlzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTEluVmlz
aWJsZVZpZXcgPSBmYWxzZTsKKworICAgIFdlYlBhZ2VQcm94eSogZmlyc3RQYWdlID0gbnVsbHB0
cjsKKyAgICBmb3IgKGF1dG8mIHdlYlByb2Nlc3MgOiBtX3dlYlByb2Nlc3NQb29sLnByb2Nlc3Nl
cygpKSB7CisgICAgICAgIGZvciAoYXV0byYgcGFnZSA6IHdlYlByb2Nlc3MtPnBhZ2VzKCkpIHsK
KyAgICAgICAgICAgIGlmICghZmlyc3RQYWdlKQorICAgICAgICAgICAgICAgIGZpcnN0UGFnZSA9
IHBhZ2U7CisKKyAgICAgICAgICAgIGlmIChwYWdlLT5pc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2Vi
R0woKSkgeworICAgICAgICAgICAgICAgIGlzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTCA9IHRy
dWU7CisgICAgICAgICAgICAgICAgaWYgKHBhZ2UtPmlzVmlld1Zpc2libGUoKSkgeworICAgICAg
ICAgICAgICAgICAgICBpc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0xJblZpc2libGVWaWV3ID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFmaXJzdFBhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIFN0cmluZyBzdGF0ZSA9IERpYWdub3N0aWNMb2dnaW5nS2V5czo6
aW5hY3RpdmVLZXkoKTsKKyAgICBpZiAoaXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMSW5WaXNp
YmxlVmlldykKKyAgICAgICAgc3RhdGUgPSBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmFjdGl2ZUlu
Rm9yZWdyb3VuZFRhYktleSgpOworICAgIGVsc2UgaWYgKGlzVXNpbmdIaWdoUGVyZm9ybWFuY2VX
ZWJHTCkKKyAgICAgICAgc3RhdGUgPSBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmFjdGl2ZUluQmFj
a2dyb3VuZFRhYk9ubHlLZXkoKTsKKworICAgIGZpcnN0UGFnZS0+bG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoVmFsdWUoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp3ZWJHTEtleSgpLCBEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnN0YXRlS2V5KCksIHN0YXRlLCBmYWxzZSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0hpZ2hQZXJm
b3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
SGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDU2YjBh
MjQ2M2RlZGYxNjY5NThjMjhmZmI3NWFhMGUyY2U1MWYxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVy
LmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlByb2Nl
c3NQb29sOworCitjbGFzcyBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlciB7Citw
dWJsaWM6CisgICAgZXhwbGljaXQgSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIo
V2ViUHJvY2Vzc1Bvb2wmKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHRpbWVyRmlyZWQoKTsKKwor
ICAgIFdlYlByb2Nlc3NQb29sJiBtX3dlYlByb2Nlc3NQb29sOworICAgIFJ1bkxvb3A6OlRpbWVy
PEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyPiBtX3RpbWVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggZWY1NmIxYzY2MzZmMWFiNWRjZDZmZTU4ZGY2Mjg4NGM5ODEzZWUxMS4uYmQ4ZDQzYzQx
NjVlOTA2MDk1YWI3Nzk0NDdjOTQxMzUzM2RhYWJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMzc4LDYgKzM3OCw5IEBAIHB1YmxpYzoKICAgICBib29sIHRy
eUNsb3NlKCk7CiAgICAgYm9vbCBpc0Nsb3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDbG9zZWQ7
IH0KIAorICAgIHZvaWQgc2V0SXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKGJvb2wgdmFsdWUp
IHsgbV9pc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0wgPSB2YWx1ZTsgfQorICAgIGJvb2wgaXNV
c2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKCkgY29uc3QgeyByZXR1cm4gbV9pc1VzaW5nSGlnaFBl
cmZvcm1hbmNlV2ViR0w7IH0KKwogICAgIHZvaWQgY2xvc2VQYWdlKGJvb2wgc3RvcFJlc3BvbnNp
dmVuZXNzVGltZXIpOwogCiAgICAgdm9pZCBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKExvYWRQ
YXJhbWV0ZXJzJik7CkBAIC0xOTczLDYgKzE5NzYsOCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShE
T1dOTE9BRF9BVFRSSUJVVEUpCiAgICAgYm9vbCBtX3N5bmNOYXZpZ2F0aW9uQWN0aW9uSGFzRG93
bmxvYWRBdHRyaWJ1dGUgeyBmYWxzZSB9OwogI2VuZGlmCisKKyAgICBib29sIG1faXNVc2luZ0hp
Z2hQZXJmb3JtYW5jZVdlYkdMIHsgZmFsc2UgfTsKICAgICAgICAgCiAgICAgV2Vha1B0ckZhY3Rv
cnk8V2ViUGFnZVByb3h5PiBtX3dlYWtQdHJGYWN0b3J5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDYyMTAyYTE5ZGRk
YWJiNjdhZDU3OGI0OTc3YWRkOWNlNTk3MjcyOTAuLjUyNzI4NzUxZjkzOTI0OGJhODM5YTQzNzVj
NzM3ZWEyMThlM2FkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDg1LDQgKzQ4NSw2IEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2VQcm94eSB7CiAgICAgRGlkSGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoKQogICAgIEhhbmRsZUFj
dGl2ZU5vd1BsYXlpbmdTZXNzaW9uSW5mb1Jlc3BvbnNlKGJvb2wgaGFzQWN0aXZlU2Vzc2lvbiwg
U3RyaW5nIHRpdGxlLCBkb3VibGUgZHVyYXRpb24sIGRvdWJsZSBlbGFwc2VkVGltZSkKICNlbmRp
ZgorCisgICAgU2V0SXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKGJvb2wgaXNVc2luZ0hpZ2hQ
ZXJmb3JtYW5jZVdlYkdMKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKaW5kZXggYWVlOTUzZmRjMTdjNmY3ZjE3NWQ5MDcyN2Y5MjI2ODIzNmU3M2ZhNi4u
YjBlMDU1YTZlMWFkMTM1NTM0MjNiMjBiM2ZmYjE0MTM3ZGVhNmUxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5j
bHVkZSAiRG93bmxvYWRQcm94eS5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIkdhbWVwYWREYXRhLmgiCisjaW5jbHVkZSAiSGlnaFBlcmZvcm1hbmNlR3Jh
cGhpY3NVc2FnZVNhbXBsZXIuaCIKICNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlvbi5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgpAQCAtMTY1LDYgKzE2Niw5IEBAIFdlYlByb2Nlc3NQb29s
OjpXZWJQcm9jZXNzUG9vbChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJh
dGlvbikKICAgICAsIG1fbWVtb3J5U2FtcGxlckVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX21lbW9y
eVNhbXBsZXJJbnRlcnZhbCgxNDAwLjApCiAgICAgLCBtX3dlYnNpdGVEYXRhU3RvcmUobV9jb25m
aWd1cmF0aW9uLT5zaG91bGRIYXZlTGVnYWN5RGF0YVN0b3JlKCkgPyBBUEk6OldlYnNpdGVEYXRh
U3RvcmU6OmNyZWF0ZShsZWdhY3lXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbihtX2NvbmZp
Z3VyYXRpb24pKS5wdHIoKSA6IG51bGxwdHIpCisjaWYgUExBVEZPUk0oTUFDKQorICAgICwgbV9o
aWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcihzdGQ6Om1ha2VfdW5pcXVlPEhpZ2hQ
ZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyPigqdGhpcykpCisjZW5kaWYKICAgICAsIG1f
c2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKGZhbHNlKQogICAgICwgbV9wcm9jZXNzVGVy
bWluYXRpb25FbmFibGVkKHRydWUpCiAgICAgLCBtX2NhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RF
dmFsdWF0aW9uKHRydWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
CmluZGV4IDZmODk5NWMyNzZkNTYxMjFkMGQ3ODhlYTVkZGQ3OTVlNzE5ZDIwZmIuLjRlZDBjNTli
NDVjNjg0MDhiMWU0YmNlMmExMmY1YjRiOWZkNmVjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC03OSw2ICs3OSw3IEBAIGNsYXNzIFBhZ2VDb25maWd1
cmF0aW9uOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIERvd25sb2FkUHJveHk7CitjbGFz
cyBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcjsKIGNsYXNzIFVJR2FtZXBhZDsK
IGNsYXNzIFdlYkF1dG9tYXRpb25TZXNzaW9uOwogY2xhc3MgV2ViQ29udGV4dFN1cHBsZW1lbnQ7
CkBAIC01MjMsNiArNTI0LDggQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1f
YXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uTm90aWZpY2F0aW9uT2JzZXJ2ZXI7CiAgICAgUmV0
YWluUHRyPE5TT2JqZWN0PiBtX2F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uTm90aWZpY2F0aW9u
T2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPE5TT2JqZWN0PiBtX2F1dG9tYXRpY0Rhc2hTdWJzdGl0
dXRpb25Ob3RpZmljYXRpb25PYnNlcnZlcjsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxIaWdoUGVy
Zm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcj4gbV9oaWdoUGVyZm9ybWFuY2VHcmFwaGljc1Vz
YWdlU2FtcGxlcjsKICNlbmRpZgogCiAgICAgU3RyaW5nIG1fb3ZlcnJpZGVJY29uRGF0YWJhc2VQ
YXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDI2MzZmNjdlNTA5NzMyMjI1ZjI0ZTNiNTVlODg1NjQ0Y2ZlY2UwNTMuLmJiY2Q3
OTYxYWY0YjJlOThlZGY3NTk3ZDQzZjYyZmYwMjhkMTRjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNTMsNiArMTI1Myw4
IEBACiAJCTgzOTE0OTY1MUJFQTgzODUwMEQyRDk1MyAvKiBOZXR3b3JrTG9hZFBhcmFtZXRlcnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOTE0OTYz
MUJFQTgzODUwMEQyRDk1MyAvKiBOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJODM5
OTAyMDIxQkU5QTAyQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOTkwMUZGMUJFOUEwMUIwMDBGMzY1MyAv
KiBOZXR3b3JrTG9hZC5jcHAgKi87IH07CiAJCTgzOTkwMjAzMUJFOUEwMkIwMDBGMzY1MyAvKiBO
ZXR3b3JrTG9hZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM5OTAxRkUxQkU5QTAxQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmggKi87IH07CisJCTgz
OUEyRjMxMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2Ft
cGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MzlBMkYyRjFFMjA2NzM5MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNh
bXBsZXIuY3BwICovOyB9OworCQk4MzlBMkYzMjFFMjA2NzQ1MDAzOTA1N0UgLyogSGlnaFBlcmZv
cm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEyRjMwMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9y
bWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oICovOyB9OwogCQk4M0JEQ0NCOTFBQzVGREI2MDAz
RjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JEQ0NCODFBQzVGREI2MDAzRjY0NDEgLyogTmV0
d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgKi87IH07CiAJCTgzQkZBQzQyMUQ5NjEzN0MwMDQzMzQ5
MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzQkZBQzQwMUQ5NjEzNjAwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRD
bGllbnQuaCAqLzsgfTsKIAkJODNCRkFDNDMxRDk2MTM3QzAwNDMzNDkwIC8qIEJsb2JEb3dubG9h
ZENsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0JGQUM0MTFEOTYxMzYwMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmNwcCAqLzsg
fTsKQEAgLTM0MDEsNiArMzQwMyw4IEBACiAJCTgzOTE0OTYzMUJFQTgzODUwMEQyRDk1MyAvKiBO
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
TmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZFBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5OTAxRkUxQkU5
QTAxQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IE5ldHdvcmtMb2FkLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5MDFGRjFCRTlBMDFCMDAwRjM2NTMg
LyogTmV0d29ya0xvYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TmV0d29ya0xvYWQuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzlBMkYyRjFFMjA2NzM5MDAzOTA1N0UgLyog
SGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzlBMkYzMDFFMjA2NzM5MDAzOTA1
N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNCRENDQjgxQUM1RkRCNjAwM0Y2NDQx
IC8qIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzQkZBQzQwMUQ5NjEzNjAwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmxvYkRvd25sb2FkQ2xpZW50
Lmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQkZBQzQxMUQ5NjEzNjAwMDQzMzQ5MCAv
KiBCbG9iRG93bmxvYWRDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gQmxvYkRvd25sb2FkQ2xpZW50LmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0Rvd25s
b2Fkcy9CbG9iRG93bmxvYWRDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNjI1Nyw2ICs2MjYxLDggQEAKIAkJCQlCQzA2RjQ0ODEyREJEMUY1MDAyRDc4REUgLyogR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovLAogCQkJCUJDMDZGNDM5
MTJEQkNDRkIwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3Bw
ICovLAogCQkJCUJDMDZGNDM4MTJEQkNDRkIwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCAqLywKKwkJCQk4MzlBMkYyRjFFMjA2NzM5MDAzOTA1N0UgLyogSGln
aFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwICovLAorCQkJCTgzOUEyRjMwMUUy
MDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oICov
LAogCQkJCTMxNjA3RjM4MTk2MjcwMDIwMDlCODdEQSAvKiBMZWdhY3lTZXNzaW9uU3RhdGVDb2Rp
bmcuaCAqLywKIAkJCQlCQzZFREFBNTExMTI3MUM2MDBFNzY3OEIgLyogUGFnZUNsaWVudC5oICov
LAogCQkJCTFBQzc1Mzc5MTgzQTlGREEwMDcyQ0IxNSAvKiBQYWdlTG9hZFN0YXRlLmNwcCAqLywK
QEAgLTc4ODUsNiArNzg5MSw3IEBACiAJCQkJMUE2RkJEMjgxMUU2OUJDMjAwREIxMzcxIC8qIE5l
dHNjYXBlUGx1Z2luLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRBOUM1NjEyQjgxNkNGMDA4RkU5
ODQgLyogTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTU4ODky
MTFFRTcwNDAwMDYxQjg4MiAvKiBOZXRzY2FwZVBsdWdpblN0cmVhbS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJODM5QTJGMzIxRTIwNjc0NTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNz
VXNhZ2VTYW1wbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTc5OEM3QTE2RTY4MTg4MDAyNDAx
MzkgLyogTmV0d29ya0Jsb2JSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0MzZFQ0Mx
QTBEMDQwQjAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ5
RDQwRDcxQUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTkzODAsNiArOTM4Nyw3IEBACiAJCQkJMUE2RkJEMjkxMUU2OUJDMjAwREIx
MzcxIC8qIE5ldHNjYXBlUGx1Z2luLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRTVCN0ZCMTFF
N0FFRDIwMEJBNjc2NyAvKiBOZXRzY2FwZVBsdWdpbk1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTFBNEE5QzU1MTJCODE2Q0YwMDhGRTk4NCAvKiBOZXRzY2FwZVBsdWdpbk1vZHVsZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk4MzlBMkYzMTFFMjA2NzQ1MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1h
bmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE0QTlDOUEx
MkI4MjFDRDAwOEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9kdWxlTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUFBNTg4OTMxMUVFNzA0MDAwNjFCODgyIC8qIE5ldHNjYXBlUGx1Z2luU3RyZWFt
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxNzk4Qzc5MTZFNjgxODgwMDI0MDEzOSAvKiBOZXR3
b3JrQmxvYlJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGQxN2E3ZmNlYzg3YzkzMTY0ZDM3ZTJj
OTQ2YmQ5ZjlmNjEzY2VlOWUuLjYxYzBkYzZkOTBlYThiNGUxYzc3NmNjMzg4NTMxYjE1ODhlNmUw
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTE3Niw2ICsxNzYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvVXNlclN0eWxlU2hlZXQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Zpc2libGVQb3NpdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
VmlzaWJsZVVuaXRzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJHTFN0YXRlVHJhY2tlci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvaHRtbGVkaXRpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL21hcmt1
cC5oPgogI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CkBAIC0zNTcsNiArMzU4LDkg
QEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xp
ZW50Rm9yTWFpbkZyYW1lID0gbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50OwogICAgIHBhZ2VDb25m
aWd1cmF0aW9uLnByb2dyZXNzVHJhY2tlckNsaWVudCA9IG5ldyBXZWJQcm9ncmVzc1RyYWNrZXJD
bGllbnQoKnRoaXMpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmRpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudD4oKnRoaXMp
OworICAgIHBhZ2VDb25maWd1cmF0aW9uLndlYkdMU3RhdGVUcmFja2VyID0gc3RkOjptYWtlX3Vu
aXF1ZTxXZWJHTFN0YXRlVHJhY2tlcj4oW3RoaXNdKGJvb2wgaXNVc2luZ0hpZ2hQZXJmb3JtYW5j
ZVdlYkdMKSB7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0SXNVc2lu
Z0hpZ2hQZXJmb3JtYW5jZVdlYkdMKGlzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTCkpOworICAg
IH0pOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24udmFsaWRh
dGlvbk1lc3NhZ2VDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYlZhbGlkYXRpb25NZXNzYWdl
Q2xpZW50PigqdGhpcyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298808</attachid>
            <date>2017-01-13 16:45:55 -0800</date>
            <delta_ts>2017-01-13 17:06:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166730-20170113164413.patch</filename>
            <type>text/plain</type>
            <size>40092</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjFmNTUxYTI5N2M4YmQy
NzUyYzg2OWNkNWJjZWMzYTQyZTA4ZWJiOS4uOThjOTAyZDMxOTg5ZWY5OTlhYWIwMTYxMTA1ODgy
ZDg5YjU4YTA2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE3LTAxLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIGRpYWdub3N0
aWMgbG9nZ2luZyB0byBtZWFzdXJlIFdlYkdMIHVzYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY3MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzI5ODgzNDY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAg
ICAgICAgQWRkIGRpYWdub3N0aWMgbG9nZ2luZyB0byBtZWFzdXJlIGhpZ2ggcGVyZm9ybWFuY2Ug
V2ViR0wgdXNhZ2UuIFdlIHJlcG9ydAorICAgICAgICBhdCByZWd1bGFyIGludGVydmFscyBpbiB3
aGljaCBXZWJHTCBzdGF0ZSBTYWZhcmkgaXM6CisgICAgICAgIC0gSW5hY3RpdmUKKyAgICAgICAg
LSBBY3RpdmVJbkZvcmVncm91bmRUYWIKKyAgICAgICAgLSBBY3RpdmVJbkJhY2tncm91bmRUYWJP
bmx5CisKKyAgICAgICAgVGhpcyBzaG91bGQgZ2l2ZSB1cyBhbiBlc3RpbWF0ZSBvZjoKKyAgICAg
ICAgLSBXaGF0ICUgb2YgdGhlIHRpbWUgaXMgU2FmYXJpIHVzaW5nIGhpZ2ggcGVyZm9ybWFuY2Ug
Z3JhcGhpY3MKKyAgICAgICAgLSBXaGF0ICUgb2YgdGhpcyB0aW1lIGlzIG9ubHkgZHVlIHRvIGJh
Y2tncm91bmQgdGFicworCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gV2ViLWZhY2luZyBiZWhh
dmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpyZWdpc3RlcldpdGhXZWJHTFN0YXRlVHJhY2tlcik6CisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOgorICAgICAgICAqIHBhZ2UvRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5
czo6aW5hY3RpdmVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjphY3RpdmVJbkZvcmVncm91bmRUYWJLZXkpOgorICAgICAgICAoV2ViQ29yZTo6RGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjphY3RpdmVJbkJhY2tncm91bmRUYWJPbmx5S2V5KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6c3RhdGVLZXkpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp3ZWJHTEtleSk6CisgICAgICAgICog
cGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAgICogcGFnZS9QYWdlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjp3ZWJHTFN0YXRlVHJhY2tlcik6CisgICAgICAgICogcGFn
ZS9QYWdlQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5oOgorICAgICAgICAqIHBsYXRmb3JtL1dlYkdMU3RhdGVUcmFja2VyLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RBdHRy
aWJ1dGVzLmguCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFN0YXRlVHJhY2tlcjo6V2ViR0xTdGF0
ZVRyYWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6bV9zdGF0ZUNoYW5nZUhhbmRsZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xTdGF0ZVRyYWNrZXI6OnVwZGF0ZVdlYkdMU3RhdGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL1dlYkdMU3RhdGVUcmFja2VyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5o
OgorCiAyMDE3LTAxLTEzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAg
ICAgICAgIEF2b2lkIG51bGxwdHIgZnJhbWUgZGVyZWZlcmVuY2Ugd2hlbiBzY3JvbGxUbyBpcyBj
YWxsZWQgb24gYSBkaXNjb25uZWN0ZWQgRE9NV2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2YxMTAyNGQ4
MDdiYTM2ZTdkNDNlZDFhMTkyZTk2MGZlYjc3YjJhOS4uYTZjMDkzZThlZGViYmI0NTgwMjczYjY2
M2IwYjQ3NzhkOTg1OGExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE3LTAxLTA5
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gQWRkIGRp
YWdub3N0aWMgbG9nZ2luZyB0byBtZWFzdXJlIFdlYkdMIHVzYWdlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY3MzAKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzI5ODgzNDY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4u
CisKKyAgICAgICAgQWRkIGRpYWdub3N0aWMgbG9nZ2luZyB0byBtZWFzdXJlIGhpZ2ggcGVyZm9y
bWFuY2UgV2ViR0wgdXNhZ2UuIFdlIHJlcG9ydAorICAgICAgICBhdCByZWd1bGFyIGludGVydmFs
cyBpbiB3aGljaCBXZWJHTCBzdGF0ZSBTYWZhcmkgaXM6CisgICAgICAgIC0gSW5hY3RpdmUKKyAg
ICAgICAgLSBBY3RpdmVJbkZvcmVncm91bmRUYWIKKyAgICAgICAgLSBBY3RpdmVJbkJhY2tncm91
bmRUYWJPbmx5CisKKyAgICAgICAgVGhpcyBzaG91bGQgZ2l2ZSB1cyBhbiBlc3RpbWF0ZSBvZjoK
KyAgICAgICAgLSBXaGF0ICUgb2YgdGhlIHRpbWUgaXMgU2FmYXJpIHVzaW5nIGhpZ2ggcGVyZm9y
bWFuY2UgZ3JhcGhpY3MKKyAgICAgICAgLSBXaGF0ICUgb2YgdGhpcyB0aW1lIGlzIG9ubHkgZHVl
IHRvIGJhY2tncm91bmQgdGFicworCisgICAgICAgICogVUlQcm9jZXNzL0hpZ2hQZXJmb3JtYW5j
ZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkhpZ2hQ
ZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyOjpIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1Vz
YWdlU2FtcGxlcik6CisgICAgICAgIChXZWJLaXQ6OkhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNh
Z2VTYW1wbGVyOjp0aW1lckZpcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSGlnaFBlcmZvcm1h
bmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLmguCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnNldElzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6aXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1faGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NV
c2FnZVNhbXBsZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAg
ICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fdXNlckludGVy
ZmFjZUxheW91dERpcmVjdGlvbik6CisKIDIwMTctMDEtMTMgIE1hdHQgUmFqY2EgIDxtcmFqY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIERlZmVyIHVzZSBvZiBhdXRvcGxheSBoZXVyaXN0aWNzIHRv
IGNsaWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMzgzYjc5MzZlYjRlYTRkMTk5Y2Q5NDQ1
NGRmYTdmNjQ4ZTcxYjE1ZC4uZjU2ZDc0NjA1OGU0MGM3NzY5NDQxNmJjZDM1ZGRmYmIxZjM0ZDY0
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxMDcsNiArMjEwNyw3IEBAIHNldChXZWJDb3Jl
X1NPVVJDRVMKICAgICBwbGF0Zm9ybS9VVUlELmNwcAogICAgIHBsYXRmb3JtL1VzZXJBY3Rpdml0
eS5jcHAKICAgICBwbGF0Zm9ybS9XZWJDb3JlQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCisgICAgcGxh
dGZvcm0vV2ViR0xTdGF0ZVRyYWNrZXIuY3BwCiAgICAgcGxhdGZvcm0vV2lkZ2V0LmNwcAogCiAg
ICAgcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MmUyNTkxNWM5ODgyNDg5
NmQ2ZjdkM2M2YjI4NzQxNjFlZWY4OWY1Li44MTNiZjMxNDIwNDc5ZTYzZTg2NDI2OWYxNzA3Y2Q2
YzEzZDE1MzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0zMDI0LDYgKzMwMjQsOCBAQAogCQk4MzhFRjUzODFEQzE0OUUyMDA4
RjBDMzkgLyogSURCVHJhbnNhY3Rpb25Nb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MzhFRjUzNjFEQzE0OURBMDA4RjBDMzkgLyogSURCVHJhbnNh
Y3Rpb25Nb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJODM4RUY1M0IxREMxNEE3QzAwOEYwQzM5IC8qIEpTSURCVHJhbnNhY3Rpb25Nb2RlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOEVGNTM5
MURDMTRBNzUwMDhGMEMzOSAvKiBKU0lEQlRyYW5zYWN0aW9uTW9kZS5jcHAgKi87IH07CiAJCTgz
OEVGNTNDMURDMTRBN0MwMDhGMEMzOSAvKiBKU0lEQlRyYW5zYWN0aW9uTW9kZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4RUY1M0ExREMxNEE3NTAw
OEYwQzM5IC8qIEpTSURCVHJhbnNhY3Rpb25Nb2RlLmggKi87IH07CisJCTgzOUEyRjJEMUUyMDRB
NzEwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMkYyQjFFMjA0QTZEMDAzOTA1N0UgLyogV2Vi
R0xTdGF0ZVRyYWNrZXIuY3BwICovOyB9OworCQk4MzlBMkYyRTFFMjA0QTcxMDAzOTA1N0UgLyog
V2ViR0xTdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzOUEyRjJDMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzOUFB
RkVDMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBQUZFQTFBMEMwQzhEMDA2MDVGOTkg
LyogSFRNTFdCUkVsZW1lbnQuY3BwICovOyB9OwogCQk4MzlBQUZFRDFBMEMwQzhEMDA2MDVGOTkg
LyogSFRNTFdCUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5oICov
OyB9OwogCQk4M0E0QTlGOTFDRTdGRDgxMDA3MDlCMDAgLyogSlNYTUxEb2N1bWVudEN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0E0QTlG
ODFDRTdGRDdFMDA3MDlCMDAgLyogSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAgKi87IH07CkBAIC0x
MDU0MCw2ICsxMDU0Miw4IEBACiAJCTgzOEVGNTM3MURDMTQ5REEwMDhGMEMzOSAvKiBJREJUcmFu
c2FjdGlvbk1vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IElEQlRyYW5zYWN0aW9uTW9k
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOEVGNTM5MURDMTRBNzUwMDhG
MEMzOSAvKiBKU0lEQlRyYW5zYWN0aW9uTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0lEQlRyYW5zYWN0aW9uTW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzOEVGNTNBMURDMTRBNzUwMDhGMEMzOSAvKiBKU0lEQlRyYW5zYWN0aW9u
TW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0lEQlRyYW5zYWN0aW9u
TW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzlBMkYyQjFFMjA0QTZEMDAz
OTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViR0xTdGF0ZVRyYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4MzlBMkYyQzFFMjA0QTZEMDAzOTA1N0UgLyogV2ViR0xTdGF0ZVRyYWNrZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xTdGF0ZVRyYWNrZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5QUFGRUExQTBDMEM4RDAwNjA1Rjk5IC8qIEhU
TUxXQlJFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhU
TUxXQlJFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5QUFGRUIx
QTBDMEM4RDAwNjA1Rjk5IC8qIEhUTUxXQlJFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhUTUxXQlJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzQTRBOUY4MUNFN0ZEN0UwMDcwOUIwMCAvKiBKU1hNTERvY3VtZW50Q3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTWE1MRG9jdW1lbnRDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI2NjksNiArMjI2NzMsOCBAQAog
CQkJCTlBMTE0MjAzMTgzMkQxMzQwMDBCQjhBRCAvKiBWYWx1ZVRvU3RyaW5nLmggKi8sCiAJCQkJ
NTE1Rjc5NTExQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENvcGllci5jcHAg
Ki8sCiAJCQkJNTE1Rjc5NTIxQ0ZDQTNDNzAwQ0NFRDkzIC8qIFdlYkNvcmVDcm9zc1RocmVhZENv
cGllci5oICovLAorCQkJCTgzOUEyRjJCMUUyMDRBNkQwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJh
Y2tlci5jcHAgKi8sCisJCQkJODM5QTJGMkMxRTIwNEE2RDAwMzkwNTdFIC8qIFdlYkdMU3RhdGVU
cmFja2VyLmggKi8sCiAJCQkJOTM4MEY0NzEwOUExMUFCNDAwMUZEQjM0IC8qIFdpZGdldC5jcHAg
Ki8sCiAJCQkJOTM4MEY0NzIwOUExMUFCNDAwMUZEQjM0IC8qIFdpZGdldC5oICovLAogCQkJCUUx
RTFCRUZGMTE1RkY2RkIwMDZGNTJDQSAvKiBXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oICovLApAQCAt
MjU0ODksNiArMjU0OTUsNyBAQAogCQkJCTBGNDcxMEFGMURCNTZBRkMwMDJEQ0VDMyAvKiBET01S
ZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjQ3MTBCMTFEQjU2QUZDMDAyRENFQzMgLyogRE9N
UmVjdEluaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNDcxMEIzMURCNTZBRkMwMDJEQ0VDMyAv
KiBET01SZWN0UmVhZE9ubHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzOUEyRjJFMUUyMDRBNzEw
MDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1QTg2
ODUwQzMzNjc2MDAwRUVBNjQ5IC8qIERPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QzU0NDI3NEIxMUE1N0U3QTAwNjNBNzQ5IC8qIERPTVN0cmluZ0xpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDNjQ2NDBBMTFEN0YzMDQwMDY0NTVCMCAvKiBET01TdHJpbmdNYXAuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjk0NTgsNiArMjk0NjUsNyBAQAogCQkJCTY1QkYwMjJFMDk3NDgxNjMwMEM0
MzE5NiAvKiBGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzRBODYyMjE0QjdBREJCMDAz
RkRDNzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZFRDEzRDNEMENFQTkzNkEwMEQ4OTQ2NiAvKiBGcmFtZUlPUy5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTgzOUEyRjJEMUUyMDRBNzEwMDM5MDU3RSAvKiBXZWJHTFN0YXRlVHJhY2tlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5MzJFMTYwOTBBRjU3ODM0MDAyNUY0MDggLyogRnJhbWVMb2FkZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDAwMEVCQTIxMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1l
TG9hZGVyU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2QkE3NjZFMTY2NDI3
QTgwMDVCRTVEMSAvKiBGcmFtZUxvYWRSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmNwcAppbmRleCA0MWM3YWMyMTE4YjhmMDIzNzJmOTc4MmQxZDMzM2NhYjVlMzE0NDNlLi43
MzFlYzcyOGNlOWI2MTQxNDlkZDQzOTk0YTViODIxOGVhY2ZiYzJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNw
cApAQCAtMzk5LDcgKzM5OSw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoSFRNCiAgICAgaWYgKGZy
YW1lLT5zZXR0aW5ncygpLmZvcmNlU29mdHdhcmVXZWJHTFJlbmRlcmluZygpKQogICAgICAgICBh
dHRyaWJ1dGVzLmZvcmNlU29mdHdhcmVSZW5kZXJlciA9IHRydWU7CiAKLSAgICBpZiAoIWF0dHJp
YnV0ZXMucHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSAmJiBmcmFtZS0+c2V0dGluZ3Mo
KS5wcmVmZXJMb3dQb3dlcldlYkdMUmVuZGVyaW5nKCkpCisgICAgYXR0cmlidXRlcy5pbml0aWFs
UHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSA9IGF0dHJpYnV0ZXMucHJlZmVyTG93UG93
ZXJUb0hpZ2hQZXJmb3JtYW5jZTsKKyAgICBpZiAoZnJhbWUtPnNldHRpbmdzKCkucHJlZmVyTG93
UG93ZXJXZWJHTFJlbmRlcmluZygpKQogICAgICAgICBhdHRyaWJ1dGVzLnByZWZlckxvd1Bvd2Vy
VG9IaWdoUGVyZm9ybWFuY2UgPSB0cnVlOwogCiAgICAgaWYgKHBhZ2UpCkBAIC00NjEsNiArNDYy
LDcgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZShIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2EKICAgICAsIG1fbnVtR0xFcnJvcnNUb0NvbnNv
bGVBbGxvd2VkKG1heEdMRXJyb3JzQWxsb3dlZFRvQ29uc29sZSkKICAgICAsIG1faXNQZW5kaW5n
UG9saWN5UmVzb2x1dGlvbih0cnVlKQogeworICAgIHJlZ2lzdGVyV2l0aFdlYkdMU3RhdGVUcmFj
a2VyKCk7CiB9CiAKIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UoSFRNTENhbnZhc0VsZW1lbnQmIHBhc3NlZENhbnZhcywgUmVmPEdyYXBoaWNzQ29u
dGV4dDNEPiYmIGNvbnRleHQsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKQEAg
LTQ4Miw2ICs0ODQsMjAgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZShIVE1MQ2FudmFzRWxlbWVudCYgcGFzc2VkQ2EKIAogICAgIHNldHVwRmxh
Z3MoKTsKICAgICBpbml0aWFsaXplTmV3Q29udGV4dCgpOworICAgIHJlZ2lzdGVyV2l0aFdlYkdM
U3RhdGVUcmFja2VyKCk7Cit9CisKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cmVn
aXN0ZXJXaXRoV2ViR0xTdGF0ZVRyYWNrZXIoKQoreworICAgIGF1dG8qIHBhZ2UgPSBjYW52YXMo
KS5kb2N1bWVudCgpLnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8qIHRyYWNrZXIgPSBwYWdlLT53ZWJHTFN0YXRlVHJhY2tlcigpOworICAgIGlmICgh
dHJhY2tlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV90cmFja2VyVG9rZW4gPSB0cmFja2Vy
LT50b2tlbihtX2F0dHJpYnV0ZXMuaW5pdGlhbFByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFu
Y2UpOwogfQogCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRpYWxpemVOZXdD
b250ZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCA0MDQxNzBhY2QyZDkwYjk3ODgzMjg4NjIxN2I4YzIw
ZTVlZmZjMjAxLi44ZTdmMjg1OTZiMjlhZDA3YmE5YjdlY2M2M2FmZWI0YTVmMGYzN2NiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5o
IgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyYnVmZmVy
LmgiCisjaW5jbHVkZSAiV2ViR0xTdGF0ZVRyYWNrZXIuaCIKICNpbmNsdWRlICJXZWJHTFRleHR1
cmUuaCIKICNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgiCiAjaW5jbHVkZSA8
bWVtb3J5PgpAQCAtODI1LDYgKzgyNiw5IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBi
b29sIHZhbGlkYXRlQXJyYXlCdWZmZXJUeXBlKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgR0Mz
RGVudW0gdHlwZSwgc3RkOjpvcHRpb25hbDxKU0M6OlR5cGVkQXJyYXlUeXBlPik7CisgICAgdm9p
ZCByZWdpc3RlcldpdGhXZWJHTFN0YXRlVHJhY2tlcigpOworCisgICAgV2ViR0xTdGF0ZVRyYWNr
ZXI6OlRva2VuIG1fdHJhY2tlclRva2VuOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwCmluZGV4IDBm
YTI2NjQ4Yjc4OTc2M2I4OGFkMWY2YzNjNGNjMmU3YWM3ZmRkYzEuLmJhNTVlYjk5YmRkZWVhMTk5
YTgxN2UxMzk2ZTk1ZWNiMjczYjVlMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdu
b3N0aWNMb2dnaW5nS2V5cy5jcHAKQEAgLTI0Myw2ICsyNDMsMTEgQEAgU3RyaW5nIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6aW5NZW1vcnlDYWNoZUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bCgiaW5NZW1vcnlDYWNoZSIpOwogfQogCitTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpp
bmFjdGl2ZUtleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW5hY3RpdmUiKTsKK30K
KwogU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aW50ZXJuYWxFcnJvcktleSgpCiB7CiAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW50ZXJuYWxFcnJvciIpOwpAQCAtMzIzLDYgKzMyOCwx
NiBAQCBTdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpkZWx0YUtleSgpCiAgICAgcmV0dXJu
IEFTQ0lJTGl0ZXJhbCgiZGVsdGEiKTsKIH0KIAorU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5
czo6YWN0aXZlSW5Gb3JlZ3JvdW5kVGFiS2V5KCkKK3sKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFs
KCJhY3RpdmVJbkZvcmVncm91bmRUYWIiKTsKK30KKworU3RyaW5nIERpYWdub3N0aWNMb2dnaW5n
S2V5czo6YWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25seUtleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJ
TGl0ZXJhbCgiYWN0aXZlSW5CYWNrZ3JvdW5kVGFiT25seSIpOworfQorCiBTdHJpbmcgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjphcHBsaWNhdGlvbkNhY2hlS2V5KCkKIHsKICAgICByZXR1cm4gQVND
SUlMaXRlcmFsKCJhcHBsaWNhdGlvbkNhY2hlIik7CkBAIC00NDgsNiArNDYzLDExIEBAIFN0cmlu
ZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnNvdXJjZUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgic291cmNlIik7CiB9CiAKK1N0cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnN0YXRl
S2V5KCkKK3sKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzdGF0ZSIpOworfQorCiBTdHJpbmcg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzdHJlYW1pbmdNZWRpYSgpCiB7CiAgICAgcmV0dXJuIEFT
Q0lJTGl0ZXJhbCgic3RyZWFtaW5nTWVkaWEiKTsKQEAgLTYyOCw1ICs2NDgsMTAgQEAgU3RyaW5n
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm90SW5DYWNoZUtleSgpCiAgICAgcmV0dXJuIEFTQ0lJ
TGl0ZXJhbCgibm90SW5DYWNoZSIpOwogfQogCitTdHJpbmcgV2ViQ29yZTo6RGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjp3ZWJHTEtleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgid2ViR0wi
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
aWFnbm9zdGljTG9nZ2luZ0tleXMuaAppbmRleCBjNzUzMWM2ZGMyNjU4MDg5Mjg3ODRkM2IwM2I0
ZWM2ODkwM2EwMjM4Li5kYTJkODBmM2QxMWU2OWYxM2E2YzJmMzdlMDExMzdiZDlkYmYzNTM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgKQEAgLTMxLDYg
KzMxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEaWFnbm9zdGljTG9nZ2luZ0tl
eXMgewogcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgYWN0aXZlSW5G
b3JlZ3JvdW5kVGFiS2V5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBhY3Rp
dmVJbkJhY2tncm91bmRUYWJPbmx5S2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBhcHBsaWNhdGlv
bkNhY2hlS2V5KCk7CiAgICAgc3RhdGljIFN0cmluZyBhdWRpb0tleSgpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBTdHJpbmcgYmFja05hdmlnYXRpb25LZXkoKTsKQEAgLTU3LDYgKzU5LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgaHR0cHNOb1N0b3JlS2V5KCk7CiAgICAgc3Rh
dGljIFN0cmluZyBpbWFnZUtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgaW5NZW1vcnlDYWNoZUtl
eSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgaW5hY3RpdmVLZXkoKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIGludGVybmFsRXJyb3JLZXkoKTsKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIGludmFsaWRTZXNzaW9uSURLZXkoKTsKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIGlzQXR0YWNobWVudEtleSgpOwpAQCAtMTIwLDYg
KzEyMyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3RyaW5nIHNhbWVMb2FkS2V5KCk7CiAgICAg
c3RhdGljIFN0cmluZyBzY3JpcHRLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHNvdXJjZUtleSgp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgc3RhdGVLZXkoKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIHN0cmVhbWluZ01lZGlhKCk7CiAgICAgc3RhdGljIFN0
cmluZyBzdHlsZVNoZWV0S2V5KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBz
dWNjZXNzZnVsU3BlY3VsYXRpdmVXYXJtdXBXaXRoUmV2YWxpZGF0aW9uS2V5KCk7CkBAIC0xNDcs
NiArMTUxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgdmlkZW9LZXkoKTsKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgU3RyaW5nIHdhc3RlZFNwZWN1bGF0aXZlV2FybXVwV2l0aFJl
dmFsaWRhdGlvbktleSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgd2FzdGVk
U3BlY3VsYXRpdmVXYXJtdXBXaXRob3V0UmV2YWxpZGF0aW9uS2V5KCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFN0cmluZyB3ZWJHTEtleSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBTdHJpbmcgd2ViVmlld0tleSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcg
em9vbWVkS2V5KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGM3OTE5NGFjY2VlOWFjMzg0NTJk
MmY4MGEwNjhlOWY1NjM0MzZmNmYuLmRhZjg4ZmI5ZjNmMzc4ZTA5MTk0NjZkNmZmNTAwNWRhYzQz
Y2VjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtOTgsNiArOTgsNyBAQAogI2luY2x1ZGUgIlZp
c2l0ZWRMaW5rU3RhdGUuaCIKICNpbmNsdWRlICJWaXNpdGVkTGlua1N0b3JlLmgiCiAjaW5jbHVk
ZSAiVm9pZENhbGxiYWNrLmgiCisjaW5jbHVkZSAiV2ViR0xTdGF0ZVRyYWNrZXIuaCIKICNpbmNs
dWRlICJXaWRnZXQuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CkBAIC0xOTcsNiArMTk4LDcgQEAgUGFnZTo6UGFn
ZShQYWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uKQogICAgICwgbV9wbHVnSW5D
bGllbnQocGFnZUNvbmZpZ3VyYXRpb24ucGx1Z0luQ2xpZW50KQogICAgICwgbV92YWxpZGF0aW9u
TWVzc2FnZUNsaWVudChXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnZhbGlkYXRpb25NZXNzYWdl
Q2xpZW50KSkKICAgICAsIG1fZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV1RGTW92ZShwYWdlQ29u
ZmlndXJhdGlvbi5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCkpCisgICAgLCBtX3dlYkdMU3RhdGVU
cmFja2VyKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24ud2ViR0xTdGF0ZVRyYWNrZXIpKQogICAg
ICwgbV9zdWJmcmFtZUNvdW50KDApCiAgICAgLCBtX29wZW5lZEJ5RE9NKGZhbHNlKQogICAgICwg
bV90YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHModHJ1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMTgx
NjRkMzE1ZjEyMjgxMDM1NjQ0NWJiZjY0ZTZhODFjODAwM2NkNy4uYmUzNzRmYWI4ZDUxNTBkZGQw
NTRiMThkMDRmZjQ1ZmU0MjUwYTBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTEzMCw2ICsxMzAsNyBA
QCBjbGFzcyBVc2VyQ29udGVudFByb3ZpZGVyOwogY2xhc3MgVmFsaWRhdGlvbk1lc3NhZ2VDbGll
bnQ7CiBjbGFzcyBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXI7CiBjbGFzcyBWaXNpdGVkTGlu
a1N0b3JlOworY2xhc3MgV2ViR0xTdGF0ZVRyYWNrZXI7CiAKIHR5cGVkZWYgdWludDY0X3QgTGlu
a0hhc2g7CiAKQEAgLTU1Miw2ICs1NTMsNyBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxF
dmVudFRocm90dGxpbmdCZWhhdmlvcj4gZXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVycmlkZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVycmlkZTsgfQogICAg
IHZvaWQgc2V0RXZlbnRUaHJvdHRsaW5nQmVoYXZpb3JPdmVycmlkZShzdGQ6Om9wdGlvbmFsPEV2
ZW50VGhyb3R0bGluZ0JlaGF2aW9yPiB0aHJvdHRsaW5nKSB7IG1fZXZlbnRUaHJvdHRsaW5nQmVo
YXZpb3JPdmVycmlkZSA9IHRocm90dGxpbmc7IH0KIAorICAgIFdlYkdMU3RhdGVUcmFja2VyKiB3
ZWJHTFN0YXRlVHJhY2tlcigpIGNvbnN0IHsgcmV0dXJuIG1fd2ViR0xTdGF0ZVRyYWNrZXIuZ2V0
KCk7IH0KIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbml0R3JvdXAoKTsKIApA
QCAtNjE3LDYgKzYxOSw3IEBAIHByaXZhdGU6CiAgICAgUGx1Z0luQ2xpZW50KiBtX3BsdWdJbkNs
aWVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQ+IG1fdmFs
aWRhdGlvbk1lc3NhZ2VDbGllbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPERpYWdub3N0aWNMb2dn
aW5nQ2xpZW50PiBtX2RpYWdub3N0aWNMb2dnaW5nQ2xpZW50OworICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJHTFN0YXRlVHJhY2tlcj4gbV93ZWJHTFN0YXRlVHJhY2tlcjsKIAogICAgIGludCBtX3N1
YmZyYW1lQ291bnQ7CiAgICAgU3RyaW5nIG1fZ3JvdXBOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCBiMTJkYjRlNjBhNjU4NDRlOWI0NThkNGYwNjVm
Y2Q1ZTAxYTY5NjUwLi45ZGJmN2RmMjc0MDgxODc2NjI2NTYxZWNkY2ZhOTVjZmMyMmZlMDZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtMzcsNiArMzcs
NyBAQAogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlZhbGlk
YXRpb25NZXNzYWdlQ2xpZW50LmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtTdG9yZS5oIgorI2lu
Y2x1ZGUgIldlYkdMU3RhdGVUcmFja2VyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCmluZGV4IDhjNzFmODE3N2ZmZTk2Mzc2
YzRhOWExYjZiZjllMzkxMTk5YWFkMDYuLjRkODExMzZlNTMwZmM1MWZmZmUxZDE5YWI1NmRhNWQw
NDk2MzE0MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTUw
LDYgKzUwLDcgQEAgY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwogY2xhc3MgVXNlckNv
bnRlbnRQcm92aWRlcjsKIGNsYXNzIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50OwogY2xhc3MgVmlz
aXRlZExpbmtTdG9yZTsKK2NsYXNzIFdlYkdMU3RhdGVUcmFja2VyOwogCiAjaWYgRU5BQkxFKENP
TlRFWFRfTUVOVVMpCiBjbGFzcyBDb250ZXh0TWVudUNsaWVudDsKQEAgLTgwLDYgKzgxLDcgQEAg
cHVibGljOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxWYWxpZGF0aW9uTWVzc2FnZUNsaWVudD4gdmFs
aWRhdGlvbk1lc3NhZ2VDbGllbnQ7CiAgICAgRnJhbWVMb2FkZXJDbGllbnQqIGxvYWRlckNsaWVu
dEZvck1haW5GcmFtZSB7IG51bGxwdHIgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQ+IGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50OworICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJHTFN0YXRlVHJhY2tlcj4gd2ViR0xTdGF0ZVRyYWNrZXI7CiAKICAgICBSZWZQdHI8
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U+IGFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOwogICAgIFJl
ZlB0cjxEYXRhYmFzZVByb3ZpZGVyPiBkYXRhYmFzZVByb3ZpZGVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2ViR0xTdGF0ZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vV2ViR0xTdGF0ZVRyYWNrZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkNWZjMDk5YTdj
Zjk4YjBjM2E5MmIzZTU4YWI4YTA1MWIwMTBlYmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9XZWJHTFN0YXRlVHJhY2tlci5jcHAKQEAgLTAsMCArMSw1MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJHTFN0YXRlVHJh
Y2tlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dlYkdMU3RhdGVUcmFja2VyOjpXZWJH
TFN0YXRlVHJhY2tlcihTdGF0ZUNoYW5nZUhhbmRsZXImJiBoYW5kbGVyKQorICAgIDogbV93ZWJH
TENvbnRleHRDb3VudGVyKFt0aGlzXShSZWZDb3VudGVyRXZlbnQpIHsgdXBkYXRlV2ViR0xTdGF0
ZSgpOyB9KQorICAgICwgbV9zdGF0ZUNoYW5nZUhhbmRsZXIoV1RGTW92ZShoYW5kbGVyKSkKK3sK
K30KKworYXV0byBXZWJHTFN0YXRlVHJhY2tlcjo6dG9rZW4oYm9vbCBwcmVmZXJMb3dQb3dlcikg
LT4gVG9rZW4KK3sKKyAgICAvLyBXZSBvbmx5IHRyYWNrIGhpZ2ggcGVyZm9ybWFuY2UgV2ViR0wg
Y29udGV4dHMgYXQgdGhlIG1vbWVudC4KKyAgICBpZiAocHJlZmVyTG93UG93ZXIpCisgICAgICAg
IHJldHVybiB7IH07CisgICAgcmV0dXJuIG1fd2ViR0xDb250ZXh0Q291bnRlci5jb3VudCgpOwor
fQorCit2b2lkIFdlYkdMU3RhdGVUcmFja2VyOjp1cGRhdGVXZWJHTFN0YXRlKCkKK3sKKyAgICBp
ZiAoIW1fd2ViR0xDb250ZXh0Q291bnRlci52YWx1ZSgpKQorICAgICAgICBtX3N0YXRlQ2hhbmdl
SGFuZGxlcihmYWxzZSk7CisgICAgZWxzZSBpZiAobV93ZWJHTENvbnRleHRDb3VudGVyLnZhbHVl
KCkgPT0gMSkKKyAgICAgICAgbV9zdGF0ZUNoYW5nZUhhbmRsZXIodHJ1ZSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dl
YkdMU3RhdGVUcmFja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XZWJHTFN0YXRlVHJh
Y2tlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjYxMDUxZjU2NDI0NjM5M2ZkYjg0NTc4ZWUyMzhkYWFmZGU0ZDVi
NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XZWJHTFN0YXRl
VHJhY2tlci5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViR0xTdGF0ZVRyYWNrZXIgeworcHVibGlj
OgorICAgIHVzaW5nIFN0YXRlQ2hhbmdlSGFuZGxlciA9IEZ1bmN0aW9uPHZvaWQoYm9vbCBpc1Vz
aW5nV2ViR0wpPjsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBXZWJHTFN0YXRlVHJhY2tl
cihTdGF0ZUNoYW5nZUhhbmRsZXImJik7CisKKyAgICBlbnVtIFdlYkdMQ29udGV4dENvdW50ZXJU
eXBlIHsgfTsKKyAgICB1c2luZyBXZWJHTENvbnRleHRDb3VudGVyID0gUmVmQ291bnRlcjxXZWJH
TENvbnRleHRDb3VudGVyVHlwZT47CisgICAgdXNpbmcgVG9rZW4gPSBXZWJHTENvbnRleHRDb3Vu
dGVyOjpUb2tlbjsKKworICAgIFRva2VuIHRva2VuKGJvb2wgcHJlZmVyTG93UG93ZXIpOworCitw
cml2YXRlOgorICAgIHZvaWQgdXBkYXRlV2ViR0xTdGF0ZSgpOworCisgICAgV2ViR0xDb250ZXh0
Q291bnRlciBtX3dlYkdMQ29udGV4dENvdW50ZXI7CisgICAgU3RhdGVDaGFuZ2VIYW5kbGVyIG1f
c3RhdGVDaGFuZ2VIYW5kbGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RB
dHRyaWJ1dGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQzREF0dHJpYnV0ZXMuaAppbmRleCBiOWEyNjg2NTM5OGI0MjAyNWNmYThlZGE5ZjIwODYy
ZjNlZTcxNTU0Li5mOWYyMTYxYTQyMThhYmZiOWFkMTY1NTlmZWI1OWYwNDU4NmViOWYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
REF0dHJpYnV0ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzREF0dHJpYnV0ZXMuaApAQCAtNDQsNiArNDQsNyBAQCBzdHJ1Y3QgR3JhcGhp
Y3NDb250ZXh0M0RBdHRyaWJ1dGVzIHsKICAgICBib29sIHVzZUdMRVMzIHsgZmFsc2UgfTsKICAg
ICBib29sIG5vRXh0ZW5zaW9ucyB7IGZhbHNlIH07CiAgICAgZmxvYXQgZGV2aWNlUGl4ZWxSYXRp
byB7IDEgfTsKKyAgICBib29sIGluaXRpYWxQcmVmZXJMb3dQb3dlclRvSGlnaFBlcmZvcm1hbmNl
IHsgZmFsc2UgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9IaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU2OWJjYzVjOGFmZWU2MjQzNGY5ZmM3NmM5NWUxYWU1ZTdmZWI3OTYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNlR3JhcGhp
Y3NVc2FnZVNhbXBsZXIuY3BwCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBs
ZXIuaCIKKworI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9E
aWFnbm9zdGljTG9nZ2luZ0tleXMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCitzdGF0aWMgY29uc3Qgc3RkOjpjaHJvbm86Om1pbnV0ZXMgc2Ft
cGxpbmdJbnRlcnZhbCB7IDEwIH07CisKK0hpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1w
bGVyOjpIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlcihXZWJQcm9jZXNzUG9vbCYg
d2ViUHJvY2Vzc1Bvb2wpCisgICAgOiBtX3dlYlByb2Nlc3NQb29sKHdlYlByb2Nlc3NQb29sKQor
ICAgICwgbV90aW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZIaWdoUGVyZm9ybWFuY2VHcmFw
aGljc1VzYWdlU2FtcGxlcjo6dGltZXJGaXJlZCkKK3sKKyAgICBtX3RpbWVyLnN0YXJ0UmVwZWF0
aW5nKHNhbXBsaW5nSW50ZXJ2YWwpOworfQorCit2b2lkIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNz
VXNhZ2VTYW1wbGVyOjp0aW1lckZpcmVkKCkKK3sKKyAgICBib29sIGlzVXNpbmdIaWdoUGVyZm9y
bWFuY2VXZWJHTCA9IGZhbHNlOworICAgIGJvb2wgaXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdM
SW5WaXNpYmxlVmlldyA9IGZhbHNlOworCisgICAgV2ViUGFnZVByb3h5KiBmaXJzdFBhZ2UgPSBu
dWxscHRyOworICAgIGZvciAoYXV0byYgd2ViUHJvY2VzcyA6IG1fd2ViUHJvY2Vzc1Bvb2wucHJv
Y2Vzc2VzKCkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBwYWdlIDogd2ViUHJvY2Vzcy0+cGFnZXMo
KSkgeworICAgICAgICAgICAgaWYgKCFmaXJzdFBhZ2UpCisgICAgICAgICAgICAgICAgZmlyc3RQ
YWdlID0gcGFnZTsKKworICAgICAgICAgICAgaWYgKHBhZ2UtPmlzVXNpbmdIaWdoUGVyZm9ybWFu
Y2VXZWJHTCgpKSB7CisgICAgICAgICAgICAgICAgaXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdM
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAocGFnZS0+aXNWaWV3VmlzaWJsZSgpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTEluVmlzaWJsZVZp
ZXcgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIWZpcnN0UGFnZSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIHN0YXRlID0gRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjppbmFjdGl2ZUtleSgpOworICAgIGlmIChpc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0xJ
blZpc2libGVWaWV3KQorICAgICAgICBzdGF0ZSA9IERpYWdub3N0aWNMb2dnaW5nS2V5czo6YWN0
aXZlSW5Gb3JlZ3JvdW5kVGFiS2V5KCk7CisgICAgZWxzZSBpZiAoaXNVc2luZ0hpZ2hQZXJmb3Jt
YW5jZVdlYkdMKQorICAgICAgICBzdGF0ZSA9IERpYWdub3N0aWNMb2dnaW5nS2V5czo6YWN0aXZl
SW5CYWNrZ3JvdW5kVGFiT25seUtleSgpOworCisgICAgZmlyc3RQYWdlLT5sb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OndlYkdMS2V5KCksIERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6c3RhdGVLZXkoKSwgc3RhdGUsIGZhbHNlKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSGln
aFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9IaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdk
NTZiMGEyNDYzZGVkZjE2Njk1OGMyOGZmYjc1YWEwZTJjZTUxZjEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNh
bXBsZXIuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
UHJvY2Vzc1Bvb2w7CisKK2NsYXNzIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVy
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2Ft
cGxlcihXZWJQcm9jZXNzUG9vbCYpOworCitwcml2YXRlOgorICAgIHZvaWQgdGltZXJGaXJlZCgp
OworCisgICAgV2ViUHJvY2Vzc1Bvb2wmIG1fd2ViUHJvY2Vzc1Bvb2w7CisgICAgUnVuTG9vcDo6
VGltZXI8SGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXI+IG1fdGltZXI7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCAzMjc1ZjljYTI0MWNkNTVlMjQ1NjdiM2VjNDRiNzRhZTNjNDE0ZTQxLi43NThj
MjM5NTk4NTA1MjQzOTg2YzA3Mzc1MTQ5YzNlZWViMTM3Mjg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zNzgsNiArMzc4LDkgQEAgcHVibGljOgogICAgIGJv
b2wgdHJ5Q2xvc2UoKTsKICAgICBib29sIGlzQ2xvc2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0Ns
b3NlZDsgfQogCisgICAgdm9pZCBzZXRJc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0woYm9vbCB2
YWx1ZSkgeyBtX2lzVXNpbmdIaWdoUGVyZm9ybWFuY2VXZWJHTCA9IHZhbHVlOyB9CisgICAgYm9v
bCBpc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0woKSBjb25zdCB7IHJldHVybiBtX2lzVXNpbmdI
aWdoUGVyZm9ybWFuY2VXZWJHTDsgfQorCiAgICAgdm9pZCBjbG9zZVBhZ2UoYm9vbCBzdG9wUmVz
cG9uc2l2ZW5lc3NUaW1lcik7CiAKICAgICB2b2lkIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMo
TG9hZFBhcmFtZXRlcnMmKTsKQEAgLTE5NzMsNiArMTk3Niw4IEBAIHByaXZhdGU6CiAjaWYgRU5B
QkxFKERPV05MT0FEX0FUVFJJQlVURSkKICAgICBib29sIG1fc3luY05hdmlnYXRpb25BY3Rpb25I
YXNEb3dubG9hZEF0dHJpYnV0ZSB7IGZhbHNlIH07CiAjZW5kaWYKKworICAgIGJvb2wgbV9pc1Vz
aW5nSGlnaFBlcmZvcm1hbmNlV2ViR0wgeyBmYWxzZSB9OwogICAgICAgICAKICAgICBXZWFrUHRy
RmFjdG9yeTxXZWJQYWdlUHJveHk+IG1fd2Vha1B0ckZhY3Rvcnk7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNjIxMDJh
MTlkZGRhYmI2N2FkNTc4YjQ5NzdhZGQ5Y2U1OTcyNzI5MC4uNTI3Mjg3NTFmOTM5MjQ4YmE4Mzlh
NDM3NWM3MzdlYTIxOGUzYWQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC00ODUsNCArNDg1LDYgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKICAgICBEaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSgpCiAgICAgSGFu
ZGxlQWN0aXZlTm93UGxheWluZ1Nlc3Npb25JbmZvUmVzcG9uc2UoYm9vbCBoYXNBY3RpdmVTZXNz
aW9uLCBTdHJpbmcgdGl0bGUsIGRvdWJsZSBkdXJhdGlvbiwgZG91YmxlIGVsYXBzZWRUaW1lKQog
I2VuZGlmCisKKyAgICBTZXRJc1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0woYm9vbCBpc1VzaW5n
SGlnaFBlcmZvcm1hbmNlV2ViR0wpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAppbmRleCBhZWU5NTNmZGMxN2M2ZjdmMTc1ZDkwNzI3ZjkyMjY4MjM2ZTcz
ZmE2Li5iMGUwNTVhNmUxYWQxMzU1MzQyM2IyMGIzZmZiMTQxMzdkZWE2ZTE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiR2FtZXBhZERhdGEuaCIKKyNpbmNsdWRlICJIaWdoUGVyZm9ybWFu
Y2VHcmFwaGljc1VzYWdlU2FtcGxlci5oIgogI2luY2x1ZGUgIkxvZ0luaXRpYWxpemF0aW9uLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCkBAIC0xNjUsNiArMTY2LDkgQEAgV2ViUHJvY2Vz
c1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uJiBjb25m
aWd1cmF0aW9uKQogICAgICwgbV9tZW1vcnlTYW1wbGVyRW5hYmxlZChmYWxzZSkKICAgICAsIG1f
bWVtb3J5U2FtcGxlckludGVydmFsKDE0MDAuMCkKICAgICAsIG1fd2Vic2l0ZURhdGFTdG9yZSht
X2NvbmZpZ3VyYXRpb24tPnNob3VsZEhhdmVMZWdhY3lEYXRhU3RvcmUoKSA/IEFQSTo6V2Vic2l0
ZURhdGFTdG9yZTo6Y3JlYXRlKGxlZ2FjeVdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uKG1f
Y29uZmlndXJhdGlvbikpLnB0cigpIDogbnVsbHB0cikKKyNpZiBQTEFURk9STShNQUMpCisgICAg
LCBtX2hpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyKHN0ZDo6bWFrZV91bmlxdWU8
SGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXI+KCp0aGlzKSkKKyNlbmRpZgogICAg
ICwgbV9zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24oZmFsc2UpCiAgICAgLCBtX3Byb2Nl
c3NUZXJtaW5hdGlvbkVuYWJsZWQodHJ1ZSkKICAgICAsIG1fY2FuSGFuZGxlSFRUUFNTZXJ2ZXJU
cnVzdEV2YWx1YXRpb24odHJ1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKaW5kZXggNmY4OTk1YzI3NmQ1NjEyMWQwZDc4OGVhNWRkZDc5NWU3MTlkMjBmYi4uNGVk
MGM1OWI0NWM2ODQwOGIxZTRiY2UyYTEyZjViNGI5ZmQ2ZWNkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTc5LDYgKzc5LDcgQEAgY2xhc3MgUGFnZUNv
bmZpZ3VyYXRpb247CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRG93bmxvYWRQcm94eTsK
K2NsYXNzIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyOwogY2xhc3MgVUlHYW1l
cGFkOwogY2xhc3MgV2ViQXV0b21hdGlvblNlc3Npb247CiBjbGFzcyBXZWJDb250ZXh0U3VwcGxl
bWVudDsKQEAgLTUyMyw2ICs1MjQsOCBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxOU09iamVj
dD4gbV9hdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25Ob3RpZmljYXRpb25PYnNlcnZlcjsKICAg
ICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25Ob3RpZmlj
YXRpb25PYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q+IG1fYXV0b21hdGljRGFzaFN1
YnN0aXR1dGlvbk5vdGlmaWNhdGlvbk9ic2VydmVyOworCisgICAgc3RkOjp1bmlxdWVfcHRyPEhp
Z2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyPiBtX2hpZ2hQZXJmb3JtYW5jZUdyYXBo
aWNzVXNhZ2VTYW1wbGVyOwogI2VuZGlmCiAKICAgICBTdHJpbmcgbV9vdmVycmlkZUljb25EYXRh
YmFzZVBhdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMjYzNmY2N2U1MDk3MzIyMjVmMjRlM2I1NWU4ODU2NDRjZmVjZTA1My4u
YmJjZDc5NjFhZjRiMmU5OGVkZjc1OTdkNDNmNjJmZjAyOGQxNGNiNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI1Myw2ICsx
MjUzLDggQEAKIAkJODM5MTQ5NjUxQkVBODM4NTAwRDJEOTUzIC8qIE5ldHdvcmtMb2FkUGFyYW1l
dGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5
MTQ5NjMxQkVBODM4NTAwRDJEOTUzIC8qIE5ldHdvcmtMb2FkUGFyYW1ldGVycy5oICovOyB9Owog
CQk4Mzk5MDIwMjFCRTlBMDJCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTAxRkYxQkU5QTAxQjAwMEYz
NjUzIC8qIE5ldHdvcmtMb2FkLmNwcCAqLzsgfTsKIAkJODM5OTAyMDMxQkU5QTAyQjAwMEYzNjUz
IC8qIE5ldHdvcmtMb2FkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4Mzk5MDFGRTFCRTlBMDFCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuaCAqLzsgfTsK
KwkJODM5QTJGMzExRTIwNjc0NTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNh
Z2VTYW1wbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzOUEyRjJGMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1Vz
YWdlU2FtcGxlci5jcHAgKi87IH07CisJCTgzOUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdo
UGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QTJGMzAxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQ
ZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmggKi87IH07CiAJCTgzQkRDQ0I5MUFDNUZE
QjYwMDNGNjQ0MSAvKiBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQkRDQ0I4MUFDNUZEQjYwMDNGNjQ0MSAv
KiBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCAqLzsgfTsKIAkJODNCRkFDNDIxRDk2MTM3QzAw
NDMzNDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODNCRkFDNDAxRDk2MTM2MDAwNDMzNDkwIC8qIEJsb2JEb3du
bG9hZENsaWVudC5oICovOyB9OwogCQk4M0JGQUM0MzFEOTYxMzdDMDA0MzM0OTAgLyogQmxvYkRv
d25sb2FkQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzQkZBQzQxMUQ5NjEzNjAwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuY3Bw
ICovOyB9OwpAQCAtMzQwMSw2ICszNDAzLDggQEAKIAkJODM5MTQ5NjMxQkVBODM4NTAwRDJEOTUz
IC8qIE5ldHdvcmtMb2FkUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Mzk5MDFG
RTFCRTlBMDFCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gTmV0d29ya0xvYWQuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOTkwMUZGMUJFOUEwMUIwMDBG
MzY1MyAvKiBOZXR3b3JrTG9hZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBOZXR3b3JrTG9hZC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzOUEyRjJGMUUyMDY3MzkwMDM5MDU3
RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2Ft
cGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzOUEyRjMwMUUyMDY3Mzkw
MDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2Ft
cGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JEQ0NCODFBQzVGREI2MDAz
RjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODNCRkFDNDAxRDk2MTM2MDAwNDMzNDkwIC8qIEJsb2JEb3dubG9h
ZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCbG9iRG93bmxvYWRD
bGllbnQuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNCRkFDNDExRDk2MTM2MDAwNDMz
NDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBCbG9iRG93bmxvYWRDbGllbnQuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3Mv
RG93bmxvYWRzL0Jsb2JEb3dubG9hZENsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC02MjU3LDYgKzYyNjEsOCBAQAogCQkJCUJDMDZGNDQ4MTJEQkQxRjUwMDJENzhERSAv
KiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8sCiAJCQkJQkMw
NkY0MzkxMkRCQ0NGQjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94
eS5jcHAgKi8sCiAJCQkJQkMwNkY0MzgxMkRCQ0NGQjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5oICovLAorCQkJCTgzOUEyRjJGMUUyMDY3MzkwMDM5MDU3RSAv
KiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi8sCisJCQkJODM5QTJG
MzAxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVy
LmggKi8sCiAJCQkJMzE2MDdGMzgxOTYyNzAwMjAwOUI4N0RBIC8qIExlZ2FjeVNlc3Npb25TdGF0
ZUNvZGluZy5oICovLAogCQkJCUJDNkVEQUE1MTExMjcxQzYwMEU3Njc4QiAvKiBQYWdlQ2xpZW50
LmggKi8sCiAJCQkJMUFDNzUzNzkxODNBOUZEQTAwNzJDQjE1IC8qIFBhZ2VMb2FkU3RhdGUuY3Bw
ICovLApAQCAtNzg4NSw2ICs3ODkxLDcgQEAKIAkJCQkxQTZGQkQyODExRTY5QkMyMDBEQjEzNzEg
LyogTmV0c2NhcGVQbHVnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNEE5QzU2MTJCODE2Q0Yw
MDhGRTk4NCAvKiBOZXRzY2FwZVBsdWdpbk1vZHVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFB
NTg4OTIxMUVFNzA0MDAwNjFCODgyIC8qIE5ldHNjYXBlUGx1Z2luU3RyZWFtLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk4MzlBMkYzMjFFMjA2NzQ1MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3Jh
cGhpY3NVc2FnZVNhbXBsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNzk4QzdBMTZFNjgxODgw
MDI0MDEzOSAvKiBOZXR3b3JrQmxvYlJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQz
NkVDQzFBMEQwNDBCMDBFQUQyMDQgLyogTmV0d29ya0NhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFNDlENDBENzFBRDNGQjE3MDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuaCBp
biBIZWFkZXJzICovLApAQCAtOTM4MCw2ICs5Mzg3LDcgQEAKIAkJCQkxQTZGQkQyOTExRTY5QkMy
MDBEQjEzNzEgLyogTmV0c2NhcGVQbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFNUI3
RkIxMUU3QUVEMjAwQkE2NzY3IC8qIE5ldHNjYXBlUGx1Z2luTWFjLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUE0QTlDNTUxMkI4MTZDRjAwOEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9kdWxlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTgzOUEyRjMxMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVy
Zm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTRB
OUM5QTEyQjgyMUNEMDA4RkU5ODQgLyogTmV0c2NhcGVQbHVnaW5Nb2R1bGVNYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQkxQUE1ODg5MzExRUU3MDQwMDA2MUI4ODIgLyogTmV0c2NhcGVQbHVnaW5T
dHJlYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE3OThDNzkxNkU2ODE4ODAwMjQwMTM5IC8q
IE5ldHdvcmtCbG9iUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYjcyY2IzNWQwYWJhMWVmOTdh
ODQ0NmI0Njg5MzZiYWRkY2Q5ZmJkOC4uZTk0Zjg3YTlkZGY3OWFjMzQwZGZlMDE1ZGQ2YjVlMzJh
NGFlZGIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtMTc3LDYgKzE3Nyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVl
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlzaWJsZVBvc2l0aW9uLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9WaXNpYmxlVW5pdHMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkdMU3RhdGVUcmFja2Vy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9odG1sZWRpdGluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
bWFya3VwLmg+CiAjaW5jbHVkZSA8YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KQEAgLTM1OCw2ICsz
NTksOSBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2Fk
ZXJDbGllbnRGb3JNYWluRnJhbWUgPSBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQ7CiAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24ucHJvZ3Jlc3NUcmFja2VyQ2xpZW50ID0gbmV3IFdlYlByb2dyZXNzVHJh
Y2tlckNsaWVudCgqdGhpcyk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uZGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Pigq
dGhpcyk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ud2ViR0xTdGF0ZVRyYWNrZXIgPSBzdGQ6Om1h
a2VfdW5pcXVlPFdlYkdMU3RhdGVUcmFja2VyPihbdGhpc10oYm9vbCBpc1VzaW5nSGlnaFBlcmZv
cm1hbmNlV2ViR0wpIHsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRJ
c1VzaW5nSGlnaFBlcmZvcm1hbmNlV2ViR0woaXNVc2luZ0hpZ2hQZXJmb3JtYW5jZVdlYkdMKSk7
CisgICAgfSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBwYWdlQ29uZmlndXJhdGlvbi52
YWxpZGF0aW9uTWVzc2FnZUNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViVmFsaWRhdGlvbk1l
c3NhZ2VDbGllbnQ+KCp0aGlzKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>